obsidian-dev-utils 65.0.0 → 66.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (402) hide show
  1. package/CHANGELOG.md +36 -8
  2. package/dist/dev/main.js +4892 -4807
  3. package/dist/lib/cjs/async-events.cjs +15 -18
  4. package/dist/lib/cjs/async-events.d.cts +19 -19
  5. package/dist/lib/cjs/async.cjs +1 -1
  6. package/dist/lib/cjs/async.d.cts +9 -8
  7. package/dist/lib/cjs/function.cjs +1 -1
  8. package/dist/lib/cjs/function.d.cts +43 -3
  9. package/dist/lib/cjs/library.cjs +1 -1
  10. package/dist/lib/cjs/obsidian/@types/dataview/typings/obsidian-ex.d.cts +1 -1
  11. package/dist/lib/cjs/obsidian/async-with-notice.cjs +1 -1
  12. package/dist/lib/cjs/obsidian/async-with-notice.d.cts +2 -2
  13. package/dist/lib/cjs/obsidian/{plugin/components → components}/abort-signal-component.cjs +4 -4
  14. package/dist/lib/cjs/obsidian/{plugin/components → components}/abort-signal-component.d.cts +2 -2
  15. package/dist/lib/cjs/obsidian/components/all-windows-event-component.cjs +201 -0
  16. package/dist/lib/{esm/obsidian/components/all-windows-event-handler.d.mts → cjs/obsidian/components/all-windows-event-component.d.cts} +6 -7
  17. package/dist/lib/cjs/obsidian/components/async-component.cjs +3 -2
  18. package/dist/lib/cjs/obsidian/components/async-component.d.cts +2 -1
  19. package/dist/lib/cjs/obsidian/{plugin/components → components}/async-error-handler-component.cjs +5 -5
  20. package/dist/lib/cjs/obsidian/{plugin/components → components}/async-error-handler-component.d.cts +2 -2
  21. package/dist/lib/cjs/obsidian/components/async-events-component.cjs +3 -2
  22. package/dist/lib/cjs/obsidian/components/async-events-component.d.cts +2 -1
  23. package/dist/lib/cjs/obsidian/{plugin/components → components}/console-debug-component.cjs +4 -4
  24. package/dist/lib/cjs/obsidian/{plugin/components → components}/console-debug-component.d.cts +2 -2
  25. package/dist/lib/cjs/obsidian/components/disposable-component.cjs +160 -0
  26. package/dist/lib/cjs/obsidian/components/disposable-component.d.cts +34 -0
  27. package/dist/lib/cjs/obsidian/{plugin/components → components}/i18n-component.cjs +4 -4
  28. package/dist/lib/cjs/obsidian/{plugin/components → components}/i18n-component.d.cts +2 -2
  29. package/dist/lib/cjs/obsidian/components/index.cjs +40 -7
  30. package/dist/lib/cjs/obsidian/components/index.d.cts +13 -2
  31. package/dist/lib/cjs/obsidian/components/layout-ready-component.cjs +185 -0
  32. package/dist/lib/cjs/obsidian/components/layout-ready-component.d.cts +47 -0
  33. package/dist/lib/cjs/obsidian/components/menu-event-registrar-component.cjs +172 -0
  34. package/dist/lib/cjs/obsidian/components/menu-event-registrar-component.d.cts +41 -0
  35. package/dist/lib/cjs/obsidian/components/monkey-around-component.cjs +197 -0
  36. package/dist/lib/cjs/obsidian/components/monkey-around-component.d.cts +113 -0
  37. package/dist/lib/cjs/obsidian/{plugin/components → components}/plugin-context-component.cjs +6 -6
  38. package/dist/lib/cjs/obsidian/{plugin/components → components}/plugin-context-component.d.cts +2 -2
  39. package/dist/lib/cjs/obsidian/{plugin/components → components}/plugin-notice-component.cjs +3 -2
  40. package/dist/lib/cjs/obsidian/{plugin/components → components}/plugin-notice-component.d.cts +2 -2
  41. package/dist/lib/cjs/obsidian/components/plugin-settings-component.cjs +534 -0
  42. package/dist/lib/cjs/obsidian/{plugin/components → components}/plugin-settings-component.d.cts +6 -21
  43. package/dist/lib/cjs/obsidian/{plugin/components → components}/plugin-settings-tab-component.cjs +3 -2
  44. package/dist/lib/cjs/obsidian/{plugin/components → components}/plugin-settings-tab-component.d.cts +5 -5
  45. package/dist/lib/cjs/obsidian/constructors/getDomEventsHandlersConstructor.cjs +20 -16
  46. package/dist/lib/cjs/obsidian/dataview.cjs +1 -1
  47. package/dist/lib/cjs/obsidian/dataview.d.cts +1 -1
  48. package/dist/lib/cjs/obsidian/index.cjs +7 -4
  49. package/dist/lib/cjs/obsidian/index.d.cts +2 -1
  50. package/dist/lib/cjs/obsidian/loop.cjs +1 -1
  51. package/dist/lib/cjs/obsidian/loop.d.cts +2 -2
  52. package/dist/lib/cjs/obsidian/markdown.cjs +13 -7
  53. package/dist/lib/cjs/obsidian/menu-event-registrar.cjs +1 -50
  54. package/dist/lib/cjs/obsidian/menu-event-registrar.d.cts +1 -35
  55. package/dist/lib/cjs/obsidian/modals/prompt.cjs +1 -1
  56. package/dist/lib/cjs/obsidian/modals/prompt.d.cts +1 -1
  57. package/dist/lib/cjs/obsidian/modals/select-item.cjs +1 -1
  58. package/dist/lib/cjs/obsidian/modals/select-item.d.cts +1 -1
  59. package/dist/lib/cjs/obsidian/path-settings.cjs +239 -0
  60. package/dist/lib/cjs/obsidian/plugin/index.cjs +1 -7
  61. package/dist/lib/cjs/obsidian/plugin/index.d.cts +0 -2
  62. package/dist/lib/cjs/obsidian/plugin/plugin-settings-tab.cjs +4 -4
  63. package/dist/lib/cjs/obsidian/plugin/plugin-settings-tab.d.cts +5 -5
  64. package/dist/lib/cjs/obsidian/plugin/plugin.cjs +40 -34
  65. package/dist/lib/cjs/obsidian/plugin/plugin.d.cts +16 -13
  66. package/dist/lib/cjs/obsidian/queue.cjs +1 -1
  67. package/dist/lib/cjs/obsidian/queue.d.cts +2 -2
  68. package/dist/lib/cjs/obsidian/rename-delete-handler.cjs +19 -12
  69. package/dist/lib/cjs/obsidian/setting-components/checkbox-component.cjs +209 -0
  70. package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/checkbox-component.d.cts +1 -1
  71. package/dist/lib/cjs/obsidian/setting-components/code-highlighter-component.cjs +356 -0
  72. package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/code-highlighter-component.d.cts +1 -1
  73. package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/date-component.cjs +3 -3
  74. package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/date-time-component.cjs +3 -3
  75. package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/email-component.cjs +2 -2
  76. package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/file-component.cjs +2 -2
  77. package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/index.cjs +1 -1
  78. package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/month-component.cjs +3 -3
  79. package/dist/lib/cjs/obsidian/setting-components/multiple-dropdown-component.cjs +241 -0
  80. package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/multiple-dropdown-component.d.cts +1 -1
  81. package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/multiple-email-component.cjs +2 -2
  82. package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/multiple-file-component.cjs +3 -3
  83. package/dist/lib/cjs/obsidian/setting-components/multiple-text-component.cjs +254 -0
  84. package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/multiple-text-component.d.cts +1 -1
  85. package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/number-component.cjs +2 -2
  86. package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/password-component.cjs +2 -2
  87. package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/setting-component-wrapper.cjs +4 -4
  88. package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/telephone-component.cjs +2 -2
  89. package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/text-based-component.cjs +1 -1
  90. package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/time-component.cjs +2 -2
  91. package/dist/lib/cjs/obsidian/setting-components/tri-state-checkbox-component.cjs +210 -0
  92. package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/tri-state-checkbox-component.d.cts +1 -1
  93. package/dist/lib/cjs/obsidian/setting-components/typed-dropdown-component.cjs +247 -0
  94. package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/typed-dropdown-component.d.cts +1 -1
  95. package/dist/lib/cjs/obsidian/setting-components/typed-multiple-dropdown-component.cjs +249 -0
  96. package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/typed-multiple-dropdown-component.d.cts +1 -1
  97. package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/typed-range-text-component.cjs +1 -1
  98. package/dist/lib/cjs/obsidian/setting-components/typed-text-component.cjs +224 -0
  99. package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/typed-text-component.d.cts +2 -2
  100. package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/url-component.cjs +2 -2
  101. package/dist/lib/cjs/obsidian/setting-components/validator-component.cjs +226 -0
  102. package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/validator-component.d.cts +1 -1
  103. package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/value-component-with-change-tracking.cjs +1 -1
  104. package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/week-component.cjs +3 -3
  105. package/dist/lib/cjs/obsidian/setting-ex.cjs +21 -21
  106. package/dist/lib/cjs/obsidian/setting-ex.d.cts +20 -20
  107. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.cjs +1 -1
  108. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.d.cts +2 -2
  109. package/dist/lib/cjs/script-utils/linters/eslint-config.cjs +2 -1
  110. package/dist/lib/cjs/script-utils/linters/eslint-config.d.cts +2 -2
  111. package/dist/lib/cjs/type.cjs +1 -1
  112. package/dist/lib/esm/async-events.d.mts +19 -19
  113. package/dist/lib/esm/async-events.mjs +15 -18
  114. package/dist/lib/esm/async.d.mts +9 -8
  115. package/dist/lib/esm/async.mjs +1 -1
  116. package/dist/lib/esm/function.d.mts +43 -3
  117. package/dist/lib/esm/function.mjs +1 -1
  118. package/dist/lib/esm/library.mjs +1 -1
  119. package/dist/lib/esm/obsidian/@types/dataview/typings/obsidian-ex.d.mts +1 -1
  120. package/dist/lib/esm/obsidian/async-with-notice.d.mts +2 -2
  121. package/dist/lib/esm/obsidian/async-with-notice.mjs +1 -1
  122. package/dist/lib/esm/obsidian/{plugin/components → components}/abort-signal-component.d.mts +2 -2
  123. package/dist/lib/esm/obsidian/components/abort-signal-component.mjs +59 -0
  124. package/dist/lib/{cjs/obsidian/components/all-windows-event-handler.d.cts → esm/obsidian/components/all-windows-event-component.d.mts} +6 -7
  125. package/dist/lib/esm/obsidian/components/all-windows-event-component.mjs +93 -0
  126. package/dist/lib/esm/obsidian/components/async-component.d.mts +2 -1
  127. package/dist/lib/esm/obsidian/components/async-component.mjs +3 -2
  128. package/dist/lib/esm/obsidian/{plugin/components → components}/async-error-handler-component.d.mts +2 -2
  129. package/dist/lib/esm/obsidian/components/async-error-handler-component.mjs +62 -0
  130. package/dist/lib/esm/obsidian/components/async-events-component.d.mts +2 -1
  131. package/dist/lib/esm/obsidian/components/async-events-component.mjs +3 -2
  132. package/dist/lib/esm/obsidian/{plugin/components → components}/console-debug-component.d.mts +2 -2
  133. package/dist/lib/esm/obsidian/components/console-debug-component.mjs +56 -0
  134. package/dist/lib/esm/obsidian/components/disposable-component.d.mts +34 -0
  135. package/dist/lib/esm/obsidian/components/disposable-component.mjs +50 -0
  136. package/dist/lib/esm/obsidian/{plugin/components → components}/i18n-component.d.mts +2 -2
  137. package/dist/lib/esm/obsidian/components/i18n-component.mjs +53 -0
  138. package/dist/lib/esm/obsidian/components/index.d.mts +13 -2
  139. package/dist/lib/esm/obsidian/components/index.mjs +27 -5
  140. package/dist/lib/esm/obsidian/components/layout-ready-component.d.mts +47 -0
  141. package/dist/lib/esm/obsidian/components/layout-ready-component.mjs +76 -0
  142. package/dist/lib/esm/obsidian/components/menu-event-registrar-component.d.mts +41 -0
  143. package/dist/lib/esm/obsidian/components/menu-event-registrar-component.mjs +64 -0
  144. package/dist/lib/esm/obsidian/components/monkey-around-component.d.mts +113 -0
  145. package/dist/lib/esm/obsidian/components/monkey-around-component.mjs +87 -0
  146. package/dist/lib/esm/obsidian/{plugin/components → components}/plugin-context-component.d.mts +2 -2
  147. package/dist/lib/esm/obsidian/components/plugin-context-component.mjs +61 -0
  148. package/dist/lib/esm/obsidian/{plugin/components → components}/plugin-notice-component.d.mts +2 -2
  149. package/dist/lib/esm/obsidian/components/plugin-notice-component.mjs +58 -0
  150. package/dist/lib/esm/obsidian/{plugin/components → components}/plugin-settings-component.d.mts +6 -21
  151. package/dist/lib/esm/obsidian/components/plugin-settings-component.mjs +433 -0
  152. package/dist/lib/esm/obsidian/{plugin/components → components}/plugin-settings-tab-component.d.mts +5 -5
  153. package/dist/lib/esm/obsidian/components/plugin-settings-tab-component.mjs +50 -0
  154. package/dist/lib/esm/obsidian/constructors/getDomEventsHandlersConstructor.mjs +20 -16
  155. package/dist/lib/esm/obsidian/dataview.d.mts +1 -1
  156. package/dist/lib/esm/obsidian/dataview.mjs +1 -1
  157. package/dist/lib/esm/obsidian/index.d.mts +2 -1
  158. package/dist/lib/esm/obsidian/index.mjs +5 -3
  159. package/dist/lib/esm/obsidian/loop.d.mts +2 -2
  160. package/dist/lib/esm/obsidian/loop.mjs +1 -1
  161. package/dist/lib/esm/obsidian/markdown.mjs +13 -7
  162. package/dist/lib/esm/obsidian/menu-event-registrar.d.mts +1 -35
  163. package/dist/lib/esm/obsidian/menu-event-registrar.mjs +1 -42
  164. package/dist/lib/esm/obsidian/modals/prompt.d.mts +1 -1
  165. package/dist/lib/esm/obsidian/modals/prompt.mjs +1 -1
  166. package/dist/lib/esm/obsidian/modals/select-item.d.mts +1 -1
  167. package/dist/lib/esm/obsidian/modals/select-item.mjs +1 -1
  168. package/dist/lib/esm/obsidian/path-settings.mjs +135 -0
  169. package/dist/lib/esm/obsidian/plugin/index.d.mts +0 -2
  170. package/dist/lib/esm/obsidian/plugin/index.mjs +1 -5
  171. package/dist/lib/esm/obsidian/plugin/plugin-settings-tab.d.mts +5 -5
  172. package/dist/lib/esm/obsidian/plugin/plugin-settings-tab.mjs +4 -4
  173. package/dist/lib/esm/obsidian/plugin/plugin.d.mts +16 -13
  174. package/dist/lib/esm/obsidian/plugin/plugin.mjs +40 -34
  175. package/dist/lib/esm/obsidian/queue.d.mts +2 -2
  176. package/dist/lib/esm/obsidian/queue.mjs +1 -1
  177. package/dist/lib/esm/obsidian/rename-delete-handler.mjs +22 -12
  178. package/dist/lib/esm/obsidian/{components/setting-components → setting-components}/checkbox-component.d.mts +1 -1
  179. package/dist/lib/esm/obsidian/setting-components/checkbox-component.mjs +101 -0
  180. package/dist/lib/esm/obsidian/{components/setting-components → setting-components}/code-highlighter-component.d.mts +1 -1
  181. package/dist/lib/esm/obsidian/setting-components/code-highlighter-component.mjs +254 -0
  182. package/dist/lib/esm/obsidian/setting-components/date-component.mjs +62 -0
  183. package/dist/lib/esm/obsidian/setting-components/date-time-component.mjs +62 -0
  184. package/dist/lib/esm/obsidian/setting-components/email-component.mjs +72 -0
  185. package/dist/lib/esm/obsidian/setting-components/file-component.mjs +66 -0
  186. package/dist/lib/esm/obsidian/setting-components/index.mjs +78 -0
  187. package/dist/lib/esm/obsidian/setting-components/month-component.mjs +70 -0
  188. package/dist/lib/esm/obsidian/{components/setting-components → setting-components}/multiple-dropdown-component.d.mts +1 -1
  189. package/dist/lib/esm/obsidian/setting-components/multiple-dropdown-component.mjs +136 -0
  190. package/dist/lib/esm/obsidian/setting-components/multiple-email-component.mjs +59 -0
  191. package/dist/lib/esm/obsidian/setting-components/multiple-file-component.mjs +68 -0
  192. package/dist/lib/esm/obsidian/{components/setting-components → setting-components}/multiple-text-component.d.mts +1 -1
  193. package/dist/lib/esm/obsidian/setting-components/multiple-text-component.mjs +149 -0
  194. package/dist/lib/esm/obsidian/setting-components/number-component.mjs +82 -0
  195. package/dist/lib/esm/obsidian/setting-components/password-component.mjs +58 -0
  196. package/dist/lib/esm/obsidian/setting-components/setting-component-wrapper.mjs +45 -0
  197. package/dist/lib/esm/obsidian/setting-components/telephone-component.mjs +72 -0
  198. package/dist/lib/esm/obsidian/setting-components/text-based-component.mjs +58 -0
  199. package/dist/lib/esm/obsidian/setting-components/time-component.mjs +67 -0
  200. package/dist/lib/esm/obsidian/{components/setting-components → setting-components}/tri-state-checkbox-component.d.mts +1 -1
  201. package/dist/lib/esm/obsidian/setting-components/tri-state-checkbox-component.mjs +102 -0
  202. package/dist/lib/esm/obsidian/{components/setting-components → setting-components}/typed-dropdown-component.d.mts +1 -1
  203. package/dist/lib/esm/obsidian/setting-components/typed-dropdown-component.mjs +142 -0
  204. package/dist/lib/esm/obsidian/{components/setting-components → setting-components}/typed-multiple-dropdown-component.d.mts +1 -1
  205. package/dist/lib/esm/obsidian/setting-components/typed-multiple-dropdown-component.mjs +141 -0
  206. package/dist/lib/esm/obsidian/setting-components/typed-range-text-component.mjs +60 -0
  207. package/dist/lib/esm/obsidian/{components/setting-components → setting-components}/typed-text-component.d.mts +2 -2
  208. package/dist/lib/esm/obsidian/setting-components/typed-text-component.mjs +119 -0
  209. package/dist/lib/esm/obsidian/setting-components/url-component.mjs +72 -0
  210. package/dist/lib/esm/obsidian/{components/setting-components → setting-components}/validator-component.d.mts +1 -1
  211. package/dist/lib/esm/obsidian/setting-components/validator-component.mjs +127 -0
  212. package/dist/lib/esm/obsidian/setting-components/week-component.mjs +70 -0
  213. package/dist/lib/esm/obsidian/setting-ex.d.mts +20 -20
  214. package/dist/lib/esm/obsidian/setting-ex.mjs +21 -21
  215. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.d.mts +2 -2
  216. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.mjs +1 -1
  217. package/dist/lib/esm/script-utils/linters/eslint-config.d.mts +2 -2
  218. package/dist/lib/esm/script-utils/linters/eslint-config.mjs +2 -1
  219. package/dist/lib/esm/type.mjs +1 -1
  220. package/obsidian/Components/abort-signal-component/package.json +6 -0
  221. package/obsidian/Components/{all-windows-event-handler → all-windows-event-component}/package.json +3 -3
  222. package/obsidian/Components/async-error-handler-component/package.json +6 -0
  223. package/obsidian/Components/console-debug-component/package.json +6 -0
  224. package/obsidian/Components/disposable-component/package.json +6 -0
  225. package/obsidian/Components/i18n-component/package.json +6 -0
  226. package/obsidian/Components/layout-ready-component/package.json +6 -0
  227. package/obsidian/Components/menu-event-registrar-component/package.json +6 -0
  228. package/obsidian/Components/monkey-around-component/package.json +6 -0
  229. package/obsidian/Components/plugin-context-component/package.json +6 -0
  230. package/obsidian/Components/plugin-notice-component/package.json +6 -0
  231. package/obsidian/Components/plugin-settings-component/package.json +6 -0
  232. package/obsidian/Components/plugin-settings-tab-component/package.json +6 -0
  233. package/obsidian/path-settings/package.json +6 -0
  234. package/obsidian/setting-components/checkbox-component/package.json +6 -0
  235. package/obsidian/setting-components/code-highlighter-component/package.json +6 -0
  236. package/obsidian/setting-components/date-component/package.json +6 -0
  237. package/obsidian/setting-components/date-time-component/package.json +6 -0
  238. package/obsidian/setting-components/email-component/package.json +6 -0
  239. package/obsidian/setting-components/file-component/package.json +6 -0
  240. package/obsidian/setting-components/index/package.json +6 -0
  241. package/obsidian/setting-components/month-component/package.json +6 -0
  242. package/obsidian/setting-components/multiple-dropdown-component/package.json +6 -0
  243. package/obsidian/setting-components/multiple-email-component/package.json +6 -0
  244. package/obsidian/setting-components/multiple-file-component/package.json +6 -0
  245. package/obsidian/setting-components/multiple-text-component/package.json +6 -0
  246. package/obsidian/setting-components/number-component/package.json +6 -0
  247. package/obsidian/setting-components/package.json +6 -0
  248. package/obsidian/setting-components/password-component/package.json +6 -0
  249. package/obsidian/setting-components/setting-component-wrapper/package.json +6 -0
  250. package/obsidian/setting-components/telephone-component/package.json +6 -0
  251. package/obsidian/setting-components/text-based-component/package.json +6 -0
  252. package/obsidian/setting-components/time-component/package.json +6 -0
  253. package/obsidian/setting-components/tri-state-checkbox-component/package.json +6 -0
  254. package/obsidian/setting-components/typed-dropdown-component/package.json +6 -0
  255. package/obsidian/setting-components/typed-multiple-dropdown-component/package.json +6 -0
  256. package/obsidian/setting-components/typed-range-text-component/package.json +6 -0
  257. package/obsidian/setting-components/typed-text-component/package.json +6 -0
  258. package/obsidian/setting-components/url-component/package.json +6 -0
  259. package/obsidian/setting-components/validator-component/package.json +6 -0
  260. package/obsidian/setting-components/value-component-with-change-tracking/package.json +6 -0
  261. package/obsidian/setting-components/week-component/package.json +6 -0
  262. package/package.json +23 -43
  263. package/dist/lib/cjs/obsidian/components/all-windows-event-handler.cjs +0 -196
  264. package/dist/lib/cjs/obsidian/components/setting-components/checkbox-component.cjs +0 -209
  265. package/dist/lib/cjs/obsidian/components/setting-components/code-highlighter-component.cjs +0 -356
  266. package/dist/lib/cjs/obsidian/components/setting-components/multiple-dropdown-component.cjs +0 -241
  267. package/dist/lib/cjs/obsidian/components/setting-components/multiple-text-component.cjs +0 -254
  268. package/dist/lib/cjs/obsidian/components/setting-components/tri-state-checkbox-component.cjs +0 -210
  269. package/dist/lib/cjs/obsidian/components/setting-components/typed-dropdown-component.cjs +0 -247
  270. package/dist/lib/cjs/obsidian/components/setting-components/typed-multiple-dropdown-component.cjs +0 -249
  271. package/dist/lib/cjs/obsidian/components/setting-components/typed-text-component.cjs +0 -224
  272. package/dist/lib/cjs/obsidian/components/setting-components/validator-component.cjs +0 -226
  273. package/dist/lib/cjs/obsidian/monkey-around.cjs +0 -177
  274. package/dist/lib/cjs/obsidian/monkey-around.d.cts +0 -62
  275. package/dist/lib/cjs/obsidian/plugin/components/index.cjs +0 -170
  276. package/dist/lib/cjs/obsidian/plugin/components/index.d.cts +0 -9
  277. package/dist/lib/cjs/obsidian/plugin/components/layout-ready-component.cjs +0 -124
  278. package/dist/lib/cjs/obsidian/plugin/components/layout-ready-component.d.cts +0 -18
  279. package/dist/lib/cjs/obsidian/plugin/components/plugin-settings-component.cjs +0 -563
  280. package/dist/lib/cjs/obsidian/plugin/path-settings.cjs +0 -239
  281. package/dist/lib/esm/obsidian/components/all-windows-event-handler.mjs +0 -88
  282. package/dist/lib/esm/obsidian/components/setting-components/checkbox-component.mjs +0 -101
  283. package/dist/lib/esm/obsidian/components/setting-components/code-highlighter-component.mjs +0 -254
  284. package/dist/lib/esm/obsidian/components/setting-components/date-component.mjs +0 -62
  285. package/dist/lib/esm/obsidian/components/setting-components/date-time-component.mjs +0 -62
  286. package/dist/lib/esm/obsidian/components/setting-components/email-component.mjs +0 -72
  287. package/dist/lib/esm/obsidian/components/setting-components/file-component.mjs +0 -66
  288. package/dist/lib/esm/obsidian/components/setting-components/index.mjs +0 -78
  289. package/dist/lib/esm/obsidian/components/setting-components/month-component.mjs +0 -70
  290. package/dist/lib/esm/obsidian/components/setting-components/multiple-dropdown-component.mjs +0 -136
  291. package/dist/lib/esm/obsidian/components/setting-components/multiple-email-component.mjs +0 -59
  292. package/dist/lib/esm/obsidian/components/setting-components/multiple-file-component.mjs +0 -68
  293. package/dist/lib/esm/obsidian/components/setting-components/multiple-text-component.mjs +0 -149
  294. package/dist/lib/esm/obsidian/components/setting-components/number-component.mjs +0 -82
  295. package/dist/lib/esm/obsidian/components/setting-components/password-component.mjs +0 -58
  296. package/dist/lib/esm/obsidian/components/setting-components/setting-component-wrapper.mjs +0 -45
  297. package/dist/lib/esm/obsidian/components/setting-components/telephone-component.mjs +0 -72
  298. package/dist/lib/esm/obsidian/components/setting-components/text-based-component.mjs +0 -58
  299. package/dist/lib/esm/obsidian/components/setting-components/time-component.mjs +0 -67
  300. package/dist/lib/esm/obsidian/components/setting-components/tri-state-checkbox-component.mjs +0 -102
  301. package/dist/lib/esm/obsidian/components/setting-components/typed-dropdown-component.mjs +0 -142
  302. package/dist/lib/esm/obsidian/components/setting-components/typed-multiple-dropdown-component.mjs +0 -141
  303. package/dist/lib/esm/obsidian/components/setting-components/typed-range-text-component.mjs +0 -60
  304. package/dist/lib/esm/obsidian/components/setting-components/typed-text-component.mjs +0 -119
  305. package/dist/lib/esm/obsidian/components/setting-components/url-component.mjs +0 -72
  306. package/dist/lib/esm/obsidian/components/setting-components/validator-component.mjs +0 -127
  307. package/dist/lib/esm/obsidian/components/setting-components/week-component.mjs +0 -70
  308. package/dist/lib/esm/obsidian/monkey-around.d.mts +0 -62
  309. package/dist/lib/esm/obsidian/monkey-around.mjs +0 -66
  310. package/dist/lib/esm/obsidian/plugin/components/abort-signal-component.mjs +0 -59
  311. package/dist/lib/esm/obsidian/plugin/components/async-error-handler-component.mjs +0 -62
  312. package/dist/lib/esm/obsidian/plugin/components/console-debug-component.mjs +0 -56
  313. package/dist/lib/esm/obsidian/plugin/components/i18n-component.mjs +0 -53
  314. package/dist/lib/esm/obsidian/plugin/components/index.d.mts +0 -9
  315. package/dist/lib/esm/obsidian/plugin/components/index.mjs +0 -44
  316. package/dist/lib/esm/obsidian/plugin/components/layout-ready-component.d.mts +0 -18
  317. package/dist/lib/esm/obsidian/plugin/components/layout-ready-component.mjs +0 -24
  318. package/dist/lib/esm/obsidian/plugin/components/plugin-context-component.mjs +0 -61
  319. package/dist/lib/esm/obsidian/plugin/components/plugin-notice-component.mjs +0 -60
  320. package/dist/lib/esm/obsidian/plugin/components/plugin-settings-component.mjs +0 -461
  321. package/dist/lib/esm/obsidian/plugin/components/plugin-settings-tab-component.mjs +0 -49
  322. package/dist/lib/esm/obsidian/plugin/path-settings.mjs +0 -135
  323. package/obsidian/Components/setting-components/checkbox-component/package.json +0 -6
  324. package/obsidian/Components/setting-components/code-highlighter-component/package.json +0 -6
  325. package/obsidian/Components/setting-components/date-component/package.json +0 -6
  326. package/obsidian/Components/setting-components/date-time-component/package.json +0 -6
  327. package/obsidian/Components/setting-components/email-component/package.json +0 -6
  328. package/obsidian/Components/setting-components/file-component/package.json +0 -6
  329. package/obsidian/Components/setting-components/index/package.json +0 -6
  330. package/obsidian/Components/setting-components/month-component/package.json +0 -6
  331. package/obsidian/Components/setting-components/multiple-dropdown-component/package.json +0 -6
  332. package/obsidian/Components/setting-components/multiple-email-component/package.json +0 -6
  333. package/obsidian/Components/setting-components/multiple-file-component/package.json +0 -6
  334. package/obsidian/Components/setting-components/multiple-text-component/package.json +0 -6
  335. package/obsidian/Components/setting-components/number-component/package.json +0 -6
  336. package/obsidian/Components/setting-components/package.json +0 -6
  337. package/obsidian/Components/setting-components/password-component/package.json +0 -6
  338. package/obsidian/Components/setting-components/setting-component-wrapper/package.json +0 -6
  339. package/obsidian/Components/setting-components/telephone-component/package.json +0 -6
  340. package/obsidian/Components/setting-components/text-based-component/package.json +0 -6
  341. package/obsidian/Components/setting-components/time-component/package.json +0 -6
  342. package/obsidian/Components/setting-components/tri-state-checkbox-component/package.json +0 -6
  343. package/obsidian/Components/setting-components/typed-dropdown-component/package.json +0 -6
  344. package/obsidian/Components/setting-components/typed-multiple-dropdown-component/package.json +0 -6
  345. package/obsidian/Components/setting-components/typed-range-text-component/package.json +0 -6
  346. package/obsidian/Components/setting-components/typed-text-component/package.json +0 -6
  347. package/obsidian/Components/setting-components/url-component/package.json +0 -6
  348. package/obsidian/Components/setting-components/validator-component/package.json +0 -6
  349. package/obsidian/Components/setting-components/value-component-with-change-tracking/package.json +0 -6
  350. package/obsidian/Components/setting-components/week-component/package.json +0 -6
  351. package/obsidian/Plugin/components/abort-signal-component/package.json +0 -6
  352. package/obsidian/Plugin/components/async-error-handler-component/package.json +0 -6
  353. package/obsidian/Plugin/components/console-debug-component/package.json +0 -6
  354. package/obsidian/Plugin/components/i18n-component/package.json +0 -6
  355. package/obsidian/Plugin/components/index/package.json +0 -6
  356. package/obsidian/Plugin/components/layout-ready-component/package.json +0 -6
  357. package/obsidian/Plugin/components/package.json +0 -6
  358. package/obsidian/Plugin/components/plugin-context-component/package.json +0 -6
  359. package/obsidian/Plugin/components/plugin-notice-component/package.json +0 -6
  360. package/obsidian/Plugin/components/plugin-settings-component/package.json +0 -6
  361. package/obsidian/Plugin/components/plugin-settings-tab-component/package.json +0 -6
  362. package/obsidian/Plugin/path-settings/package.json +0 -6
  363. package/obsidian/monkey-around/package.json +0 -6
  364. /package/dist/lib/cjs/obsidian/{plugin/path-settings.d.cts → path-settings.d.cts} +0 -0
  365. /package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/date-component.d.cts +0 -0
  366. /package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/date-time-component.d.cts +0 -0
  367. /package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/email-component.d.cts +0 -0
  368. /package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/file-component.d.cts +0 -0
  369. /package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/index.d.cts +0 -0
  370. /package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/month-component.d.cts +0 -0
  371. /package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/multiple-email-component.d.cts +0 -0
  372. /package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/multiple-file-component.d.cts +0 -0
  373. /package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/number-component.d.cts +0 -0
  374. /package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/password-component.d.cts +0 -0
  375. /package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/setting-component-wrapper.d.cts +0 -0
  376. /package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/telephone-component.d.cts +0 -0
  377. /package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/text-based-component.d.cts +0 -0
  378. /package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/time-component.d.cts +0 -0
  379. /package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/typed-range-text-component.d.cts +0 -0
  380. /package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/url-component.d.cts +0 -0
  381. /package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/value-component-with-change-tracking.d.cts +0 -0
  382. /package/dist/lib/cjs/obsidian/{components/setting-components → setting-components}/week-component.d.cts +0 -0
  383. /package/dist/lib/esm/obsidian/{plugin/path-settings.d.mts → path-settings.d.mts} +0 -0
  384. /package/dist/lib/esm/obsidian/{components/setting-components → setting-components}/date-component.d.mts +0 -0
  385. /package/dist/lib/esm/obsidian/{components/setting-components → setting-components}/date-time-component.d.mts +0 -0
  386. /package/dist/lib/esm/obsidian/{components/setting-components → setting-components}/email-component.d.mts +0 -0
  387. /package/dist/lib/esm/obsidian/{components/setting-components → setting-components}/file-component.d.mts +0 -0
  388. /package/dist/lib/esm/obsidian/{components/setting-components → setting-components}/index.d.mts +0 -0
  389. /package/dist/lib/esm/obsidian/{components/setting-components → setting-components}/month-component.d.mts +0 -0
  390. /package/dist/lib/esm/obsidian/{components/setting-components → setting-components}/multiple-email-component.d.mts +0 -0
  391. /package/dist/lib/esm/obsidian/{components/setting-components → setting-components}/multiple-file-component.d.mts +0 -0
  392. /package/dist/lib/esm/obsidian/{components/setting-components → setting-components}/number-component.d.mts +0 -0
  393. /package/dist/lib/esm/obsidian/{components/setting-components → setting-components}/password-component.d.mts +0 -0
  394. /package/dist/lib/esm/obsidian/{components/setting-components → setting-components}/setting-component-wrapper.d.mts +0 -0
  395. /package/dist/lib/esm/obsidian/{components/setting-components → setting-components}/telephone-component.d.mts +0 -0
  396. /package/dist/lib/esm/obsidian/{components/setting-components → setting-components}/text-based-component.d.mts +0 -0
  397. /package/dist/lib/esm/obsidian/{components/setting-components → setting-components}/time-component.d.mts +0 -0
  398. /package/dist/lib/esm/obsidian/{components/setting-components → setting-components}/typed-range-text-component.d.mts +0 -0
  399. /package/dist/lib/esm/obsidian/{components/setting-components → setting-components}/url-component.d.mts +0 -0
  400. /package/dist/lib/esm/obsidian/{components/setting-components → setting-components}/value-component-with-change-tracking.d.mts +0 -0
  401. /package/dist/lib/esm/obsidian/{components/setting-components → setting-components}/value-component-with-change-tracking.mjs +0 -0
  402. /package/dist/lib/esm/obsidian/{components/setting-components → setting-components}/week-component.d.mts +0 -0
@@ -8,9 +8,9 @@ import type { Plugin } from 'obsidian';
8
8
  import type { ConditionalKeys, Promisable, ReadonlyDeep } from 'type-fest';
9
9
  import { PluginSettingTab } from 'obsidian';
10
10
  import type { StringKeys } from '../../type.cjs';
11
- import type { ValueComponentWithChangeTracking } from '../components/setting-components/value-component-with-change-tracking.cjs';
11
+ import type { PluginSettingsComponentBase, ReadonlyPluginSettingsState } from '../components/plugin-settings-component.cjs';
12
+ import type { ValueComponentWithChangeTracking } from '../setting-components/value-component-with-change-tracking.cjs';
12
13
  import type { ValidationMessageHolder } from '../validation.cjs';
13
- import type { PluginSettingsComponentBase, ReadonlyPluginSettingsState } from './components/plugin-settings-component.cjs';
14
14
  /**
15
15
  * A context passed to the {@link PluginSettingsComponentBase.saveToFile} method.
16
16
  */
@@ -24,7 +24,7 @@ export interface BindOptions<T> {
24
24
  /**
25
25
  * A callback function that is called when the value of the component changes.
26
26
  */
27
- readonly onChanged?: (newValue: ReadonlyDeep<T>, oldValue: ReadonlyDeep<T>) => Promisable<void>;
27
+ onChanged?(newValue: ReadonlyDeep<T>, oldValue: ReadonlyDeep<T>): Promisable<void>;
28
28
  /**
29
29
  * Whether to reset the setting when the component value is empty. Default is `true`.
30
30
  * Applicable only to text-based components.
@@ -54,14 +54,14 @@ export interface BindOptionsExtended<PluginSettings extends object, UIValue, Pro
54
54
  * @param uiValue - The value of the UI component.
55
55
  * @returns The value to set on the plugin settings.
56
56
  */
57
- readonly componentToPluginSettingsValueConverter: (uiValue: UIValue) => PluginSettings[PropertyName] | ValidationMessageHolder;
57
+ componentToPluginSettingsValueConverter(uiValue: UIValue): PluginSettings[PropertyName] | ValidationMessageHolder;
58
58
  /**
59
59
  * Converts the plugin settings value to the value used by the UI component.
60
60
  *
61
61
  * @param pluginSettingsValue - The value of the property in the plugin settings.
62
62
  * @returns The value to set on the UI component.
63
63
  */
64
- readonly pluginSettingsToComponentValueConverter: (pluginSettingsValue: ReadonlyDeep<PluginSettings[PropertyName]>) => UIValue;
64
+ pluginSettingsToComponentValueConverter(pluginSettingsValue: ReadonlyDeep<PluginSettings[PropertyName]>): UIValue;
65
65
  }
66
66
  /**
67
67
  * Params for creating a {@link PluginSettingsTabBase}.
@@ -131,34 +131,42 @@ __export(plugin_exports, {
131
131
  });
132
132
  module.exports = __toCommonJS(plugin_exports);
133
133
  var import_obsidian = require('obsidian');
134
- var import_async = require('../../async.cjs');
135
134
  var import_error = require('../../error.cjs');
136
- var import_strict_proxy = require('../../strict-proxy.cjs');
135
+ var import_type_guards = require('../../type-guards.cjs');
136
+ var import_abort_signal_component = require('../components/abort-signal-component.cjs');
137
137
  var import_async_component = require('../components/async-component.cjs');
138
- var import_abort_signal_component = require('./components/abort-signal-component.cjs');
139
- var import_async_error_handler_component = require('./components/async-error-handler-component.cjs');
140
- var import_console_debug_component = require('./components/console-debug-component.cjs');
141
- var import_i18n_component = require('./components/i18n-component.cjs');
142
- var import_plugin_context_component = require('./components/plugin-context-component.cjs');
143
- var import_plugin_notice_component = require('./components/plugin-notice-component.cjs');
144
- var import_plugin_settings_component = require('./components/plugin-settings-component.cjs');
138
+ var import_async_error_handler_component = require('../components/async-error-handler-component.cjs');
139
+ var import_console_debug_component = require('../components/console-debug-component.cjs');
140
+ var import_disposable_component = require('../components/disposable-component.cjs');
141
+ var import_i18n_component = require('../components/i18n-component.cjs');
142
+ var import_plugin_context_component = require('../components/plugin-context-component.cjs');
143
+ var import_plugin_notice_component = require('../components/plugin-notice-component.cjs');
144
+ var import_plugin_settings_component = require('../components/plugin-settings-component.cjs');
145
145
  class PluginBase extends import_obsidian.Plugin {
146
146
  /**
147
147
  * The abort signal component. Aborted when the plugin is unloaded.
148
+ *
149
+ * @returns the abort signal component.
148
150
  */
149
- abortSignalComponent;
151
+ get abortSignalComponent() {
152
+ return (0, import_type_guards.ensureNonNullable)(this.getRegisteredComponent(import_abort_signal_component.AbortSignalComponent));
153
+ }
150
154
  /**
151
155
  * The console debug component. Provides namespaced debug logging.
156
+ *
157
+ * @returns The console debug component.
152
158
  */
153
- consoleDebugComponent;
159
+ get consoleDebugComponent() {
160
+ return (0, import_type_guards.ensureNonNullable)(this.getRegisteredComponent(import_console_debug_component.ConsoleDebugComponent));
161
+ }
154
162
  /**
155
163
  * The notice component. Displays notices to the user.
164
+ *
165
+ * @returns The notice component.
156
166
  */
157
- noticeComponent;
158
- /**
159
- * The settings component. Manages plugin settings lifecycle.
160
- */
161
- settingsComponent;
167
+ get noticeComponent() {
168
+ return (0, import_type_guards.ensureNonNullable)(this.getRegisteredComponent(import_plugin_notice_component.PluginNoticeComponent));
169
+ }
162
170
  singletonComponents = /* @__PURE__ */ new Map();
163
171
  /**
164
172
  * Creates a new PluginBase.
@@ -170,11 +178,10 @@ class PluginBase extends import_obsidian.Plugin {
170
178
  super(app, manifest);
171
179
  this.addChild(new import_plugin_context_component.PluginContextComponent({ app, pluginId: manifest.id }));
172
180
  this.addChild(new import_i18n_component.I18nComponent());
173
- this.noticeComponent = this.addChild(new import_plugin_notice_component.PluginNoticeComponent(manifest.name));
181
+ this.addChild(new import_plugin_notice_component.PluginNoticeComponent(manifest.name));
174
182
  this.addChild(new import_async_error_handler_component.AsyncErrorHandlerComponent(this.noticeComponent));
175
- this.abortSignalComponent = this.addChild(new import_abort_signal_component.AbortSignalComponent(manifest.id));
176
- this.consoleDebugComponent = this.addChild(new import_console_debug_component.ConsoleDebugComponent(manifest.id));
177
- this.settingsComponent = this.addChild(new import_plugin_settings_component.EmptyPluginSettingsComponent());
183
+ this.addChild(new import_abort_signal_component.AbortSignalComponent(manifest.id));
184
+ this.addChild(new import_console_debug_component.ConsoleDebugComponent(manifest.id));
178
185
  }
179
186
  /**
180
187
  * Adds a component to the plugin.
@@ -207,18 +214,6 @@ class PluginBase extends import_obsidian.Plugin {
207
214
  // eslint-disable-next-line @typescript-eslint/no-misused-promises, obsidian-dev-utils/require-super-call -- Obsidian's load() handles async returns at runtime. Intentionally replaces Component.load() with children-first async loading.
208
215
  async load() {
209
216
  await (0, import_async_component.loadChildrenFirstAsync)(this);
210
- this.app.workspace.onLayoutReady(() => {
211
- (0, import_async.invokeAsyncSafelyAfterDelay)(
212
- async () => {
213
- for (const child of this._children) {
214
- await (0, import_strict_proxy.bypassStrictProxy)(child).onLayoutReady?.();
215
- }
216
- },
217
- 0,
218
- void 0,
219
- this.abortSignalComponent.abortSignal
220
- );
221
- });
222
217
  }
223
218
  /**
224
219
  * Called when the external settings change.
@@ -227,7 +222,18 @@ class PluginBase extends import_obsidian.Plugin {
227
222
  */
228
223
  async onExternalSettingsChange() {
229
224
  await super.onExternalSettingsChange?.();
230
- await this.settingsComponent.onExternalSettingsChange();
225
+ await this.getRegisteredComponent(import_plugin_settings_component.PluginSettingsComponentBase)?.onExternalSettingsChange();
226
+ }
227
+ getRegisteredComponent(componentClassWithKey) {
228
+ const key = componentClassWithKey.COMPONENT_KEY;
229
+ const registeredComponent = this.singletonComponents.get(key);
230
+ if (!registeredComponent) {
231
+ return null;
232
+ }
233
+ if (!(registeredComponent instanceof componentClassWithKey)) {
234
+ throw new Error(`Incompatible ${String(key)} is registered`);
235
+ }
236
+ return registeredComponent;
231
237
  }
232
238
  }
233
239
  async function reloadPlugin(plugin) {
@@ -247,4 +253,4 @@ async function showErrorAndDisablePlugin(plugin, message) {
247
253
  reloadPlugin,
248
254
  showErrorAndDisablePlugin
249
255
  });
250
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3BsdWdpbi9wbHVnaW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBCYXNlIGNsYXNzIGZvciBPYnNpZGlhbiBwbHVnaW5zIHVzaW5nIGEgY29tcG9uZW50LWJhc2VkIGFyY2hpdGVjdHVyZS5cbiAqXG4gKiBQbHVnaW5CYXNlIHJlZ2lzdGVycyB1bml2ZXJzYWwgY29tcG9uZW50cyAoY29udGV4dCwgaTE4biwgZXJyb3IgaGFuZGxpbmcsIGFib3J0IHNpZ25hbCwgbGlmZWN5Y2xlIGV2ZW50cywgZGVidWcpLlxuICogU3ViY2xhc3NlcyBhZGQgdGhlaXIgb3duIGNvbXBvbmVudHMgdmlhIHtAbGluayBQbHVnaW5CYXNlLmFkZENoaWxkfSBpbiB0aGVpciBjb25zdHJ1Y3Rvci5cbiAqIEFueSB1bml2ZXJzYWwgY29tcG9uZW50IGNhbiBiZSByZXBsYWNlZCBieSBjYWxsaW5nIHtAbGluayBQbHVnaW5CYXNlLmFkZENoaWxkfSB3aXRoIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBzYW1lIGNsYXNzXG4gKiAoc2luZ2xldG9uIHJlcGxhY2VtZW50IGlzIGF1dG9tYXRpYyBmb3IgY29tcG9uZW50cyB3aG9zZSBjbGFzcyBkZWZpbmVzIGEgc3RhdGljIGBDT01QT05FTlRfS0VZYCkuXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBBcHAsXG4gIFBsdWdpbk1hbmlmZXN0XG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBOb3RpY2UsXG4gIFBsdWdpbiBhcyBPYnNpZGlhblBsdWdpblxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHsgTGF5b3V0UmVhZHlDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbGF5b3V0LXJlYWR5LWNvbXBvbmVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFBsdWdpblNldHRpbmdzQ29tcG9uZW50QmFzZSB9IGZyb20gJy4vY29tcG9uZW50cy9wbHVnaW4tc2V0dGluZ3MtY29tcG9uZW50LnRzJztcblxuaW1wb3J0IHsgaW52b2tlQXN5bmNTYWZlbHlBZnRlckRlbGF5IH0gZnJvbSAnLi4vLi4vYXN5bmMudHMnO1xuaW1wb3J0IHsgcHJpbnRFcnJvciB9IGZyb20gJy4uLy4uL2Vycm9yLnRzJztcbmltcG9ydCB7IGJ5cGFzc1N0cmljdFByb3h5IH0gZnJvbSAnLi4vLi4vc3RyaWN0LXByb3h5LnRzJztcbmltcG9ydCB7IGxvYWRDaGlsZHJlbkZpcnN0QXN5bmMgfSBmcm9tICcuLi9jb21wb25lbnRzL2FzeW5jLWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBBYm9ydFNpZ25hbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hYm9ydC1zaWduYWwtY29tcG9uZW50LnRzJztcbmltcG9ydCB7IEFzeW5jRXJyb3JIYW5kbGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FzeW5jLWVycm9yLWhhbmRsZXItY29tcG9uZW50LnRzJztcbmltcG9ydCB7IENvbnNvbGVEZWJ1Z0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb25zb2xlLWRlYnVnLWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBJMThuQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2kxOG4tY29tcG9uZW50LnRzJztcbmltcG9ydCB7IFBsdWdpbkNvbnRleHRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcGx1Z2luLWNvbnRleHQtY29tcG9uZW50LnRzJztcbmltcG9ydCB7IFBsdWdpbk5vdGljZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wbHVnaW4tbm90aWNlLWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBFbXB0eVBsdWdpblNldHRpbmdzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BsdWdpbi1zZXR0aW5ncy1jb21wb25lbnQudHMnO1xuXG5pbnRlcmZhY2UgQ29tcG9uZW50Q2xhc3NXaXRoS2V5IHtcbiAgQ09NUE9ORU5UX0tFWTogc3ltYm9sO1xufVxuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIGNyZWF0aW5nIE9ic2lkaWFuIHBsdWdpbnMgd2l0aCBhIGNvbXBvbmVudC1iYXNlZCBhcmNoaXRlY3R1cmUuXG4gKlxuICogUmVnaXN0ZXJzIHVuaXZlcnNhbCBjb21wb25lbnRzIGF1dG9tYXRpY2FsbHkuIFN1YmNsYXNzZXMgYWRkIG9yIHJlcGxhY2UgY29tcG9uZW50c1xuICogdmlhIHtAbGluayBQbHVnaW5CYXNlLmFkZENoaWxkfSBpbiB0aGVpciBjb25zdHJ1Y3Rvci5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFBsdWdpbkJhc2UgZXh0ZW5kcyBPYnNpZGlhblBsdWdpbiB7XG4gIC8qKlxuICAgKiBUaGUgYWJvcnQgc2lnbmFsIGNvbXBvbmVudC4gQWJvcnRlZCB3aGVuIHRoZSBwbHVnaW4gaXMgdW5sb2FkZWQuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYWJvcnRTaWduYWxDb21wb25lbnQ6IEFib3J0U2lnbmFsQ29tcG9uZW50O1xuXG4gIC8qKlxuICAgKiBUaGUgY29uc29sZSBkZWJ1ZyBjb21wb25lbnQuIFByb3ZpZGVzIG5hbWVzcGFjZWQgZGVidWcgbG9nZ2luZy5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBjb25zb2xlRGVidWdDb21wb25lbnQ6IENvbnNvbGVEZWJ1Z0NvbXBvbmVudDtcblxuICAvKipcbiAgICogVGhlIG5vdGljZSBjb21wb25lbnQuIERpc3BsYXlzIG5vdGljZXMgdG8gdGhlIHVzZXIuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbm90aWNlQ29tcG9uZW50OiBQbHVnaW5Ob3RpY2VDb21wb25lbnQ7XG5cbiAgLyoqXG4gICAqIFRoZSBzZXR0aW5ncyBjb21wb25lbnQuIE1hbmFnZXMgcGx1Z2luIHNldHRpbmdzIGxpZmVjeWNsZS5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBzZXR0aW5nc0NvbXBvbmVudDogUGx1Z2luU2V0dGluZ3NDb21wb25lbnRCYXNlPG9iamVjdD47XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzaW5nbGV0b25Db21wb25lbnRzID0gbmV3IE1hcDxzeW1ib2wsIENvbXBvbmVudD4oKTtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBQbHVnaW5CYXNlLlxuICAgKlxuICAgKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAgICogQHBhcmFtIG1hbmlmZXN0IC0gVGhlIHBsdWdpbiBtYW5pZmVzdC5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihhcHA6IEFwcCwgbWFuaWZlc3Q6IFBsdWdpbk1hbmlmZXN0KSB7XG4gICAgc3VwZXIoYXBwLCBtYW5pZmVzdCk7XG5cbiAgICB0aGlzLmFkZENoaWxkKG5ldyBQbHVnaW5Db250ZXh0Q29tcG9uZW50KHsgYXBwLCBwbHVnaW5JZDogbWFuaWZlc3QuaWQgfSkpO1xuICAgIHRoaXMuYWRkQ2hpbGQobmV3IEkxOG5Db21wb25lbnQoKSk7XG4gICAgdGhpcy5ub3RpY2VDb21wb25lbnQgPSB0aGlzLmFkZENoaWxkKG5ldyBQbHVnaW5Ob3RpY2VDb21wb25lbnQobWFuaWZlc3QubmFtZSkpO1xuICAgIHRoaXMuYWRkQ2hpbGQobmV3IEFzeW5jRXJyb3JIYW5kbGVyQ29tcG9uZW50KHRoaXMubm90aWNlQ29tcG9uZW50KSk7XG4gICAgdGhpcy5hYm9ydFNpZ25hbENvbXBvbmVudCA9IHRoaXMuYWRkQ2hpbGQobmV3IEFib3J0U2lnbmFsQ29tcG9uZW50KG1hbmlmZXN0LmlkKSk7XG4gICAgdGhpcy5jb25zb2xlRGVidWdDb21wb25lbnQgPSB0aGlzLmFkZENoaWxkKG5ldyBDb25zb2xlRGVidWdDb21wb25lbnQobWFuaWZlc3QuaWQpKTtcbiAgICB0aGlzLnNldHRpbmdzQ29tcG9uZW50ID0gdGhpcy5hZGRDaGlsZChuZXcgRW1wdHlQbHVnaW5TZXR0aW5nc0NvbXBvbmVudCgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgY29tcG9uZW50IHRvIHRoZSBwbHVnaW4uXG4gICAqXG4gICAqIElmIHRoZSBjb21wb25lbnQncyBjbGFzcyBkZWZpbmVzIGEgc3RhdGljIGBDT01QT05FTlRfS0VZYCBzeW1ib2wsIGl0IGlzIHRyZWF0ZWQgYXMgYSBzaW5nbGV0b24gXHUyMDE0XG4gICAqIGFkZGluZyBhbm90aGVyIGNvbXBvbmVudCB3aXRoIHRoZSBzYW1lIGtleSByZXBsYWNlcyB0aGUgcHJldmlvdXMgb25lLlxuICAgKiBDb21wb25lbnRzIHdpdGhvdXQgYSBgQ09NUE9ORU5UX0tFWWAgYXJlIG11bHRpLWluc3RhbmNlIGFuZCBzaW1wbHkgYWRkZWQuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gVCAtIFRoZSBjb21wb25lbnQgdHlwZS5cbiAgICogQHBhcmFtIGNvbXBvbmVudCAtIFRoZSBjb21wb25lbnQgdG8gYWRkLlxuICAgKiBAcmV0dXJucyBUaGUgYWRkZWQgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGFkZENoaWxkPFQgZXh0ZW5kcyBDb21wb25lbnQ+KGNvbXBvbmVudDogVCk6IFQge1xuICAgIGlmICh0aGlzLl9sb2FkZWQpIHtcbiAgICAgIHJldHVybiBzdXBlci5hZGRDaGlsZChjb21wb25lbnQpO1xuICAgIH1cblxuICAgIGNvbnN0IHNpbmdsZXRvbktleSA9IChjb21wb25lbnQuY29uc3RydWN0b3IgYXMgUGFydGlhbDxDb21wb25lbnRDbGFzc1dpdGhLZXk+KS5DT01QT05FTlRfS0VZO1xuXG4gICAgaWYgKHNpbmdsZXRvbktleSkge1xuICAgICAgY29uc3Qgb2xkQ29tcG9uZW50ID0gdGhpcy5zaW5nbGV0b25Db21wb25lbnRzLmdldChzaW5nbGV0b25LZXkpO1xuICAgICAgaWYgKG9sZENvbXBvbmVudCkge1xuICAgICAgICB0aGlzLnJlbW92ZUNoaWxkKG9sZENvbXBvbmVudCk7XG4gICAgICB9XG4gICAgICB0aGlzLnNpbmdsZXRvbkNvbXBvbmVudHMuc2V0KHNpbmdsZXRvbktleSwgY29tcG9uZW50KTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3VwZXIuYWRkQ2hpbGQoY29tcG9uZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkcyB0aGUgcGx1Z2luIGFuZCBpdHMgY29tcG9uZW50cy5cbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbWlzdXNlZC1wcm9taXNlcywgb2JzaWRpYW4tZGV2LXV0aWxzL3JlcXVpcmUtc3VwZXItY2FsbCAtLSBPYnNpZGlhbidzIGxvYWQoKSBoYW5kbGVzIGFzeW5jIHJldHVybnMgYXQgcnVudGltZS4gSW50ZW50aW9uYWxseSByZXBsYWNlcyBDb21wb25lbnQubG9hZCgpIHdpdGggY2hpbGRyZW4tZmlyc3QgYXN5bmMgbG9hZGluZy5cbiAgcHVibGljIG92ZXJyaWRlIGFzeW5jIGxvYWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgbG9hZENoaWxkcmVuRmlyc3RBc3luYyh0aGlzKTtcbiAgICB0aGlzLmFwcC53b3Jrc3BhY2Uub25MYXlvdXRSZWFkeSgoKSA9PiB7XG4gICAgICBpbnZva2VBc3luY1NhZmVseUFmdGVyRGVsYXkoXG4gICAgICAgIGFzeW5jICgpID0+IHtcbiAgICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHRoaXMuX2NoaWxkcmVuKSB7XG4gICAgICAgICAgICBhd2FpdCAoYnlwYXNzU3RyaWN0UHJveHkoY2hpbGQpIGFzIFBhcnRpYWw8TGF5b3V0UmVhZHlDb21wb25lbnQ+KS5vbkxheW91dFJlYWR5Py4oKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIDAsXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgdGhpcy5hYm9ydFNpZ25hbENvbXBvbmVudC5hYm9ydFNpZ25hbFxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgZXh0ZXJuYWwgc2V0dGluZ3MgY2hhbmdlLlxuICAgKlxuICAgKiBPdmVycmlkZSBpbiBzdWJjbGFzcyBpZiBuZWVkZWQuIE1ha2Ugc3VyZSB0byBjYWxsIGBhd2FpdCBzdXBlci5vbkV4dGVybmFsU2V0dGluZ3NDaGFuZ2UoKWAgZmlyc3QuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgYXN5bmMgb25FeHRlcm5hbFNldHRpbmdzQ2hhbmdlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHN1cGVyLm9uRXh0ZXJuYWxTZXR0aW5nc0NoYW5nZT8uKCk7XG4gICAgYXdhaXQgdGhpcy5zZXR0aW5nc0NvbXBvbmVudC5vbkV4dGVybmFsU2V0dGluZ3NDaGFuZ2UoKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlbG9hZHMgdGhlIHNwZWNpZmllZCBwbHVnaW4gYnkgZGlzYWJsaW5nIGFuZCB0aGVuIHJlLWVuYWJsaW5nIGl0LlxuICpcbiAqIEBwYXJhbSBwbHVnaW4gLSBUaGUgcGx1Z2luIHRvIHJlbG9hZC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgcGx1Z2luIGlzIHJlbG9hZGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVsb2FkUGx1Z2luKHBsdWdpbjogT2JzaWRpYW5QbHVnaW4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgcGx1Z2lucyA9IHBsdWdpbi5hcHAucGx1Z2lucztcbiAgY29uc3QgcGx1Z2luSWQgPSBwbHVnaW4ubWFuaWZlc3QuaWQ7XG4gIGF3YWl0IHBsdWdpbnMuZGlzYWJsZVBsdWdpbihwbHVnaW5JZCk7XG4gIGF3YWl0IHBsdWdpbnMuZW5hYmxlUGx1Z2luKHBsdWdpbklkKTtcbn1cblxuLyoqXG4gKiBEaXNwbGF5cyBhbiBlcnJvciBtZXNzYWdlIGFzIGEgbm90aWNlLCBsb2dzIGl0IHRvIHRoZSBjb25zb2xlLCBhbmQgZGlzYWJsZXMgdGhlIHNwZWNpZmllZCBwbHVnaW4uXG4gKlxuICogQHBhcmFtIHBsdWdpbiAtIFRoZSBwbHVnaW4gdG8gZGlzYWJsZS5cbiAqIEBwYXJhbSBtZXNzYWdlIC0gVGhlIGVycm9yIG1lc3NhZ2UgdG8gZGlzcGxheSBhbmQgbG9nLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBwbHVnaW4gaXMgZGlzYWJsZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzaG93RXJyb3JBbmREaXNhYmxlUGx1Z2luKHBsdWdpbjogT2JzaWRpYW5QbHVnaW4sIG1lc3NhZ2U6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBuZXcgTm90aWNlKG1lc3NhZ2UpO1xuICBwcmludEVycm9yKG5ldyBFcnJvcihtZXNzYWdlKSk7XG4gIGF3YWl0IHBsdWdpbi5hcHAucGx1Z2lucy5kaXNhYmxlUGx1Z2luKHBsdWdpbi5tYW5pZmVzdC5pZCk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZ0JBLHNCQUlPO0FBS1AsbUJBQTRDO0FBQzVDLG1CQUEyQjtBQUMzQiwwQkFBa0M7QUFDbEMsNkJBQXVDO0FBQ3ZDLG9DQUFxQztBQUNyQywyQ0FBMkM7QUFDM0MscUNBQXNDO0FBQ3RDLDRCQUE4QjtBQUM5QixzQ0FBdUM7QUFDdkMscUNBQXNDO0FBQ3RDLHVDQUE2QztBQVl0QyxNQUFlLG1CQUFtQixnQkFBQUEsT0FBZTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSW5DO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtBO0FBQUEsRUFFRixzQkFBc0Isb0JBQUksSUFBdUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVEzRCxZQUFZLEtBQVUsVUFBMEI7QUFDckQsVUFBTSxLQUFLLFFBQVE7QUFFbkIsU0FBSyxTQUFTLElBQUksdURBQXVCLEVBQUUsS0FBSyxVQUFVLFNBQVMsR0FBRyxDQUFDLENBQUM7QUFDeEUsU0FBSyxTQUFTLElBQUksb0NBQWMsQ0FBQztBQUNqQyxTQUFLLGtCQUFrQixLQUFLLFNBQVMsSUFBSSxxREFBc0IsU0FBUyxJQUFJLENBQUM7QUFDN0UsU0FBSyxTQUFTLElBQUksZ0VBQTJCLEtBQUssZUFBZSxDQUFDO0FBQ2xFLFNBQUssdUJBQXVCLEtBQUssU0FBUyxJQUFJLG1EQUFxQixTQUFTLEVBQUUsQ0FBQztBQUMvRSxTQUFLLHdCQUF3QixLQUFLLFNBQVMsSUFBSSxxREFBc0IsU0FBUyxFQUFFLENBQUM7QUFDakYsU0FBSyxvQkFBb0IsS0FBSyxTQUFTLElBQUksOERBQTZCLENBQUM7QUFBQSxFQUMzRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQWFnQixTQUE4QixXQUFpQjtBQUM3RCxRQUFJLEtBQUssU0FBUztBQUNoQixhQUFPLE1BQU0sU0FBUyxTQUFTO0FBQUEsSUFDakM7QUFFQSxVQUFNLGVBQWdCLFVBQVUsWUFBK0M7QUFFL0UsUUFBSSxjQUFjO0FBQ2hCLFlBQU0sZUFBZSxLQUFLLG9CQUFvQixJQUFJLFlBQVk7QUFDOUQsVUFBSSxjQUFjO0FBQ2hCLGFBQUssWUFBWSxZQUFZO0FBQUEsTUFDL0I7QUFDQSxXQUFLLG9CQUFvQixJQUFJLGNBQWMsU0FBUztBQUFBLElBQ3REO0FBRUEsV0FBTyxNQUFNLFNBQVMsU0FBUztBQUFBLEVBQ2pDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU1BLE1BQXNCLE9BQXNCO0FBQzFDLGNBQU0sK0NBQXVCLElBQUk7QUFDakMsU0FBSyxJQUFJLFVBQVUsY0FBYyxNQUFNO0FBQ3JDO0FBQUEsUUFDRSxZQUFZO0FBQ1YscUJBQVcsU0FBUyxLQUFLLFdBQVc7QUFDbEMsc0JBQU8sdUNBQWtCLEtBQUssRUFBb0MsZ0JBQWdCO0FBQUEsVUFDcEY7QUFBQSxRQUNGO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBLEtBQUsscUJBQXFCO0FBQUEsTUFDNUI7QUFBQSxJQUNGLENBQUM7QUFBQSxFQUNIO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT0EsTUFBc0IsMkJBQTBDO0FBQzlELFVBQU0sTUFBTSwyQkFBMkI7QUFDdkMsVUFBTSxLQUFLLGtCQUFrQix5QkFBeUI7QUFBQSxFQUN4RDtBQUNGO0FBUUEsZUFBc0IsYUFBYSxRQUF1QztBQUN4RSxRQUFNLFVBQVUsT0FBTyxJQUFJO0FBQzNCLFFBQU0sV0FBVyxPQUFPLFNBQVM7QUFDakMsUUFBTSxRQUFRLGNBQWMsUUFBUTtBQUNwQyxRQUFNLFFBQVEsYUFBYSxRQUFRO0FBQ3JDO0FBU0EsZUFBc0IsMEJBQTBCLFFBQXdCLFNBQWdDO0FBQ3RHLE1BQUksdUJBQU8sT0FBTztBQUNsQiwrQkFBVyxJQUFJLE1BQU0sT0FBTyxDQUFDO0FBQzdCLFFBQU0sT0FBTyxJQUFJLFFBQVEsY0FBYyxPQUFPLFNBQVMsRUFBRTtBQUMzRDsiLAogICJuYW1lcyI6IFsiT2JzaWRpYW5QbHVnaW4iXQp9Cg==
256
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3BsdWdpbi9wbHVnaW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBCYXNlIGNsYXNzIGZvciBPYnNpZGlhbiBwbHVnaW5zIHVzaW5nIGEgY29tcG9uZW50LWJhc2VkIGFyY2hpdGVjdHVyZS5cbiAqXG4gKiBQbHVnaW5CYXNlIHJlZ2lzdGVycyB1bml2ZXJzYWwgY29tcG9uZW50cyAoY29udGV4dCwgaTE4biwgZXJyb3IgaGFuZGxpbmcsIGFib3J0IHNpZ25hbCwgbGlmZWN5Y2xlIGV2ZW50cywgZGVidWcpLlxuICogU3ViY2xhc3NlcyBhZGQgdGhlaXIgb3duIGNvbXBvbmVudHMgdmlhIHtAbGluayBQbHVnaW5CYXNlLmFkZENoaWxkfSBpbiB0aGVpciBjb25zdHJ1Y3Rvci5cbiAqIEFueSB1bml2ZXJzYWwgY29tcG9uZW50IGNhbiBiZSByZXBsYWNlZCBieSBjYWxsaW5nIHtAbGluayBQbHVnaW5CYXNlLmFkZENoaWxkfSB3aXRoIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBzYW1lIGNsYXNzXG4gKiAoc2luZ2xldG9uIHJlcGxhY2VtZW50IGlzIGF1dG9tYXRpYyBmb3IgY29tcG9uZW50cyB3aG9zZSBjbGFzcyBkZWZpbmVzIGEgc3RhdGljIGBDT01QT05FTlRfS0VZYCkuXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBBcHAsXG4gIENvbnN0cnVjdG9yLFxuICBQbHVnaW5NYW5pZmVzdFxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgTm90aWNlLFxuICBQbHVnaW4gYXMgT2JzaWRpYW5QbHVnaW5cbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyBwcmludEVycm9yIH0gZnJvbSAnLi4vLi4vZXJyb3IudHMnO1xuaW1wb3J0IHsgZW5zdXJlTm9uTnVsbGFibGUgfSBmcm9tICcuLi8uLi90eXBlLWd1YXJkcy50cyc7XG5pbXBvcnQgeyBBYm9ydFNpZ25hbENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYWJvcnQtc2lnbmFsLWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBsb2FkQ2hpbGRyZW5GaXJzdEFzeW5jIH0gZnJvbSAnLi4vY29tcG9uZW50cy9hc3luYy1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgQXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2FzeW5jLWVycm9yLWhhbmRsZXItY29tcG9uZW50LnRzJztcbmltcG9ydCB7IENvbnNvbGVEZWJ1Z0NvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvY29uc29sZS1kZWJ1Zy1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgRGlzcG9zYWJsZUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvZGlzcG9zYWJsZS1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgSTE4bkNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvaTE4bi1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgUGx1Z2luQ29udGV4dENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvcGx1Z2luLWNvbnRleHQtY29tcG9uZW50LnRzJztcbmltcG9ydCB7IFBsdWdpbk5vdGljZUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvcGx1Z2luLW5vdGljZS1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgUGx1Z2luU2V0dGluZ3NDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9wbHVnaW4tc2V0dGluZ3MtY29tcG9uZW50LnRzJztcblxuaW50ZXJmYWNlIENvbXBvbmVudENsYXNzV2l0aEtleSB7XG4gIENPTVBPTkVOVF9LRVk6IHN5bWJvbDtcbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBjcmVhdGluZyBPYnNpZGlhbiBwbHVnaW5zIHdpdGggYSBjb21wb25lbnQtYmFzZWQgYXJjaGl0ZWN0dXJlLlxuICpcbiAqIFJlZ2lzdGVycyB1bml2ZXJzYWwgY29tcG9uZW50cyBhdXRvbWF0aWNhbGx5LiBTdWJjbGFzc2VzIGFkZCBvciByZXBsYWNlIGNvbXBvbmVudHNcbiAqIHZpYSB7QGxpbmsgUGx1Z2luQmFzZS5hZGRDaGlsZH0gaW4gdGhlaXIgY29uc3RydWN0b3IuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQbHVnaW5CYXNlIGV4dGVuZHMgT2JzaWRpYW5QbHVnaW4ge1xuICAvKipcbiAgICogVGhlIGFib3J0IHNpZ25hbCBjb21wb25lbnQuIEFib3J0ZWQgd2hlbiB0aGUgcGx1Z2luIGlzIHVubG9hZGVkLlxuICAgKlxuICAgKiBAcmV0dXJucyB0aGUgYWJvcnQgc2lnbmFsIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgYWJvcnRTaWduYWxDb21wb25lbnQoKTogQWJvcnRTaWduYWxDb21wb25lbnQge1xuICAgIHJldHVybiBlbnN1cmVOb25OdWxsYWJsZSh0aGlzLmdldFJlZ2lzdGVyZWRDb21wb25lbnQoQWJvcnRTaWduYWxDb21wb25lbnQpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgY29uc29sZSBkZWJ1ZyBjb21wb25lbnQuIFByb3ZpZGVzIG5hbWVzcGFjZWQgZGVidWcgbG9nZ2luZy5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGNvbnNvbGUgZGVidWcgY29tcG9uZW50LlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBjb25zb2xlRGVidWdDb21wb25lbnQoKTogQ29uc29sZURlYnVnQ29tcG9uZW50IHtcbiAgICByZXR1cm4gZW5zdXJlTm9uTnVsbGFibGUodGhpcy5nZXRSZWdpc3RlcmVkQ29tcG9uZW50KENvbnNvbGVEZWJ1Z0NvbXBvbmVudCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBub3RpY2UgY29tcG9uZW50LiBEaXNwbGF5cyBub3RpY2VzIHRvIHRoZSB1c2VyLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgbm90aWNlIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgbm90aWNlQ29tcG9uZW50KCk6IFBsdWdpbk5vdGljZUNvbXBvbmVudCB7XG4gICAgcmV0dXJuIGVuc3VyZU5vbk51bGxhYmxlKHRoaXMuZ2V0UmVnaXN0ZXJlZENvbXBvbmVudChQbHVnaW5Ob3RpY2VDb21wb25lbnQpKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgc2luZ2xldG9uQ29tcG9uZW50cyA9IG5ldyBNYXA8c3ltYm9sLCBDb21wb25lbnQ+KCk7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgUGx1Z2luQmFzZS5cbiAgICpcbiAgICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSBtYW5pZmVzdCAtIFRoZSBwbHVnaW4gbWFuaWZlc3QuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IoYXBwOiBBcHAsIG1hbmlmZXN0OiBQbHVnaW5NYW5pZmVzdCkge1xuICAgIHN1cGVyKGFwcCwgbWFuaWZlc3QpO1xuXG4gICAgdGhpcy5hZGRDaGlsZChuZXcgUGx1Z2luQ29udGV4dENvbXBvbmVudCh7IGFwcCwgcGx1Z2luSWQ6IG1hbmlmZXN0LmlkIH0pKTtcbiAgICB0aGlzLmFkZENoaWxkKG5ldyBJMThuQ29tcG9uZW50KCkpO1xuICAgIHRoaXMuYWRkQ2hpbGQobmV3IFBsdWdpbk5vdGljZUNvbXBvbmVudChtYW5pZmVzdC5uYW1lKSk7XG4gICAgdGhpcy5hZGRDaGlsZChuZXcgQXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQodGhpcy5ub3RpY2VDb21wb25lbnQpKTtcbiAgICB0aGlzLmFkZENoaWxkKG5ldyBBYm9ydFNpZ25hbENvbXBvbmVudChtYW5pZmVzdC5pZCkpO1xuICAgIHRoaXMuYWRkQ2hpbGQobmV3IENvbnNvbGVEZWJ1Z0NvbXBvbmVudChtYW5pZmVzdC5pZCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBjb21wb25lbnQgdG8gdGhlIHBsdWdpbi5cbiAgICpcbiAgICogSWYgdGhlIGNvbXBvbmVudCdzIGNsYXNzIGRlZmluZXMgYSBzdGF0aWMgYENPTVBPTkVOVF9LRVlgIHN5bWJvbCwgaXQgaXMgdHJlYXRlZCBhcyBhIHNpbmdsZXRvbiBcdTIwMTRcbiAgICogYWRkaW5nIGFub3RoZXIgY29tcG9uZW50IHdpdGggdGhlIHNhbWUga2V5IHJlcGxhY2VzIHRoZSBwcmV2aW91cyBvbmUuXG4gICAqIENvbXBvbmVudHMgd2l0aG91dCBhIGBDT01QT05FTlRfS0VZYCBhcmUgbXVsdGktaW5zdGFuY2UgYW5kIHNpbXBseSBhZGRlZC5cbiAgICpcbiAgICogQHR5cGVQYXJhbSBUIC0gVGhlIGNvbXBvbmVudCB0eXBlLlxuICAgKiBAcGFyYW0gY29tcG9uZW50IC0gVGhlIGNvbXBvbmVudCB0byBhZGQuXG4gICAqIEByZXR1cm5zIFRoZSBhZGRlZCBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgYWRkQ2hpbGQ8VCBleHRlbmRzIERpc3Bvc2FibGVDb21wb25lbnQ+KGNvbXBvbmVudDogVCk6IFQge1xuICAgIGlmICh0aGlzLl9sb2FkZWQpIHtcbiAgICAgIHJldHVybiBzdXBlci5hZGRDaGlsZChjb21wb25lbnQpO1xuICAgIH1cblxuICAgIGNvbnN0IHNpbmdsZXRvbktleSA9IChjb21wb25lbnQuY29uc3RydWN0b3IgYXMgUGFydGlhbDxDb21wb25lbnRDbGFzc1dpdGhLZXk+KS5DT01QT05FTlRfS0VZO1xuXG4gICAgaWYgKHNpbmdsZXRvbktleSkge1xuICAgICAgY29uc3Qgb2xkQ29tcG9uZW50ID0gdGhpcy5zaW5nbGV0b25Db21wb25lbnRzLmdldChzaW5nbGV0b25LZXkpO1xuICAgICAgaWYgKG9sZENvbXBvbmVudCkge1xuICAgICAgICB0aGlzLnJlbW92ZUNoaWxkKG9sZENvbXBvbmVudCk7XG4gICAgICB9XG4gICAgICB0aGlzLnNpbmdsZXRvbkNvbXBvbmVudHMuc2V0KHNpbmdsZXRvbktleSwgY29tcG9uZW50KTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3VwZXIuYWRkQ2hpbGQoY29tcG9uZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkcyB0aGUgcGx1Z2luIGFuZCBpdHMgY29tcG9uZW50cy5cbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbWlzdXNlZC1wcm9taXNlcywgb2JzaWRpYW4tZGV2LXV0aWxzL3JlcXVpcmUtc3VwZXItY2FsbCAtLSBPYnNpZGlhbidzIGxvYWQoKSBoYW5kbGVzIGFzeW5jIHJldHVybnMgYXQgcnVudGltZS4gSW50ZW50aW9uYWxseSByZXBsYWNlcyBDb21wb25lbnQubG9hZCgpIHdpdGggY2hpbGRyZW4tZmlyc3QgYXN5bmMgbG9hZGluZy5cbiAgcHVibGljIG92ZXJyaWRlIGFzeW5jIGxvYWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgbG9hZENoaWxkcmVuRmlyc3RBc3luYyh0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgZXh0ZXJuYWwgc2V0dGluZ3MgY2hhbmdlLlxuICAgKlxuICAgKiBPdmVycmlkZSBpbiBzdWJjbGFzcyBpZiBuZWVkZWQuIE1ha2Ugc3VyZSB0byBjYWxsIGBhd2FpdCBzdXBlci5vbkV4dGVybmFsU2V0dGluZ3NDaGFuZ2UoKWAgZmlyc3QuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgYXN5bmMgb25FeHRlcm5hbFNldHRpbmdzQ2hhbmdlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHN1cGVyLm9uRXh0ZXJuYWxTZXR0aW5nc0NoYW5nZT8uKCk7XG4gICAgYXdhaXQgdGhpcy5nZXRSZWdpc3RlcmVkQ29tcG9uZW50KFBsdWdpblNldHRpbmdzQ29tcG9uZW50QmFzZSk/Lm9uRXh0ZXJuYWxTZXR0aW5nc0NoYW5nZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRSZWdpc3RlcmVkQ29tcG9uZW50PFRDb21wb25lbnQ+KGNvbXBvbmVudENsYXNzV2l0aEtleTogQ29tcG9uZW50Q2xhc3NXaXRoS2V5ICYgQ29uc3RydWN0b3I8VENvbXBvbmVudD4pOiBudWxsIHwgVENvbXBvbmVudCB7XG4gICAgY29uc3Qga2V5ID0gY29tcG9uZW50Q2xhc3NXaXRoS2V5LkNPTVBPTkVOVF9LRVk7XG4gICAgY29uc3QgcmVnaXN0ZXJlZENvbXBvbmVudCA9IHRoaXMuc2luZ2xldG9uQ29tcG9uZW50cy5nZXQoa2V5KTtcbiAgICBpZiAoIXJlZ2lzdGVyZWRDb21wb25lbnQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmICghKHJlZ2lzdGVyZWRDb21wb25lbnQgaW5zdGFuY2VvZiBjb21wb25lbnRDbGFzc1dpdGhLZXkpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEluY29tcGF0aWJsZSAke1N0cmluZyhrZXkpfSBpcyByZWdpc3RlcmVkYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlZ2lzdGVyZWRDb21wb25lbnQ7XG4gIH1cbn1cblxuLyoqXG4gKiBSZWxvYWRzIHRoZSBzcGVjaWZpZWQgcGx1Z2luIGJ5IGRpc2FibGluZyBhbmQgdGhlbiByZS1lbmFibGluZyBpdC5cbiAqXG4gKiBAcGFyYW0gcGx1Z2luIC0gVGhlIHBsdWdpbiB0byByZWxvYWQuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHBsdWdpbiBpcyByZWxvYWRlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbG9hZFBsdWdpbihwbHVnaW46IE9ic2lkaWFuUGx1Z2luKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHBsdWdpbnMgPSBwbHVnaW4uYXBwLnBsdWdpbnM7XG4gIGNvbnN0IHBsdWdpbklkID0gcGx1Z2luLm1hbmlmZXN0LmlkO1xuICBhd2FpdCBwbHVnaW5zLmRpc2FibGVQbHVnaW4ocGx1Z2luSWQpO1xuICBhd2FpdCBwbHVnaW5zLmVuYWJsZVBsdWdpbihwbHVnaW5JZCk7XG59XG5cbi8qKlxuICogRGlzcGxheXMgYW4gZXJyb3IgbWVzc2FnZSBhcyBhIG5vdGljZSwgbG9ncyBpdCB0byB0aGUgY29uc29sZSwgYW5kIGRpc2FibGVzIHRoZSBzcGVjaWZpZWQgcGx1Z2luLlxuICpcbiAqIEBwYXJhbSBwbHVnaW4gLSBUaGUgcGx1Z2luIHRvIGRpc2FibGUuXG4gKiBAcGFyYW0gbWVzc2FnZSAtIFRoZSBlcnJvciBtZXNzYWdlIHRvIGRpc3BsYXkgYW5kIGxvZy5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgcGx1Z2luIGlzIGRpc2FibGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2hvd0Vycm9yQW5kRGlzYWJsZVBsdWdpbihwbHVnaW46IE9ic2lkaWFuUGx1Z2luLCBtZXNzYWdlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgbmV3IE5vdGljZShtZXNzYWdlKTtcbiAgcHJpbnRFcnJvcihuZXcgRXJyb3IobWVzc2FnZSkpO1xuICBhd2FpdCBwbHVnaW4uYXBwLnBsdWdpbnMuZGlzYWJsZVBsdWdpbihwbHVnaW4ubWFuaWZlc3QuaWQpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWlCQSxzQkFJTztBQUVQLG1CQUEyQjtBQUMzQix5QkFBa0M7QUFDbEMsb0NBQXFDO0FBQ3JDLDZCQUF1QztBQUN2QywyQ0FBMkM7QUFDM0MscUNBQXNDO0FBQ3RDLGtDQUFvQztBQUNwQyw0QkFBOEI7QUFDOUIsc0NBQXVDO0FBQ3ZDLHFDQUFzQztBQUN0Qyx1Q0FBNEM7QUFZckMsTUFBZSxtQkFBbUIsZ0JBQUFBLE9BQWU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNdEQsSUFBYyx1QkFBNkM7QUFDekQsZUFBTyxzQ0FBa0IsS0FBSyx1QkFBdUIsa0RBQW9CLENBQUM7QUFBQSxFQUM1RTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9BLElBQWMsd0JBQStDO0FBQzNELGVBQU8sc0NBQWtCLEtBQUssdUJBQXVCLG9EQUFxQixDQUFDO0FBQUEsRUFDN0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPQSxJQUFjLGtCQUF5QztBQUNyRCxlQUFPLHNDQUFrQixLQUFLLHVCQUF1QixvREFBcUIsQ0FBQztBQUFBLEVBQzdFO0FBQUEsRUFFaUIsc0JBQXNCLG9CQUFJLElBQXVCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRM0QsWUFBWSxLQUFVLFVBQTBCO0FBQ3JELFVBQU0sS0FBSyxRQUFRO0FBRW5CLFNBQUssU0FBUyxJQUFJLHVEQUF1QixFQUFFLEtBQUssVUFBVSxTQUFTLEdBQUcsQ0FBQyxDQUFDO0FBQ3hFLFNBQUssU0FBUyxJQUFJLG9DQUFjLENBQUM7QUFDakMsU0FBSyxTQUFTLElBQUkscURBQXNCLFNBQVMsSUFBSSxDQUFDO0FBQ3RELFNBQUssU0FBUyxJQUFJLGdFQUEyQixLQUFLLGVBQWUsQ0FBQztBQUNsRSxTQUFLLFNBQVMsSUFBSSxtREFBcUIsU0FBUyxFQUFFLENBQUM7QUFDbkQsU0FBSyxTQUFTLElBQUkscURBQXNCLFNBQVMsRUFBRSxDQUFDO0FBQUEsRUFDdEQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFhZ0IsU0FBd0MsV0FBaUI7QUFDdkUsUUFBSSxLQUFLLFNBQVM7QUFDaEIsYUFBTyxNQUFNLFNBQVMsU0FBUztBQUFBLElBQ2pDO0FBRUEsVUFBTSxlQUFnQixVQUFVLFlBQStDO0FBRS9FLFFBQUksY0FBYztBQUNoQixZQUFNLGVBQWUsS0FBSyxvQkFBb0IsSUFBSSxZQUFZO0FBQzlELFVBQUksY0FBYztBQUNoQixhQUFLLFlBQVksWUFBWTtBQUFBLE1BQy9CO0FBQ0EsV0FBSyxvQkFBb0IsSUFBSSxjQUFjLFNBQVM7QUFBQSxJQUN0RDtBQUVBLFdBQU8sTUFBTSxTQUFTLFNBQVM7QUFBQSxFQUNqQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNQSxNQUFzQixPQUFzQjtBQUMxQyxjQUFNLCtDQUF1QixJQUFJO0FBQUEsRUFDbkM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPQSxNQUFzQiwyQkFBMEM7QUFDOUQsVUFBTSxNQUFNLDJCQUEyQjtBQUN2QyxVQUFNLEtBQUssdUJBQXVCLDREQUEyQixHQUFHLHlCQUF5QjtBQUFBLEVBQzNGO0FBQUEsRUFFUSx1QkFBbUMsdUJBQTJGO0FBQ3BJLFVBQU0sTUFBTSxzQkFBc0I7QUFDbEMsVUFBTSxzQkFBc0IsS0FBSyxvQkFBb0IsSUFBSSxHQUFHO0FBQzVELFFBQUksQ0FBQyxxQkFBcUI7QUFDeEIsYUFBTztBQUFBLElBQ1Q7QUFFQSxRQUFJLEVBQUUsK0JBQStCLHdCQUF3QjtBQUMzRCxZQUFNLElBQUksTUFBTSxnQkFBZ0IsT0FBTyxHQUFHLENBQUMsZ0JBQWdCO0FBQUEsSUFDN0Q7QUFFQSxXQUFPO0FBQUEsRUFDVDtBQUNGO0FBUUEsZUFBc0IsYUFBYSxRQUF1QztBQUN4RSxRQUFNLFVBQVUsT0FBTyxJQUFJO0FBQzNCLFFBQU0sV0FBVyxPQUFPLFNBQVM7QUFDakMsUUFBTSxRQUFRLGNBQWMsUUFBUTtBQUNwQyxRQUFNLFFBQVEsYUFBYSxRQUFRO0FBQ3JDO0FBU0EsZUFBc0IsMEJBQTBCLFFBQXdCLFNBQWdDO0FBQ3RHLE1BQUksdUJBQU8sT0FBTztBQUNsQiwrQkFBVyxJQUFJLE1BQU0sT0FBTyxDQUFDO0FBQzdCLFFBQU0sT0FBTyxJQUFJLFFBQVEsY0FBYyxPQUFPLFNBQVMsRUFBRTtBQUMzRDsiLAogICJuYW1lcyI6IFsiT2JzaWRpYW5QbHVnaW4iXQp9Cg==
@@ -9,11 +9,11 @@
9
9
  * (singleton replacement is automatic for components whose class defines a static `COMPONENT_KEY`).
10
10
  */
11
11
  import type { App, PluginManifest } from 'obsidian';
12
- import { Component, Plugin as ObsidianPlugin } from 'obsidian';
13
- import type { PluginSettingsComponentBase } from './components/plugin-settings-component.cjs';
14
- import { AbortSignalComponent } from './components/abort-signal-component.cjs';
15
- import { ConsoleDebugComponent } from './components/console-debug-component.cjs';
16
- import { PluginNoticeComponent } from './components/plugin-notice-component.cjs';
12
+ import { Plugin as ObsidianPlugin } from 'obsidian';
13
+ import { AbortSignalComponent } from '../components/abort-signal-component.cjs';
14
+ import { ConsoleDebugComponent } from '../components/console-debug-component.cjs';
15
+ import { DisposableComponent } from '../components/disposable-component.cjs';
16
+ import { PluginNoticeComponent } from '../components/plugin-notice-component.cjs';
17
17
  /**
18
18
  * Base class for creating Obsidian plugins with a component-based architecture.
19
19
  *
@@ -23,20 +23,22 @@ import { PluginNoticeComponent } from './components/plugin-notice-component.cjs'
23
23
  export declare abstract class PluginBase extends ObsidianPlugin {
24
24
  /**
25
25
  * The abort signal component. Aborted when the plugin is unloaded.
26
+ *
27
+ * @returns the abort signal component.
26
28
  */
27
- protected readonly abortSignalComponent: AbortSignalComponent;
29
+ protected get abortSignalComponent(): AbortSignalComponent;
28
30
  /**
29
31
  * The console debug component. Provides namespaced debug logging.
32
+ *
33
+ * @returns The console debug component.
30
34
  */
31
- protected readonly consoleDebugComponent: ConsoleDebugComponent;
35
+ protected get consoleDebugComponent(): ConsoleDebugComponent;
32
36
  /**
33
37
  * The notice component. Displays notices to the user.
38
+ *
39
+ * @returns The notice component.
34
40
  */
35
- protected readonly noticeComponent: PluginNoticeComponent;
36
- /**
37
- * The settings component. Manages plugin settings lifecycle.
38
- */
39
- protected readonly settingsComponent: PluginSettingsComponentBase<object>;
41
+ protected get noticeComponent(): PluginNoticeComponent;
40
42
  private readonly singletonComponents;
41
43
  /**
42
44
  * Creates a new PluginBase.
@@ -56,7 +58,7 @@ export declare abstract class PluginBase extends ObsidianPlugin {
56
58
  * @param component - The component to add.
57
59
  * @returns The added component.
58
60
  */
59
- addChild<T extends Component>(component: T): T;
61
+ addChild<T extends DisposableComponent>(component: T): T;
60
62
  /**
61
63
  * Loads the plugin and its components.
62
64
  */
@@ -67,6 +69,7 @@ export declare abstract class PluginBase extends ObsidianPlugin {
67
69
  * Override in subclass if needed. Make sure to call `await super.onExternalSettingsChange()` first.
68
70
  */
69
71
  onExternalSettingsChange(): Promise<void>;
72
+ private getRegisteredComponent;
70
73
  }
71
74
  /**
72
75
  * Reloads the specified plugin by disabling and then re-enabling it.
@@ -202,4 +202,4 @@ async function processNextQueueItem(app) {
202
202
  addToQueueAndWait,
203
203
  flushQueue
204
204
  });
205
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3F1ZXVlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQ29udGFpbnMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIGVucXVldWluZyBhbmQgcHJvY2Vzc2luZyBmdW5jdGlvbnMgaW4gT2JzaWRpYW4uXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgdHlwZSB7IFZhbHVlV3JhcHBlciB9IGZyb20gJy4vYXBwLnRzJztcblxuaW1wb3J0IHtcbiAgYWJvcnRTaWduYWxBbnksXG4gIGFib3J0U2lnbmFsTmV2ZXJcbn0gZnJvbSAnLi4vYWJvcnQtY29udHJvbGxlci50cyc7XG5pbXBvcnQge1xuICBhZGRFcnJvckhhbmRsZXIsXG4gIGludm9rZUFzeW5jU2FmZWx5XG59IGZyb20gJy4uL2FzeW5jLnRzJztcbmltcG9ydCB7IGdldFN0YWNrVHJhY2UgfSBmcm9tICcuLi9lcnJvci50cyc7XG5pbXBvcnQgeyBub29wIH0gZnJvbSAnLi4vZnVuY3Rpb24udHMnO1xuaW1wb3J0IHsgZ2V0T2JzaWRpYW5EZXZVdGlsc1N0YXRlIH0gZnJvbSAnLi9hcHAudHMnO1xuaW1wb3J0IHsgcnVuV2l0aFRpbWVvdXROb3RpY2UgfSBmcm9tICcuL2FzeW5jLXdpdGgtbm90aWNlLnRzJztcbmltcG9ydCB7IHQgfSBmcm9tICcuL2kxOG4vaTE4bi50cyc7XG5pbXBvcnQgeyBpbnZva2VBc3luY0FuZExvZyB9IGZyb20gJy4vbG9nZ2VyLnRzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUge0BsaW5rIGFkZFRvUXVldWVBbmRXYWl0fSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBZGRUb1F1ZXVlQW5kV2FpdFBhcmFtcyB7XG4gIC8qKlxuICAgKiBPcHRpb25hbCBhYm9ydCBzaWduYWwuXG4gICAqL1xuICByZWFkb25seSBhYm9ydFNpZ25hbD86IEFib3J0U2lnbmFsO1xuXG4gIC8qKlxuICAgKiBUaGUgT2JzaWRpYW4gYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBhcHA6IEFwcDtcblxuICAvKipcbiAgICogVGhlIGZ1bmN0aW9uIHRvIGFkZC5cbiAgICovXG4gIHJlYWRvbmx5IG9wZXJhdGlvbkZuOiAoYWJvcnRTaWduYWw6IEFib3J0U2lnbmFsKSA9PiBQcm9taXNhYmxlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBuYW1lIG9mIHRoZSBvcGVyYXRpb24uXG4gICAqL1xuICByZWFkb25seSBvcGVyYXRpb25OYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHNob3cgYSB0aW1lb3V0IG5vdGljZS4gRGVmYXVsdCBpcyBgdHJ1ZWAuXG4gICAqL1xuICByZWFkb25seSBzaG91bGRTaG93VGltZW91dE5vdGljZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIHN0YWNrIHRyYWNlLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tUcmFjZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzLlxuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dEluTWlsbGlzZWNvbmRzPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHRoZSB7QGxpbmsgYWRkVG9RdWV1ZX0gZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWRkVG9RdWV1ZVBhcmFtcyB7XG4gIC8qKlxuICAgKiBPcHRpb25hbCBhYm9ydCBzaWduYWwuXG4gICAqL1xuICByZWFkb25seSBhYm9ydFNpZ25hbD86IEFib3J0U2lnbmFsO1xuXG4gIC8qKlxuICAgKiBUaGUgT2JzaWRpYW4gYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBhcHA6IEFwcDtcblxuICAvKipcbiAgICogVGhlIGZ1bmN0aW9uIHRvIGFkZC5cbiAgICovXG4gIHJlYWRvbmx5IG9wZXJhdGlvbkZuOiAoYWJvcnRTaWduYWw6IEFib3J0U2lnbmFsKSA9PiBQcm9taXNhYmxlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBuYW1lIG9mIHRoZSBvcGVyYXRpb24uXG4gICAqL1xuICByZWFkb25seSBvcGVyYXRpb25OYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHNob3cgYSB0aW1lb3V0IG5vdGljZS4gRGVmYXVsdCBpcyBgdHJ1ZWAuXG4gICAqL1xuICByZWFkb25seSBzaG91bGRTaG93VGltZW91dE5vdGljZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIHN0YWNrIHRyYWNlLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tUcmFjZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzLlxuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dEluTWlsbGlzZWNvbmRzPzogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgUXVldWUge1xuICBpdGVtczogUXVldWVJdGVtW107XG4gIHByb21pc2U6IFByb21pc2U8dm9pZD47XG59XG5cbmludGVyZmFjZSBRdWV1ZUl0ZW0ge1xuICBhYm9ydFNpZ25hbDogQWJvcnRTaWduYWw7XG4gIG9wZXJhdGlvbkZuKHRoaXM6IHZvaWQsIGFib3J0U2lnbmFsOiBBYm9ydFNpZ25hbCk6IFByb21pc2FibGU8dm9pZD47XG4gIG9wZXJhdGlvbk5hbWU6IHN0cmluZztcbiAgc2hvdWxkU2hvd1RpbWVvdXROb3RpY2U6IGJvb2xlYW47XG4gIHN0YWNrVHJhY2U6IHN0cmluZztcbiAgdGltZW91dEluTWlsbGlzZWNvbmRzOiBudW1iZXI7XG59XG5cbi8qKlxuICogQWRkcyBhbiBhc3luY2hyb25vdXMgZnVuY3Rpb24gdG8gYmUgZXhlY3V0ZWQgYWZ0ZXIgdGhlIHByZXZpb3VzIGZ1bmN0aW9uIGNvbXBsZXRlcy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZFRvUXVldWUocGFyYW1zOiBBZGRUb1F1ZXVlUGFyYW1zKTogdm9pZCB7XG4gIGNvbnN0IHN0YWNrVHJhY2UgPSBwYXJhbXMuc3RhY2tUcmFjZSA/PyBnZXRTdGFja1RyYWNlKDEpO1xuICBpbnZva2VBc3luY1NhZmVseSgoKSA9PiBhZGRUb1F1ZXVlQW5kV2FpdChwYXJhbXMpLCBzdGFja1RyYWNlKTtcbn1cblxuLyoqXG4gKiBBZGRzIGFuIGFzeW5jaHJvbm91cyBmdW5jdGlvbiB0byBiZSBleGVjdXRlZCBhZnRlciB0aGUgcHJldmlvdXMgZnVuY3Rpb24gY29tcGxldGVzIGFuZCByZXR1cm5zIGEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZnVuY3Rpb24gY29tcGxldGVzLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYWRkVG9RdWV1ZUFuZFdhaXQocGFyYW1zOiBBZGRUb1F1ZXVlQW5kV2FpdFBhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBhYm9ydFNpZ25hbCA9IHBhcmFtcy5hYm9ydFNpZ25hbCA/PyBhYm9ydFNpZ25hbE5ldmVyKCk7XG4gIGFib3J0U2lnbmFsLnRocm93SWZBYm9ydGVkKCk7XG5cbiAgY29uc3QgREVGQVVMVF9USU1FT1VUX0lOX01JTExJU0VDT05EUyA9IDYwMDAwO1xuICBjb25zdCB0aW1lb3V0SW5NaWxsaXNlY29uZHMgPSBwYXJhbXMudGltZW91dEluTWlsbGlzZWNvbmRzID8/IERFRkFVTFRfVElNRU9VVF9JTl9NSUxMSVNFQ09ORFM7XG4gIGNvbnN0IHN0YWNrVHJhY2UgPSBwYXJhbXMuc3RhY2tUcmFjZSA/PyBnZXRTdGFja1RyYWNlKDEpO1xuICBjb25zdCBvcGVyYXRpb25OYW1lID0gcGFyYW1zLm9wZXJhdGlvbk5hbWUgPz8gJyc7XG4gIGNvbnN0IHF1ZXVlID0gZ2V0UXVldWUocGFyYW1zLmFwcCkudmFsdWU7XG4gIHF1ZXVlLml0ZW1zLnB1c2goe1xuICAgIGFib3J0U2lnbmFsLFxuICAgIG9wZXJhdGlvbkZuOiBwYXJhbXMub3BlcmF0aW9uRm4sXG4gICAgb3BlcmF0aW9uTmFtZSxcbiAgICBzaG91bGRTaG93VGltZW91dE5vdGljZTogcGFyYW1zLnNob3VsZFNob3dUaW1lb3V0Tm90aWNlID8/IHRydWUsXG4gICAgc3RhY2tUcmFjZSxcbiAgICB0aW1lb3V0SW5NaWxsaXNlY29uZHNcbiAgfSk7XG4gIHF1ZXVlLnByb21pc2UgPSBxdWV1ZS5wcm9taXNlLnRoZW4oKCkgPT4gcHJvY2Vzc05leHRRdWV1ZUl0ZW0ocGFyYW1zLmFwcCkpO1xuICBhd2FpdCBxdWV1ZS5wcm9taXNlO1xufVxuXG4vKipcbiAqIEZsdXNoZXMgdGhlIHF1ZXVlO1xuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmbHVzaFF1ZXVlKGFwcDogQXBwKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGFkZFRvUXVldWVBbmRXYWl0KHtcbiAgICBhcHAsXG4gICAgb3BlcmF0aW9uRm46IG5vb3AsXG4gICAgb3BlcmF0aW9uTmFtZTogdCgoJCkgPT4gJC5vYnNpZGlhbkRldlV0aWxzLnF1ZXVlLmZsdXNoUXVldWUpXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBnZXRRdWV1ZShhcHA6IEFwcCk6IFZhbHVlV3JhcHBlcjxRdWV1ZT4ge1xuICByZXR1cm4gZ2V0T2JzaWRpYW5EZXZVdGlsc1N0YXRlKGFwcCwgJ3F1ZXVlJywgeyBpdGVtczogW10sIHByb21pc2U6IFByb21pc2UucmVzb2x2ZSgpIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBwcm9jZXNzTmV4dFF1ZXVlSXRlbShhcHA6IEFwcCk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBxdWV1ZSA9IGdldFF1ZXVlKGFwcCkudmFsdWU7XG4gIGNvbnN0IGl0ZW0gPSBxdWV1ZS5pdGVtc1swXTtcbiAgLyogdjggaWdub3JlIHN0YXJ0IC0tIERlZmVuc2l2ZSBjaGVjazsgcHJvY2Vzc05leHRRdWV1ZUl0ZW0gaXMgb25seSBjYWxsZWQgYWZ0ZXIgYW4gaXRlbSBpcyBwdXNoZWQuICovXG4gIGlmICghaXRlbSkge1xuICAgIHJldHVybjtcbiAgfVxuICAvKiB2OCBpZ25vcmUgc3RvcCAqL1xuXG4gIGF3YWl0IGFkZEVycm9ySGFuZGxlcigoKSA9PlxuICAgIHJ1bldpdGhUaW1lb3V0Tm90aWNlKHtcbiAgICAgIGNvbnRleHQ6IHsgcXVldWVkRm46IGl0ZW0ub3BlcmF0aW9uRm4gfSxcbiAgICAgIGFzeW5jIG9wZXJhdGlvbkZuKGFib3J0U2lnbmFsOiBBYm9ydFNpZ25hbCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCBpbnZva2VBc3luY0FuZExvZyhcbiAgICAgICAgICBpdGVtLm9wZXJhdGlvbk5hbWUgfHwgcHJvY2Vzc05leHRRdWV1ZUl0ZW0ubmFtZSxcbiAgICAgICAgICBpdGVtLm9wZXJhdGlvbkZuLFxuICAgICAgICAgIGFib3J0U2lnbmFsQW55KGFib3J0U2lnbmFsLCBpdGVtLmFib3J0U2lnbmFsKSxcbiAgICAgICAgICBpdGVtLnN0YWNrVHJhY2VcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgICBvcGVyYXRpb25OYW1lOiBpdGVtLm9wZXJhdGlvbk5hbWUsXG4gICAgICBzaG91bGRTaG93VGltZW91dE5vdGljZTogaXRlbS5zaG91bGRTaG93VGltZW91dE5vdGljZSxcbiAgICAgIHN0YWNrVHJhY2U6IGl0ZW0uc3RhY2tUcmFjZSxcbiAgICAgIHRpbWVvdXRJbk1pbGxpc2Vjb25kczogaXRlbS50aW1lb3V0SW5NaWxsaXNlY29uZHNcbiAgICB9KVxu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
205
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3F1ZXVlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQ29udGFpbnMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIGVucXVldWluZyBhbmQgcHJvY2Vzc2luZyBmdW5jdGlvbnMgaW4gT2JzaWRpYW4uXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgdHlwZSB7IFZhbHVlV3JhcHBlciB9IGZyb20gJy4vYXBwLnRzJztcblxuaW1wb3J0IHtcbiAgYWJvcnRTaWduYWxBbnksXG4gIGFib3J0U2lnbmFsTmV2ZXJcbn0gZnJvbSAnLi4vYWJvcnQtY29udHJvbGxlci50cyc7XG5pbXBvcnQge1xuICBhZGRFcnJvckhhbmRsZXIsXG4gIGludm9rZUFzeW5jU2FmZWx5XG59IGZyb20gJy4uL2FzeW5jLnRzJztcbmltcG9ydCB7IGdldFN0YWNrVHJhY2UgfSBmcm9tICcuLi9lcnJvci50cyc7XG5pbXBvcnQgeyBub29wIH0gZnJvbSAnLi4vZnVuY3Rpb24udHMnO1xuaW1wb3J0IHsgZ2V0T2JzaWRpYW5EZXZVdGlsc1N0YXRlIH0gZnJvbSAnLi9hcHAudHMnO1xuaW1wb3J0IHsgcnVuV2l0aFRpbWVvdXROb3RpY2UgfSBmcm9tICcuL2FzeW5jLXdpdGgtbm90aWNlLnRzJztcbmltcG9ydCB7IHQgfSBmcm9tICcuL2kxOG4vaTE4bi50cyc7XG5pbXBvcnQgeyBpbnZva2VBc3luY0FuZExvZyB9IGZyb20gJy4vbG9nZ2VyLnRzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUge0BsaW5rIGFkZFRvUXVldWVBbmRXYWl0fSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBZGRUb1F1ZXVlQW5kV2FpdFBhcmFtcyB7XG4gIC8qKlxuICAgKiBPcHRpb25hbCBhYm9ydCBzaWduYWwuXG4gICAqL1xuICByZWFkb25seSBhYm9ydFNpZ25hbD86IEFib3J0U2lnbmFsO1xuXG4gIC8qKlxuICAgKiBUaGUgT2JzaWRpYW4gYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBhcHA6IEFwcDtcblxuICAvKipcbiAgICogVGhlIGZ1bmN0aW9uIHRvIGFkZC5cbiAgICovXG4gIG9wZXJhdGlvbkZuKHRoaXM6IHZvaWQsIGFib3J0U2lnbmFsOiBBYm9ydFNpZ25hbCk6IFByb21pc2FibGU8dm9pZD47XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIG5hbWUgb2YgdGhlIG9wZXJhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IG9wZXJhdGlvbk5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gc2hvdyBhIHRpbWVvdXQgbm90aWNlLiBEZWZhdWx0IGlzIGB0cnVlYC5cbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZFNob3dUaW1lb3V0Tm90aWNlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogT3B0aW9uYWwgc3RhY2sgdHJhY2UuXG4gICAqL1xuICByZWFkb25seSBzdGFja1RyYWNlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZW91dCBpbiBtaWxsaXNlY29uZHMuXG4gICAqL1xuICByZWFkb25seSB0aW1lb3V0SW5NaWxsaXNlY29uZHM/OiBudW1iZXI7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIHtAbGluayBhZGRUb1F1ZXVlfSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBZGRUb1F1ZXVlUGFyYW1zIHtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIGFib3J0IHNpZ25hbC5cbiAgICovXG4gIHJlYWRvbmx5IGFib3J0U2lnbmFsPzogQWJvcnRTaWduYWw7XG5cbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiBhcHBsaWNhdGlvbiBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBUaGUgZnVuY3Rpb24gdG8gYWRkLlxuICAgKi9cbiAgb3BlcmF0aW9uRm4odGhpczogdm9pZCwgYWJvcnRTaWduYWw6IEFib3J0U2lnbmFsKTogUHJvbWlzYWJsZTx2b2lkPjtcblxuICAvKipcbiAgICogT3B0aW9uYWwgbmFtZSBvZiB0aGUgb3BlcmF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgb3BlcmF0aW9uTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0byBzaG93IGEgdGltZW91dCBub3RpY2UuIERlZmF1bHQgaXMgYHRydWVgLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkU2hvd1RpbWVvdXROb3RpY2U/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBzdGFjayB0cmFjZS5cbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrVHJhY2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcy5cbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXRJbk1pbGxpc2Vjb25kcz86IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIFF1ZXVlIHtcbiAgaXRlbXM6IFF1ZXVlSXRlbVtdO1xuICBwcm9taXNlOiBQcm9taXNlPHZvaWQ+O1xufVxuXG5pbnRlcmZhY2UgUXVldWVJdGVtIHtcbiAgYWJvcnRTaWduYWw6IEFib3J0U2lnbmFsO1xuICBvcGVyYXRpb25Gbih0aGlzOiB2b2lkLCBhYm9ydFNpZ25hbDogQWJvcnRTaWduYWwpOiBQcm9taXNhYmxlPHZvaWQ+O1xuICBvcGVyYXRpb25OYW1lOiBzdHJpbmc7XG4gIHNob3VsZFNob3dUaW1lb3V0Tm90aWNlOiBib29sZWFuO1xuICBzdGFja1RyYWNlOiBzdHJpbmc7XG4gIHRpbWVvdXRJbk1pbGxpc2Vjb25kczogbnVtYmVyO1xufVxuXG4vKipcbiAqIEFkZHMgYW4gYXN5bmNocm9ub3VzIGZ1bmN0aW9uIHRvIGJlIGV4ZWN1dGVkIGFmdGVyIHRoZSBwcmV2aW91cyBmdW5jdGlvbiBjb21wbGV0ZXMuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRUb1F1ZXVlKHBhcmFtczogQWRkVG9RdWV1ZVBhcmFtcyk6IHZvaWQge1xuICBjb25zdCBzdGFja1RyYWNlID0gcGFyYW1zLnN0YWNrVHJhY2UgPz8gZ2V0U3RhY2tUcmFjZSgxKTtcbiAgaW52b2tlQXN5bmNTYWZlbHkoKCkgPT4gYWRkVG9RdWV1ZUFuZFdhaXQocGFyYW1zKSwgc3RhY2tUcmFjZSk7XG59XG5cbi8qKlxuICogQWRkcyBhbiBhc3luY2hyb25vdXMgZnVuY3Rpb24gdG8gYmUgZXhlY3V0ZWQgYWZ0ZXIgdGhlIHByZXZpb3VzIGZ1bmN0aW9uIGNvbXBsZXRlcyBhbmQgcmV0dXJucyBhIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGZ1bmN0aW9uIGNvbXBsZXRlcy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFkZFRvUXVldWVBbmRXYWl0KHBhcmFtczogQWRkVG9RdWV1ZUFuZFdhaXRQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgYWJvcnRTaWduYWwgPSBwYXJhbXMuYWJvcnRTaWduYWwgPz8gYWJvcnRTaWduYWxOZXZlcigpO1xuICBhYm9ydFNpZ25hbC50aHJvd0lmQWJvcnRlZCgpO1xuXG4gIGNvbnN0IERFRkFVTFRfVElNRU9VVF9JTl9NSUxMSVNFQ09ORFMgPSA2MDAwMDtcbiAgY29uc3QgdGltZW91dEluTWlsbGlzZWNvbmRzID0gcGFyYW1zLnRpbWVvdXRJbk1pbGxpc2Vjb25kcyA/PyBERUZBVUxUX1RJTUVPVVRfSU5fTUlMTElTRUNPTkRTO1xuICBjb25zdCBzdGFja1RyYWNlID0gcGFyYW1zLnN0YWNrVHJhY2UgPz8gZ2V0U3RhY2tUcmFjZSgxKTtcbiAgY29uc3Qgb3BlcmF0aW9uTmFtZSA9IHBhcmFtcy5vcGVyYXRpb25OYW1lID8/ICcnO1xuICBjb25zdCBxdWV1ZSA9IGdldFF1ZXVlKHBhcmFtcy5hcHApLnZhbHVlO1xuICBxdWV1ZS5pdGVtcy5wdXNoKHtcbiAgICBhYm9ydFNpZ25hbCxcbiAgICBvcGVyYXRpb25GbjogcGFyYW1zLm9wZXJhdGlvbkZuLFxuICAgIG9wZXJhdGlvbk5hbWUsXG4gICAgc2hvdWxkU2hvd1RpbWVvdXROb3RpY2U6IHBhcmFtcy5zaG91bGRTaG93VGltZW91dE5vdGljZSA/PyB0cnVlLFxuICAgIHN0YWNrVHJhY2UsXG4gICAgdGltZW91dEluTWlsbGlzZWNvbmRzXG4gIH0pO1xuICBxdWV1ZS5wcm9taXNlID0gcXVldWUucHJvbWlzZS50aGVuKCgpID0+IHByb2Nlc3NOZXh0UXVldWVJdGVtKHBhcmFtcy5hcHApKTtcbiAgYXdhaXQgcXVldWUucHJvbWlzZTtcbn1cblxuLyoqXG4gKiBGbHVzaGVzIHRoZSBxdWV1ZTtcbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmx1c2hRdWV1ZShhcHA6IEFwcCk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBhZGRUb1F1ZXVlQW5kV2FpdCh7XG4gICAgYXBwLFxuICAgIG9wZXJhdGlvbkZuOiBub29wLFxuICAgIG9wZXJhdGlvbk5hbWU6IHQoKCQpID0+ICQub2JzaWRpYW5EZXZVdGlscy5xdWV1ZS5mbHVzaFF1ZXVlKVxuICB9KTtcbn1cblxuZnVuY3Rpb24gZ2V0UXVldWUoYXBwOiBBcHApOiBWYWx1ZVdyYXBwZXI8UXVldWU+IHtcbiAgcmV0dXJuIGdldE9ic2lkaWFuRGV2VXRpbHNTdGF0ZShhcHAsICdxdWV1ZScsIHsgaXRlbXM6IFtdLCBwcm9taXNlOiBQcm9taXNlLnJlc29sdmUoKSB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcHJvY2Vzc05leHRRdWV1ZUl0ZW0oYXBwOiBBcHApOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgcXVldWUgPSBnZXRRdWV1ZShhcHApLnZhbHVlO1xuICBjb25zdCBpdGVtID0gcXVldWUuaXRlbXNbMF07XG4gIC8qIHY4IGlnbm9yZSBzdGFydCAtLSBEZWZlbnNpdmUgY2hlY2s7IHByb2Nlc3NOZXh0UXVldWVJdGVtIGlzIG9ubHkgY2FsbGVkIGFmdGVyIGFuIGl0ZW0gaXMgcHVzaGVkLiAqL1xuICBpZiAoIWl0ZW0pIHtcbiAgICByZXR1cm47XG4gIH1cbiAgLyogdjggaWdub3JlIHN0b3AgKi9cblxuICBhd2FpdCBhZGRFcnJvckhhbmRsZXIoKCkgPT5cbiAgICBydW5XaXRoVGltZW91dE5vdGljZSh7XG4gICAgICBjb250ZXh0OiB7IHF1ZXVlZEZuOiBpdGVtLm9wZXJhdGlvbkZuIH0sXG4gICAgICBhc3luYyBvcGVyYXRpb25GbihhYm9ydFNpZ25hbDogQWJvcnRTaWduYWwpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgaW52b2tlQXN5bmNBbmRMb2coXG4gICAgICAgICAgaXRlbS5vcGVyYXRpb25OYW1lIHx8IHByb2Nlc3NOZXh0UXVldWVJdGVtLm5hbWUsXG4gICAgICAgICAgaXRlbS5vcGVyYXRpb25GbixcbiAgICAgICAgICBhYm9ydFNpZ25hbEFueShhYm9ydFNpZ25hbCwgaXRlbS5hYm9ydFNpZ25hbCksXG4gICAgICAgICAgaXRlbS5zdGFja1RyYWNlXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgICAgb3BlcmF0aW9uTmFtZTogaXRlbS5vcGVyYXRpb25OYW1lLFxuICAgICAgc2hvdWxkU2hvd1RpbWVvdXROb3RpY2U6IGl0ZW0uc2hvdWxkU2hvd1RpbWVvdXROb3RpY2UsXG4gICAgICBzdGFja1RyYWNlOiBpdGVtLnN0YWNrVHJhY2UsXG4gICAgICB0aW1lb3V0SW5NaWxsaXNlY29uZHM6IGl0ZW0udGltZW91dEluTWlsbGlzZWNvbmRzXG4gICAgfSlcbiAg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
@@ -20,7 +20,7 @@ export interface AddToQueueAndWaitParams {
20
20
  /**
21
21
  * The function to add.
22
22
  */
23
- readonly operationFn: (abortSignal: AbortSignal) => Promisable<void>;
23
+ operationFn(this: void, abortSignal: AbortSignal): Promisable<void>;
24
24
  /**
25
25
  * Optional name of the operation.
26
26
  */
@@ -53,7 +53,7 @@ export interface AddToQueueParams {
53
53
  /**
54
54
  * The function to add.
55
55
  */
56
- readonly operationFn: (abortSignal: AbortSignal) => Promisable<void>;
56
+ operationFn(this: void, abortSignal: AbortSignal): Promisable<void>;
57
57
  /**
58
58
  * Optional name of the operation.
59
59
  */