obsidian-dev-utils 85.1.0 → 86.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (274) hide show
  1. package/@types/obsidian-integration-testing/package.json +4 -0
  2. package/CHANGELOG.md +20 -0
  3. package/README.md +14 -8
  4. package/dist/lib/cjs/@types/obsidian-integration-testing.d.cts +18 -0
  5. package/dist/lib/cjs/__merged.cjs +1291 -0
  6. package/dist/lib/cjs/__merged.d.cts +165 -0
  7. package/dist/lib/cjs/abort-controller.cjs +3 -4
  8. package/dist/lib/cjs/async.cjs +13 -7
  9. package/dist/lib/cjs/async.d.cts +6 -0
  10. package/dist/lib/cjs/disposable.cjs +224 -3
  11. package/dist/lib/cjs/disposable.d.cts +222 -2
  12. package/dist/lib/cjs/error.cjs +41 -3
  13. package/dist/lib/cjs/error.d.cts +50 -1
  14. package/dist/lib/cjs/generated-during-build.cjs +2 -2
  15. package/dist/lib/cjs/index.cjs +4 -1
  16. package/dist/lib/cjs/index.d.cts +1 -0
  17. package/dist/lib/cjs/obsidian/attachment-path.cjs +3 -3
  18. package/dist/lib/cjs/obsidian/command-handlers/command-handler-component.cjs +27 -11
  19. package/dist/lib/cjs/obsidian/command-handlers/command-handler-component.d.cts +14 -9
  20. package/dist/lib/cjs/obsidian/command-handlers/index.cjs +4 -1
  21. package/dist/lib/cjs/obsidian/command-handlers/index.d.cts +1 -0
  22. package/dist/lib/cjs/obsidian/command-handlers/open-demo-vault-command-handler.cjs +195 -0
  23. package/dist/lib/cjs/obsidian/command-handlers/open-demo-vault-command-handler.d.cts +65 -0
  24. package/dist/lib/cjs/obsidian/community-plugins.cjs +156 -0
  25. package/dist/lib/cjs/obsidian/community-plugins.d.cts +22 -0
  26. package/dist/lib/cjs/obsidian/components/disposable-component.cjs +8 -8
  27. package/dist/lib/cjs/obsidian/components/disposable-component.d.cts +9 -3
  28. package/dist/lib/cjs/obsidian/components/monkey-around-component.cjs +17 -2
  29. package/dist/lib/cjs/obsidian/components/monkey-around-component.d.cts +17 -0
  30. package/dist/lib/cjs/obsidian/components/plugin-notice-component.cjs +161 -22
  31. package/dist/lib/cjs/obsidian/components/plugin-notice-component.d.cts +81 -8
  32. package/dist/lib/cjs/obsidian/css-class.cjs +4 -1
  33. package/dist/lib/cjs/obsidian/css-class.d.cts +13 -0
  34. package/dist/lib/cjs/obsidian/desktop-demo-vault-opener.cjs +239 -0
  35. package/dist/lib/cjs/obsidian/desktop-demo-vault-opener.d.cts +45 -0
  36. package/dist/lib/cjs/obsidian/desktop-trusted-input.cjs +215 -0
  37. package/dist/lib/cjs/obsidian/desktop-trusted-input.d.cts +135 -0
  38. package/dist/lib/cjs/obsidian/i18n/locales/en.cjs +3 -1
  39. package/dist/lib/cjs/obsidian/i18n/locales/en.d.cts +2 -0
  40. package/dist/lib/cjs/obsidian/i18n/locales/translations-map.d.cts +2 -0
  41. package/dist/lib/cjs/obsidian/index.cjs +10 -1
  42. package/dist/lib/cjs/obsidian/index.d.cts +3 -0
  43. package/dist/lib/cjs/obsidian/link.cjs +2 -2
  44. package/dist/lib/cjs/obsidian/modals/index.cjs +4 -1
  45. package/dist/lib/cjs/obsidian/modals/index.d.cts +1 -0
  46. package/dist/lib/cjs/obsidian/modals/minimizable-modal.cjs +15 -2
  47. package/dist/lib/cjs/obsidian/modals/minimizable-modal.d.cts +18 -3
  48. package/dist/lib/cjs/obsidian/modals/select-option.cjs +182 -0
  49. package/dist/lib/cjs/obsidian/modals/select-option.d.cts +65 -0
  50. package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.cjs +4 -1
  51. package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.d.cts +6 -0
  52. package/dist/lib/cjs/obsidian/plugin/plugin.cjs +50 -3
  53. package/dist/lib/cjs/obsidian/plugin/plugin.d.cts +17 -0
  54. package/dist/lib/cjs/obsidian/workspace.cjs +8 -1
  55. package/dist/lib/cjs/obsidian/workspace.d.cts +10 -0
  56. package/dist/lib/cjs/path.cjs +4 -4
  57. package/dist/lib/cjs/path.d.cts +1 -1
  58. package/dist/lib/cjs/script-utils/demo-vault.cjs +177 -0
  59. package/dist/lib/cjs/script-utils/demo-vault.d.cts +23 -0
  60. package/dist/lib/cjs/script-utils/exec.cjs +75 -34
  61. package/dist/lib/cjs/script-utils/exec.d.cts +34 -0
  62. package/dist/lib/cjs/script-utils/index.cjs +9 -3
  63. package/dist/lib/cjs/script-utils/index.d.cts +2 -0
  64. package/dist/lib/cjs/script-utils/linters/eslint-no-restricted-syntax.cjs +1 -5
  65. package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.cjs +5 -1
  66. package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.d.cts +8 -0
  67. package/dist/lib/cjs/script-utils/version.cjs +8 -1
  68. package/dist/lib/cjs/script-utils/version.d.cts +8 -0
  69. package/dist/lib/cjs/script-utils/warnings-as-errors.cjs +157 -0
  70. package/dist/lib/cjs/script-utils/warnings-as-errors.d.cts +27 -0
  71. package/dist/lib/cjs/setup.cjs +75 -4
  72. package/dist/lib/cjs/setup.d.cts +29 -7
  73. package/dist/lib/cjs/string.cjs +7 -4
  74. package/dist/lib/cjs/string.d.cts +11 -1
  75. package/dist/lib/esm/@types/obsidian-integration-testing.d.mts +18 -0
  76. package/dist/lib/esm/__merged.d.mts +165 -0
  77. package/dist/lib/esm/__merged.mjs +1134 -0
  78. package/dist/lib/esm/abort-controller.mjs +7 -5
  79. package/dist/lib/esm/async.d.mts +6 -0
  80. package/dist/lib/esm/async.mjs +13 -7
  81. package/dist/lib/esm/disposable.d.mts +222 -2
  82. package/dist/lib/esm/disposable.mjs +215 -2
  83. package/dist/lib/esm/error.d.mts +50 -1
  84. package/dist/lib/esm/error.mjs +41 -4
  85. package/dist/lib/esm/generated-during-build.mjs +2 -2
  86. package/dist/lib/esm/index.d.mts +1 -0
  87. package/dist/lib/esm/index.mjs +3 -1
  88. package/dist/lib/esm/obsidian/attachment-path.mjs +4 -4
  89. package/dist/lib/esm/obsidian/command-handlers/command-handler-component.d.mts +14 -9
  90. package/dist/lib/esm/obsidian/command-handlers/command-handler-component.mjs +31 -11
  91. package/dist/lib/esm/obsidian/command-handlers/index.d.mts +1 -0
  92. package/dist/lib/esm/obsidian/command-handlers/index.mjs +3 -1
  93. package/dist/lib/esm/obsidian/command-handlers/open-demo-vault-command-handler.d.mts +65 -0
  94. package/dist/lib/esm/obsidian/command-handlers/open-demo-vault-command-handler.mjs +77 -0
  95. package/dist/lib/esm/obsidian/community-plugins.d.mts +22 -0
  96. package/dist/lib/esm/obsidian/community-plugins.mjs +48 -0
  97. package/dist/lib/esm/obsidian/components/disposable-component.d.mts +9 -3
  98. package/dist/lib/esm/obsidian/components/disposable-component.mjs +8 -8
  99. package/dist/lib/esm/obsidian/components/monkey-around-component.d.mts +17 -0
  100. package/dist/lib/esm/obsidian/components/monkey-around-component.mjs +17 -2
  101. package/dist/lib/esm/obsidian/components/plugin-notice-component.d.mts +81 -8
  102. package/dist/lib/esm/obsidian/components/plugin-notice-component.mjs +163 -23
  103. package/dist/lib/esm/obsidian/css-class.d.mts +13 -0
  104. package/dist/lib/esm/obsidian/css-class.mjs +4 -1
  105. package/dist/lib/esm/obsidian/desktop-demo-vault-opener.d.mts +45 -0
  106. package/dist/lib/esm/obsidian/desktop-demo-vault-opener.mjs +121 -0
  107. package/dist/lib/esm/obsidian/desktop-trusted-input.d.mts +135 -0
  108. package/dist/lib/esm/obsidian/desktop-trusted-input.mjs +103 -0
  109. package/dist/lib/esm/obsidian/i18n/locales/en.d.mts +2 -0
  110. package/dist/lib/esm/obsidian/i18n/locales/en.mjs +3 -1
  111. package/dist/lib/esm/obsidian/i18n/locales/translations-map.d.mts +2 -0
  112. package/dist/lib/esm/obsidian/index.d.mts +3 -0
  113. package/dist/lib/esm/obsidian/index.mjs +7 -1
  114. package/dist/lib/esm/obsidian/link.mjs +3 -3
  115. package/dist/lib/esm/obsidian/modals/index.d.mts +1 -0
  116. package/dist/lib/esm/obsidian/modals/index.mjs +3 -1
  117. package/dist/lib/esm/obsidian/modals/minimizable-modal.d.mts +18 -3
  118. package/dist/lib/esm/obsidian/modals/minimizable-modal.mjs +17 -3
  119. package/dist/lib/esm/obsidian/modals/select-option.d.mts +65 -0
  120. package/dist/lib/esm/obsidian/modals/select-option.mjs +77 -0
  121. package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.d.mts +6 -0
  122. package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.mjs +4 -1
  123. package/dist/lib/esm/obsidian/plugin/plugin.d.mts +17 -0
  124. package/dist/lib/esm/obsidian/plugin/plugin.mjs +50 -3
  125. package/dist/lib/esm/obsidian/workspace.d.mts +10 -0
  126. package/dist/lib/esm/obsidian/workspace.mjs +7 -1
  127. package/dist/lib/esm/path.d.mts +1 -1
  128. package/dist/lib/esm/path.mjs +3 -3
  129. package/dist/lib/esm/script-utils/demo-vault.d.mts +23 -0
  130. package/dist/lib/esm/script-utils/demo-vault.mjs +63 -0
  131. package/dist/lib/esm/script-utils/exec.d.mts +34 -0
  132. package/dist/lib/esm/script-utils/exec.mjs +73 -34
  133. package/dist/lib/esm/script-utils/index.d.mts +2 -0
  134. package/dist/lib/esm/script-utils/index.mjs +6 -2
  135. package/dist/lib/esm/script-utils/linters/eslint-no-restricted-syntax.mjs +1 -5
  136. package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.d.mts +8 -0
  137. package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.mjs +5 -1
  138. package/dist/lib/esm/script-utils/version.d.mts +8 -0
  139. package/dist/lib/esm/script-utils/version.mjs +8 -1
  140. package/dist/lib/esm/script-utils/warnings-as-errors.d.mts +27 -0
  141. package/dist/lib/esm/script-utils/warnings-as-errors.mjs +38 -0
  142. package/dist/lib/esm/setup.d.mts +29 -7
  143. package/dist/lib/esm/setup.mjs +78 -4
  144. package/dist/lib/esm/string.d.mts +11 -1
  145. package/dist/lib/esm/string.mjs +5 -3
  146. package/dist/styles.css +33 -3
  147. package/obsidian/command-handlers/open-demo-vault-command-handler/package.json +6 -0
  148. package/obsidian/community-plugins/package.json +6 -0
  149. package/obsidian/desktop-demo-vault-opener/package.json +6 -0
  150. package/obsidian/desktop-trusted-input/package.json +6 -0
  151. package/obsidian/modals/select-option/package.json +6 -0
  152. package/package.json +22 -9
  153. package/script-utils/demo-vault/package.json +6 -0
  154. package/script-utils/warnings-as-errors/package.json +6 -0
  155. package/dist/dev/main.js +0 -32702
  156. package/dist/dev/manifest.json +0 -9
  157. /package/obsidian/@types/{Dataview → dataview}/api/data-array/package.json +0 -0
  158. /package/obsidian/@types/{Dataview → dataview}/api/extensions/package.json +0 -0
  159. /package/obsidian/@types/{Dataview → dataview}/api/inline-api/package.json +0 -0
  160. /package/obsidian/@types/{Dataview → dataview}/api/plugin-api/package.json +0 -0
  161. /package/obsidian/@types/{Dataview → dataview}/api/result/package.json +0 -0
  162. /package/obsidian/@types/{Dataview → dataview}/data-import/common/package.json +0 -0
  163. /package/obsidian/@types/{Dataview → dataview}/data-import/csv/package.json +0 -0
  164. /package/obsidian/@types/{Dataview → dataview}/data-import/inline-field/package.json +0 -0
  165. /package/obsidian/@types/{Dataview → dataview}/data-import/markdown-file/package.json +0 -0
  166. /package/obsidian/@types/{Dataview → dataview}/data-import/persister/package.json +0 -0
  167. /package/obsidian/@types/{Dataview → dataview}/data-import/web-worker/import-entry/package.json +0 -0
  168. /package/obsidian/@types/{Dataview → dataview}/data-import/web-worker/import-impl/package.json +0 -0
  169. /package/obsidian/@types/{Dataview → dataview}/data-import/web-worker/import-manager/package.json +0 -0
  170. /package/obsidian/@types/{Dataview → dataview}/data-index/index/package.json +0 -0
  171. /package/obsidian/@types/{Dataview → dataview}/data-index/package.json +0 -0
  172. /package/obsidian/@types/{Dataview → dataview}/data-index/resolver/package.json +0 -0
  173. /package/obsidian/@types/{Dataview → dataview}/data-index/source/package.json +0 -0
  174. /package/obsidian/@types/{Dataview → dataview}/data-model/markdown/package.json +0 -0
  175. /package/obsidian/@types/{Dataview → dataview}/data-model/serialized/markdown/package.json +0 -0
  176. /package/obsidian/@types/{Dataview → dataview}/data-model/transferable/package.json +0 -0
  177. /package/obsidian/@types/{Dataview → dataview}/data-model/value/package.json +0 -0
  178. /package/obsidian/@types/{Dataview → dataview}/expression/binaryop/package.json +0 -0
  179. /package/obsidian/@types/{Dataview → dataview}/expression/context/package.json +0 -0
  180. /package/obsidian/@types/{Dataview → dataview}/expression/field/package.json +0 -0
  181. /package/obsidian/@types/{Dataview → dataview}/expression/functions/package.json +0 -0
  182. /package/obsidian/@types/{Dataview → dataview}/expression/parse/package.json +0 -0
  183. /package/obsidian/@types/{Dataview → dataview}/index/package.json +0 -0
  184. /package/obsidian/@types/{Dataview → dataview}/main/package.json +0 -0
  185. /package/obsidian/@types/{Dataview → dataview}/package.json +0 -0
  186. /package/obsidian/@types/{Dataview → dataview}/query/engine/package.json +0 -0
  187. /package/obsidian/@types/{Dataview → dataview}/query/parse/package.json +0 -0
  188. /package/obsidian/@types/{Dataview → dataview}/query/query/package.json +0 -0
  189. /package/obsidian/@types/{Dataview → dataview}/settings/package.json +0 -0
  190. /package/obsidian/@types/{Dataview → dataview}/typings/obsidian-ex/package.json +0 -0
  191. /package/obsidian/@types/{Dataview → dataview}/typings/workers/package.json +0 -0
  192. /package/obsidian/@types/{Dataview → dataview}/ui/export/markdown/package.json +0 -0
  193. /package/obsidian/@types/{Dataview → dataview}/ui/lp-render/package.json +0 -0
  194. /package/obsidian/@types/{Dataview → dataview}/ui/markdown/package.json +0 -0
  195. /package/obsidian/@types/{Dataview → dataview}/ui/refreshable-view/package.json +0 -0
  196. /package/obsidian/@types/{Dataview → dataview}/ui/render/package.json +0 -0
  197. /package/obsidian/@types/{Dataview → dataview}/ui/views/calendar-view/package.json +0 -0
  198. /package/obsidian/@types/{Dataview → dataview}/ui/views/inline-field-live-preview/package.json +0 -0
  199. /package/obsidian/@types/{Dataview → dataview}/ui/views/inline-view/package.json +0 -0
  200. /package/obsidian/@types/{Dataview → dataview}/ui/views/js-view/package.json +0 -0
  201. /package/obsidian/@types/{Dataview → dataview}/ui/views/list-view/package.json +0 -0
  202. /package/obsidian/@types/{Dataview → dataview}/ui/views/table-view/package.json +0 -0
  203. /package/obsidian/@types/{Dataview → dataview}/ui/views/task-view/package.json +0 -0
  204. /package/obsidian/@types/{Dataview → dataview}/util/hash/package.json +0 -0
  205. /package/obsidian/@types/{Dataview → dataview}/util/locale/package.json +0 -0
  206. /package/obsidian/@types/{Dataview → dataview}/util/media/package.json +0 -0
  207. /package/obsidian/@types/{Dataview → dataview}/util/normalize/package.json +0 -0
  208. /package/obsidian/{App → app}/package.json +0 -0
  209. /package/obsidian/{Backlink → backlink}/package.json +0 -0
  210. /package/obsidian/{Callout → callout}/package.json +0 -0
  211. /package/obsidian/{Components → components}/abort-signal-component/package.json +0 -0
  212. /package/obsidian/{Components → components}/all-windows-event-component/package.json +0 -0
  213. /package/obsidian/{Components → components}/async-error-handler-component/package.json +0 -0
  214. /package/obsidian/{Components → components}/async-events-component/package.json +0 -0
  215. /package/obsidian/{Components → components}/case-insensitive-file-index-component/package.json +0 -0
  216. /package/obsidian/{Components → components}/component-ex/package.json +0 -0
  217. /package/obsidian/{Components → components}/console-debug-component/package.json +0 -0
  218. /package/obsidian/{Components → components}/disposable-component/package.json +0 -0
  219. /package/obsidian/{Components → components}/embed-extensions-component/package.json +0 -0
  220. /package/obsidian/{Components → components}/generate-markdown-link-default-params-component/package.json +0 -0
  221. /package/obsidian/{Components → components}/index/package.json +0 -0
  222. /package/obsidian/{Components → components}/layout-ready-component/package.json +0 -0
  223. /package/obsidian/{Components → components}/menu-event-registrar-component/package.json +0 -0
  224. /package/obsidian/{Components → components}/monkey-around-component/package.json +0 -0
  225. /package/obsidian/{Components → components}/package.json +0 -0
  226. /package/obsidian/{Components → components}/plugin-context-component/package.json +0 -0
  227. /package/obsidian/{Components → components}/plugin-notice-component/package.json +0 -0
  228. /package/obsidian/{Components → components}/plugin-settings-component/package.json +0 -0
  229. /package/obsidian/{Components → components}/plugin-settings-tab-component/package.json +0 -0
  230. /package/obsidian/{Components → components}/registry-component/package.json +0 -0
  231. /package/obsidian/{Components → components}/rename-delete-handler-component/package.json +0 -0
  232. /package/obsidian/{Dataview → dataview}/package.json +0 -0
  233. /package/obsidian/{Editor → editor}/package.json +0 -0
  234. /package/obsidian/{Frontmatter → frontmatter}/package.json +0 -0
  235. /package/obsidian/{Link → link}/package.json +0 -0
  236. /package/obsidian/{Logger → logger}/package.json +0 -0
  237. /package/obsidian/{Loop → loop}/package.json +0 -0
  238. /package/obsidian/{Markdown → markdown}/package.json +0 -0
  239. /package/obsidian/{Modals/Alert → modals/alert}/package.json +0 -0
  240. /package/obsidian/{Modals/Confirm → modals/confirm}/package.json +0 -0
  241. /package/obsidian/{Modals → modals}/index/package.json +0 -0
  242. /package/obsidian/{Modals → modals}/minimizable-modal/package.json +0 -0
  243. /package/obsidian/{Modals → modals}/modal/package.json +0 -0
  244. /package/obsidian/{Modals → modals}/package.json +0 -0
  245. /package/obsidian/{Modals/Prompt → modals/prompt}/package.json +0 -0
  246. /package/obsidian/{Modals → modals}/select-item/package.json +0 -0
  247. /package/obsidian/{Modals → modals}/suggest-modal-command-builder/package.json +0 -0
  248. /package/obsidian/{Pdf → pdf}/package.json +0 -0
  249. /package/obsidian/{Plugin → plugin}/index/package.json +0 -0
  250. /package/obsidian/{Plugin → plugin}/obsidian-plugin-repo-paths/package.json +0 -0
  251. /package/obsidian/{Plugin → plugin}/package.json +0 -0
  252. /package/obsidian/{Plugin/Plugin → plugin/plugin}/package.json +0 -0
  253. /package/obsidian/{Plugin → plugin}/plugin-context/package.json +0 -0
  254. /package/obsidian/{Plugin → plugin}/plugin-event-source/package.json +0 -0
  255. /package/obsidian/{Plugin → plugin}/plugin-settings-tab/package.json +0 -0
  256. /package/obsidian/{Queue → queue}/package.json +0 -0
  257. /package/obsidian/{React → react}/app-context/package.json +0 -0
  258. /package/obsidian/{React → react}/index/package.json +0 -0
  259. /package/obsidian/{React → react}/package.json +0 -0
  260. /package/obsidian/{Reference → reference}/package.json +0 -0
  261. /package/obsidian/{Validation → validation}/package.json +0 -0
  262. /package/obsidian/{Vault → vault}/package.json +0 -0
  263. /package/obsidian/{Workspace → workspace}/package.json +0 -0
  264. /package/{Transformers → transformers}/date-transformer/package.json +0 -0
  265. /package/{Transformers → transformers}/duration-transformer/package.json +0 -0
  266. /package/{Transformers → transformers}/group-transformer/package.json +0 -0
  267. /package/{Transformers → transformers}/index/package.json +0 -0
  268. /package/{Transformers → transformers}/map-transformer/package.json +0 -0
  269. /package/{Transformers → transformers}/package.json +0 -0
  270. /package/{Transformers → transformers}/set-transformer/package.json +0 -0
  271. /package/{Transformers → transformers}/skip-private-property-transformer/package.json +0 -0
  272. /package/{Transformers/Transformer → transformers/transformer}/package.json +0 -0
  273. /package/{Transformers → transformers}/two-way-map-transformer/package.json +0 -0
  274. /package/{Transformers → transformers}/typed-transformer/package.json +0 -0
@@ -26,10 +26,15 @@ import { mixinAsyncEvents } from "../../async-events.mjs";
26
26
  import { printError } from "../../error.mjs";
27
27
  import { noopAsync } from "../../function.mjs";
28
28
  import { ensureNonNullable } from "../../type-guards.mjs";
29
+ import { AppActiveFileProvider } from "../active-file-provider.mjs";
30
+ import { CommandHandlerComponent } from "../command-handlers/command-handler-component.mjs";
31
+ import { UnlockActiveNoteCommandHandler } from "../command-handlers/unlock-active-note-command-handler.mjs";
32
+ import { PluginCommandRegistrar } from "../command-registrar.mjs";
29
33
  import { AbortSignalComponent } from "../components/abort-signal-component.mjs";
30
34
  import { AsyncErrorHandlerComponent } from "../components/async-error-handler-component.mjs";
31
35
  import { ComponentEx } from "../components/component-ex.mjs";
32
36
  import { ConsoleDebugComponent } from "../components/console-debug-component.mjs";
37
+ import { MenuEventRegistrarComponent } from "../components/menu-event-registrar-component.mjs";
33
38
  import { PluginContextComponent } from "../components/plugin-context-component.mjs";
34
39
  import { PluginNoticeComponent } from "../components/plugin-notice-component.mjs";
35
40
  import { initI18N } from "../i18n/i18n.mjs";
@@ -68,6 +73,25 @@ class PluginBase extends mixinAsyncEvents()(Plugin) {
68
73
  set asyncErrorHandlerComponent(value) {
69
74
  this._asyncErrorHandlerComponent = value;
70
75
  }
76
+ /**
77
+ * Gets the shared command handler component. Register a plugin's commands on it via
78
+ * {@link CommandHandlerComponent.registerCommandHandlers} rather than constructing your own
79
+ * {@link CommandHandlerComponent} — the app-backed active-file provider, command registrar, menu
80
+ * event registrar, and plugin name are already wired.
81
+ *
82
+ * @returns The command handler component.
83
+ */
84
+ get commandHandlerComponent() {
85
+ return ensureNonNullable(this._commandHandlerComponent);
86
+ }
87
+ /**
88
+ * Sets the command handler component.
89
+ *
90
+ * @param value - The command handler component.
91
+ */
92
+ set commandHandlerComponent(value) {
93
+ this._commandHandlerComponent = value;
94
+ }
71
95
  /**
72
96
  * Gets console debug component.
73
97
  *
@@ -135,6 +159,7 @@ class PluginBase extends mixinAsyncEvents()(Plugin) {
135
159
  }
136
160
  _abortSignalComponent;
137
161
  _asyncErrorHandlerComponent;
162
+ _commandHandlerComponent;
138
163
  _consoleDebugComponent;
139
164
  _pluginContextComponent;
140
165
  _pluginNoticeComponent;
@@ -179,11 +204,30 @@ class PluginBase extends mixinAsyncEvents()(Plugin) {
179
204
  pluginId: this.manifest.id
180
205
  })
181
206
  );
182
- this.pluginNoticeComponent = this.addChild(new PluginNoticeComponent(this.manifest.name));
207
+ this.pluginNoticeComponent = this.addChild(
208
+ new PluginNoticeComponent({
209
+ app: this.app,
210
+ pluginName: this.manifest.name
211
+ })
212
+ );
183
213
  this.asyncErrorHandlerComponent = this.addChild(new AsyncErrorHandlerComponent(this.pluginNoticeComponent));
184
214
  this.abortSignalComponent = this.addChild(new AbortSignalComponent(this.manifest.id));
185
215
  this.consoleDebugComponent = this.addChild(new ConsoleDebugComponent(this.manifest.id));
186
216
  this.resourceLockComponent = this.addChild(new ResourceLockComponent(this.app, this.manifest.id));
217
+ this.commandHandlerComponent = this.addChild(
218
+ new CommandHandlerComponent({
219
+ activeFileProvider: new AppActiveFileProvider(this.app),
220
+ commandRegistrar: new PluginCommandRegistrar(this),
221
+ menuEventRegistrar: this.addChild(new MenuEventRegistrarComponent(this.app)),
222
+ pluginName: this.manifest.name
223
+ })
224
+ );
225
+ this.commandHandlerComponent.registerCommandHandlers([
226
+ new UnlockActiveNoteCommandHandler({
227
+ app: this.app,
228
+ resourceLockComponent: this.resourceLockComponent
229
+ })
230
+ ]);
187
231
  await this.onloadImpl();
188
232
  super.addChild(this.wrapperComponent);
189
233
  await this.wrapperComponent.loadWithPromises();
@@ -232,7 +276,10 @@ async function reloadPlugin(plugin) {
232
276
  await plugins.enablePlugin(pluginId);
233
277
  }
234
278
  async function showErrorAndDisablePlugin(plugin, message) {
235
- const pluginNoticeComponent = new PluginNoticeComponent(plugin.manifest.name);
279
+ const pluginNoticeComponent = new PluginNoticeComponent({
280
+ app: plugin.app,
281
+ pluginName: plugin.manifest.name
282
+ });
236
283
  pluginNoticeComponent.showNotice(message);
237
284
  printError(new Error(message));
238
285
  await plugin.app.plugins.disablePlugin(plugin.manifest.id);
@@ -242,4 +289,4 @@ export {
242
289
  reloadPlugin,
243
290
  showErrorAndDisablePlugin
244
291
  };
245
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3BsdWdpbi9wbHVnaW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBCYXNlIGNsYXNzIGZvciBPYnNpZGlhbiBwbHVnaW5zIHVzaW5nIGEgY29tcG9uZW50LWJhc2VkIGFyY2hpdGVjdHVyZS5cbiAqXG4gKiBQbHVnaW5CYXNlIHJlZ2lzdGVycyB1bml2ZXJzYWwgY29tcG9uZW50cyAoY29udGV4dCwgaTE4biwgZXJyb3IgaGFuZGxpbmcsIGFib3J0IHNpZ25hbCwgbGlmZWN5Y2xlIGV2ZW50cywgZGVidWcpLlxuICovXG5cbmltcG9ydCB0eXBlIHsgQ29tcG9uZW50IH0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBQcm9taXNhYmxlIH0gZnJvbSAndHlwZS1mZXN0JztcblxuaW1wb3J0IHsgUGx1Z2luIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7IFRyYW5zbGF0aW9uc01hcCB9IGZyb20gJy4uL2kxOG4vaTE4bi50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIFBsdWdpbkV2ZW50TWFwLFxuICBQbHVnaW5FdmVudFNvdXJjZVxufSBmcm9tICcuL3BsdWdpbi1ldmVudC1zb3VyY2UudHMnO1xuXG5pbXBvcnQgeyBtaXhpbkFzeW5jRXZlbnRzIH0gZnJvbSAnLi4vLi4vYXN5bmMtZXZlbnRzLnRzJztcbmltcG9ydCB7IHByaW50RXJyb3IgfSBmcm9tICcuLi8uLi9lcnJvci50cyc7XG5pbXBvcnQgeyBub29wQXN5bmMgfSBmcm9tICcuLi8uLi9mdW5jdGlvbi50cyc7XG5pbXBvcnQgeyBlbnN1cmVOb25OdWxsYWJsZSB9IGZyb20gJy4uLy4uL3R5cGUtZ3VhcmRzLnRzJztcbmltcG9ydCB7IEFib3J0U2lnbmFsQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9hYm9ydC1zaWduYWwtY29tcG9uZW50LnRzJztcbmltcG9ydCB7IEFzeW5jRXJyb3JIYW5kbGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9hc3luYy1lcnJvci1oYW5kbGVyLWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBDb21wb25lbnRFeCB9IGZyb20gJy4uL2NvbXBvbmVudHMvY29tcG9uZW50LWV4LnRzJztcbmltcG9ydCB7IENvbnNvbGVEZWJ1Z0NvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvY29uc29sZS1kZWJ1Zy1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgUGx1Z2luQ29udGV4dENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvcGx1Z2luLWNvbnRleHQtY29tcG9uZW50LnRzJztcbmltcG9ydCB7IFBsdWdpbk5vdGljZUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvcGx1Z2luLW5vdGljZS1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgaW5pdEkxOE4gfSBmcm9tICcuLi9pMThuL2kxOG4udHMnO1xuaW1wb3J0IHsgZGVmYXVsdFRyYW5zbGF0aW9uc01hcCB9IGZyb20gJy4uL2kxOG4vbG9jYWxlcy90cmFuc2xhdGlvbnMtbWFwLnRzJztcbmltcG9ydCB7IFJlc291cmNlTG9ja0NvbXBvbmVudCB9IGZyb20gJy4uL3Jlc291cmNlLWxvY2sudHMnO1xuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIGNyZWF0aW5nIE9ic2lkaWFuIHBsdWdpbnMgd2l0aCBhIGNvbXBvbmVudC1iYXNlZCBhcmNoaXRlY3R1cmUuXG4gKlxuICogUmVnaXN0ZXJzIHVuaXZlcnNhbCBjb21wb25lbnRzIGF1dG9tYXRpY2FsbHkuIFN1YmNsYXNzZXMgYWRkIG9yIHJlcGxhY2UgY29tcG9uZW50c1xuICogdmlhIHtAbGluayByZW1vdmVDaGlsZH0gLyB7QGxpbmsgYWRkQ2hpbGR9LlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGx1Z2luQmFzZSBleHRlbmRzIG1peGluQXN5bmNFdmVudHM8UGx1Z2luRXZlbnRNYXA+KCkoUGx1Z2luKSBpbXBsZW1lbnRzIFBsdWdpbkV2ZW50U291cmNlIHtcbiAgLyoqXG4gICAqIEdldHMgYWJvcnQgc2lnbmFsIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHJldHVybnMgYWJvcnQgc2lnbmFsIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgYWJvcnRTaWduYWxDb21wb25lbnQoKTogQWJvcnRTaWduYWxDb21wb25lbnQge1xuICAgIHJldHVybiBlbnN1cmVOb25OdWxsYWJsZSh0aGlzLl9hYm9ydFNpZ25hbENvbXBvbmVudCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBhYm9ydCBzaWduYWwgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBBYm9ydCBzaWduYWwgY29tcG9uZW50LlxuICAgKi9cbiAgcHJvdGVjdGVkIHNldCBhYm9ydFNpZ25hbENvbXBvbmVudCh2YWx1ZTogQWJvcnRTaWduYWxDb21wb25lbnQpIHtcbiAgICB0aGlzLl9hYm9ydFNpZ25hbENvbXBvbmVudCA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYXN5bmMgZXJyb3IgaGFuZGxlciBjb21wb25lbnQuXG4gICAqXG4gICAqIEByZXR1cm5zIGFzeW5jIGVycm9yIGhhbmRsZXIgY29tcG9uZW50LlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBhc3luY0Vycm9ySGFuZGxlckNvbXBvbmVudCgpOiBBc3luY0Vycm9ySGFuZGxlckNvbXBvbmVudCB7XG4gICAgcmV0dXJuIGVuc3VyZU5vbk51bGxhYmxlKHRoaXMuX2FzeW5jRXJyb3JIYW5kbGVyQ29tcG9uZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIGFzeW5jIGVycm9yIGhhbmRsZXIgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBBc3luYyBlcnJvciBoYW5kbGVyIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBzZXQgYXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQodmFsdWU6IEFzeW5jRXJyb3JIYW5kbGVyQ29tcG9uZW50KSB7XG4gICAgdGhpcy5fYXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGNvbnNvbGUgZGVidWcgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcmV0dXJucyBjb25zb2xlIGRlYnVnIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgY29uc29sZURlYnVnQ29tcG9uZW50KCk6IENvbnNvbGVEZWJ1Z0NvbXBvbmVudCB7XG4gICAgcmV0dXJuIGVuc3VyZU5vbk51bGxhYmxlKHRoaXMuX2NvbnNvbGVEZWJ1Z0NvbXBvbmVudCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBjb25zb2xlIGRlYnVnIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gQ29uc29sZSBkZWJ1ZyBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0IGNvbnNvbGVEZWJ1Z0NvbXBvbmVudCh2YWx1ZTogQ29uc29sZURlYnVnQ29tcG9uZW50KSB7XG4gICAgdGhpcy5fY29uc29sZURlYnVnQ29tcG9uZW50ID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBwbHVnaW4gY29udGV4dCBjb21wb25lbnQgKHBsdWdpbiBJRCwgZGVidWcgY29udHJvbGxlciwgbGlicmFyeSBzdHlsZXMpLlxuICAgKlxuICAgKiBAcmV0dXJucyBwbHVnaW4gY29udGV4dCBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IHBsdWdpbkNvbnRleHRDb21wb25lbnQoKTogUGx1Z2luQ29udGV4dENvbXBvbmVudCB7XG4gICAgcmV0dXJuIGVuc3VyZU5vbk51bGxhYmxlKHRoaXMuX3BsdWdpbkNvbnRleHRDb21wb25lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgcGx1Z2luIGNvbnRleHQgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBQbHVnaW4gY29udGV4dCBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0IHBsdWdpbkNvbnRleHRDb21wb25lbnQodmFsdWU6IFBsdWdpbkNvbnRleHRDb21wb25lbnQpIHtcbiAgICB0aGlzLl9wbHVnaW5Db250ZXh0Q29tcG9uZW50ID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBwbHVnaW4gbm90aWNlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHJldHVybnMgcGx1Z2luIG5vdGljZSBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IHBsdWdpbk5vdGljZUNvbXBvbmVudCgpOiBQbHVnaW5Ob3RpY2VDb21wb25lbnQge1xuICAgIHJldHVybiBlbnN1cmVOb25OdWxsYWJsZSh0aGlzLl9wbHVnaW5Ob3RpY2VDb21wb25lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgcGx1Z2luIG5vdGljZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFBsdWdpbiBub3RpY2UgY29tcG9uZW50LlxuICAgKi9cbiAgcHJvdGVjdGVkIHNldCBwbHVnaW5Ob3RpY2VDb21wb25lbnQodmFsdWU6IFBsdWdpbk5vdGljZUNvbXBvbmVudCkge1xuICAgIHRoaXMuX3BsdWdpbk5vdGljZUNvbXBvbmVudCA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGVkaXRvciBsb2NrIGNvbXBvbmVudCwgdXNlZCB0byBsb2NrIG5vdGVzIHJlYWQtb25seSBkdXJpbmcgbG9uZyBvcGVyYXRpb25zLiBPd25lZCBieVxuICAgKiB0aGUgcGx1Z2luLCBzbyBpdHMgbG9ja3MgYXJlIHJlbGVhc2VkIGF1dG9tYXRpY2FsbHkgd2hlbiB0aGUgcGx1Z2luIHVubG9hZHMuXG4gICAqXG4gICAqIEByZXR1cm5zIEVkaXRvciBsb2NrIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgcmVzb3VyY2VMb2NrQ29tcG9uZW50KCk6IFJlc291cmNlTG9ja0NvbXBvbmVudCB7XG4gICAgcmV0dXJuIGVuc3VyZU5vbk51bGxhYmxlKHRoaXMuX3Jlc291cmNlTG9ja0NvbXBvbmVudCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZWRpdG9yIGxvY2sgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBFZGl0b3IgbG9jayBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0IHJlc291cmNlTG9ja0NvbXBvbmVudCh2YWx1ZTogUmVzb3VyY2VMb2NrQ29tcG9uZW50KSB7XG4gICAgdGhpcy5fcmVzb3VyY2VMb2NrQ29tcG9uZW50ID0gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIF9hYm9ydFNpZ25hbENvbXBvbmVudD86IEFib3J0U2lnbmFsQ29tcG9uZW50O1xuXG4gIHByaXZhdGUgX2FzeW5jRXJyb3JIYW5kbGVyQ29tcG9uZW50PzogQXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQ7XG5cbiAgcHJpdmF0ZSBfY29uc29sZURlYnVnQ29tcG9uZW50PzogQ29uc29sZURlYnVnQ29tcG9uZW50O1xuXG4gIHByaXZhdGUgX3BsdWdpbkNvbnRleHRDb21wb25lbnQ/OiBQbHVnaW5Db250ZXh0Q29tcG9uZW50O1xuXG4gIHByaXZhdGUgX3BsdWdpbk5vdGljZUNvbXBvbmVudD86IFBsdWdpbk5vdGljZUNvbXBvbmVudDtcblxuICBwcml2YXRlIF9yZXNvdXJjZUxvY2tDb21wb25lbnQ/OiBSZXNvdXJjZUxvY2tDb21wb25lbnQ7XG5cbiAgcHJpdmF0ZSByZWFkb25seSB3cmFwcGVyQ29tcG9uZW50ID0gbmV3IENvbXBvbmVudEV4KCk7XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBjaGlsZCBjb21wb25lbnQuXG4gICAqXG4gICAqIFRoZSBjaGlsZCBpcyBhZGRlZCB0byBhbiBpbnRlcm5hbCB3cmFwcGVyIGNvbXBvbmVudCBzbyB0aGF0LCBkdXJpbmcge0BsaW5rIG9ubG9hZEltcGx9LFxuICAgKiBjaGlsZHJlbiBhcmUgcXVldWVkIGFuZCB0aGVuIGxvYWRlZCBzZXF1ZW50aWFsbHkgKGNoaWxkcmVuLWZpcnN0KSB3aGVuIHRoZSBwbHVnaW4gbG9hZHMuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gVENvbXBvbmVudCAtIFRoZSB0eXBlIG9mIGNvbXBvbmVudCB0byBhZGQuXG4gICAqIEBwYXJhbSBjb21wb25lbnQgLSBUaGUgY29tcG9uZW50IGluc3RhbmNlIHRvIGFkZC5cbiAgICogQHJldHVybnMgVGhlIGFkZGVkIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBhZGRDaGlsZDxUQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50Pihjb21wb25lbnQ6IFRDb21wb25lbnQpOiBUQ29tcG9uZW50IHtcbiAgICByZXR1cm4gdGhpcy53cmFwcGVyQ29tcG9uZW50LmFkZENoaWxkKGNvbXBvbmVudCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIGV4dGVybmFsIHNldHRpbmdzIGNoYW5nZS5cbiAgICpcbiAgICogT3ZlcnJpZGUgaW4gc3ViY2xhc3MgaWYgbmVlZGVkLiBNYWtlIHN1cmUgdG8gY2FsbCBgYXdhaXQgc3VwZXIub25FeHRlcm5hbFNldHRpbmdzQ2hhbmdlKClgIGZpcnN0LlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGFzeW5jIG9uRXh0ZXJuYWxTZXR0aW5nc0NoYW5nZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBzdXBlci5vbkV4dGVybmFsU2V0dGluZ3NDaGFuZ2U/LigpO1xuICAgIGF3YWl0IHRoaXMudHJpZ2dlckFzeW5jKCdleHRlcm5hbFNldHRpbmdzQ2hhbmdlJyk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIHBsdWdpbiBpcyBsb2FkZWQuXG4gICAqXG4gICAqIE9yY2hlc3RyYXRlcyBsb2FkaW5nOiByZWdpc3RlcnMgdGhlIHVuaXZlcnNhbCBjb21wb25lbnRzLCBsZXRzIHRoZSBzdWJjbGFzcyB3aXJlIGl0cyBvd25cbiAgICogY29tcG9uZW50cyB2aWEge0BsaW5rIG9ubG9hZEltcGx9LCB0aGVuIGxvYWRzIGFsbCBvZiB0aGVtIHNlcXVlbnRpYWxseSAoY2hpbGRyZW4tZmlyc3QpLlxuICAgKlxuICAgKiBEbyBOT1Qgb3ZlcnJpZGUgdGhpcyBtZXRob2QuIE92ZXJyaWRlIHtAbGluayBvbmxvYWRJbXBsfSBpbnN0ZWFkLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGFzeW5jIG9ubG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgaW5pdEkxOE4odGhpcy5jcmVhdGVUcmFuc2xhdGlvbnNNYXAoKSk7XG4gICAgICB0aGlzLnBsdWdpbkNvbnRleHRDb21wb25lbnQgPSB0aGlzLmFkZENoaWxkKFxuICAgICAgICBuZXcgUGx1Z2luQ29udGV4dENvbXBvbmVudCh7XG4gICAgICAgICAgYXBwOiB0aGlzLmFwcCxcbiAgICAgICAgICBwbHVnaW5JZDogdGhpcy5tYW5pZmVzdC5pZFxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICAgIHRoaXMucGx1Z2luTm90aWNlQ29tcG9uZW50ID0gdGhpcy5hZGRDaGlsZChuZXcgUGx1Z2luTm90aWNlQ29tcG9uZW50KHRoaXMubWFuaWZlc3QubmFtZSkpO1xuICAgICAgdGhpcy5hc3luY0Vycm9ySGFuZGxlckNvbXBvbmVudCA9IHRoaXMuYWRkQ2hpbGQobmV3IEFzeW5jRXJyb3JIYW5kbGVyQ29tcG9uZW50KHRoaXMucGx1Z2luTm90aWNlQ29tcG9uZW50KSk7XG4gICAgICB0aGlzLmFib3J0U2lnbmFsQ29tcG9uZW50ID0gdGhpcy5hZGRDaGlsZChuZXcgQWJvcnRTaWduYWxDb21wb25lbnQodGhpcy5tYW5pZmVzdC5pZCkpO1xuICAgICAgdGhpcy5jb25zb2xlRGVidWdDb21wb25lbnQgPSB0aGlzLmFkZENoaWxkKG5ldyBDb25zb2xlRGVidWdDb21wb25lbnQodGhpcy5tYW5pZmVzdC5pZCkpO1xuICAgICAgdGhpcy5yZXNvdXJjZUxvY2tDb21wb25lbnQgPSB0aGlzLmFkZENoaWxkKG5ldyBSZXNvdXJjZUxvY2tDb21wb25lbnQodGhpcy5hcHAsIHRoaXMubWFuaWZlc3QuaWQpKTtcblxuICAgICAgYXdhaXQgdGhpcy5vbmxvYWRJbXBsKCk7XG5cbiAgICAgIC8vIEFkZCB0aGUgd3JhcHBlciB0byB0aGUgbmF0aXZlIHBsdWdpbiBvbmx5IG5vdywgYWZ0ZXIgYWxsIGNoaWxkcmVuIGFyZSBxdWV1ZWQuXG4gICAgICAvLyBUaGUgcGx1Z2luIGlzIGFscmVhZHkgbG9hZGVkLCBzbyB0aGlzIGxvYWRzIHRoZSB3cmFwcGVyJ3MgY2hpbGRyZW4gc2VxdWVudGlhbGx5IChjaGlsZHJlbi1maXJzdCkuXG4gICAgICAvLyBJdCBhbHNvIHJlZ2lzdGVycyB0aGUgd3JhcHBlciBmb3IgYXV0b21hdGljIHRlYXJkb3duIG9uIHBsdWdpbiB1bmxvYWQuXG4gICAgICBzdXBlci5hZGRDaGlsZCh0aGlzLndyYXBwZXJDb21wb25lbnQpO1xuICAgICAgYXdhaXQgdGhpcy53cmFwcGVyQ29tcG9uZW50LmxvYWRXaXRoUHJvbWlzZXMoKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcHJpbnRFcnJvcihuZXcgRXJyb3IoYEVycm9yIGxvYWRpbmcgcGx1Z2luICR7dGhpcy5tYW5pZmVzdC5uYW1lfSAoJHt0aGlzLm1hbmlmZXN0LmlkfSlgLCB7IGNhdXNlOiBlcnJvciB9KSk7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyBhIGNoaWxkIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHR5cGVQYXJhbSBUQ29tcG9uZW50IC0gVGhlIHR5cGUgb2YgY29tcG9uZW50IHRvIHJlbW92ZS5cbiAgICogQHBhcmFtIGNvbXBvbmVudCAtIFRoZSBjb21wb25lbnQgaW5zdGFuY2UgdG8gcmVtb3ZlLlxuICAgKiBAcmV0dXJucyBUaGUgcmVtb3ZlZCBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgcmVtb3ZlQ2hpbGQ8VENvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudD4oY29tcG9uZW50OiBUQ29tcG9uZW50KTogVENvbXBvbmVudCB7XG4gICAgcmV0dXJuIHRoaXMud3JhcHBlckNvbXBvbmVudC5yZW1vdmVDaGlsZChjb21wb25lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb3ZpZGVzIHRoZSB0cmFuc2xhdGlvbnMgbWFwIHVzZWQgdG8gaW5pdGlhbGl6ZSBpMThuIGR1cmluZyB7QGxpbmsgb25sb2FkfS5cbiAgICpcbiAgICogT3ZlcnJpZGUgaW4gc3ViY2xhc3MgdG8gc3VwcGx5IHBsdWdpbi1zcGVjaWZpYyB0cmFuc2xhdGlvbnMuIFRoZSBkZWZhdWx0IHJldHVybnMgdGhlIGJ1aWx0LWluXG4gICAqIGBvYnNpZGlhbi1kZXYtdXRpbHNgIHRyYW5zbGF0aW9ucy5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHRyYW5zbGF0aW9ucyBtYXAuXG4gICAqL1xuICBwcm90ZWN0ZWQgY3JlYXRlVHJhbnNsYXRpb25zTWFwKCk6IFRyYW5zbGF0aW9uc01hcCB7XG4gICAgcmV0dXJuIGRlZmF1bHRUcmFuc2xhdGlvbnNNYXA7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIGR1cmluZyB7QGxpbmsgb25sb2FkfSB0byB3aXJlIHBsdWdpbi1zcGVjaWZpYyBjaGlsZCBjb21wb25lbnRzLlxuICAgKlxuICAgKiBPdmVycmlkZSBpbiBzdWJjbGFzcyB0byBhZGQgY2hpbGQgY29tcG9uZW50cyB2aWEge0BsaW5rIGFkZENoaWxkfS4gVGhlIHVuaXZlcnNhbCBjb21wb25lbnRzIGFyZVxuICAgKiBhdmFpbGFibGUgaGVyZS4gQ2hpbGRyZW4gYXJlIGxvYWRlZCBzZXF1ZW50aWFsbHkgaW4gdGhlIG9yZGVyIHRoZXkgYXJlIGFkZGVkIChjaGlsZHJlbi1maXJzdCkuXG4gICAqXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgc3ViY2xhc3MgbG9hZCBsb2dpYyBpcyBjb21wbGV0ZS5cbiAgICovXG4gIHByb3RlY3RlZCBvbmxvYWRJbXBsKCk6IFByb21pc2FibGU8dm9pZD4ge1xuICAgIHJldHVybiBub29wQXN5bmMoKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlbG9hZHMgdGhlIHNwZWNpZmllZCBwbHVnaW4gYnkgZGlzYWJsaW5nIGFuZCB0aGVuIHJlLWVuYWJsaW5nIGl0LlxuICpcbiAqIEBwYXJhbSBwbHVnaW4gLSBUaGUgcGx1Z2luIHRvIHJlbG9hZC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgcGx1Z2luIGlzIHJlbG9hZGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVsb2FkUGx1Z2luKHBsdWdpbjogUGx1Z2luKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHBsdWdpbnMgPSBwbHVnaW4uYXBwLnBsdWdpbnM7XG4gIGNvbnN0IHBsdWdpbklkID0gcGx1Z2luLm1hbmlmZXN0LmlkO1xuICBhd2FpdCBwbHVnaW5zLmRpc2FibGVQbHVnaW4ocGx1Z2luSWQpO1xuICBhd2FpdCBwbHVnaW5zLmVuYWJsZVBsdWdpbihwbHVnaW5JZCk7XG59XG5cbi8qKlxuICogRGlzcGxheXMgYW4gZXJyb3IgbWVzc2FnZSBhcyBhIG5vdGljZSwgbG9ncyBpdCB0byB0aGUgY29uc29sZSwgYW5kIGRpc2FibGVzIHRoZSBzcGVjaWZpZWQgcGx1Z2luLlxuICpcbiAqIEBwYXJhbSBwbHVnaW4gLSBUaGUgcGx1Z2luIHRvIGRpc2FibGUuXG4gKiBAcGFyYW0gbWVzc2FnZSAtIFRoZSBlcnJvciBtZXNzYWdlIHRvIGRpc3BsYXkgYW5kIGxvZy5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgcGx1Z2luIGlzIGRpc2FibGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2hvd0Vycm9yQW5kRGlzYWJsZVBsdWdpbihwbHVnaW46IFBsdWdpbiwgbWVzc2FnZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHBsdWdpbk5vdGljZUNvbXBvbmVudCA9IG5ldyBQbHVnaW5Ob3RpY2VDb21wb25lbnQocGx1Z2luLm1hbmlmZXN0Lm5hbWUpO1xuICBwbHVnaW5Ob3RpY2VDb21wb25lbnQuc2hvd05vdGljZShtZXNzYWdlKTtcbiAgcHJpbnRFcnJvcihuZXcgRXJyb3IobWVzc2FnZSkpO1xuICBhd2FpdCBwbHVnaW4uYXBwLnBsdWdpbnMuZGlzYWJsZVBsdWdpbihwbHVnaW4ubWFuaWZlc3QuaWQpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFXQSxTQUFTLGNBQWM7QUFRdkIsU0FBUyx3QkFBd0I7QUFDakMsU0FBUyxrQkFBa0I7QUFDM0IsU0FBUyxpQkFBaUI7QUFDMUIsU0FBUyx5QkFBeUI7QUFDbEMsU0FBUyw0QkFBNEI7QUFDckMsU0FBUyxrQ0FBa0M7QUFDM0MsU0FBUyxtQkFBbUI7QUFDNUIsU0FBUyw2QkFBNkI7QUFDdEMsU0FBUyw4QkFBOEI7QUFDdkMsU0FBUyw2QkFBNkI7QUFDdEMsU0FBUyxnQkFBZ0I7QUFDekIsU0FBUyw4QkFBOEI7QUFDdkMsU0FBUyw2QkFBNkI7QUFRL0IsTUFBZSxtQkFBbUIsaUJBQWlDLEVBQUUsTUFBTSxFQUErQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU0vRyxJQUFjLHVCQUE2QztBQUN6RCxXQUFPLGtCQUFrQixLQUFLLHFCQUFxQjtBQUFBLEVBQ3JEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT0EsSUFBYyxxQkFBcUIsT0FBNkI7QUFDOUQsU0FBSyx3QkFBd0I7QUFBQSxFQUMvQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9BLElBQWMsNkJBQXlEO0FBQ3JFLFdBQU8sa0JBQWtCLEtBQUssMkJBQTJCO0FBQUEsRUFDM0Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPQSxJQUFjLDJCQUEyQixPQUFtQztBQUMxRSxTQUFLLDhC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
292
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3BsdWdpbi9wbHVnaW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBCYXNlIGNsYXNzIGZvciBPYnNpZGlhbiBwbHVnaW5zIHVzaW5nIGEgY29tcG9uZW50LWJhc2VkIGFyY2hpdGVjdHVyZS5cbiAqXG4gKiBQbHVnaW5CYXNlIHJlZ2lzdGVycyB1bml2ZXJzYWwgY29tcG9uZW50cyAoY29udGV4dCwgaTE4biwgZXJyb3IgaGFuZGxpbmcsIGFib3J0IHNpZ25hbCwgbGlmZWN5Y2xlIGV2ZW50cywgZGVidWcpLlxuICovXG5cbmltcG9ydCB0eXBlIHsgQ29tcG9uZW50IH0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBQcm9taXNhYmxlIH0gZnJvbSAndHlwZS1mZXN0JztcblxuaW1wb3J0IHsgUGx1Z2luIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7IFRyYW5zbGF0aW9uc01hcCB9IGZyb20gJy4uL2kxOG4vaTE4bi50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIFBsdWdpbkV2ZW50TWFwLFxuICBQbHVnaW5FdmVudFNvdXJjZVxufSBmcm9tICcuL3BsdWdpbi1ldmVudC1zb3VyY2UudHMnO1xuXG5pbXBvcnQgeyBtaXhpbkFzeW5jRXZlbnRzIH0gZnJvbSAnLi4vLi4vYXN5bmMtZXZlbnRzLnRzJztcbmltcG9ydCB7IHByaW50RXJyb3IgfSBmcm9tICcuLi8uLi9lcnJvci50cyc7XG5pbXBvcnQgeyBub29wQXN5bmMgfSBmcm9tICcuLi8uLi9mdW5jdGlvbi50cyc7XG5pbXBvcnQgeyBlbnN1cmVOb25OdWxsYWJsZSB9IGZyb20gJy4uLy4uL3R5cGUtZ3VhcmRzLnRzJztcbmltcG9ydCB7IEFwcEFjdGl2ZUZpbGVQcm92aWRlciB9IGZyb20gJy4uL2FjdGl2ZS1maWxlLXByb3ZpZGVyLnRzJztcbmltcG9ydCB7IENvbW1hbmRIYW5kbGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tbWFuZC1oYW5kbGVycy9jb21tYW5kLWhhbmRsZXItY29tcG9uZW50LnRzJztcbmltcG9ydCB7IFVubG9ja0FjdGl2ZU5vdGVDb21tYW5kSGFuZGxlciB9IGZyb20gJy4uL2NvbW1hbmQtaGFuZGxlcnMvdW5sb2NrLWFjdGl2ZS1ub3RlLWNvbW1hbmQtaGFuZGxlci50cyc7XG5pbXBvcnQgeyBQbHVnaW5Db21tYW5kUmVnaXN0cmFyIH0gZnJvbSAnLi4vY29tbWFuZC1yZWdpc3RyYXIudHMnO1xuaW1wb3J0IHsgQWJvcnRTaWduYWxDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2Fib3J0LXNpZ25hbC1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgQXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2FzeW5jLWVycm9yLWhhbmRsZXItY29tcG9uZW50LnRzJztcbmltcG9ydCB7IENvbXBvbmVudEV4IH0gZnJvbSAnLi4vY29tcG9uZW50cy9jb21wb25lbnQtZXgudHMnO1xuaW1wb3J0IHsgQ29uc29sZURlYnVnQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9jb25zb2xlLWRlYnVnLWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBNZW51RXZlbnRSZWdpc3RyYXJDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL21lbnUtZXZlbnQtcmVnaXN0cmFyLWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBQbHVnaW5Db250ZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9wbHVnaW4tY29udGV4dC1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgUGx1Z2luTm90aWNlQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9wbHVnaW4tbm90aWNlLWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBpbml0STE4TiB9IGZyb20gJy4uL2kxOG4vaTE4bi50cyc7XG5pbXBvcnQgeyBkZWZhdWx0VHJhbnNsYXRpb25zTWFwIH0gZnJvbSAnLi4vaTE4bi9sb2NhbGVzL3RyYW5zbGF0aW9ucy1tYXAudHMnO1xuaW1wb3J0IHsgUmVzb3VyY2VMb2NrQ29tcG9uZW50IH0gZnJvbSAnLi4vcmVzb3VyY2UtbG9jay50cyc7XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgY3JlYXRpbmcgT2JzaWRpYW4gcGx1Z2lucyB3aXRoIGEgY29tcG9uZW50LWJhc2VkIGFyY2hpdGVjdHVyZS5cbiAqXG4gKiBSZWdpc3RlcnMgdW5pdmVyc2FsIGNvbXBvbmVudHMgYXV0b21hdGljYWxseS4gU3ViY2xhc3NlcyBhZGQgb3IgcmVwbGFjZSBjb21wb25lbnRzXG4gKiB2aWEge0BsaW5rIHJlbW92ZUNoaWxkfSAvIHtAbGluayBhZGRDaGlsZH0uXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQbHVnaW5CYXNlIGV4dGVuZHMgbWl4aW5Bc3luY0V2ZW50czxQbHVnaW5FdmVudE1hcD4oKShQbHVnaW4pIGltcGxlbWVudHMgUGx1Z2luRXZlbnRTb3VyY2Uge1xuICAvKipcbiAgICogR2V0cyBhYm9ydCBzaWduYWwgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcmV0dXJucyBhYm9ydCBzaWduYWwgY29tcG9uZW50LlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBhYm9ydFNpZ25hbENvbXBvbmVudCgpOiBBYm9ydFNpZ25hbENvbXBvbmVudCB7XG4gICAgcmV0dXJuIGVuc3VyZU5vbk51bGxhYmxlKHRoaXMuX2Fib3J0U2lnbmFsQ29tcG9uZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIGFib3J0IHNpZ25hbCBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIEFib3J0IHNpZ25hbCBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0IGFib3J0U2lnbmFsQ29tcG9uZW50KHZhbHVlOiBBYm9ydFNpZ25hbENvbXBvbmVudCkge1xuICAgIHRoaXMuX2Fib3J0U2lnbmFsQ29tcG9uZW50ID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhc3luYyBlcnJvciBoYW5kbGVyIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHJldHVybnMgYXN5bmMgZXJyb3IgaGFuZGxlciBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IGFzeW5jRXJyb3JIYW5kbGVyQ29tcG9uZW50KCk6IEFzeW5jRXJyb3JIYW5kbGVyQ29tcG9uZW50IHtcbiAgICByZXR1cm4gZW5zdXJlTm9uTnVsbGFibGUodGhpcy5fYXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgYXN5bmMgZXJyb3IgaGFuZGxlciBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIEFzeW5jIGVycm9yIGhhbmRsZXIgY29tcG9uZW50LlxuICAgKi9cbiAgcHJvdGVjdGVkIHNldCBhc3luY0Vycm9ySGFuZGxlckNvbXBvbmVudCh2YWx1ZTogQXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQpIHtcbiAgICB0aGlzLl9hc3luY0Vycm9ySGFuZGxlckNvbXBvbmVudCA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHNoYXJlZCBjb21tYW5kIGhhbmRsZXIgY29tcG9uZW50LiBSZWdpc3RlciBhIHBsdWdpbidzIGNvbW1hbmRzIG9uIGl0IHZpYVxuICAgKiB7QGxpbmsgQ29tbWFuZEhhbmRsZXJDb21wb25lbnQucmVnaXN0ZXJDb21tYW5kSGFuZGxlcnN9IHJhdGhlciB0aGFuIGNvbnN0cnVjdGluZyB5b3VyIG93blxuICAgKiB7QGxpbmsgQ29tbWFuZEhhbmRsZXJDb21wb25lbnR9IFx1MjAxNCB0aGUgYXBwLWJhY2tlZCBhY3RpdmUtZmlsZSBwcm92aWRlciwgY29tbWFuZCByZWdpc3RyYXIsIG1lbnVcbiAgICogZXZlbnQgcmVnaXN0cmFyLCBhbmQgcGx1Z2luIG5hbWUgYXJlIGFscmVhZHkgd2lyZWQuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBjb21tYW5kIGhhbmRsZXIgY29tcG9uZW50LlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBjb21tYW5kSGFuZGxlckNvbXBvbmVudCgpOiBDb21tYW5kSGFuZGxlckNvbXBvbmVudCB7XG4gICAgcmV0dXJuIGVuc3VyZU5vbk51bGxhYmxlKHRoaXMuX2NvbW1hbmRIYW5kbGVyQ29tcG9uZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBjb21tYW5kIGhhbmRsZXIgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgY29tbWFuZCBoYW5kbGVyIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBzZXQgY29tbWFuZEhhbmRsZXJDb21wb25lbnQodmFsdWU6IENvbW1hbmRIYW5kbGVyQ29tcG9uZW50KSB7XG4gICAgdGhpcy5fY29tbWFuZEhhbmRsZXJDb21wb25lbnQgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGNvbnNvbGUgZGVidWcgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcmV0dXJucyBjb25zb2xlIGRlYnVnIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgY29uc29sZURlYnVnQ29tcG9uZW50KCk6IENvbnNvbGVEZWJ1Z0NvbXBvbmVudCB7XG4gICAgcmV0dXJuIGVuc3VyZU5vbk51bGxhYmxlKHRoaXMuX2NvbnNvbGVEZWJ1Z0NvbXBvbmVudCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBjb25zb2xlIGRlYnVnIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gQ29uc29sZSBkZWJ1ZyBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0IGNvbnNvbGVEZWJ1Z0NvbXBvbmVudCh2YWx1ZTogQ29uc29sZURlYnVnQ29tcG9uZW50KSB7XG4gICAgdGhpcy5fY29uc29sZURlYnVnQ29tcG9uZW50ID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBwbHVnaW4gY29udGV4dCBjb21wb25lbnQgKHBsdWdpbiBJRCwgZGVidWcgY29udHJvbGxlciwgbGlicmFyeSBzdHlsZXMpLlxuICAgKlxuICAgKiBAcmV0dXJucyBwbHVnaW4gY29udGV4dCBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IHBsdWdpbkNvbnRleHRDb21wb25lbnQoKTogUGx1Z2luQ29udGV4dENvbXBvbmVudCB7XG4gICAgcmV0dXJuIGVuc3VyZU5vbk51bGxhYmxlKHRoaXMuX3BsdWdpbkNvbnRleHRDb21wb25lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgcGx1Z2luIGNvbnRleHQgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBQbHVnaW4gY29udGV4dCBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0IHBsdWdpbkNvbnRleHRDb21wb25lbnQodmFsdWU6IFBsdWdpbkNvbnRleHRDb21wb25lbnQpIHtcbiAgICB0aGlzLl9wbHVnaW5Db250ZXh0Q29tcG9uZW50ID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBwbHVnaW4gbm90aWNlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHJldHVybnMgcGx1Z2luIG5vdGljZSBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IHBsdWdpbk5vdGljZUNvbXBvbmVudCgpOiBQbHVnaW5Ob3RpY2VDb21wb25lbnQge1xuICAgIHJldHVybiBlbnN1cmVOb25OdWxsYWJsZSh0aGlzLl9wbHVnaW5Ob3RpY2VDb21wb25lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgcGx1Z2luIG5vdGljZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFBsdWdpbiBub3RpY2UgY29tcG9uZW50LlxuICAgKi9cbiAgcHJvdGVjdGVkIHNldCBwbHVnaW5Ob3RpY2VDb21wb25lbnQodmFsdWU6IFBsdWdpbk5vdGljZUNvbXBvbmVudCkge1xuICAgIHRoaXMuX3BsdWdpbk5vdGljZUNvbXBvbmVudCA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGVkaXRvciBsb2NrIGNvbXBvbmVudCwgdXNlZCB0byBsb2NrIG5vdGVzIHJlYWQtb25seSBkdXJpbmcgbG9uZyBvcGVyYXRpb25zLiBPd25lZCBieVxuICAgKiB0aGUgcGx1Z2luLCBzbyBpdHMgbG9ja3MgYXJlIHJlbGVhc2VkIGF1dG9tYXRpY2FsbHkgd2hlbiB0aGUgcGx1Z2luIHVubG9hZHMuXG4gICAqXG4gICAqIEByZXR1cm5zIEVkaXRvciBsb2NrIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgcmVzb3VyY2VMb2NrQ29tcG9uZW50KCk6IFJlc291cmNlTG9ja0NvbXBvbmVudCB7XG4gICAgcmV0dXJuIGVuc3VyZU5vbk51bGxhYmxlKHRoaXMuX3Jlc291cmNlTG9ja0NvbXBvbmVudCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZWRpdG9yIGxvY2sgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBFZGl0b3IgbG9jayBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0IHJlc291cmNlTG9ja0NvbXBvbmVudCh2YWx1ZTogUmVzb3VyY2VMb2NrQ29tcG9uZW50KSB7XG4gICAgdGhpcy5fcmVzb3VyY2VMb2NrQ29tcG9uZW50ID0gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIF9hYm9ydFNpZ25hbENvbXBvbmVudD86IEFib3J0U2lnbmFsQ29tcG9uZW50O1xuXG4gIHByaXZhdGUgX2FzeW5jRXJyb3JIYW5kbGVyQ29tcG9uZW50PzogQXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQ7XG5cbiAgcHJpdmF0ZSBfY29tbWFuZEhhbmRsZXJDb21wb25lbnQ/OiBDb21tYW5kSGFuZGxlckNvbXBvbmVudDtcblxuICBwcml2YXRlIF9jb25zb2xlRGVidWdDb21wb25lbnQ/OiBDb25zb2xlRGVidWdDb21wb25lbnQ7XG5cbiAgcHJpdmF0ZSBfcGx1Z2luQ29udGV4dENvbXBvbmVudD86IFBsdWdpbkNvbnRleHRDb21wb25lbnQ7XG5cbiAgcHJpdmF0ZSBfcGx1Z2luTm90aWNlQ29tcG9uZW50PzogUGx1Z2luTm90aWNlQ29tcG9uZW50O1xuXG4gIHByaXZhdGUgX3Jlc291cmNlTG9ja0NvbXBvbmVudD86IFJlc291cmNlTG9ja0NvbXBvbmVudDtcblxuICBwcml2YXRlIHJlYWRvbmx5IHdyYXBwZXJDb21wb25lbnQgPSBuZXcgQ29tcG9uZW50RXgoKTtcblxuICAvKipcbiAgICogQWRkcyBhIGNoaWxkIGNvbXBvbmVudC5cbiAgICpcbiAgICogVGhlIGNoaWxkIGlzIGFkZGVkIHRvIGFuIGludGVybmFsIHdyYXBwZXIgY29tcG9uZW50IHNvIHRoYXQsIGR1cmluZyB7QGxpbmsgb25sb2FkSW1wbH0sXG4gICAqIGNoaWxkcmVuIGFyZSBxdWV1ZWQgYW5kIHRoZW4gbG9hZGVkIHNlcXVlbnRpYWxseSAoY2hpbGRyZW4tZmlyc3QpIHdoZW4gdGhlIHBsdWdpbiBsb2Fkcy5cbiAgICpcbiAgICogQHR5cGVQYXJhbSBUQ29tcG9uZW50IC0gVGhlIHR5cGUgb2YgY29tcG9uZW50IHRvIGFkZC5cbiAgICogQHBhcmFtIGNvbXBvbmVudCAtIFRoZSBjb21wb25lbnQgaW5zdGFuY2UgdG8gYWRkLlxuICAgKiBAcmV0dXJucyBUaGUgYWRkZWQgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGFkZENoaWxkPFRDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnQ+KGNvbXBvbmVudDogVENvbXBvbmVudCk6IFRDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLndyYXBwZXJDb21wb25lbnQuYWRkQ2hpbGQoY29tcG9uZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgZXh0ZXJuYWwgc2V0dGluZ3MgY2hhbmdlLlxuICAgKlxuICAgKiBPdmVycmlkZSBpbiBzdWJjbGFzcyBpZiBuZWVkZWQuIE1ha2Ugc3VyZSB0byBjYWxsIGBhd2FpdCBzdXBlci5vbkV4dGVybmFsU2V0dGluZ3NDaGFuZ2UoKWAgZmlyc3QuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgYXN5bmMgb25FeHRlcm5hbFNldHRpbmdzQ2hhbmdlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHN1cGVyLm9uRXh0ZXJuYWxTZXR0aW5nc0NoYW5nZT8uKCk7XG4gICAgYXdhaXQgdGhpcy50cmlnZ2VyQXN5bmMoJ2V4dGVybmFsU2V0dGluZ3NDaGFuZ2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgcGx1Z2luIGlzIGxvYWRlZC5cbiAgICpcbiAgICogT3JjaGVzdHJhdGVzIGxvYWRpbmc6IHJlZ2lzdGVycyB0aGUgdW5pdmVyc2FsIGNvbXBvbmVudHMsIGxldHMgdGhlIHN1YmNsYXNzIHdpcmUgaXRzIG93blxuICAgKiBjb21wb25lbnRzIHZpYSB7QGxpbmsgb25sb2FkSW1wbH0sIHRoZW4gbG9hZHMgYWxsIG9mIHRoZW0gc2VxdWVudGlhbGx5IChjaGlsZHJlbi1maXJzdCkuXG4gICAqXG4gICAqIERvIE5PVCBvdmVycmlkZSB0aGlzIG1ldGhvZC4gT3ZlcnJpZGUge0BsaW5rIG9ubG9hZEltcGx9IGluc3RlYWQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgYXN5bmMgb25sb2FkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBpbml0STE4Tih0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uc01hcCgpKTtcbiAgICAgIHRoaXMucGx1Z2luQ29udGV4dENvbXBvbmVudCA9IHRoaXMuYWRkQ2hpbGQoXG4gICAgICAgIG5ldyBQbHVnaW5Db250ZXh0Q29tcG9uZW50KHtcbiAgICAgICAgICBhcHA6IHRoaXMuYXBwLFxuICAgICAgICAgIHBsdWdpbklkOiB0aGlzLm1hbmlmZXN0LmlkXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgdGhpcy5wbHVnaW5Ob3RpY2VDb21wb25lbnQgPSB0aGlzLmFkZENoaWxkKFxuICAgICAgICBuZXcgUGx1Z2luTm90aWNlQ29tcG9uZW50KHtcbiAgICAgICAgICBhcHA6IHRoaXMuYXBwLFxuICAgICAgICAgIHBsdWdpbk5hbWU6IHRoaXMubWFuaWZlc3QubmFtZVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICAgIHRoaXMuYXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQgPSB0aGlzLmFkZENoaWxkKG5ldyBBc3luY0Vycm9ySGFuZGxlckNvbXBvbmVudCh0aGlzLnBsdWdpbk5vdGljZUNvbXBvbmVudCkpO1xuICAgICAgdGhpcy5hYm9ydFNpZ25hbENvbXBvbmVudCA9IHRoaXMuYWRkQ2hpbGQobmV3IEFib3J0U2lnbmFsQ29tcG9uZW50KHRoaXMubWFuaWZlc3QuaWQpKTtcbiAgICAgIHRoaXMuY29uc29sZURlYnVnQ29tcG9uZW50ID0gdGhpcy5hZGRDaGlsZChuZXcgQ29uc29sZURlYnVnQ29tcG9uZW50KHRoaXMubWFuaWZlc3QuaWQpKTtcbiAgICAgIHRoaXMucmVzb3VyY2VMb2NrQ29tcG9uZW50ID0gdGhpcy5hZGRDaGlsZChuZXcgUmVzb3VyY2VMb2NrQ29tcG9uZW50KHRoaXMuYXBwLCB0aGlzLm1hbmlmZXN0LmlkKSk7XG4gICAgICB0aGlzLmNvbW1hbmRIYW5kbGVyQ29tcG9uZW50ID0gdGhpcy5hZGRDaGlsZChcbiAgICAgICAgbmV3IENvbW1hbmRIYW5kbGVyQ29tcG9uZW50KHtcbiAgICAgICAgICBhY3RpdmVGaWxlUHJvdmlkZXI6IG5ldyBBcHBBY3RpdmVGaWxlUHJvdmlkZXIodGhpcy5hcHApLFxuICAgICAgICAgIGNvbW1hbmRSZWdpc3RyYXI6IG5ldyBQbHVnaW5Db21tYW5kUmVnaXN0cmFyKHRoaXMpLFxuICAgICAgICAgIG1lbnVFdmVudFJlZ2lzdHJhcjogdGhpcy5hZGRDaGlsZChuZXcgTWVudUV2ZW50UmVnaXN0cmFyQ29tcG9uZW50KHRoaXMuYXBwKSksXG4gICAgICAgICAgcGx1Z2luTmFtZTogdGhpcy5tYW5pZmVzdC5uYW1lXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgLy8gQWx3YXlzIGF2YWlsYWJsZTsgdGhlIGNvbW1hbmQncyBvd24gYGNhbkV4ZWN1dGVgIGhpZGVzIGl0IHVubGVzcyB0aGUgYWN0aXZlIG5vdGUgaXMgbG9ja2VkLlxuICAgICAgdGhpcy5jb21tYW5kSGFuZGxlckNvbXBvbmVudC5yZWdpc3RlckNvbW1hbmRIYW5kbGVycyhbXG4gICAgICAgIG5ldyBVbmxvY2tBY3RpdmVOb3RlQ29tbWFuZEhhbmRsZXIoe1xuICAgICAgICAgIGFwcDogdGhpcy5hcHAsXG4gICAgICAgICAgcmVzb3VyY2VMb2NrQ29tcG9uZW50OiB0aGlzLnJlc291cmNlTG9ja0NvbXBvbmVudFxuICAgICAgICB9KVxuICAgICAgXSk7XG5cbiAgICAgIGF3YWl0IHRoaXMub25sb2FkSW1wbCgpO1xuXG4gICAgICAvLyBBZGQgdGhlIHdyYXBwZXIgdG8gdGhlIG5hdGl2ZSBwbHVnaW4gb25seSBub3csIGFmdGVyIGFsbCBjaGlsZHJlbiBhcmUgcXVldWVkLlxuICAgICAgLy8gVGhlIHBsdWdpbiBpcyBhbHJlYWR5IGxvYWRlZCwgc28gdGhpcyBsb2FkcyB0aGUgd3JhcHBlcidzIGNoaWxkcmVuIHNlcXVlbnRpYWxseSAoY2hpbGRyZW4tZmlyc3QpLlxuICAgICAgLy8gSXQgYWxzbyByZWdpc3RlcnMgdGhlIHdyYXBwZXIgZm9yIGF1dG9tYXRpYyB0ZWFyZG93biBvbiBwbHVnaW4gdW5sb2FkLlxuICAgICAgc3VwZXIuYWRkQ2hpbGQodGhpcy53cmFwcGVyQ29tcG9uZW50KTtcbiAgICAgIGF3YWl0IHRoaXMud3JhcHBlckNvbXBvbmVudC5sb2FkV2l0aFByb21pc2VzKCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHByaW50RXJyb3IobmV3IEVycm9yKGBFcnJvciBsb2FkaW5nIHBsdWdpbiAke3RoaXMubWFuaWZlc3QubmFtZX0gKCR7dGhpcy5tYW5pZmVzdC5pZH0pYCwgeyBjYXVzZTogZXJyb3IgfSkpO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYSBjaGlsZCBjb21wb25lbnQuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gVENvbXBvbmVudCAtIFRoZSB0eXBlIG9mIGNvbXBvbmVudCB0byByZW1vdmUuXG4gICAqIEBwYXJhbSBjb21wb25lbnQgLSBUaGUgY29tcG9uZW50IGluc3RhbmNlIHRvIHJlbW92ZS5cbiAgICogQHJldHVybnMgVGhlIHJlbW92ZWQgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIHJlbW92ZUNoaWxkPFRDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnQ+KGNvbXBvbmVudDogVENvbXBvbmVudCk6IFRDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLndyYXBwZXJDb21wb25lbnQucmVtb3ZlQ2hpbGQoY29tcG9uZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm92aWRlcyB0aGUgdHJhbnNsYXRpb25zIG1hcCB1c2VkIHRvIGluaXRpYWxpemUgaTE4biBkdXJpbmcge0BsaW5rIG9ubG9hZH0uXG4gICAqXG4gICAqIE92ZXJyaWRlIGluIHN1YmNsYXNzIHRvIHN1cHBseSBwbHVnaW4tc3BlY2lmaWMgdHJhbnNsYXRpb25zLiBUaGUgZGVmYXVsdCByZXR1cm5zIHRoZSBidWlsdC1pblxuICAgKiBgb2JzaWRpYW4tZGV2LXV0aWxzYCB0cmFuc2xhdGlvbnMuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSB0cmFuc2xhdGlvbnMgbWFwLlxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZVRyYW5zbGF0aW9uc01hcCgpOiBUcmFuc2xhdGlvbnNNYXAge1xuICAgIHJldHVybiBkZWZhdWx0VHJhbnNsYXRpb25zTWFwO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCBkdXJpbmcge0BsaW5rIG9ubG9hZH0gdG8gd2lyZSBwbHVnaW4tc3BlY2lmaWMgY2hpbGQgY29tcG9uZW50cy5cbiAgICpcbiAgICogT3ZlcnJpZGUgaW4gc3ViY2xhc3MgdG8gYWRkIGNoaWxkIGNvbXBvbmVudHMgdmlhIHtAbGluayBhZGRDaGlsZH0uIFRoZSB1bml2ZXJzYWwgY29tcG9uZW50cyBhcmVcbiAgICogYXZhaWxhYmxlIGhlcmUuIENoaWxkcmVuIGFyZSBsb2FkZWQgc2VxdWVudGlhbGx5IGluIHRoZSBvcmRlciB0aGV5IGFyZSBhZGRlZCAoY2hpbGRyZW4tZmlyc3QpLlxuICAgKlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHN1YmNsYXNzIGxvYWQgbG9naWMgaXMgY29tcGxldGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgb25sb2FkSW1wbCgpOiBQcm9taXNhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gbm9vcEFzeW5jKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZWxvYWRzIHRoZSBzcGVjaWZpZWQgcGx1Z2luIGJ5IGRpc2FibGluZyBhbmQgdGhlbiByZS1lbmFibGluZyBpdC5cbiAqXG4gKiBAcGFyYW0gcGx1Z2luIC0gVGhlIHBsdWdpbiB0byByZWxvYWQuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHBsdWdpbiBpcyByZWxvYWRlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbG9hZFBsdWdpbihwbHVnaW46IFBsdWdpbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBwbHVnaW5zID0gcGx1Z2luLmFwcC5wbHVnaW5zO1xuICBjb25zdCBwbHVnaW5JZCA9IHBsdWdpbi5tYW5pZmVzdC5pZDtcbiAgYXdhaXQgcGx1Z2lucy5kaXNhYmxlUGx1Z2luKHBsdWdpbklkKTtcbiAgYXdhaXQgcGx1Z2lucy5lbmFibGVQbHVnaW4ocGx1Z2luSWQpO1xufVxuXG4vKipcbiAqIERpc3BsYXlzIGFuIGVycm9yIG1lc3NhZ2UgYXMgYSBub3RpY2UsIGxvZ3MgaXQgdG8gdGhlIGNvbnNvbGUsIGFuZCBkaXNhYmxlcyB0aGUgc3BlY2lmaWVkIHBsdWdpbi5cbiAqXG4gKiBAcGFyYW0gcGx1Z2luIC0gVGhlIHBsdWdpbiB0byBkaXNhYmxlLlxuICogQHBhcmFtIG1lc3NhZ2UgLSBUaGUgZXJyb3IgbWVzc2FnZSB0byBkaXNwbGF5IGFuZCBsb2cuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHBsdWdpbiBpcyBkaXNhYmxlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNob3dFcnJvckFuZERpc2FibGVQbHVnaW4ocGx1Z2luOiBQbHVnaW4sIG1lc3NhZ2U6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBwbHVnaW5Ob3RpY2VDb21wb25lbnQgPSBuZXcgUGx1Z2luTm90aWNlQ29tcG9uZW50KHtcbiAgICBhcHA6IHBsdWdpbi5hcHAsXG4gICAgcGx1Z2luTmFtZTogcGx1Z2luLm1hbmlmZXN0Lm5hbWVcbiAgfSk7XG4gIHBsdWdpbk5vdGljZUNvbXBvbmVudC5zaG93Tm90aWNlKG1lc3NhZ2UpO1xuICBwcmludEVycm9yKG5ldyBFcnJvcihtZXNzYWdlKSk7XG4gIGF3YWl0IHBsdWdpbi5hcHAucGx1Z2lucy5kaXNhYmxlUGx1Z2luKHBsdWdpbi5tYW5pZmVzdC5pZCk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVdBLFNBQVMsY0FBYztBQVF2QixTQUFTLHdCQUF3QjtBQUNqQyxTQUFTLGtCQUFrQjtBQUMzQixTQUFTLGlCQUFpQjtBQUMxQixTQUFTLHlCQUF5QjtBQUNsQyxTQUFTLDZCQUE2QjtBQUN0QyxTQUFTLCtCQUErQjtBQUN4QyxTQUFTLHNDQUFzQztBQUMvQyxTQUFTLDhCQUE4QjtBQUN2QyxTQUFTLDRCQUE0QjtBQUNyQyxTQUFTLGtDQUFrQztBQUMzQyxTQUFTLG1CQUFtQjtBQUM1QixTQUFTLDZCQUE2QjtBQUN0QyxTQUFTLG1DQUFtQztBQUM1QyxTQUFTLDhCQUE4QjtBQUN2QyxTQUFTLDZCQUE2QjtBQUN0QyxTQUFTLGdCQUFn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
@@ -5,6 +5,16 @@
5
5
  * This module provides additional utilities for working with the Obsidian {@link Workspace}.
6
6
  */
7
7
  import type { App, WorkspaceContainer } from 'obsidian';
8
+ /**
9
+ * Waits until the workspace layout is ready.
10
+ *
11
+ * Resolves immediately when the layout is already ready; otherwise resolves once Obsidian fires the
12
+ * layout-ready event.
13
+ *
14
+ * @param app - The Obsidian app.
15
+ * @returns A {@link Promise} that resolves once the workspace layout is ready.
16
+ */
17
+ export declare function ensureLayoutReady(app: App): Promise<void>;
8
18
  /**
9
19
  * Returns all containers in the workspace.
10
20
  *
@@ -21,6 +21,11 @@ if you want to view the source, please visit the github repository of this plugi
21
21
  globalThis.process = browserProcess;
22
22
  })();
23
23
 
24
+ async function ensureLayoutReady(app) {
25
+ await new Promise((resolve) => {
26
+ app.workspace.onLayoutReady(resolve);
27
+ });
28
+ }
24
29
  function getAllContainers(app) {
25
30
  const containers = /* @__PURE__ */ new Set();
26
31
  app.workspace.iterateAllLeaves((leaf) => {
@@ -32,7 +37,8 @@ function getAllDomWindows(app) {
32
37
  return getAllContainers(app).map((container) => container.win);
33
38
  }
34
39
  export {
40
+ ensureLayoutReady,
35
41
  getAllContainers,
36
42
  getAllDomWindows
37
43
  };
38
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3dvcmtzcGFjZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIGFkZGl0aW9uYWwgdXRpbGl0aWVzIGZvciB3b3JraW5nIHdpdGggdGhlIE9ic2lkaWFuIHtAbGluayBXb3Jrc3BhY2V9LlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgQXBwLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzIC0tIFdlIG5lZWQgdG8gaW1wb3J0IGBXb3Jrc3BhY2VgIHRvIHVzZSBpdCBpbiB0aGUgdHNkb2NzLlxuICBXb3Jrc3BhY2UsXG4gIFdvcmtzcGFjZUNvbnRhaW5lclxufSBmcm9tICdvYnNpZGlhbic7XG5cbi8qKlxuICogUmV0dXJucyBhbGwgY29udGFpbmVycyBpbiB0aGUgd29ya3NwYWNlLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwLlxuICogQHJldHVybnMgQWxsIGNvbnRhaW5lcnMgaW4gdGhlIHdvcmtzcGFjZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFsbENvbnRhaW5lcnMoYXBwOiBBcHApOiBXb3Jrc3BhY2VDb250YWluZXJbXSB7XG4gIGNvbnN0IGNvbnRhaW5lcnMgPSBuZXcgU2V0PFdvcmtzcGFjZUNvbnRhaW5lcj4oKTtcbiAgYXBwLndvcmtzcGFjZS5pdGVyYXRlQWxsTGVhdmVzKChsZWFmKSA9PiB7XG4gICAgY29udGFpbmVycy5hZGQobGVhZi5nZXRDb250YWluZXIoKSk7XG4gIH0pO1xuICByZXR1cm4gQXJyYXkuZnJvbShjb250YWluZXJzKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGFsbCBET00gd2luZG93cyBpbiB0aGUgd29ya3NwYWNlLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwLlxuICogQHJldHVybnMgQWxsIERPTSB3aW5kb3dzIGluIHRoZSB3b3Jrc3BhY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBbGxEb21XaW5kb3dzKGFwcDogQXBwKTogV2luZG93W10ge1xuICByZXR1cm4gZ2V0QWxsQ29udGFpbmVycyhhcHApLm1hcCgoY29udGFpbmVyKSA9PiBjb250YWluZXIud2luKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBbUJPLFNBQVMsaUJBQWlCLEtBQWdDO0FBQy9ELFFBQU0sYUFBYSxvQkFBSSxJQUF3QjtBQUMvQyxNQUFJLFVBQVUsaUJBQWlCLENBQUMsU0FBUztBQUN2QyxlQUFXLElBQUksS0FBSyxhQUFhLENBQUM7QUFBQSxFQUNwQyxDQUFDO0FBQ0QsU0FBTyxNQUFNLEtBQUssVUFBVTtBQUM5QjtBQVFPLFNBQVMsaUJBQWlCLEtBQW9CO0FBQ25ELFNBQU8saUJBQWlCLEdBQUcsRUFBRSxJQUFJLENBQUMsY0FBYyxVQUFVLEdBQUc7QUFDL0Q7IiwKICAibmFtZXMiOiBbXQp9Cg==
44
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3dvcmtzcGFjZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIGFkZGl0aW9uYWwgdXRpbGl0aWVzIGZvciB3b3JraW5nIHdpdGggdGhlIE9ic2lkaWFuIHtAbGluayBXb3Jrc3BhY2V9LlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgQXBwLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzIC0tIFdlIG5lZWQgdG8gaW1wb3J0IGBXb3Jrc3BhY2VgIHRvIHVzZSBpdCBpbiB0aGUgdHNkb2NzLlxuICBXb3Jrc3BhY2UsXG4gIFdvcmtzcGFjZUNvbnRhaW5lclxufSBmcm9tICdvYnNpZGlhbic7XG5cbi8qKlxuICogV2FpdHMgdW50aWwgdGhlIHdvcmtzcGFjZSBsYXlvdXQgaXMgcmVhZHkuXG4gKlxuICogUmVzb2x2ZXMgaW1tZWRpYXRlbHkgd2hlbiB0aGUgbGF5b3V0IGlzIGFscmVhZHkgcmVhZHk7IG90aGVyd2lzZSByZXNvbHZlcyBvbmNlIE9ic2lkaWFuIGZpcmVzIHRoZVxuICogbGF5b3V0LXJlYWR5IGV2ZW50LlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyBvbmNlIHRoZSB3b3Jrc3BhY2UgbGF5b3V0IGlzIHJlYWR5LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZW5zdXJlTGF5b3V0UmVhZHkoYXBwOiBBcHApOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUpID0+IHtcbiAgICBhcHAud29ya3NwYWNlLm9uTGF5b3V0UmVhZHkocmVzb2x2ZSk7XG4gIH0pO1xufVxuXG4vKipcbiAqIFJldHVybnMgYWxsIGNvbnRhaW5lcnMgaW4gdGhlIHdvcmtzcGFjZS5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcC5cbiAqIEByZXR1cm5zIEFsbCBjb250YWluZXJzIGluIHRoZSB3b3Jrc3BhY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBbGxDb250YWluZXJzKGFwcDogQXBwKTogV29ya3NwYWNlQ29udGFpbmVyW10ge1xuICBjb25zdCBjb250YWluZXJzID0gbmV3IFNldDxXb3Jrc3BhY2VDb250YWluZXI+KCk7XG4gIGFwcC53b3Jrc3BhY2UuaXRlcmF0ZUFsbExlYXZlcygobGVhZikgPT4ge1xuICAgIGNvbnRhaW5lcnMuYWRkKGxlYWYuZ2V0Q29udGFpbmVyKCkpO1xuICB9KTtcbiAgcmV0dXJuIEFycmF5LmZyb20oY29udGFpbmVycyk7XG59XG5cbi8qKlxuICogUmV0dXJucyBhbGwgRE9NIHdpbmRvd3MgaW4gdGhlIHdvcmtzcGFjZS5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcC5cbiAqIEByZXR1cm5zIEFsbCBET00gd2luZG93cyBpbiB0aGUgd29ya3NwYWNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWxsRG9tV2luZG93cyhhcHA6IEFwcCk6IFdpbmRvd1tdIHtcbiAgcmV0dXJuIGdldEFsbENvbnRhaW5lcnMoYXBwKS5tYXAoKGNvbnRhaW5lcikgPT4gY29udGFpbmVyLndpbik7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXNCQSxlQUFzQixrQkFBa0IsS0FBeUI7QUFDL0QsUUFBTSxJQUFJLFFBQWMsQ0FBQyxZQUFZO0FBQ25DLFFBQUksVUFBVSxjQUFjLE9BQU87QUFBQSxFQUNyQyxDQUFDO0FBQ0g7QUFRTyxTQUFTLGlCQUFpQixLQUFnQztBQUMvRCxRQUFNLGFBQWEsb0JBQUksSUFBd0I7QUFDL0MsTUFBSSxVQUFVLGlCQUFpQixDQUFDLFNBQVM7QUFDdkMsZUFBVyxJQUFJLEtBQUssYUFBYSxDQUFDO0FBQUEsRUFDcEMsQ0FBQztBQUNELFNBQU8sTUFBTSxLQUFLLFVBQVU7QUFDOUI7QUFRTyxTQUFTLGlCQUFpQixLQUFvQjtBQUNuRCxTQUFPLGlCQUFpQixHQUFHLEVBQUUsSUFBSSxDQUFDLGNBQWMsVUFBVSxHQUFHO0FBQy9EOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -68,7 +68,7 @@ export declare const join: (this: void, ...paths: string[]) => string;
68
68
  * @param path - The path to normalize.
69
69
  * @returns The normalized path.
70
70
  */
71
- export declare const normalize: (this: void, path: string) => string;
71
+ export declare const normalizePath: (this: void, path: string) => string;
72
72
  /**
73
73
  * Parses a path string into a path object.
74
74
  *
@@ -38,7 +38,7 @@ function isAbsolute(path) {
38
38
  return posix.isAbsolute(path) || WINDOWS_POSIX_LIKE_PATH_REG_EXP.exec(path)?.[0] === path;
39
39
  }
40
40
  const join = posix.join;
41
- const normalize = posix.normalize;
41
+ const normalizePath = posix.normalize;
42
42
  const parse = posix.parse;
43
43
  const relative = posix.relative;
44
44
  function getFileName(importMetaUrl) {
@@ -86,8 +86,8 @@ export {
86
86
  isAbsolute,
87
87
  join,
88
88
  makeFileName,
89
- normalize,
90
89
  normalizeIfRelative,
90
+ normalizePath,
91
91
  parse,
92
92
  posix,
93
93
  relative,
@@ -96,4 +96,4 @@ export {
96
96
  toPosixBuffer,
97
97
  toPosixPath
98
98
  };
99
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3BhdGgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDb250YWlucyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgaGFuZGxpbmcgcGF0aHMuXG4gKi9cblxuaW1wb3J0IHBhdGhCcm93c2VyaWZ5IGZyb20gJ3BhdGgtYnJvd3NlcmlmeSc7XG5cbmltcG9ydCB7XG4gIGVuc3VyZVN0YXJ0c1dpdGgsXG4gIHJlcGxhY2VBbGxcbn0gZnJvbSAnLi9zdHJpbmcudHMnO1xuXG5jb25zdCBXSU5ET1dTX1BPU0lYX0xJS0VfUEFUSF9SRUdfRVhQID0gL1thLXpBLVpdOlxcL1teOl0qJC87XG5cbi8qKlxuICogUHJvdmlkZXMgbWV0aG9kcyBmb3IgaGFuZGxpbmcgUE9TSVggcGF0aHMuXG4gKi9cbmV4cG9ydCBjb25zdCBwb3NpeCA9IHBhdGhCcm93c2VyaWZ5LnBvc2l4O1xuXG4vKipcbiAqIEEgUE9TSVggcGF0aCBkZWxpbWl0ZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBkZWxpbWl0ZXIgPSBwb3NpeC5kZWxpbWl0ZXI7XG5cbi8qKlxuICogQSBQT1NJWCBzZWdtZW50IHNlcGFyYXRvci5cbiAqL1xuZXhwb3J0IGNvbnN0IHNlcCA9IHBhdGhCcm93c2VyaWZ5LnBvc2l4LnNlcDtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBiYXNlIG5hbWUgb2YgYSBmaWxlLCBvcHRpb25hbGx5IHJlbW92aW5nIHRoZSBmaWxlIGV4dGVuc2lvbi5cbiAqXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSBwYXRoIHRvIGdldCB0aGUgYmFzZSBuYW1lIGZyb20uXG4gKiBAcGFyYW0gZXh0IC0gQW4gb3B0aW9uYWwgZXh0ZW5zaW9uIHRvIHJlbW92ZSBmcm9tIHRoZSBiYXNlIG5hbWUuXG4gKiBAcmV0dXJucyBUaGUgYmFzZSBuYW1lIG9mIHRoZSBmaWxlLlxuICovXG5leHBvcnQgY29uc3QgYmFzZW5hbWUgPSBwb3NpeC5iYXNlbmFtZTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBkaXJlY3RvcnkgbmFtZSBvZiBhIHBhdGguXG4gKlxuICogYGRpcmVjdG9yeWAgaXMgdXNlZCBpbnN0ZWFkIG9mIGBmb2xkZXJgIHRvIHByZXNlcnZlIGNvbXBhdGliaWxpdHkgd2l0aCBgbm9kZTpwYXRoYCBtb2R1bGUuXG4gKlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCB0byBnZXQgdGhlIGRpcmVjdG9yeSBuYW1lIGZyb20uXG4gKiBAcmV0dXJucyBUaGUgZGlyZWN0b3J5IG5hbWUgb2YgdGhlIHBhdGguXG4gKi9cbmV4cG9ydCBjb25zdCBkaXJuYW1lID0gcG9zaXguZGlybmFtZTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBmaWxlIGV4dGVuc2lvbiBvZiBhIHBhdGguXG4gKlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCB0byBnZXQgdGhlIGV4dGVuc2lvbiBmcm9tLlxuICogQHJldHVybnMgVGhlIGZpbGUgZXh0ZW5zaW9uIG9mIHRoZSBwYXRoLlxuICovXG5leHBvcnQgY29uc3QgZXh0bmFtZSA9IHBvc2l4LmV4dG5hbWU7XG5cbi8qKlxuICogRm9ybWF0cyBhIHBhdGggb2JqZWN0IGludG8gYSBwYXRoIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0gcGF0aE9iamVjdCAtIFRoZSBwYXRoIG9iamVjdCB0byBmb3JtYXQuXG4gKiBAcmV0dXJucyBUaGUgZm9ybWF0dGVkIHBhdGggc3RyaW5nLlxuICovXG5leHBvcnQgY29uc3QgZm9ybWF0ID0gcG9zaXguZm9ybWF0O1xuXG4vKipcbiAqIERldGVybWluZXMgaWYgYSBwYXRoIGlzIGFic29sdXRlLlxuICpcbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggdG8gY2hlY2suXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHBhdGggaXMgYWJzb2x1dGUsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNBYnNvbHV0ZShwYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIHBvc2l4LmlzQWJzb2x1dGUocGF0aCkgfHwgV0lORE9XU19QT1NJWF9MSUtFX1BBVEhfUkVHX0VYUC5leGVjKHBhdGgpPy5bMF0gPT09IHBhdGg7XG59XG5cbi8qKlxuICogSm9pbnMgbXVsdGlwbGUgcGF0aCBzZWdtZW50cyBpbnRvIGEgc2luZ2xlIHBhdGguXG4gKlxuICogQHBhcmFtIHBhdGhzIC0gVGhlIHBhdGggc2VnbWVudHMgdG8gam9pbi5cbiAqIEByZXR1cm5zIFRoZSBqb2luZWQgcGF0aC5cbiAqL1xuZXhwb3J0IGNvbnN0IGpvaW4gPSBwb3NpeC5qb2luO1xuXG4vKipcbiAqIE5vcm1hbGl6ZXMgYSBwYXRoLCByZXNvbHZpbmcgJy4uJyBhbmQgJy4nIHNlZ21lbnRzLlxuICpcbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggdG8gbm9ybWFsaXplLlxuICogQHJldHVybnMgVGhlIG5vcm1hbGl6ZWQgcGF0aC5cbiAqL1xuZXhwb3J0IGNvbnN0IG5vcm1hbGl6ZSA9IHBvc2l4Lm5vcm1hbGl6ZTtcblxuLyoqXG4gKiBQYXJzZXMgYSBwYXRoIHN0cmluZyBpbnRvIGEgcGF0aCBvYmplY3QuXG4gKlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCBzdHJpbmcgdG8gcGFyc2UuXG4gKiBAcmV0dXJucyBUaGUgcGFyc2VkIHBhdGggb2JqZWN0LlxuICovXG5leHBvcnQgY29uc3QgcGFyc2UgPSBwb3NpeC5wYXJzZTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSByZWxhdGl2ZSBwYXRoIGZyb20gb25lIHBhdGggdG8gYW5vdGhlci5cbiAqXG4gKiBAcGFyYW0gZnJvbSAtIFRoZSBzdGFydGluZyBwYXRoLlxuICogQHBhcmFtIHRvIC0gVGhlIGRlc3RpbmF0aW9uIHBhdGguXG4gKiBAcmV0dXJucyBUaGUgcmVsYXRpdmUgcGF0aCBmcm9tIGBmcm9tYCB0byBgdG9gLlxuICovXG5leHBvcnQgY29uc3QgcmVsYXRpdmUgPSBwb3NpeC5yZWxhdGl2ZTtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgbWFrZUZpbGVOYW1lfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNYWtlRmlsZU5hbWVQYXJhbXMge1xuICAvKipcbiAgICogVGhlIGZpbGUgbmFtZSB0byBhcHBlbmQgdGhlIGV4dGVuc2lvbiB0by5cbiAgICovXG4gIHJlYWRvbmx5IGZpbGVCYXNlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZXh0ZW5zaW9uIHRvIGFwcGVuZCB0byB0aGUgZmlsZSBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgZmlsZUV4dGVuc2lvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIGZpbGUgbmFtZSBmcm9tIHRoZSBgaW1wb3J0KGRvdCltZXRhKGRvdCl1cmxgLCBjb252ZXJ0aW5nIGl0IHRvIGEgUE9TSVgtc3R5bGUgcGF0aC5cbiAqXG4gKiBAcGFyYW0gaW1wb3J0TWV0YVVybCAtIFRoZSBgaW1wb3J0KGRvdCltZXRhKGRvdCl1cmxgIGZyb20gd2hpY2ggdG8gZXh0cmFjdCB0aGUgZmlsZSBuYW1lLlxuICogQHJldHVybnMgVGhlIFBPU0lYLXN0eWxlIGZpbGUgbmFtZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEZpbGVOYW1lKGltcG9ydE1ldGFVcmw6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiByZXNvbHZlKGRlY29kZVVSSShuZXcgVVJMKGltcG9ydE1ldGFVcmwpLnBhdGhuYW1lKSk7XG59XG5cbi8qKlxuICogR2V0cyB0aGUgZm9sZGVyIG5hbWUgZnJvbSB0aGUgYGltcG9ydChkb3QpbWV0YShkb3QpdXJsYCwgY29udmVydGluZyBpdCB0byBhIFBPU0lYLXN0eWxlIHBhdGguXG4gKlxuICogQHBhcmFtIGltcG9ydE1ldGFVcmwgLSBUaGUgYGltcG9ydChkb3QpbWV0YShkb3QpdXJsYCBmcm9tIHdoaWNoIHRvIGV4dHJhY3QgdGhlIGZvbGRlciBuYW1lLlxuICogQHJldHVybnMgVGhlIFBPU0lYLXN0eWxlIGZvbGRlciBuYW1lLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9sZGVyTmFtZShpbXBvcnRNZXRhVXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gZGlybmFtZShnZXRGaWxlTmFtZShpbXBvcnRNZXRhVXJsKSk7XG59XG5cbi8qKlxuICogTWFrZXMgYSBmaWxlIG5hbWUgYnkgYXBwZW5kaW5nIGFuIGV4dGVuc2lvbiB0byBhIGdpdmVuIGZpbGUgbmFtZS5cbiAqIElmIHRoZSBleHRlbnNpb24gaXMgZW1wdHksIHRoZSBmaWxlIG5hbWUgaXMgcmV0dXJuZWQgYXMgaXMuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciBtYWtpbmcgdGhlIGZpbGUgbmFtZS5cbiAqIEByZXR1cm5zIFRoZSBmaWxlIG5hbWUgd2l0aCB0aGUgZXh0ZW5zaW9uIGFwcGVuZGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFrZUZpbGVOYW1lKHBhcmFtczogTWFrZUZpbGVOYW1lUGFyYW1zKTogc3RyaW5nIHtcbiAgcmV0dXJuIHBhcmFtcy5maWxlRXh0ZW5zaW9uID8gYCR7cGFyYW1zLmZpbGVCYXNlTmFtZX0uJHtwYXJhbXMuZmlsZUV4dGVuc2lvbn1gIDogcGFyYW1zLmZpbGVCYXNlTmFtZTtcbn1cblxuLyoqXG4gKiBOb3JtYWxpemVzIGEgZ2l2ZW4gcGF0aCBieSBlbnN1cmluZyBpdCBpcyByZWxhdGl2ZSwgYWRkaW5nIFwiLi9cIiBpZiBuZWNlc3NhcnkuXG4gKlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCB0byBub3JtYWxpemUuXG4gKiBAcmV0dXJucyBUaGUgbm9ybWFsaXplZCBwYXRoLCBzdGFydGluZyB3aXRoIFwiLi9cIiBpZiBpdCB3YXMgcmVsYXRpdmUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVJZlJlbGF0aXZlKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmIChwYXRoLnN0YXJ0c1dpdGgoJy8nKSB8fCBwYXRoLmluY2x1ZGVzKCc6JykpIHtcbiAgICByZXR1cm4gcGF0aDtcbiAgfVxuXG4gIHJldHVybiBlbnN1cmVTdGFydHNXaXRoKHtcbiAgICBwcmVmaXg6ICcuLycsXG4gICAgc3RyOiBwYXRoXG4gIH0pO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIGEgc2VxdWVuY2Ugb2YgcGF0aHMgb3IgcGF0aCBzZWdtZW50cyBpbnRvIGFuIGFic29sdXRlIHBhdGguXG4gKlxuICogQHBhcmFtIHBhdGhTZWdtZW50cyAtIFRoZSBzZXF1ZW5jZSBvZiBwYXRoIHNlZ21lbnRzIHRvIHJlc29sdmUuXG4gKiBAcmV0dXJucyBUaGUgcmVzb2x2ZWQgYWJzb2x1dGUgcGF0aC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmUoLi4ucGF0aFNlZ21lbnRzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gIGxldCBwYXRoID0gcG9zaXgucmVzb2x2ZSguLi5wYXRoU2VnbWVudHMpO1xuICBwYXRoID0gdG9Qb3NpeFBhdGgocGF0aCk7XG4gIGNvbnN0IG1hdGNoID0gV0lORE9XU19QT1NJWF9MSUtFX1BBVEhfUkVHX0VYUC5leGVjKHBhdGgpO1xuICByZXR1cm4gbWF0Y2g/LlswXSA/PyBwYXRoO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgYnVmZmVyIGNvbnRhaW5pbmcgYSBwYXRoIHRvIGEgUE9TSVgtc3R5bGUgYnVmZmVyIGJ5IHJlcGxhY2luZyBiYWNrc2xhc2hlcyB3aXRoIGZvcndhcmQgc2xhc2hlcy5cbiAqXG4gKiBAcGFyYW0gYnVmZmVyIC0gVGhlIGJ1ZmZlciB0byBjb252ZXJ0LlxuICogQHJldHVybnMgQSBuZXcgYnVmZmVyIGNvbnRhaW5pbmcgdGhlIFBPU0lYLXN0eWxlIHBhdGguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1Bvc2l4QnVmZmVyKGJ1ZmZlcjogQnVmZmVyKTogQnVmZmVyIHtcbiAgcmV0dXJuIEJ1ZmZlci5mcm9tKHRvUG9zaXhQYXRoKFN0cmluZyhidWZmZXIpKSk7XG59XG5cbi8qKlxuICogQ29udmVydHMgYSBnaXZlbiBwYXRoIHRvIGEgUE9TSVgtc3R5bGUgcGF0aCBieSByZXBsYWNpbmcgYmFja3NsYXNoZXMgd2l0aCBmb3J3YXJkIHNsYXNoZXMuXG4gKlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCB0byBjb252ZXJ0LlxuICogQHJldHVybnMgVGhlIFBPU0lYLXN0eWxlIHBhdGguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1Bvc2l4UGF0aChwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcmVwbGFjZUFsbCh7XG4gICAgcmVwbGFjZXI6ICcvJyxcbiAgICBzZWFyY2hWYWx1ZTogJ1xcXFwnLFxuICAgIHN0cjogcGF0aFxuICB9KTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTUEsT0FBTyxvQkFBb0I7QUFFM0I7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFFUCxNQUFNLGtDQUFrQztBQUtqQyxNQUFNLFFBQVEsZUFBZTtBQUs3QixNQUFNLFlBQVksTUFBTTtBQUt4QixNQUFNLE1BQU0sZUFBZSxNQUFNO0FBU2pDLE1BQU0sV0FBVyxNQUFNO0FBVXZCLE1BQU0sVUFBVSxNQUFNO0FBUXRCLE1BQU0sVUFBVSxNQUFNO0FBUXRCLE1BQU0sU0FBUyxNQUFNO0FBUXJCLFNBQVMsV0FBVyxNQUF1QjtBQUNoRCxTQUFPLE1BQU0sV0FBVyxJQUFJLEtBQUssZ0NBQWdDLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTTtBQUN2RjtBQVFPLE1BQU0sT0FBTyxNQUFNO0FBUW5CLE1BQU0sWUFBWSxNQUFNO0FBUXhCLE1BQU0sUUFBUSxNQUFNO0FBU3BCLE1BQU0sV0FBVyxNQUFNO0FBdUJ2QixTQUFTLFlBQVksZUFBK0I7QUFDekQsU0FBTyxRQUFRLFVBQVUsSUFBSSxJQUFJLGFBQWEsRUFBRSxRQUFRLENBQUM7QUFDM0Q7QUFRTyxTQUFTLGNBQWMsZUFBK0I7QUFDM0QsU0FBTyxRQUFRLFlBQVksYUFBYSxDQUFDO0FBQzNDO0FBU08sU0FBUyxhQUFhLFFBQW9DO0FBQy9ELFNBQU8sT0FBTyxnQkFBZ0IsR0FBRyxPQUFPLFlBQVksSUFBSSxPQUFPLGFBQWEsS0FBSyxPQUFPO0FBQzFGO0FBUU8sU0FBUyxvQkFBb0IsTUFBc0I7QUFDeEQsTUFBSSxLQUFLLFdBQVcsR0FBRyxLQUFLLEtBQUssU0FBUyxHQUFHLEdBQUc7QUFDOUMsV0FBTztBQUFBLEVBQ1Q7QUFFQSxTQUFPLGlCQUFpQjtBQUFBLElBQ3RCLFFBQVE7QUFBQSxJQUNSLEtBQUs7QUFBQSxFQUNQLENBQUM7QUFDSDtBQVFPLFNBQVMsV0FBVyxjQUFnQztBQUN6RCxNQUFJLE9BQU8sTUFBTSxRQUFRLEdBQUcsWUFBWTtBQUN4QyxTQUFPLFlBQVksSUFBSTtBQUN2QixRQUFNLFFBQVEsZ0NBQWdDLEtBQUssSUFBSTtBQUN2RCxTQUFPLFFBQVEsQ0FBQyxLQUFLO0FBQ3ZCO0FBUU8sU0FBUyxjQUFjLFFBQXdCO0FBQ3BELFNBQU8sT0FBTyxLQUFLLFlBQVksT0FBTyxNQUFNLENBQUMsQ0FBQztBQUNoRDtBQVFPLFNBQVMsWUFBWSxNQUFzQjtBQUNoRCxTQUFPLFdBQVc7QUFBQSxJQUNoQixVQUFVO0FBQUEsSUFDVixhQUFhO0FBQUEsSUFDYixLQUFLO0FBQUEsRUFDUCxDQUFDO0FBQ0g7IiwKICAibmFtZXMiOiBbXQp9Cg==
99
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3BhdGgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDb250YWlucyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgaGFuZGxpbmcgcGF0aHMuXG4gKi9cblxuaW1wb3J0IHBhdGhCcm93c2VyaWZ5IGZyb20gJ3BhdGgtYnJvd3NlcmlmeSc7XG5cbmltcG9ydCB7XG4gIGVuc3VyZVN0YXJ0c1dpdGgsXG4gIHJlcGxhY2VBbGxcbn0gZnJvbSAnLi9zdHJpbmcudHMnO1xuXG5jb25zdCBXSU5ET1dTX1BPU0lYX0xJS0VfUEFUSF9SRUdfRVhQID0gL1thLXpBLVpdOlxcL1teOl0qJC87XG5cbi8qKlxuICogUHJvdmlkZXMgbWV0aG9kcyBmb3IgaGFuZGxpbmcgUE9TSVggcGF0aHMuXG4gKi9cbmV4cG9ydCBjb25zdCBwb3NpeCA9IHBhdGhCcm93c2VyaWZ5LnBvc2l4O1xuXG4vKipcbiAqIEEgUE9TSVggcGF0aCBkZWxpbWl0ZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBkZWxpbWl0ZXIgPSBwb3NpeC5kZWxpbWl0ZXI7XG5cbi8qKlxuICogQSBQT1NJWCBzZWdtZW50IHNlcGFyYXRvci5cbiAqL1xuZXhwb3J0IGNvbnN0IHNlcCA9IHBhdGhCcm93c2VyaWZ5LnBvc2l4LnNlcDtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBiYXNlIG5hbWUgb2YgYSBmaWxlLCBvcHRpb25hbGx5IHJlbW92aW5nIHRoZSBmaWxlIGV4dGVuc2lvbi5cbiAqXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSBwYXRoIHRvIGdldCB0aGUgYmFzZSBuYW1lIGZyb20uXG4gKiBAcGFyYW0gZXh0IC0gQW4gb3B0aW9uYWwgZXh0ZW5zaW9uIHRvIHJlbW92ZSBmcm9tIHRoZSBiYXNlIG5hbWUuXG4gKiBAcmV0dXJucyBUaGUgYmFzZSBuYW1lIG9mIHRoZSBmaWxlLlxuICovXG5leHBvcnQgY29uc3QgYmFzZW5hbWUgPSBwb3NpeC5iYXNlbmFtZTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBkaXJlY3RvcnkgbmFtZSBvZiBhIHBhdGguXG4gKlxuICogYGRpcmVjdG9yeWAgaXMgdXNlZCBpbnN0ZWFkIG9mIGBmb2xkZXJgIHRvIHByZXNlcnZlIGNvbXBhdGliaWxpdHkgd2l0aCBgbm9kZTpwYXRoYCBtb2R1bGUuXG4gKlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCB0byBnZXQgdGhlIGRpcmVjdG9yeSBuYW1lIGZyb20uXG4gKiBAcmV0dXJucyBUaGUgZGlyZWN0b3J5IG5hbWUgb2YgdGhlIHBhdGguXG4gKi9cbmV4cG9ydCBjb25zdCBkaXJuYW1lID0gcG9zaXguZGlybmFtZTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBmaWxlIGV4dGVuc2lvbiBvZiBhIHBhdGguXG4gKlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCB0byBnZXQgdGhlIGV4dGVuc2lvbiBmcm9tLlxuICogQHJldHVybnMgVGhlIGZpbGUgZXh0ZW5zaW9uIG9mIHRoZSBwYXRoLlxuICovXG5leHBvcnQgY29uc3QgZXh0bmFtZSA9IHBvc2l4LmV4dG5hbWU7XG5cbi8qKlxuICogRm9ybWF0cyBhIHBhdGggb2JqZWN0IGludG8gYSBwYXRoIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0gcGF0aE9iamVjdCAtIFRoZSBwYXRoIG9iamVjdCB0byBmb3JtYXQuXG4gKiBAcmV0dXJucyBUaGUgZm9ybWF0dGVkIHBhdGggc3RyaW5nLlxuICovXG5leHBvcnQgY29uc3QgZm9ybWF0ID0gcG9zaXguZm9ybWF0O1xuXG4vKipcbiAqIERldGVybWluZXMgaWYgYSBwYXRoIGlzIGFic29sdXRlLlxuICpcbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggdG8gY2hlY2suXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHBhdGggaXMgYWJzb2x1dGUsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNBYnNvbHV0ZShwYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIHBvc2l4LmlzQWJzb2x1dGUocGF0aCkgfHwgV0lORE9XU19QT1NJWF9MSUtFX1BBVEhfUkVHX0VYUC5leGVjKHBhdGgpPy5bMF0gPT09IHBhdGg7XG59XG5cbi8qKlxuICogSm9pbnMgbXVsdGlwbGUgcGF0aCBzZWdtZW50cyBpbnRvIGEgc2luZ2xlIHBhdGguXG4gKlxuICogQHBhcmFtIHBhdGhzIC0gVGhlIHBhdGggc2VnbWVudHMgdG8gam9pbi5cbiAqIEByZXR1cm5zIFRoZSBqb2luZWQgcGF0aC5cbiAqL1xuZXhwb3J0IGNvbnN0IGpvaW4gPSBwb3NpeC5qb2luO1xuXG4vKipcbiAqIE5vcm1hbGl6ZXMgYSBwYXRoLCByZXNvbHZpbmcgJy4uJyBhbmQgJy4nIHNlZ21lbnRzLlxuICpcbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggdG8gbm9ybWFsaXplLlxuICogQHJldHVybnMgVGhlIG5vcm1hbGl6ZWQgcGF0aC5cbiAqL1xuZXhwb3J0IGNvbnN0IG5vcm1hbGl6ZVBhdGggPSBwb3NpeC5ub3JtYWxpemU7XG5cbi8qKlxuICogUGFyc2VzIGEgcGF0aCBzdHJpbmcgaW50byBhIHBhdGggb2JqZWN0LlxuICpcbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggc3RyaW5nIHRvIHBhcnNlLlxuICogQHJldHVybnMgVGhlIHBhcnNlZCBwYXRoIG9iamVjdC5cbiAqL1xuZXhwb3J0IGNvbnN0IHBhcnNlID0gcG9zaXgucGFyc2U7XG5cbi8qKlxuICogUmV0dXJucyB0aGUgcmVsYXRpdmUgcGF0aCBmcm9tIG9uZSBwYXRoIHRvIGFub3RoZXIuXG4gKlxuICogQHBhcmFtIGZyb20gLSBUaGUgc3RhcnRpbmcgcGF0aC5cbiAqIEBwYXJhbSB0byAtIFRoZSBkZXN0aW5hdGlvbiBwYXRoLlxuICogQHJldHVybnMgVGhlIHJlbGF0aXZlIHBhdGggZnJvbSBgZnJvbWAgdG8gYHRvYC5cbiAqL1xuZXhwb3J0IGNvbnN0IHJlbGF0aXZlID0gcG9zaXgucmVsYXRpdmU7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIG1ha2VGaWxlTmFtZX0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFrZUZpbGVOYW1lUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBmaWxlIG5hbWUgdG8gYXBwZW5kIHRoZSBleHRlbnNpb24gdG8uXG4gICAqL1xuICByZWFkb25seSBmaWxlQmFzZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGV4dGVuc2lvbiB0byBhcHBlbmQgdG8gdGhlIGZpbGUgbmFtZS5cbiAgICovXG4gIHJlYWRvbmx5IGZpbGVFeHRlbnNpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSBmaWxlIG5hbWUgZnJvbSB0aGUgYGltcG9ydChkb3QpbWV0YShkb3QpdXJsYCwgY29udmVydGluZyBpdCB0byBhIFBPU0lYLXN0eWxlIHBhdGguXG4gKlxuICogQHBhcmFtIGltcG9ydE1ldGFVcmwgLSBUaGUgYGltcG9ydChkb3QpbWV0YShkb3QpdXJsYCBmcm9tIHdoaWNoIHRvIGV4dHJhY3QgdGhlIGZpbGUgbmFtZS5cbiAqIEByZXR1cm5zIFRoZSBQT1NJWC1zdHlsZSBmaWxlIG5hbWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWxlTmFtZShpbXBvcnRNZXRhVXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcmVzb2x2ZShkZWNvZGVVUkkobmV3IFVSTChpbXBvcnRNZXRhVXJsKS5wYXRobmFtZSkpO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIGZvbGRlciBuYW1lIGZyb20gdGhlIGBpbXBvcnQoZG90KW1ldGEoZG90KXVybGAsIGNvbnZlcnRpbmcgaXQgdG8gYSBQT1NJWC1zdHlsZSBwYXRoLlxuICpcbiAqIEBwYXJhbSBpbXBvcnRNZXRhVXJsIC0gVGhlIGBpbXBvcnQoZG90KW1ldGEoZG90KXVybGAgZnJvbSB3aGljaCB0byBleHRyYWN0IHRoZSBmb2xkZXIgbmFtZS5cbiAqIEByZXR1cm5zIFRoZSBQT1NJWC1zdHlsZSBmb2xkZXIgbmFtZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEZvbGRlck5hbWUoaW1wb3J0TWV0YVVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGRpcm5hbWUoZ2V0RmlsZU5hbWUoaW1wb3J0TWV0YVVybCkpO1xufVxuXG4vKipcbiAqIE1ha2VzIGEgZmlsZSBuYW1lIGJ5IGFwcGVuZGluZyBhbiBleHRlbnNpb24gdG8gYSBnaXZlbiBmaWxlIG5hbWUuXG4gKiBJZiB0aGUgZXh0ZW5zaW9uIGlzIGVtcHR5LCB0aGUgZmlsZSBuYW1lIGlzIHJldHVybmVkIGFzIGlzLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgbWFraW5nIHRoZSBmaWxlIG5hbWUuXG4gKiBAcmV0dXJucyBUaGUgZmlsZSBuYW1lIHdpdGggdGhlIGV4dGVuc2lvbiBhcHBlbmRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1ha2VGaWxlTmFtZShwYXJhbXM6IE1ha2VGaWxlTmFtZVBhcmFtcyk6IHN0cmluZyB7XG4gIHJldHVybiBwYXJhbXMuZmlsZUV4dGVuc2lvbiA/IGAke3BhcmFtcy5maWxlQmFzZU5hbWV9LiR7cGFyYW1zLmZpbGVFeHRlbnNpb259YCA6IHBhcmFtcy5maWxlQmFzZU5hbWU7XG59XG5cbi8qKlxuICogTm9ybWFsaXplcyBhIGdpdmVuIHBhdGggYnkgZW5zdXJpbmcgaXQgaXMgcmVsYXRpdmUsIGFkZGluZyBcIi4vXCIgaWYgbmVjZXNzYXJ5LlxuICpcbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggdG8gbm9ybWFsaXplLlxuICogQHJldHVybnMgVGhlIG5vcm1hbGl6ZWQgcGF0aCwgc3RhcnRpbmcgd2l0aCBcIi4vXCIgaWYgaXQgd2FzIHJlbGF0aXZlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplSWZSZWxhdGl2ZShwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAocGF0aC5zdGFydHNXaXRoKCcvJykgfHwgcGF0aC5pbmNsdWRlcygnOicpKSB7XG4gICAgcmV0dXJuIHBhdGg7XG4gIH1cblxuICByZXR1cm4gZW5zdXJlU3RhcnRzV2l0aCh7XG4gICAgcHJlZml4OiAnLi8nLFxuICAgIHN0cjogcGF0aFxuICB9KTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyBhIHNlcXVlbmNlIG9mIHBhdGhzIG9yIHBhdGggc2VnbWVudHMgaW50byBhbiBhYnNvbHV0ZSBwYXRoLlxuICpcbiAqIEBwYXJhbSBwYXRoU2VnbWVudHMgLSBUaGUgc2VxdWVuY2Ugb2YgcGF0aCBzZWdtZW50cyB0byByZXNvbHZlLlxuICogQHJldHVybnMgVGhlIHJlc29sdmVkIGFic29sdXRlIHBhdGguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlKC4uLnBhdGhTZWdtZW50czogc3RyaW5nW10pOiBzdHJpbmcge1xuICBsZXQgcGF0aCA9IHBvc2l4LnJlc29sdmUoLi4ucGF0aFNlZ21lbnRzKTtcbiAgcGF0aCA9IHRvUG9zaXhQYXRoKHBhdGgpO1xuICBjb25zdCBtYXRjaCA9IFdJTkRPV1NfUE9TSVhfTElLRV9QQVRIX1JFR19FWFAuZXhlYyhwYXRoKTtcbiAgcmV0dXJuIG1hdGNoPy5bMF0gPz8gcGF0aDtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIGJ1ZmZlciBjb250YWluaW5nIGEgcGF0aCB0byBhIFBPU0lYLXN0eWxlIGJ1ZmZlciBieSByZXBsYWNpbmcgYmFja3NsYXNoZXMgd2l0aCBmb3J3YXJkIHNsYXNoZXMuXG4gKlxuICogQHBhcmFtIGJ1ZmZlciAtIFRoZSBidWZmZXIgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIEEgbmV3IGJ1ZmZlciBjb250YWluaW5nIHRoZSBQT1NJWC1zdHlsZSBwYXRoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9Qb3NpeEJ1ZmZlcihidWZmZXI6IEJ1ZmZlcik6IEJ1ZmZlciB7XG4gIHJldHVybiBCdWZmZXIuZnJvbSh0b1Bvc2l4UGF0aChTdHJpbmcoYnVmZmVyKSkpO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgZ2l2ZW4gcGF0aCB0byBhIFBPU0lYLXN0eWxlIHBhdGggYnkgcmVwbGFjaW5nIGJhY2tzbGFzaGVzIHdpdGggZm9yd2FyZCBzbGFzaGVzLlxuICpcbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggdG8gY29udmVydC5cbiAqIEByZXR1cm5zIFRoZSBQT1NJWC1zdHlsZSBwYXRoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9Qb3NpeFBhdGgocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJlcGxhY2VBbGwoe1xuICAgIHJlcGxhY2VyOiAnLycsXG4gICAgc2VhcmNoVmFsdWU6ICdcXFxcJyxcbiAgICBzdHI6IHBhdGhcbiAgfSk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU1BLE9BQU8sb0JBQW9CO0FBRTNCO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBRVAsTUFBTSxrQ0FBa0M7QUFLakMsTUFBTSxRQUFRLGVBQWU7QUFLN0IsTUFBTSxZQUFZLE1BQU07QUFLeEIsTUFBTSxNQUFNLGVBQWUsTUFBTTtBQVNqQyxNQUFNLFdBQVcsTUFBTTtBQVV2QixNQUFNLFVBQVUsTUFBTTtBQVF0QixNQUFNLFVBQVUsTUFBTTtBQVF0QixNQUFNLFNBQVMsTUFBTTtBQVFyQixTQUFTLFdBQVcsTUFBdUI7QUFDaEQsU0FBTyxNQUFNLFdBQVcsSUFBSSxLQUFLLGdDQUFnQyxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU07QUFDdkY7QUFRTyxNQUFNLE9BQU8sTUFBTTtBQVFuQixNQUFNLGdCQUFnQixNQUFNO0FBUTVCLE1BQU0sUUFBUSxNQUFNO0FBU3BCLE1BQU0sV0FBVyxNQUFNO0FBdUJ2QixTQUFTLFlBQVksZUFBK0I7QUFDekQsU0FBTyxRQUFRLFVBQVUsSUFBSSxJQUFJLGFBQWEsRUFBRSxRQUFRLENBQUM7QUFDM0Q7QUFRTyxTQUFTLGNBQWMsZUFBK0I7QUFDM0QsU0FBTyxRQUFRLFlBQVksYUFBYSxDQUFDO0FBQzNDO0FBU08sU0FBUyxhQUFhLFFBQW9DO0FBQy9ELFNBQU8sT0FBTyxnQkFBZ0IsR0FBRyxPQUFPLFlBQVksSUFBSSxPQUFPLGFBQWEsS0FBSyxPQUFPO0FBQzFGO0FBUU8sU0FBUyxvQkFBb0IsTUFBc0I7QUFDeEQsTUFBSSxLQUFLLFdBQVcsR0FBRyxLQUFLLEtBQUssU0FBUyxHQUFHLEdBQUc7QUFDOUMsV0FBTztBQUFBLEVBQ1Q7QUFFQSxTQUFPLGlCQUFpQjtBQUFBLElBQ3RCLFFBQVE7QUFBQSxJQUNSLEtBQUs7QUFBQSxFQUNQLENBQUM7QUFDSDtBQVFPLFNBQVMsV0FBVyxjQUFnQztBQUN6RCxNQUFJLE9BQU8sTUFBTSxRQUFRLEdBQUcsWUFBWTtBQUN4QyxTQUFPLFlBQVksSUFBSTtBQUN2QixRQUFNLFFBQVEsZ0NBQWdDLEtBQUssSUFBSTtBQUN2RCxTQUFPLFFBQVEsQ0FBQyxLQUFLO0FBQ3ZCO0FBUU8sU0FBUyxjQUFjLFFBQXdCO0FBQ3BELFNBQU8sT0FBTyxLQUFLLFlBQVksT0FBTyxNQUFNLENBQUMsQ0FBQztBQUNoRDtBQVFPLFNBQVMsWUFBWSxNQUFzQjtBQUNoRCxTQUFPLFdBQVc7QUFBQSxJQUNoQixVQUFVO0FBQUEsSUFDVixhQUFhO0FBQUEsSUFDYixLQUFLO0FBQUEsRUFDUCxDQUFDO0FBQ0g7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -0,0 +1,23 @@
1
+ /// <reference path="../library.d.mts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * Archives a plugin's demo vault as a release artifact.
6
+ *
7
+ * A plugin can ship a curated demo vault at `demo-vault/` in its repo root. At release time this
8
+ * module installs the freshly built plugin into that vault's `.obsidian/plugins/<id>/` folder and
9
+ * zips the whole vault into `dist/build/demo-vault-<version>.zip`, so the existing GitHub-release
10
+ * step (which uploads every file in `dist/build/`) attaches it automatically.
11
+ */
12
+ /**
13
+ * Archives the plugin's demo vault (`demo-vault/` in the repo root) as a release artifact.
14
+ *
15
+ * Installs the freshly built plugin from `dist/build/` into the vault's
16
+ * `.obsidian/plugins/<id>/` folder, then zips the whole vault to
17
+ * `dist/build/demo-vault-<version>.zip`.
18
+ *
19
+ * @param newVersion - The version being released, used in the archive file name.
20
+ * @returns A {@link Promise} that resolves to the absolute path of the created zip archive, or
21
+ * `null` if the repo has no `demo-vault/` folder.
22
+ */
23
+ export declare function archivePluginDemoVault(newVersion: string): Promise<null | string>;
@@ -0,0 +1,63 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+
6
+ (function initEsm() {
7
+ // eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
8
+ if (globalThis.process) {
9
+ return;
10
+ }
11
+
12
+ const browserProcess = {
13
+ browser: true,
14
+ cwd() {
15
+ return '/';
16
+ },
17
+ env: {},
18
+ platform: 'android'
19
+ };
20
+ // eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
21
+ globalThis.process = browserProcess;
22
+ })();
23
+
24
+ import AdmZip from "adm-zip";
25
+ import { existsSync } from "node:fs";
26
+ import {
27
+ cp,
28
+ mkdir,
29
+ readFile
30
+ } from "node:fs/promises";
31
+ import { ObsidianPluginRepoPaths } from "../obsidian/plugin/obsidian-plugin-repo-paths.mjs";
32
+ import { join } from "../path.mjs";
33
+ import { resolvePathFromRootSafe } from "./root.mjs";
34
+ async function archivePluginDemoVault(newVersion) {
35
+ const demoVaultPath = resolvePathFromRootSafe({ path: ObsidianPluginRepoPaths.DemoVault });
36
+ if (!existsSync(demoVaultPath)) {
37
+ return null;
38
+ }
39
+ const manifestPath = resolvePathFromRootSafe({ path: ObsidianPluginRepoPaths.ManifestJson });
40
+ const manifest = JSON.parse(await readFile(manifestPath, "utf-8"));
41
+ const pluginFolder = resolvePathFromRootSafe({
42
+ path: join(
43
+ ObsidianPluginRepoPaths.DemoVault,
44
+ ObsidianPluginRepoPaths.DotObsidian,
45
+ ObsidianPluginRepoPaths.Plugins,
46
+ manifest.id
47
+ )
48
+ });
49
+ await mkdir(pluginFolder, { recursive: true });
50
+ const distBuildPath = resolvePathFromRootSafe({ path: ObsidianPluginRepoPaths.DistBuild });
51
+ await cp(distBuildPath, pluginFolder, { recursive: true });
52
+ const zipPath = resolvePathFromRootSafe({
53
+ path: join(ObsidianPluginRepoPaths.DistBuild, `demo-vault-${newVersion}.zip`)
54
+ });
55
+ const zip = new AdmZip();
56
+ zip.addLocalFolder(demoVaultPath);
57
+ await zip.writeZipPromise(zipPath);
58
+ return zipPath;
59
+ }
60
+ export {
61
+ archivePluginDemoVault
62
+ };
63
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9kZW1vLXZhdWx0LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQXJjaGl2ZXMgYSBwbHVnaW4ncyBkZW1vIHZhdWx0IGFzIGEgcmVsZWFzZSBhcnRpZmFjdC5cbiAqXG4gKiBBIHBsdWdpbiBjYW4gc2hpcCBhIGN1cmF0ZWQgZGVtbyB2YXVsdCBhdCBgZGVtby12YXVsdC9gIGluIGl0cyByZXBvIHJvb3QuIEF0IHJlbGVhc2UgdGltZSB0aGlzXG4gKiBtb2R1bGUgaW5zdGFsbHMgdGhlIGZyZXNobHkgYnVpbHQgcGx1Z2luIGludG8gdGhhdCB2YXVsdCdzIGAub2JzaWRpYW4vcGx1Z2lucy88aWQ+L2AgZm9sZGVyIGFuZFxuICogemlwcyB0aGUgd2hvbGUgdmF1bHQgaW50byBgZGlzdC9idWlsZC9kZW1vLXZhdWx0LTx2ZXJzaW9uPi56aXBgLCBzbyB0aGUgZXhpc3RpbmcgR2l0SHViLXJlbGVhc2VcbiAqIHN0ZXAgKHdoaWNoIHVwbG9hZHMgZXZlcnkgZmlsZSBpbiBgZGlzdC9idWlsZC9gKSBhdHRhY2hlcyBpdCBhdXRvbWF0aWNhbGx5LlxuICovXG5cbmltcG9ydCBBZG1aaXAgZnJvbSAnYWRtLXppcCc7XG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQge1xuICBjcCxcbiAgbWtkaXIsXG4gIHJlYWRGaWxlXG59IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuXG5pbXBvcnQgeyBPYnNpZGlhblBsdWdpblJlcG9QYXRocyB9IGZyb20gJy4uL29ic2lkaWFuL3BsdWdpbi9vYnNpZGlhbi1wbHVnaW4tcmVwby1wYXRocy50cyc7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSAnLi4vcGF0aC50cyc7XG5pbXBvcnQgeyByZXNvbHZlUGF0aEZyb21Sb290U2FmZSB9IGZyb20gJy4vcm9vdC50cyc7XG5cbi8qKlxuICogVGhlIG1pbmltYWwgc2hhcGUgb2YgYSBwbHVnaW4gYG1hbmlmZXN0Lmpzb25gIHJlYWQgYnkge0BsaW5rIGFyY2hpdmVQbHVnaW5EZW1vVmF1bHR9LlxuICovXG5pbnRlcmZhY2UgUGx1Z2luTWFuaWZlc3Qge1xuICAvKipcbiAgICogVGhlIHBsdWdpbiBpZCwgdXNlZCBhcyB0aGUgZm9sZGVyIG5hbWUgdW5kZXIgYGRlbW8tdmF1bHQvLm9ic2lkaWFuL3BsdWdpbnMvYC5cbiAgICovXG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQXJjaGl2ZXMgdGhlIHBsdWdpbidzIGRlbW8gdmF1bHQgKGBkZW1vLXZhdWx0L2AgaW4gdGhlIHJlcG8gcm9vdCkgYXMgYSByZWxlYXNlIGFydGlmYWN0LlxuICpcbiAqIEluc3RhbGxzIHRoZSBmcmVzaGx5IGJ1aWx0IHBsdWdpbiBmcm9tIGBkaXN0L2J1aWxkL2AgaW50byB0aGUgdmF1bHQnc1xuICogYC5vYnNpZGlhbi9wbHVnaW5zLzxpZD4vYCBmb2xkZXIsIHRoZW4gemlwcyB0aGUgd2hvbGUgdmF1bHQgdG9cbiAqIGBkaXN0L2J1aWxkL2RlbW8tdmF1bHQtPHZlcnNpb24+LnppcGAuXG4gKlxuICogQHBhcmFtIG5ld1ZlcnNpb24gLSBUaGUgdmVyc2lvbiBiZWluZyByZWxlYXNlZCwgdXNlZCBpbiB0aGUgYXJjaGl2ZSBmaWxlIG5hbWUuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIHRoZSBhYnNvbHV0ZSBwYXRoIG9mIHRoZSBjcmVhdGVkIHppcCBhcmNoaXZlLCBvclxuICogYG51bGxgIGlmIHRoZSByZXBvIGhhcyBubyBgZGVtby12YXVsdC9gIGZvbGRlci5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFyY2hpdmVQbHVnaW5EZW1vVmF1bHQobmV3VmVyc2lvbjogc3RyaW5nKTogUHJvbWlzZTxudWxsIHwgc3RyaW5nPiB7XG4gIGNvbnN0IGRlbW9WYXVsdFBhdGggPSByZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7IHBhdGg6IE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkRlbW9WYXVsdCB9KTtcbiAgaWYgKCFleGlzdHNTeW5jKGRlbW9WYXVsdFBhdGgpKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBtYW5pZmVzdFBhdGggPSByZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7IHBhdGg6IE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hbmlmZXN0SnNvbiB9KTtcbiAgY29uc3QgbWFuaWZlc3QgPSBKU09OLnBhcnNlKGF3YWl0IHJlYWRGaWxlKG1hbmlmZXN0UGF0aCwgJ3V0Zi04JykpIGFzIFBsdWdpbk1hbmlmZXN0O1xuXG4gIGNvbnN0IHBsdWdpbkZvbGRlciA9IHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKHtcbiAgICBwYXRoOiBqb2luKFxuICAgICAgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuRGVtb1ZhdWx0LFxuICAgICAgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuRG90T2JzaWRpYW4sXG4gICAgICBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5QbHVnaW5zLFxuICAgICAgbWFuaWZlc3QuaWRcbiAgICApXG4gIH0pO1xuICBhd2FpdCBta2RpcihwbHVnaW5Gb2xkZXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXG4gIGNvbnN0IGRpc3RCdWlsZFBhdGggPSByZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7IHBhdGg6IE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkRpc3RCdWlsZCB9KTtcbiAgYXdhaXQgY3AoZGlzdEJ1aWxkUGF0aCwgcGx1Z2luRm9sZGVyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuICAvLyBBcmNoaXZlIG5hbWUgaXMgaGFuZC1zeW5jZWQgd2l0aCB0aGUgcnVudGltZSBgb3BlbkRlbW9WYXVsdGAgb3BlbmVyLCB3aGljaCBkb3dubG9hZHMgdGhpcyBleGFjdCBhc3NldCBuYW1lLlxuICBjb25zdCB6aXBQYXRoID0gcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoe1xuICAgIHBhdGg6IGpvaW4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuRGlzdEJ1aWxkLCBgZGVtby12YXVsdC0ke25ld1ZlcnNpb259LnppcGApXG4gIH0pO1xuICBjb25zdCB6aXAgPSBuZXcgQWRtWmlwKCk7XG4gIHppcC5hZGRMb2NhbEZvbGRlcihkZW1vVmF1bHRQYXRoKTtcbiAgYXdhaXQgemlwLndyaXRlWmlwUHJvbWlzZSh6aXBQYXRoKTtcbiAgcmV0dXJuIHppcFBhdGg7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVdBLE9BQU8sWUFBWTtBQUNuQixTQUFTLGtCQUFrQjtBQUMzQjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFFUCxTQUFTLCtCQUErQjtBQUN4QyxTQUFTLFlBQVk7QUFDckIsU0FBUywrQkFBK0I7QUF1QnhDLGVBQXNCLHVCQUF1QixZQUE0QztBQUN2RixRQUFNLGdCQUFnQix3QkFBd0IsRUFBRSxNQUFNLHdCQUF3QixVQUFVLENBQUM7QUFDekYsTUFBSSxDQUFDLFdBQVcsYUFBYSxHQUFHO0FBQzlCLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxlQUFlLHdCQUF3QixFQUFFLE1BQU0sd0JBQXdCLGFBQWEsQ0FBQztBQUMzRixRQUFNLFdBQVcsS0FBSyxNQUFNLE1BQU0sU0FBUyxjQUFjLE9BQU8sQ0FBQztBQUVqRSxRQUFNLGVBQWUsd0JBQXdCO0FBQUEsSUFDM0MsTUFBTTtBQUFBLE1BQ0osd0JBQXdCO0FBQUEsTUFDeEIsd0JBQXdCO0FBQUEsTUFDeEIsd0JBQXdCO0FBQUEsTUFDeEIsU0FBUztBQUFBLElBQ1g7QUFBQSxFQUNGLENBQUM7QUFDRCxRQUFNLE1BQU0sY0FBYyxFQUFFLFdBQVcsS0FBSyxDQUFDO0FBRTdDLFFBQU0sZ0JBQWdCLHdCQUF3QixFQUFFLE1BQU0sd0JBQXdCLFVBQVUsQ0FBQztBQUN6RixRQUFNLEdBQUcsZUFBZSxjQUFjLEVBQUUsV0FBVyxLQUFLLENBQUM7QUFHekQsUUFBTSxVQUFVLHdCQUF3QjtBQUFBLElBQ3RDLE1BQU0sS0FBSyx3QkFBd0IsV0FBVyxjQUFjLFVBQVUsTUFBTTtBQUFBLEVBQzlFLENBQUM7QUFDRCxRQUFNLE1BQU0sSUFBSSxPQUFPO0FBQ3ZCLE1BQUksZUFBZSxhQUFhO0FBQ2hDLFFBQU0sSUFBSSxnQkFBZ0IsT0FBTztBQUNqQyxTQUFPO0FBQ1Q7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -36,6 +36,20 @@ export interface ExecOptions {
36
36
  * A current working folder for the command execution.
37
37
  */
38
38
  readonly cwd?: string;
39
+ /**
40
+ * Additional environment variables for the child process, merged over the inherited environment.
41
+ *
42
+ * @default `{}`
43
+ */
44
+ readonly env?: NodeJS.ProcessEnv;
45
+ /**
46
+ * If `true`, attaches the child process's stdio directly to the terminal (`stdio: 'inherit'`) instead
47
+ * of capturing it. Use for long-running or interactive commands such as dev servers and watch mode.
48
+ * Because the output is not captured, the resolved stdout is an empty string.
49
+ *
50
+ * @default `false`
51
+ */
52
+ readonly isInteractive?: boolean;
39
53
  /**
40
54
  * If `true`, suppresses the output of the command.
41
55
  *
@@ -99,6 +113,26 @@ export interface ExecSimpleOptions extends ExecOptions {
99
113
  */
100
114
  readonly shouldIncludeDetails?: false;
101
115
  }
116
+ /**
117
+ * Appends a single `node` CLI option to a `NODE_OPTIONS` string, preserving any options already present.
118
+ *
119
+ * @param existingNodeOptions - The current `NODE_OPTIONS` value (e.g. `process.env.NODE_OPTIONS`), if any.
120
+ * @param option - The `node` CLI option to append (e.g. `--localstorage-file=:memory:`).
121
+ * @returns The combined `NODE_OPTIONS` string. If `option` is already present, the value is returned unchanged.
122
+ */
123
+ export declare function appendNodeOption(existingNodeOptions: string | undefined, option: string): string;
124
+ /**
125
+ * Builds the environment for child processes: the parent environment plus `DEBUG_COLORS`, and — when
126
+ * the running `node` supports it — {@link LOCAL_STORAGE_NODE_OPTION} appended to `NODE_OPTIONS`.
127
+ *
128
+ * The support check guards against older `node` (< 22): passing an option `node` does not recognize via
129
+ * `NODE_OPTIONS` makes it exit before running, which would break every spawned tool.
130
+ *
131
+ * @param baseEnv - The parent environment to extend (typically `process.env`).
132
+ * @param allowedNodeEnvironmentFlags - The `node` options accepted via `NODE_OPTIONS` (typically `process.allowedNodeEnvironmentFlags`).
133
+ * @returns The environment to pass to spawned child processes.
134
+ */
135
+ export declare function buildChildEnv(baseEnv: NodeJS.ProcessEnv, allowedNodeEnvironmentFlags: ReadonlySet<string>): NodeJS.ProcessEnv;
102
136
  /**
103
137
  * Executes a command.
104
138
  *