obsidian-dev-utils 84.6.0 → 85.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 (215) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/dev/main.js +11010 -10381
  3. package/dist/lib/cjs/async-events.cjs +4 -1
  4. package/dist/lib/cjs/async-events.d.cts +4 -1
  5. package/dist/lib/cjs/generated-during-build.cjs +1 -1
  6. package/dist/lib/cjs/obsidian/active-file-provider.cjs +1 -1
  7. package/dist/lib/cjs/obsidian/active-file-provider.d.cts +1 -1
  8. package/dist/lib/cjs/obsidian/bases-view-registrar.cjs +1 -1
  9. package/dist/lib/cjs/obsidian/bases-view-registrar.d.cts +1 -1
  10. package/dist/lib/cjs/obsidian/case-insensitive-file-index.cjs +1 -1
  11. package/dist/lib/cjs/obsidian/case-insensitive-file-index.d.cts +1 -1
  12. package/dist/lib/cjs/obsidian/command-handlers/command-handler-component.cjs +16 -1
  13. package/dist/lib/cjs/obsidian/command-handlers/command-handler-component.d.cts +20 -5
  14. package/dist/lib/cjs/obsidian/command-handlers/index.cjs +6 -3
  15. package/dist/lib/cjs/obsidian/command-handlers/index.d.cts +1 -0
  16. package/dist/lib/cjs/obsidian/command-handlers/open-settings-command-handler.cjs +7 -1
  17. package/dist/lib/cjs/obsidian/command-handlers/open-settings-command-handler.d.cts +8 -2
  18. package/dist/lib/cjs/obsidian/command-handlers/unlock-active-note-command-handler.cjs +183 -0
  19. package/dist/lib/cjs/obsidian/command-handlers/unlock-active-note-command-handler.d.cts +54 -0
  20. package/dist/lib/cjs/obsidian/command-registrar.cjs +1 -1
  21. package/dist/lib/cjs/obsidian/command-registrar.d.cts +1 -1
  22. package/dist/lib/cjs/obsidian/components/abort-signal-component.cjs +1 -1
  23. package/dist/lib/cjs/obsidian/components/abort-signal-component.d.cts +1 -1
  24. package/dist/lib/cjs/obsidian/components/all-windows-event-component.cjs +1 -1
  25. package/dist/lib/cjs/obsidian/components/all-windows-event-component.d.cts +1 -1
  26. package/dist/lib/cjs/obsidian/components/async-error-handler-component.cjs +1 -1
  27. package/dist/lib/cjs/obsidian/components/async-error-handler-component.d.cts +1 -1
  28. package/dist/lib/cjs/obsidian/components/case-insensitive-file-index-component.cjs +7 -1
  29. package/dist/lib/cjs/obsidian/components/case-insensitive-file-index-component.d.cts +9 -2
  30. package/dist/lib/cjs/obsidian/components/console-debug-component.cjs +1 -1
  31. package/dist/lib/cjs/obsidian/components/console-debug-component.d.cts +1 -1
  32. package/dist/lib/cjs/obsidian/components/embed-extensions-component.cjs +1 -1
  33. package/dist/lib/cjs/obsidian/components/embed-extensions-component.d.cts +1 -1
  34. package/dist/lib/cjs/obsidian/components/generate-markdown-link-default-params-component.cjs +4 -1
  35. package/dist/lib/cjs/obsidian/components/generate-markdown-link-default-params-component.d.cts +4 -1
  36. package/dist/lib/cjs/obsidian/components/layout-ready-component.cjs +1 -1
  37. package/dist/lib/cjs/obsidian/components/layout-ready-component.d.cts +1 -1
  38. package/dist/lib/cjs/obsidian/components/menu-event-registrar-component.cjs +1 -1
  39. package/dist/lib/cjs/obsidian/components/menu-event-registrar-component.d.cts +1 -1
  40. package/dist/lib/cjs/obsidian/components/plugin-context-component.cjs +7 -1
  41. package/dist/lib/cjs/obsidian/components/plugin-context-component.d.cts +8 -2
  42. package/dist/lib/cjs/obsidian/components/plugin-notice-component.cjs +1 -1
  43. package/dist/lib/cjs/obsidian/components/plugin-notice-component.d.cts +1 -1
  44. package/dist/lib/cjs/obsidian/components/plugin-settings-component.cjs +13 -4
  45. package/dist/lib/cjs/obsidian/components/plugin-settings-component.d.cts +12 -3
  46. package/dist/lib/cjs/obsidian/components/plugin-settings-tab-component.cjs +7 -1
  47. package/dist/lib/cjs/obsidian/components/plugin-settings-tab-component.d.cts +8 -2
  48. package/dist/lib/cjs/obsidian/components/rename-delete-handler-component.cjs +29 -8
  49. package/dist/lib/cjs/obsidian/components/rename-delete-handler-component.d.cts +34 -7
  50. package/dist/lib/cjs/obsidian/data-handler.cjs +1 -1
  51. package/dist/lib/cjs/obsidian/data-handler.d.cts +1 -1
  52. package/dist/lib/cjs/obsidian/editor-extension-registrar.cjs +1 -1
  53. package/dist/lib/cjs/obsidian/editor-extension-registrar.d.cts +1 -1
  54. package/dist/lib/cjs/obsidian/editor-suggest-registrar.cjs +1 -1
  55. package/dist/lib/cjs/obsidian/editor-suggest-registrar.d.cts +1 -1
  56. package/dist/lib/cjs/obsidian/extensions-registrar.cjs +1 -1
  57. package/dist/lib/cjs/obsidian/extensions-registrar.d.cts +1 -1
  58. package/dist/lib/cjs/obsidian/hover-link-source-registrar.cjs +1 -1
  59. package/dist/lib/cjs/obsidian/hover-link-source-registrar.d.cts +1 -1
  60. package/dist/lib/cjs/obsidian/index.cjs +4 -1
  61. package/dist/lib/cjs/obsidian/index.d.cts +1 -0
  62. package/dist/lib/cjs/obsidian/link.cjs +79 -244
  63. package/dist/lib/cjs/obsidian/link.d.cts +82 -148
  64. package/dist/lib/cjs/obsidian/loop.cjs +2 -2
  65. package/dist/lib/cjs/obsidian/loop.d.cts +17 -3
  66. package/dist/lib/cjs/obsidian/markdown-code-block-processor-registrar.cjs +4 -1
  67. package/dist/lib/cjs/obsidian/markdown-code-block-processor-registrar.d.cts +4 -1
  68. package/dist/lib/cjs/obsidian/markdown-post-processor-registrar.cjs +1 -1
  69. package/dist/lib/cjs/obsidian/markdown-post-processor-registrar.d.cts +1 -1
  70. package/dist/lib/cjs/obsidian/metadata-cache.cjs +141 -43
  71. package/dist/lib/cjs/obsidian/metadata-cache.d.cts +171 -9
  72. package/dist/lib/cjs/obsidian/modals/minimizable-modal.cjs +80 -40
  73. package/dist/lib/cjs/obsidian/modals/minimizable-modal.d.cts +9 -0
  74. package/dist/lib/cjs/obsidian/obsidian-protocol-handler-registrar.cjs +4 -1
  75. package/dist/lib/cjs/obsidian/obsidian-protocol-handler-registrar.d.cts +4 -1
  76. package/dist/lib/cjs/obsidian/parse-link.cjs +476 -0
  77. package/dist/lib/cjs/obsidian/parse-link.d.cts +268 -0
  78. package/dist/lib/cjs/obsidian/plugin/plugin-event-source.cjs +1 -1
  79. package/dist/lib/cjs/obsidian/plugin/plugin-event-source.d.cts +1 -1
  80. package/dist/lib/cjs/obsidian/plugin-cli-handler-registrar.cjs +1 -1
  81. package/dist/lib/cjs/obsidian/plugin-cli-handler-registrar.d.cts +1 -1
  82. package/dist/lib/cjs/obsidian/resource-lock.cjs +155 -20
  83. package/dist/lib/cjs/obsidian/resource-lock.d.cts +93 -22
  84. package/dist/lib/cjs/obsidian/ribbon-icon-registrar.cjs +1 -1
  85. package/dist/lib/cjs/obsidian/ribbon-icon-registrar.d.cts +1 -1
  86. package/dist/lib/cjs/obsidian/setting-components/code-highlighter-component.cjs +28 -16
  87. package/dist/lib/cjs/obsidian/setting-components/code-highlighter-component.d.cts +17 -5
  88. package/dist/lib/cjs/obsidian/setting-components/multiple-dropdown-component.cjs +4 -1
  89. package/dist/lib/cjs/obsidian/setting-components/multiple-dropdown-component.d.cts +5 -2
  90. package/dist/lib/cjs/obsidian/setting-components/multiple-text-component.cjs +11 -2
  91. package/dist/lib/cjs/obsidian/setting-components/multiple-text-component.d.cts +12 -3
  92. package/dist/lib/cjs/obsidian/setting-components/typed-dropdown-component.cjs +8 -2
  93. package/dist/lib/cjs/obsidian/setting-components/typed-dropdown-component.d.cts +9 -3
  94. package/dist/lib/cjs/obsidian/setting-components/typed-multiple-dropdown-component.cjs +8 -2
  95. package/dist/lib/cjs/obsidian/setting-components/typed-multiple-dropdown-component.d.cts +9 -2
  96. package/dist/lib/cjs/obsidian/status-bar-item-registrar.cjs +1 -1
  97. package/dist/lib/cjs/obsidian/status-bar-item-registrar.d.cts +1 -1
  98. package/dist/lib/cjs/obsidian/vault-transaction.cjs +4 -1
  99. package/dist/lib/cjs/obsidian/vault-transaction.d.cts +4 -1
  100. package/dist/lib/cjs/obsidian/vault.cjs +2 -2
  101. package/dist/lib/cjs/obsidian/view-registrar.cjs +1 -1
  102. package/dist/lib/cjs/obsidian/view-registrar.d.cts +1 -1
  103. package/dist/lib/cjs/script-utils/linters/markdownlint-cli2-config.cjs +4 -2
  104. package/dist/lib/cjs/transformers/group-transformer.cjs +1 -1
  105. package/dist/lib/cjs/transformers/group-transformer.d.cts +1 -1
  106. package/dist/lib/cjs/url.cjs +14 -3
  107. package/dist/lib/cjs/url.d.cts +15 -0
  108. package/dist/lib/esm/async-events.d.mts +4 -1
  109. package/dist/lib/esm/async-events.mjs +4 -1
  110. package/dist/lib/esm/generated-during-build.mjs +1 -1
  111. package/dist/lib/esm/obsidian/active-file-provider.d.mts +1 -1
  112. package/dist/lib/esm/obsidian/active-file-provider.mjs +1 -1
  113. package/dist/lib/esm/obsidian/bases-view-registrar.d.mts +1 -1
  114. package/dist/lib/esm/obsidian/bases-view-registrar.mjs +1 -1
  115. package/dist/lib/esm/obsidian/case-insensitive-file-index.d.mts +1 -1
  116. package/dist/lib/esm/obsidian/case-insensitive-file-index.mjs +1 -1
  117. package/dist/lib/esm/obsidian/command-handlers/command-handler-component.d.mts +20 -5
  118. package/dist/lib/esm/obsidian/command-handlers/command-handler-component.mjs +16 -1
  119. package/dist/lib/esm/obsidian/command-handlers/index.d.mts +1 -0
  120. package/dist/lib/esm/obsidian/command-handlers/index.mjs +4 -2
  121. package/dist/lib/esm/obsidian/command-handlers/open-settings-command-handler.d.mts +8 -2
  122. package/dist/lib/esm/obsidian/command-handlers/open-settings-command-handler.mjs +7 -1
  123. package/dist/lib/esm/obsidian/command-handlers/unlock-active-note-command-handler.d.mts +54 -0
  124. package/dist/lib/esm/obsidian/command-handlers/unlock-active-note-command-handler.mjs +75 -0
  125. package/dist/lib/esm/obsidian/command-registrar.d.mts +1 -1
  126. package/dist/lib/esm/obsidian/command-registrar.mjs +1 -1
  127. package/dist/lib/esm/obsidian/components/abort-signal-component.d.mts +1 -1
  128. package/dist/lib/esm/obsidian/components/abort-signal-component.mjs +1 -1
  129. package/dist/lib/esm/obsidian/components/all-windows-event-component.d.mts +1 -1
  130. package/dist/lib/esm/obsidian/components/all-windows-event-component.mjs +1 -1
  131. package/dist/lib/esm/obsidian/components/async-error-handler-component.d.mts +1 -1
  132. package/dist/lib/esm/obsidian/components/async-error-handler-component.mjs +1 -1
  133. package/dist/lib/esm/obsidian/components/case-insensitive-file-index-component.d.mts +9 -2
  134. package/dist/lib/esm/obsidian/components/case-insensitive-file-index-component.mjs +7 -1
  135. package/dist/lib/esm/obsidian/components/console-debug-component.d.mts +1 -1
  136. package/dist/lib/esm/obsidian/components/console-debug-component.mjs +1 -1
  137. package/dist/lib/esm/obsidian/components/embed-extensions-component.d.mts +1 -1
  138. package/dist/lib/esm/obsidian/components/embed-extensions-component.mjs +1 -1
  139. package/dist/lib/esm/obsidian/components/generate-markdown-link-default-params-component.d.mts +4 -1
  140. package/dist/lib/esm/obsidian/components/generate-markdown-link-default-params-component.mjs +4 -1
  141. package/dist/lib/esm/obsidian/components/layout-ready-component.d.mts +1 -1
  142. package/dist/lib/esm/obsidian/components/layout-ready-component.mjs +1 -1
  143. package/dist/lib/esm/obsidian/components/menu-event-registrar-component.d.mts +1 -1
  144. package/dist/lib/esm/obsidian/components/menu-event-registrar-component.mjs +1 -1
  145. package/dist/lib/esm/obsidian/components/plugin-context-component.d.mts +8 -2
  146. package/dist/lib/esm/obsidian/components/plugin-context-component.mjs +7 -1
  147. package/dist/lib/esm/obsidian/components/plugin-notice-component.d.mts +1 -1
  148. package/dist/lib/esm/obsidian/components/plugin-notice-component.mjs +1 -1
  149. package/dist/lib/esm/obsidian/components/plugin-settings-component.d.mts +12 -3
  150. package/dist/lib/esm/obsidian/components/plugin-settings-component.mjs +13 -4
  151. package/dist/lib/esm/obsidian/components/plugin-settings-tab-component.d.mts +8 -2
  152. package/dist/lib/esm/obsidian/components/plugin-settings-tab-component.mjs +7 -1
  153. package/dist/lib/esm/obsidian/components/rename-delete-handler-component.d.mts +34 -7
  154. package/dist/lib/esm/obsidian/components/rename-delete-handler-component.mjs +30 -9
  155. package/dist/lib/esm/obsidian/data-handler.d.mts +1 -1
  156. package/dist/lib/esm/obsidian/data-handler.mjs +1 -1
  157. package/dist/lib/esm/obsidian/editor-extension-registrar.d.mts +1 -1
  158. package/dist/lib/esm/obsidian/editor-extension-registrar.mjs +1 -1
  159. package/dist/lib/esm/obsidian/editor-suggest-registrar.d.mts +1 -1
  160. package/dist/lib/esm/obsidian/editor-suggest-registrar.mjs +1 -1
  161. package/dist/lib/esm/obsidian/extensions-registrar.d.mts +1 -1
  162. package/dist/lib/esm/obsidian/extensions-registrar.mjs +1 -1
  163. package/dist/lib/esm/obsidian/hover-link-source-registrar.d.mts +1 -1
  164. package/dist/lib/esm/obsidian/hover-link-source-registrar.mjs +1 -1
  165. package/dist/lib/esm/obsidian/index.d.mts +1 -0
  166. package/dist/lib/esm/obsidian/index.mjs +3 -1
  167. package/dist/lib/esm/obsidian/link.d.mts +82 -148
  168. package/dist/lib/esm/obsidian/link.mjs +76 -222
  169. package/dist/lib/esm/obsidian/loop.d.mts +17 -3
  170. package/dist/lib/esm/obsidian/loop.mjs +2 -2
  171. package/dist/lib/esm/obsidian/markdown-code-block-processor-registrar.d.mts +4 -1
  172. package/dist/lib/esm/obsidian/markdown-code-block-processor-registrar.mjs +4 -1
  173. package/dist/lib/esm/obsidian/markdown-post-processor-registrar.d.mts +1 -1
  174. package/dist/lib/esm/obsidian/markdown-post-processor-registrar.mjs +1 -1
  175. package/dist/lib/esm/obsidian/metadata-cache.d.mts +171 -9
  176. package/dist/lib/esm/obsidian/metadata-cache.mjs +142 -42
  177. package/dist/lib/esm/obsidian/modals/minimizable-modal.d.mts +9 -0
  178. package/dist/lib/esm/obsidian/modals/minimizable-modal.mjs +80 -40
  179. package/dist/lib/esm/obsidian/obsidian-protocol-handler-registrar.d.mts +4 -1
  180. package/dist/lib/esm/obsidian/obsidian-protocol-handler-registrar.mjs +4 -1
  181. package/dist/lib/esm/obsidian/parse-link.d.mts +268 -0
  182. package/dist/lib/esm/obsidian/parse-link.mjs +353 -0
  183. package/dist/lib/esm/obsidian/plugin/plugin-event-source.d.mts +1 -1
  184. package/dist/lib/esm/obsidian/plugin/plugin-event-source.mjs +1 -1
  185. package/dist/lib/esm/obsidian/plugin-cli-handler-registrar.d.mts +1 -1
  186. package/dist/lib/esm/obsidian/plugin-cli-handler-registrar.mjs +1 -1
  187. package/dist/lib/esm/obsidian/resource-lock.d.mts +93 -22
  188. package/dist/lib/esm/obsidian/resource-lock.mjs +155 -20
  189. package/dist/lib/esm/obsidian/ribbon-icon-registrar.d.mts +1 -1
  190. package/dist/lib/esm/obsidian/ribbon-icon-registrar.mjs +1 -1
  191. package/dist/lib/esm/obsidian/setting-components/code-highlighter-component.d.mts +17 -5
  192. package/dist/lib/esm/obsidian/setting-components/code-highlighter-component.mjs +28 -16
  193. package/dist/lib/esm/obsidian/setting-components/multiple-dropdown-component.d.mts +5 -2
  194. package/dist/lib/esm/obsidian/setting-components/multiple-dropdown-component.mjs +4 -1
  195. package/dist/lib/esm/obsidian/setting-components/multiple-text-component.d.mts +12 -3
  196. package/dist/lib/esm/obsidian/setting-components/multiple-text-component.mjs +11 -2
  197. package/dist/lib/esm/obsidian/setting-components/typed-dropdown-component.d.mts +9 -3
  198. package/dist/lib/esm/obsidian/setting-components/typed-dropdown-component.mjs +8 -2
  199. package/dist/lib/esm/obsidian/setting-components/typed-multiple-dropdown-component.d.mts +9 -2
  200. package/dist/lib/esm/obsidian/setting-components/typed-multiple-dropdown-component.mjs +8 -2
  201. package/dist/lib/esm/obsidian/status-bar-item-registrar.d.mts +1 -1
  202. package/dist/lib/esm/obsidian/status-bar-item-registrar.mjs +1 -1
  203. package/dist/lib/esm/obsidian/vault-transaction.d.mts +4 -1
  204. package/dist/lib/esm/obsidian/vault-transaction.mjs +4 -1
  205. package/dist/lib/esm/obsidian/vault.mjs +2 -2
  206. package/dist/lib/esm/obsidian/view-registrar.d.mts +1 -1
  207. package/dist/lib/esm/obsidian/view-registrar.mjs +1 -1
  208. package/dist/lib/esm/script-utils/linters/markdownlint-cli2-config.mjs +4 -2
  209. package/dist/lib/esm/transformers/group-transformer.d.mts +1 -1
  210. package/dist/lib/esm/transformers/group-transformer.mjs +1 -1
  211. package/dist/lib/esm/url.d.mts +15 -0
  212. package/dist/lib/esm/url.mjs +11 -2
  213. package/obsidian/command-handlers/unlock-active-note-command-handler/package.json +6 -0
  214. package/obsidian/parse-link/package.json +6 -0
  215. package/package.json +3 -3
@@ -6,6 +6,21 @@
6
6
  */
7
7
  import type { Promisable } from 'type-fest';
8
8
  import type { PluginNoticeComponent } from './components/plugin-notice-component.mjs';
9
+ /**
10
+ * Parameters for the {@link LoopParams.buildNoticeMessage} callback.
11
+ *
12
+ * @typeParam T - The type of the items to loop over.
13
+ */
14
+ export interface LoopBuildNoticeMessageParams<T> {
15
+ /**
16
+ * The current item.
17
+ */
18
+ readonly item: T;
19
+ /**
20
+ * A string representing the current iteration.
21
+ */
22
+ readonly iterationStr: string;
23
+ }
9
24
  /**
10
25
  * Options for {@link loop}.
11
26
  *
@@ -19,11 +34,10 @@ export interface LoopParams<T> {
19
34
  /**
20
35
  * Build a notice message for each item.
21
36
  *
22
- * @param item - The current item.
23
- * @param iterationStr - A string representing the current iteration.
37
+ * @param params - The parameters for building the notice message.
24
38
  * @returns A string to display in the notice.
25
39
  */
26
- buildNoticeMessage(item: T, iterationStr: string): string;
40
+ buildNoticeMessage(params: LoopBuildNoticeMessageParams<T>): string;
27
41
  /**
28
42
  * Items to loop over.
29
43
  */
@@ -79,7 +79,7 @@ async function loop(params) {
79
79
  }
80
80
  iterationCount++;
81
81
  const iterationStr = `# ${String(iterationCount)} / ${String(items.length)}`;
82
- const message = fullOptions.buildNoticeMessage(item, iterationStr);
82
+ const message = fullOptions.buildNoticeMessage({ item, iterationStr });
83
83
  if (!fullOptions.shouldShowProgressBar) {
84
84
  notice?.setMessage(message);
85
85
  }
@@ -136,4 +136,4 @@ async function loop(params) {
136
136
  export {
137
137
  loop
138
138
  };
139
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2xvb3AudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDb250YWlucyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgbG9vcGluZyBpbiBPYnNpZGlhbi5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgeyBOb3RpY2UgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHsgUGx1Z2luTm90aWNlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BsdWdpbi1ub3RpY2UtY29tcG9uZW50LnRzJztcblxuaW1wb3J0IHsgYWJvcnRTaWduYWxOZXZlciB9IGZyb20gJy4uL2Fib3J0LWNvbnRyb2xsZXIudHMnO1xuaW1wb3J0IHtcbiAgaW52b2tlQXN5bmNTYWZlbHksXG4gIHJlcXVlc3RBbmltYXRpb25GcmFtZUFzeW5jXG59IGZyb20gJy4uL2FzeW5jLnRzJztcbmltcG9ydCB7IGdldExpYkRlYnVnZ2VyIH0gZnJvbSAnLi4vZGVidWcudHMnO1xuaW1wb3J0IHtcbiAgQVNZTkNfV1JBUFBFUl9FUlJPUl9NRVNTQUdFLFxuICBDdXN0b21TdGFja1RyYWNlRXJyb3IsXG4gIGVtaXRBc3luY0Vycm9yRXZlbnQsXG4gIGdldFN0YWNrVHJhY2Vcbn0gZnJvbSAnLi4vZXJyb3IudHMnO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJy4uL2Z1bmN0aW9uLnRzJztcbmltcG9ydCB7IGFkZFBsdWdpbkNzc0NsYXNzZXMgfSBmcm9tICcuL3BsdWdpbi9wbHVnaW4tY29udGV4dC50cyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIGxvb3B9LlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIHRoZSBpdGVtcyB0byBsb29wIG92ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9vcFBhcmFtczxUPiB7XG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCBhYm9ydCBzaWduYWwgdG8gY2FuY2VsIHRoZSBsb29wLlxuICAgKi9cbiAgcmVhZG9ubHkgYWJvcnRTaWduYWw/OiBBYm9ydFNpZ25hbDtcblxuICAvKipcbiAgICogQnVpbGQgYSBub3RpY2UgbWVzc2FnZSBmb3IgZWFjaCBpdGVtLlxuICAgKlxuICAgKiBAcGFyYW0gaXRlbSAtIFRoZSBjdXJyZW50IGl0ZW0uXG4gICAqIEBwYXJhbSBpdGVyYXRpb25TdHIgLSBBIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIGN1cnJlbnQgaXRlcmF0aW9uLlxuICAgKiBAcmV0dXJucyBBIHN0cmluZyB0byBkaXNwbGF5IGluIHRoZSBub3RpY2UuXG4gICAqL1xuICBidWlsZE5vdGljZU1lc3NhZ2UoaXRlbTogVCwgaXRlcmF0aW9uU3RyOiBzdHJpbmcpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEl0ZW1zIHRvIGxvb3Agb3Zlci5cbiAgICovXG4gIHJlYWRvbmx5IGl0ZW1zOiBUW107XG5cbiAgLyoqXG4gICAqIEEgdGltZW91dCBmb3IgdGhlIG5vdGljZSBiZWZvcmUgaXQgaXMgc2hvd24uXG4gICAqXG4gICAqIEBkZWZhdWx0IGA1MDBgXG4gICAqL1xuICByZWFkb25seSBub3RpY2VCZWZvcmVTaG93blRpbWVvdXRJbk1pbGxpc2Vjb25kcz86IG51bWJlcjtcblxuICAvKipcbiAgICogQSBtaW5pbXVtIHRpbWVvdXQgZm9yIHRoZSBub3RpY2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IGAyMDAwYFxuICAgKi9cbiAgcmVhZG9ubHkgbm90aWNlTWluVGltZW91dEluTWlsbGlzZWNvbmRzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBBIGNvbXBvbmVudCB0byBzaG93IG5vdGljZXMuXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5Ob3RpY2VDb21wb25lbnQ6IFBsdWdpbk5vdGljZUNvbXBvbmVudDtcblxuICAvKipcbiAgICogUHJvY2VzcyBlYWNoIGl0ZW0uXG4gICAqXG4gICAqIEBwYXJhbSBpdGVtIC0gVGhlIGN1cnJlbnQgaXRlbS5cbiAgICovXG4gIHByb2Nlc3NJdGVtKGl0ZW06IFQpOiBQcm9taXNhYmxlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBBIHRpdGxlIG9mIHRoZSBwcm9ncmVzcyBiYXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IGAnJ2BcbiAgICovXG4gIHJlYWRvbmx5IHByb2dyZXNzQmFyVGl0bGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gY29udGludWUgdGhlIGxvb3Agb24gZXJyb3IuXG4gICAqXG4gICAqIEBkZWZhdWx0IGB0cnVlYFxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkQ29udGludWVPbkVycm9yPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBzaG93IGEgbm90aWNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgdHJ1ZWBcbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZFNob3dOb3RpY2U/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHNob3cgYSBwcm9ncmVzcyBiYXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IGB0cnVlYFxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkU2hvd1Byb2dyZXNzQmFyPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQSB0aHJlc2hvbGQgZm9yIHRoZSBVSSB1cGRhdGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IGAxMDBgXG4gICAqL1xuICByZWFkb25seSB1aVVwZGF0ZVRocmVzaG9sZEluTWlsbGlzZWNvbmRzPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIExvb3BzIG92ZXIgYSBsaXN0IG9mIGl0ZW1zIGFuZCBwcm9jZXNzZXMgZWFjaCBpdGVtLlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIHRoZSBpdGVtcyB0byBsb29wIG92ZXIuXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBsb29wLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9vcDxUPihwYXJhbXM6IExvb3BQYXJhbXM8VD4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgREVGQVVMVF9PUFRJT05TID0ge1xuICAgIGFib3J0U2lnbmFsOiBhYm9ydFNpZ25hbE5ldmVyKCksXG4gICAgLyogdjggaWdub3JlIHN0YXJ0IC0tIGJ1aWxkTm90aWNlTWVzc2FnZSBpcyByZXF1aXJlZCBpbiBMb29wUGFyYW1zIGFuZCBhbHdheXMgb3ZlcnJpZGRlbiBieSB0aGUgc3ByZWFkLiAqL1xuICAgIGJ1aWxkTm90aWNlTWVzc2FnZSgpOiBzdHJpbmcge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdidWlsZE5vdGljZU1lc3NhZ2UgaXMgcmVxdWlyZWQnKTtcbiAgICB9LFxuICAgIC8qIHY4IGlnbm9yZSBzdG9wICovXG4gICAgaXRlbXM6IFtdLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1tYWdpYy1udW1iZXJzIC0tIEV4dHJhY3RpbmcgbWFnaWMgbnVtYmVyIGFzIGEgY29uc3RhbnQgd291bGQgYmUgcmVwZXRpdGl2ZSwgYXMgdGhlIHZhbHVlIGlzIHVzZWQgb25seSBvbmNlIGFuZCBpdHMgbmFtZSB3b3VsZCBiZSB0aGUgc2FtZSBhcyB0aGUgcHJvcGVydHkuXG4gICAgbm90aWNlQmVmb3JlU2hvd25UaW1lb3V0SW5NaWxsaXNlY29uZHM6IDUwMCxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbWFnaWMtbnVtYmVycyAtLSBFeHRyYWN0aW5nIG1hZ2ljIG51bWJlciBhcyBhIGNvbnN0YW50IHdvdWxkIGJlIHJlcGV0aXRpdmUsIGFzIHRoZSB2YWx1ZSBpcyB1c2VkIG9ubHkgb25jZSBhbmQgaXRzIG5hbWUgd291bGQgYmUgdGhlIHNhbWUgYXMgdGhlIHByb3BlcnR5LlxuICAgIG5vdGljZU1pblRpbWVvdXRJbk1pbGxpc2Vjb25kczogMjAwMCxcbiAgICBwcm9jZXNzSXRlbTogbm9vcCxcbiAgICBwcm9ncmVzc0JhclRpdGxlOiAnJyxcbiAgICBzaG91bGRDb250aW51ZU9uRXJyb3I6IHRydWUsXG4gICAgc2hvdWxkU2hvd05vdGljZTogdHJ1ZSxcbiAgICBzaG91bGRTaG93UHJvZ3Jlc3NCYXI6IHRydWUsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW1hZ2ljLW51bWJlcnMgLS0gRXh0cmFjdGluZyBtYWdpYyBudW1iZXIgYXMgYSBjb25zdGFudCB3b3VsZCBiZSByZXBldGl0aXZlLCBhcyB0aGUgdmFsdWUgaXMgdXNlZCBvbmx5IG9uY2UgYW5kIGl0cyBuYW1lIHdvdWxkIGJlIHRoZSBzYW1lIGFzIHRoZSBwcm9wZXJ0eS5cbiAgICB1aVVwZGF0ZVRocmVzaG9sZEluTWlsbGlzZWNvbmRzOiAxMDBcbiAgfTtcblxuICBjb25zdCBmdWxsT3B0aW9uczogUmVxdWlyZWQ8TG9vcFBhcmFtczxUPj4gPSB7XG4gICAgLi4uREVGQVVMVF9PUFRJT05TLFxuICAgIC4uLnBhcmFtc1xuICB9O1xuXG4gIGNvbnN0IHN0YWNrVHJhY2UgPSBnZXRTdGFja1RyYWNlKDEpO1xuXG4gIGNvbnN0IGl0ZW1zID0gZnVsbE9wdGlvbnMuaXRlbXM7XG4gIGxldCBpdGVyYXRpb25Db3VudCA9IDA7XG4gIGxldCBub3RpY2UgPSBudWxsIGFzIE5vdGljZSB8IG51bGw7XG4gIGxldCBpc0RvbmUgPSBmYWxzZTtcbiAgaW52b2tlQXN5bmNTYWZlbHkoKCkgPT4gc2hvd05vdGljZSgpKTtcblxuICBjb25zdCBub3RpY2VNaW5UaW1lb3V0UHJvbWlzZSA9IHNsZWVwKGZ1bGxPcHRpb25zLm5vdGljZU1pblRpbWVvdXRJbk1pbGxpc2Vjb25kcyk7XG4gIGNvbnN0IHByb2dyZXNzQmFyRWwgPSBjcmVhdGVFbCgncHJvZ3Jlc3MnKTtcbiAgYWRkUGx1Z2luQ3NzQ2xhc3Nlcyhwcm9ncmVzc0JhckVsLCAnbG9vcCcpO1xuICBwcm9ncmVzc0JhckVsLm1heCA9IGl0ZW1zLmxlbmd0aDtcblxuICBsZXQgbGFzdFVJVXBkYXRlVGltZXN0YW1wID0gcGVyZm9ybWFuY2Uubm93KCk7XG5cbiAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgaWYgKGZ1bGxPcHRpb25zLmFib3J0U2lnbmFsLmFib3J0ZWQpIHtcbiAgICAgIG5vdGljZT8uaGlkZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpdGVyYXRpb25Db3VudCsrO1xuICAgIGNvbnN0IGl0ZXJhdGlvblN0ciA9IGAjICR7U3RyaW5nKGl0ZXJhdGlvbkNvdW50KX0gLyAke1N0cmluZyhpdGVtcy5sZW5ndGgpfWA7XG4gICAgY29uc3QgbWVzc2FnZSA9IGZ1bGxPcHRpb25zLmJ1aWxkTm90aWNlTWVzc2FnZShpdGVtLCBpdGVyYXRpb25TdHIpO1xuICAgIGlmICghZnVsbE9wdGlvbnMuc2hvdWxkU2hvd1Byb2dyZXNzQmFyKSB7XG4gICAgICBub3RpY2U/LnNldE1lc3NhZ2UobWVzc2FnZSk7XG4gICAgfVxuICAgIGdldExpYkRlYnVnZ2VyKCdMb29wJykobWVzc2FnZSk7XG5cbiAgICB0cnkge1xuICAgICAgaWYgKHBlcmZvcm1hbmNlLm5vdygpIC0gbGFzdFVJVXBkYXRlVGltZXN0YW1wID4gZnVsbE9wdGlvbnMudWlVcGRhdGVUaHJlc2hvbGRJbk1pbGxpc2Vjb25kcykge1xuICAgICAgICBhd2FpdCByZXF1ZXN0QW5pbWF0aW9uRnJhbWVBc3luYygpO1xuICAgICAgICBsYXN0VUlVcGRhdGVUaW1lc3RhbXAgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgICAgIH1cbiAgICAgIGF3YWl0IGZ1bGxPcHRpb25zLnByb2Nlc3NJdGVtKGl0ZW0pO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBwcm9jZXNzaW5nIGl0ZW0nLCBpdGVtKTtcbiAgICAgIGlmICghZnVsbE9wdGlvbnMuc2hvdWxkQ29udGludWVPbkVycm9yKSB7XG4gICAgICAgIG5vdGljZT8uaGlkZSgpO1xuICAgICAgICB0aHJvdyBuZXcgQ3VzdG9tU3RhY2tUcmFjZUVycm9yKHtcbiAgICAgICAgICBjYXVzZTogZXJyb3IsXG4gICAgICAgICAgbWVzc2FnZTogJ2xvb3AgZmFpbGVkJyxcbiAgICAgICAgICBzdGFja1RyYWNlXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBlbWl0QXN5bmNFcnJvckV2ZW50KFxuICAgICAgICBuZXcgQ3VzdG9tU3RhY2tUcmFjZUVycm9yKHtcbiAgICAgICAgICBjYXVzZTogZXJyb3IsXG4gICAgICAgICAgbWVzc2FnZTogQVNZTkNfV1JBUFBFUl9FUlJPUl9NRVNTQUdFLFxuICAgICAgICAgIHN0YWNrVHJhY2VcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICAgIHByb2dyZXNzQmFyRWwudmFsdWUrKztcbiAgfVxuICBpZiAobm90aWNlKSB7XG4gICAgYXdhaXQgbm90aWNlTWluVGltZW91dFByb21pc2U7XG4gIH1cbiAgbm90aWNlPy5oaWRlKCk7XG4gIGlzRG9uZSA9IHRydWU7XG5cbiAgYXN5bmMgZnVuY3Rpb24gc2hvd05vdGljZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIWZ1bGxPcHRpb25zLnNob3VsZFNob3dOb3RpY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgYXdhaXQgc2xlZXAoZnVsbE9wdGlvbnMubm90aWNlQmVmb3JlU2hvd25UaW1lb3V0SW5NaWxsaXNlY29uZHMpO1xuICAgIGlmIChpc0RvbmUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbm90aWNlID0gcGFyYW1zLnBsdWdpbk5vdGljZUNvbXBvbmVudC5zaG93Tm90aWNlKCcnLCB7fSk7XG4gICAgaWYgKCFmdWxsT3B0aW9ucy5zaG91bGRTaG93UHJvZ3Jlc3NCYXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudCgpO1xuICAgIGZyYWdtZW50LmNyZWF0ZURpdih7IHRleHQ6IGZ1bGxPcHRpb25zLnByb2dyZXNzQmFyVGl0bGUgfSk7XG4gICAgZnJhZ21lbnQuYXBwZW5kQ2hpbGQocHJvZ3Jlc3NCYXJFbCk7XG4gICAgbm90aWNlLnNldE1lc3NhZ2UoZnJhZ21lbnQpO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVFBLFNBQVMsY0FBYztBQUl2QixTQUFTLHdCQUF3QjtBQUNqQztBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsc0JBQXNCO0FBQy9CO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLFlBQVk7QUFDckIsU0FBUywyQkFBMkI7QUErRnBDLGVBQXNCLEtBQVEsUUFBc0M7QUFDbEUsUUFBTSxrQkFBa0I7QUFBQSxJQUN0QixhQUFhLGlCQUFpQjtBQUFBO0FBQUEsSUFFOUIscUJBQTZCO0FBQzNCLFlBQU0sSUFBSSxNQUFNLGdDQUFnQztBQUFBLElBQ2xEO0FBQUE7QUFBQSxJQUVBLE9BQU8sQ0FBQztBQUFBO0FBQUEsSUFFUix3Q0FBd0M7QUFBQTtBQUFBLElBRXhDLGdDQUFnQztBQUFBLElBQ2hDLGFBQWE7QUFBQSxJQUNiLGtCQUFrQjtBQUFBLElBQ2xCLHVCQUF1QjtBQUFBLElBQ3ZCLGtCQUFrQjtBQUFBLElBQ2xCLHVCQUF1QjtBQUFBO0FBQUEsSUFFdkIsaUNBQWlDO0FBQUEsRUFDbkM7QUFFQSxRQUFNLGNBQXVDO0FBQUEsSUFDM0MsR0FBRztBQUFBLElBQ0gsR0FBRztBQUFBLEVBQ0w7QUFFQSxRQUFNLGFBQWEsY0FBYyxDQUFDO0FBRWxDLFFBQU0sUUFBUSxZQUFZO0FBQzFCLE1BQUksaUJBQWlCO0FBQ3JCLE1BQUksU0FBUztBQUNiLE1BQUksU0FBUztBQUNiLG9CQUFrQixNQUFNLFdBQVcsQ0FBQztBQUVwQyxRQUFNLDBCQUEwQixNQUFNLFlBQVksOEJBQThCO0FBQ2hGLFFBQU0sZ0JBQWdCLFNBQVMsVUFBVTtBQUN6QyxzQkFBb0IsZUFBZSxNQUFNO0FBQ3pDLGdCQUFjLE1BQU0sTUFBTTtBQUUxQixNQUFJLHdCQUF3QixZQUFZLElBQUk7QUFFNUMsYUFBVyxRQUFRLE9BQU87QUFDeEIsUUFBSSxZQUFZLFlBQVksU0FBUztBQUNuQyxjQUFRLEtBQUs7QUFDYjtBQUFBLElBQ0Y7QUFDQTtBQUNBLFVBQU0sZUFBZSxLQUFLLE9BQU8sY0FBYyxDQUFDLE1BQU0sT0FBTyxNQUFNLE1BQU0sQ0FBQztBQUMxRSxVQUFNLFVBQVUsWUFBWSxtQkFBbUIsTUFBTSxZQUFZO0FBQ2pFLFFBQUksQ0FBQyxZQUFZLHVCQUF1QjtBQUN0QyxjQUFRLFdBQVcsT0FBTztBQUFBLElBQzVCO0FBQ0EsbUJBQWUsTUFBTSxFQUFFLE9BQU87QUFFOUIsUUFBSTtBQUNGLFVBQUksWUFBWSxJQUFJLElBQUksd0JBQXdCLFlBQVksaUNBQWlDO0FBQzNGLGNBQU0sMkJBQTJCO0FBQ2pDLGdDQUF3QixZQUFZLElBQUk7QUFBQSxNQUMxQztBQUNBLFlBQU0sWUFBWSxZQUFZLElBQUk7QUFBQSxJQUNwQyxTQUFTLE9BQU87QUFDZCxjQUFRLE1BQU0seUJBQXlCLElBQUk7QUFDM0MsVUFBSSxDQUFDLFlBQVksdUJBQXVCO0FBQ3RDLGdCQUFRLEtBQUs7QUFDYixjQUFNLElBQUksc0JBQXNCO0FBQUEsVUFDOUIsT0FBTztBQUFBLFVBQ1AsU0FBUztBQUFBLFVBQ1Q7QUFBQSxRQUNGLENBQUM7QUFBQSxNQUNIO0FBRUE7QUFBQSxRQUNFLElBQUksc0JBQXNCO0FBQUEsVUFDeEIsT0FBTztBQUFBLFVBQ1AsU0FBUztBQUFBLFVBQ1Q7QUFBQSxRQUNGLENBQUM7QUFBQSxNQUNIO0FBQUEsSUFDRjtBQUNBLGtCQUFjO0FBQUEsRUFDaEI7QUFDQSxNQUFJLFFBQVE7QUFDVixVQUFNO0FBQUEsRUFDUjtBQUNBLFVBQVEsS0FBSztBQUNiLFdBQVM7QUFFVCxpQkFBZSxhQUE0QjtBQUN6QyxRQUFJLENBQUMsWUFBWSxrQkFBa0I7QUFDakM7QUFBQSxJQUNGO0FBQ0EsVUFBTSxNQUFNLFlBQVksc0NBQXNDO0FBQzlELFFBQUksUUFBUTtBQUNWO0FBQUEsSUFDRjtBQUNBLGFBQVMsT0FBTyxzQkFBc0IsV0FBVyxJQUFJLENBQUMsQ0FBQztBQUN2RCxRQUFJLENBQUMsWUFBWSx1QkFBdUI7QUFDdEM7QUFBQSxJQUNGO0FBQ0EsVUFBTSxXQUFXLGVBQWU7QUFDaEMsYUFBUyxVQUFVLEVBQUUsTUFBTSxZQUFZLGlCQUFpQixDQUFDO0FBQ3pELGFBQVMsWUFBWSxhQUFhO0FBQ2xDLFdBQU8sV0FBVyxRQUFRO0FBQUEsRUFDNUI7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
139
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2xvb3AudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDb250YWlucyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgbG9vcGluZyBpbiBPYnNpZGlhbi5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgeyBOb3RpY2UgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHsgUGx1Z2luTm90aWNlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BsdWdpbi1ub3RpY2UtY29tcG9uZW50LnRzJztcblxuaW1wb3J0IHsgYWJvcnRTaWduYWxOZXZlciB9IGZyb20gJy4uL2Fib3J0LWNvbnRyb2xsZXIudHMnO1xuaW1wb3J0IHtcbiAgaW52b2tlQXN5bmNTYWZlbHksXG4gIHJlcXVlc3RBbmltYXRpb25GcmFtZUFzeW5jXG59IGZyb20gJy4uL2FzeW5jLnRzJztcbmltcG9ydCB7IGdldExpYkRlYnVnZ2VyIH0gZnJvbSAnLi4vZGVidWcudHMnO1xuaW1wb3J0IHtcbiAgQVNZTkNfV1JBUFBFUl9FUlJPUl9NRVNTQUdFLFxuICBDdXN0b21TdGFja1RyYWNlRXJyb3IsXG4gIGVtaXRBc3luY0Vycm9yRXZlbnQsXG4gIGdldFN0YWNrVHJhY2Vcbn0gZnJvbSAnLi4vZXJyb3IudHMnO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJy4uL2Z1bmN0aW9uLnRzJztcbmltcG9ydCB7IGFkZFBsdWdpbkNzc0NsYXNzZXMgfSBmcm9tICcuL3BsdWdpbi9wbHVnaW4tY29udGV4dC50cyc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3IgdGhlIHtAbGluayBMb29wUGFyYW1zLmJ1aWxkTm90aWNlTWVzc2FnZX0gY2FsbGJhY2suXG4gKlxuICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgb2YgdGhlIGl0ZW1zIHRvIGxvb3Agb3Zlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb29wQnVpbGROb3RpY2VNZXNzYWdlUGFyYW1zPFQ+IHtcbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50IGl0ZW0uXG4gICAqL1xuICByZWFkb25seSBpdGVtOiBUO1xuXG4gIC8qKlxuICAgKiBBIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIGN1cnJlbnQgaXRlcmF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgaXRlcmF0aW9uU3RyOiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIGxvb3B9LlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIHRoZSBpdGVtcyB0byBsb29wIG92ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9vcFBhcmFtczxUPiB7XG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCBhYm9ydCBzaWduYWwgdG8gY2FuY2VsIHRoZSBsb29wLlxuICAgKi9cbiAgcmVhZG9ubHkgYWJvcnRTaWduYWw/OiBBYm9ydFNpZ25hbDtcblxuICAvKipcbiAgICogQnVpbGQgYSBub3RpY2UgbWVzc2FnZSBmb3IgZWFjaCBpdGVtLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIGJ1aWxkaW5nIHRoZSBub3RpY2UgbWVzc2FnZS5cbiAgICogQHJldHVybnMgQSBzdHJpbmcgdG8gZGlzcGxheSBpbiB0aGUgbm90aWNlLlxuICAgKi9cbiAgYnVpbGROb3RpY2VNZXNzYWdlKHBhcmFtczogTG9vcEJ1aWxkTm90aWNlTWVzc2FnZVBhcmFtczxUPik6IHN0cmluZztcblxuICAvKipcbiAgICogSXRlbXMgdG8gbG9vcCBvdmVyLlxuICAgKi9cbiAgcmVhZG9ubHkgaXRlbXM6IFRbXTtcblxuICAvKipcbiAgICogQSB0aW1lb3V0IGZvciB0aGUgbm90aWNlIGJlZm9yZSBpdCBpcyBzaG93bi5cbiAgICpcbiAgICogQGRlZmF1bHQgYDUwMGBcbiAgICovXG4gIHJlYWRvbmx5IG5vdGljZUJlZm9yZVNob3duVGltZW91dEluTWlsbGlzZWNvbmRzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBBIG1pbmltdW0gdGltZW91dCBmb3IgdGhlIG5vdGljZS5cbiAgICpcbiAgICogQGRlZmF1bHQgYDIwMDBgXG4gICAqL1xuICByZWFkb25seSBub3RpY2VNaW5UaW1lb3V0SW5NaWxsaXNlY29uZHM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEEgY29tcG9uZW50IHRvIHNob3cgbm90aWNlcy5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbk5vdGljZUNvbXBvbmVudDogUGx1Z2luTm90aWNlQ29tcG9uZW50O1xuXG4gIC8qKlxuICAgKiBQcm9jZXNzIGVhY2ggaXRlbS5cbiAgICpcbiAgICogQHBhcmFtIGl0ZW0gLSBUaGUgY3VycmVudCBpdGVtLlxuICAgKi9cbiAgcHJvY2Vzc0l0ZW0oaXRlbTogVCk6IFByb21pc2FibGU8dm9pZD47XG5cbiAgLyoqXG4gICAqIEEgdGl0bGUgb2YgdGhlIHByb2dyZXNzIGJhci5cbiAgICpcbiAgICogQGRlZmF1bHQgYCcnYFxuICAgKi9cbiAgcmVhZG9ubHkgcHJvZ3Jlc3NCYXJUaXRsZT86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0byBjb250aW51ZSB0aGUgbG9vcCBvbiBlcnJvci5cbiAgICpcbiAgICogQGRlZmF1bHQgYHRydWVgXG4gICAqL1xuICByZWFkb25seSBzaG91bGRDb250aW51ZU9uRXJyb3I/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHNob3cgYSBub3RpY2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IGB0cnVlYFxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkU2hvd05vdGljZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gc2hvdyBhIHByb2dyZXNzIGJhci5cbiAgICpcbiAgICogQGRlZmF1bHQgYHRydWVgXG4gICAqL1xuICByZWFkb25seSBzaG91bGRTaG93UHJvZ3Jlc3NCYXI/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBIHRocmVzaG9sZCBmb3IgdGhlIFVJIHVwZGF0ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgYDEwMGBcbiAgICovXG4gIHJlYWRvbmx5IHVpVXBkYXRlVGhyZXNob2xkSW5NaWxsaXNlY29uZHM/OiBudW1iZXI7XG59XG5cbi8qKlxuICogTG9vcHMgb3ZlciBhIGxpc3Qgb2YgaXRlbXMgYW5kIHByb2Nlc3NlcyBlYWNoIGl0ZW0uXG4gKlxuICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgb2YgdGhlIGl0ZW1zIHRvIGxvb3Agb3Zlci5cbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGxvb3AuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsb29wPFQ+KHBhcmFtczogTG9vcFBhcmFtczxUPik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBERUZBVUxUX09QVElPTlMgPSB7XG4gICAgYWJvcnRTaWduYWw6IGFib3J0U2lnbmFsTmV2ZXIoKSxcbiAgICAvKiB2OCBpZ25vcmUgc3RhcnQgLS0gYnVpbGROb3RpY2VNZXNzYWdlIGlzIHJlcXVpcmVkIGluIExvb3BQYXJhbXMgYW5kIGFsd2F5cyBvdmVycmlkZGVuIGJ5IHRoZSBzcHJlYWQuICovXG4gICAgYnVpbGROb3RpY2VNZXNzYWdlKCk6IHN0cmluZyB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2J1aWxkTm90aWNlTWVzc2FnZSBpcyByZXF1aXJlZCcpO1xuICAgIH0sXG4gICAgLyogdjggaWdub3JlIHN0b3AgKi9cbiAgICBpdGVtczogW10sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW1hZ2ljLW51bWJlcnMgLS0gRXh0cmFjdGluZyBtYWdpYyBudW1iZXIgYXMgYSBjb25zdGFudCB3b3VsZCBiZSByZXBldGl0aXZlLCBhcyB0aGUgdmFsdWUgaXMgdXNlZCBvbmx5IG9uY2UgYW5kIGl0cyBuYW1lIHdvdWxkIGJlIHRoZSBzYW1lIGFzIHRoZSBwcm9wZXJ0eS5cbiAgICBub3RpY2VCZWZvcmVTaG93blRpbWVvdXRJbk1pbGxpc2Vjb25kczogNTAwLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1tYWdpYy1udW1iZXJzIC0tIEV4dHJhY3RpbmcgbWFnaWMgbnVtYmVyIGFzIGEgY29uc3RhbnQgd291bGQgYmUgcmVwZXRpdGl2ZSwgYXMgdGhlIHZhbHVlIGlzIHVzZWQgb25seSBvbmNlIGFuZCBpdHMgbmFtZSB3b3VsZCBiZSB0aGUgc2FtZSBhcyB0aGUgcHJvcGVydHkuXG4gICAgbm90aWNlTWluVGltZW91dEluTWlsbGlzZWNvbmRzOiAyMDAwLFxuICAgIHByb2Nlc3NJdGVtOiBub29wLFxuICAgIHByb2dyZXNzQmFyVGl0bGU6ICcnLFxuICAgIHNob3VsZENvbnRpbnVlT25FcnJvcjogdHJ1ZSxcbiAgICBzaG91bGRTaG93Tm90aWNlOiB0cnVlLFxuICAgIHNob3VsZFNob3dQcm9ncmVzc0JhcjogdHJ1ZSxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbWFnaWMtbnVtYmVycyAtLSBFeHRyYWN0aW5nIG1hZ2ljIG51bWJlciBhcyBhIGNvbnN0YW50IHdvdWxkIGJlIHJlcGV0aXRpdmUsIGFzIHRoZSB2YWx1ZSBpcyB1c2VkIG9ubHkgb25jZSBhbmQgaXRzIG5hbWUgd291bGQgYmUgdGhlIHNhbWUgYXMgdGhlIHByb3BlcnR5LlxuICAgIHVpVXBkYXRlVGhyZXNob2xkSW5NaWxsaXNlY29uZHM6IDEwMFxuICB9O1xuXG4gIGNvbnN0IGZ1bGxPcHRpb25zOiBSZXF1aXJlZDxMb29wUGFyYW1zPFQ+PiA9IHtcbiAgICAuLi5ERUZBVUxUX09QVElPTlMsXG4gICAgLi4ucGFyYW1zXG4gIH07XG5cbiAgY29uc3Qgc3RhY2tUcmFjZSA9IGdldFN0YWNrVHJhY2UoMSk7XG5cbiAgY29uc3QgaXRlbXMgPSBmdWxsT3B0aW9ucy5pdGVtcztcbiAgbGV0IGl0ZXJhdGlvbkNvdW50ID0gMDtcbiAgbGV0IG5vdGljZSA9IG51bGwgYXMgTm90aWNlIHwgbnVsbDtcbiAgbGV0IGlzRG9uZSA9IGZhbHNlO1xuICBpbnZva2VBc3luY1NhZmVseSgoKSA9PiBzaG93Tm90aWNlKCkpO1xuXG4gIGNvbnN0IG5vdGljZU1pblRpbWVvdXRQcm9taXNlID0gc2xlZXAoZnVsbE9wdGlvbnMubm90aWNlTWluVGltZW91dEluTWlsbGlzZWNvbmRzKTtcbiAgY29uc3QgcHJvZ3Jlc3NCYXJFbCA9IGNyZWF0ZUVsKCdwcm9ncmVzcycpO1xuICBhZGRQbHVnaW5Dc3NDbGFzc2VzKHByb2dyZXNzQmFyRWwsICdsb29wJyk7XG4gIHByb2dyZXNzQmFyRWwubWF4ID0gaXRlbXMubGVuZ3RoO1xuXG4gIGxldCBsYXN0VUlVcGRhdGVUaW1lc3RhbXAgPSBwZXJmb3JtYW5jZS5ub3coKTtcblxuICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHtcbiAgICBpZiAoZnVsbE9wdGlvbnMuYWJvcnRTaWduYWwuYWJvcnRlZCkge1xuICAgICAgbm90aWNlPy5oaWRlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGl0ZXJhdGlvbkNvdW50Kys7XG4gICAgY29uc3QgaXRlcmF0aW9uU3RyID0gYCMgJHtTdHJpbmcoaXRlcmF0aW9uQ291bnQpfSAvICR7U3RyaW5nKGl0ZW1zLmxlbmd0aCl9YDtcbiAgICBjb25zdCBtZXNzYWdlID0gZnVsbE9wdGlvbnMuYnVpbGROb3RpY2VNZXNzYWdlKHsgaXRlbSwgaXRlcmF0aW9uU3RyIH0pO1xuICAgIGlmICghZnVsbE9wdGlvbnMuc2hvdWxkU2hvd1Byb2dyZXNzQmFyKSB7XG4gICAgICBub3RpY2U/LnNldE1lc3NhZ2UobWVzc2FnZSk7XG4gICAgfVxuICAgIGdldExpYkRlYnVnZ2VyKCdMb29wJykobWVzc2FnZSk7XG5cbiAgICB0cnkge1xuICAgICAgaWYgKHBlcmZvcm1hbmNlLm5vdygpIC0gbGFzdFVJVXBkYXRlVGltZXN0YW1wID4gZnVsbE9wdGlvbnMudWlVcGRhdGVUaHJlc2hvbGRJbk1pbGxpc2Vjb25kcykge1xuICAgICAgICBhd2FpdCByZXF1ZXN0QW5pbWF0aW9uRnJhbWVBc3luYygpO1xuICAgICAgICBsYXN0VUlVcGRhdGVUaW1lc3RhbXAgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgICAgIH1cbiAgICAgIGF3YWl0IGZ1bGxPcHRpb25zLnByb2Nlc3NJdGVtKGl0ZW0pO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBwcm9jZXNzaW5nIGl0ZW0nLCBpdGVtKTtcbiAgICAgIGlmICghZnVsbE9wdGlvbnMuc2hvdWxkQ29udGludWVPbkVycm9yKSB7XG4gICAgICAgIG5vdGljZT8uaGlkZSgpO1xuICAgICAgICB0aHJvdyBuZXcgQ3VzdG9tU3RhY2tUcmFjZUVycm9yKHtcbiAgICAgICAgICBjYXVzZTogZXJyb3IsXG4gICAgICAgICAgbWVzc2FnZTogJ2xvb3AgZmFpbGVkJyxcbiAgICAgICAgICBzdGFja1RyYWNlXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBlbWl0QXN5bmNFcnJvckV2ZW50KFxuICAgICAgICBuZXcgQ3VzdG9tU3RhY2tUcmFjZUVycm9yKHtcbiAgICAgICAgICBjYXVzZTogZXJyb3IsXG4gICAgICAgICAgbWVzc2FnZTogQVNZTkNfV1JBUFBFUl9FUlJPUl9NRVNTQUdFLFxuICAgICAgICAgIHN0YWNrVHJhY2VcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICAgIHByb2dyZXNzQmFyRWwudmFsdWUrKztcbiAgfVxuICBpZiAobm90aWNlKSB7XG4gICAgYXdhaXQgbm90aWNlTWluVGltZW91dFByb21pc2U7XG4gIH1cbiAgbm90aWNlPy5oaWRlKCk7XG4gIGlzRG9uZSA9IHRydWU7XG5cbiAgYXN5bmMgZnVuY3Rpb24gc2hvd05vdGljZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIWZ1bGxPcHRpb25zLnNob3VsZFNob3dOb3RpY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgYXdhaXQgc2xlZXAoZnVsbE9wdGlvbnMubm90aWNlQmVmb3JlU2hvd25UaW1lb3V0SW5NaWxsaXNlY29uZHMpO1xuICAgIGlmIChpc0RvbmUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbm90aWNlID0gcGFyYW1zLnBsdWdpbk5vdGljZUNvbXBvbmVudC5zaG93Tm90aWNlKCcnLCB7fSk7XG4gICAgaWYgKCFmdWxsT3B0aW9ucy5zaG91bGRTaG93UHJvZ3Jlc3NCYXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudCgpO1xuICAgIGZyYWdtZW50LmNyZWF0ZURpdih7IHRleHQ6IGZ1bGxPcHRpb25zLnByb2dyZXNzQmFyVGl0bGUgfSk7XG4gICAgZnJhZ21lbnQuYXBwZW5kQ2hpbGQocHJvZ3Jlc3NCYXJFbCk7XG4gICAgbm90aWNlLnNldE1lc3NhZ2UoZnJhZ21lbnQpO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVFBLFNBQVMsY0FBYztBQUl2QixTQUFTLHdCQUF3QjtBQUNqQztBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsc0JBQXNCO0FBQy9CO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLFlBQVk7QUFDckIsU0FBUywyQkFBMkI7QUErR3BDLGVBQXNCLEtBQVEsUUFBc0M7QUFDbEUsUUFBTSxrQkFBa0I7QUFBQSxJQUN0QixhQUFhLGlCQUFpQjtBQUFBO0FBQUEsSUFFOUIscUJBQTZCO0FBQzNCLFlBQU0sSUFBSSxNQUFNLGdDQUFnQztBQUFBLElBQ2xEO0FBQUE7QUFBQSxJQUVBLE9BQU8sQ0FBQztBQUFBO0FBQUEsSUFFUix3Q0FBd0M7QUFBQTtBQUFBLElBRXhDLGdDQUFnQztBQUFBLElBQ2hDLGFBQWE7QUFBQSxJQUNiLGtCQUFrQjtBQUFBLElBQ2xCLHVCQUF1QjtBQUFBLElBQ3ZCLGtCQUFrQjtBQUFBLElBQ2xCLHVCQUF1QjtBQUFBO0FBQUEsSUFFdkIsaUNBQWlDO0FBQUEsRUFDbkM7QUFFQSxRQUFNLGNBQXVDO0FBQUEsSUFDM0MsR0FBRztBQUFBLElBQ0gsR0FBRztBQUFBLEVBQ0w7QUFFQSxRQUFNLGFBQWEsY0FBYyxDQUFDO0FBRWxDLFFBQU0sUUFBUSxZQUFZO0FBQzFCLE1BQUksaUJBQWlCO0FBQ3JCLE1BQUksU0FBUztBQUNiLE1BQUksU0FBUztBQUNiLG9CQUFrQixNQUFNLFdBQVcsQ0FBQztBQUVwQyxRQUFNLDBCQUEwQixNQUFNLFlBQVksOEJBQThCO0FBQ2hGLFFBQU0sZ0JBQWdCLFNBQVMsVUFBVTtBQUN6QyxzQkFBb0IsZUFBZSxNQUFNO0FBQ3pDLGdCQUFjLE1BQU0sTUFBTTtBQUUxQixNQUFJLHdCQUF3QixZQUFZLElBQUk7QUFFNUMsYUFBVyxRQUFRLE9BQU87QUFDeEIsUUFBSSxZQUFZLFlBQVksU0FBUztBQUNuQyxjQUFRLEtBQUs7QUFDYjtBQUFBLElBQ0Y7QUFDQTtBQUNBLFVBQU0sZUFBZSxLQUFLLE9BQU8sY0FBYyxDQUFDLE1BQU0sT0FBTyxNQUFNLE1BQU0sQ0FBQztBQUMxRSxVQUFNLFVBQVUsWUFBWSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyRSxRQUFJLENBQUMsWUFBWSx1QkFBdUI7QUFDdEMsY0FBUSxXQUFXLE9BQU87QUFBQSxJQUM1QjtBQUNBLG1CQUFlLE1BQU0sRUFBRSxPQUFPO0FBRTlCLFFBQUk7QUFDRixVQUFJLFlBQVksSUFBSSxJQUFJLHdCQUF3QixZQUFZLGlDQUFpQztBQUMzRixjQUFNLDJCQUEyQjtBQUNqQyxnQ0FBd0IsWUFBWSxJQUFJO0FBQUEsTUFDMUM7QUFDQSxZQUFNLFlBQVksWUFBWSxJQUFJO0FBQUEsSUFDcEMsU0FBUyxPQUFPO0FBQ2QsY0FBUSxNQUFNLHlCQUF5QixJQUFJO0FBQzNDLFVBQUksQ0FBQyxZQUFZLHVCQUF1QjtBQUN0QyxnQkFBUSxLQUFLO0FBQ2IsY0FBTSxJQUFJLHNCQUFzQjtBQUFBLFVBQzlCLE9BQU87QUFBQSxVQUNQLFNBQVM7QUFBQSxVQUNUO0FBQUEsUUFDRixDQUFDO0FBQUEsTUFDSDtBQUVBO0FBQUEsUUFDRSxJQUFJLHNCQUFzQjtBQUFBLFVBQ3hCLE9BQU87QUFBQSxVQUNQLFNBQVM7QUFBQSxVQUNUO0FBQUEsUUFDRixDQUFDO0FBQUEsTUFDSDtBQUFBLElBQ0Y7QUFDQSxrQkFBYztBQUFBLEVBQ2hCO0FBQ0EsTUFBSSxRQUFRO0FBQ1YsVUFBTTtBQUFBLEVBQ1I7QUFDQSxVQUFRLEtBQUs7QUFDYixXQUFTO0FBRVQsaUJBQWUsYUFBNEI7QUFDekMsUUFBSSxDQUFDLFlBQVksa0JBQWtCO0FBQ2pDO0FBQUEsSUFDRjtBQUNBLFVBQU0sTUFBTSxZQUFZLHNDQUFzQztBQUM5RCxRQUFJLFFBQVE7QUFDVjtBQUFBLElBQ0Y7QUFDQSxhQUFTLE9BQU8sc0JBQXNCLFdBQVcsSUFBSSxDQUFDLENBQUM7QUFDdkQsUUFBSSxDQUFDLFlBQVksdUJBQXVCO0FBQ3RDO0FBQUEsSUFDRjtBQUNBLFVBQU0sV0FBVyxlQUFlO0FBQ2hDLGFBQVMsVUFBVSxFQUFFLE1BQU0sWUFBWSxpQkFBaUIsQ0FBQztBQUN6RCxhQUFTLFlBQVksYUFBYTtBQUNsQyxXQUFPLFdBQVcsUUFBUTtBQUFBLEVBQzVCO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -41,7 +41,10 @@ type PluginMarkdownCodeBlockProcessorRegistrarRegisterMarkdownCodeBlockProcessor
41
41
  * A registrar for markdown code block processors.
42
42
  */
43
43
  export declare class PluginMarkdownCodeBlockProcessorRegistrar implements MarkdownCodeBlockProcessorRegistrar {
44
- private readonly plugin;
44
+ /**
45
+ * The Obsidian plugin instance the code block processors are registered with.
46
+ */
47
+ protected readonly plugin: Plugin;
45
48
  /**
46
49
  * Creates a new markdown code block processor registrar.
47
50
  *
@@ -23,6 +23,9 @@ if you want to view the source, please visit the github repository of this plugi
23
23
 
24
24
  import { normalizePromisable } from "../async.mjs";
25
25
  class PluginMarkdownCodeBlockProcessorRegistrar {
26
+ /**
27
+ * The Obsidian plugin instance the code block processors are registered with.
28
+ */
26
29
  plugin;
27
30
  /**
28
31
  * Creates a new markdown code block processor registrar.
@@ -45,4 +48,4 @@ class PluginMarkdownCodeBlockProcessorRegistrar {
45
48
  export {
46
49
  PluginMarkdownCodeBlockProcessorRegistrar
47
50
  };
48
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL21hcmtkb3duLWNvZGUtYmxvY2stcHJvY2Vzc29yLXJlZ2lzdHJhci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFJlZ2lzdGVycyBhIG1hcmtkb3duIGNvZGUgYmxvY2sgcHJvY2Vzc29yLlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgTWFya2Rvd25Qb3N0UHJvY2Vzc29yLFxuICBNYXJrZG93blBvc3RQcm9jZXNzb3JDb250ZXh0LFxuICBQbHVnaW5cbn0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBQcm9taXNhYmxlIH0gZnJvbSAndHlwZS1mZXN0JztcblxuaW1wb3J0IHsgbm9ybWFsaXplUHJvbWlzYWJsZSB9IGZyb20gJy4uL2FzeW5jLnRzJztcblxuLyoqXG4gKiBBIHJlZ2lzdHJhciBmb3IgbWFya2Rvd24gY29kZSBibG9jayBwcm9jZXNzb3JzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1hcmtkb3duQ29kZUJsb2NrUHJvY2Vzc29yUmVnaXN0cmFyIHtcbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIG1hcmtkb3duIGNvZGUgYmxvY2sgcHJvY2Vzc29yLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBtYXJrZG93biBjb2RlIGJsb2NrIHByb2Nlc3Nvci5cbiAgICogQHJldHVybnMgVGhlIG1hcmtkb3duIHBvc3QgcHJvY2Vzc29yLlxuICAgKi9cbiAgcmVnaXN0ZXJNYXJrZG93bkNvZGVCbG9ja1Byb2Nlc3NvcihwYXJhbXM6IE1hcmtkb3duQ29kZUJsb2NrUHJvY2Vzc29yUmVnaXN0cmFyUmVnaXN0ZXJNYXJrZG93bkNvZGVCbG9ja1Byb2Nlc3NvclBhcmFtcyk6IE1hcmtkb3duUG9zdFByb2Nlc3Nvcjtcbn1cblxuaW50ZXJmYWNlIE1hcmtkb3duQ29kZUJsb2NrUHJvY2Vzc29yUmVnaXN0cmFyUmVnaXN0ZXJNYXJrZG93bkNvZGVCbG9ja1Byb2Nlc3NvclBhcmFtcyB7XG4gIC8qKlxuICAgKiBIYW5kbGVyIGZ1bmN0aW9uIGZvciB0aGUgY29kZSBibG9jayBwcm9jZXNzb3IuXG4gICAqXG4gICAqIEBwYXJhbSBzb3VyY2UgLSBUaGUgc291cmNlIGNvZGUgb2YgdGhlIGNvZGUgYmxvY2suXG4gICAqIEBwYXJhbSBlbCAtIFRoZSBIVE1MIGVsZW1lbnQgcmVwcmVzZW50aW5nIHRoZSBjb2RlIGJsb2NrLlxuICAgKiBAcGFyYW0gY3R4IC0gVGhlIGNvbnRleHQgZm9yIHRoZSBtYXJrZG93biBwb3N0IHByb2Nlc3Nvci5cbiAgICovXG4gIGhhbmRsZXIodGhpczogdm9pZCwgc291cmNlOiBzdHJpbmcsIGVsOiBIVE1MRWxlbWVudCwgY3R4OiBNYXJrZG93blBvc3RQcm9jZXNzb3JDb250ZXh0KTogUHJvbWlzYWJsZTx2b2lkPjtcblxuICAvKipcbiAgICogVGhlIGxhbmd1YWdlIG9mIHRoZSBjb2RlIGJsb2NrIHRvIHJlZ2lzdGVyIHRoZSBwcm9jZXNzb3IgZm9yLlxuICAgKi9cbiAgcmVhZG9ubHkgbGFuZ3VhZ2U6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHNvcnQgb3JkZXIgb2YgdGhlIHByb2Nlc3Nvci4gTG93ZXIgbnVtYmVycyBhcmUgcHJvY2Vzc2VkIGZpcnN0LiBEZWZhdWx0cyB0byAwLlxuICAgKi9cbiAgcmVhZG9ubHkgc29ydE9yZGVyPzogbnVtYmVyO1xufVxuXG50eXBlIFBsdWdpbk1hcmtkb3duQ29kZUJsb2NrUHJvY2Vzc29yUmVnaXN0cmFyUmVnaXN0ZXJNYXJrZG93bkNvZGVCbG9ja1Byb2Nlc3NvclBhcmFtcyA9IE1hcmtkb3duQ29kZUJsb2NrUHJvY2Vzc29yUmVnaXN0cmFyUmVnaXN0ZXJNYXJrZG93bkNvZGVCbG9ja1Byb2Nlc3NvclBhcmFtcztcblxuLyoqXG4gKiBBIHJlZ2lzdHJhciBmb3IgbWFya2Rvd24gY29kZSBibG9jayBwcm9jZXNzb3JzLlxuICovXG5leHBvcnQgY2xhc3MgUGx1Z2luTWFya2Rvd25Db2RlQmxvY2tQcm9jZXNzb3JSZWdpc3RyYXIgaW1wbGVtZW50cyBNYXJrZG93bkNvZGVCbG9ja1Byb2Nlc3NvclJlZ2lzdHJhciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGx1Z2luOiBQbHVnaW47XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgbWFya2Rvd24gY29kZSBibG9jayBwcm9jZXNzb3IgcmVnaXN0cmFyLlxuICAgKlxuICAgKiBAcGFyYW0gcGx1Z2luIC0gVGhlIHBsdWdpbiB0byByZWdpc3RlciB0aGUgbWFya2Rvd24gY29kZSBibG9jayBwcm9jZXNzb3Igd2l0aC5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwbHVnaW46IFBsdWdpbikge1xuICAgIHRoaXMucGx1Z2luID0gcGx1Z2luO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIG1hcmtkb3duIGNvZGUgYmxvY2sgcHJvY2Vzc29yLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBtYXJrZG93biBjb2RlIGJsb2NrIHByb2Nlc3Nvci5cbiAgICogQHJldHVybnMgVGhlIG1hcmtkb3duIHBvc3QgcHJvY2Vzc29yLlxuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyTWFya2Rvd25Db2RlQmxvY2tQcm9jZXNzb3IocGFyYW1zOiBQbHVnaW5NYXJrZG93bkNvZGVCbG9ja1Byb2Nlc3NvclJlZ2lzdHJhclJlZ2lzdGVyTWFya2Rvd25Db2RlQmxvY2tQcm9jZXNzb3JQYXJhbXMpOiBNYXJrZG93blBvc3RQcm9jZXNzb3Ige1xuICAgIHJldHVybiB0aGlzLnBsdWdpbi5yZWdpc3Rlck1hcmtkb3duQ29kZUJsb2NrUHJvY2Vzc29yKHBhcmFtcy5sYW5ndWFnZSwgKHNvdXJjZSwgZWwsIGN0eCkgPT4gbm9ybWFsaXplUHJvbWlzYWJsZShwYXJhbXMuaGFuZGxlcihzb3VyY2UsIGVsLCBjdHgpKSwgcGFyYW1zLnNvcnRPcmRlcik7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBYUEsU0FBUywyQkFBMkI7QUF5QzdCLE1BQU0sMENBQXlGO0FBQUEsRUFDbkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPVixZQUFZLFFBQWdCO0FBQ2pDLFNBQUssU0FBUztBQUFBLEVBQ2hCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRTyxtQ0FBbUMsUUFBa0g7QUFDMUosV0FBTyxLQUFLLE9BQU8sbUNBQW1DLE9BQU8sVUFBVSxDQUFDLFFBQVEsSUFBSSxRQUFRLG9CQUFvQixPQUFPLFFBQVEsUUFBUSxJQUFJLEdBQUcsQ0FBQyxHQUFHLE9BQU8sU0FBUztBQUFBLEVBQ3BLO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
51
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL21hcmtkb3duLWNvZGUtYmxvY2stcHJvY2Vzc29yLXJlZ2lzdHJhci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFJlZ2lzdGVycyBhIG1hcmtkb3duIGNvZGUgYmxvY2sgcHJvY2Vzc29yLlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgTWFya2Rvd25Qb3N0UHJvY2Vzc29yLFxuICBNYXJrZG93blBvc3RQcm9jZXNzb3JDb250ZXh0LFxuICBQbHVnaW5cbn0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBQcm9taXNhYmxlIH0gZnJvbSAndHlwZS1mZXN0JztcblxuaW1wb3J0IHsgbm9ybWFsaXplUHJvbWlzYWJsZSB9IGZyb20gJy4uL2FzeW5jLnRzJztcblxuLyoqXG4gKiBBIHJlZ2lzdHJhciBmb3IgbWFya2Rvd24gY29kZSBibG9jayBwcm9jZXNzb3JzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1hcmtkb3duQ29kZUJsb2NrUHJvY2Vzc29yUmVnaXN0cmFyIHtcbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIG1hcmtkb3duIGNvZGUgYmxvY2sgcHJvY2Vzc29yLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBtYXJrZG93biBjb2RlIGJsb2NrIHByb2Nlc3Nvci5cbiAgICogQHJldHVybnMgVGhlIG1hcmtkb3duIHBvc3QgcHJvY2Vzc29yLlxuICAgKi9cbiAgcmVnaXN0ZXJNYXJrZG93bkNvZGVCbG9ja1Byb2Nlc3NvcihwYXJhbXM6IE1hcmtkb3duQ29kZUJsb2NrUHJvY2Vzc29yUmVnaXN0cmFyUmVnaXN0ZXJNYXJrZG93bkNvZGVCbG9ja1Byb2Nlc3NvclBhcmFtcyk6IE1hcmtkb3duUG9zdFByb2Nlc3Nvcjtcbn1cblxuaW50ZXJmYWNlIE1hcmtkb3duQ29kZUJsb2NrUHJvY2Vzc29yUmVnaXN0cmFyUmVnaXN0ZXJNYXJrZG93bkNvZGVCbG9ja1Byb2Nlc3NvclBhcmFtcyB7XG4gIC8qKlxuICAgKiBIYW5kbGVyIGZ1bmN0aW9uIGZvciB0aGUgY29kZSBibG9jayBwcm9jZXNzb3IuXG4gICAqXG4gICAqIEBwYXJhbSBzb3VyY2UgLSBUaGUgc291cmNlIGNvZGUgb2YgdGhlIGNvZGUgYmxvY2suXG4gICAqIEBwYXJhbSBlbCAtIFRoZSBIVE1MIGVsZW1lbnQgcmVwcmVzZW50aW5nIHRoZSBjb2RlIGJsb2NrLlxuICAgKiBAcGFyYW0gY3R4IC0gVGhlIGNvbnRleHQgZm9yIHRoZSBtYXJrZG93biBwb3N0IHByb2Nlc3Nvci5cbiAgICovXG4gIGhhbmRsZXIodGhpczogdm9pZCwgc291cmNlOiBzdHJpbmcsIGVsOiBIVE1MRWxlbWVudCwgY3R4OiBNYXJrZG93blBvc3RQcm9jZXNzb3JDb250ZXh0KTogUHJvbWlzYWJsZTx2b2lkPjtcblxuICAvKipcbiAgICogVGhlIGxhbmd1YWdlIG9mIHRoZSBjb2RlIGJsb2NrIHRvIHJlZ2lzdGVyIHRoZSBwcm9jZXNzb3IgZm9yLlxuICAgKi9cbiAgcmVhZG9ubHkgbGFuZ3VhZ2U6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHNvcnQgb3JkZXIgb2YgdGhlIHByb2Nlc3Nvci4gTG93ZXIgbnVtYmVycyBhcmUgcHJvY2Vzc2VkIGZpcnN0LiBEZWZhdWx0cyB0byAwLlxuICAgKi9cbiAgcmVhZG9ubHkgc29ydE9yZGVyPzogbnVtYmVyO1xufVxuXG50eXBlIFBsdWdpbk1hcmtkb3duQ29kZUJsb2NrUHJvY2Vzc29yUmVnaXN0cmFyUmVnaXN0ZXJNYXJrZG93bkNvZGVCbG9ja1Byb2Nlc3NvclBhcmFtcyA9IE1hcmtkb3duQ29kZUJsb2NrUHJvY2Vzc29yUmVnaXN0cmFyUmVnaXN0ZXJNYXJrZG93bkNvZGVCbG9ja1Byb2Nlc3NvclBhcmFtcztcblxuLyoqXG4gKiBBIHJlZ2lzdHJhciBmb3IgbWFya2Rvd24gY29kZSBibG9jayBwcm9jZXNzb3JzLlxuICovXG5leHBvcnQgY2xhc3MgUGx1Z2luTWFya2Rvd25Db2RlQmxvY2tQcm9jZXNzb3JSZWdpc3RyYXIgaW1wbGVtZW50cyBNYXJrZG93bkNvZGVCbG9ja1Byb2Nlc3NvclJlZ2lzdHJhciB7XG4gIC8qKlxuICAgKiBUaGUgT2JzaWRpYW4gcGx1Z2luIGluc3RhbmNlIHRoZSBjb2RlIGJsb2NrIHByb2Nlc3NvcnMgYXJlIHJlZ2lzdGVyZWQgd2l0aC5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBwbHVnaW46IFBsdWdpbjtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBtYXJrZG93biBjb2RlIGJsb2NrIHByb2Nlc3NvciByZWdpc3RyYXIuXG4gICAqXG4gICAqIEBwYXJhbSBwbHVnaW4gLSBUaGUgcGx1Z2luIHRvIHJlZ2lzdGVyIHRoZSBtYXJrZG93biBjb2RlIGJsb2NrIHByb2Nlc3NvciB3aXRoLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHBsdWdpbjogUGx1Z2luKSB7XG4gICAgdGhpcy5wbHVnaW4gPSBwbHVnaW47XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgbWFya2Rvd24gY29kZSBibG9jayBwcm9jZXNzb3IuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIG1hcmtkb3duIGNvZGUgYmxvY2sgcHJvY2Vzc29yLlxuICAgKiBAcmV0dXJucyBUaGUgbWFya2Rvd24gcG9zdCBwcm9jZXNzb3IuXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJNYXJrZG93bkNvZGVCbG9ja1Byb2Nlc3NvcihwYXJhbXM6IFBsdWdpbk1hcmtkb3duQ29kZUJsb2NrUHJvY2Vzc29yUmVnaXN0cmFyUmVnaXN0ZXJNYXJrZG93bkNvZGVCbG9ja1Byb2Nlc3NvclBhcmFtcyk6IE1hcmtkb3duUG9zdFByb2Nlc3NvciB7XG4gICAgcmV0dXJuIHRoaXMucGx1Z2luLnJlZ2lzdGVyTWFya2Rvd25Db2RlQmxvY2tQcm9jZXNzb3IocGFyYW1zLmxhbmd1YWdlLCAoc291cmNlLCBlbCwgY3R4KSA9PiBub3JtYWxpemVQcm9taXNhYmxlKHBhcmFtcy5oYW5kbGVyKHNvdXJjZSwgZWwsIGN0eCkpLCBwYXJhbXMuc29ydE9yZGVyKTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFhQSxTQUFTLDJCQUEyQjtBQXlDN0IsTUFBTSwwQ0FBeUY7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUlqRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9aLFlBQVksUUFBZ0I7QUFDakMsU0FBSyxTQUFTO0FBQUEsRUFDaEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFPLG1DQUFtQyxRQUFrSDtBQUMxSixXQUFPLEtBQUssT0FBTyxtQ0FBbUMsT0FBTyxVQUFVLENBQUMsUUFBUSxJQUFJLFFBQVEsb0JBQW9CLE9BQU8sUUFBUSxRQUFRLElBQUksR0FBRyxDQUFDLEdBQUcsT0FBTyxTQUFTO0FBQUEsRUFDcEs7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -42,7 +42,7 @@ type PluginMarkdownPostProcessorRegistrarRegisterMarkdownPostProcessorParams = M
42
42
  * Markdown post processor registrar in an Obsidian plugin.
43
43
  */
44
44
  export declare class PluginMarkdownPostProcessorRegistrar implements MarkdownPostProcessorRegistrar {
45
- private readonly plugin;
45
+ protected readonly plugin: Plugin;
46
46
  /**
47
47
  * Creates a new instance of the {@link PluginMarkdownPostProcessorRegistrar} class.
48
48
  *
@@ -45,4 +45,4 @@ class PluginMarkdownPostProcessorRegistrar {
45
45
  export {
46
46
  PluginMarkdownPostProcessorRegistrar
47
47
  };
48
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL21hcmtkb3duLXBvc3QtcHJvY2Vzc29yLXJlZ2lzdHJhci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIE1hcmtkb3duIHBvc3QgcHJvY2Vzc29yIHJlZ2lzdHJhcnMuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBNYXJrZG93blBvc3RQcm9jZXNzb3JDb250ZXh0IH0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBQcm9taXNhYmxlIH0gZnJvbSAndHlwZS1mZXN0JztcblxuaW1wb3J0IHsgUGx1Z2luIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyBub3JtYWxpemVQcm9taXNhYmxlIH0gZnJvbSAnLi4vYXN5bmMudHMnO1xuXG4vKipcbiAqIE1hcmtkb3duIHBvc3QgcHJvY2Vzc29yIHJlZ2lzdHJhci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNYXJrZG93blBvc3RQcm9jZXNzb3JSZWdpc3RyYXIge1xuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgbWFya2Rvd24gcG9zdCBwcm9jZXNzb3IuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIG1hcmtkb3duIHBvc3QgcHJvY2Vzc29yIHJlZ2lzdHJhdGlvbi5cbiAgICovXG4gIHJlZ2lzdGVyTWFya2Rvd25Qb3N0UHJvY2Vzc29yKHBhcmFtczogTWFya2Rvd25Qb3N0UHJvY2Vzc29yUmVnaXN0cmFyUmVnaXN0ZXJNYXJrZG93blBvc3RQcm9jZXNzb3JQYXJhbXMpOiB2b2lkO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHJlZ2lzdGVyaW5nIGEgbWFya2Rvd24gcG9zdCBwcm9jZXNzb3IuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFya2Rvd25Qb3N0UHJvY2Vzc29yUmVnaXN0cmFyUmVnaXN0ZXJNYXJrZG93blBvc3RQcm9jZXNzb3JQYXJhbXMge1xuICAvKipcbiAgICogUG9zdCBwcm9jZXNzb3IgZnVuY3Rpb24gdG8gcmVnaXN0ZXIuXG4gICAqXG4gICAqIEBwYXJhbSBlbCAtIFRoZSBIVE1MIGVsZW1lbnQgdG8gcHJvY2Vzcy5cbiAgICogQHBhcmFtIGN0eCAtIFRoZSBtYXJrZG93biBwb3N0IHByb2Nlc3NvciBjb250ZXh0LlxuICAgKiBAcmV0dXJucyBBIHByb21pc2FibGUgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBwb3N0IHByb2Nlc3NpbmcgaXMgY29tcGxldGUuXG4gICAqL1xuICBwb3N0UHJvY2Vzc29yKGVsOiBIVE1MRWxlbWVudCwgY3R4OiBNYXJrZG93blBvc3RQcm9jZXNzb3JDb250ZXh0KTogUHJvbWlzYWJsZTx2b2lkPjtcblxuICAvKipcbiAgICogT3B0aW9uYWwgc29ydCBvcmRlciBmb3IgdGhlIHBvc3QgcHJvY2Vzc29yLiBMb3dlciBudW1iZXJzIGFyZSBwcm9jZXNzZWQgZmlyc3QuXG4gICAqXG4gICAqIEBkZWZhdWx0IGAwYFxuICAgKi9cbiAgcmVhZG9ubHkgc29ydE9yZGVyPzogbnVtYmVyO1xufVxuXG50eXBlIFBsdWdpbk1hcmtkb3duUG9zdFByb2Nlc3NvclJlZ2lzdHJhclJlZ2lzdGVyTWFya2Rvd25Qb3N0UHJvY2Vzc29yUGFyYW1zID0gTWFya2Rvd25Qb3N0UHJvY2Vzc29yUmVnaXN0cmFyUmVnaXN0ZXJNYXJrZG93blBvc3RQcm9jZXNzb3JQYXJhbXM7XG5cbi8qKlxuICogTWFya2Rvd24gcG9zdCBwcm9jZXNzb3IgcmVnaXN0cmFyIGluIGFuIE9ic2lkaWFuIHBsdWdpbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFBsdWdpbk1hcmtkb3duUG9zdFByb2Nlc3NvclJlZ2lzdHJhciBpbXBsZW1lbnRzIE1hcmtkb3duUG9zdFByb2Nlc3NvclJlZ2lzdHJhciB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSB7QGxpbmsgUGx1Z2luTWFya2Rvd25Qb3N0UHJvY2Vzc29yUmVnaXN0cmFyfSBjbGFzcy5cbiAgICpcbiAgICogQHBhcmFtIHBsdWdpbiAtIFRoZSBPYnNpZGlhbiBwbHVnaW4gaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBwbHVnaW46IFBsdWdpbikge31cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgbWFya2Rvd24gcG9zdCBwcm9jZXNzb3IuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIG1hcmtkb3duIHBvc3QgcHJvY2Vzc29yIHJlZ2lzdHJhdGlvbi5cbiAgICovXG4gIHB1YmxpYyByZWdpc3Rlck1hcmtkb3duUG9zdFByb2Nlc3NvcihwYXJhbXM6IFBsdWdpbk1hcmtkb3duUG9zdFByb2Nlc3NvclJlZ2lzdHJhclJlZ2lzdGVyTWFya2Rvd25Qb3N0UHJvY2Vzc29yUGFyYW1zKTogdm9pZCB7XG4gICAgdGhpcy5wbHVnaW4ucmVnaXN0ZXJNYXJrZG93blBvc3RQcm9jZXNzb3IoKGVsLCBjdHgpID0+IG5vcm1hbGl6ZVByb21pc2FibGUocGFyYW1zLnBvc3RQcm9jZXNzb3IoZWwsIGN0eCkpLCBwYXJhbXMuc29ydE9yZGVyKTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTQSxTQUFTLGNBQWM7QUFFdkIsU0FBUywyQkFBMkI7QUF3QzdCLE1BQU0scUNBQStFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTW5GLFlBQTZCLFFBQWdCO0FBQWhCO0FBQUEsRUFBaUI7QUFBQSxFQUFqQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU83Qiw4QkFBOEIsUUFBdUY7QUFDMUgsU0FBSyxPQUFPLDhCQUE4QixDQUFDLElBQUksUUFBUSxvQkFBb0IsT0FBTyxjQUFjLElBQUksR0FBRyxDQUFDLEdBQUcsT0FBTyxTQUFTO0FBQUEsRUFDN0g7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
48
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL21hcmtkb3duLXBvc3QtcHJvY2Vzc29yLXJlZ2lzdHJhci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIE1hcmtkb3duIHBvc3QgcHJvY2Vzc29yIHJlZ2lzdHJhcnMuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBNYXJrZG93blBvc3RQcm9jZXNzb3JDb250ZXh0IH0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBQcm9taXNhYmxlIH0gZnJvbSAndHlwZS1mZXN0JztcblxuaW1wb3J0IHsgUGx1Z2luIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyBub3JtYWxpemVQcm9taXNhYmxlIH0gZnJvbSAnLi4vYXN5bmMudHMnO1xuXG4vKipcbiAqIE1hcmtkb3duIHBvc3QgcHJvY2Vzc29yIHJlZ2lzdHJhci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNYXJrZG93blBvc3RQcm9jZXNzb3JSZWdpc3RyYXIge1xuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgbWFya2Rvd24gcG9zdCBwcm9jZXNzb3IuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIG1hcmtkb3duIHBvc3QgcHJvY2Vzc29yIHJlZ2lzdHJhdGlvbi5cbiAgICovXG4gIHJlZ2lzdGVyTWFya2Rvd25Qb3N0UHJvY2Vzc29yKHBhcmFtczogTWFya2Rvd25Qb3N0UHJvY2Vzc29yUmVnaXN0cmFyUmVnaXN0ZXJNYXJrZG93blBvc3RQcm9jZXNzb3JQYXJhbXMpOiB2b2lkO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHJlZ2lzdGVyaW5nIGEgbWFya2Rvd24gcG9zdCBwcm9jZXNzb3IuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFya2Rvd25Qb3N0UHJvY2Vzc29yUmVnaXN0cmFyUmVnaXN0ZXJNYXJrZG93blBvc3RQcm9jZXNzb3JQYXJhbXMge1xuICAvKipcbiAgICogUG9zdCBwcm9jZXNzb3IgZnVuY3Rpb24gdG8gcmVnaXN0ZXIuXG4gICAqXG4gICAqIEBwYXJhbSBlbCAtIFRoZSBIVE1MIGVsZW1lbnQgdG8gcHJvY2Vzcy5cbiAgICogQHBhcmFtIGN0eCAtIFRoZSBtYXJrZG93biBwb3N0IHByb2Nlc3NvciBjb250ZXh0LlxuICAgKiBAcmV0dXJucyBBIHByb21pc2FibGUgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBwb3N0IHByb2Nlc3NpbmcgaXMgY29tcGxldGUuXG4gICAqL1xuICBwb3N0UHJvY2Vzc29yKGVsOiBIVE1MRWxlbWVudCwgY3R4OiBNYXJrZG93blBvc3RQcm9jZXNzb3JDb250ZXh0KTogUHJvbWlzYWJsZTx2b2lkPjtcblxuICAvKipcbiAgICogT3B0aW9uYWwgc29ydCBvcmRlciBmb3IgdGhlIHBvc3QgcHJvY2Vzc29yLiBMb3dlciBudW1iZXJzIGFyZSBwcm9jZXNzZWQgZmlyc3QuXG4gICAqXG4gICAqIEBkZWZhdWx0IGAwYFxuICAgKi9cbiAgcmVhZG9ubHkgc29ydE9yZGVyPzogbnVtYmVyO1xufVxuXG50eXBlIFBsdWdpbk1hcmtkb3duUG9zdFByb2Nlc3NvclJlZ2lzdHJhclJlZ2lzdGVyTWFya2Rvd25Qb3N0UHJvY2Vzc29yUGFyYW1zID0gTWFya2Rvd25Qb3N0UHJvY2Vzc29yUmVnaXN0cmFyUmVnaXN0ZXJNYXJrZG93blBvc3RQcm9jZXNzb3JQYXJhbXM7XG5cbi8qKlxuICogTWFya2Rvd24gcG9zdCBwcm9jZXNzb3IgcmVnaXN0cmFyIGluIGFuIE9ic2lkaWFuIHBsdWdpbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFBsdWdpbk1hcmtkb3duUG9zdFByb2Nlc3NvclJlZ2lzdHJhciBpbXBsZW1lbnRzIE1hcmtkb3duUG9zdFByb2Nlc3NvclJlZ2lzdHJhciB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSB7QGxpbmsgUGx1Z2luTWFya2Rvd25Qb3N0UHJvY2Vzc29yUmVnaXN0cmFyfSBjbGFzcy5cbiAgICpcbiAgICogQHBhcmFtIHBsdWdpbiAtIFRoZSBPYnNpZGlhbiBwbHVnaW4gaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlYWRvbmx5IHBsdWdpbjogUGx1Z2luKSB7fVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSBtYXJrZG93biBwb3N0IHByb2Nlc3Nvci5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgbWFya2Rvd24gcG9zdCBwcm9jZXNzb3IgcmVnaXN0cmF0aW9uLlxuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyTWFya2Rvd25Qb3N0UHJvY2Vzc29yKHBhcmFtczogUGx1Z2luTWFya2Rvd25Qb3N0UHJvY2Vzc29yUmVnaXN0cmFyUmVnaXN0ZXJNYXJrZG93blBvc3RQcm9jZXNzb3JQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLnBsdWdpbi5yZWdpc3Rlck1hcmtkb3duUG9zdFByb2Nlc3NvcigoZWwsIGN0eCkgPT4gbm9ybWFsaXplUHJvbWlzYWJsZShwYXJhbXMucG9zdFByb2Nlc3NvcihlbCwgY3R4KSksIHBhcmFtcy5zb3J0T3JkZXIpO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVNBLFNBQVMsY0FBYztBQUV2QixTQUFTLDJCQUEyQjtBQXdDN0IsTUFBTSxxQ0FBK0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNbkYsWUFBK0IsUUFBZ0I7QUFBaEI7QUFBQSxFQUFpQjtBQUFBLEVBQWpCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTy9CLDhCQUE4QixRQUF1RjtBQUMxSCxTQUFLLE9BQU8sOEJBQThCLENBQUMsSUFBSSxRQUFRLG9CQUFvQixPQUFPLGNBQWMsSUFBSSxHQUFHLENBQUMsR0FBRyxPQUFPLFNBQVM7QUFBQSxFQUM3SDtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -9,6 +9,63 @@ import type { App, CachedMetadata, Reference, TAbstractFile } from 'obsidian';
9
9
  import type { RetryOptions } from '../async.mjs';
10
10
  import type { PathOrFile } from './file-system.mjs';
11
11
  import type { CombinedFrontmatter } from './frontmatter.mjs';
12
+ import type { ParseLinkFrontmatterReference, ParseLinkFrontmatterReferenceWithOffsets, ParseLinkReference } from './parse-link.mjs';
13
+ /**
14
+ * A parsing feature that was applied when computing a {@link CachedMetadataEx}.
15
+ */
16
+ export declare enum CachedMetadataExFeature {
17
+ /**
18
+ * The external links parsed from the note content body.
19
+ */
20
+ ExternalLinks = "ExternalLinks",
21
+ /**
22
+ * The external links parsed from single-link note frontmatter values.
23
+ */
24
+ FrontmatterExternalLinks = "FrontmatterExternalLinks",
25
+ /**
26
+ * The external links parsed from multi-link note frontmatter values.
27
+ */
28
+ MultiValueFrontmatterExternalLinks = "MultiValueFrontmatterExternalLinks",
29
+ /**
30
+ * The internal links parsed from multi-link note frontmatter values, which Obsidian does not natively cache.
31
+ */
32
+ MultiValueFrontmatterLinks = "MultiValueFrontmatterLinks",
33
+ /**
34
+ * Obsidian's native metadata parsing (internal links, embeds, frontmatter links).
35
+ */
36
+ Native = "Native"
37
+ }
38
+ /**
39
+ * An extended {@link CachedMetadata} that records which parsing {@link CachedMetadataExFeature}s were
40
+ * applied (via {@link CachedMetadataEx.features}) and carries the resulting external links. Each links
41
+ * array is populated only when its corresponding feature is present in {@link CachedMetadataEx.features}.
42
+ */
43
+ export interface CachedMetadataEx extends CachedMetadata {
44
+ /**
45
+ * The external links parsed from the note content body. Populated only when
46
+ * {@link CachedMetadataExFeature.ExternalLinks} is applied.
47
+ */
48
+ externalLinks?: ParseLinkReference[];
49
+ /**
50
+ * The parsing features that were applied when computing this cache.
51
+ */
52
+ readonly features: CachedMetadataExFeature[];
53
+ /**
54
+ * The external links parsed from single-link (single-value) note frontmatter values. Populated only
55
+ * when {@link CachedMetadataExFeature.FrontmatterExternalLinks} is applied.
56
+ */
57
+ frontmatterExternalLinks?: ParseLinkFrontmatterReference[];
58
+ /**
59
+ * The external links parsed from multi-link (multi-value) note frontmatter values. Populated only when
60
+ * {@link CachedMetadataExFeature.MultiValueFrontmatterExternalLinks} is applied.
61
+ */
62
+ multiValueFrontmatterExternalLinks?: ParseLinkFrontmatterReferenceWithOffsets[];
63
+ /**
64
+ * The internal links parsed from multi-link (multi-value) note frontmatter values. Populated only when
65
+ * {@link CachedMetadataExFeature.MultiValueFrontmatterLinks} is applied.
66
+ */
67
+ multiValueFrontmatterLinks?: ParseLinkFrontmatterReferenceWithOffsets[];
68
+ }
12
69
  /**
13
70
  * Options for {@link getBacklinksForFileSafe}.
14
71
  */
@@ -45,6 +102,101 @@ export interface GetBacklinksForFileSafeWrapper {
45
102
  */
46
103
  safe(pathOrFile: PathOrFile): Promise<CustomArrayDict<Reference>>;
47
104
  }
105
+ /**
106
+ * Options for {@link getCacheSafe}.
107
+ */
108
+ export type GetCacheSafeOptions = ParseCacheOptions;
109
+ /**
110
+ * Params for {@link getLinks}.
111
+ */
112
+ export interface GetLinksParams {
113
+ /**
114
+ * The cached metadata to retrieve the links from.
115
+ */
116
+ readonly cache: CachedMetadata;
117
+ /**
118
+ * Whether to include the embeds (`cache.embeds`).
119
+ *
120
+ * @default `true`
121
+ */
122
+ readonly shouldIncludeEmbeds?: boolean;
123
+ /**
124
+ * Whether to include the external links parsed from the note body. Requires the cache to be a
125
+ * {@link CachedMetadataEx}.
126
+ *
127
+ * @default `false`
128
+ */
129
+ readonly shouldIncludeExternalLinks?: boolean;
130
+ /**
131
+ * Whether to include the external links parsed from single-link (single-value) note frontmatter
132
+ * values. Requires the cache to be a {@link CachedMetadataEx}.
133
+ *
134
+ * @default `false`
135
+ */
136
+ readonly shouldIncludeFrontmatterExternalLinks?: boolean;
137
+ /**
138
+ * Whether to include the frontmatter links (`cache.frontmatterLinks`).
139
+ *
140
+ * @default `true`
141
+ */
142
+ readonly shouldIncludeFrontmatterLinks?: boolean;
143
+ /**
144
+ * Whether to include the external links parsed from multi-link (multi-value) note frontmatter values,
145
+ * i.e. the offset-carrying frontmatter external links (narrowed via
146
+ * {@link isFrontmatterLinkCacheWithOffsets}). Requires the cache to be a {@link CachedMetadataEx}.
147
+ *
148
+ * @default `false`
149
+ */
150
+ readonly shouldIncludeMultiValueFrontmatterExternalLinks?: boolean;
151
+ /**
152
+ * Whether to include the internal links parsed from multi-link (multi-value) note frontmatter values.
153
+ * Requires the cache to be a {@link CachedMetadataEx}.
154
+ *
155
+ * @default `false`
156
+ */
157
+ readonly shouldIncludeMultiValueFrontmatterLinks?: boolean;
158
+ /**
159
+ * Whether to include the reference links (`cache.links`).
160
+ *
161
+ * @default `true`
162
+ */
163
+ readonly shouldIncludeReferences?: boolean;
164
+ }
165
+ /**
166
+ * Options for the parsing performed by {@link getCacheSafe} and {@link parseMetadata} beyond Obsidian's
167
+ * native metadata parsing. Each option is opt-in; enabling it adds the corresponding
168
+ * {@link CachedMetadataExFeature} and populates the matching links array.
169
+ */
170
+ export interface ParseCacheOptions {
171
+ /**
172
+ * Whether to parse the external links from the note content body.
173
+ *
174
+ * @default `false`
175
+ */
176
+ readonly shouldParseExternalLinks?: boolean;
177
+ /**
178
+ * Whether to parse the external links from single-link (single-value) note frontmatter values.
179
+ *
180
+ * @default `false`
181
+ */
182
+ readonly shouldParseFrontmatterExternalLinks?: boolean;
183
+ /**
184
+ * Whether to parse the external links from multi-link (multi-value) note frontmatter values.
185
+ *
186
+ * @default `false`
187
+ */
188
+ readonly shouldParseMultiValueFrontmatterExternalLinks?: boolean;
189
+ /**
190
+ * Whether to parse the internal links from multi-link (multi-value) note frontmatter values.
191
+ *
192
+ * @default `false`
193
+ */
194
+ readonly shouldParseMultiValueFrontmatterLinks?: boolean;
195
+ }
196
+ /**
197
+ * Options for {@link parseMetadata}.
198
+ */
199
+ export type ParseMetadataOptions = ParseCacheOptions;
48
200
  /**
49
201
  * Parameters for {@link registerFileCacheForNonExistingFile}.
50
202
  */
@@ -69,13 +221,6 @@ export interface RegisterFileCacheForNonExistingFileParams {
69
221
  * @returns A {@link Promise} that resolves when the metadata cache is ready.
70
222
  */
71
223
  export declare function ensureMetadataCacheReady(app: App): Promise<void>;
72
- /**
73
- * Retrieves all links from the provided cache.
74
- *
75
- * @param cache - The cached metadata.
76
- * @returns An array of reference caches representing the links.
77
- */
78
- export declare function getAllLinks(cache: CachedMetadata): Reference[];
79
224
  /**
80
225
  * Retrieves the backlinks for a file or path.
81
226
  * NOTE: The file may be non-existent.
@@ -97,9 +242,10 @@ export declare function getBacklinksForFileSafe(params: GetBacklinksForFileSafeP
97
242
  *
98
243
  * @param app - The Obsidian app instance.
99
244
  * @param fileOrPath - The file or path to retrieve the metadata for.
245
+ * @param options - The parse options controlling which additional links to parse.
100
246
  * @returns The cached metadata for the file, or `null` if it doesn't exist.
101
247
  */
102
- export declare function getCacheSafe(app: App, fileOrPath: PathOrFile): Promise<CachedMetadata | null>;
248
+ export declare function getCacheSafe(app: App, fileOrPath: PathOrFile, options?: GetCacheSafeOptions): Promise<CachedMetadataEx | null>;
103
249
  /**
104
250
  * Retrieves the front matter from the metadata cache safely.
105
251
  *
@@ -109,14 +255,30 @@ export declare function getCacheSafe(app: App, fileOrPath: PathOrFile): Promise<
109
255
  * @returns The combined front matter.
110
256
  */
111
257
  export declare function getFrontmatterSafe<CustomFrontmatter = unknown>(app: App, pathOrFile: PathOrFile): Promise<CombinedFrontmatter<CustomFrontmatter>>;
258
+ /**
259
+ * Retrieves the selected links from the provided cache.
260
+ *
261
+ * @param params - The parameters for retrieving the links.
262
+ * @returns An array of references representing the selected links.
263
+ */
264
+ export declare function getLinks(params: GetLinksParams): Reference[];
265
+ /**
266
+ * Determines whether a cache is a {@link CachedMetadataEx} (i.e. it was computed with external-link
267
+ * parsing enabled).
268
+ *
269
+ * @param cache - The cache to check.
270
+ * @returns `true` if the cache is a {@link CachedMetadataEx}, otherwise `false`.
271
+ */
272
+ export declare function isCachedMetadataEx(cache: CachedMetadata): cache is CachedMetadataEx;
112
273
  /**
113
274
  * Parses the metadata for a given string.
114
275
  *
115
276
  * @param app - The Obsidian app instance.
116
277
  * @param str - The string to parse the metadata for.
278
+ * @param options - The parse options controlling which additional links to parse.
117
279
  * @returns The parsed metadata.
118
280
  */
119
- export declare function parseMetadata(app: App, str: string): Promise<CachedMetadata>;
281
+ export declare function parseMetadata(app: App, str: string, options?: ParseMetadataOptions): Promise<CachedMetadataEx>;
120
282
  /**
121
283
  * Registers the file cache for a non-existing file.
122
284
  *