obsidian-dev-utils 55.4.1 → 56.0.1

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 (542) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/lib/cjs/abort-controller.cjs +6 -4
  3. package/dist/lib/cjs/array.cjs +5 -3
  4. package/dist/lib/cjs/async-events.cjs +7 -5
  5. package/dist/lib/cjs/async.cjs +6 -4
  6. package/dist/lib/cjs/blob.cjs +6 -4
  7. package/dist/lib/cjs/codemirror/index.cjs +5 -3
  8. package/dist/lib/cjs/codemirror/state-field-spec.cjs +5 -3
  9. package/dist/lib/cjs/css-class.cjs +5 -3
  10. package/dist/lib/cjs/debug-controller.cjs +5 -3
  11. package/dist/lib/cjs/debug.cjs +5 -3
  12. package/dist/lib/cjs/enum.cjs +5 -3
  13. package/dist/lib/cjs/error.cjs +5 -3
  14. package/dist/lib/cjs/function.cjs +5 -3
  15. package/dist/lib/cjs/html-element.cjs +18 -16
  16. package/dist/lib/cjs/index.cjs +5 -3
  17. package/dist/lib/cjs/library.cjs +6 -4
  18. package/dist/lib/cjs/object-utils.cjs +5 -3
  19. package/dist/lib/cjs/obsidian/@types/i18next.d.cts +3 -3
  20. package/dist/lib/cjs/obsidian/app.cjs +5 -3
  21. package/dist/lib/cjs/obsidian/async-with-notice.cjs +8 -6
  22. package/dist/lib/cjs/obsidian/attachment-path.cjs +5 -3
  23. package/dist/lib/cjs/obsidian/backlink.cjs +5 -3
  24. package/dist/lib/cjs/obsidian/callout.cjs +5 -3
  25. package/dist/lib/cjs/obsidian/code-block-markdown-information.cjs +5 -3
  26. package/dist/lib/cjs/obsidian/command-handlers/abstract-file-command-handler.cjs +355 -0
  27. package/dist/lib/cjs/obsidian/command-handlers/abstract-file-command-handler.d.cts +178 -0
  28. package/dist/lib/cjs/obsidian/{commands/index.cjs → command-handlers/app-active-file-provider.cjs} +29 -34
  29. package/dist/lib/cjs/obsidian/command-handlers/app-active-file-provider.d.cts +25 -0
  30. package/dist/lib/cjs/obsidian/command-handlers/app-menu-event-registrar.cjs +173 -0
  31. package/dist/lib/cjs/obsidian/command-handlers/app-menu-event-registrar.d.cts +41 -0
  32. package/dist/lib/cjs/obsidian/command-handlers/command-handler-component.cjs +164 -0
  33. package/dist/lib/cjs/obsidian/command-handlers/command-handler-component.d.cts +26 -0
  34. package/dist/lib/cjs/obsidian/command-handlers/command-handler.cjs +174 -0
  35. package/dist/lib/cjs/obsidian/command-handlers/command-handler.d.cts +143 -0
  36. package/dist/lib/cjs/obsidian/command-handlers/editor-command-handler.cjs +269 -0
  37. package/dist/lib/cjs/obsidian/command-handlers/editor-command-handler.d.cts +114 -0
  38. package/dist/lib/cjs/obsidian/command-handlers/file-command-handler.cjs +261 -0
  39. package/dist/lib/cjs/obsidian/command-handlers/file-command-handler.d.cts +112 -0
  40. package/dist/lib/cjs/obsidian/command-handlers/folder-command-handler.cjs +261 -0
  41. package/dist/lib/cjs/obsidian/command-handlers/folder-command-handler.d.cts +112 -0
  42. package/dist/lib/cjs/obsidian/command-handlers/global-command-handler.cjs +177 -0
  43. package/dist/lib/cjs/obsidian/command-handlers/global-command-handler.d.cts +38 -0
  44. package/dist/lib/cjs/obsidian/command-handlers/index.cjs +170 -0
  45. package/dist/lib/cjs/obsidian/command-handlers/index.d.cts +9 -0
  46. package/dist/lib/cjs/obsidian/components/all-windows-event-handler.cjs +6 -4
  47. package/dist/lib/cjs/obsidian/components/async-component.cjs +164 -0
  48. package/dist/lib/cjs/obsidian/components/async-component.d.cts +28 -0
  49. package/dist/lib/cjs/obsidian/components/async-events-component.cjs +5 -3
  50. package/dist/lib/cjs/obsidian/components/index.cjs +8 -3
  51. package/dist/lib/cjs/obsidian/components/index.d.cts +1 -0
  52. package/dist/lib/cjs/obsidian/components/setting-components/checkbox-component.cjs +5 -3
  53. package/dist/lib/cjs/obsidian/components/setting-components/code-highlighter-component.cjs +5 -3
  54. package/dist/lib/cjs/obsidian/components/setting-components/date-component.cjs +5 -3
  55. package/dist/lib/cjs/obsidian/components/setting-components/date-time-component.cjs +5 -3
  56. package/dist/lib/cjs/obsidian/components/setting-components/email-component.cjs +5 -3
  57. package/dist/lib/cjs/obsidian/components/setting-components/file-component.cjs +5 -3
  58. package/dist/lib/cjs/obsidian/components/setting-components/index.cjs +5 -3
  59. package/dist/lib/cjs/obsidian/components/setting-components/month-component.cjs +5 -3
  60. package/dist/lib/cjs/obsidian/components/setting-components/multiple-dropdown-component.cjs +5 -3
  61. package/dist/lib/cjs/obsidian/components/setting-components/multiple-email-component.cjs +5 -3
  62. package/dist/lib/cjs/obsidian/components/setting-components/multiple-file-component.cjs +5 -3
  63. package/dist/lib/cjs/obsidian/components/setting-components/multiple-text-component.cjs +5 -3
  64. package/dist/lib/cjs/obsidian/components/setting-components/number-component.cjs +5 -3
  65. package/dist/lib/cjs/obsidian/components/setting-components/password-component.cjs +5 -3
  66. package/dist/lib/cjs/obsidian/components/setting-components/setting-component-wrapper.cjs +5 -3
  67. package/dist/lib/cjs/obsidian/components/setting-components/telephone-component.cjs +5 -3
  68. package/dist/lib/cjs/obsidian/components/setting-components/text-based-component.cjs +5 -3
  69. package/dist/lib/cjs/obsidian/components/setting-components/time-component.cjs +5 -3
  70. package/dist/lib/cjs/obsidian/components/setting-components/tri-state-checkbox-component.cjs +5 -3
  71. package/dist/lib/cjs/obsidian/components/setting-components/typed-dropdown-component.cjs +5 -3
  72. package/dist/lib/cjs/obsidian/components/setting-components/typed-multiple-dropdown-component.cjs +5 -3
  73. package/dist/lib/cjs/obsidian/components/setting-components/typed-range-text-component.cjs +5 -3
  74. package/dist/lib/cjs/obsidian/components/setting-components/typed-text-component.cjs +5 -3
  75. package/dist/lib/cjs/obsidian/components/setting-components/url-component.cjs +5 -3
  76. package/dist/lib/cjs/obsidian/components/setting-components/validator-component.cjs +7 -5
  77. package/dist/lib/cjs/obsidian/components/setting-components/value-component-with-change-tracking.cjs +5 -3
  78. package/dist/lib/cjs/obsidian/components/setting-components/week-component.cjs +5 -3
  79. package/dist/lib/cjs/obsidian/constructors/getDomEventsHandlersConstructor.cjs +5 -3
  80. package/dist/lib/cjs/obsidian/constructors/index.cjs +5 -3
  81. package/dist/lib/cjs/obsidian/dataview-link.cjs +5 -3
  82. package/dist/lib/cjs/obsidian/dataview.cjs +6 -4
  83. package/dist/lib/cjs/obsidian/editor.cjs +5 -3
  84. package/dist/lib/cjs/obsidian/file-change.cjs +5 -3
  85. package/dist/lib/cjs/obsidian/file-manager.cjs +5 -3
  86. package/dist/lib/cjs/obsidian/file-system.cjs +5 -3
  87. package/dist/lib/cjs/obsidian/frontmatter-link-cache-with-offsets.cjs +5 -3
  88. package/dist/lib/cjs/obsidian/frontmatter.cjs +5 -3
  89. package/dist/lib/cjs/obsidian/i18n/{custom-type-options-base.cjs → custom-type-options.cjs} +7 -5
  90. package/dist/lib/cjs/obsidian/i18n/custom-type-options.d.cts +37 -0
  91. package/dist/lib/cjs/obsidian/{plugin/plugin-settings-wrapper.cjs → i18n/default-translations.cjs} +8 -5
  92. package/dist/lib/cjs/obsidian/i18n/default-translations.d.cts +14 -0
  93. package/dist/lib/cjs/obsidian/i18n/i18n.cjs +5 -3
  94. package/dist/lib/cjs/obsidian/i18n/i18n.d.cts +2 -13
  95. package/dist/lib/cjs/obsidian/i18n/index.cjs +11 -9
  96. package/dist/lib/cjs/obsidian/i18n/index.d.cts +2 -2
  97. package/dist/lib/cjs/obsidian/i18n/locales/en.cjs +5 -3
  98. package/dist/lib/cjs/obsidian/i18n/locales/index.cjs +5 -3
  99. package/dist/lib/cjs/obsidian/i18n/locales/translations-map.cjs +5 -3
  100. package/dist/lib/cjs/obsidian/i18n/locales/translations-map.d.cts +1 -2
  101. package/dist/lib/cjs/obsidian/index.cjs +8 -6
  102. package/dist/lib/cjs/obsidian/index.d.cts +1 -1
  103. package/dist/lib/cjs/obsidian/is-in-obsidian.cjs +5 -3
  104. package/dist/lib/cjs/obsidian/link.cjs +5 -3
  105. package/dist/lib/cjs/obsidian/logger.cjs +5 -3
  106. package/dist/lib/cjs/obsidian/loop.cjs +5 -3
  107. package/dist/lib/cjs/obsidian/markdown-code-block-processor.cjs +5 -3
  108. package/dist/lib/cjs/obsidian/markdown-view.cjs +5 -3
  109. package/dist/lib/cjs/obsidian/markdown.cjs +5 -3
  110. package/dist/lib/cjs/obsidian/metadata-cache.cjs +5 -3
  111. package/dist/lib/cjs/obsidian/modals/alert.cjs +8 -6
  112. package/dist/lib/cjs/obsidian/modals/confirm.cjs +8 -6
  113. package/dist/lib/cjs/obsidian/modals/index.cjs +8 -6
  114. package/dist/lib/cjs/obsidian/modals/index.d.cts +1 -1
  115. package/dist/lib/cjs/obsidian/modals/{modal-base.cjs → modal.cjs} +8 -6
  116. package/dist/lib/cjs/obsidian/modals/prompt.cjs +8 -6
  117. package/dist/lib/cjs/obsidian/modals/select-item.cjs +7 -5
  118. package/dist/lib/cjs/obsidian/monkey-around.cjs +5 -3
  119. package/dist/lib/cjs/obsidian/obsidian-settings.cjs +5 -3
  120. package/dist/lib/cjs/obsidian/pdf.cjs +8 -6
  121. package/dist/lib/cjs/obsidian/plugin/components/abort-signal-component.cjs +162 -0
  122. package/dist/lib/cjs/obsidian/plugin/components/abort-signal-component.d.cts +27 -0
  123. package/dist/lib/cjs/obsidian/plugin/components/async-error-handler-component.cjs +165 -0
  124. package/dist/lib/cjs/obsidian/plugin/components/async-error-handler-component.d.cts +29 -0
  125. package/dist/lib/cjs/obsidian/{commands/non-editor-command-base.cjs → plugin/components/console-debug-component.cjs} +26 -20
  126. package/dist/lib/cjs/obsidian/plugin/components/console-debug-component.d.cts +29 -0
  127. package/dist/lib/cjs/obsidian/{i18n/default-translations-base.cjs → plugin/components/i18n-component.cjs} +39 -6
  128. package/dist/lib/cjs/obsidian/plugin/components/i18n-component.d.cts +23 -0
  129. package/dist/lib/cjs/obsidian/plugin/components/index.cjs +170 -0
  130. package/dist/lib/cjs/obsidian/plugin/components/index.d.cts +9 -0
  131. package/dist/lib/cjs/obsidian/plugin/components/lifecycle-events-component.cjs +207 -0
  132. package/dist/lib/cjs/obsidian/plugin/components/lifecycle-events-component.d.cts +59 -0
  133. package/dist/lib/cjs/obsidian/plugin/components/plugin-context-component.cjs +162 -0
  134. package/dist/lib/cjs/obsidian/plugin/components/plugin-context-component.d.cts +25 -0
  135. package/dist/lib/cjs/obsidian/plugin/components/plugin-notice-component.cjs +161 -0
  136. package/dist/lib/cjs/obsidian/plugin/components/plugin-notice-component.d.cts +25 -0
  137. package/dist/lib/cjs/obsidian/plugin/components/plugin-settings-component.cjs +566 -0
  138. package/dist/lib/cjs/obsidian/plugin/components/plugin-settings-component.d.cts +302 -0
  139. package/dist/lib/cjs/obsidian/plugin/components/plugin-settings-tab-component.cjs +166 -0
  140. package/dist/lib/cjs/obsidian/plugin/components/plugin-settings-tab-component.d.cts +28 -0
  141. package/dist/lib/cjs/obsidian/plugin/index.cjs +11 -18
  142. package/dist/lib/cjs/obsidian/plugin/index.d.cts +2 -5
  143. package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.cjs +5 -3
  144. package/dist/lib/cjs/obsidian/plugin/path-settings.cjs +5 -3
  145. package/dist/lib/cjs/obsidian/plugin/plugin-context.cjs +16 -7
  146. package/dist/lib/cjs/obsidian/plugin/plugin-context.d.cts +3 -2
  147. package/dist/lib/cjs/obsidian/plugin/plugin-id.cjs +5 -3
  148. package/dist/lib/cjs/obsidian/plugin/plugin-settings-tab.cjs +412 -0
  149. package/dist/lib/cjs/obsidian/plugin/{plugin-settings-tab-base.d.cts → plugin-settings-tab.d.cts} +29 -11
  150. package/dist/lib/cjs/obsidian/plugin/plugin.cjs +135 -3
  151. package/dist/lib/cjs/obsidian/plugin/plugin.d.cts +106 -5
  152. package/dist/lib/cjs/obsidian/queue.cjs +5 -3
  153. package/dist/lib/cjs/obsidian/react/app-context.cjs +5 -3
  154. package/dist/lib/cjs/obsidian/react/index.cjs +5 -3
  155. package/dist/lib/cjs/obsidian/reference.cjs +5 -3
  156. package/dist/lib/cjs/obsidian/rename-delete-handler.cjs +5 -3
  157. package/dist/lib/cjs/obsidian/resource-url.cjs +5 -3
  158. package/dist/lib/cjs/obsidian/setting-ex.cjs +5 -3
  159. package/dist/lib/cjs/obsidian/setting-group-ex.cjs +5 -3
  160. package/dist/lib/cjs/obsidian/validation.cjs +5 -3
  161. package/dist/lib/cjs/obsidian/vault-delete.cjs +5 -3
  162. package/dist/lib/cjs/obsidian/vault.cjs +5 -3
  163. package/dist/lib/cjs/obsidian/workspace.cjs +5 -3
  164. package/dist/lib/cjs/path.cjs +5 -3
  165. package/dist/lib/cjs/reg-exp.cjs +5 -3
  166. package/dist/lib/cjs/script-utils/build.cjs +5 -3
  167. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/change-extension-plugin.cjs +5 -3
  168. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.cjs +5 -3
  169. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/custom-esbuild-options-plugin.cjs +5 -3
  170. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/dependency.cjs +6 -4
  171. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/fix-esm-plugin.cjs +5 -3
  172. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/fix-source-maps-plugin.cjs +5 -3
  173. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/index.cjs +5 -3
  174. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.cjs +5 -3
  175. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/preprocess-plugin.cjs +8 -6
  176. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/rename-css-plugin.cjs +5 -3
  177. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/svelte-wrapper-plugin.cjs +5 -3
  178. package/dist/lib/cjs/script-utils/bundlers/esbuild.cjs +5 -3
  179. package/dist/lib/cjs/script-utils/bundlers/index.cjs +5 -3
  180. package/dist/lib/cjs/script-utils/cli-utils.cjs +5 -3
  181. package/dist/lib/cjs/script-utils/code-generator.cjs +5 -3
  182. package/dist/lib/cjs/script-utils/commitlint-config.cjs +5 -3
  183. package/dist/lib/cjs/script-utils/exec.cjs +5 -3
  184. package/dist/lib/cjs/script-utils/formatters/dprint.cjs +6 -4
  185. package/dist/lib/cjs/script-utils/formatters/index.cjs +5 -3
  186. package/dist/lib/cjs/script-utils/fs.cjs +5 -3
  187. package/dist/lib/cjs/script-utils/index.cjs +5 -3
  188. package/dist/lib/cjs/script-utils/json.cjs +5 -3
  189. package/dist/lib/cjs/script-utils/linters/cspell.cjs +5 -3
  190. package/dist/lib/cjs/script-utils/linters/eslint-config.cjs +6 -4
  191. package/dist/lib/cjs/script-utils/linters/eslint-rules/index.cjs +5 -3
  192. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.cjs +5 -3
  193. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-used-underscore-variables.cjs +5 -3
  194. package/dist/lib/cjs/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.cjs +5 -3
  195. package/dist/lib/cjs/script-utils/linters/eslint-rules/rule-tester-helper.cjs +5 -3
  196. package/dist/lib/cjs/script-utils/linters/eslint.cjs +6 -4
  197. package/dist/lib/cjs/script-utils/linters/index.cjs +5 -3
  198. package/dist/lib/cjs/script-utils/linters/markdownlint-cli2-config.cjs +5 -3
  199. package/dist/lib/cjs/script-utils/linters/markdownlint.cjs +9 -5
  200. package/dist/lib/cjs/script-utils/nano-staged-config.cjs +5 -3
  201. package/dist/lib/cjs/script-utils/npm-publish.cjs +5 -3
  202. package/dist/lib/cjs/script-utils/npm-run.cjs +5 -3
  203. package/dist/lib/cjs/script-utils/npm.cjs +5 -3
  204. package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.cjs +5 -3
  205. package/dist/lib/cjs/script-utils/root.cjs +5 -3
  206. package/dist/lib/cjs/script-utils/test-runners/index.cjs +5 -3
  207. package/dist/lib/cjs/script-utils/test-runners/vitest.cjs +5 -3
  208. package/dist/lib/cjs/script-utils/version.cjs +5 -3
  209. package/dist/lib/cjs/strict-proxy.cjs +5 -3
  210. package/dist/lib/cjs/string.cjs +5 -3
  211. package/dist/lib/cjs/transformers/date-transformer.cjs +5 -3
  212. package/dist/lib/cjs/transformers/duration-transformer.cjs +5 -3
  213. package/dist/lib/cjs/transformers/group-transformer.cjs +5 -3
  214. package/dist/lib/cjs/transformers/index.cjs +5 -3
  215. package/dist/lib/cjs/transformers/map-transformer.cjs +5 -3
  216. package/dist/lib/cjs/transformers/set-transformer.cjs +5 -3
  217. package/dist/lib/cjs/transformers/skip-private-property-transformer.cjs +5 -3
  218. package/dist/lib/cjs/transformers/transformer.cjs +5 -3
  219. package/dist/lib/cjs/transformers/two-way-map-transformer.cjs +5 -3
  220. package/dist/lib/cjs/transformers/typed-transformer.cjs +5 -3
  221. package/dist/lib/cjs/two-way-map.cjs +5 -3
  222. package/dist/lib/cjs/type-guards.cjs +5 -3
  223. package/dist/lib/cjs/type.cjs +5 -3
  224. package/dist/lib/cjs/url.cjs +5 -3
  225. package/dist/lib/cjs/value-provider.cjs +5 -3
  226. package/dist/lib/esm/abort-controller.mjs +4 -2
  227. package/dist/lib/esm/array.mjs +3 -1
  228. package/dist/lib/esm/async-events.mjs +5 -3
  229. package/dist/lib/esm/async.mjs +4 -2
  230. package/dist/lib/esm/blob.mjs +4 -2
  231. package/dist/lib/esm/codemirror/index.mjs +3 -1
  232. package/dist/lib/esm/codemirror/state-field-spec.mjs +2 -0
  233. package/dist/lib/esm/css-class.mjs +3 -1
  234. package/dist/lib/esm/debug-controller.mjs +2 -0
  235. package/dist/lib/esm/debug.mjs +3 -1
  236. package/dist/lib/esm/enum.mjs +3 -1
  237. package/dist/lib/esm/error.mjs +3 -1
  238. package/dist/lib/esm/function.mjs +3 -1
  239. package/dist/lib/esm/html-element.mjs +16 -14
  240. package/dist/lib/esm/index.mjs +3 -1
  241. package/dist/lib/esm/library.mjs +4 -2
  242. package/dist/lib/esm/object-utils.mjs +3 -1
  243. package/dist/lib/esm/obsidian/@types/i18next.d.mts +3 -3
  244. package/dist/lib/esm/obsidian/app.mjs +3 -1
  245. package/dist/lib/esm/obsidian/async-with-notice.mjs +6 -4
  246. package/dist/lib/esm/obsidian/attachment-path.mjs +3 -1
  247. package/dist/lib/esm/obsidian/backlink.mjs +3 -1
  248. package/dist/lib/esm/obsidian/callout.mjs +3 -1
  249. package/dist/lib/esm/obsidian/code-block-markdown-information.mjs +2 -0
  250. package/dist/lib/esm/obsidian/command-handlers/abstract-file-command-handler.d.mts +178 -0
  251. package/dist/lib/esm/obsidian/command-handlers/abstract-file-command-handler.mjs +247 -0
  252. package/dist/lib/esm/obsidian/command-handlers/app-active-file-provider.d.mts +25 -0
  253. package/dist/lib/esm/obsidian/command-handlers/app-active-file-provider.mjs +46 -0
  254. package/dist/lib/esm/obsidian/command-handlers/app-menu-event-registrar.d.mts +41 -0
  255. package/dist/lib/esm/obsidian/command-handlers/app-menu-event-registrar.mjs +65 -0
  256. package/dist/lib/esm/obsidian/command-handlers/command-handler-component.d.mts +26 -0
  257. package/dist/lib/esm/obsidian/command-handlers/command-handler-component.mjs +56 -0
  258. package/dist/lib/esm/obsidian/command-handlers/command-handler.d.mts +143 -0
  259. package/dist/lib/esm/obsidian/command-handlers/command-handler.mjs +66 -0
  260. package/dist/lib/esm/obsidian/command-handlers/editor-command-handler.d.mts +114 -0
  261. package/dist/lib/esm/obsidian/command-handlers/editor-command-handler.mjs +161 -0
  262. package/dist/lib/esm/obsidian/command-handlers/file-command-handler.d.mts +112 -0
  263. package/dist/lib/esm/obsidian/command-handlers/file-command-handler.mjs +157 -0
  264. package/dist/lib/esm/obsidian/command-handlers/folder-command-handler.d.mts +112 -0
  265. package/dist/lib/esm/obsidian/command-handlers/folder-command-handler.mjs +157 -0
  266. package/dist/lib/esm/obsidian/command-handlers/global-command-handler.d.mts +38 -0
  267. package/dist/lib/esm/obsidian/command-handlers/global-command-handler.mjs +69 -0
  268. package/dist/lib/esm/obsidian/command-handlers/index.d.mts +9 -0
  269. package/dist/lib/esm/obsidian/command-handlers/index.mjs +44 -0
  270. package/dist/lib/esm/obsidian/components/all-windows-event-handler.mjs +4 -2
  271. package/dist/lib/esm/obsidian/components/async-component.d.mts +28 -0
  272. package/dist/lib/esm/obsidian/components/async-component.mjs +56 -0
  273. package/dist/lib/esm/obsidian/components/async-events-component.mjs +3 -1
  274. package/dist/lib/esm/obsidian/components/index.d.mts +1 -0
  275. package/dist/lib/esm/obsidian/components/index.mjs +5 -1
  276. package/dist/lib/esm/obsidian/components/setting-components/checkbox-component.mjs +3 -1
  277. package/dist/lib/esm/obsidian/components/setting-components/code-highlighter-component.mjs +3 -1
  278. package/dist/lib/esm/obsidian/components/setting-components/date-component.mjs +3 -1
  279. package/dist/lib/esm/obsidian/components/setting-components/date-time-component.mjs +3 -1
  280. package/dist/lib/esm/obsidian/components/setting-components/email-component.mjs +3 -1
  281. package/dist/lib/esm/obsidian/components/setting-components/file-component.mjs +3 -1
  282. package/dist/lib/esm/obsidian/components/setting-components/index.mjs +3 -1
  283. package/dist/lib/esm/obsidian/components/setting-components/month-component.mjs +3 -1
  284. package/dist/lib/esm/obsidian/components/setting-components/multiple-dropdown-component.mjs +3 -1
  285. package/dist/lib/esm/obsidian/components/setting-components/multiple-email-component.mjs +3 -1
  286. package/dist/lib/esm/obsidian/components/setting-components/multiple-file-component.mjs +3 -1
  287. package/dist/lib/esm/obsidian/components/setting-components/multiple-text-component.mjs +3 -1
  288. package/dist/lib/esm/obsidian/components/setting-components/number-component.mjs +3 -1
  289. package/dist/lib/esm/obsidian/components/setting-components/password-component.mjs +3 -1
  290. package/dist/lib/esm/obsidian/components/setting-components/setting-component-wrapper.mjs +3 -1
  291. package/dist/lib/esm/obsidian/components/setting-components/telephone-component.mjs +3 -1
  292. package/dist/lib/esm/obsidian/components/setting-components/text-based-component.mjs +3 -1
  293. package/dist/lib/esm/obsidian/components/setting-components/time-component.mjs +3 -1
  294. package/dist/lib/esm/obsidian/components/setting-components/tri-state-checkbox-component.mjs +3 -1
  295. package/dist/lib/esm/obsidian/components/setting-components/typed-dropdown-component.mjs +3 -1
  296. package/dist/lib/esm/obsidian/components/setting-components/typed-multiple-dropdown-component.mjs +3 -1
  297. package/dist/lib/esm/obsidian/components/setting-components/typed-range-text-component.mjs +3 -1
  298. package/dist/lib/esm/obsidian/components/setting-components/typed-text-component.mjs +3 -1
  299. package/dist/lib/esm/obsidian/components/setting-components/url-component.mjs +3 -1
  300. package/dist/lib/esm/obsidian/components/setting-components/validator-component.mjs +5 -3
  301. package/dist/lib/esm/obsidian/components/setting-components/value-component-with-change-tracking.mjs +2 -0
  302. package/dist/lib/esm/obsidian/components/setting-components/week-component.mjs +3 -1
  303. package/dist/lib/esm/obsidian/constructors/getDomEventsHandlersConstructor.mjs +3 -1
  304. package/dist/lib/esm/obsidian/constructors/index.mjs +3 -1
  305. package/dist/lib/esm/obsidian/dataview-link.mjs +3 -1
  306. package/dist/lib/esm/obsidian/dataview.mjs +4 -2
  307. package/dist/lib/esm/obsidian/editor.mjs +3 -1
  308. package/dist/lib/esm/obsidian/file-change.mjs +3 -1
  309. package/dist/lib/esm/obsidian/file-manager.mjs +3 -1
  310. package/dist/lib/esm/obsidian/file-system.mjs +3 -1
  311. package/dist/lib/esm/obsidian/frontmatter-link-cache-with-offsets.mjs +3 -1
  312. package/dist/lib/esm/obsidian/frontmatter.mjs +3 -1
  313. package/dist/lib/esm/obsidian/i18n/custom-type-options.d.mts +37 -0
  314. package/dist/lib/esm/obsidian/i18n/custom-type-options.mjs +25 -0
  315. package/dist/lib/esm/obsidian/i18n/default-translations.d.mts +14 -0
  316. package/dist/lib/esm/obsidian/i18n/default-translations.mjs +25 -0
  317. package/dist/lib/esm/obsidian/i18n/i18n.d.mts +2 -13
  318. package/dist/lib/esm/obsidian/i18n/i18n.mjs +3 -1
  319. package/dist/lib/esm/obsidian/i18n/index.d.mts +2 -2
  320. package/dist/lib/esm/obsidian/i18n/index.mjs +7 -5
  321. package/dist/lib/esm/obsidian/i18n/locales/en.mjs +3 -1
  322. package/dist/lib/esm/obsidian/i18n/locales/index.mjs +3 -1
  323. package/dist/lib/esm/obsidian/i18n/locales/translations-map.d.mts +1 -2
  324. package/dist/lib/esm/obsidian/i18n/locales/translations-map.mjs +3 -1
  325. package/dist/lib/esm/obsidian/index.d.mts +1 -1
  326. package/dist/lib/esm/obsidian/index.mjs +5 -3
  327. package/dist/lib/esm/obsidian/is-in-obsidian.mjs +3 -1
  328. package/dist/lib/esm/obsidian/link.mjs +3 -1
  329. package/dist/lib/esm/obsidian/logger.mjs +3 -1
  330. package/dist/lib/esm/obsidian/loop.mjs +3 -1
  331. package/dist/lib/esm/obsidian/markdown-code-block-processor.mjs +3 -1
  332. package/dist/lib/esm/obsidian/markdown-view.mjs +3 -1
  333. package/dist/lib/esm/obsidian/markdown.mjs +3 -1
  334. package/dist/lib/esm/obsidian/metadata-cache.mjs +3 -1
  335. package/dist/lib/esm/obsidian/modals/alert.mjs +4 -2
  336. package/dist/lib/esm/obsidian/modals/confirm.mjs +4 -2
  337. package/dist/lib/esm/obsidian/modals/index.d.mts +1 -1
  338. package/dist/lib/esm/obsidian/modals/index.mjs +5 -3
  339. package/dist/lib/esm/obsidian/modals/modal.mjs +54 -0
  340. package/dist/lib/esm/obsidian/modals/prompt.mjs +4 -2
  341. package/dist/lib/esm/obsidian/modals/select-item.mjs +4 -2
  342. package/dist/lib/esm/obsidian/monkey-around.mjs +3 -1
  343. package/dist/lib/esm/obsidian/obsidian-settings.mjs +3 -1
  344. package/dist/lib/esm/obsidian/pdf.mjs +6 -4
  345. package/dist/lib/esm/obsidian/plugin/components/abort-signal-component.d.mts +27 -0
  346. package/dist/lib/esm/obsidian/plugin/components/abort-signal-component.mjs +54 -0
  347. package/dist/lib/esm/obsidian/plugin/components/async-error-handler-component.d.mts +29 -0
  348. package/dist/lib/esm/obsidian/plugin/components/async-error-handler-component.mjs +57 -0
  349. package/dist/lib/esm/obsidian/plugin/components/console-debug-component.d.mts +29 -0
  350. package/dist/lib/esm/obsidian/plugin/components/console-debug-component.mjs +52 -0
  351. package/dist/lib/esm/obsidian/plugin/components/i18n-component.d.mts +23 -0
  352. package/dist/lib/esm/obsidian/plugin/components/i18n-component.mjs +48 -0
  353. package/dist/lib/esm/obsidian/plugin/components/index.d.mts +9 -0
  354. package/dist/lib/esm/obsidian/plugin/components/index.mjs +44 -0
  355. package/dist/lib/esm/obsidian/plugin/components/lifecycle-events-component.d.mts +59 -0
  356. package/dist/lib/esm/obsidian/plugin/components/lifecycle-events-component.mjs +102 -0
  357. package/dist/lib/esm/obsidian/plugin/components/plugin-context-component.d.mts +25 -0
  358. package/dist/lib/esm/obsidian/plugin/components/plugin-context-component.mjs +57 -0
  359. package/dist/lib/esm/obsidian/plugin/components/plugin-notice-component.d.mts +25 -0
  360. package/dist/lib/esm/obsidian/plugin/components/plugin-notice-component.mjs +56 -0
  361. package/dist/lib/esm/obsidian/plugin/components/plugin-settings-component.d.mts +302 -0
  362. package/dist/lib/esm/obsidian/plugin/components/plugin-settings-component.mjs +463 -0
  363. package/dist/lib/esm/obsidian/plugin/components/plugin-settings-tab-component.d.mts +28 -0
  364. package/dist/lib/esm/obsidian/plugin/components/plugin-settings-tab-component.mjs +58 -0
  365. package/dist/lib/esm/obsidian/plugin/index.d.mts +2 -5
  366. package/dist/lib/esm/obsidian/plugin/index.mjs +7 -11
  367. package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.mjs +3 -1
  368. package/dist/lib/esm/obsidian/plugin/path-settings.mjs +3 -1
  369. package/dist/lib/esm/obsidian/plugin/plugin-context.d.mts +3 -2
  370. package/dist/lib/esm/obsidian/plugin/plugin-context.mjs +14 -5
  371. package/dist/lib/esm/obsidian/plugin/plugin-id.mjs +3 -1
  372. package/dist/lib/esm/obsidian/plugin/{plugin-settings-tab-base.d.mts → plugin-settings-tab.d.mts} +29 -11
  373. package/dist/lib/esm/obsidian/plugin/plugin-settings-tab.mjs +313 -0
  374. package/dist/lib/esm/obsidian/plugin/plugin.d.mts +106 -5
  375. package/dist/lib/esm/obsidian/plugin/plugin.mjs +140 -2
  376. package/dist/lib/esm/obsidian/queue.mjs +3 -1
  377. package/dist/lib/esm/obsidian/react/app-context.mjs +3 -1
  378. package/dist/lib/esm/obsidian/react/index.mjs +3 -1
  379. package/dist/lib/esm/obsidian/reference.mjs +3 -1
  380. package/dist/lib/esm/obsidian/rename-delete-handler.mjs +3 -1
  381. package/dist/lib/esm/obsidian/resource-url.mjs +3 -1
  382. package/dist/lib/esm/obsidian/setting-ex.mjs +3 -1
  383. package/dist/lib/esm/obsidian/setting-group-ex.mjs +3 -1
  384. package/dist/lib/esm/obsidian/validation.mjs +3 -1
  385. package/dist/lib/esm/obsidian/vault-delete.mjs +3 -1
  386. package/dist/lib/esm/obsidian/vault.mjs +3 -1
  387. package/dist/lib/esm/obsidian/workspace.mjs +3 -1
  388. package/dist/lib/esm/path.mjs +3 -1
  389. package/dist/lib/esm/reg-exp.mjs +3 -1
  390. package/dist/lib/esm/script-utils/build.mjs +3 -1
  391. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/change-extension-plugin.mjs +3 -1
  392. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.mjs +3 -1
  393. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/custom-esbuild-options-plugin.mjs +3 -1
  394. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/dependency.mjs +3 -1
  395. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/fix-esm-plugin.mjs +3 -1
  396. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/fix-source-maps-plugin.mjs +3 -1
  397. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/index.mjs +3 -1
  398. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.mjs +3 -1
  399. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/preprocess-plugin.mjs +5 -3
  400. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/rename-css-plugin.mjs +3 -1
  401. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/svelte-wrapper-plugin.mjs +3 -1
  402. package/dist/lib/esm/script-utils/bundlers/esbuild.mjs +3 -1
  403. package/dist/lib/esm/script-utils/bundlers/index.mjs +3 -1
  404. package/dist/lib/esm/script-utils/cli-utils.mjs +3 -1
  405. package/dist/lib/esm/script-utils/code-generator.mjs +3 -1
  406. package/dist/lib/esm/script-utils/commitlint-config.mjs +3 -1
  407. package/dist/lib/esm/script-utils/exec.mjs +3 -1
  408. package/dist/lib/esm/script-utils/formatters/dprint.mjs +3 -1
  409. package/dist/lib/esm/script-utils/formatters/index.mjs +3 -1
  410. package/dist/lib/esm/script-utils/fs.mjs +3 -1
  411. package/dist/lib/esm/script-utils/index.mjs +3 -1
  412. package/dist/lib/esm/script-utils/json.mjs +3 -1
  413. package/dist/lib/esm/script-utils/linters/cspell.mjs +3 -1
  414. package/dist/lib/esm/script-utils/linters/eslint-config.mjs +4 -2
  415. package/dist/lib/esm/script-utils/linters/eslint-rules/index.mjs +3 -1
  416. package/dist/lib/esm/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.mjs +3 -1
  417. package/dist/lib/esm/script-utils/linters/eslint-rules/no-used-underscore-variables.mjs +3 -1
  418. package/dist/lib/esm/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.mjs +3 -1
  419. package/dist/lib/esm/script-utils/linters/eslint-rules/rule-tester-helper.mjs +3 -1
  420. package/dist/lib/esm/script-utils/linters/eslint.mjs +3 -1
  421. package/dist/lib/esm/script-utils/linters/index.mjs +3 -1
  422. package/dist/lib/esm/script-utils/linters/markdownlint-cli2-config.mjs +3 -1
  423. package/dist/lib/esm/script-utils/linters/markdownlint.mjs +6 -2
  424. package/dist/lib/esm/script-utils/nano-staged-config.mjs +3 -1
  425. package/dist/lib/esm/script-utils/npm-publish.mjs +3 -1
  426. package/dist/lib/esm/script-utils/npm-run.mjs +3 -1
  427. package/dist/lib/esm/script-utils/npm.mjs +3 -1
  428. package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.mjs +3 -1
  429. package/dist/lib/esm/script-utils/root.mjs +3 -1
  430. package/dist/lib/esm/script-utils/test-runners/index.mjs +3 -1
  431. package/dist/lib/esm/script-utils/test-runners/vitest.mjs +3 -1
  432. package/dist/lib/esm/script-utils/version.mjs +3 -1
  433. package/dist/lib/esm/strict-proxy.mjs +3 -1
  434. package/dist/lib/esm/string.mjs +3 -1
  435. package/dist/lib/esm/transformers/date-transformer.mjs +3 -1
  436. package/dist/lib/esm/transformers/duration-transformer.mjs +3 -1
  437. package/dist/lib/esm/transformers/group-transformer.mjs +3 -1
  438. package/dist/lib/esm/transformers/index.mjs +3 -1
  439. package/dist/lib/esm/transformers/map-transformer.mjs +3 -1
  440. package/dist/lib/esm/transformers/set-transformer.mjs +3 -1
  441. package/dist/lib/esm/transformers/skip-private-property-transformer.mjs +3 -1
  442. package/dist/lib/esm/transformers/transformer.mjs +3 -1
  443. package/dist/lib/esm/transformers/two-way-map-transformer.mjs +3 -1
  444. package/dist/lib/esm/transformers/typed-transformer.mjs +3 -1
  445. package/dist/lib/esm/two-way-map.mjs +3 -1
  446. package/dist/lib/esm/type-guards.mjs +3 -1
  447. package/dist/lib/esm/type.mjs +3 -1
  448. package/dist/lib/esm/url.mjs +3 -1
  449. package/dist/lib/esm/value-provider.mjs +3 -1
  450. package/obsidian/Components/async-component/package.json +6 -0
  451. package/obsidian/Modals/modal/package.json +6 -0
  452. package/obsidian/Plugin/components/abort-signal-component/package.json +6 -0
  453. package/obsidian/Plugin/components/async-error-handler-component/package.json +6 -0
  454. package/obsidian/Plugin/components/console-debug-component/package.json +6 -0
  455. package/obsidian/Plugin/components/i18n-component/package.json +6 -0
  456. package/obsidian/Plugin/components/index/package.json +6 -0
  457. package/obsidian/Plugin/components/lifecycle-events-component/package.json +6 -0
  458. package/obsidian/Plugin/components/package.json +6 -0
  459. package/obsidian/Plugin/components/plugin-context-component/package.json +6 -0
  460. package/obsidian/Plugin/components/plugin-notice-component/package.json +6 -0
  461. package/obsidian/Plugin/components/plugin-settings-component/package.json +6 -0
  462. package/obsidian/Plugin/components/plugin-settings-tab-component/package.json +6 -0
  463. package/obsidian/Plugin/{plugin-settings-wrapper → plugin-settings-tab}/package.json +3 -3
  464. package/obsidian/command-handlers/abstract-file-command-handler/package.json +6 -0
  465. package/obsidian/command-handlers/app-active-file-provider/package.json +6 -0
  466. package/obsidian/command-handlers/app-menu-event-registrar/package.json +6 -0
  467. package/obsidian/command-handlers/command-handler/package.json +6 -0
  468. package/obsidian/command-handlers/command-handler-component/package.json +6 -0
  469. package/obsidian/command-handlers/editor-command-handler/package.json +6 -0
  470. package/obsidian/command-handlers/file-command-handler/package.json +6 -0
  471. package/obsidian/command-handlers/folder-command-handler/package.json +6 -0
  472. package/obsidian/command-handlers/global-command-handler/package.json +6 -0
  473. package/obsidian/command-handlers/index/package.json +6 -0
  474. package/obsidian/command-handlers/package.json +6 -0
  475. package/obsidian/i18n/{custom-type-options-base → custom-type-options}/package.json +3 -3
  476. package/obsidian/i18n/{default-translations-base → default-translations}/package.json +3 -3
  477. package/package.json +33 -12
  478. package/dist/lib/cjs/obsidian/commands/abstract-file-command-base.cjs +0 -441
  479. package/dist/lib/cjs/obsidian/commands/abstract-file-command-base.d.cts +0 -264
  480. package/dist/lib/cjs/obsidian/commands/command-base.cjs +0 -255
  481. package/dist/lib/cjs/obsidian/commands/command-base.d.cts +0 -125
  482. package/dist/lib/cjs/obsidian/commands/editor-command-base.cjs +0 -282
  483. package/dist/lib/cjs/obsidian/commands/editor-command-base.d.cts +0 -139
  484. package/dist/lib/cjs/obsidian/commands/file-command-base.cjs +0 -343
  485. package/dist/lib/cjs/obsidian/commands/file-command-base.d.cts +0 -191
  486. package/dist/lib/cjs/obsidian/commands/folder-command-base.cjs +0 -335
  487. package/dist/lib/cjs/obsidian/commands/folder-command-base.d.cts +0 -184
  488. package/dist/lib/cjs/obsidian/commands/index.d.cts +0 -6
  489. package/dist/lib/cjs/obsidian/commands/non-editor-command-base.d.cts +0 -34
  490. package/dist/lib/cjs/obsidian/i18n/custom-type-options-base.d.cts +0 -37
  491. package/dist/lib/cjs/obsidian/i18n/default-translations-base.d.cts +0 -25
  492. package/dist/lib/cjs/obsidian/plugin/plugin-base.cjs +0 -409
  493. package/dist/lib/cjs/obsidian/plugin/plugin-base.d.cts +0 -176
  494. package/dist/lib/cjs/obsidian/plugin/plugin-settings-manager-base.cjs +0 -486
  495. package/dist/lib/cjs/obsidian/plugin/plugin-settings-manager-base.d.cts +0 -186
  496. package/dist/lib/cjs/obsidian/plugin/plugin-settings-tab-base.cjs +0 -401
  497. package/dist/lib/cjs/obsidian/plugin/plugin-settings-wrapper.d.cts +0 -25
  498. package/dist/lib/cjs/obsidian/plugin/plugin-types-base.cjs +0 -122
  499. package/dist/lib/cjs/obsidian/plugin/plugin-types-base.d.cts +0 -87
  500. package/dist/lib/esm/obsidian/commands/abstract-file-command-base.d.mts +0 -264
  501. package/dist/lib/esm/obsidian/commands/abstract-file-command-base.mjs +0 -329
  502. package/dist/lib/esm/obsidian/commands/command-base.d.mts +0 -125
  503. package/dist/lib/esm/obsidian/commands/command-base.mjs +0 -146
  504. package/dist/lib/esm/obsidian/commands/editor-command-base.d.mts +0 -139
  505. package/dist/lib/esm/obsidian/commands/editor-command-base.mjs +0 -176
  506. package/dist/lib/esm/obsidian/commands/file-command-base.d.mts +0 -191
  507. package/dist/lib/esm/obsidian/commands/file-command-base.mjs +0 -240
  508. package/dist/lib/esm/obsidian/commands/folder-command-base.d.mts +0 -184
  509. package/dist/lib/esm/obsidian/commands/folder-command-base.mjs +0 -232
  510. package/dist/lib/esm/obsidian/commands/index.d.mts +0 -6
  511. package/dist/lib/esm/obsidian/commands/index.mjs +0 -36
  512. package/dist/lib/esm/obsidian/commands/non-editor-command-base.d.mts +0 -34
  513. package/dist/lib/esm/obsidian/commands/non-editor-command-base.mjs +0 -46
  514. package/dist/lib/esm/obsidian/i18n/custom-type-options-base.d.mts +0 -37
  515. package/dist/lib/esm/obsidian/i18n/custom-type-options-base.mjs +0 -23
  516. package/dist/lib/esm/obsidian/i18n/default-translations-base.d.mts +0 -25
  517. package/dist/lib/esm/obsidian/i18n/default-translations-base.mjs +0 -23
  518. package/dist/lib/esm/obsidian/modals/modal-base.mjs +0 -52
  519. package/dist/lib/esm/obsidian/plugin/plugin-base.d.mts +0 -176
  520. package/dist/lib/esm/obsidian/plugin/plugin-base.mjs +0 -317
  521. package/dist/lib/esm/obsidian/plugin/plugin-settings-manager-base.d.mts +0 -186
  522. package/dist/lib/esm/obsidian/plugin/plugin-settings-manager-base.mjs +0 -385
  523. package/dist/lib/esm/obsidian/plugin/plugin-settings-tab-base.mjs +0 -302
  524. package/dist/lib/esm/obsidian/plugin/plugin-settings-wrapper.d.mts +0 -25
  525. package/dist/lib/esm/obsidian/plugin/plugin-settings-wrapper.mjs +0 -22
  526. package/dist/lib/esm/obsidian/plugin/plugin-types-base.d.mts +0 -87
  527. package/dist/lib/esm/obsidian/plugin/plugin-types-base.mjs +0 -22
  528. package/obsidian/Commands/abstract-file-command-base/package.json +0 -6
  529. package/obsidian/Commands/command-base/package.json +0 -6
  530. package/obsidian/Commands/editor-command-base/package.json +0 -6
  531. package/obsidian/Commands/file-command-base/package.json +0 -6
  532. package/obsidian/Commands/folder-command-base/package.json +0 -6
  533. package/obsidian/Commands/index/package.json +0 -6
  534. package/obsidian/Commands/non-editor-command-base/package.json +0 -6
  535. package/obsidian/Commands/package.json +0 -6
  536. package/obsidian/Modals/modal-base/package.json +0 -6
  537. package/obsidian/Plugin/plugin-base/package.json +0 -6
  538. package/obsidian/Plugin/plugin-settings-manager-base/package.json +0 -6
  539. package/obsidian/Plugin/plugin-settings-tab-base/package.json +0 -6
  540. package/obsidian/Plugin/plugin-types-base/package.json +0 -6
  541. /package/dist/lib/cjs/obsidian/modals/{modal-base.d.cts → modal.d.cts} +0 -0
  542. /package/dist/lib/esm/obsidian/modals/{modal-base.d.mts → modal.d.mts} +0 -0
@@ -4,6 +4,7 @@ if you want to view the source, please visit the github repository of this plugi
4
4
  */
5
5
 
6
6
  (function initEsm() {
7
+ // eslint-disable-next-line obsidianmd/prefer-active-doc -- Actively use globalThis.
7
8
  if (globalThis.process) {
8
9
  return;
9
10
  }
@@ -16,11 +17,147 @@ if you want to view the source, please visit the github repository of this plugi
16
17
  env: {},
17
18
  platform: 'android'
18
19
  };
20
+ // eslint-disable-next-line obsidianmd/prefer-active-doc -- Actively use globalThis.
19
21
  globalThis.process = browserProcess;
20
22
  })();
21
23
 
22
- import { Notice } from "obsidian";
24
+ import {
25
+ Component,
26
+ Notice,
27
+ Plugin as ObsidianPlugin
28
+ } from "obsidian";
29
+ import {
30
+ convertAsyncToSync,
31
+ invokeAsyncSafelyAfterDelay
32
+ } from "../../async.mjs";
23
33
  import { printError } from "../../error.mjs";
34
+ import { noopAsync } from "../../function.mjs";
35
+ import { assertNonNullable } from "../../type-guards.mjs";
36
+ import { AbortSignalComponent } from "./components/abort-signal-component.mjs";
37
+ import { AsyncErrorHandlerComponent } from "./components/async-error-handler-component.mjs";
38
+ import { ConsoleDebugComponent } from "./components/console-debug-component.mjs";
39
+ import { I18nComponent } from "./components/i18n-component.mjs";
40
+ import { LifecycleEventsComponent } from "./components/lifecycle-events-component.mjs";
41
+ import { PluginContextComponent } from "./components/plugin-context-component.mjs";
42
+ import { PluginNoticeComponent } from "./components/plugin-notice-component.mjs";
43
+ import { EmptyPluginSettingsComponent } from "./components/plugin-settings-component.mjs";
44
+ class PluginBase extends ObsidianPlugin {
45
+ /**
46
+ * The abort signal component. Aborted when the plugin is unloaded.
47
+ */
48
+ abortSignalComponent;
49
+ /**
50
+ * The console debug component. Provides namespaced debug logging.
51
+ */
52
+ consoleDebugComponent;
53
+ /**
54
+ * The lifecycle events component. Provides load, layoutReady, and unload events.
55
+ */
56
+ lifecycleEventsComponent;
57
+ /**
58
+ * The notice component. Displays notices to the user.
59
+ */
60
+ noticeComponent;
61
+ /**
62
+ * The settings component. Manages plugin settings lifecycle.
63
+ */
64
+ settingsComponent;
65
+ componentsMap = /* @__PURE__ */ new Map();
66
+ preloadKeys = /* @__PURE__ */ new Set();
67
+ /**
68
+ * Creates a new PluginBase.
69
+ *
70
+ * @param app - The Obsidian app instance.
71
+ * @param manifest - The plugin manifest.
72
+ */
73
+ constructor(app, manifest) {
74
+ super(app, manifest);
75
+ this.registerComponent({ component: new PluginContextComponent(app, manifest.id), shouldPreload: true });
76
+ this.registerComponent({ component: new I18nComponent(), shouldPreload: true });
77
+ this.noticeComponent = this.registerComponent({ component: new PluginNoticeComponent(manifest.name) });
78
+ this.registerComponent({ component: new AsyncErrorHandlerComponent(this.noticeComponent) });
79
+ this.abortSignalComponent = this.registerComponent({ component: new AbortSignalComponent(manifest.id) });
80
+ this.consoleDebugComponent = this.registerComponent({ component: new ConsoleDebugComponent(manifest.id) });
81
+ this.lifecycleEventsComponent = this.registerComponent({ component: new LifecycleEventsComponent(app) });
82
+ this.settingsComponent = this.registerComponent({ component: new EmptyPluginSettingsComponent(), shouldPreload: true });
83
+ }
84
+ /**
85
+ * Called when the external settings change.
86
+ *
87
+ * Override in subclass if needed. Make sure to call `await super.onExternalSettingsChange()` first.
88
+ */
89
+ async onExternalSettingsChange() {
90
+ await super.onExternalSettingsChange?.();
91
+ await this.settingsComponent.onExternalSettingsChange();
92
+ }
93
+ /**
94
+ * Called when the plugin is loaded. Force-loads components that must be ready
95
+ * before plugin logic, then calls `onloadImpl()`.
96
+ *
97
+ * Usually, you don't need to override this method. Override {@link onloadImpl} instead.
98
+ */
99
+ async onload() {
100
+ await super.onload();
101
+ for (const key of this.preloadKeys) {
102
+ const component = this.componentsMap.get(key);
103
+ assertNonNullable(component, `Component with key '${key}' not found`);
104
+ await component.load();
105
+ }
106
+ await this.onloadImpl();
107
+ invokeAsyncSafelyAfterDelay(this.afterLoad.bind(this));
108
+ }
109
+ /**
110
+ * Called when the layout is ready.
111
+ */
112
+ async onLayoutReady() {
113
+ await noopAsync();
114
+ }
115
+ /**
116
+ * Called after all pre-load components are initialized. Override this to add plugin-specific logic.
117
+ *
118
+ * @remarks It is important to call `super.onloadImpl()` in overridden method.
119
+ */
120
+ async onloadImpl() {
121
+ await noopAsync();
122
+ }
123
+ /**
124
+ * Registers a component with the plugin. If a component with the same key is already registered,
125
+ * the old component is removed and replaced.
126
+ *
127
+ * @typeParam T - The component type.
128
+ * @param params - The registration params.
129
+ * @returns The registered component.
130
+ */
131
+ registerComponent(params) {
132
+ const resolvedKey = params.key ?? params.component.constructor.name;
133
+ const oldComponent = this.componentsMap.get(resolvedKey);
134
+ if (oldComponent) {
135
+ this.removeChild(oldComponent);
136
+ }
137
+ this.componentsMap.set(resolvedKey, params.component);
138
+ this.addChild(params.component);
139
+ if (params.shouldPreload) {
140
+ this.preloadKeys.add(resolvedKey);
141
+ } else {
142
+ this.preloadKeys.delete(resolvedKey);
143
+ }
144
+ return params.component;
145
+ }
146
+ async afterLoad() {
147
+ if (this.abortSignalComponent.abortSignal.aborted) {
148
+ return;
149
+ }
150
+ await this.lifecycleEventsComponent.triggerLifecycleEvent("load");
151
+ this.app.workspace.onLayoutReady(convertAsyncToSync(this.onLayoutReadyBase.bind(this)));
152
+ }
153
+ async onLayoutReadyBase() {
154
+ try {
155
+ await this.onLayoutReady();
156
+ } finally {
157
+ await this.lifecycleEventsComponent.triggerLifecycleEvent("layoutReady");
158
+ }
159
+ }
160
+ }
24
161
  async function reloadPlugin(plugin) {
25
162
  const plugins = plugin.app.plugins;
26
163
  const pluginId = plugin.manifest.id;
@@ -33,7 +170,8 @@ async function showErrorAndDisablePlugin(plugin, message) {
33
170
  await plugin.app.plugins.disablePlugin(plugin.manifest.id);
34
171
  }
35
172
  export {
173
+ PluginBase,
36
174
  reloadPlugin,
37
175
  showErrorAndDisablePlugin
38
176
  };
39
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3BsdWdpbi9wbHVnaW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgbWFuYWdpbmcgT2JzaWRpYW4gcGx1Z2lucyxcbiAqIGluY2x1ZGluZyBkaXNwbGF5aW5nIGVycm9yIG1lc3NhZ2VzLCBkaXNhYmxpbmcgcGx1Z2lucywgYW5kIHJlbG9hZGluZyB0aGVtLlxuICovXG5cbmltcG9ydCB0eXBlIHsgUGx1Z2luIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyBOb3RpY2UgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IHByaW50RXJyb3IgfSBmcm9tICcuLi8uLi9lcnJvci50cyc7XG5cbi8qKlxuICogUmVsb2FkcyB0aGUgc3BlY2lmaWVkIHBsdWdpbiBieSBkaXNhYmxpbmcgYW5kIHRoZW4gcmUtZW5hYmxpbmcgaXQuXG4gKlxuICogQHBhcmFtIHBsdWdpbiAtIFRoZSBwbHVnaW4gdG8gcmVsb2FkLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBwbHVnaW4gaXMgcmVsb2FkZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWxvYWRQbHVnaW4ocGx1Z2luOiBQbHVnaW4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgcGx1Z2lucyA9IHBsdWdpbi5hcHAucGx1Z2lucztcbiAgY29uc3QgcGx1Z2luSWQgPSBwbHVnaW4ubWFuaWZlc3QuaWQ7XG4gIGF3YWl0IHBsdWdpbnMuZGlzYWJsZVBsdWdpbihwbHVnaW5JZCk7XG4gIGF3YWl0IHBsdWdpbnMuZW5hYmxlUGx1Z2luKHBsdWdpbklkKTtcbn1cblxuLyoqXG4gKiBEaXNwbGF5cyBhbiBlcnJvciBtZXNzYWdlIGFzIGEgbm90aWNlLCBsb2dzIGl0IHRvIHRoZSBjb25zb2xlLCBhbmQgZGlzYWJsZXMgdGhlIHNwZWNpZmllZCBwbHVnaW4uXG4gKlxuICogQHBhcmFtIHBsdWdpbiAtIFRoZSBwbHVnaW4gdG8gZGlzYWJsZS5cbiAqIEBwYXJhbSBtZXNzYWdlIC0gVGhlIGVycm9yIG1lc3NhZ2UgdG8gZGlzcGxheSBhbmQgbG9nLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBwbHVnaW4gaXMgZGlzYWJsZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzaG93RXJyb3JBbmREaXNhYmxlUGx1Z2luKHBsdWdpbjogUGx1Z2luLCBtZXNzYWdlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgbmV3IE5vdGljZShtZXNzYWdlKTtcbiAgcHJpbnRFcnJvcihuZXcgRXJyb3IobWVzc2FnZSkpO1xuICBhd2FpdCBwbHVnaW4uYXBwLnBsdWdpbnMuZGlzYWJsZVBsdWdpbihwbHVnaW4ubWFuaWZlc3QuaWQpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBU0EsU0FBUyxjQUFjO0FBRXZCLFNBQVMsa0JBQWtCO0FBUTNCLGVBQXNCLGFBQWEsUUFBK0I7QUFDaEUsUUFBTSxVQUFVLE9BQU8sSUFBSTtBQUMzQixRQUFNLFdBQVcsT0FBTyxTQUFTO0FBQ2pDLFFBQU0sUUFBUSxjQUFjLFFBQVE7QUFDcEMsUUFBTSxRQUFRLGFBQWEsUUFBUTtBQUNyQztBQVNBLGVBQXNCLDBCQUEwQixRQUFnQixTQUFnQztBQUM5RixNQUFJLE9BQU8sT0FBTztBQUNsQixhQUFXLElBQUksTUFBTSxPQUFPLENBQUM7QUFDN0IsUUFBTSxPQUFPLElBQUksUUFBUSxjQUFjLE9BQU8sU0FBUyxFQUFFO0FBQzNEOyIsCiAgIm5hbWVzIjogW10KfQo=
177
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3BsdWdpbi9wbHVnaW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBCYXNlIGNsYXNzIGZvciBPYnNpZGlhbiBwbHVnaW5zIHVzaW5nIGEgY29tcG9uZW50LWJhc2VkIGFyY2hpdGVjdHVyZS5cbiAqXG4gKiBQbHVnaW5CYXNlIHJlZ2lzdGVycyB1bml2ZXJzYWwgY29tcG9uZW50cyAoY29udGV4dCwgaTE4biwgZXJyb3IgaGFuZGxpbmcsIGFib3J0IHNpZ25hbCwgbGlmZWN5Y2xlIGV2ZW50cywgZGVidWcpLlxuICogU3ViY2xhc3NlcyBhZGQgdGhlaXIgb3duIGNvbXBvbmVudHMgdmlhIHtAbGluayByZWdpc3RlckNvbXBvbmVudH0gaW4gdGhlaXIgY29uc3RydWN0b3IuXG4gKiBBbnkgdW5pdmVyc2FsIGNvbXBvbmVudCBjYW4gYmUgcmVwbGFjZWQgYnkgY2FsbGluZyB7QGxpbmsgcmVnaXN0ZXJDb21wb25lbnR9IHdpdGggYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIHNhbWUgY2xhc3MuXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBBcHAsXG4gIFBsdWdpbk1hbmlmZXN0XG59IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgUHJvbWlzYWJsZSB9IGZyb20gJ3R5cGUtZmVzdCc7XG5cbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgTm90aWNlLFxuICBQbHVnaW4gYXMgT2JzaWRpYW5QbHVnaW5cbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7IFBsdWdpblNldHRpbmdzQ29tcG9uZW50QmFzZSB9IGZyb20gJy4vY29tcG9uZW50cy9wbHVnaW4tc2V0dGluZ3MtY29tcG9uZW50LnRzJztcblxuaW1wb3J0IHtcbiAgY29udmVydEFzeW5jVG9TeW5jLFxuICBpbnZva2VBc3luY1NhZmVseUFmdGVyRGVsYXlcbn0gZnJvbSAnLi4vLi4vYXN5bmMudHMnO1xuaW1wb3J0IHsgcHJpbnRFcnJvciB9IGZyb20gJy4uLy4uL2Vycm9yLnRzJztcbmltcG9ydCB7IG5vb3BBc3luYyB9IGZyb20gJy4uLy4uL2Z1bmN0aW9uLnRzJztcbmltcG9ydCB7IGFzc2VydE5vbk51bGxhYmxlIH0gZnJvbSAnLi4vLi4vdHlwZS1ndWFyZHMudHMnO1xuaW1wb3J0IHsgQWJvcnRTaWduYWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWJvcnQtc2lnbmFsLWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBBc3luY0Vycm9ySGFuZGxlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hc3luYy1lcnJvci1oYW5kbGVyLWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBDb25zb2xlRGVidWdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29uc29sZS1kZWJ1Zy1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgSTE4bkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9pMThuLWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBMaWZlY3ljbGVFdmVudHNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbGlmZWN5Y2xlLWV2ZW50cy1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgUGx1Z2luQ29udGV4dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wbHVnaW4tY29udGV4dC1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgUGx1Z2luTm90aWNlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BsdWdpbi1ub3RpY2UtY29tcG9uZW50LnRzJztcbmltcG9ydCB7IEVtcHR5UGx1Z2luU2V0dGluZ3NDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcGx1Z2luLXNldHRpbmdzLWNvbXBvbmVudC50cyc7XG5cbi8qKlxuICogUGFyYW1zIGZvciB7QGxpbmsgUGx1Z2luQmFzZS5yZWdpc3RlckNvbXBvbmVudH0uXG4gKlxuICogQHR5cGVQYXJhbSBUIC0gVGhlIGNvbXBvbmVudCB0eXBlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZ2lzdGVyQ29tcG9uZW50UGFyYW1zPFQgZXh0ZW5kcyBDb21wb25lbnQgPSBDb21wb25lbnQ+IHtcbiAgLyoqXG4gICAqIFRoZSBjb21wb25lbnQgdG8gcmVnaXN0ZXIuXG4gICAqL1xuICByZWFkb25seSBjb21wb25lbnQ6IFQ7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGtleS4gRGVmYXVsdHMgdG8gdGhlIGNvbXBvbmVudCdzIGNvbnN0cnVjdG9yIG5hbWUuXG4gICAqL1xuICByZWFkb25seSBrZXk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBjb21wb25lbnQgc2hvdWxkIGJlIGxvYWRlZCBiZWZvcmUgdGhlIHBsdWdpbidzIGBvbmxvYWRJbXBsKClgIHJ1bnMuXG4gICAqIENvbXBvbmVudHMgbWFya2VkIHdpdGggdGhpcyBmbGFnIGFyZSBmb3JjZS1sb2FkZWQgZHVyaW5nIGBvbmxvYWQoKWAsIGVuc3VyaW5nIHRoZXkgYXJlXG4gICAqIGZ1bGx5IGluaXRpYWxpemVkIGJlZm9yZSBwbHVnaW4gbG9naWMgZXhlY3V0ZXMuXG4gICAqL1xuICByZWFkb25seSBzaG91bGRQcmVsb2FkPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBjcmVhdGluZyBPYnNpZGlhbiBwbHVnaW5zIHdpdGggYSBjb21wb25lbnQtYmFzZWQgYXJjaGl0ZWN0dXJlLlxuICpcbiAqIFJlZ2lzdGVycyB1bml2ZXJzYWwgY29tcG9uZW50cyBhdXRvbWF0aWNhbGx5LiBTdWJjbGFzc2VzIGFkZCBvciByZXBsYWNlIGNvbXBvbmVudHNcbiAqIHZpYSB7QGxpbmsgcmVnaXN0ZXJDb21wb25lbnR9IGluIHRoZWlyIGNvbnN0cnVjdG9yLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGx1Z2luQmFzZSBleHRlbmRzIE9ic2lkaWFuUGx1Z2luIHtcbiAgLyoqXG4gICAqIFRoZSBhYm9ydCBzaWduYWwgY29tcG9uZW50LiBBYm9ydGVkIHdoZW4gdGhlIHBsdWdpbiBpcyB1bmxvYWRlZC5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBhYm9ydFNpZ25hbENvbXBvbmVudDogQWJvcnRTaWduYWxDb21wb25lbnQ7XG5cbiAgLyoqXG4gICAqIFRoZSBjb25zb2xlIGRlYnVnIGNvbXBvbmVudC4gUHJvdmlkZXMgbmFtZXNwYWNlZCBkZWJ1ZyBsb2dnaW5nLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbnNvbGVEZWJ1Z0NvbXBvbmVudDogQ29uc29sZURlYnVnQ29tcG9uZW50O1xuXG4gIC8qKlxuICAgKiBUaGUgbGlmZWN5Y2xlIGV2ZW50cyBjb21wb25lbnQuIFByb3ZpZGVzIGxvYWQsIGxheW91dFJlYWR5LCBhbmQgdW5sb2FkIGV2ZW50cy5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBsaWZlY3ljbGVFdmVudHNDb21wb25lbnQ6IExpZmVjeWNsZUV2ZW50c0NvbXBvbmVudDtcblxuICAvKipcbiAgICogVGhlIG5vdGljZSBjb21wb25lbnQuIERpc3BsYXlzIG5vdGljZXMgdG8gdGhlIHVzZXIuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbm90aWNlQ29tcG9uZW50OiBQbHVnaW5Ob3RpY2VDb21wb25lbnQ7XG5cbiAgLyoqXG4gICAqIFRoZSBzZXR0aW5ncyBjb21wb25lbnQuIE1hbmFnZXMgcGx1Z2luIHNldHRpbmdzIGxpZmVjeWNsZS5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBzZXR0aW5nc0NvbXBvbmVudDogUGx1Z2luU2V0dGluZ3NDb21wb25lbnRCYXNlPG9iamVjdD47XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjb21wb25lbnRzTWFwID0gbmV3IE1hcDxzdHJpbmcsIENvbXBvbmVudD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBwcmVsb2FkS2V5cyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IFBsdWdpbkJhc2UuXG4gICAqXG4gICAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICAgKiBAcGFyYW0gbWFuaWZlc3QgLSBUaGUgcGx1Z2luIG1hbmlmZXN0LlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKGFwcDogQXBwLCBtYW5pZmVzdDogUGx1Z2luTWFuaWZlc3QpIHtcbiAgICBzdXBlcihhcHAsIG1hbmlmZXN0KTtcblxuICAgIHRoaXMucmVnaXN0ZXJDb21wb25lbnQoeyBjb21wb25lbnQ6IG5ldyBQbHVnaW5Db250ZXh0Q29tcG9uZW50KGFwcCwgbWFuaWZlc3QuaWQpLCBzaG91bGRQcmVsb2FkOiB0cnVlIH0pO1xuICAgIHRoaXMucmVnaXN0ZXJDb21wb25lbnQoeyBjb21wb25lbnQ6IG5ldyBJMThuQ29tcG9uZW50KCksIHNob3VsZFByZWxvYWQ6IHRydWUgfSk7XG4gICAgdGhpcy5ub3RpY2VDb21wb25lbnQgPSB0aGlzLnJlZ2lzdGVyQ29tcG9uZW50KHsgY29tcG9uZW50OiBuZXcgUGx1Z2luTm90aWNlQ29tcG9uZW50KG1hbmlmZXN0Lm5hbWUpIH0pO1xuICAgIHRoaXMucmVnaXN0ZXJDb21wb25lbnQoeyBjb21wb25lbnQ6IG5ldyBBc3luY0Vycm9ySGFuZGxlckNvbXBvbmVudCh0aGlzLm5vdGljZUNvbXBvbmVudCkgfSk7XG4gICAgdGhpcy5hYm9ydFNpZ25hbENvbXBvbmVudCA9IHRoaXMucmVnaXN0ZXJDb21wb25lbnQoeyBjb21wb25lbnQ6IG5ldyBBYm9ydFNpZ25hbENvbXBvbmVudChtYW5pZmVzdC5pZCkgfSk7XG4gICAgdGhpcy5jb25zb2xlRGVidWdDb21wb25lbnQgPSB0aGlzLnJlZ2lzdGVyQ29tcG9uZW50KHsgY29tcG9uZW50OiBuZXcgQ29uc29sZURlYnVnQ29tcG9uZW50KG1hbmlmZXN0LmlkKSB9KTtcbiAgICB0aGlzLmxpZmVjeWNsZUV2ZW50c0NvbXBvbmVudCA9IHRoaXMucmVnaXN0ZXJDb21wb25lbnQoeyBjb21wb25lbnQ6IG5ldyBMaWZlY3ljbGVFdmVudHNDb21wb25lbnQoYXBwKSB9KTtcbiAgICB0aGlzLnNldHRpbmdzQ29tcG9uZW50ID0gdGhpcy5yZWdpc3RlckNvbXBvbmVudCh7IGNvbXBvbmVudDogbmV3IEVtcHR5UGx1Z2luU2V0dGluZ3NDb21wb25lbnQoKSwgc2hvdWxkUHJlbG9hZDogdHJ1ZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgZXh0ZXJuYWwgc2V0dGluZ3MgY2hhbmdlLlxuICAgKlxuICAgKiBPdmVycmlkZSBpbiBzdWJjbGFzcyBpZiBuZWVkZWQuIE1ha2Ugc3VyZSB0byBjYWxsIGBhd2FpdCBzdXBlci5vbkV4dGVybmFsU2V0dGluZ3NDaGFuZ2UoKWAgZmlyc3QuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgYXN5bmMgb25FeHRlcm5hbFNldHRpbmdzQ2hhbmdlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHN1cGVyLm9uRXh0ZXJuYWxTZXR0aW5nc0NoYW5nZT8uKCk7XG4gICAgYXdhaXQgdGhpcy5zZXR0aW5nc0NvbXBvbmVudC5vbkV4dGVybmFsU2V0dGluZ3NDaGFuZ2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgcGx1Z2luIGlzIGxvYWRlZC4gRm9yY2UtbG9hZHMgY29tcG9uZW50cyB0aGF0IG11c3QgYmUgcmVhZHlcbiAgICogYmVmb3JlIHBsdWdpbiBsb2dpYywgdGhlbiBjYWxscyBgb25sb2FkSW1wbCgpYC5cbiAgICpcbiAgICogVXN1YWxseSwgeW91IGRvbid0IG5lZWQgdG8gb3ZlcnJpZGUgdGhpcyBtZXRob2QuIE92ZXJyaWRlIHtAbGluayBvbmxvYWRJbXBsfSBpbnN0ZWFkLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGFzeW5jIG9ubG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBzdXBlci5vbmxvYWQoKTtcblxuICAgIGZvciAoY29uc3Qga2V5IG9mIHRoaXMucHJlbG9hZEtleXMpIHtcbiAgICAgIGNvbnN0IGNvbXBvbmVudCA9IHRoaXMuY29tcG9uZW50c01hcC5nZXQoa2V5KTtcbiAgICAgIGFzc2VydE5vbk51bGxhYmxlKGNvbXBvbmVudCwgYENvbXBvbmVudCB3aXRoIGtleSAnJHtrZXl9JyBub3QgZm91bmRgKTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tY29uZnVzaW5nLXZvaWQtZXhwcmVzc2lvbiAtLSBDb21wb25lbnQubG9hZCgpIHJldHVybnMgdm9pZHxQcm9taXNlIGF0IHJ1bnRpbWUgZGVzcGl0ZSB2b2lkIHR5cGluZy5cbiAgICAgIGF3YWl0IChjb21wb25lbnQubG9hZCgpIGFzIFByb21pc2FibGU8dm9pZD4pO1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMub25sb2FkSW1wbCgpO1xuICAgIGludm9rZUFzeW5jU2FmZWx5QWZ0ZXJEZWxheSh0aGlzLmFmdGVyTG9hZC5iaW5kKHRoaXMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgbGF5b3V0IGlzIHJlYWR5LlxuICAgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIG9uTGF5b3V0UmVhZHkoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgbm9vcEFzeW5jKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIGFmdGVyIGFsbCBwcmUtbG9hZCBjb21wb25lbnRzIGFyZSBpbml0aWFsaXplZC4gT3ZlcnJpZGUgdGhpcyB0byBhZGQgcGx1Z2luLXNwZWNpZmljIGxvZ2ljLlxuICAgKlxuICAgKiBAcmVtYXJrcyBJdCBpcyBpbXBvcnRhbnQgdG8gY2FsbCBgc3VwZXIub25sb2FkSW1wbCgpYCBpbiBvdmVycmlkZGVuIG1ldGhvZC5cbiAgICovXG4gIHByb3RlY3RlZCBhc3luYyBvbmxvYWRJbXBsKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IG5vb3BBc3luYygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIGNvbXBvbmVudCB3aXRoIHRoZSBwbHVnaW4uIElmIGEgY29tcG9uZW50IHdpdGggdGhlIHNhbWUga2V5IGlzIGFscmVhZHkgcmVnaXN0ZXJlZCxcbiAgICogdGhlIG9sZCBjb21wb25lbnQgaXMgcmVtb3ZlZCBhbmQgcmVwbGFjZWQuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gVCAtIFRoZSBjb21wb25lbnQgdHlwZS5cbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSByZWdpc3RyYXRpb24gcGFyYW1zLlxuICAgKiBAcmV0dXJucyBUaGUgcmVnaXN0ZXJlZCBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVnaXN0ZXJDb21wb25lbnQ8VCBleHRlbmRzIENvbXBvbmVudD4ocGFyYW1zOiBSZWdpc3RlckNvbXBvbmVudFBhcmFtczxUPik6IFQge1xuICAgIGNvbnN0IHJlc29sdmVkS2V5ID0gcGFyYW1zLmtleSA/PyBwYXJhbXMuY29tcG9uZW50LmNvbnN0cnVjdG9yLm5hbWU7XG4gICAgY29uc3Qgb2xkQ29tcG9uZW50ID0gdGhpcy5jb21wb25lbnRzTWFwLmdldChyZXNvbHZlZEtleSk7XG4gICAgaWYgKG9sZENvbXBvbmVudCkge1xuICAgICAgdGhpcy5yZW1vdmVDaGlsZChvbGRDb21wb25lbnQpO1xuICAgIH1cbiAgICB0aGlzLmNvbXBvbmVudHNNYXAuc2V0KHJlc29sdmVkS2V5LCBwYXJhbXMuY29tcG9uZW50KTtcbiAgICB0aGlzLmFkZENoaWxkKHBhcmFtcy5jb21wb25lbnQpO1xuXG4gICAgaWYgKHBhcmFtcy5zaG91bGRQcmVsb2FkKSB7XG4gICAgICB0aGlzLnByZWxvYWRLZXlzLmFkZChyZXNvbHZlZEtleSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHJlbG9hZEtleXMuZGVsZXRlKHJlc29sdmVkS2V5KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGFyYW1zLmNvbXBvbmVudDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgYWZ0ZXJMb2FkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmFib3J0U2lnbmFsQ29tcG9uZW50LmFib3J0U2lnbmFsLmFib3J0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy5saWZlY3ljbGVFdmVudHNDb21wb25lbnQudHJpZ2dlckxpZmVjeWNsZUV2ZW50KCdsb2FkJyk7XG4gICAgdGhpcy5hcHAud29ya3NwYWNlLm9uTGF5b3V0UmVhZHkoY29udmVydEFzeW5jVG9TeW5jKHRoaXMub25MYXlvdXRSZWFkeUJhc2UuYmluZCh0aGlzKSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBvbkxheW91dFJlYWR5QmFzZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5vbkxheW91dFJlYWR5KCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IHRoaXMubGlmZWN5Y2xlRXZlbnRzQ29tcG9uZW50LnRyaWdnZXJMaWZlY3ljbGVFdmVudCgnbGF5b3V0UmVhZHknKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBSZWxvYWRzIHRoZSBzcGVjaWZpZWQgcGx1Z2luIGJ5IGRpc2FibGluZyBhbmQgdGhlbiByZS1lbmFibGluZyBpdC5cbiAqXG4gKiBAcGFyYW0gcGx1Z2luIC0gVGhlIHBsdWdpbiB0byByZWxvYWQuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHBsdWdpbiBpcyByZWxvYWRlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbG9hZFBsdWdpbihwbHVnaW46IE9ic2lkaWFuUGx1Z2luKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHBsdWdpbnMgPSBwbHVnaW4uYXBwLnBsdWdpbnM7XG4gIGNvbnN0IHBsdWdpbklkID0gcGx1Z2luLm1hbmlmZXN0LmlkO1xuICBhd2FpdCBwbHVnaW5zLmRpc2FibGVQbHVnaW4ocGx1Z2luSWQpO1xuICBhd2FpdCBwbHVnaW5zLmVuYWJsZVBsdWdpbihwbHVnaW5JZCk7XG59XG5cbi8qKlxuICogRGlzcGxheXMgYW4gZXJyb3IgbWVzc2FnZSBhcyBhIG5vdGljZSwgbG9ncyBpdCB0byB0aGUgY29uc29sZSwgYW5kIGRpc2FibGVzIHRoZSBzcGVjaWZpZWQgcGx1Z2luLlxuICpcbiAqIEBwYXJhbSBwbHVnaW4gLSBUaGUgcGx1Z2luIHRvIGRpc2FibGUuXG4gKiBAcGFyYW0gbWVzc2FnZSAtIFRoZSBlcnJvciBtZXNzYWdlIHRvIGRpc3BsYXkgYW5kIGxvZy5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgcGx1Z2luIGlzIGRpc2FibGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2hvd0Vycm9yQW5kRGlzYWJsZVBsdWdpbihwbHVnaW46IE9ic2lkaWFuUGx1Z2luLCBtZXNzYWdlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgbmV3IE5vdGljZShtZXNzYWdlKTtcbiAgcHJpbnRFcnJvcihuZXcgRXJyb3IobWVzc2FnZSkpO1xuICBhd2FpdCBwbHVnaW4uYXBwLnBsdWdpbnMuZGlzYWJsZVBsdWdpbihwbHVnaW4ubWFuaWZlc3QuaWQpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFnQkE7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0EsVUFBVTtBQUFBLE9BQ0w7QUFJUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsa0JBQWtCO0FBQzNCLFNBQVMsaUJBQWlCO0FBQzFCLFNBQVMseUJBQXlCO0FBQ2xDLFNBQVMsNEJBQTRCO0FBQ3JDLFNBQVMsa0NBQWtDO0FBQzNDLFNBQVMsNkJBQTZCO0FBQ3RDLFNBQVMscUJBQXFCO0FBQzlCLFNBQVMsZ0NBQWdDO0FBQ3pDLFNBQVMsOEJBQThCO0FBQ3ZDLFNBQVMsNkJBQTZCO0FBQ3RDLFNBQVMsb0NBQW9DO0FBZ0N0QyxNQUFlLG1CQUFtQixl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
@@ -4,6 +4,7 @@ if you want to view the source, please visit the github repository of this plugi
4
4
  */
5
5
 
6
6
  (function initEsm() {
7
+ // eslint-disable-next-line obsidianmd/prefer-active-doc -- Actively use globalThis.
7
8
  if (globalThis.process) {
8
9
  return;
9
10
  }
@@ -16,6 +17,7 @@ if you want to view the source, please visit the github repository of this plugi
16
17
  env: {},
17
18
  platform: 'android'
18
19
  };
20
+ // eslint-disable-next-line obsidianmd/prefer-active-doc -- Actively use globalThis.
19
21
  globalThis.process = browserProcess;
20
22
  })();
21
23
 
@@ -96,4 +98,4 @@ export {
96
98
  addToQueueAndWait,
97
99
  flushQueue
98
100
  };
99
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3F1ZXVlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQ29udGFpbnMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIGVucXVldWluZyBhbmQgcHJvY2Vzc2luZyBmdW5jdGlvbnMgaW4gT2JzaWRpYW4uXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgdHlwZSB7IFZhbHVlV3JhcHBlciB9IGZyb20gJy4vYXBwLnRzJztcblxuaW1wb3J0IHtcbiAgYWJvcnRTaWduYWxBbnksXG4gIGFib3J0U2lnbmFsTmV2ZXJcbn0gZnJvbSAnLi4vYWJvcnQtY29udHJvbGxlci50cyc7XG5pbXBvcnQge1xuICBhZGRFcnJvckhhbmRsZXIsXG4gIGludm9rZUFzeW5jU2FmZWx5XG59IGZyb20gJy4uL2FzeW5jLnRzJztcbmltcG9ydCB7IGdldFN0YWNrVHJhY2UgfSBmcm9tICcuLi9lcnJvci50cyc7XG5pbXBvcnQgeyBub29wIH0gZnJvbSAnLi4vZnVuY3Rpb24udHMnO1xuaW1wb3J0IHsgZ2V0T2JzaWRpYW5EZXZVdGlsc1N0YXRlIH0gZnJvbSAnLi9hcHAudHMnO1xuaW1wb3J0IHsgcnVuV2l0aFRpbWVvdXROb3RpY2UgfSBmcm9tICcuL2FzeW5jLXdpdGgtbm90aWNlLnRzJztcbmltcG9ydCB7IHQgfSBmcm9tICcuL2kxOG4vaTE4bi50cyc7XG5pbXBvcnQgeyBpbnZva2VBc3luY0FuZExvZyB9IGZyb20gJy4vbG9nZ2VyLnRzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUge0BsaW5rIGFkZFRvUXVldWVBbmRXYWl0fSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBZGRUb1F1ZXVlQW5kV2FpdFBhcmFtcyB7XG4gIC8qKlxuICAgKiBPcHRpb25hbCBhYm9ydCBzaWduYWwuXG4gICAqL1xuICByZWFkb25seSBhYm9ydFNpZ25hbD86IEFib3J0U2lnbmFsO1xuXG4gIC8qKlxuICAgKiBUaGUgT2JzaWRpYW4gYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBhcHA6IEFwcDtcblxuICAvKipcbiAgICogVGhlIGZ1bmN0aW9uIHRvIGFkZC5cbiAgICovXG4gIHJlYWRvbmx5IG9wZXJhdGlvbkZuOiAoYWJvcnRTaWduYWw6IEFib3J0U2lnbmFsKSA9PiBQcm9taXNhYmxlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBuYW1lIG9mIHRoZSBvcGVyYXRpb24uXG4gICAqL1xuICByZWFkb25seSBvcGVyYXRpb25OYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHNob3cgYSB0aW1lb3V0IG5vdGljZS4gRGVmYXVsdCBpcyBgdHJ1ZWAuXG4gICAqL1xuICByZWFkb25seSBzaG91bGRTaG93VGltZW91dE5vdGljZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIHN0YWNrIHRyYWNlLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tUcmFjZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzLlxuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dEluTWlsbGlzZWNvbmRzPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHRoZSB7QGxpbmsgYWRkVG9RdWV1ZX0gZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWRkVG9RdWV1ZVBhcmFtcyB7XG4gIC8qKlxuICAgKiBPcHRpb25hbCBhYm9ydCBzaWduYWwuXG4gICAqL1xuICByZWFkb25seSBhYm9ydFNpZ25hbD86IEFib3J0U2lnbmFsO1xuXG4gIC8qKlxuICAgKiBUaGUgT2JzaWRpYW4gYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBhcHA6IEFwcDtcblxuICAvKipcbiAgICogVGhlIGZ1bmN0aW9uIHRvIGFkZC5cbiAgICovXG4gIHJlYWRvbmx5IG9wZXJhdGlvbkZuOiAoYWJvcnRTaWduYWw6IEFib3J0U2lnbmFsKSA9PiBQcm9taXNhYmxlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBuYW1lIG9mIHRoZSBvcGVyYXRpb24uXG4gICAqL1xuICByZWFkb25seSBvcGVyYXRpb25OYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHNob3cgYSB0aW1lb3V0IG5vdGljZS4gRGVmYXVsdCBpcyBgdHJ1ZWAuXG4gICAqL1xuICByZWFkb25seSBzaG91bGRTaG93VGltZW91dE5vdGljZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIHN0YWNrIHRyYWNlLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tUcmFjZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzLlxuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dEluTWlsbGlzZWNvbmRzPzogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgUXVldWUge1xuICBpdGVtczogUXVldWVJdGVtW107XG4gIHByb21pc2U6IFByb21pc2U8dm9pZD47XG59XG5cbmludGVyZmFjZSBRdWV1ZUl0ZW0ge1xuICBhYm9ydFNpZ25hbDogQWJvcnRTaWduYWw7XG4gIG9wZXJhdGlvbkZuKHRoaXM6IHZvaWQsIGFib3J0U2lnbmFsOiBBYm9ydFNpZ25hbCk6IFByb21pc2FibGU8dm9pZD47XG4gIG9wZXJhdGlvbk5hbWU6IHN0cmluZztcbiAgc2hvdWxkU2hvd1RpbWVvdXROb3RpY2U6IGJvb2xlYW47XG4gIHN0YWNrVHJhY2U6IHN0cmluZztcbiAgdGltZW91dEluTWlsbGlzZWNvbmRzOiBudW1iZXI7XG59XG5cbi8qKlxuICogQWRkcyBhbiBhc3luY2hyb25vdXMgZnVuY3Rpb24gdG8gYmUgZXhlY3V0ZWQgYWZ0ZXIgdGhlIHByZXZpb3VzIGZ1bmN0aW9uIGNvbXBsZXRlcy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZFRvUXVldWUocGFyYW1zOiBBZGRUb1F1ZXVlUGFyYW1zKTogdm9pZCB7XG4gIGNvbnN0IHN0YWNrVHJhY2UgPSBwYXJhbXMuc3RhY2tUcmFjZSA/PyBnZXRTdGFja1RyYWNlKDEpO1xuICBpbnZva2VBc3luY1NhZmVseSgoKSA9PiBhZGRUb1F1ZXVlQW5kV2FpdChwYXJhbXMpLCBzdGFja1RyYWNlKTtcbn1cblxuLyoqXG4gKiBBZGRzIGFuIGFzeW5jaHJvbm91cyBmdW5jdGlvbiB0byBiZSBleGVjdXRlZCBhZnRlciB0aGUgcHJldmlvdXMgZnVuY3Rpb24gY29tcGxldGVzIGFuZCByZXR1cm5zIGEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZnVuY3Rpb24gY29tcGxldGVzLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYWRkVG9RdWV1ZUFuZFdhaXQocGFyYW1zOiBBZGRUb1F1ZXVlQW5kV2FpdFBhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBhYm9ydFNpZ25hbCA9IHBhcmFtcy5hYm9ydFNpZ25hbCA/PyBhYm9ydFNpZ25hbE5ldmVyKCk7XG4gIGFib3J0U2lnbmFsLnRocm93SWZBYm9ydGVkKCk7XG5cbiAgY29uc3QgREVGQVVMVF9USU1FT1VUX0lOX01JTExJU0VDT05EUyA9IDYwMDAwO1xuICBjb25zdCB0aW1lb3V0SW5NaWxsaXNlY29uZHMgPSBwYXJhbXMudGltZW91dEluTWlsbGlzZWNvbmRzID8/IERFRkFVTFRfVElNRU9VVF9JTl9NSUxMSVNFQ09ORFM7XG4gIGNvbnN0IHN0YWNrVHJhY2UgPSBwYXJhbXMuc3RhY2tUcmFjZSA/PyBnZXRTdGFja1RyYWNlKDEpO1xuICBjb25zdCBvcGVyYXRpb25OYW1lID0gcGFyYW1zLm9wZXJhdGlvbk5hbWUgPz8gJyc7XG4gIGNvbnN0IHF1ZXVlID0gZ2V0UXVldWUocGFyYW1zLmFwcCkudmFsdWU7XG4gIHF1ZXVlLml0ZW1zLnB1c2goe1xuICAgIGFib3J0U2lnbmFsLFxuICAgIG9wZXJhdGlvbkZuOiBwYXJhbXMub3BlcmF0aW9uRm4sXG4gICAgb3BlcmF0aW9uTmFtZSxcbiAgICBzaG91bGRTaG93VGltZW91dE5vdGljZTogcGFyYW1zLnNob3VsZFNob3dUaW1lb3V0Tm90aWNlID8/IHRydWUsXG4gICAgc3RhY2tUcmFjZSxcbiAgICB0aW1lb3V0SW5NaWxsaXNlY29uZHNcbiAgfSk7XG4gIHF1ZXVlLnByb21pc2UgPSBxdWV1ZS5wcm9taXNlLnRoZW4oKCkgPT4gcHJvY2Vzc05leHRRdWV1ZUl0ZW0ocGFyYW1zLmFwcCkpO1xuICBhd2FpdCBxdWV1ZS5wcm9taXNlO1xufVxuXG4vKipcbiAqIEZsdXNoZXMgdGhlIHF1ZXVlO1xuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmbHVzaFF1ZXVlKGFwcDogQXBwKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGFkZFRvUXVldWVBbmRXYWl0KHtcbiAgICBhcHAsXG4gICAgb3BlcmF0aW9uRm46IG5vb3AsXG4gICAgb3BlcmF0aW9uTmFtZTogdCgoJCkgPT4gJC5vYnNpZGlhbkRldlV0aWxzLnF1ZXVlLmZsdXNoUXVldWUpXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBnZXRRdWV1ZShhcHA6IEFwcCk6IFZhbHVlV3JhcHBlcjxRdWV1ZT4ge1xuICByZXR1cm4gZ2V0T2JzaWRpYW5EZXZVdGlsc1N0YXRlKGFwcCwgJ3F1ZXVlJywgeyBpdGVtczogW10sIHByb21pc2U6IFByb21pc2UucmVzb2x2ZSgpIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBwcm9jZXNzTmV4dFF1ZXVlSXRlbShhcHA6IEFwcCk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBxdWV1ZSA9IGdldFF1ZXVlKGFwcCkudmFsdWU7XG4gIGNvbnN0IGl0ZW0gPSBxdWV1ZS5pdGVtc1swXTtcbiAgLyogdjggaWdub3JlIHN0YXJ0IC0tIERlZmVuc2l2ZSBjaGVjazsgcHJvY2Vzc05leHRRdWV1ZUl0ZW0gaXMgb25seSBjYWxsZWQgYWZ0ZXIgYW4gaXRlbSBpcyBwdXNoZWQuICovXG4gIGlmICghaXRlbSkge1xuICAgIHJldHVybjtcbiAgfVxuICAvKiB2OCBpZ25vcmUgc3RvcCAqL1xuXG4gIGF3YWl0IGFkZEVycm9ySGFuZGxlcigoKSA9PlxuICAgIHJ1bldpdGhUaW1lb3V0Tm90aWNlKHtcbiAgICAgIGNvbnRleHQ6IHsgcXVldWVkRm46IGl0ZW0ub3BlcmF0aW9uRm4gfSxcbiAgICAgIGFzeW5jIG9wZXJhdGlvbkZuKGFib3J0U2lnbmFsOiBBYm9ydFNpZ25hbCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCBpbnZva2VBc3luY0FuZExvZyhcbiAgICAgICAgICBpdGVtLm9wZXJhdGlvbk5hbWUgfHwgcHJvY2Vzc05leHRRdWV1ZUl0ZW0ubmFtZSxcbiAgICAgICAgICBpdGVtLm9wZXJhdGlvbkZuLFxuICAgICAgICAgIGFib3J0U2lnbmFsQW55KGFib3J0U2lnbmFsLCBpdGVtLmFib3J0U2lnbmFsKSxcbiAgICAgICAgICBpdGVtLnN0YWNrVHJhY2VcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgICBvcGVyYXRpb25OYW1lOiBpdGVtLm9wZXJhdGlvbk5hbWUsXG4gICAgICBzaG91bGRTaG93VGltZW91dE5vdGljZTogaXRlbS5zaG91bGRTaG93VGltZW91dE5vdGljZSxcbiAgICAgIHN0YWNrVHJhY2U6IGl0ZW0uc3RhY2tUcmFjZSxcbiAgICAgIHRpbWVvdXRJbk1pbGxpc2Vjb25kczogaXRlbS50aW1lb3V0SW5NaWxsaXNlY29uZHNcbiAgICB9KVxuICApO1xuICBxdWV1ZS5pdGVtcy5zaGlmdCgpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBV0E7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMscUJBQXFCO0FBQzlCLFNBQVMsWUFBWTtBQUNyQixTQUFTLGdDQUFnQztBQUN6QyxTQUFTLDRCQUE0QjtBQUNyQyxTQUFTLFNBQVM7QUFDbEIsU0FBUyx5QkFBeUI7QUFxRzNCLFNBQVMsV0FBVyxRQUFnQztBQUN6RCxRQUFNLGFBQWEsT0FBTyxjQUFjLGNBQWMsQ0FBQztBQUN2RCxvQkFBa0IsTUFBTSxrQkFBa0IsTUFBTSxHQUFHLFVBQVU7QUFDL0Q7QUFPQSxlQUFzQixrQkFBa0IsUUFBZ0Q7QUFDdEYsUUFBTSxjQUFjLE9BQU8sZUFBZSxpQkFBaUI7QUFDM0QsY0FBWSxlQUFlO0FBRTNCLFFBQU0sa0NBQWtDO0FBQ3hDLFFBQU0sd0JBQXdCLE9BQU8seUJBQXlCO0FBQzlELFFBQU0sYUFBYSxPQUFPLGNBQWMsY0FBYyxDQUFDO0FBQ3ZELFFBQU0sZ0JBQWdCLE9BQU8saUJBQWlCO0FBQzlDLFFBQU0sUUFBUSxTQUFTLE9BQU8sR0FBRyxFQUFFO0FBQ25DLFFBQU0sTUFBTSxLQUFLO0FBQUEsSUFDZjtBQUFBLElBQ0EsYUFBYSxPQUFPO0FBQUEsSUFDcEI7QUFBQSxJQUNBLHlCQUF5QixPQUFPLDJCQUEyQjtBQUFBLElBQzNEO0FBQUEsSUFDQTtBQUFBLEVBQ0YsQ0FBQztBQUNELFFBQU0sVUFBVSxNQUFNLFFBQVEsS0FBSyxNQUFNLHFCQUFxQixPQUFPLEdBQUcsQ0FBQztBQUN6RSxRQUFNLE1BQU07QUFDZDtBQU9BLGVBQXNCLFdBQVcsS0FBeUI7QUFDeEQsUUFBTSxrQkFBa0I7QUFBQSxJQUN0QjtBQUFBLElBQ0EsYUFBYTtBQUFBLElBQ2IsZUFBZSxFQUFFLENBQUMsTUFBTSxFQUFFLGlCQUFpQixNQUFNLFVBQVU7QUFBQSxFQUM3RCxDQUFDO0FBQ0g7QUFFQSxTQUFTLFNBQVMsS0FBK0I7QUFDL0MsU0FBTyx5QkFBeUIsS0FBSyxTQUFTLEVBQUUsT0FBTyxDQUFDLEdBQUcsU0FBUyxRQUFRLFFBQVEsRUFBRSxDQUFDO0FBQ3pGO0FBRUEsZUFBZSxxQkFBcUIsS0FBeUI7QUFDM0QsUUFBTSxRQUFRLFNBQVMsR0FBRyxFQUFFO0FBQzVCLFFBQU0sT0FBTyxNQUFNLE1BQU0sQ0FBQztBQUUxQixNQUFJLENBQUMsTUFBTTtBQUNUO0FBQUEsRUFDRjtBQUdBLFFBQU07QUFBQSxJQUFnQixNQUNwQixxQkFBcUI7QUFBQSxNQUNuQixTQUFTLEVBQUUsVUFBVSxLQUFLLFlBQVk7QUFBQSxNQUN0QyxNQUFNLFlBQVksYUFBeUM7QUFDekQsY0FBTTtBQUFBLFVBQ0osS0FBSyxpQkFBaUIscUJBQXFCO0FBQUEsVUFDM0MsS0FBSztBQUFBLFVBQ0wsZUFBZSxhQUFhLEtBQUssV0FBVztBQUFBLFVBQzVDLEtBQUs7QUFBQSxRQUNQO0FBQUEsTUFDRjtBQUFBLE1BQ0EsZUFBZSxLQUFLO0FBQUEsTUFDcEIseUJBQXlCLEtBQUs7QUFBQSxNQUM5QixZQUFZLEtBQUs7QUFBQSxNQUNqQix1QkFBdUIsS0FBSztBQUFBLElBQzlCLENBQUM7QUFBQSxFQUNIO0FBQ0EsUUFBTSxNQUFNLE1BQU07QUFDcEI7IiwKICAibmFtZXMiOiBbXQp9Cg==
101
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3F1ZXVlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQ29udGFpbnMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIGVucXVldWluZyBhbmQgcHJvY2Vzc2luZyBmdW5jdGlvbnMgaW4gT2JzaWRpYW4uXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgdHlwZSB7IFZhbHVlV3JhcHBlciB9IGZyb20gJy4vYXBwLnRzJztcblxuaW1wb3J0IHtcbiAgYWJvcnRTaWduYWxBbnksXG4gIGFib3J0U2lnbmFsTmV2ZXJcbn0gZnJvbSAnLi4vYWJvcnQtY29udHJvbGxlci50cyc7XG5pbXBvcnQge1xuICBhZGRFcnJvckhhbmRsZXIsXG4gIGludm9rZUFzeW5jU2FmZWx5XG59IGZyb20gJy4uL2FzeW5jLnRzJztcbmltcG9ydCB7IGdldFN0YWNrVHJhY2UgfSBmcm9tICcuLi9lcnJvci50cyc7XG5pbXBvcnQgeyBub29wIH0gZnJvbSAnLi4vZnVuY3Rpb24udHMnO1xuaW1wb3J0IHsgZ2V0T2JzaWRpYW5EZXZVdGlsc1N0YXRlIH0gZnJvbSAnLi9hcHAudHMnO1xuaW1wb3J0IHsgcnVuV2l0aFRpbWVvdXROb3RpY2UgfSBmcm9tICcuL2FzeW5jLXdpdGgtbm90aWNlLnRzJztcbmltcG9ydCB7IHQgfSBmcm9tICcuL2kxOG4vaTE4bi50cyc7XG5pbXBvcnQgeyBpbnZva2VBc3luY0FuZExvZyB9IGZyb20gJy4vbG9nZ2VyLnRzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUge0BsaW5rIGFkZFRvUXVldWVBbmRXYWl0fSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBZGRUb1F1ZXVlQW5kV2FpdFBhcmFtcyB7XG4gIC8qKlxuICAgKiBPcHRpb25hbCBhYm9ydCBzaWduYWwuXG4gICAqL1xuICByZWFkb25seSBhYm9ydFNpZ25hbD86IEFib3J0U2lnbmFsO1xuXG4gIC8qKlxuICAgKiBUaGUgT2JzaWRpYW4gYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBhcHA6IEFwcDtcblxuICAvKipcbiAgICogVGhlIGZ1bmN0aW9uIHRvIGFkZC5cbiAgICovXG4gIHJlYWRvbmx5IG9wZXJhdGlvbkZuOiAoYWJvcnRTaWduYWw6IEFib3J0U2lnbmFsKSA9PiBQcm9taXNhYmxlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBuYW1lIG9mIHRoZSBvcGVyYXRpb24uXG4gICAqL1xuICByZWFkb25seSBvcGVyYXRpb25OYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHNob3cgYSB0aW1lb3V0IG5vdGljZS4gRGVmYXVsdCBpcyBgdHJ1ZWAuXG4gICAqL1xuICByZWFkb25seSBzaG91bGRTaG93VGltZW91dE5vdGljZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIHN0YWNrIHRyYWNlLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tUcmFjZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzLlxuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dEluTWlsbGlzZWNvbmRzPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHRoZSB7QGxpbmsgYWRkVG9RdWV1ZX0gZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWRkVG9RdWV1ZVBhcmFtcyB7XG4gIC8qKlxuICAgKiBPcHRpb25hbCBhYm9ydCBzaWduYWwuXG4gICAqL1xuICByZWFkb25seSBhYm9ydFNpZ25hbD86IEFib3J0U2lnbmFsO1xuXG4gIC8qKlxuICAgKiBUaGUgT2JzaWRpYW4gYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBhcHA6IEFwcDtcblxuICAvKipcbiAgICogVGhlIGZ1bmN0aW9uIHRvIGFkZC5cbiAgICovXG4gIHJlYWRvbmx5IG9wZXJhdGlvbkZuOiAoYWJvcnRTaWduYWw6IEFib3J0U2lnbmFsKSA9PiBQcm9taXNhYmxlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBuYW1lIG9mIHRoZSBvcGVyYXRpb24uXG4gICAqL1xuICByZWFkb25seSBvcGVyYXRpb25OYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHNob3cgYSB0aW1lb3V0IG5vdGljZS4gRGVmYXVsdCBpcyBgdHJ1ZWAuXG4gICAqL1xuICByZWFkb25seSBzaG91bGRTaG93VGltZW91dE5vdGljZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIHN0YWNrIHRyYWNlLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tUcmFjZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzLlxuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dEluTWlsbGlzZWNvbmRzPzogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgUXVldWUge1xuICBpdGVtczogUXVldWVJdGVtW107XG4gIHByb21pc2U6IFByb21pc2U8dm9pZD47XG59XG5cbmludGVyZmFjZSBRdWV1ZUl0ZW0ge1xuICBhYm9ydFNpZ25hbDogQWJvcnRTaWduYWw7XG4gIG9wZXJhdGlvbkZuKHRoaXM6IHZvaWQsIGFib3J0U2lnbmFsOiBBYm9ydFNpZ25hbCk6IFByb21pc2FibGU8dm9pZD47XG4gIG9wZXJhdGlvbk5hbWU6IHN0cmluZztcbiAgc2hvdWxkU2hvd1RpbWVvdXROb3RpY2U6IGJvb2xlYW47XG4gIHN0YWNrVHJhY2U6IHN0cmluZztcbiAgdGltZW91dEluTWlsbGlzZWNvbmRzOiBudW1iZXI7XG59XG5cbi8qKlxuICogQWRkcyBhbiBhc3luY2hyb25vdXMgZnVuY3Rpb24gdG8gYmUgZXhlY3V0ZWQgYWZ0ZXIgdGhlIHByZXZpb3VzIGZ1bmN0aW9uIGNvbXBsZXRlcy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZFRvUXVldWUocGFyYW1zOiBBZGRUb1F1ZXVlUGFyYW1zKTogdm9pZCB7XG4gIGNvbnN0IHN0YWNrVHJhY2UgPSBwYXJhbXMuc3RhY2tUcmFjZSA/PyBnZXRTdGFja1RyYWNlKDEpO1xuICBpbnZva2VBc3luY1NhZmVseSgoKSA9PiBhZGRUb1F1ZXVlQW5kV2FpdChwYXJhbXMpLCBzdGFja1RyYWNlKTtcbn1cblxuLyoqXG4gKiBBZGRzIGFuIGFzeW5jaHJvbm91cyBmdW5jdGlvbiB0byBiZSBleGVjdXRlZCBhZnRlciB0aGUgcHJldmlvdXMgZnVuY3Rpb24gY29tcGxldGVzIGFuZCByZXR1cm5zIGEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZnVuY3Rpb24gY29tcGxldGVzLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYWRkVG9RdWV1ZUFuZFdhaXQocGFyYW1zOiBBZGRUb1F1ZXVlQW5kV2FpdFBhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBhYm9ydFNpZ25hbCA9IHBhcmFtcy5hYm9ydFNpZ25hbCA/PyBhYm9ydFNpZ25hbE5ldmVyKCk7XG4gIGFib3J0U2lnbmFsLnRocm93SWZBYm9ydGVkKCk7XG5cbiAgY29uc3QgREVGQVVMVF9USU1FT1VUX0lOX01JTExJU0VDT05EUyA9IDYwMDAwO1xuICBjb25zdCB0aW1lb3V0SW5NaWxsaXNlY29uZHMgPSBwYXJhbXMudGltZW91dEluTWlsbGlzZWNvbmRzID8/IERFRkFVTFRfVElNRU9VVF9JTl9NSUxMSVNFQ09ORFM7XG4gIGNvbnN0IHN0YWNrVHJhY2UgPSBwYXJhbXMuc3RhY2tUcmFjZSA/PyBnZXRTdGFja1RyYWNlKDEpO1xuICBjb25zdCBvcGVyYXRpb25OYW1lID0gcGFyYW1zLm9wZXJhdGlvbk5hbWUgPz8gJyc7XG4gIGNvbnN0IHF1ZXVlID0gZ2V0UXVldWUocGFyYW1zLmFwcCkudmFsdWU7XG4gIHF1ZXVlLml0ZW1zLnB1c2goe1xuICAgIGFib3J0U2lnbmFsLFxuICAgIG9wZXJhdGlvbkZuOiBwYXJhbXMub3BlcmF0aW9uRm4sXG4gICAgb3BlcmF0aW9uTmFtZSxcbiAgICBzaG91bGRTaG93VGltZW91dE5vdGljZTogcGFyYW1zLnNob3VsZFNob3dUaW1lb3V0Tm90aWNlID8/IHRydWUsXG4gICAgc3RhY2tUcmFjZSxcbiAgICB0aW1lb3V0SW5NaWxsaXNlY29uZHNcbiAgfSk7XG4gIHF1ZXVlLnByb21pc2UgPSBxdWV1ZS5wcm9taXNlLnRoZW4oKCkgPT4gcHJvY2Vzc05leHRRdWV1ZUl0ZW0ocGFyYW1zLmFwcCkpO1xuICBhd2FpdCBxdWV1ZS5wcm9taXNlO1xufVxuXG4vKipcbiAqIEZsdXNoZXMgdGhlIHF1ZXVlO1xuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmbHVzaFF1ZXVlKGFwcDogQXBwKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGFkZFRvUXVldWVBbmRXYWl0KHtcbiAgICBhcHAsXG4gICAgb3BlcmF0aW9uRm46IG5vb3AsXG4gICAgb3BlcmF0aW9uTmFtZTogdCgoJCkgPT4gJC5vYnNpZGlhbkRldlV0aWxzLnF1ZXVlLmZsdXNoUXVldWUpXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBnZXRRdWV1ZShhcHA6IEFwcCk6IFZhbHVlV3JhcHBlcjxRdWV1ZT4ge1xuICByZXR1cm4gZ2V0T2JzaWRpYW5EZXZVdGlsc1N0YXRlKGFwcCwgJ3F1ZXVlJywgeyBpdGVtczogW10sIHByb21pc2U6IFByb21pc2UucmVzb2x2ZSgpIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBwcm9jZXNzTmV4dFF1ZXVlSXRlbShhcHA6IEFwcCk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBxdWV1ZSA9IGdldFF1ZXVlKGFwcCkudmFsdWU7XG4gIGNvbnN0IGl0ZW0gPSBxdWV1ZS5pdGVtc1swXTtcbiAgLyogdjggaWdub3JlIHN0YXJ0IC0tIERlZmVuc2l2ZSBjaGVjazsgcHJvY2Vzc05leHRRdWV1ZUl0ZW0gaXMgb25seSBjYWxsZWQgYWZ0ZXIgYW4gaXRlbSBpcyBwdXNoZWQuICovXG4gIGlmICghaXRlbSkge1xuICAgIHJldHVybjtcbiAgfVxuICAvKiB2OCBpZ25vcmUgc3RvcCAqL1xuXG4gIGF3YWl0IGFkZEVycm9ySGFuZGxlcigoKSA9PlxuICAgIHJ1bldpdGhUaW1lb3V0Tm90aWNlKHtcbiAgICAgIGNvbnRleHQ6IHsgcXVldWVkRm46IGl0ZW0ub3BlcmF0aW9uRm4gfSxcbiAgICAgIGFzeW5jIG9wZXJhdGlvbkZuKGFib3J0U2lnbmFsOiBBYm9ydFNpZ25hbCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCBpbnZva2VBc3luY0FuZExvZyhcbiAgICAgICAgICBpdGVtLm9wZXJhdGlvbk5hbWUgfHwgcHJvY2Vzc05leHRRdWV1ZUl0ZW0ubmFtZSxcbiAgICAgICAgICBpdGVtLm9wZXJhdGlvbkZuLFxuICAgICAgICAgIGFib3J0U2lnbmFsQW55KGFib3J0U2lnbmFsLCBpdGVtLmFib3J0U2lnbmFsKSxcbiAgICAgICAgICBpdGVtLnN0YWNrVHJhY2VcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgICBvcGVyYXRpb25OYW1lOiBpdGVtLm9wZXJhdGlvbk5hbWUsXG4gICAgICBzaG91bGRTaG93VGltZW91dE5vdGljZTogaXRlbS5zaG91bGRTaG93VGltZW91dE5vdGljZSxcbiAgICAgIHN0YWNrVHJhY2U6IGl0ZW0uc3RhY2tUcmFjZSxcbiAgICAgIHRpbWVvdXRJbk1pbGxpc2Vjb25kczogaXRlbS50aW1lb3V0SW5NaWxsaXNlY29uZHNcbiAgICB9KVxu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
@@ -4,6 +4,7 @@ if you want to view the source, please visit the github repository of this plugi
4
4
  */
5
5
 
6
6
  (function initEsm() {
7
+ // eslint-disable-next-line obsidianmd/prefer-active-doc -- Actively use globalThis.
7
8
  if (globalThis.process) {
8
9
  return;
9
10
  }
@@ -16,6 +17,7 @@ if you want to view the source, please visit the github repository of this plugi
16
17
  env: {},
17
18
  platform: 'android'
18
19
  };
20
+ // eslint-disable-next-line obsidianmd/prefer-active-doc -- Actively use globalThis.
19
21
  globalThis.process = browserProcess;
20
22
  })();
21
23
 
@@ -33,4 +35,4 @@ export {
33
35
  AppContext,
34
36
  useApp
35
37
  };
36
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3JlYWN0L2FwcC1jb250ZXh0LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogUGFzc2VzIG9ic2lkaWFuIHtAbGluayBBcHB9IGluc3RhbmNlIHRvIFJlYWN0IGNvbXBvbmVudHMuXG4gKi9cblxuaW1wb3J0IHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHtcbiAgY3JlYXRlQ29udGV4dCxcbiAgdXNlQ29udGV4dFxufSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IGVuc3VyZU5vbk51bGxhYmxlIH0gZnJvbSAnLi4vLi4vdHlwZS1ndWFyZHMudHMnO1xuXG4vKipcbiAqIEEgY29udGV4dCBmb3IgdGhlIGFwcC5cbiAqXG4gKiBVc2FnZTpcbiAqIGBgYHRzeFxuICogPEFwcENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2FwcH0+XG4gKiAgIDxZb3VyQ29tcG9uZW50IC8+XG4gKiA8L0FwcENvbnRleHQuUHJvdmlkZXI+XG4gKiBgYGBcbiAqL1xuLyogdjggaWdub3JlIHN0YXJ0IC0tIFJlYWN0IGNvbnRleHQgcmVxdWlyZXMgUmVhY3QgdGVzdGluZyBzZXR1cCB0aGF0IGlzIG5vdCBhdmFpbGFibGUgaW4gdGhpcyBwcm9qZWN0LiAqL1xuZXhwb3J0IGNvbnN0IEFwcENvbnRleHQgPSBjcmVhdGVDb250ZXh0PEFwcCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuLyoqXG4gKiBBIGhvb2sgdG8gdXNlIHRoZSBhcHAgY29udGV4dC5cbiAqXG4gKiBAcmV0dXJucyBUaGUgYXBwIGluc3RhbmNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQXBwKCk6IEFwcCB7XG4gIHJldHVybiBlbnN1cmVOb25OdWxsYWJsZSh1c2VDb250ZXh0KEFwcENvbnRleHQpLCAnQXBwQ29udGV4dCBub3QgZm91bmQnKTtcbn1cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFNQSxTQUFTLFdBQVc7QUFDcEI7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFFUCxTQUFTLHlCQUF5QjtBQWEzQixNQUFNLGFBQWEsY0FBK0IsTUFBUztBQU8zRCxTQUFTLFNBQWM7QUFDNUIsU0FBTyxrQkFBa0IsV0FBVyxVQUFVLEdBQUcsc0JBQXNCO0FBQ3pFOyIsCiAgIm5hbWVzIjogW10KfQo=
38
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3JlYWN0L2FwcC1jb250ZXh0LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogUGFzc2VzIG9ic2lkaWFuIHtAbGluayBBcHB9IGluc3RhbmNlIHRvIFJlYWN0IGNvbXBvbmVudHMuXG4gKi9cblxuaW1wb3J0IHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHtcbiAgY3JlYXRlQ29udGV4dCxcbiAgdXNlQ29udGV4dFxufSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IGVuc3VyZU5vbk51bGxhYmxlIH0gZnJvbSAnLi4vLi4vdHlwZS1ndWFyZHMudHMnO1xuXG4vKipcbiAqIEEgY29udGV4dCBmb3IgdGhlIGFwcC5cbiAqXG4gKiBVc2FnZTpcbiAqIGBgYHRzeFxuICogPEFwcENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2FwcH0+XG4gKiAgIDxZb3VyQ29tcG9uZW50IC8+XG4gKiA8L0FwcENvbnRleHQuUHJvdmlkZXI+XG4gKiBgYGBcbiAqL1xuLyogdjggaWdub3JlIHN0YXJ0IC0tIFJlYWN0IGNvbnRleHQgcmVxdWlyZXMgUmVhY3QgdGVzdGluZyBzZXR1cCB0aGF0IGlzIG5vdCBhdmFpbGFibGUgaW4gdGhpcyBwcm9qZWN0LiAqL1xuZXhwb3J0IGNvbnN0IEFwcENvbnRleHQgPSBjcmVhdGVDb250ZXh0PEFwcCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuLyoqXG4gKiBBIGhvb2sgdG8gdXNlIHRoZSBhcHAgY29udGV4dC5cbiAqXG4gKiBAcmV0dXJucyBUaGUgYXBwIGluc3RhbmNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQXBwKCk6IEFwcCB7XG4gIHJldHVybiBlbnN1cmVOb25OdWxsYWJsZSh1c2VDb250ZXh0KEFwcENvbnRleHQpLCAnQXBwQ29udGV4dCBub3QgZm91bmQnKTtcbn1cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU1BLFNBQVMsV0FBVztBQUNwQjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUVQLFNBQVMseUJBQXlCO0FBYTNCLE1BQU0sYUFBYSxjQUErQixNQUFTO0FBTzNELFNBQVMsU0FBYztBQUM1QixTQUFPLGtCQUFrQixXQUFXLFVBQVUsR0FBRyxzQkFBc0I7QUFDekU7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -4,6 +4,7 @@ if you want to view the source, please visit the github repository of this plugi
4
4
  */
5
5
 
6
6
  (function initEsm() {
7
+ // eslint-disable-next-line obsidianmd/prefer-active-doc -- Actively use globalThis.
7
8
  if (globalThis.process) {
8
9
  return;
9
10
  }
@@ -16,6 +17,7 @@ if you want to view the source, please visit the github repository of this plugi
16
17
  env: {},
17
18
  platform: 'android'
18
19
  };
20
+ // eslint-disable-next-line obsidianmd/prefer-active-doc -- Actively use globalThis.
19
21
  globalThis.process = browserProcess;
20
22
  })();
21
23
 
@@ -23,4 +25,4 @@ import * as app_context from "./app-context.mjs";
23
25
  export {
24
26
  app_context
25
27
  };
26
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3JlYWN0L2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgYXBwX2NvbnRleHQgZnJvbSAnLi9hcHAtY29udGV4dC50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxZQUFZLGlCQUFpQjsiLAogICJuYW1lcyI6IFtdCn0K
28
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3JlYWN0L2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgYXBwX2NvbnRleHQgZnJvbSAnLi9hcHAtY29udGV4dC50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLFlBQVksaUJBQWlCOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -4,6 +4,7 @@ if you want to view the source, please visit the github repository of this plugi
4
4
  */
5
5
 
6
6
  (function initEsm() {
7
+ // eslint-disable-next-line obsidianmd/prefer-active-doc -- Actively use globalThis.
7
8
  if (globalThis.process) {
8
9
  return;
9
10
  }
@@ -16,6 +17,7 @@ if you want to view the source, please visit the github repository of this plugi
16
17
  env: {},
17
18
  platform: 'android'
18
19
  };
20
+ // eslint-disable-next-line obsidianmd/prefer-active-doc -- Actively use globalThis.
19
21
  globalThis.process = browserProcess;
20
22
  })();
21
23
 
@@ -67,4 +69,4 @@ export {
67
69
  referenceToFileChange,
68
70
  sortReferences
69
71
  };
70
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3JlZmVyZW5jZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENvbnRhaW5zIHV0aWxpdHkgZnVuY3Rpb25zIGZvciBoYW5kbGluZyByZWZlcmVuY2VzIGluIE9ic2lkaWFuLlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgRnJvbnRtYXR0ZXJMaW5rQ2FjaGUsXG4gIFJlZmVyZW5jZVxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7XG4gIGlzRnJvbnRtYXR0ZXJMaW5rQ2FjaGUsXG4gIGlzUmVmZXJlbmNlQ2FjaGVcbn0gZnJvbSAnb2JzaWRpYW4tdHlwaW5ncy9pbXBsZW1lbnRhdGlvbnMnO1xuXG5pbXBvcnQgdHlwZSB7IEZpbGVDaGFuZ2UgfSBmcm9tICcuL2ZpbGUtY2hhbmdlLnRzJztcblxuaW1wb3J0IHsgaXNGcm9udG1hdHRlckxpbmtDYWNoZVdpdGhPZmZzZXRzIH0gZnJvbSAnLi9mcm9udG1hdHRlci1saW5rLWNhY2hlLXdpdGgtb2Zmc2V0cy50cyc7XG5cbi8qKlxuICogQSByZWZlcmVuY2Ugd2l0aGluIGEgZmlsZSBub2RlIGluIGEgY2FudmFzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENhbnZhc0ZpbGVOb2RlUmVmZXJlbmNlIGV4dGVuZHMgQ2FudmFzUmVmZXJlbmNlIHtcbiAgLyoqXG4gICAqIEEgdHlwZSBvZiByZWZlcmVuY2UuXG4gICAqL1xuICB0eXBlOiAnZmlsZSc7XG59XG5cbi8qKlxuICogQSByZWZlcmVuY2Ugd2l0aGluIGEgY2FudmFzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENhbnZhc1JlZmVyZW5jZSBleHRlbmRzIEZyb250bWF0dGVyTGlua0NhY2hlIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHJlZmVyZW5jZSBpcyBhIGNhbnZhcyByZWZlcmVuY2UuXG4gICAqL1xuICBpc0NhbnZhczogdHJ1ZTtcblxuICAvKipcbiAgICogQW4gaW5kZXggb2YgdGhlIG5vZGUgaW4gdGhlIGNhbnZhcy5cbiAgICovXG4gIG5vZGVJbmRleDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBBIHR5cGUgb2YgcmVmZXJlbmNlLlxuICAgKi9cbiAgdHlwZTogJ2ZpbGUnIHwgJ3RleHQnO1xufVxuXG4vKipcbiAqIEEgcmVmZXJlbmNlIHdpdGhpbiBhIHRleHQgbm9kZSBpbiBhIGNhbnZhcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYW52YXNUZXh0Tm9kZVJlZmVyZW5jZSBleHRlbmRzIENhbnZhc1JlZmVyZW5jZSB7XG4gIC8qKlxuICAgKiBBbiBvcmlnaW5hbCByZWZlcmVuY2UuXG4gICAqL1xuICBvcmlnaW5hbFJlZmVyZW5jZTogUmVmZXJlbmNlO1xuXG4gIC8qKlxuICAgKiBBIHR5cGUgb2YgcmVmZXJlbmNlLlxuICAgKi9cbiAgdHlwZTogJ3RleHQnO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIHJlZmVyZW5jZSBpcyBhIGNhbnZhcyBmaWxlIG5vZGUgcmVmZXJlbmNlLlxuICpcbiAqIEBwYXJhbSByZWZlcmVuY2UgLSBUaGUgcmVmZXJlbmNlIHRvIGNoZWNrLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgcmVmZXJlbmNlIGlzIGEgY2FudmFzIGZpbGUgbm9kZSByZWZlcmVuY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0NhbnZhc0ZpbGVOb2RlUmVmZXJlbmNlKHJlZmVyZW5jZTogUmVmZXJlbmNlKTogcmVmZXJlbmNlIGlzIENhbnZhc0ZpbGVOb2RlUmVmZXJlbmNlIHtcbiAgcmV0dXJuIGlzQ2FudmFzUmVmZXJlbmNlKHJlZmVyZW5jZSkgJiYgcmVmZXJlbmNlLnR5cGUgPT09ICdmaWxlJztcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYSByZWZlcmVuY2UgaXMgYSBjYW52YXMgcmVmZXJlbmNlLlxuICpcbiAqIEBwYXJhbSByZWZlcmVuY2UgLSBUaGUgcmVmZXJlbmNlIHRvIGNoZWNrLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgcmVmZXJlbmNlIGlzIGEgY2FudmFzIHJlZmVyZW5jZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ2FudmFzUmVmZXJlbmNlKHJlZmVyZW5jZTogUmVmZXJlbmNlKTogcmVmZXJlbmNlIGlzIENhbnZhc1JlZmVyZW5jZSB7XG4gIHJldHVybiBpc0Zyb250bWF0dGVyTGlua0NhY2hlKHJlZmVyZW5jZSkgJiYgISEocmVmZXJlbmNlIGFzIFBhcnRpYWw8Q2FudmFzUmVmZXJlbmNlPikuaXNDYW52YXM7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGEgcmVmZXJlbmNlIGlzIGEgY2FudmFzIHRleHQgbm9kZSByZWZlcmVuY2UuXG4gKlxuICogQHBhcmFtIHJlZmVyZW5jZSAtIFRoZSByZWZlcmVuY2UgdG8gY2hlY2suXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSByZWZlcmVuY2UgaXMgYSBjYW52YXMgdGV4dCBub2RlIHJlZmVyZW5jZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ2FudmFzVGV4dE5vZGVSZWZlcmVuY2UocmVmZXJlbmNlOiBSZWZlcmVuY2UpOiByZWZlcmVuY2UgaXMgQ2FudmFzVGV4dE5vZGVSZWZlcmVuY2Uge1xuICByZXR1cm4gaXNDYW52YXNSZWZlcmVuY2UocmVmZXJlbmNlKSAmJiByZWZlcmVuY2UudHlwZSA9PT0gJ3RleHQnO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgcmVmZXJlbmNlIHRvIGEgZmlsZSBjaGFuZ2UuXG4gKlxuICogQHBhcmFtIHJlZmVyZW5jZSAtIFRoZSByZWZlcmVuY2UgdG8gY29udmVydC5cbiAqIEBwYXJhbSBuZXdDb250ZW50IC0gVGhlIG5ldyBjb250ZW50IGZvciB0aGUgcmVmZXJlbmNlLlxuICogQHJldHVybnMgVGhlIGZpbGUgY2hhbmdlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVmZXJlbmNlVG9GaWxlQ2hhbmdlKHJlZmVyZW5jZTogUmVmZXJlbmNlLCBuZXdDb250ZW50OiBzdHJpbmcpOiBGaWxlQ2hhbmdlIHtcbiAgaWYgKGlzRnJvbnRtYXR0ZXJMaW5rQ2FjaGVXaXRoT2Zmc2V0cyhyZWZlcmVuY2UpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5ld0NvbnRlbnQsXG4gICAgICBvbGRDb250ZW50OiByZWZlcmVuY2Uub3JpZ2luYWwuc2xpY2UocmVmZXJlbmNlLnN0YXJ0T2Zmc2V0LCByZWZlcmVuY2UuZW5kT2Zmc2V0KSxcbiAgICAgIHJlZmVyZW5jZVxuICAgIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG5ld0NvbnRlbnQsXG4gICAgb2xkQ29udGVudDogcmVmZXJlbmNlLm9yaWdpbmFsLFxuICAgIHJlZmVyZW5jZVxuICB9O1xufVxuXG4vKipcbiAqIFNvcnRzIHJlZmVyZW5jZXMgYnkgdGhlaXIgdHlwZSBhbmQgcG9zaXRpb24uXG4gKlxuICogQHBhcmFtIHJlZmVyZW5jZXMgLSBUaGUgcmVmZXJlbmNlcyB0byBzb3J0LlxuICogQHJldHVybnMgVGhlIHNvcnRlZCByZWZlcmVuY2VzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc29ydFJlZmVyZW5jZXMocmVmZXJlbmNlczogUmVmZXJlbmNlW10pOiBSZWZlcmVuY2VbXSB7XG4gIHJldHVybiByZWZlcmVuY2VzLnNvcnQoKGEsIGIpID0+IHtcbiAgICBpZiAoaXNGcm9udG1hdHRlckxpbmtDYWNoZShhKSAmJiBpc0Zyb250bWF0dGVyTGlua0NhY2hlKGIpKSB7XG4gICAgICBjb25zdCBhU3RhcnRPZmZzZXQgPSBpc0Zyb250bWF0dGVyTGlua0NhY2hlV2l0aE9mZnNldHMoYSkgPyBhLnN0YXJ0T2Zmc2V0IDogMDtcbiAgICAgIC8qIHY4IGlnbm9yZSBzdGFydCAtLSB2OCBpbmNvcnJlY3RseSByZXBvcnRzIHRoaXMgYnJhbmNoIGFzIHVuY292ZXJlZCwgYnV0IGl0IGlzIGNvdmVyZWQgYnkgYHNob3VsZCBzb3J0IHR3byBmcm9udG1hdHRlciBsaW5rcyB3aXRob3V0IG9mZnNldHNgIHRlc3QuICovXG4gICAgICBjb25zdCBiU3RhcnRPZmZzZXQgPSBpc0Zyb250bWF0dGVyTGlua0NhY2hlV2l0aE9mZnNldHMoYikgPyBiLnN0YXJ0T2Zmc2V0IDogMDtcbiAgICAgIC8qIHY4IGlnbm9yZSBzdG9wICovXG4gICAgICByZXR1cm4gYS5rZXkubG9jYWxlQ29tcGFyZShiLmtleSkgfHwgTnVtYmVyKGlzRnJvbnRtYXR0ZXJMaW5rQ2FjaGVXaXRoT2Zmc2V0cyhiKSkgLSBOdW1iZXIoaXNGcm9udG1hdHRlckxpbmtDYWNoZVdpdGhPZmZzZXRzKGEpKVxuICAgICAgICB8fCBhU3RhcnRPZmZzZXQgLSBiU3RhcnRPZmZzZXQ7XG4gICAgfVxuXG4gICAgaWYgKGlzUmVmZXJlbmNlQ2FjaGUoYSkgJiYgaXNSZWZlcmVuY2VDYWNoZShiKSkge1xuICAgICAgcmV0dXJuIGEucG9zaXRpb24uc3RhcnQub2Zmc2V0IC0gYi5wb3NpdGlvbi5zdGFydC5vZmZzZXQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIGlzRnJvbnRtYXR0ZXJMaW5rQ2FjaGUoYSkgPyAxIDogLTE7XG4gIH0pO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBV0E7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFJUCxTQUFTLHlDQUF5QztBQXFEM0MsU0FBUywwQkFBMEIsV0FBNEQ7QUFDcEcsU0FBTyxrQkFBa0IsU0FBUyxLQUFLLFVBQVUsU0FBUztBQUM1RDtBQVFPLFNBQVMsa0JBQWtCLFdBQW9EO0FBQ3BGLFNBQU8sdUJBQXVCLFNBQVMsS0FBSyxDQUFDLENBQUUsVUFBdUM7QUFDeEY7QUFRTyxTQUFTLDBCQUEwQixXQUE0RDtBQUNwRyxTQUFPLGtCQUFrQixTQUFTLEtBQUssVUFBVSxTQUFTO0FBQzVEO0FBU08sU0FBUyxzQkFBc0IsV0FBc0IsWUFBZ0M7QUFDMUYsTUFBSSxrQ0FBa0MsU0FBUyxHQUFHO0FBQ2hELFdBQU87QUFBQSxNQUNMO0FBQUEsTUFDQSxZQUFZLFVBQVUsU0FBUyxNQUFNLFVBQVUsYUFBYSxVQUFVLFNBQVM7QUFBQSxNQUMvRTtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBRUEsU0FBTztBQUFBLElBQ0w7QUFBQSxJQUNBLFlBQVksVUFBVTtBQUFBLElBQ3RCO0FBQUEsRUFDRjtBQUNGO0FBUU8sU0FBUyxlQUFlLFlBQXNDO0FBQ25FLFNBQU8sV0FBVyxLQUFLLENBQUMsR0FBRyxNQUFNO0FBQy9CLFFBQUksdUJBQXVCLENBQUMsS0FBSyx1QkFBdUIsQ0FBQyxHQUFHO0FBQzFELFlBQU0sZUFBZSxrQ0FBa0MsQ0FBQyxJQUFJLEVBQUUsY0FBYztBQUU1RSxZQUFNLGVBQWUsa0NBQWtDLENBQUMsSUFBSSxFQUFFLGNBQWM7QUFFNUUsYUFBTyxFQUFFLElBQUksY0FBYyxFQUFFLEdBQUcsS0FBSyxPQUFPLGtDQUFrQyxDQUFDLENBQUMsSUFBSSxPQUFPLGtDQUFrQyxDQUFDLENBQUMsS0FDMUgsZUFBZTtBQUFBLElBQ3RCO0FBRUEsUUFBSSxpQkFBaUIsQ0FBQyxLQUFLLGlCQUFpQixDQUFDLEdBQUc7QUFDOUMsYUFBTyxFQUFFLFNBQVMsTUFBTSxTQUFTLEVBQUUsU0FBUyxNQUFNO0FBQUEsSUFDcEQ7QUFFQSxXQUFPLHVCQUF1QixDQUFDLElBQUksSUFBSTtBQUFBLEVBQ3pDLENBQUM7QUFDSDsiLAogICJuYW1lcyI6IFtdCn0K
72
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3JlZmVyZW5jZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENvbnRhaW5zIHV0aWxpdHkgZnVuY3Rpb25zIGZvciBoYW5kbGluZyByZWZlcmVuY2VzIGluIE9ic2lkaWFuLlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgRnJvbnRtYXR0ZXJMaW5rQ2FjaGUsXG4gIFJlZmVyZW5jZVxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7XG4gIGlzRnJvbnRtYXR0ZXJMaW5rQ2FjaGUsXG4gIGlzUmVmZXJlbmNlQ2FjaGVcbn0gZnJvbSAnb2JzaWRpYW4tdHlwaW5ncy9pbXBsZW1lbnRhdGlvbnMnO1xuXG5pbXBvcnQgdHlwZSB7IEZpbGVDaGFuZ2UgfSBmcm9tICcuL2ZpbGUtY2hhbmdlLnRzJztcblxuaW1wb3J0IHsgaXNGcm9udG1hdHRlckxpbmtDYWNoZVdpdGhPZmZzZXRzIH0gZnJvbSAnLi9mcm9udG1hdHRlci1saW5rLWNhY2hlLXdpdGgtb2Zmc2V0cy50cyc7XG5cbi8qKlxuICogQSByZWZlcmVuY2Ugd2l0aGluIGEgZmlsZSBub2RlIGluIGEgY2FudmFzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENhbnZhc0ZpbGVOb2RlUmVmZXJlbmNlIGV4dGVuZHMgQ2FudmFzUmVmZXJlbmNlIHtcbiAgLyoqXG4gICAqIEEgdHlwZSBvZiByZWZlcmVuY2UuXG4gICAqL1xuICB0eXBlOiAnZmlsZSc7XG59XG5cbi8qKlxuICogQSByZWZlcmVuY2Ugd2l0aGluIGEgY2FudmFzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENhbnZhc1JlZmVyZW5jZSBleHRlbmRzIEZyb250bWF0dGVyTGlua0NhY2hlIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHJlZmVyZW5jZSBpcyBhIGNhbnZhcyByZWZlcmVuY2UuXG4gICAqL1xuICBpc0NhbnZhczogdHJ1ZTtcblxuICAvKipcbiAgICogQW4gaW5kZXggb2YgdGhlIG5vZGUgaW4gdGhlIGNhbnZhcy5cbiAgICovXG4gIG5vZGVJbmRleDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBBIHR5cGUgb2YgcmVmZXJlbmNlLlxuICAgKi9cbiAgdHlwZTogJ2ZpbGUnIHwgJ3RleHQnO1xufVxuXG4vKipcbiAqIEEgcmVmZXJlbmNlIHdpdGhpbiBhIHRleHQgbm9kZSBpbiBhIGNhbnZhcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYW52YXNUZXh0Tm9kZVJlZmVyZW5jZSBleHRlbmRzIENhbnZhc1JlZmVyZW5jZSB7XG4gIC8qKlxuICAgKiBBbiBvcmlnaW5hbCByZWZlcmVuY2UuXG4gICAqL1xuICBvcmlnaW5hbFJlZmVyZW5jZTogUmVmZXJlbmNlO1xuXG4gIC8qKlxuICAgKiBBIHR5cGUgb2YgcmVmZXJlbmNlLlxuICAgKi9cbiAgdHlwZTogJ3RleHQnO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIHJlZmVyZW5jZSBpcyBhIGNhbnZhcyBmaWxlIG5vZGUgcmVmZXJlbmNlLlxuICpcbiAqIEBwYXJhbSByZWZlcmVuY2UgLSBUaGUgcmVmZXJlbmNlIHRvIGNoZWNrLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgcmVmZXJlbmNlIGlzIGEgY2FudmFzIGZpbGUgbm9kZSByZWZlcmVuY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0NhbnZhc0ZpbGVOb2RlUmVmZXJlbmNlKHJlZmVyZW5jZTogUmVmZXJlbmNlKTogcmVmZXJlbmNlIGlzIENhbnZhc0ZpbGVOb2RlUmVmZXJlbmNlIHtcbiAgcmV0dXJuIGlzQ2FudmFzUmVmZXJlbmNlKHJlZmVyZW5jZSkgJiYgcmVmZXJlbmNlLnR5cGUgPT09ICdmaWxlJztcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYSByZWZlcmVuY2UgaXMgYSBjYW52YXMgcmVmZXJlbmNlLlxuICpcbiAqIEBwYXJhbSByZWZlcmVuY2UgLSBUaGUgcmVmZXJlbmNlIHRvIGNoZWNrLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgcmVmZXJlbmNlIGlzIGEgY2FudmFzIHJlZmVyZW5jZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ2FudmFzUmVmZXJlbmNlKHJlZmVyZW5jZTogUmVmZXJlbmNlKTogcmVmZXJlbmNlIGlzIENhbnZhc1JlZmVyZW5jZSB7XG4gIHJldHVybiBpc0Zyb250bWF0dGVyTGlua0NhY2hlKHJlZmVyZW5jZSkgJiYgISEocmVmZXJlbmNlIGFzIFBhcnRpYWw8Q2FudmFzUmVmZXJlbmNlPikuaXNDYW52YXM7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGEgcmVmZXJlbmNlIGlzIGEgY2FudmFzIHRleHQgbm9kZSByZWZlcmVuY2UuXG4gKlxuICogQHBhcmFtIHJlZmVyZW5jZSAtIFRoZSByZWZlcmVuY2UgdG8gY2hlY2suXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSByZWZlcmVuY2UgaXMgYSBjYW52YXMgdGV4dCBub2RlIHJlZmVyZW5jZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ2FudmFzVGV4dE5vZGVSZWZlcmVuY2UocmVmZXJlbmNlOiBSZWZlcmVuY2UpOiByZWZlcmVuY2UgaXMgQ2FudmFzVGV4dE5vZGVSZWZlcmVuY2Uge1xuICByZXR1cm4gaXNDYW52YXNSZWZlcmVuY2UocmVmZXJlbmNlKSAmJiByZWZlcmVuY2UudHlwZSA9PT0gJ3RleHQnO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgcmVmZXJlbmNlIHRvIGEgZmlsZSBjaGFuZ2UuXG4gKlxuICogQHBhcmFtIHJlZmVyZW5jZSAtIFRoZSByZWZlcmVuY2UgdG8gY29udmVydC5cbiAqIEBwYXJhbSBuZXdDb250ZW50IC0gVGhlIG5ldyBjb250ZW50IGZvciB0aGUgcmVmZXJlbmNlLlxuICogQHJldHVybnMgVGhlIGZpbGUgY2hhbmdlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVmZXJlbmNlVG9GaWxlQ2hhbmdlKHJlZmVyZW5jZTogUmVmZXJlbmNlLCBuZXdDb250ZW50OiBzdHJpbmcpOiBGaWxlQ2hhbmdlIHtcbiAgaWYgKGlzRnJvbnRtYXR0ZXJMaW5rQ2FjaGVXaXRoT2Zmc2V0cyhyZWZlcmVuY2UpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5ld0NvbnRlbnQsXG4gICAgICBvbGRDb250ZW50OiByZWZlcmVuY2Uub3JpZ2luYWwuc2xpY2UocmVmZXJlbmNlLnN0YXJ0T2Zmc2V0LCByZWZlcmVuY2UuZW5kT2Zmc2V0KSxcbiAgICAgIHJlZmVyZW5jZVxuICAgIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG5ld0NvbnRlbnQsXG4gICAgb2xkQ29udGVudDogcmVmZXJlbmNlLm9yaWdpbmFsLFxuICAgIHJlZmVyZW5jZVxuICB9O1xufVxuXG4vKipcbiAqIFNvcnRzIHJlZmVyZW5jZXMgYnkgdGhlaXIgdHlwZSBhbmQgcG9zaXRpb24uXG4gKlxuICogQHBhcmFtIHJlZmVyZW5jZXMgLSBUaGUgcmVmZXJlbmNlcyB0byBzb3J0LlxuICogQHJldHVybnMgVGhlIHNvcnRlZCByZWZlcmVuY2VzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc29ydFJlZmVyZW5jZXMocmVmZXJlbmNlczogUmVmZXJlbmNlW10pOiBSZWZlcmVuY2VbXSB7XG4gIHJldHVybiByZWZlcmVuY2VzLnNvcnQoKGEsIGIpID0+IHtcbiAgICBpZiAoaXNGcm9udG1hdHRlckxpbmtDYWNoZShhKSAmJiBpc0Zyb250bWF0dGVyTGlua0NhY2hlKGIpKSB7XG4gICAgICBjb25zdCBhU3RhcnRPZmZzZXQgPSBpc0Zyb250bWF0dGVyTGlua0NhY2hlV2l0aE9mZnNldHMoYSkgPyBhLnN0YXJ0T2Zmc2V0IDogMDtcbiAgICAgIC8qIHY4IGlnbm9yZSBzdGFydCAtLSB2OCBpbmNvcnJlY3RseSByZXBvcnRzIHRoaXMgYnJhbmNoIGFzIHVuY292ZXJlZCwgYnV0IGl0IGlzIGNvdmVyZWQgYnkgYHNob3VsZCBzb3J0IHR3byBmcm9udG1hdHRlciBsaW5rcyB3aXRob3V0IG9mZnNldHNgIHRlc3QuICovXG4gICAgICBjb25zdCBiU3RhcnRPZmZzZXQgPSBpc0Zyb250bWF0dGVyTGlua0NhY2hlV2l0aE9mZnNldHMoYikgPyBiLnN0YXJ0T2Zmc2V0IDogMDtcbiAgICAgIC8qIHY4IGlnbm9yZSBzdG9wICovXG4gICAgICByZXR1cm4gYS5rZXkubG9jYWxlQ29tcGFyZShiLmtleSkgfHwgTnVtYmVyKGlzRnJvbnRtYXR0ZXJMaW5rQ2FjaGVXaXRoT2Zmc2V0cyhiKSkgLSBOdW1iZXIoaXNGcm9udG1hdHRlckxpbmtDYWNoZVdpdGhPZmZzZXRzKGEpKVxuICAgICAgICB8fCBhU3RhcnRPZmZzZXQgLSBiU3RhcnRPZmZzZXQ7XG4gICAgfVxuXG4gICAgaWYgKGlzUmVmZXJlbmNlQ2FjaGUoYSkgJiYgaXNSZWZlcmVuY2VDYWNoZShiKSkge1xuICAgICAgcmV0dXJuIGEucG9zaXRpb24uc3RhcnQub2Zmc2V0IC0gYi5wb3NpdGlvbi5zdGFydC5vZmZzZXQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIGlzRnJvbnRtYXR0ZXJMaW5rQ2FjaGUoYSkgPyAxIDogLTE7XG4gIH0pO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFXQTtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUlQLFNBQVMseUNBQXlDO0FBcUQzQyxTQUFTLDBCQUEwQixXQUE0RDtBQUNwRyxTQUFPLGtCQUFrQixTQUFTLEtBQUssVUFBVSxTQUFTO0FBQzVEO0FBUU8sU0FBUyxrQkFBa0IsV0FBb0Q7QUFDcEYsU0FBTyx1QkFBdUIsU0FBUyxLQUFLLENBQUMsQ0FBRSxVQUF1QztBQUN4RjtBQVFPLFNBQVMsMEJBQTBCLFdBQTREO0FBQ3BHLFNBQU8sa0JBQWtCLFNBQVMsS0FBSyxVQUFVLFNBQVM7QUFDNUQ7QUFTTyxTQUFTLHNCQUFzQixXQUFzQixZQUFnQztBQUMxRixNQUFJLGtDQUFrQyxTQUFTLEdBQUc7QUFDaEQsV0FBTztBQUFBLE1BQ0w7QUFBQSxNQUNBLFlBQVksVUFBVSxTQUFTLE1BQU0sVUFBVSxhQUFhLFVBQVUsU0FBUztBQUFBLE1BQy9FO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFFQSxTQUFPO0FBQUEsSUFDTDtBQUFBLElBQ0EsWUFBWSxVQUFVO0FBQUEsSUFDdEI7QUFBQSxFQUNGO0FBQ0Y7QUFRTyxTQUFTLGVBQWUsWUFBc0M7QUFDbkUsU0FBTyxXQUFXLEtBQUssQ0FBQyxHQUFHLE1BQU07QUFDL0IsUUFBSSx1QkFBdUIsQ0FBQyxLQUFLLHVCQUF1QixDQUFDLEdBQUc7QUFDMUQsWUFBTSxlQUFlLGtDQUFrQyxDQUFDLElBQUksRUFBRSxjQUFjO0FBRTVFLFlBQU0sZUFBZSxrQ0FBa0MsQ0FBQyxJQUFJLEVBQUUsY0FBYztBQUU1RSxhQUFPLEVBQUUsSUFBSSxjQUFjLEVBQUUsR0FBRyxLQUFLLE9BQU8sa0NBQWtDLENBQUMsQ0FBQyxJQUFJLE9BQU8sa0NBQWtDLENBQUMsQ0FBQyxLQUMxSCxlQUFlO0FBQUEsSUFDdEI7QUFFQSxRQUFJLGlCQUFpQixDQUFDLEtBQUssaUJBQWlCLENBQUMsR0FBRztBQUM5QyxhQUFPLEVBQUUsU0FBUyxNQUFNLFNBQVMsRUFBRSxTQUFTLE1BQU07QUFBQSxJQUNwRDtBQUVBLFdBQU8sdUJBQXVCLENBQUMsSUFBSSxJQUFJO0FBQUEsRUFDekMsQ0FBQztBQUNIOyIsCiAgIm5hbWVzIjogW10KfQo=