obsidian-dev-utils 88.7.0 → 89.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 (679) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/demo-vault-helper/main.js +20 -23
  3. package/dist/integration-test-plugin/main.js +2218 -1734
  4. package/dist/lib/cjs/__merged.cjs +57 -35
  5. package/dist/lib/cjs/__merged.d.cts +12 -10
  6. package/dist/lib/cjs/abort-controller.cjs +15 -22
  7. package/dist/lib/cjs/array.cjs +27 -26
  8. package/dist/lib/cjs/array.d.cts +25 -7
  9. package/dist/lib/cjs/async-events.cjs +87 -91
  10. package/dist/lib/cjs/async-events.d.cts +50 -50
  11. package/dist/lib/cjs/async.cjs +80 -80
  12. package/dist/lib/cjs/async.d.cts +23 -23
  13. package/dist/lib/cjs/beeper.cjs +11 -15
  14. package/dist/lib/cjs/blob.cjs +14 -25
  15. package/dist/lib/cjs/codemirror/index.cjs +11 -15
  16. package/dist/lib/cjs/codemirror/state-field-spec.cjs +11 -15
  17. package/dist/lib/cjs/debug-controller.cjs +11 -15
  18. package/dist/lib/cjs/debug.cjs +24 -32
  19. package/dist/lib/cjs/debug.d.cts +1 -1
  20. package/dist/lib/cjs/disposable.cjs +59 -43
  21. package/dist/lib/cjs/disposable.d.cts +27 -8
  22. package/dist/lib/cjs/enum.cjs +11 -15
  23. package/dist/lib/cjs/error.cjs +28 -33
  24. package/dist/lib/cjs/function.cjs +30 -34
  25. package/dist/lib/cjs/function.d.cts +26 -26
  26. package/dist/lib/cjs/generated-during-build.cjs +12 -16
  27. package/dist/lib/cjs/html-element.cjs +84 -89
  28. package/dist/lib/cjs/html-element.d.cts +15 -15
  29. package/dist/lib/cjs/index.cjs +11 -15
  30. package/dist/lib/cjs/integration-test-setup.cjs +11 -15
  31. package/dist/lib/cjs/integration-test-vitest-global-setup.cjs +11 -15
  32. package/dist/lib/cjs/jest-setup.cjs +11 -15
  33. package/dist/lib/cjs/library.cjs +11 -15
  34. package/dist/lib/cjs/object-utils.cjs +120 -117
  35. package/dist/lib/cjs/object-utils.d.cts +27 -27
  36. package/dist/lib/cjs/obsidian/@types/dataview/data-model/value.d.cts +1 -1
  37. package/dist/lib/cjs/obsidian/@types/dataview/expression/field.d.cts +1 -1
  38. package/dist/lib/cjs/obsidian/@types/dataview/expression/functions.d.cts +4 -4
  39. package/dist/lib/cjs/obsidian/active-file-provider.cjs +11 -15
  40. package/dist/lib/cjs/obsidian/app.cjs +11 -15
  41. package/dist/lib/cjs/obsidian/async-with-notice.cjs +28 -32
  42. package/dist/lib/cjs/obsidian/async-with-notice.d.cts +2 -2
  43. package/dist/lib/cjs/obsidian/attachment-path.cjs +20 -24
  44. package/dist/lib/cjs/obsidian/attachment-path.d.cts +5 -5
  45. package/dist/lib/cjs/obsidian/backlink.cjs +12 -16
  46. package/dist/lib/cjs/obsidian/bases-view-registrar.cjs +11 -15
  47. package/dist/lib/cjs/obsidian/callout.cjs +27 -26
  48. package/dist/lib/cjs/obsidian/callout.d.cts +9 -3
  49. package/dist/lib/cjs/obsidian/canvas.cjs +13 -16
  50. package/dist/lib/cjs/obsidian/case-insensitive-file-index.cjs +18 -20
  51. package/dist/lib/cjs/obsidian/code-block-markdown-information.cjs +11 -15
  52. package/dist/lib/cjs/obsidian/code-block-markdown-information.d.cts +2 -2
  53. package/dist/lib/cjs/obsidian/code-block-reg-exp.cjs +11 -15
  54. package/dist/lib/cjs/obsidian/command-handlers/abstract-file-command-handler.cjs +18 -16
  55. package/dist/lib/cjs/obsidian/command-handlers/abstract-file-command-handler.d.cts +5 -0
  56. package/dist/lib/cjs/obsidian/command-handlers/command-handler-component.cjs +56 -31
  57. package/dist/lib/cjs/obsidian/command-handlers/command-handler-component.d.cts +42 -8
  58. package/dist/lib/cjs/obsidian/command-handlers/command-handler.cjs +11 -15
  59. package/dist/lib/cjs/obsidian/command-handlers/command-handler.d.cts +10 -0
  60. package/dist/lib/cjs/obsidian/command-handlers/editor-command-handler.cjs +26 -30
  61. package/dist/lib/cjs/obsidian/command-handlers/editor-command-handler.d.cts +8 -8
  62. package/dist/lib/cjs/obsidian/command-handlers/file-command-handler.cjs +12 -16
  63. package/dist/lib/cjs/obsidian/command-handlers/folder-command-handler.cjs +12 -16
  64. package/dist/lib/cjs/obsidian/command-handlers/global-command-handler.cjs +13 -17
  65. package/dist/lib/cjs/obsidian/command-handlers/index.cjs +11 -15
  66. package/dist/lib/cjs/obsidian/command-handlers/open-demo-vault-command-handler.cjs +11 -15
  67. package/dist/lib/cjs/obsidian/command-handlers/open-settings-command-handler.cjs +11 -15
  68. package/dist/lib/cjs/obsidian/command-handlers/unlock-active-note-command-handler.cjs +11 -15
  69. package/dist/lib/cjs/obsidian/command-registrar.cjs +11 -15
  70. package/dist/lib/cjs/obsidian/community-plugins.cjs +28 -25
  71. package/dist/lib/cjs/obsidian/community-plugins.d.cts +19 -5
  72. package/dist/lib/cjs/obsidian/components/abort-signal-component.cjs +11 -15
  73. package/dist/lib/cjs/obsidian/components/all-windows-event-component.cjs +11 -15
  74. package/dist/lib/cjs/obsidian/components/all-windows-event-component.d.cts +4 -4
  75. package/dist/lib/cjs/obsidian/components/async-error-handler-component.cjs +13 -16
  76. package/dist/lib/cjs/obsidian/components/async-events-component.cjs +11 -15
  77. package/dist/lib/cjs/obsidian/components/case-insensitive-file-index-component.cjs +11 -15
  78. package/dist/lib/cjs/obsidian/components/component-ex.cjs +26 -28
  79. package/dist/lib/cjs/obsidian/components/component-ex.d.cts +3 -3
  80. package/dist/lib/cjs/obsidian/components/console-debug-component.cjs +14 -18
  81. package/dist/lib/cjs/obsidian/components/console-debug-component.d.cts +2 -2
  82. package/dist/lib/cjs/obsidian/components/disposable-component.cjs +11 -15
  83. package/dist/lib/cjs/obsidian/components/embed-extensions-component.cjs +11 -15
  84. package/dist/lib/cjs/obsidian/components/generate-markdown-link-default-params-component.cjs +11 -15
  85. package/dist/lib/cjs/obsidian/components/index.cjs +14 -15
  86. package/dist/lib/cjs/obsidian/components/index.d.cts +1 -0
  87. package/dist/lib/cjs/obsidian/components/layout-ready-component.cjs +11 -15
  88. package/dist/lib/cjs/obsidian/components/menu-event-registrar-component.cjs +11 -15
  89. package/dist/lib/cjs/obsidian/components/monkey-around-component.cjs +29 -33
  90. package/dist/lib/cjs/obsidian/components/monkey-around-component.d.cts +55 -55
  91. package/dist/lib/cjs/obsidian/components/notebook-navigator-menu-event-registrar-component.cjs +297 -0
  92. package/dist/lib/cjs/obsidian/components/notebook-navigator-menu-event-registrar-component.d.cts +139 -0
  93. package/dist/lib/cjs/obsidian/components/plugin-context-component.cjs +11 -15
  94. package/dist/lib/cjs/obsidian/components/plugin-notice-component.cjs +28 -31
  95. package/dist/lib/cjs/obsidian/components/plugin-settings-component.cjs +26 -30
  96. package/dist/lib/cjs/obsidian/components/plugin-settings-component.d.cts +8 -8
  97. package/dist/lib/cjs/obsidian/components/plugin-settings-tab-component.cjs +11 -15
  98. package/dist/lib/cjs/obsidian/components/pointer-position-component.cjs +13 -17
  99. package/dist/lib/cjs/obsidian/components/registry-component.cjs +11 -15
  100. package/dist/lib/cjs/obsidian/components/rename-delete-handler-component.cjs +72 -62
  101. package/dist/lib/cjs/obsidian/components/rename-delete-handler-component.d.cts +12 -1
  102. package/dist/lib/cjs/obsidian/components/syntax-highlighting-component.cjs +16 -20
  103. package/dist/lib/cjs/obsidian/components/syntax-highlighting-component.d.cts +8 -8
  104. package/dist/lib/cjs/obsidian/constructors/get-dom-events-handlers-constructor.cjs +14 -18
  105. package/dist/lib/cjs/obsidian/constructors/index.cjs +11 -15
  106. package/dist/lib/cjs/obsidian/css-class.cjs +11 -15
  107. package/dist/lib/cjs/obsidian/data-handler.cjs +11 -15
  108. package/dist/lib/cjs/obsidian/dataview-link.cjs +13 -17
  109. package/dist/lib/cjs/obsidian/dataview.cjs +35 -41
  110. package/dist/lib/cjs/obsidian/dataview.d.cts +2 -2
  111. package/dist/lib/cjs/obsidian/demo-vault-helper.cjs +13 -17
  112. package/dist/lib/cjs/obsidian/desktop-demo-vault-opener.cjs +22 -26
  113. package/dist/lib/cjs/obsidian/desktop-trusted-input.cjs +23 -21
  114. package/dist/lib/cjs/obsidian/editor-extension-registrar.cjs +11 -15
  115. package/dist/lib/cjs/obsidian/editor-suggest-registrar.cjs +11 -15
  116. package/dist/lib/cjs/obsidian/editor.cjs +17 -19
  117. package/dist/lib/cjs/obsidian/events.cjs +12 -16
  118. package/dist/lib/cjs/obsidian/events.d.cts +2 -2
  119. package/dist/lib/cjs/obsidian/extensions-registrar.cjs +11 -15
  120. package/dist/lib/cjs/obsidian/file-change.cjs +76 -80
  121. package/dist/lib/cjs/obsidian/file-change.d.cts +3 -3
  122. package/dist/lib/cjs/obsidian/file-manager.cjs +33 -22
  123. package/dist/lib/cjs/obsidian/file-manager.d.cts +20 -1
  124. package/dist/lib/cjs/obsidian/file-system.cjs +15 -19
  125. package/dist/lib/cjs/obsidian/file-system.d.cts +3 -3
  126. package/dist/lib/cjs/obsidian/frontmatter-link-cache-with-offsets.cjs +11 -15
  127. package/dist/lib/cjs/obsidian/frontmatter.cjs +15 -19
  128. package/dist/lib/cjs/obsidian/hover-link-source-registrar.cjs +11 -15
  129. package/dist/lib/cjs/obsidian/html-element.cjs +13 -17
  130. package/dist/lib/cjs/obsidian/html-element.d.cts +2 -2
  131. package/dist/lib/cjs/obsidian/i18n/custom-type-options.cjs +11 -15
  132. package/dist/lib/cjs/obsidian/i18n/default-translations.cjs +11 -15
  133. package/dist/lib/cjs/obsidian/i18n/i18n.cjs +13 -16
  134. package/dist/lib/cjs/obsidian/i18n/i18n.d.cts +7 -0
  135. package/dist/lib/cjs/obsidian/i18n/index.cjs +11 -15
  136. package/dist/lib/cjs/obsidian/i18n/locales/en.cjs +11 -15
  137. package/dist/lib/cjs/obsidian/i18n/locales/index.cjs +11 -15
  138. package/dist/lib/cjs/obsidian/i18n/locales/translations-map.cjs +11 -15
  139. package/dist/lib/cjs/obsidian/index.cjs +14 -15
  140. package/dist/lib/cjs/obsidian/index.d.cts +1 -0
  141. package/dist/lib/cjs/obsidian/is-in-obsidian.cjs +11 -15
  142. package/dist/lib/cjs/obsidian/link-update-progress.cjs +11 -15
  143. package/dist/lib/cjs/obsidian/link.cjs +91 -81
  144. package/dist/lib/cjs/obsidian/link.d.cts +22 -22
  145. package/dist/lib/cjs/obsidian/logger.cjs +21 -25
  146. package/dist/lib/cjs/obsidian/logger.d.cts +5 -5
  147. package/dist/lib/cjs/obsidian/loop.cjs +14 -18
  148. package/dist/lib/cjs/obsidian/loop.d.cts +1 -1
  149. package/dist/lib/cjs/obsidian/markdown-code-block-processor-registrar.cjs +12 -16
  150. package/dist/lib/cjs/obsidian/markdown-code-block-processor-registrar.d.cts +3 -3
  151. package/dist/lib/cjs/obsidian/markdown-code-block-processor.cjs +35 -40
  152. package/dist/lib/cjs/obsidian/markdown-code-block-processor.d.cts +3 -3
  153. package/dist/lib/cjs/obsidian/markdown-post-processor-registrar.cjs +12 -16
  154. package/dist/lib/cjs/obsidian/markdown-post-processor-registrar.d.cts +3 -3
  155. package/dist/lib/cjs/obsidian/markdown-view.cjs +11 -15
  156. package/dist/lib/cjs/obsidian/markdown.cjs +22 -24
  157. package/dist/lib/cjs/obsidian/menu-event-registrar.cjs +11 -15
  158. package/dist/lib/cjs/obsidian/menu-event-registrar.d.cts +1 -1
  159. package/dist/lib/cjs/obsidian/metadata-cache.cjs +16 -20
  160. package/dist/lib/cjs/obsidian/metadata-cache.d.cts +2 -2
  161. package/dist/lib/cjs/obsidian/modals/alert.cjs +11 -15
  162. package/dist/lib/cjs/obsidian/modals/confirm.cjs +11 -15
  163. package/dist/lib/cjs/obsidian/modals/index.cjs +11 -15
  164. package/dist/lib/cjs/obsidian/modals/minimizable-modal.cjs +28 -32
  165. package/dist/lib/cjs/obsidian/modals/modal.cjs +11 -15
  166. package/dist/lib/cjs/obsidian/modals/prompt.cjs +11 -15
  167. package/dist/lib/cjs/obsidian/modals/select-item.cjs +16 -20
  168. package/dist/lib/cjs/obsidian/modals/select-item.d.cts +1 -1
  169. package/dist/lib/cjs/obsidian/modals/select-option.cjs +11 -15
  170. package/dist/lib/cjs/obsidian/modals/suggest-modal-command-builder.cjs +26 -28
  171. package/dist/lib/cjs/obsidian/modals/suggest-modal-command-builder.d.cts +5 -5
  172. package/dist/lib/cjs/obsidian/notebook-navigator.cjs +155 -0
  173. package/dist/lib/cjs/obsidian/notebook-navigator.d.cts +132 -0
  174. package/dist/lib/cjs/obsidian/obsidian-protocol-handler-registrar.cjs +11 -15
  175. package/dist/lib/cjs/obsidian/obsidian-settings.cjs +11 -15
  176. package/dist/lib/cjs/obsidian/parse-link.cjs +61 -62
  177. package/dist/lib/cjs/obsidian/parse-link.d.cts +4 -4
  178. package/dist/lib/cjs/obsidian/path-settings.cjs +27 -25
  179. package/dist/lib/cjs/obsidian/pdf.cjs +13 -17
  180. package/dist/lib/cjs/obsidian/pdf.d.cts +2 -2
  181. package/dist/lib/cjs/obsidian/plugin/index.cjs +11 -15
  182. package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.cjs +11 -15
  183. package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.d.cts +156 -52
  184. package/dist/lib/cjs/obsidian/plugin/plugin-context.cjs +17 -21
  185. package/dist/lib/cjs/obsidian/plugin/plugin-context.d.cts +2 -2
  186. package/dist/lib/cjs/obsidian/plugin/plugin-event-source.cjs +20 -24
  187. package/dist/lib/cjs/obsidian/plugin/plugin-event-source.d.cts +11 -9
  188. package/dist/lib/cjs/obsidian/plugin/plugin-settings-tab.cjs +29 -33
  189. package/dist/lib/cjs/obsidian/plugin/plugin.cjs +33 -16
  190. package/dist/lib/cjs/obsidian/plugin/plugin.d.cts +11 -1
  191. package/dist/lib/cjs/obsidian/plugin-cli-handler-registrar.cjs +11 -15
  192. package/dist/lib/cjs/obsidian/popovers/field-popover.cjs +11 -15
  193. package/dist/lib/cjs/obsidian/popovers/index.cjs +11 -15
  194. package/dist/lib/cjs/obsidian/popovers/popover-anchor.cjs +14 -18
  195. package/dist/lib/cjs/obsidian/popovers/popover-anchor.d.cts +2 -2
  196. package/dist/lib/cjs/obsidian/popovers/popover.cjs +19 -23
  197. package/dist/lib/cjs/obsidian/queue.cjs +16 -20
  198. package/dist/lib/cjs/obsidian/queue.d.cts +2 -2
  199. package/dist/lib/cjs/obsidian/react/app-context.cjs +11 -15
  200. package/dist/lib/cjs/obsidian/react/index.cjs +11 -15
  201. package/dist/lib/cjs/obsidian/reference.cjs +11 -15
  202. package/dist/lib/cjs/obsidian/resource-lock.cjs +157 -78
  203. package/dist/lib/cjs/obsidian/resource-lock.d.cts +5 -0
  204. package/dist/lib/cjs/obsidian/resource-url.cjs +12 -16
  205. package/dist/lib/cjs/obsidian/ribbon-icon-registrar.cjs +11 -15
  206. package/dist/lib/cjs/obsidian/ribbon-icon-registrar.d.cts +2 -2
  207. package/dist/lib/cjs/obsidian/setting-components/checkbox-component.cjs +18 -22
  208. package/dist/lib/cjs/obsidian/setting-components/checkbox-component.d.cts +5 -5
  209. package/dist/lib/cjs/obsidian/setting-components/code-highlighter-component.cjs +28 -31
  210. package/dist/lib/cjs/obsidian/setting-components/code-highlighter-component.d.cts +2 -2
  211. package/dist/lib/cjs/obsidian/setting-components/date-component.cjs +14 -18
  212. package/dist/lib/cjs/obsidian/setting-components/date-component.d.cts +2 -2
  213. package/dist/lib/cjs/obsidian/setting-components/date-time-component.cjs +14 -18
  214. package/dist/lib/cjs/obsidian/setting-components/date-time-component.d.cts +2 -2
  215. package/dist/lib/cjs/obsidian/setting-components/email-component.cjs +14 -18
  216. package/dist/lib/cjs/obsidian/setting-components/email-component.d.cts +2 -2
  217. package/dist/lib/cjs/obsidian/setting-components/file-component.cjs +11 -15
  218. package/dist/lib/cjs/obsidian/setting-components/index.cjs +11 -15
  219. package/dist/lib/cjs/obsidian/setting-components/month-component.cjs +14 -18
  220. package/dist/lib/cjs/obsidian/setting-components/month-component.d.cts +2 -2
  221. package/dist/lib/cjs/obsidian/setting-components/multiple-dropdown-component.cjs +17 -21
  222. package/dist/lib/cjs/obsidian/setting-components/multiple-dropdown-component.d.cts +2 -2
  223. package/dist/lib/cjs/obsidian/setting-components/multiple-email-component.cjs +14 -18
  224. package/dist/lib/cjs/obsidian/setting-components/multiple-email-component.d.cts +2 -2
  225. package/dist/lib/cjs/obsidian/setting-components/multiple-file-component.cjs +12 -16
  226. package/dist/lib/cjs/obsidian/setting-components/multiple-text-component.cjs +15 -19
  227. package/dist/lib/cjs/obsidian/setting-components/multiple-text-component.d.cts +2 -2
  228. package/dist/lib/cjs/obsidian/setting-components/number-component.cjs +14 -18
  229. package/dist/lib/cjs/obsidian/setting-components/number-component.d.cts +2 -2
  230. package/dist/lib/cjs/obsidian/setting-components/password-component.cjs +14 -18
  231. package/dist/lib/cjs/obsidian/setting-components/password-component.d.cts +2 -2
  232. package/dist/lib/cjs/obsidian/setting-components/setting-component-wrapper.cjs +16 -20
  233. package/dist/lib/cjs/obsidian/setting-components/setting-component-wrapper.d.cts +2 -2
  234. package/dist/lib/cjs/obsidian/setting-components/telephone-component.cjs +14 -18
  235. package/dist/lib/cjs/obsidian/setting-components/telephone-component.d.cts +2 -2
  236. package/dist/lib/cjs/obsidian/setting-components/text-based-component.cjs +16 -20
  237. package/dist/lib/cjs/obsidian/setting-components/text-based-component.d.cts +2 -2
  238. package/dist/lib/cjs/obsidian/setting-components/time-component.cjs +14 -18
  239. package/dist/lib/cjs/obsidian/setting-components/time-component.d.cts +2 -2
  240. package/dist/lib/cjs/obsidian/setting-components/tri-state-checkbox-component.cjs +15 -19
  241. package/dist/lib/cjs/obsidian/setting-components/tri-state-checkbox-component.d.cts +2 -2
  242. package/dist/lib/cjs/obsidian/setting-components/typed-dropdown-component.cjs +16 -20
  243. package/dist/lib/cjs/obsidian/setting-components/typed-dropdown-component.d.cts +2 -2
  244. package/dist/lib/cjs/obsidian/setting-components/typed-multiple-dropdown-component.cjs +18 -22
  245. package/dist/lib/cjs/obsidian/setting-components/typed-multiple-dropdown-component.d.cts +2 -2
  246. package/dist/lib/cjs/obsidian/setting-components/typed-range-text-component.cjs +11 -15
  247. package/dist/lib/cjs/obsidian/setting-components/typed-text-component.cjs +16 -19
  248. package/dist/lib/cjs/obsidian/setting-components/typed-text-component.d.cts +4 -4
  249. package/dist/lib/cjs/obsidian/setting-components/url-component.cjs +14 -18
  250. package/dist/lib/cjs/obsidian/setting-components/url-component.d.cts +2 -2
  251. package/dist/lib/cjs/obsidian/setting-components/validator-component.cjs +45 -49
  252. package/dist/lib/cjs/obsidian/setting-components/validator-component.d.cts +2 -2
  253. package/dist/lib/cjs/obsidian/setting-components/value-component-with-change-tracking.cjs +11 -15
  254. package/dist/lib/cjs/obsidian/setting-components/week-component.cjs +14 -18
  255. package/dist/lib/cjs/obsidian/setting-components/week-component.d.cts +2 -2
  256. package/dist/lib/cjs/obsidian/setting-ex.cjs +76 -80
  257. package/dist/lib/cjs/obsidian/setting-ex.d.cts +42 -42
  258. package/dist/lib/cjs/obsidian/setting-group-ex.cjs +14 -18
  259. package/dist/lib/cjs/obsidian/setting-group-ex.d.cts +2 -2
  260. package/dist/lib/cjs/obsidian/status-bar-item-registrar.cjs +11 -15
  261. package/dist/lib/cjs/obsidian/validation.cjs +11 -15
  262. package/dist/lib/cjs/obsidian/vault-delete.cjs +23 -20
  263. package/dist/lib/cjs/obsidian/vault-delete.d.cts +16 -2
  264. package/dist/lib/cjs/obsidian/vault-transaction.cjs +17 -18
  265. package/dist/lib/cjs/obsidian/vault.cjs +81 -63
  266. package/dist/lib/cjs/obsidian/vault.d.cts +32 -11
  267. package/dist/lib/cjs/obsidian/view-registrar.cjs +11 -15
  268. package/dist/lib/cjs/obsidian/workspace.cjs +12 -16
  269. package/dist/lib/cjs/obsidian-dev-utils-state.cjs +11 -15
  270. package/dist/lib/cjs/path.cjs +18 -22
  271. package/dist/lib/cjs/path.d.cts +1 -1
  272. package/dist/lib/cjs/reg-exp.cjs +38 -35
  273. package/dist/lib/cjs/reg-exp.d.cts +4 -4
  274. package/dist/lib/cjs/script-utils/build.cjs +21 -25
  275. package/dist/lib/cjs/script-utils/build.d.cts +1 -1
  276. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/change-extension-plugin.cjs +24 -28
  277. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.cjs +36 -34
  278. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/custom-esbuild-options-plugin.cjs +11 -15
  279. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/dependency.cjs +20 -24
  280. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/fix-esm-plugin.cjs +13 -17
  281. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/fix-source-maps-plugin.cjs +16 -20
  282. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/index.cjs +11 -15
  283. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.cjs +11 -15
  284. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.d.cts +6 -2
  285. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/preprocess-plugin.cjs +32 -36
  286. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/rename-css-plugin.cjs +11 -15
  287. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/svelte-wrapper-plugin.cjs +11 -15
  288. package/dist/lib/cjs/script-utils/bundlers/esbuild.cjs +11 -15
  289. package/dist/lib/cjs/script-utils/bundlers/index.cjs +11 -15
  290. package/dist/lib/cjs/script-utils/check-project-types.cjs +13 -17
  291. package/dist/lib/cjs/script-utils/check-project-types.d.cts +12 -4
  292. package/dist/lib/cjs/script-utils/cli-utils.cjs +39 -47
  293. package/dist/lib/cjs/script-utils/cli-utils.d.cts +6 -6
  294. package/dist/lib/cjs/script-utils/code-generator.cjs +11 -15
  295. package/dist/lib/cjs/script-utils/commitlint-config.cjs +11 -15
  296. package/dist/lib/cjs/script-utils/demo-vault-coverage.cjs +22 -23
  297. package/dist/lib/cjs/script-utils/demo-vault.cjs +11 -15
  298. package/dist/lib/cjs/script-utils/env-toggle.cjs +13 -17
  299. package/dist/lib/cjs/script-utils/exec.cjs +40 -44
  300. package/dist/lib/cjs/script-utils/exec.d.cts +4 -4
  301. package/dist/lib/cjs/script-utils/formatters/dprint.cjs +12 -16
  302. package/dist/lib/cjs/script-utils/formatters/index.cjs +11 -15
  303. package/dist/lib/cjs/script-utils/fs.cjs +13 -17
  304. package/dist/lib/cjs/script-utils/git.cjs +11 -15
  305. package/dist/lib/cjs/script-utils/index.cjs +11 -15
  306. package/dist/lib/cjs/script-utils/json.cjs +15 -19
  307. package/dist/lib/cjs/script-utils/json.d.cts +2 -2
  308. package/dist/lib/cjs/script-utils/linters/cspell.cjs +12 -16
  309. package/dist/lib/cjs/script-utils/linters/eslint-agnostic-core-boundary.cjs +11 -15
  310. package/dist/lib/cjs/script-utils/linters/eslint-config.cjs +402 -16
  311. package/dist/lib/cjs/script-utils/linters/eslint-no-restricted-syntax.cjs +11 -15
  312. package/dist/lib/cjs/script-utils/linters/eslint-rules/index.cjs +11 -15
  313. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.cjs +27 -31
  314. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.d.cts +3 -1
  315. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-unused-params-members.cjs +27 -31
  316. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-unused-params-members.d.cts +3 -1
  317. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-used-underscore-variables.cjs +21 -25
  318. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-used-underscore-variables.d.cts +3 -1
  319. package/dist/lib/cjs/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.cjs +11 -15
  320. package/dist/lib/cjs/script-utils/linters/eslint-rules/params-options-name-match.cjs +109 -113
  321. package/dist/lib/cjs/script-utils/linters/eslint-rules/params-options-name-match.d.cts +3 -1
  322. package/dist/lib/cjs/script-utils/linters/eslint-rules/prefer-noop-async.cjs +13 -17
  323. package/dist/lib/cjs/script-utils/linters/eslint-rules/prefer-noop-async.d.cts +3 -1
  324. package/dist/lib/cjs/script-utils/linters/eslint-rules/readonly-params-options-result-members.cjs +21 -25
  325. package/dist/lib/cjs/script-utils/linters/eslint-rules/readonly-params-options-result-members.d.cts +3 -1
  326. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-component-suffix.cjs +51 -55
  327. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-component-suffix.d.cts +9 -3
  328. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-method-template.cjs +25 -27
  329. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-method-template.d.cts +6 -2
  330. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-super-call.cjs +33 -37
  331. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-super-call.d.cts +3 -1
  332. package/dist/lib/cjs/script-utils/linters/eslint-rules/rule-tester-helper.cjs +11 -15
  333. package/dist/lib/cjs/script-utils/linters/eslint.cjs +14 -18
  334. package/dist/lib/cjs/script-utils/linters/index.cjs +14 -15
  335. package/dist/lib/cjs/script-utils/linters/index.d.cts +1 -0
  336. package/dist/lib/cjs/script-utils/linters/markdownlint-cli2-config.cjs +18 -17
  337. package/dist/lib/cjs/script-utils/linters/markdownlint-cli2-config.d.cts +2 -2
  338. package/dist/lib/cjs/script-utils/linters/markdownlint-ignores.cjs +138 -0
  339. package/dist/lib/cjs/script-utils/linters/markdownlint-ignores.d.cts +35 -0
  340. package/dist/lib/cjs/script-utils/linters/markdownlint.cjs +20 -23
  341. package/dist/lib/cjs/script-utils/linters/over-exposure.cjs +18 -22
  342. package/dist/lib/cjs/script-utils/linters/over-exposure.d.cts +54 -18
  343. package/dist/lib/cjs/script-utils/nano-staged-config.cjs +11 -15
  344. package/dist/lib/cjs/script-utils/npm-publish.cjs +11 -15
  345. package/dist/lib/cjs/script-utils/npm-run.cjs +20 -17
  346. package/dist/lib/cjs/script-utils/npm-run.d.cts +16 -2
  347. package/dist/lib/cjs/script-utils/npm.cjs +21 -25
  348. package/dist/lib/cjs/script-utils/npm.d.cts +11 -11
  349. package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.cjs +11 -15
  350. package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.d.cts +165 -55
  351. package/dist/lib/cjs/script-utils/root.cjs +11 -15
  352. package/dist/lib/cjs/script-utils/test-runners/index.cjs +16 -17
  353. package/dist/lib/cjs/script-utils/test-runners/index.d.cts +1 -0
  354. package/dist/lib/cjs/script-utils/test-runners/integration-test-plugin.cjs +11 -15
  355. package/dist/lib/cjs/script-utils/test-runners/vitest-config.cjs +325 -0
  356. package/dist/lib/cjs/script-utils/test-runners/vitest-config.d.cts +118 -0
  357. package/dist/lib/cjs/script-utils/test-runners/vitest.cjs +11 -15
  358. package/dist/lib/cjs/script-utils/validate-declarations.cjs +11 -15
  359. package/dist/lib/cjs/script-utils/version.cjs +62 -63
  360. package/dist/lib/cjs/script-utils/version.d.cts +21 -21
  361. package/dist/lib/cjs/script-utils/warnings-as-errors.cjs +11 -15
  362. package/dist/lib/cjs/setup.cjs +11 -15
  363. package/dist/lib/cjs/setup.d.cts +1 -1
  364. package/dist/lib/cjs/strict-proxy.cjs +30 -34
  365. package/dist/lib/cjs/strict-proxy.d.cts +2 -2
  366. package/dist/lib/cjs/string.cjs +90 -93
  367. package/dist/lib/cjs/string.d.cts +60 -60
  368. package/dist/lib/cjs/transformers/date-transformer.cjs +11 -15
  369. package/dist/lib/cjs/transformers/duration-transformer.cjs +11 -15
  370. package/dist/lib/cjs/transformers/group-transformer.cjs +11 -15
  371. package/dist/lib/cjs/transformers/index.cjs +11 -15
  372. package/dist/lib/cjs/transformers/map-transformer.cjs +12 -16
  373. package/dist/lib/cjs/transformers/set-transformer.cjs +12 -16
  374. package/dist/lib/cjs/transformers/skip-private-property-transformer.cjs +11 -15
  375. package/dist/lib/cjs/transformers/transformer.cjs +11 -15
  376. package/dist/lib/cjs/transformers/two-way-map-transformer.cjs +12 -16
  377. package/dist/lib/cjs/transformers/typed-transformer.cjs +11 -15
  378. package/dist/lib/cjs/two-way-map.cjs +11 -15
  379. package/dist/lib/cjs/type-guards.cjs +16 -20
  380. package/dist/lib/cjs/type-guards.d.cts +6 -6
  381. package/dist/lib/cjs/type.cjs +13 -17
  382. package/dist/lib/cjs/type.d.cts +2 -2
  383. package/dist/lib/cjs/url.cjs +18 -22
  384. package/dist/lib/cjs/url.d.cts +4 -4
  385. package/dist/lib/cjs/value-provider.cjs +15 -19
  386. package/dist/lib/cjs/value-provider.d.cts +6 -6
  387. package/dist/lib/cjs/value-wrapper.cjs +11 -15
  388. package/dist/lib/cjs/vitest-setup.cjs +11 -15
  389. package/dist/lib/esm/__merged.d.mts +12 -10
  390. package/dist/lib/esm/__merged.mjs +51 -23
  391. package/dist/lib/esm/abort-controller.mjs +5 -8
  392. package/dist/lib/esm/array.d.mts +25 -7
  393. package/dist/lib/esm/array.mjs +16 -12
  394. package/dist/lib/esm/async-events.d.mts +50 -50
  395. package/dist/lib/esm/async-events.mjs +81 -78
  396. package/dist/lib/esm/async.d.mts +23 -23
  397. package/dist/lib/esm/async.mjs +70 -66
  398. package/dist/lib/esm/blob.mjs +4 -11
  399. package/dist/lib/esm/debug.d.mts +1 -1
  400. package/dist/lib/esm/debug.mjs +14 -18
  401. package/dist/lib/esm/disposable.d.mts +27 -8
  402. package/dist/lib/esm/disposable.mjs +47 -29
  403. package/dist/lib/esm/error.mjs +18 -19
  404. package/dist/lib/esm/function.d.mts +26 -26
  405. package/dist/lib/esm/function.mjs +20 -20
  406. package/dist/lib/esm/generated-during-build.mjs +1 -1
  407. package/dist/lib/esm/html-element.d.mts +15 -15
  408. package/dist/lib/esm/html-element.mjs +74 -75
  409. package/dist/lib/esm/object-utils.d.mts +27 -27
  410. package/dist/lib/esm/object-utils.mjs +109 -102
  411. package/dist/lib/esm/obsidian/@types/dataview/data-model/value.d.mts +1 -1
  412. package/dist/lib/esm/obsidian/@types/dataview/expression/field.d.mts +1 -1
  413. package/dist/lib/esm/obsidian/@types/dataview/expression/functions.d.mts +4 -4
  414. package/dist/lib/esm/obsidian/app.mjs +1 -1
  415. package/dist/lib/esm/obsidian/async-with-notice.d.mts +2 -2
  416. package/dist/lib/esm/obsidian/async-with-notice.mjs +18 -18
  417. package/dist/lib/esm/obsidian/attachment-path.d.mts +5 -5
  418. package/dist/lib/esm/obsidian/attachment-path.mjs +10 -10
  419. package/dist/lib/esm/obsidian/backlink.mjs +2 -2
  420. package/dist/lib/esm/obsidian/callout.d.mts +9 -3
  421. package/dist/lib/esm/obsidian/callout.mjs +17 -12
  422. package/dist/lib/esm/obsidian/canvas.mjs +3 -2
  423. package/dist/lib/esm/obsidian/case-insensitive-file-index.mjs +8 -6
  424. package/dist/lib/esm/obsidian/code-block-markdown-information.d.mts +2 -2
  425. package/dist/lib/esm/obsidian/command-handlers/abstract-file-command-handler.d.mts +5 -0
  426. package/dist/lib/esm/obsidian/command-handlers/abstract-file-command-handler.mjs +8 -2
  427. package/dist/lib/esm/obsidian/command-handlers/command-handler-component.d.mts +42 -8
  428. package/dist/lib/esm/obsidian/command-handlers/command-handler-component.mjs +46 -17
  429. package/dist/lib/esm/obsidian/command-handlers/command-handler.d.mts +10 -0
  430. package/dist/lib/esm/obsidian/command-handlers/command-handler.mjs +1 -1
  431. package/dist/lib/esm/obsidian/command-handlers/editor-command-handler.d.mts +8 -8
  432. package/dist/lib/esm/obsidian/command-handlers/editor-command-handler.mjs +16 -16
  433. package/dist/lib/esm/obsidian/command-handlers/file-command-handler.mjs +2 -2
  434. package/dist/lib/esm/obsidian/command-handlers/folder-command-handler.mjs +2 -2
  435. package/dist/lib/esm/obsidian/command-handlers/global-command-handler.mjs +3 -3
  436. package/dist/lib/esm/obsidian/community-plugins.d.mts +19 -5
  437. package/dist/lib/esm/obsidian/community-plugins.mjs +17 -11
  438. package/dist/lib/esm/obsidian/components/all-windows-event-component.d.mts +4 -4
  439. package/dist/lib/esm/obsidian/components/all-windows-event-component.mjs +1 -1
  440. package/dist/lib/esm/obsidian/components/async-error-handler-component.mjs +3 -2
  441. package/dist/lib/esm/obsidian/components/component-ex.d.mts +3 -3
  442. package/dist/lib/esm/obsidian/components/component-ex.mjs +16 -14
  443. package/dist/lib/esm/obsidian/components/console-debug-component.d.mts +2 -2
  444. package/dist/lib/esm/obsidian/components/console-debug-component.mjs +4 -4
  445. package/dist/lib/esm/obsidian/components/index.d.mts +1 -0
  446. package/dist/lib/esm/obsidian/components/index.mjs +3 -1
  447. package/dist/lib/esm/obsidian/components/menu-event-registrar-component.mjs +5 -5
  448. package/dist/lib/esm/obsidian/components/monkey-around-component.d.mts +55 -55
  449. package/dist/lib/esm/obsidian/components/monkey-around-component.mjs +19 -19
  450. package/dist/lib/esm/obsidian/components/notebook-navigator-menu-event-registrar-component.d.mts +139 -0
  451. package/dist/lib/esm/obsidian/components/notebook-navigator-menu-event-registrar-component.mjs +196 -0
  452. package/dist/lib/esm/obsidian/components/plugin-notice-component.mjs +18 -17
  453. package/dist/lib/esm/obsidian/components/plugin-settings-component.d.mts +8 -8
  454. package/dist/lib/esm/obsidian/components/plugin-settings-component.mjs +18 -18
  455. package/dist/lib/esm/obsidian/components/pointer-position-component.mjs +3 -3
  456. package/dist/lib/esm/obsidian/components/rename-delete-handler-component.d.mts +12 -1
  457. package/dist/lib/esm/obsidian/components/rename-delete-handler-component.mjs +62 -48
  458. package/dist/lib/esm/obsidian/components/syntax-highlighting-component.d.mts +8 -8
  459. package/dist/lib/esm/obsidian/components/syntax-highlighting-component.mjs +6 -6
  460. package/dist/lib/esm/obsidian/constructors/get-dom-events-handlers-constructor.mjs +4 -4
  461. package/dist/lib/esm/obsidian/data-handler.mjs +1 -1
  462. package/dist/lib/esm/obsidian/dataview-link.mjs +3 -3
  463. package/dist/lib/esm/obsidian/dataview.d.mts +2 -2
  464. package/dist/lib/esm/obsidian/dataview.mjs +25 -27
  465. package/dist/lib/esm/obsidian/demo-vault-helper.mjs +4 -3
  466. package/dist/lib/esm/obsidian/desktop-demo-vault-opener.mjs +12 -12
  467. package/dist/lib/esm/obsidian/desktop-trusted-input.mjs +13 -7
  468. package/dist/lib/esm/obsidian/editor.mjs +7 -5
  469. package/dist/lib/esm/obsidian/events.d.mts +2 -2
  470. package/dist/lib/esm/obsidian/events.mjs +2 -2
  471. package/dist/lib/esm/obsidian/file-change.d.mts +3 -3
  472. package/dist/lib/esm/obsidian/file-change.mjs +67 -67
  473. package/dist/lib/esm/obsidian/file-manager.d.mts +20 -1
  474. package/dist/lib/esm/obsidian/file-manager.mjs +22 -8
  475. package/dist/lib/esm/obsidian/file-system.d.mts +3 -3
  476. package/dist/lib/esm/obsidian/file-system.mjs +4 -4
  477. package/dist/lib/esm/obsidian/frontmatter.mjs +5 -5
  478. package/dist/lib/esm/obsidian/html-element.d.mts +2 -2
  479. package/dist/lib/esm/obsidian/html-element.mjs +3 -3
  480. package/dist/lib/esm/obsidian/i18n/i18n.d.mts +7 -0
  481. package/dist/lib/esm/obsidian/i18n/i18n.mjs +3 -2
  482. package/dist/lib/esm/obsidian/index.d.mts +1 -0
  483. package/dist/lib/esm/obsidian/index.mjs +3 -1
  484. package/dist/lib/esm/obsidian/link.d.mts +22 -22
  485. package/dist/lib/esm/obsidian/link.mjs +76 -62
  486. package/dist/lib/esm/obsidian/logger.d.mts +5 -5
  487. package/dist/lib/esm/obsidian/logger.mjs +11 -11
  488. package/dist/lib/esm/obsidian/loop.d.mts +1 -1
  489. package/dist/lib/esm/obsidian/loop.mjs +4 -4
  490. package/dist/lib/esm/obsidian/markdown-code-block-processor-registrar.d.mts +3 -3
  491. package/dist/lib/esm/obsidian/markdown-code-block-processor-registrar.mjs +2 -2
  492. package/dist/lib/esm/obsidian/markdown-code-block-processor.d.mts +3 -3
  493. package/dist/lib/esm/obsidian/markdown-code-block-processor.mjs +25 -26
  494. package/dist/lib/esm/obsidian/markdown-post-processor-registrar.d.mts +3 -3
  495. package/dist/lib/esm/obsidian/markdown-post-processor-registrar.mjs +2 -2
  496. package/dist/lib/esm/obsidian/markdown.mjs +12 -10
  497. package/dist/lib/esm/obsidian/menu-event-registrar.d.mts +1 -1
  498. package/dist/lib/esm/obsidian/metadata-cache.d.mts +2 -2
  499. package/dist/lib/esm/obsidian/metadata-cache.mjs +6 -6
  500. package/dist/lib/esm/obsidian/modals/confirm.mjs +1 -1
  501. package/dist/lib/esm/obsidian/modals/minimizable-modal.mjs +18 -18
  502. package/dist/lib/esm/obsidian/modals/select-item.d.mts +1 -1
  503. package/dist/lib/esm/obsidian/modals/select-item.mjs +6 -6
  504. package/dist/lib/esm/obsidian/modals/suggest-modal-command-builder.d.mts +5 -5
  505. package/dist/lib/esm/obsidian/modals/suggest-modal-command-builder.mjs +16 -14
  506. package/dist/lib/esm/obsidian/notebook-navigator.d.mts +132 -0
  507. package/dist/lib/esm/obsidian/notebook-navigator.mjs +49 -0
  508. package/dist/lib/esm/obsidian/parse-link.d.mts +4 -4
  509. package/dist/lib/esm/obsidian/parse-link.mjs +51 -48
  510. package/dist/lib/esm/obsidian/path-settings.mjs +17 -11
  511. package/dist/lib/esm/obsidian/pdf.d.mts +2 -2
  512. package/dist/lib/esm/obsidian/pdf.mjs +3 -3
  513. package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.d.mts +156 -52
  514. package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.mjs +1 -1
  515. package/dist/lib/esm/obsidian/plugin/plugin-context.d.mts +2 -2
  516. package/dist/lib/esm/obsidian/plugin/plugin-context.mjs +7 -7
  517. package/dist/lib/esm/obsidian/plugin/plugin-event-source.d.mts +11 -9
  518. package/dist/lib/esm/obsidian/plugin/plugin-event-source.mjs +10 -10
  519. package/dist/lib/esm/obsidian/plugin/plugin-settings-tab.mjs +20 -20
  520. package/dist/lib/esm/obsidian/plugin/plugin.d.mts +11 -1
  521. package/dist/lib/esm/obsidian/plugin/plugin.mjs +23 -2
  522. package/dist/lib/esm/obsidian/popovers/popover-anchor.d.mts +2 -2
  523. package/dist/lib/esm/obsidian/popovers/popover-anchor.mjs +4 -4
  524. package/dist/lib/esm/obsidian/popovers/popover.mjs +9 -9
  525. package/dist/lib/esm/obsidian/queue.d.mts +2 -2
  526. package/dist/lib/esm/obsidian/queue.mjs +6 -6
  527. package/dist/lib/esm/obsidian/resource-lock.d.mts +5 -0
  528. package/dist/lib/esm/obsidian/resource-lock.mjs +147 -64
  529. package/dist/lib/esm/obsidian/resource-url.mjs +2 -2
  530. package/dist/lib/esm/obsidian/ribbon-icon-registrar.d.mts +2 -2
  531. package/dist/lib/esm/obsidian/ribbon-icon-registrar.mjs +1 -1
  532. package/dist/lib/esm/obsidian/setting-components/checkbox-component.d.mts +5 -5
  533. package/dist/lib/esm/obsidian/setting-components/checkbox-component.mjs +8 -8
  534. package/dist/lib/esm/obsidian/setting-components/code-highlighter-component.d.mts +2 -2
  535. package/dist/lib/esm/obsidian/setting-components/code-highlighter-component.mjs +18 -17
  536. package/dist/lib/esm/obsidian/setting-components/date-component.d.mts +2 -2
  537. package/dist/lib/esm/obsidian/setting-components/date-component.mjs +4 -4
  538. package/dist/lib/esm/obsidian/setting-components/date-time-component.d.mts +2 -2
  539. package/dist/lib/esm/obsidian/setting-components/date-time-component.mjs +4 -4
  540. package/dist/lib/esm/obsidian/setting-components/email-component.d.mts +2 -2
  541. package/dist/lib/esm/obsidian/setting-components/email-component.mjs +4 -4
  542. package/dist/lib/esm/obsidian/setting-components/month-component.d.mts +2 -2
  543. package/dist/lib/esm/obsidian/setting-components/month-component.mjs +4 -4
  544. package/dist/lib/esm/obsidian/setting-components/multiple-dropdown-component.d.mts +2 -2
  545. package/dist/lib/esm/obsidian/setting-components/multiple-dropdown-component.mjs +7 -7
  546. package/dist/lib/esm/obsidian/setting-components/multiple-email-component.d.mts +2 -2
  547. package/dist/lib/esm/obsidian/setting-components/multiple-email-component.mjs +4 -4
  548. package/dist/lib/esm/obsidian/setting-components/multiple-file-component.mjs +2 -2
  549. package/dist/lib/esm/obsidian/setting-components/multiple-text-component.d.mts +2 -2
  550. package/dist/lib/esm/obsidian/setting-components/multiple-text-component.mjs +5 -5
  551. package/dist/lib/esm/obsidian/setting-components/number-component.d.mts +2 -2
  552. package/dist/lib/esm/obsidian/setting-components/number-component.mjs +4 -4
  553. package/dist/lib/esm/obsidian/setting-components/password-component.d.mts +2 -2
  554. package/dist/lib/esm/obsidian/setting-components/password-component.mjs +4 -4
  555. package/dist/lib/esm/obsidian/setting-components/setting-component-wrapper.d.mts +2 -2
  556. package/dist/lib/esm/obsidian/setting-components/setting-component-wrapper.mjs +6 -6
  557. package/dist/lib/esm/obsidian/setting-components/telephone-component.d.mts +2 -2
  558. package/dist/lib/esm/obsidian/setting-components/telephone-component.mjs +4 -4
  559. package/dist/lib/esm/obsidian/setting-components/text-based-component.d.mts +2 -2
  560. package/dist/lib/esm/obsidian/setting-components/text-based-component.mjs +6 -6
  561. package/dist/lib/esm/obsidian/setting-components/time-component.d.mts +2 -2
  562. package/dist/lib/esm/obsidian/setting-components/time-component.mjs +4 -4
  563. package/dist/lib/esm/obsidian/setting-components/tri-state-checkbox-component.d.mts +2 -2
  564. package/dist/lib/esm/obsidian/setting-components/tri-state-checkbox-component.mjs +5 -5
  565. package/dist/lib/esm/obsidian/setting-components/typed-dropdown-component.d.mts +2 -2
  566. package/dist/lib/esm/obsidian/setting-components/typed-dropdown-component.mjs +6 -6
  567. package/dist/lib/esm/obsidian/setting-components/typed-multiple-dropdown-component.d.mts +2 -2
  568. package/dist/lib/esm/obsidian/setting-components/typed-multiple-dropdown-component.mjs +8 -8
  569. package/dist/lib/esm/obsidian/setting-components/typed-text-component.d.mts +4 -4
  570. package/dist/lib/esm/obsidian/setting-components/typed-text-component.mjs +6 -5
  571. package/dist/lib/esm/obsidian/setting-components/url-component.d.mts +2 -2
  572. package/dist/lib/esm/obsidian/setting-components/url-component.mjs +4 -4
  573. package/dist/lib/esm/obsidian/setting-components/validator-component.d.mts +2 -2
  574. package/dist/lib/esm/obsidian/setting-components/validator-component.mjs +35 -35
  575. package/dist/lib/esm/obsidian/setting-components/week-component.d.mts +2 -2
  576. package/dist/lib/esm/obsidian/setting-components/week-component.mjs +4 -4
  577. package/dist/lib/esm/obsidian/setting-ex.d.mts +42 -42
  578. package/dist/lib/esm/obsidian/setting-ex.mjs +66 -66
  579. package/dist/lib/esm/obsidian/setting-group-ex.d.mts +2 -2
  580. package/dist/lib/esm/obsidian/setting-group-ex.mjs +4 -4
  581. package/dist/lib/esm/obsidian/vault-delete.d.mts +16 -2
  582. package/dist/lib/esm/obsidian/vault-delete.mjs +12 -6
  583. package/dist/lib/esm/obsidian/vault-transaction.mjs +8 -4
  584. package/dist/lib/esm/obsidian/vault.d.mts +32 -11
  585. package/dist/lib/esm/obsidian/vault.mjs +67 -47
  586. package/dist/lib/esm/obsidian/view-registrar.mjs +1 -1
  587. package/dist/lib/esm/obsidian/workspace.mjs +2 -2
  588. package/dist/lib/esm/path.d.mts +1 -1
  589. package/dist/lib/esm/path.mjs +7 -7
  590. package/dist/lib/esm/reg-exp.d.mts +4 -4
  591. package/dist/lib/esm/reg-exp.mjs +28 -21
  592. package/dist/lib/esm/script-utils/build.d.mts +1 -1
  593. package/dist/lib/esm/script-utils/build.mjs +15 -12
  594. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/change-extension-plugin.mjs +14 -14
  595. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.mjs +26 -20
  596. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/dependency.mjs +10 -10
  597. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/fix-esm-plugin.mjs +3 -3
  598. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/fix-source-maps-plugin.mjs +6 -6
  599. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.d.mts +6 -2
  600. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.mjs +1 -1
  601. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/preprocess-plugin.mjs +20 -20
  602. package/dist/lib/esm/script-utils/check-project-types.d.mts +12 -4
  603. package/dist/lib/esm/script-utils/check-project-types.mjs +3 -3
  604. package/dist/lib/esm/script-utils/cli-utils.d.mts +6 -6
  605. package/dist/lib/esm/script-utils/cli-utils.mjs +29 -33
  606. package/dist/lib/esm/script-utils/demo-vault-coverage.mjs +12 -9
  607. package/dist/lib/esm/script-utils/env-toggle.mjs +3 -3
  608. package/dist/lib/esm/script-utils/exec.d.mts +4 -4
  609. package/dist/lib/esm/script-utils/exec.mjs +32 -32
  610. package/dist/lib/esm/script-utils/formatters/dprint.mjs +2 -2
  611. package/dist/lib/esm/script-utils/fs.mjs +3 -3
  612. package/dist/lib/esm/script-utils/json.d.mts +2 -2
  613. package/dist/lib/esm/script-utils/json.mjs +5 -5
  614. package/dist/lib/esm/script-utils/linters/cspell.mjs +2 -2
  615. package/dist/lib/esm/script-utils/linters/eslint-config.mjs +392 -2
  616. package/dist/lib/esm/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.d.mts +3 -1
  617. package/dist/lib/esm/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.mjs +17 -17
  618. package/dist/lib/esm/script-utils/linters/eslint-rules/no-unused-params-members.d.mts +3 -1
  619. package/dist/lib/esm/script-utils/linters/eslint-rules/no-unused-params-members.mjs +17 -17
  620. package/dist/lib/esm/script-utils/linters/eslint-rules/no-used-underscore-variables.d.mts +3 -1
  621. package/dist/lib/esm/script-utils/linters/eslint-rules/no-used-underscore-variables.mjs +11 -11
  622. package/dist/lib/esm/script-utils/linters/eslint-rules/params-options-name-match.d.mts +3 -1
  623. package/dist/lib/esm/script-utils/linters/eslint-rules/params-options-name-match.mjs +99 -99
  624. package/dist/lib/esm/script-utils/linters/eslint-rules/prefer-noop-async.d.mts +3 -1
  625. package/dist/lib/esm/script-utils/linters/eslint-rules/prefer-noop-async.mjs +3 -3
  626. package/dist/lib/esm/script-utils/linters/eslint-rules/readonly-params-options-result-members.d.mts +3 -1
  627. package/dist/lib/esm/script-utils/linters/eslint-rules/readonly-params-options-result-members.mjs +11 -11
  628. package/dist/lib/esm/script-utils/linters/eslint-rules/require-component-suffix.d.mts +9 -3
  629. package/dist/lib/esm/script-utils/linters/eslint-rules/require-component-suffix.mjs +41 -41
  630. package/dist/lib/esm/script-utils/linters/eslint-rules/require-method-template.d.mts +6 -2
  631. package/dist/lib/esm/script-utils/linters/eslint-rules/require-method-template.mjs +15 -13
  632. package/dist/lib/esm/script-utils/linters/eslint-rules/require-super-call.d.mts +3 -1
  633. package/dist/lib/esm/script-utils/linters/eslint-rules/require-super-call.mjs +23 -23
  634. package/dist/lib/esm/script-utils/linters/eslint.mjs +4 -4
  635. package/dist/lib/esm/script-utils/linters/index.d.mts +1 -0
  636. package/dist/lib/esm/script-utils/linters/index.mjs +3 -1
  637. package/dist/lib/esm/script-utils/linters/markdownlint-cli2-config.d.mts +2 -2
  638. package/dist/lib/esm/script-utils/linters/markdownlint-cli2-config.mjs +8 -3
  639. package/dist/lib/esm/script-utils/linters/markdownlint-ignores.d.mts +35 -0
  640. package/dist/lib/esm/script-utils/linters/markdownlint-ignores.mjs +33 -0
  641. package/dist/lib/esm/script-utils/linters/markdownlint.mjs +13 -9
  642. package/dist/lib/esm/script-utils/linters/over-exposure.d.mts +54 -18
  643. package/dist/lib/esm/script-utils/linters/over-exposure.mjs +8 -8
  644. package/dist/lib/esm/script-utils/npm-run.d.mts +16 -2
  645. package/dist/lib/esm/script-utils/npm-run.mjs +9 -3
  646. package/dist/lib/esm/script-utils/npm.d.mts +11 -11
  647. package/dist/lib/esm/script-utils/npm.mjs +11 -11
  648. package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.d.mts +165 -55
  649. package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.mjs +1 -1
  650. package/dist/lib/esm/script-utils/test-runners/index.d.mts +1 -0
  651. package/dist/lib/esm/script-utils/test-runners/index.mjs +4 -2
  652. package/dist/lib/esm/script-utils/test-runners/vitest-config.d.mts +118 -0
  653. package/dist/lib/esm/script-utils/test-runners/vitest-config.mjs +210 -0
  654. package/dist/lib/esm/script-utils/validate-declarations.mjs +1 -1
  655. package/dist/lib/esm/script-utils/version.d.mts +21 -21
  656. package/dist/lib/esm/script-utils/version.mjs +48 -45
  657. package/dist/lib/esm/setup.d.mts +1 -1
  658. package/dist/lib/esm/setup.mjs +1 -1
  659. package/dist/lib/esm/strict-proxy.d.mts +2 -2
  660. package/dist/lib/esm/strict-proxy.mjs +20 -20
  661. package/dist/lib/esm/string.d.mts +60 -60
  662. package/dist/lib/esm/string.mjs +80 -79
  663. package/dist/lib/esm/transformers/map-transformer.mjs +2 -2
  664. package/dist/lib/esm/transformers/set-transformer.mjs +2 -2
  665. package/dist/lib/esm/transformers/two-way-map-transformer.mjs +2 -2
  666. package/dist/lib/esm/type-guards.d.mts +6 -6
  667. package/dist/lib/esm/type-guards.mjs +6 -6
  668. package/dist/lib/esm/type.d.mts +2 -2
  669. package/dist/lib/esm/type.mjs +3 -3
  670. package/dist/lib/esm/url.d.mts +4 -4
  671. package/dist/lib/esm/url.mjs +8 -8
  672. package/dist/lib/esm/value-provider.d.mts +6 -6
  673. package/dist/lib/esm/value-provider.mjs +5 -5
  674. package/dist/templates/scripts/vitest-config.ts +2 -88
  675. package/obsidian/components/notebook-navigator-menu-event-registrar-component/package.json +6 -0
  676. package/obsidian/notebook-navigator/package.json +6 -0
  677. package/package.json +17 -33
  678. package/script-utils/linters/markdownlint-ignores/package.json +6 -0
  679. package/script-utils/test-runners/vitest-config/package.json +6 -0
@@ -29,7 +29,7 @@ import {
29
29
  const WINDOWS_POSIX_LIKE_PATH_REG_EXP = /[a-zA-Z]:\/[^:]*$/;
30
30
  const posix = pathBrowserify.posix;
31
31
  const delimiter = posix.delimiter;
32
- const sep = pathBrowserify.posix.sep;
32
+ const separator = pathBrowserify.posix.sep;
33
33
  const basename = posix.basename;
34
34
  const dirname = posix.dirname;
35
35
  const extname = posix.extname;
@@ -55,8 +55,8 @@ function normalizeIfRelative(path) {
55
55
  return path;
56
56
  }
57
57
  return ensureStartsWith({
58
- prefix: "./",
59
- str: path
58
+ $string: path,
59
+ prefix: "./"
60
60
  });
61
61
  }
62
62
  function resolve(...pathSegments) {
@@ -70,9 +70,9 @@ function toPosixBuffer(buffer) {
70
70
  }
71
71
  function toPosixPath(path) {
72
72
  return replaceAll({
73
+ $string: path,
73
74
  replacer: "/",
74
- searchValue: "\\",
75
- str: path
75
+ searchValue: "\\"
76
76
  });
77
77
  }
78
78
  export {
@@ -92,8 +92,8 @@ export {
92
92
  posix,
93
93
  relative,
94
94
  resolve,
95
- sep,
95
+ separator,
96
96
  toPosixBuffer,
97
97
  toPosixPath
98
98
  };
99
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3BhdGgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDb250YWlucyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgaGFuZGxpbmcgcGF0aHMuXG4gKi9cblxuaW1wb3J0IHBhdGhCcm93c2VyaWZ5IGZyb20gJ3BhdGgtYnJvd3NlcmlmeSc7XG5cbmltcG9ydCB7XG4gIGVuc3VyZVN0YXJ0c1dpdGgsXG4gIHJlcGxhY2VBbGxcbn0gZnJvbSAnLi9zdHJpbmcudHMnO1xuXG5jb25zdCBXSU5ET1dTX1BPU0lYX0xJS0VfUEFUSF9SRUdfRVhQID0gL1thLXpBLVpdOlxcL1teOl0qJC87XG5cbi8qKlxuICogUHJvdmlkZXMgbWV0aG9kcyBmb3IgaGFuZGxpbmcgUE9TSVggcGF0aHMuXG4gKi9cbmV4cG9ydCBjb25zdCBwb3NpeCA9IHBhdGhCcm93c2VyaWZ5LnBvc2l4O1xuXG4vKipcbiAqIEEgUE9TSVggcGF0aCBkZWxpbWl0ZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBkZWxpbWl0ZXIgPSBwb3NpeC5kZWxpbWl0ZXI7XG5cbi8qKlxuICogQSBQT1NJWCBzZWdtZW50IHNlcGFyYXRvci5cbiAqL1xuZXhwb3J0IGNvbnN0IHNlcCA9IHBhdGhCcm93c2VyaWZ5LnBvc2l4LnNlcDtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBiYXNlIG5hbWUgb2YgYSBmaWxlLCBvcHRpb25hbGx5IHJlbW92aW5nIHRoZSBmaWxlIGV4dGVuc2lvbi5cbiAqXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSBwYXRoIHRvIGdldCB0aGUgYmFzZSBuYW1lIGZyb20uXG4gKiBAcGFyYW0gZXh0IC0gQW4gb3B0aW9uYWwgZXh0ZW5zaW9uIHRvIHJlbW92ZSBmcm9tIHRoZSBiYXNlIG5hbWUuXG4gKiBAcmV0dXJucyBUaGUgYmFzZSBuYW1lIG9mIHRoZSBmaWxlLlxuICovXG5leHBvcnQgY29uc3QgYmFzZW5hbWUgPSBwb3NpeC5iYXNlbmFtZTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBkaXJlY3RvcnkgbmFtZSBvZiBhIHBhdGguXG4gKlxuICogYGRpcmVjdG9yeWAgaXMgdXNlZCBpbnN0ZWFkIG9mIGBmb2xkZXJgIHRvIHByZXNlcnZlIGNvbXBhdGliaWxpdHkgd2l0aCBgbm9kZTpwYXRoYCBtb2R1bGUuXG4gKlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCB0byBnZXQgdGhlIGRpcmVjdG9yeSBuYW1lIGZyb20uXG4gKiBAcmV0dXJucyBUaGUgZGlyZWN0b3J5IG5hbWUgb2YgdGhlIHBhdGguXG4gKi9cbmV4cG9ydCBjb25zdCBkaXJuYW1lID0gcG9zaXguZGlybmFtZTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBmaWxlIGV4dGVuc2lvbiBvZiBhIHBhdGguXG4gKlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCB0byBnZXQgdGhlIGV4dGVuc2lvbiBmcm9tLlxuICogQHJldHVybnMgVGhlIGZpbGUgZXh0ZW5zaW9uIG9mIHRoZSBwYXRoLlxuICovXG5leHBvcnQgY29uc3QgZXh0bmFtZSA9IHBvc2l4LmV4dG5hbWU7XG5cbi8qKlxuICogRm9ybWF0cyBhIHBhdGggb2JqZWN0IGludG8gYSBwYXRoIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0gcGF0aE9iamVjdCAtIFRoZSBwYXRoIG9iamVjdCB0byBmb3JtYXQuXG4gKiBAcmV0dXJucyBUaGUgZm9ybWF0dGVkIHBhdGggc3RyaW5nLlxuICovXG5leHBvcnQgY29uc3QgZm9ybWF0ID0gcG9zaXguZm9ybWF0O1xuXG4vKipcbiAqIERldGVybWluZXMgaWYgYSBwYXRoIGlzIGFic29sdXRlLlxuICpcbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggdG8gY2hlY2suXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHBhdGggaXMgYWJzb2x1dGUsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNBYnNvbHV0ZShwYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIHBvc2l4LmlzQWJzb2x1dGUocGF0aCkgfHwgV0lORE9XU19QT1NJWF9MSUtFX1BBVEhfUkVHX0VYUC5leGVjKHBhdGgpPy5bMF0gPT09IHBhdGg7XG59XG5cbi8qKlxuICogSm9pbnMgbXVsdGlwbGUgcGF0aCBzZWdtZW50cyBpbnRvIGEgc2luZ2xlIHBhdGguXG4gKlxuICogQHBhcmFtIHBhdGhzIC0gVGhlIHBhdGggc2VnbWVudHMgdG8gam9pbi5cbiAqIEByZXR1cm5zIFRoZSBqb2luZWQgcGF0aC5cbiAqL1xuZXhwb3J0IGNvbnN0IGpvaW4gPSBwb3NpeC5qb2luO1xuXG4vKipcbiAqIE5vcm1hbGl6ZXMgYSBwYXRoLCByZXNvbHZpbmcgJy4uJyBhbmQgJy4nIHNlZ21lbnRzLlxuICpcbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggdG8gbm9ybWFsaXplLlxuICogQHJldHVybnMgVGhlIG5vcm1hbGl6ZWQgcGF0aC5cbiAqL1xuZXhwb3J0IGNvbnN0IG5vcm1hbGl6ZVBhdGggPSBwb3NpeC5ub3JtYWxpemU7XG5cbi8qKlxuICogUGFyc2VzIGEgcGF0aCBzdHJpbmcgaW50byBhIHBhdGggb2JqZWN0LlxuICpcbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggc3RyaW5nIHRvIHBhcnNlLlxuICogQHJldHVybnMgVGhlIHBhcnNlZCBwYXRoIG9iamVjdC5cbiAqL1xuZXhwb3J0IGNvbnN0IHBhcnNlID0gcG9zaXgucGFyc2U7XG5cbi8qKlxuICogUmV0dXJucyB0aGUgcmVsYXRpdmUgcGF0aCBmcm9tIG9uZSBwYXRoIHRvIGFub3RoZXIuXG4gKlxuICogQHBhcmFtIGZyb20gLSBUaGUgc3RhcnRpbmcgcGF0aC5cbiAqIEBwYXJhbSB0byAtIFRoZSBkZXN0aW5hdGlvbiBwYXRoLlxuICogQHJldHVybnMgVGhlIHJlbGF0aXZlIHBhdGggZnJvbSBgZnJvbWAgdG8gYHRvYC5cbiAqL1xuZXhwb3J0IGNvbnN0IHJlbGF0aXZlID0gcG9zaXgucmVsYXRpdmU7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIG1ha2VGaWxlTmFtZX0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFrZUZpbGVOYW1lUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBmaWxlIG5hbWUgdG8gYXBwZW5kIHRoZSBleHRlbnNpb24gdG8uXG4gICAqL1xuICByZWFkb25seSBmaWxlQmFzZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGV4dGVuc2lvbiB0byBhcHBlbmQgdG8gdGhlIGZpbGUgbmFtZS5cbiAgICovXG4gIHJlYWRvbmx5IGZpbGVFeHRlbnNpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSBmaWxlIG5hbWUgZnJvbSB0aGUgYGltcG9ydChkb3QpbWV0YShkb3QpdXJsYCwgY29udmVydGluZyBpdCB0byBhIFBPU0lYLXN0eWxlIHBhdGguXG4gKlxuICogQHBhcmFtIGltcG9ydE1ldGFVcmwgLSBUaGUgYGltcG9ydChkb3QpbWV0YShkb3QpdXJsYCBmcm9tIHdoaWNoIHRvIGV4dHJhY3QgdGhlIGZpbGUgbmFtZS5cbiAqIEByZXR1cm5zIFRoZSBQT1NJWC1zdHlsZSBmaWxlIG5hbWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWxlTmFtZShpbXBvcnRNZXRhVXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcmVzb2x2ZShkZWNvZGVVUkkobmV3IFVSTChpbXBvcnRNZXRhVXJsKS5wYXRobmFtZSkpO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIGZvbGRlciBuYW1lIGZyb20gdGhlIGBpbXBvcnQoZG90KW1ldGEoZG90KXVybGAsIGNvbnZlcnRpbmcgaXQgdG8gYSBQT1NJWC1zdHlsZSBwYXRoLlxuICpcbiAqIEBwYXJhbSBpbXBvcnRNZXRhVXJsIC0gVGhlIGBpbXBvcnQoZG90KW1ldGEoZG90KXVybGAgZnJvbSB3aGljaCB0byBleHRyYWN0IHRoZSBmb2xkZXIgbmFtZS5cbiAqIEByZXR1cm5zIFRoZSBQT1NJWC1zdHlsZSBmb2xkZXIgbmFtZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEZvbGRlck5hbWUoaW1wb3J0TWV0YVVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGRpcm5hbWUoZ2V0RmlsZU5hbWUoaW1wb3J0TWV0YVVybCkpO1xufVxuXG4vKipcbiAqIE1ha2VzIGEgZmlsZSBuYW1lIGJ5IGFwcGVuZGluZyBhbiBleHRlbnNpb24gdG8gYSBnaXZlbiBmaWxlIG5hbWUuXG4gKiBJZiB0aGUgZXh0ZW5zaW9uIGlzIGVtcHR5LCB0aGUgZmlsZSBuYW1lIGlzIHJldHVybmVkIGFzIGlzLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgbWFraW5nIHRoZSBmaWxlIG5hbWUuXG4gKiBAcmV0dXJucyBUaGUgZmlsZSBuYW1lIHdpdGggdGhlIGV4dGVuc2lvbiBhcHBlbmRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1ha2VGaWxlTmFtZShwYXJhbXM6IE1ha2VGaWxlTmFtZVBhcmFtcyk6IHN0cmluZyB7XG4gIHJldHVybiBwYXJhbXMuZmlsZUV4dGVuc2lvbiA/IGAke3BhcmFtcy5maWxlQmFzZU5hbWV9LiR7cGFyYW1zLmZpbGVFeHRlbnNpb259YCA6IHBhcmFtcy5maWxlQmFzZU5hbWU7XG59XG5cbi8qKlxuICogTm9ybWFsaXplcyBhIGdpdmVuIHBhdGggYnkgZW5zdXJpbmcgaXQgaXMgcmVsYXRpdmUsIGFkZGluZyBcIi4vXCIgaWYgbmVjZXNzYXJ5LlxuICpcbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggdG8gbm9ybWFsaXplLlxuICogQHJldHVybnMgVGhlIG5vcm1hbGl6ZWQgcGF0aCwgc3RhcnRpbmcgd2l0aCBcIi4vXCIgaWYgaXQgd2FzIHJlbGF0aXZlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplSWZSZWxhdGl2ZShwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAocGF0aC5zdGFydHNXaXRoKCcvJykgfHwgcGF0aC5pbmNsdWRlcygnOicpKSB7XG4gICAgcmV0dXJuIHBhdGg7XG4gIH1cblxuICByZXR1cm4gZW5zdXJlU3RhcnRzV2l0aCh7XG4gICAgcHJlZml4OiAnLi8nLFxuICAgIHN0cjogcGF0aFxuICB9KTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyBhIHNlcXVlbmNlIG9mIHBhdGhzIG9yIHBhdGggc2VnbWVudHMgaW50byBhbiBhYnNvbHV0ZSBwYXRoLlxuICpcbiAqIEBwYXJhbSBwYXRoU2VnbWVudHMgLSBUaGUgc2VxdWVuY2Ugb2YgcGF0aCBzZWdtZW50cyB0byByZXNvbHZlLlxuICogQHJldHVybnMgVGhlIHJlc29sdmVkIGFic29sdXRlIHBhdGguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlKC4uLnBhdGhTZWdtZW50czogc3RyaW5nW10pOiBzdHJpbmcge1xuICBsZXQgcGF0aCA9IHBvc2l4LnJlc29sdmUoLi4ucGF0aFNlZ21lbnRzKTtcbiAgcGF0aCA9IHRvUG9zaXhQYXRoKHBhdGgpO1xuICBjb25zdCBtYXRjaCA9IFdJTkRPV1NfUE9TSVhfTElLRV9QQVRIX1JFR19FWFAuZXhlYyhwYXRoKTtcbiAgcmV0dXJuIG1hdGNoPy5bMF0gPz8gcGF0aDtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIGJ1ZmZlciBjb250YWluaW5nIGEgcGF0aCB0byBhIFBPU0lYLXN0eWxlIGJ1ZmZlciBieSByZXBsYWNpbmcgYmFja3NsYXNoZXMgd2l0aCBmb3J3YXJkIHNsYXNoZXMuXG4gKlxuICogQHBhcmFtIGJ1ZmZlciAtIFRoZSBidWZmZXIgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIEEgbmV3IGJ1ZmZlciBjb250YWluaW5nIHRoZSBQT1NJWC1zdHlsZSBwYXRoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9Qb3NpeEJ1ZmZlcihidWZmZXI6IEJ1ZmZlcik6IEJ1ZmZlciB7XG4gIHJldHVybiBCdWZmZXIuZnJvbSh0b1Bvc2l4UGF0aChTdHJpbmcoYnVmZmVyKSkpO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgZ2l2ZW4gcGF0aCB0byBhIFBPU0lYLXN0eWxlIHBhdGggYnkgcmVwbGFjaW5nIGJhY2tzbGFzaGVzIHdpdGggZm9yd2FyZCBzbGFzaGVzLlxuICpcbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggdG8gY29udmVydC5cbiAqIEByZXR1cm5zIFRoZSBQT1NJWC1zdHlsZSBwYXRoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9Qb3NpeFBhdGgocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJlcGxhY2VBbGwoe1xuICAgIHJlcGxhY2VyOiAnLycsXG4gICAgc2VhcmNoVmFsdWU6ICdcXFxcJyxcbiAgICBzdHI6IHBhdGhcbiAgfSk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU1BLE9BQU8sb0JBQW9CO0FBRTNCO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBRVAsTUFBTSxrQ0FBa0M7QUFLakMsTUFBTSxRQUFRLGVBQWU7QUFLN0IsTUFBTSxZQUFZLE1BQU07QUFLeEIsTUFBTSxNQUFNLGVBQWUsTUFBTTtBQVNqQyxNQUFNLFdBQVcsTUFBTTtBQVV2QixNQUFNLFVBQVUsTUFBTTtBQVF0QixNQUFNLFVBQVUsTUFBTTtBQVF0QixNQUFNLFNBQVMsTUFBTTtBQVFyQixTQUFTLFdBQVcsTUFBdUI7QUFDaEQsU0FBTyxNQUFNLFdBQVcsSUFBSSxLQUFLLGdDQUFnQyxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU07QUFDdkY7QUFRTyxNQUFNLE9BQU8sTUFBTTtBQVFuQixNQUFNLGdCQUFnQixNQUFNO0FBUTVCLE1BQU0sUUFBUSxNQUFNO0FBU3BCLE1BQU0sV0FBVyxNQUFNO0FBdUJ2QixTQUFTLFlBQVksZUFBK0I7QUFDekQsU0FBTyxRQUFRLFVBQVUsSUFBSSxJQUFJLGFBQWEsRUFBRSxRQUFRLENBQUM7QUFDM0Q7QUFRTyxTQUFTLGNBQWMsZUFBK0I7QUFDM0QsU0FBTyxRQUFRLFlBQVksYUFBYSxDQUFDO0FBQzNDO0FBU08sU0FBUyxhQUFhLFFBQW9DO0FBQy9ELFNBQU8sT0FBTyxnQkFBZ0IsR0FBRyxPQUFPLFlBQVksSUFBSSxPQUFPLGFBQWEsS0FBSyxPQUFPO0FBQzFGO0FBUU8sU0FBUyxvQkFBb0IsTUFBc0I7QUFDeEQsTUFBSSxLQUFLLFdBQVcsR0FBRyxLQUFLLEtBQUssU0FBUyxHQUFHLEdBQUc7QUFDOUMsV0FBTztBQUFBLEVBQ1Q7QUFFQSxTQUFPLGlCQUFpQjtBQUFBLElBQ3RCLFFBQVE7QUFBQSxJQUNSLEtBQUs7QUFBQSxFQUNQLENBQUM7QUFDSDtBQVFPLFNBQVMsV0FBVyxjQUFnQztBQUN6RCxNQUFJLE9BQU8sTUFBTSxRQUFRLEdBQUcsWUFBWTtBQUN4QyxTQUFPLFlBQVksSUFBSTtBQUN2QixRQUFNLFFBQVEsZ0NBQWdDLEtBQUssSUFBSTtBQUN2RCxTQUFPLFFBQVEsQ0FBQyxLQUFLO0FBQ3ZCO0FBUU8sU0FBUyxjQUFjLFFBQXdCO0FBQ3BELFNBQU8sT0FBTyxLQUFLLFlBQVksT0FBTyxNQUFNLENBQUMsQ0FBQztBQUNoRDtBQVFPLFNBQVMsWUFBWSxNQUFzQjtBQUNoRCxTQUFPLFdBQVc7QUFBQSxJQUNoQixVQUFVO0FBQUEsSUFDVixhQUFhO0FBQUEsSUFDYixLQUFLO0FBQUEsRUFDUCxDQUFDO0FBQ0g7IiwKICAibmFtZXMiOiBbXQp9Cg==
99
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3BhdGgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDb250YWlucyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgaGFuZGxpbmcgcGF0aHMuXG4gKi9cblxuaW1wb3J0IHBhdGhCcm93c2VyaWZ5IGZyb20gJ3BhdGgtYnJvd3NlcmlmeSc7XG5cbmltcG9ydCB7XG4gIGVuc3VyZVN0YXJ0c1dpdGgsXG4gIHJlcGxhY2VBbGxcbn0gZnJvbSAnLi9zdHJpbmcudHMnO1xuXG5jb25zdCBXSU5ET1dTX1BPU0lYX0xJS0VfUEFUSF9SRUdfRVhQID0gL1thLXpBLVpdOlxcL1teOl0qJC87XG5cbi8qKlxuICogUHJvdmlkZXMgbWV0aG9kcyBmb3IgaGFuZGxpbmcgUE9TSVggcGF0aHMuXG4gKi9cbmV4cG9ydCBjb25zdCBwb3NpeCA9IHBhdGhCcm93c2VyaWZ5LnBvc2l4O1xuXG4vKipcbiAqIEEgUE9TSVggcGF0aCBkZWxpbWl0ZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBkZWxpbWl0ZXIgPSBwb3NpeC5kZWxpbWl0ZXI7XG5cbi8qKlxuICogQSBQT1NJWCBzZWdtZW50IHNlcGFyYXRvci5cbiAqL1xuZXhwb3J0IGNvbnN0IHNlcGFyYXRvciA9IHBhdGhCcm93c2VyaWZ5LnBvc2l4LnNlcDtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBiYXNlIG5hbWUgb2YgYSBmaWxlLCBvcHRpb25hbGx5IHJlbW92aW5nIHRoZSBmaWxlIGV4dGVuc2lvbi5cbiAqXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSBwYXRoIHRvIGdldCB0aGUgYmFzZSBuYW1lIGZyb20uXG4gKiBAcGFyYW0gZXh0IC0gQW4gb3B0aW9uYWwgZXh0ZW5zaW9uIHRvIHJlbW92ZSBmcm9tIHRoZSBiYXNlIG5hbWUuXG4gKiBAcmV0dXJucyBUaGUgYmFzZSBuYW1lIG9mIHRoZSBmaWxlLlxuICovXG5leHBvcnQgY29uc3QgYmFzZW5hbWUgPSBwb3NpeC5iYXNlbmFtZTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBkaXJlY3RvcnkgbmFtZSBvZiBhIHBhdGguXG4gKlxuICogYGRpcmVjdG9yeWAgaXMgdXNlZCBpbnN0ZWFkIG9mIGBmb2xkZXJgIHRvIHByZXNlcnZlIGNvbXBhdGliaWxpdHkgd2l0aCBgbm9kZTpwYXRoYCBtb2R1bGUuXG4gKlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCB0byBnZXQgdGhlIGRpcmVjdG9yeSBuYW1lIGZyb20uXG4gKiBAcmV0dXJucyBUaGUgZGlyZWN0b3J5IG5hbWUgb2YgdGhlIHBhdGguXG4gKi9cbmV4cG9ydCBjb25zdCBkaXJuYW1lID0gcG9zaXguZGlybmFtZTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBmaWxlIGV4dGVuc2lvbiBvZiBhIHBhdGguXG4gKlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCB0byBnZXQgdGhlIGV4dGVuc2lvbiBmcm9tLlxuICogQHJldHVybnMgVGhlIGZpbGUgZXh0ZW5zaW9uIG9mIHRoZSBwYXRoLlxuICovXG5leHBvcnQgY29uc3QgZXh0bmFtZSA9IHBvc2l4LmV4dG5hbWU7XG5cbi8qKlxuICogRm9ybWF0cyBhIHBhdGggb2JqZWN0IGludG8gYSBwYXRoIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0gcGF0aE9iamVjdCAtIFRoZSBwYXRoIG9iamVjdCB0byBmb3JtYXQuXG4gKiBAcmV0dXJucyBUaGUgZm9ybWF0dGVkIHBhdGggc3RyaW5nLlxuICovXG5leHBvcnQgY29uc3QgZm9ybWF0ID0gcG9zaXguZm9ybWF0O1xuXG4vKipcbiAqIERldGVybWluZXMgaWYgYSBwYXRoIGlzIGFic29sdXRlLlxuICpcbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggdG8gY2hlY2suXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHBhdGggaXMgYWJzb2x1dGUsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNBYnNvbHV0ZShwYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIHBvc2l4LmlzQWJzb2x1dGUocGF0aCkgfHwgV0lORE9XU19QT1NJWF9MSUtFX1BBVEhfUkVHX0VYUC5leGVjKHBhdGgpPy5bMF0gPT09IHBhdGg7XG59XG5cbi8qKlxuICogSm9pbnMgbXVsdGlwbGUgcGF0aCBzZWdtZW50cyBpbnRvIGEgc2luZ2xlIHBhdGguXG4gKlxuICogQHBhcmFtIHBhdGhzIC0gVGhlIHBhdGggc2VnbWVudHMgdG8gam9pbi5cbiAqIEByZXR1cm5zIFRoZSBqb2luZWQgcGF0aC5cbiAqL1xuZXhwb3J0IGNvbnN0IGpvaW4gPSBwb3NpeC5qb2luO1xuXG4vKipcbiAqIE5vcm1hbGl6ZXMgYSBwYXRoLCByZXNvbHZpbmcgJy4uJyBhbmQgJy4nIHNlZ21lbnRzLlxuICpcbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggdG8gbm9ybWFsaXplLlxuICogQHJldHVybnMgVGhlIG5vcm1hbGl6ZWQgcGF0aC5cbiAqL1xuZXhwb3J0IGNvbnN0IG5vcm1hbGl6ZVBhdGggPSBwb3NpeC5ub3JtYWxpemU7XG5cbi8qKlxuICogUGFyc2VzIGEgcGF0aCBzdHJpbmcgaW50byBhIHBhdGggb2JqZWN0LlxuICpcbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggc3RyaW5nIHRvIHBhcnNlLlxuICogQHJldHVybnMgVGhlIHBhcnNlZCBwYXRoIG9iamVjdC5cbiAqL1xuZXhwb3J0IGNvbnN0IHBhcnNlID0gcG9zaXgucGFyc2U7XG5cbi8qKlxuICogUmV0dXJucyB0aGUgcmVsYXRpdmUgcGF0aCBmcm9tIG9uZSBwYXRoIHRvIGFub3RoZXIuXG4gKlxuICogQHBhcmFtIGZyb20gLSBUaGUgc3RhcnRpbmcgcGF0aC5cbiAqIEBwYXJhbSB0byAtIFRoZSBkZXN0aW5hdGlvbiBwYXRoLlxuICogQHJldHVybnMgVGhlIHJlbGF0aXZlIHBhdGggZnJvbSBgZnJvbWAgdG8gYHRvYC5cbiAqL1xuZXhwb3J0IGNvbnN0IHJlbGF0aXZlID0gcG9zaXgucmVsYXRpdmU7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIG1ha2VGaWxlTmFtZX0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFrZUZpbGVOYW1lUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBmaWxlIG5hbWUgdG8gYXBwZW5kIHRoZSBleHRlbnNpb24gdG8uXG4gICAqL1xuICByZWFkb25seSBmaWxlQmFzZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGV4dGVuc2lvbiB0byBhcHBlbmQgdG8gdGhlIGZpbGUgbmFtZS5cbiAgICovXG4gIHJlYWRvbmx5IGZpbGVFeHRlbnNpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSBmaWxlIG5hbWUgZnJvbSB0aGUgYGltcG9ydChkb3QpbWV0YShkb3QpdXJsYCwgY29udmVydGluZyBpdCB0byBhIFBPU0lYLXN0eWxlIHBhdGguXG4gKlxuICogQHBhcmFtIGltcG9ydE1ldGFVcmwgLSBUaGUgYGltcG9ydChkb3QpbWV0YShkb3QpdXJsYCBmcm9tIHdoaWNoIHRvIGV4dHJhY3QgdGhlIGZpbGUgbmFtZS5cbiAqIEByZXR1cm5zIFRoZSBQT1NJWC1zdHlsZSBmaWxlIG5hbWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWxlTmFtZShpbXBvcnRNZXRhVXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcmVzb2x2ZShkZWNvZGVVUkkobmV3IFVSTChpbXBvcnRNZXRhVXJsKS5wYXRobmFtZSkpO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIGZvbGRlciBuYW1lIGZyb20gdGhlIGBpbXBvcnQoZG90KW1ldGEoZG90KXVybGAsIGNvbnZlcnRpbmcgaXQgdG8gYSBQT1NJWC1zdHlsZSBwYXRoLlxuICpcbiAqIEBwYXJhbSBpbXBvcnRNZXRhVXJsIC0gVGhlIGBpbXBvcnQoZG90KW1ldGEoZG90KXVybGAgZnJvbSB3aGljaCB0byBleHRyYWN0IHRoZSBmb2xkZXIgbmFtZS5cbiAqIEByZXR1cm5zIFRoZSBQT1NJWC1zdHlsZSBmb2xkZXIgbmFtZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEZvbGRlck5hbWUoaW1wb3J0TWV0YVVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGRpcm5hbWUoZ2V0RmlsZU5hbWUoaW1wb3J0TWV0YVVybCkpO1xufVxuXG4vKipcbiAqIE1ha2VzIGEgZmlsZSBuYW1lIGJ5IGFwcGVuZGluZyBhbiBleHRlbnNpb24gdG8gYSBnaXZlbiBmaWxlIG5hbWUuXG4gKiBJZiB0aGUgZXh0ZW5zaW9uIGlzIGVtcHR5LCB0aGUgZmlsZSBuYW1lIGlzIHJldHVybmVkIGFzIGlzLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgbWFraW5nIHRoZSBmaWxlIG5hbWUuXG4gKiBAcmV0dXJucyBUaGUgZmlsZSBuYW1lIHdpdGggdGhlIGV4dGVuc2lvbiBhcHBlbmRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1ha2VGaWxlTmFtZShwYXJhbXM6IE1ha2VGaWxlTmFtZVBhcmFtcyk6IHN0cmluZyB7XG4gIHJldHVybiBwYXJhbXMuZmlsZUV4dGVuc2lvbiA/IGAke3BhcmFtcy5maWxlQmFzZU5hbWV9LiR7cGFyYW1zLmZpbGVFeHRlbnNpb259YCA6IHBhcmFtcy5maWxlQmFzZU5hbWU7XG59XG5cbi8qKlxuICogTm9ybWFsaXplcyBhIGdpdmVuIHBhdGggYnkgZW5zdXJpbmcgaXQgaXMgcmVsYXRpdmUsIGFkZGluZyBcIi4vXCIgaWYgbmVjZXNzYXJ5LlxuICpcbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggdG8gbm9ybWFsaXplLlxuICogQHJldHVybnMgVGhlIG5vcm1hbGl6ZWQgcGF0aCwgc3RhcnRpbmcgd2l0aCBcIi4vXCIgaWYgaXQgd2FzIHJlbGF0aXZlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplSWZSZWxhdGl2ZShwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAocGF0aC5zdGFydHNXaXRoKCcvJykgfHwgcGF0aC5pbmNsdWRlcygnOicpKSB7XG4gICAgcmV0dXJuIHBhdGg7XG4gIH1cblxuICByZXR1cm4gZW5zdXJlU3RhcnRzV2l0aCh7XG4gICAgJHN0cmluZzogcGF0aCxcbiAgICBwcmVmaXg6ICcuLydcbiAgfSk7XG59XG5cbi8qKlxuICogUmVzb2x2ZXMgYSBzZXF1ZW5jZSBvZiBwYXRocyBvciBwYXRoIHNlZ21lbnRzIGludG8gYW4gYWJzb2x1dGUgcGF0aC5cbiAqXG4gKiBAcGFyYW0gcGF0aFNlZ21lbnRzIC0gVGhlIHNlcXVlbmNlIG9mIHBhdGggc2VnbWVudHMgdG8gcmVzb2x2ZS5cbiAqIEByZXR1cm5zIFRoZSByZXNvbHZlZCBhYnNvbHV0ZSBwYXRoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZSguLi5wYXRoU2VnbWVudHM6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgbGV0IHBhdGggPSBwb3NpeC5yZXNvbHZlKC4uLnBhdGhTZWdtZW50cyk7XG4gIHBhdGggPSB0b1Bvc2l4UGF0aChwYXRoKTtcbiAgY29uc3QgbWF0Y2ggPSBXSU5ET1dTX1BPU0lYX0xJS0VfUEFUSF9SRUdfRVhQLmV4ZWMocGF0aCk7XG4gIHJldHVybiBtYXRjaD8uWzBdID8/IHBhdGg7XG59XG5cbi8qKlxuICogQ29udmVydHMgYSBidWZmZXIgY29udGFpbmluZyBhIHBhdGggdG8gYSBQT1NJWC1zdHlsZSBidWZmZXIgYnkgcmVwbGFjaW5nIGJhY2tzbGFzaGVzIHdpdGggZm9yd2FyZCBzbGFzaGVzLlxuICpcbiAqIEBwYXJhbSBidWZmZXIgLSBUaGUgYnVmZmVyIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyBBIG5ldyBidWZmZXIgY29udGFpbmluZyB0aGUgUE9TSVgtc3R5bGUgcGF0aC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvUG9zaXhCdWZmZXIoYnVmZmVyOiBCdWZmZXIpOiBCdWZmZXIge1xuICByZXR1cm4gQnVmZmVyLmZyb20odG9Qb3NpeFBhdGgoU3RyaW5nKGJ1ZmZlcikpKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIGdpdmVuIHBhdGggdG8gYSBQT1NJWC1zdHlsZSBwYXRoIGJ5IHJlcGxhY2luZyBiYWNrc2xhc2hlcyB3aXRoIGZvcndhcmQgc2xhc2hlcy5cbiAqXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSBwYXRoIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyBUaGUgUE9TSVgtc3R5bGUgcGF0aC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvUG9zaXhQYXRoKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiByZXBsYWNlQWxsKHtcbiAgICAkc3RyaW5nOiBwYXRoLFxuICAgIHJlcGxhY2VyOiAnLycsXG4gICAgc2VhcmNoVmFsdWU6ICdcXFxcJ1xuICB9KTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTUEsT0FBTyxvQkFBb0I7QUFFM0I7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFFUCxNQUFNLGtDQUFrQztBQUtqQyxNQUFNLFFBQVEsZUFBZTtBQUs3QixNQUFNLFlBQVksTUFBTTtBQUt4QixNQUFNLFlBQVksZUFBZSxNQUFNO0FBU3ZDLE1BQU0sV0FBVyxNQUFNO0FBVXZCLE1BQU0sVUFBVSxNQUFNO0FBUXRCLE1BQU0sVUFBVSxNQUFNO0FBUXRCLE1BQU0sU0FBUyxNQUFNO0FBUXJCLFNBQVMsV0FBVyxNQUF1QjtBQUNoRCxTQUFPLE1BQU0sV0FBVyxJQUFJLEtBQUssZ0NBQWdDLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTTtBQUN2RjtBQVFPLE1BQU0sT0FBTyxNQUFNO0FBUW5CLE1BQU0sZ0JBQWdCLE1BQU07QUFRNUIsTUFBTSxRQUFRLE1BQU07QUFTcEIsTUFBTSxXQUFXLE1BQU07QUF1QnZCLFNBQVMsWUFBWSxlQUErQjtBQUN6RCxTQUFPLFFBQVEsVUFBVSxJQUFJLElBQUksYUFBYSxFQUFFLFFBQVEsQ0FBQztBQUMzRDtBQVFPLFNBQVMsY0FBYyxlQUErQjtBQUMzRCxTQUFPLFFBQVEsWUFBWSxhQUFhLENBQUM7QUFDM0M7QUFTTyxTQUFTLGFBQWEsUUFBb0M7QUFDL0QsU0FBTyxPQUFPLGdCQUFnQixHQUFHLE9BQU8sWUFBWSxJQUFJLE9BQU8sYUFBYSxLQUFLLE9BQU87QUFDMUY7QUFRTyxTQUFTLG9CQUFvQixNQUFzQjtBQUN4RCxNQUFJLEtBQUssV0FBVyxHQUFHLEtBQUssS0FBSyxTQUFTLEdBQUcsR0FBRztBQUM5QyxXQUFPO0FBQUEsRUFDVDtBQUVBLFNBQU8saUJBQWlCO0FBQUEsSUFDdEIsU0FBUztBQUFBLElBQ1QsUUFBUTtBQUFBLEVBQ1YsQ0FBQztBQUNIO0FBUU8sU0FBUyxXQUFXLGNBQWdDO0FBQ3pELE1BQUksT0FBTyxNQUFNLFFBQVEsR0FBRyxZQUFZO0FBQ3hDLFNBQU8sWUFBWSxJQUFJO0FBQ3ZCLFFBQU0sUUFBUSxnQ0FBZ0MsS0FBSyxJQUFJO0FBQ3ZELFNBQU8sUUFBUSxDQUFDLEtBQUs7QUFDdkI7QUFRTyxTQUFTLGNBQWMsUUFBd0I7QUFDcEQsU0FBTyxPQUFPLEtBQUssWUFBWSxPQUFPLE1BQU0sQ0FBQyxDQUFDO0FBQ2hEO0FBUU8sU0FBUyxZQUFZLE1BQXNCO0FBQ2hELFNBQU8sV0FBVztBQUFBLElBQ2hCLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxJQUNWLGFBQWE7QUFBQSxFQUNmLENBQUM7QUFDSDsiLAogICJuYW1lcyI6IFtdCn0K
@@ -24,10 +24,10 @@ export declare enum RegExpMergeFlagsConflictStrategy {
24
24
  /**
25
25
  * Escapes special characters in a string to safely use it within a regular expression.
26
26
  *
27
- * @param str - The string to escape.
27
+ * @param $string - The string to escape.
28
28
  * @returns The escaped string with special characters prefixed with a backslash.
29
29
  */
30
- export declare function escapeRegExp(str: string): string;
30
+ export declare function escapeRegExp($string: string): string;
31
31
  /**
32
32
  * Reads a mandatory named capture group from a regex match.
33
33
  *
@@ -65,10 +65,10 @@ export declare function getOptionalNamedGroup(match: RegExpMatchArray, groupName
65
65
  /**
66
66
  * Checks if a string is a valid regular expression.
67
67
  *
68
- * @param str - The string to check.
68
+ * @param $string - The string to check.
69
69
  * @returns `true` if the string is a valid regular expression, `false` otherwise.
70
70
  */
71
- export declare function isValidRegExp(str: string): boolean;
71
+ export declare function isValidRegExp($string: string): boolean;
72
72
  /**
73
73
  * A regular expression that always matches.
74
74
  */
@@ -32,8 +32,8 @@ var RegExpMergeFlagsConflictStrategy = /* @__PURE__ */ ((RegExpMergeFlagsConflic
32
32
  RegExpMergeFlagsConflictStrategy2["Union"] = "Union";
33
33
  return RegExpMergeFlagsConflictStrategy2;
34
34
  })(RegExpMergeFlagsConflictStrategy || {});
35
- function escapeRegExp(str) {
36
- return str.replaceAll(/[.*+?^${}()|[\]\\]/g, "\\$&");
35
+ function escapeRegExp($string) {
36
+ return $string.replaceAll(/[.*+?^${}()|[\]\\]/g, String.raw`\$&`);
37
37
  }
38
38
  function getMandatoryNamedGroup(match, groupName) {
39
39
  return ensureNonNullable(getOptionalNamedGroup(match, groupName));
@@ -41,9 +41,9 @@ function getMandatoryNamedGroup(match, groupName) {
41
41
  function getOptionalNamedGroup(match, groupName) {
42
42
  return match.groups?.[groupName] ?? null;
43
43
  }
44
- function isValidRegExp(str) {
44
+ function isValidRegExp($string) {
45
45
  try {
46
- new RegExp(str);
46
+ new RegExp($string);
47
47
  return true;
48
48
  } catch {
49
49
  return false;
@@ -102,28 +102,31 @@ class RegExpFlagMerger {
102
102
  let shouldUseVFlag;
103
103
  switch (this.strategy) {
104
104
  /* v8 ignore stop */
105
- case "Intersect" /* Intersect */:
105
+ case "Intersect" /* Intersect */: {
106
106
  shouldUseUFlag = countU === this.regExps.length;
107
107
  shouldUseVFlag = countV === this.regExps.length;
108
108
  break;
109
+ }
109
110
  case "Throw" /* Throw */: {
110
- const allU = countU === this.regExps.length;
111
- const noneU = countU === 0;
112
- const allV = countV === this.regExps.length;
113
- const noneV = countV === 0;
114
- if (!(allU || noneU) || !(allV || noneV)) {
111
+ const haveAllUFlag = countU === this.regExps.length;
112
+ const haveNoUFlag = countU === 0;
113
+ const haveAllVFlag = countV === this.regExps.length;
114
+ const haveNoVFlag = countV === 0;
115
+ if (!(haveAllUFlag || haveNoUFlag) || !(haveAllVFlag || haveNoVFlag)) {
115
116
  throw new Error("Conflicting 'u'/'v' flags across patterns.");
116
117
  }
117
- shouldUseUFlag = allU;
118
- shouldUseVFlag = allV;
118
+ shouldUseUFlag = haveAllUFlag;
119
+ shouldUseVFlag = haveAllVFlag;
119
120
  break;
120
121
  }
121
- case "Union" /* Union */:
122
+ case "Union" /* Union */: {
122
123
  shouldUseUFlag = countU > 0;
123
124
  shouldUseVFlag = countV > 0;
124
125
  break;
125
- default:
126
+ }
127
+ default: {
126
128
  assertNever(this.strategy);
129
+ }
127
130
  }
128
131
  if (shouldUseUFlag && shouldUseVFlag) {
129
132
  assert(this.strategy !== "Throw" /* Throw */, "Cannot combine both 'u'/'v' flags in one RegExp.");
@@ -140,17 +143,21 @@ class RegExpFlagMerger {
140
143
  const count = this.regExps.filter((regExp) => hasFlag(regExp, flag)).length;
141
144
  switch (this.strategy) {
142
145
  /* v8 ignore stop */
143
- case "Intersect" /* Intersect */:
146
+ case "Intersect" /* Intersect */: {
144
147
  return count === this.regExps.length;
145
- case "Throw" /* Throw */:
148
+ }
149
+ case "Throw" /* Throw */: {
146
150
  break;
147
- case "Union" /* Union */:
151
+ }
152
+ case "Union" /* Union */: {
148
153
  return count > 0;
149
- default:
154
+ }
155
+ default: {
150
156
  assertNever(this.strategy);
157
+ }
151
158
  }
152
- const allSame = count === 0 || count === this.regExps.length;
153
- if (!allSame) {
159
+ const haveAllSameFlag = count === 0 || count === this.regExps.length;
160
+ if (!haveAllSameFlag) {
154
161
  throw new Error(`Conflicting flag '${flag}' across patterns.`);
155
162
  }
156
163
  return count === this.regExps.length;
@@ -177,4 +184,4 @@ export {
177
184
  isValidRegExp,
178
185
  oneOf
179
186
  };
180
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3JlZy1leHAudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDb250YWlucyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgcmVndWxhciBleHByZXNzaW9ucy5cbiAqL1xuXG5pbXBvcnQge1xuICBhc3NlcnQsXG4gIGFzc2VydE5ldmVyLFxuICBlbnN1cmVOb25OdWxsYWJsZVxufSBmcm9tICcuL3R5cGUtZ3VhcmRzLnRzJztcblxuLyoqXG4gKiBBIHN0cmF0ZWd5IHRvIHVzZSB3aGVuIG1lcmdpbmcgbXVsdGlwbGUgcmVnZXggZmxhZ3MgaW50byBvbmUgYWx0ZXJuYXRpb24uXG4gKi9cbmV4cG9ydCBlbnVtIFJlZ0V4cE1lcmdlRmxhZ3NDb25mbGljdFN0cmF0ZWd5IHtcbiAgLyoqXG4gICAqIEtlZXAgb25seSB0aGUgZmxhZ3MgcHJlc2VudCBpbiBhbGwgcmVnZXhlcy5cbiAgICovXG4gIEludGVyc2VjdCA9ICdJbnRlcnNlY3QnLFxuICAvKipcbiAgICogVGhyb3cgYW4gZXJyb3IgaWYgdGhlIHJlZ2V4ZXMgaGF2ZSBjb25mbGljdGluZyBmbGFncy5cbiAgICovXG4gIFRocm93ID0gJ1Rocm93JyxcbiAgLyoqXG4gICAqIEtlZXAgb25seSB0aGUgZmxhZ3MgcHJlc2VudCBpbiBhbnkgcmVnZXguXG4gICAqL1xuICBVbmlvbiA9ICdVbmlvbidcbn1cblxuLyoqXG4gKiBFc2NhcGVzIHNwZWNpYWwgY2hhcmFjdGVycyBpbiBhIHN0cmluZyB0byBzYWZlbHkgdXNlIGl0IHdpdGhpbiBhIHJlZ3VsYXIgZXhwcmVzc2lvbi5cbiAqXG4gKiBAcGFyYW0gc3RyIC0gVGhlIHN0cmluZyB0byBlc2NhcGUuXG4gKiBAcmV0dXJucyBUaGUgZXNjYXBlZCBzdHJpbmcgd2l0aCBzcGVjaWFsIGNoYXJhY3RlcnMgcHJlZml4ZWQgd2l0aCBhIGJhY2tzbGFzaC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVzY2FwZVJlZ0V4cChzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIC8vIE5PVEU6IFdlIGNhbid0IHVzZSBgcmVwbGFjZUFsbCgpYCBmcm9tIGBTdHJpbmcudHNgIGhlcmUgYmVjYXVzZSBpdCBpbnRyb2R1Y2VzIGEgY2lyY3VsYXIgZGVwZW5kZW5jeS5cbiAgcmV0dXJuIHN0ci5yZXBsYWNlQWxsKC9bLiorP14ke30oKXxbXFxdXFxcXF0vZywgJ1xcXFwkJicpO1xufVxuXG4vKipcbiAqIFJlYWRzIGEgbWFuZGF0b3J5IG5hbWVkIGNhcHR1cmUgZ3JvdXAgZnJvbSBhIHJlZ2V4IG1hdGNoLlxuICpcbiAqIFVzZSB0aGlzIGZvciBhIG5hbWVkIGdyb3VwIHRoYXQgaXMgQUxXQVlTIHByZXNlbnQgd2hlbiB0aGUgcGF0dGVybiBtYXRjaGVzIFx1MjAxNCBub3Qgd3JhcHBlZCBpbiBhbiBvcHRpb25hbFxuICogYCg/Olx1MjAyNik/YCAvIGAoXHUyMDI2KT9gLiBSZXR1cm5zIHRoZSBjYXB0dXJlZCBzdHJpbmcgKHdoaWNoIG1heSBiZSBgJydgIGZvciBhIHplcm8td2lkdGggbWF0Y2ggc3VjaCBhcyBgXFx3KmApLFxuICogdGhyb3dpbmcgaWYgdGhlIGdyb3VwIFx1MjAxNCBvciB0aGUgbWF0Y2gncyBgZ3JvdXBzYCBvYmplY3QgXHUyMDE0IGlzIGFic2VudCwgc28gYSBwYXR0ZXJuIGNoYW5nZSB0aGF0IGRyb3BzIHRoZVxuICogZ3JvdXAgZmFpbHMgbG91ZGx5IGluc3RlYWQgb2Ygc2lsZW50bHkgeWllbGRpbmcgYSB3cm9uZyB2YWx1ZS5cbiAqXG4gKiBQcmVmZXIgdGhpcyBvdmVyIGBtYXRjaC5ncm91cHM/LltuYW1lXSA/PyAnJ2A6IGZvciBhIG1hbmRhdG9yeSBncm91cCB0aGF0IGZhbGxiYWNrIGlzIGEgbmV2ZXItdGFrZW4gKGRlYWQpXG4gKiBicmFuY2ggdGhhdCBmYWlscyBhIDEwMCUtYnJhbmNoIGNvdmVyYWdlIGdhdGUsIHdoZXJlYXMgdGhlIHRocm93IGhlcmUgbGl2ZXMgaW5zaWRlIGBlbnN1cmVOb25OdWxsYWJsZWBcbiAqIChhbHJlYWR5IGNvdmVyZWQpLCBsZWF2aW5nIG5vIGlubGluZSBicmFuY2ggYXQgdGhlIGNhbGwgc2l0ZS4gRm9yIGEgZ3JvdXAgdGhhdCBtYXkgbGVnaXRpbWF0ZWx5IGJlIGFic2VudCxcbiAqIHVzZSB7QGxpbmsgZ2V0T3B0aW9uYWxOYW1lZEdyb3VwfSBhbmQgZGVmYXVsdCBpdHMgYG51bGxgIHdpdGggYD8/IFx1MjAyNmAuXG4gKlxuICogQHBhcmFtIG1hdGNoIC0gVGhlIG1hdGNoIHJldHVybmVkIGJ5IGBSZWdFeHAuZXhlY2AsIGBTdHJpbmcubWF0Y2hBbGxgLCBvciBgU3RyaW5nLm1hdGNoYC5cbiAqIEBwYXJhbSBncm91cE5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgY2FwdHVyZSBncm91cCB0byByZWFkLlxuICogQHJldHVybnMgVGhlIGNhcHR1cmVkIHN0cmluZy5cbiAqIEB0aHJvd3MgV2hlbiB0aGUgbmFtZWQgZ3JvdXAgaXMgYWJzZW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWFuZGF0b3J5TmFtZWRHcm91cChtYXRjaDogUmVnRXhwTWF0Y2hBcnJheSwgZ3JvdXBOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gZW5zdXJlTm9uTnVsbGFibGUoZ2V0T3B0aW9uYWxOYW1lZEdyb3VwKG1hdGNoLCBncm91cE5hbWUpKTtcbn1cblxuLyoqXG4gKiBSZWFkcyBhbiBvcHRpb25hbCBuYW1lZCBjYXB0dXJlIGdyb3VwIGZyb20gYSByZWdleCBtYXRjaCwgZGlzdGluZ3Vpc2hpbmcgYW4gYWJzZW50IGdyb3VwIGZyb20gYSBwcmVzZW50XG4gKiBlbXB0eSBvbmUuXG4gKlxuICogUmV0dXJucyB0aGUgY2FwdHVyZWQgc3RyaW5nIHdoZW4gdGhlIGdyb3VwIHBhcnRpY2lwYXRlZCBpbiB0aGUgbWF0Y2ggXHUyMDE0IHdoaWNoIG1heSBiZSBgJydgIGZvciBhIHplcm8td2lkdGhcbiAqIG1hdGNoIHN1Y2ggYXMgYFxcdypgIFx1MjAxNCBvciBgbnVsbGAgd2hlbiB0aGUgZ3JvdXAsIG9yIHRoZSBtYXRjaCdzIGBncm91cHNgIG9iamVjdCwgaXMgYWJzZW50IChlLmcuIGFuIG9wdGlvbmFsXG4gKiBgKD86XHUyMDI2KT9gIGdyb3VwIHRoYXQgZGlkIG5vdCBtYXRjaCkuIEJlY2F1c2UgYG51bGxgIGlzIHJldHVybmVkIG9ubHkgZm9yIGEgZ2VudWluZWx5LWFic2VudCBncm91cCwgYVxuICogY2FsbGVyJ3MgYD8/IDxkZWZhdWx0PmAgaXMgYSBsaXZlIGJyYW5jaCByYXRoZXIgdGhhbiB0aGUgZGVhZCBvbmUgdGhhdCBgbWF0Y2guZ3JvdXBzPy5bbmFtZV0gPz8gJydgIGxlYXZlc1xuICogZm9yIGEgbWFuZGF0b3J5IGdyb3VwLiBGb3IgYSBncm91cCB0aGF0IG11c3QgYWx3YXlzIGJlIHByZXNlbnQsIHVzZSB7QGxpbmsgZ2V0TWFuZGF0b3J5TmFtZWRHcm91cH0uXG4gKlxuICogQHBhcmFtIG1hdGNoIC0gVGhlIG1hdGNoIHJldHVybmVkIGJ5IGBSZWdFeHAuZXhlY2AsIGBTdHJpbmcubWF0Y2hBbGxgLCBvciBgU3RyaW5nLm1hdGNoYC5cbiAqIEBwYXJhbSBncm91cE5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgY2FwdHVyZSBncm91cCB0byByZWFkLlxuICogQHJldHVybnMgVGhlIGNhcHR1cmVkIHN0cmluZywgb3IgYG51bGxgIHdoZW4gdGhlIGdyb3VwIGlzIGFic2VudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE9wdGlvbmFsTmFtZWRHcm91cChtYXRjaDogUmVnRXhwTWF0Y2hBcnJheSwgZ3JvdXBOYW1lOiBzdHJpbmcpOiBudWxsIHwgc3RyaW5nIHtcbiAgcmV0dXJuIG1hdGNoLmdyb3Vwcz8uW2dyb3VwTmFtZV0gPz8gbnVsbDtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYSBzdHJpbmcgaXMgYSB2YWxpZCByZWd1bGFyIGV4cHJlc3Npb24uXG4gKlxuICogQHBhcmFtIHN0ciAtIFRoZSBzdHJpbmcgdG8gY2hlY2suXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHN0cmluZyBpcyBhIHZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbiwgYGZhbHNlYCBvdGhlcndpc2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkUmVnRXhwKHN0cjogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgbmV3IFJlZ0V4cChzdHIpO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZnVuY3Rpb24gaGFzRmxhZyhyZWdFeHA6IFJlZ0V4cCwgZmxhZzogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiByZWdFeHAuZmxhZ3MuaW5jbHVkZXMoZmxhZyk7XG59XG5cbi8qKlxuICogQSByZWd1bGFyIGV4cHJlc3Npb24gdGhhdCBhbHdheXMgbWF0Y2hlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IEFMV0FZU19NQVRDSF9SRUdfRVhQID0gLyg/OikvO1xuXG4vKipcbiAqIEEgcmVndWxhciBleHByZXNzaW9uIHRoYXQgbmV2ZXIgbWF0Y2hlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IE5FVkVSX01BVENIX1JFR19FWFAgPSAvLl4vO1xuXG4vKipcbiAqIE1lcmdlcyB0aGUgZmxhZ3Mgb2YgbXVsdGlwbGUgcmVnZXhlcyBpbnRvIGEgc2luZ2xlIGZsYWcgc3RyaW5nLCBhcHBseWluZyBhIGNvbmZsaWN0IHN0cmF0ZWd5LlxuICpcbiAqIFRoZSBjb29wZXJhdGluZyBwZXItZmxhZyBoZWxwZXJzIHNoYXJlIHRoZSBzYW1lIHJlZ2V4ZXMsIHN0cmF0ZWd5LCBhbmQgYWNjdW11bGF0ZWQgZmxhZyBzZXQsIHNvXG4gKiB0aGV5IGFyZSBncm91cGVkIGhlcmUgYXMgbWV0aG9kcyBvdmVyIHRob3NlIGZpZWxkcyByYXRoZXIgdGhhbiB0aHJlYWRpbmcgdGhlIHN0YXRlIHRocm91Z2hcbiAqIHBvc2l0aW9uYWwgYXJndW1lbnRzLlxuICovXG5jbGFzcyBSZWdFeHBGbGFnTWVyZ2VyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBmaW5hbEZsYWdzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgbWVyZ2VyLlxuICAgKlxuICAgKiBAcGFyYW0gcmVnRXhwcyAtIFRoZSByZWdleGVzIHdob3NlIGZsYWdzIGFyZSBtZXJnZWQuXG4gICAqIEBwYXJhbSBzdHJhdGVneSAtIFRoZSBzdHJhdGVneSB0byB1c2Ugd2hlbiBmbGFncyBjb25mbGljdC5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHJlZ0V4cHM6IFJlZ0V4cFtdLCBwcml2YXRlIHJlYWRvbmx5IHN0cmF0ZWd5OiBSZWdFeHBNZXJnZUZsYWdzQ29uZmxpY3RTdHJhdGVneSkge31cblxuICAvKipcbiAgICogQ29tcHV0ZXMgdGhlIG1lcmdlZCBmbGFnIHN0cmluZyBmb3IgdGhlIGNvbmZpZ3VyZWQgcmVnZXhlcy5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIG1lcmdlZCBmbGFncyBqb2luZWQgaW50byBhIHNpbmdsZSBzdHJpbmcuXG4gICAqL1xuICBwdWJsaWMgY29tcHV0ZUZsYWdzKCk6IHN0cmluZyB7XG4gICAgdGhpcy5hZGRTZW1hbnRpY0ZsYWdzKCk7XG4gICAgdGhpcy5hZGRVbmljb2RlRmxhZ3MoKTtcbiAgICB0aGlzLmFkZE1ldGFGbGFncygpO1xuICAgIHJldHVybiBbLi4udGhpcy5maW5hbEZsYWdzXS5qb2luKCcnKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkTWV0YUZsYWdzKCk6IHZvaWQge1xuICAgIGNvbnN0IE1FVEFfRkxBR1MgPSBbJ2cnLCAnZCddO1xuICAgIGZvciAoY29uc3QgZmxhZyBvZiBNRVRBX0ZMQUdTKSB7XG4gICAgICBpZiAodGhpcy5yZWdFeHBzLnNvbWUoKHJlZ0V4cCkgPT4gaGFzRmxhZyhyZWdFeHAsIGZsYWcpKSkge1xuICAgICAgICB0aGlzLmZpbmFsRmxhZ3MuYWRkKGZsYWcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWRkU2VtYW50aWNGbGFncygpOiB2b2lkIHtcbiAgICBjb25zdCBTRU1BTlRJQ19GTEFHUyA9IFsnaScsICdtJywgJ3MnLCAneSddO1xuICAgIGZvciAoY29uc3QgZmxhZyBvZiBTRU1BTlRJQ19GTEFHUykge1xuICAgICAgaWYgKHRoaXMuc2hvdWxkUGlja0ZsYWcoZmxhZykpIHtcbiAgICAgICAgdGhpcy5maW5hbEZsYWdzLmFkZChmbGFnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFkZFVuaWNvZGVGbGFncygpOiB2b2lkIHtcbiAgICBjb25zdCBjb3VudFUgPSB0aGlzLnJlZ0V4cHMuZmlsdGVyKChyZWdFeHApID0+IGhhc0ZsYWcocmVnRXhwLCAndScpKS5sZW5ndGg7XG4gICAgY29uc3QgY291bnRWID0gdGhpcy5yZWdFeHBzLmZpbHRlcigocmVnRXhwKSA9PiBoYXNGbGFnKHJlZ0V4cCwgJ3YnKSkubGVuZ3RoO1xuXG4gICAgbGV0IHNob3VsZFVzZVVGbGFnOiBib29sZWFuO1xuICAgIGxldCBzaG91bGRVc2VWRmxhZzogYm9vbGVhbjtcblxuICAgIC8qIHY4IGlnbm9yZSBzdGFydCAtLSB2OCBjb3VudHMgdGhlIGltcGxpY2l0IGRlZmF1bHQgYnJhbmNoIGFzIHVuY292ZXJlZCBldmVuIHdoZW4gYWxsIGVudW0gY2FzZXMgYXJlIGhhbmRsZWQuICovXG4gICAgc3dpdGNoICh0aGlzLnN0cmF0ZWd5KSB7XG4gICAgICAvKiB2OCBpZ25vcmUgc3RvcCAqL1xuICAgICAgY2FzZSBSZWdFeHBNZXJnZUZsYWdzQ29uZmxpY3RTdHJhdGVneS5JbnRlcnNlY3Q6XG4gICAgICAgIHNob3VsZFVzZVVGbGFnID0gY291bnRVID09PSB0aGlzLnJlZ0V4cHMubGVuZ3RoO1xuICAgICAgICBzaG91bGRVc2VWRmxhZyA9IGNvdW50ViA9PT0gdGhpcy5yZWdFeHBzLmxlbmd0aDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFJlZ0V4cE1lcmdlRmxhZ3NDb25mbGljdFN0cmF0ZWd5LlRocm93OiB7XG4gICAgICAgIGNvbnN0IGFsbFUgPSBjb3VudFUgPT09IHRoaXMucmVnRXhwcy5sZW5ndGg7XG4gICAgICAgIGNvbnN0IG5vbmVVID0gY291bnRVID09PSAwO1xuICAgICAgICBjb25zdCBhbGxWID0gY291bnRWID09PSB0aGlzLnJlZ0V4cHMubGVuZ3RoO1xuICAgICAgICBjb25zdCBub25lViA9IGNvdW50ViA9PT0gMDtcblxuICAgICAgICBpZiAoIShhbGxVIHx8IG5vbmVVKSB8fCAhKGFsbFYgfHwgbm9uZVYpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb25mbGljdGluZyBcXCd1XFwnL1xcJ3ZcXCcgZmxhZ3MgYWNyb3NzIHBhdHRlcm5zLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgc2hvdWxkVXNlVUZsYWcgPSBhbGxVO1xuICAgICAgICBzaG91bGRVc2VWRmxhZyA9IGFsbFY7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBSZWdFeHBNZXJnZUZsYWdzQ29uZmxpY3RTdHJhdGVneS5VbmlvbjpcbiAgICAgICAgc2hvdWxkVXNlVUZsYWcgPSBjb3VudFUgPiAwO1xuICAgICAgICBzaG91bGRVc2VWRmxhZyA9IGNvdW50ViA+IDA7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgLyogdjggaWdub3JlIHN0YXJ0IC0tIEV4aGF1c3RpdmUgc3dpdGNoIGd1YXJkLiAqL1xuICAgICAgICBhc3NlcnROZXZlcih0aGlzLnN0cmF0ZWd5KTtcbiAgICAgICAgLyogdjggaWdub3JlIHN0b3AgKi9cbiAgICB9XG5cbiAgICBpZiAoc2hvdWxkVXNlVUZsYWcgJiYgc2hvdWxkVXNlVkZsYWcpIHtcbiAgICAgIGFzc2VydCh0aGlzLnN0cmF0ZWd5ICE9PSBSZWdFeHBNZXJnZUZsYWdzQ29uZmxpY3RTdHJhdGVneS5UaHJvdywgJ0Nhbm5vdCBjb21iaW5lIGJvdGggXFwndVxcJy9cXCd2XFwnIGZsYWdzIGluIG9uZSBSZWdFeHAuJyk7XG4gICAgICBzaG91bGRVc2VVRmxhZyA9IGZhbHNlO1xuICAgIH1cblxuICAgIGlmIChzaG91bGRVc2VVRmxhZykge1xuICAgICAgdGhpcy5maW5hbEZsYWdzLmFkZCgndScpO1xuICAgIH1cbiAgICBpZiAoc2hvdWxkVXNlVkZsYWcpIHtcbiAgICAgIHRoaXMuZmluYWxGbGFncy5hZGQoJ3YnKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNob3VsZFBpY2tGbGFnKGZsYWc6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNvdW50ID0gdGhpcy5yZWdFeHBzLmZpbHRlcigocmVnRXhwKSA9PiBoYXNGbGFnKHJlZ0V4cCwgZmxhZykpLmxlbmd0aDtcbiAgICAvKiB2OCBpZ25vcmUgc3RhcnQgLS0gdjggY291bnRzIHRoZSBpbXBsaWNpdCBkZWZhdWx0IGJyYW5jaCBhcyB1bmNvdmVyZWQgZXZlbiB3aGVuIGFsbCBlbnVtIGNhc2VzIGFyZSBoYW5kbGVkLiAqL1xuICAgIHN3aXRjaCAodGhpcy5zdHJhdGVneSkge1xuICAgICAgLyogdjggaWdub3JlIHN0b3AgKi9cbiAgICAgIGNhc2UgUmVnRXhwTWVyZ2VGbGFnc0NvbmZsaWN0U3RyYXRlZ3kuSW50ZXJzZWN0OlxuICAgICAgICByZXR1cm4gY291bnQgPT09IHRoaXMucmVnRXhwcy5sZW5ndGg7XG4gICAgICBjYXNlIFJlZ0V4cE1lcmdlRmxhZ3NDb25mbGljdFN0cmF0ZWd5LlRocm93OlxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgUmVnRXhwTWVyZ2VGbGFnc0NvbmZsaWN0U3RyYXRlZ3kuVW5pb246XG4gICAgICAgIHJldHVybiBjb3VudCA+IDA7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICAvKiB2OCBpZ25vcmUgc3RhcnQgLS0gRXhoYXVzdGl2ZSBzd2l0Y2ggZ3VhcmQuICovXG4gICAgICAgIGFzc2VydE5ldmVyKHRoaXMuc3RyYXRlZ3kpO1xuICAgICAgICAvKiB2OCBpZ25vcmUgc3RvcCAqL1xuICAgIH1cblxuICAgIGNvbnN0IGFsbFNhbWUgPSBjb3VudCA9PT0gMCB8fCBjb3VudCA9PT0gdGhpcy5yZWdFeHBzLmxlbmd0aDtcbiAgICBpZiAoIWFsbFNhbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ29uZmxpY3RpbmcgZmxhZyAnJHtmbGFnfScgYWNyb3NzIHBhdHRlcm5zLmApO1xuICAgIH1cbiAgICByZXR1cm4gY291bnQgPT09IHRoaXMucmVnRXhwcy5sZW5ndGg7XG4gIH1cbn1cblxuLyoqXG4gKiBDb21iaW5lIG11bHRpcGxlIHJlZ2V4ZXMgaW50byBvbmUgYWx0ZXJuYXRpb24sIGhhbmRsaW5nIGZsYWdzLlxuICpcbiAqIEBwYXJhbSByZWdFeHBzIC0gVGhlIHJlZ2V4ZXMgdG8gY29tYmluZS5cbiAqIEBwYXJhbSBzdHJhdGVneSAtIFRoZSBzdHJhdGVneSB0byB1c2Ugd2hlbiBtZXJnaW5nIGZsYWdzIChkZWZhdWx0OiBgUmVnRXhwTWVyZ2VGbGFnc0NvbmZsaWN0U3RyYXRlZ3kuVGhyb3dgKS5cbiAqIEByZXR1cm5zIFRoZSBjb21iaW5lZCByZWdleC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG9uZU9mKFxuICByZWdFeHBzOiBSZWdFeHBbXSxcbiAgc3RyYXRlZ3k6IFJlZ0V4cE1lcmdlRmxhZ3NDb25mbGljdFN0cmF0ZWd5ID0gUmVnRXhwTWVyZ2VGbGFnc0NvbmZsaWN0U3RyYXRlZ3kuVGhyb3dcbik6IFJlZ0V4cCB7XG4gIGlmIChyZWdFeHBzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBBTFdBWVNfTUFUQ0hfUkVHX0VYUDtcbiAgfVxuXG4gIGlmIChyZWdFeHBzLmxlbmd0aCA9PT0gMSAmJiByZWdFeHBzWzBdICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gcmVnRXhwc1swXTtcbiAgfVxuXG4gIGNvbnN0IHNvdXJjZSA9IHJlZ0V4cHMubWFwKChyZWdFeHApID0+IGAoPzoke3JlZ0V4cC5zb3VyY2V9KWApLmpvaW4oJ3wnKTtcbiAgY29uc3QgZmxhZ3MgPSBuZXcgUmVnRXhwRmxhZ01lcmdlcihyZWdFeHBzLCBzdHJhdGVneSkuY29tcHV0ZUZsYWdzKCk7XG4gIHJldHVybiBuZXcgUmVnRXhwKHNvdXJjZSwgZmxhZ3MpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFNQTtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFLQSxJQUFLLG1DQUFMLGtCQUFLQSxzQ0FBTDtBQUlMLEVBQUFBLGtDQUFBLGVBQVk7QUFJWixFQUFBQSxrQ0FBQSxXQUFRO0FBSVIsRUFBQUEsa0NBQUEsV0FBUTtBQVpFLFNBQUFBO0FBQUEsR0FBQTtBQXFCTCxTQUFTLGFBQWEsS0FBcUI7QUFFaEQsU0FBTyxJQUFJLFdBQVcsdUJBQXVCLE1BQU07QUFDckQ7QUFvQk8sU0FBUyx1QkFBdUIsT0FBeUIsV0FBMkI7QUFDekYsU0FBTyxrQkFBa0Isc0JBQXNCLE9BQU8sU0FBUyxDQUFDO0FBQ2xFO0FBZ0JPLFNBQVMsc0JBQXNCLE9BQXlCLFdBQWtDO0FBQy9GLFNBQU8sTUFBTSxTQUFTLFNBQVMsS0FBSztBQUN0QztBQVFPLFNBQVMsY0FBYyxLQUFzQjtBQUNsRCxNQUFJO0FBQ0YsUUFBSSxPQUFPLEdBQUc7QUFDZCxXQUFPO0FBQUEsRUFDVCxRQUFRO0FBQ04sV0FBTztBQUFBLEVBQ1Q7QUFDRjtBQUVBLFNBQVMsUUFBUSxRQUFnQixNQUF1QjtBQUN0RCxTQUFPLE9BQU8sTUFBTSxTQUFTLElBQUk7QUFDbkM7QUFLTyxNQUFNLHVCQUF1QjtBQUs3QixNQUFNLHNCQUFzQjtBQVNuQyxNQUFNLGlCQUFpQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBU2QsWUFBNkIsU0FBb0MsVUFBNEM7QUFBaEY7QUFBb0M7QUFBQSxFQUE2QztBQUFBLEVBQWpGO0FBQUEsRUFBb0M7QUFBQSxFQVJ2RCxhQUFhLG9CQUFJLElBQVk7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFldkMsZUFBdUI7QUFDNUIsU0FBSyxpQkFBaUI7QUFDdEIsU0FBSyxnQkFBZ0I7QUFDckIsU0FBSyxhQUFhO0FBQ2xCLFdBQU8sQ0FBQyxHQUFHLEtBQUssVUFBVSxFQUFFLEtBQUssRUFBRTtBQUFBLEVBQ3JDO0FBQUEsRUFFUSxlQUFxQjtBQUMzQixVQUFNLGFBQWEsQ0FBQyxLQUFLLEdBQUc7QUFDNUIsZUFBVyxRQUFRLFlBQVk7QUFDN0IsVUFBSSxLQUFLLFFBQVEsS0FBSyxDQUFDLFdBQVcsUUFBUSxRQUFRLElBQUksQ0FBQyxHQUFHO0FBQ3hELGFBQUssV0FBVyxJQUFJLElBQUk7QUFBQSxNQUMxQjtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQUEsRUFFUSxtQkFBeUI7QUFDL0IsVUFBTSxpQkFBaUIsQ0FBQyxLQUFLLEtBQUssS0FBSyxHQUFHO0FBQzFDLGVBQVcsUUFBUSxnQkFBZ0I7QUFDakMsVUFBSSxLQUFLLGVBQWUsSUFBSSxHQUFHO0FBQzdCLGFBQUssV0FBVyxJQUFJLElBQUk7QUFBQSxNQUMxQjtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQUEsRUFFUSxrQkFBd0I7QUFDOUIsVUFBTSxTQUFTLEtBQUssUUFBUSxPQUFPLENBQUMsV0FBVyxRQUFRLFFBQVEsR0FBRyxDQUFDLEVBQUU7QUFDckUsVUFBTSxTQUFTLEtBQUssUUFBUSxPQUFPLENBQUMsV0FBVyxRQUFRLFFBQVEsR0FBRyxDQUFDLEVBQUU7QUFFckUsUUFBSTtBQUNKLFFBQUk7QUFHSixZQUFRLEtBQUssVUFBVTtBQUFBO0FBQUEsTUFFckIsS0FBSztBQUNILHlCQUFpQixXQUFXLEtBQUssUUFBUTtBQUN6Qyx5QkFBaUIsV0FBVyxLQUFLLFFBQVE7QUFDekM7QUFBQSxNQUNGLEtBQUsscUJBQXdDO0FBQzNDLGNBQU0sT0FBTyxXQUFXLEtBQUssUUFBUTtBQUNyQyxjQUFNLFFBQVEsV0FBVztBQUN6QixjQUFNLE9BQU8sV0FBVyxLQUFLLFFBQVE7QUFDckMsY0FBTSxRQUFRLFdBQVc7QUFFekIsWUFBSSxFQUFFLFFBQVEsVUFBVSxFQUFFLFFBQVEsUUFBUTtBQUN4QyxnQkFBTSxJQUFJLE1BQU0sNENBQWdEO0FBQUEsUUFDbEU7QUFFQSx5QkFBaUI7QUFDakIseUJBQWlCO0FBQ2pCO0FBQUEsTUFDRjtBQUFBLE1BQ0EsS0FBSztBQUNILHlCQUFpQixTQUFTO0FBQzFCLHlCQUFpQixTQUFTO0FBQzFCO0FBQUEsTUFDRjtBQUVFLG9CQUFZLEtBQUssUUFBUTtBQUFBLElBRTdCO0FBRUEsUUFBSSxrQkFBa0IsZ0JBQWdCO0FBQ3BDLGFBQU8sS0FBSyxhQUFhLHFCQUF3QyxrREFBc0Q7QUFDdkgsdUJBQWlCO0FBQUEsSUFDbkI7QUFFQSxRQUFJLGdCQUFnQjtBQUNsQixXQUFLLFdBQVcsSUFBSSxHQUFHO0FBQUEsSUFDekI7QUFDQSxRQUFJLGdCQUFnQjtBQUNsQixXQUFLLFdBQVcsSUFBSSxHQUFHO0FBQUEsSUFDekI7QUFBQSxFQUNGO0FBQUEsRUFFUSxlQUFlLE1BQXVCO0FBQzVDLFVBQU0sUUFBUSxLQUFLLFFBQVEsT0FBTyxDQUFDLFdBQVcsUUFBUSxRQUFRLElBQUksQ0FBQyxFQUFFO0FBRXJFLFlBQVEsS0FBSyxVQUFVO0FBQUE7QUFBQSxNQUVyQixLQUFLO0FBQ0gsZUFBTyxVQUFVLEtBQUssUUFBUTtBQUFBLE1BQ2hDLEtBQUs7QUFDSDtBQUFBLE1BQ0YsS0FBSztBQUNILGVBQU8sUUFBUTtBQUFBLE1BQ2pCO0FBRUUsb0JBQVksS0FBSyxRQUFRO0FBQUEsSUFFN0I7QUFFQSxVQUFNLFVBQVUsVUFBVSxLQUFLLFVBQVUsS0FBSyxRQUFRO0FBQ3RELFFBQUksQ0FBQyxTQUFTO0FBQ1osWUFBTSxJQUFJLE1BQU0scUJBQXFCLElBQUksb0JBQW9CO0FBQUEsSUFDL0Q7QUFDQSxXQUFPLFVBQVUsS0FBSyxRQUFRO0FBQUEsRUFDaEM7QUFDRjtBQVNPLFNBQVMsTUFDZCxTQUNBLFdBQTZDLHFCQUNyQztBQUNSLE1BQUksUUFBUSxXQUFXLEdBQUc7QUFDeEIsV0FBTztBQUFBLEVBQ1Q7QUFFQSxNQUFJLFFBQVEsV0FBVyxLQUFLLFFBQVEsQ0FBQyxNQUFNLFFBQVc7QUFDcEQsV0FBTyxRQUFRLENBQUM7QUFBQSxFQUNsQjtBQUVBLFFBQU0sU0FBUyxRQUFRLElBQUksQ0FBQyxXQUFXLE1BQU0sT0FBTyxNQUFNLEdBQUcsRUFBRSxLQUFLLEdBQUc7QUFDdkUsUUFBTSxRQUFRLElBQUksaUJBQWlCLFNBQVMsUUFBUSxFQUFFLGFBQWE7QUFDbkUsU0FBTyxJQUFJLE9BQU8sUUFBUSxLQUFLO0FBQ2pDOyIsCiAgIm5hbWVzIjogWyJSZWdFeHBNZXJnZUZsYWdzQ29uZmxpY3RTdHJhdGVneSJdCn0K
187
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3JlZy1leHAudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDb250YWlucyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgcmVndWxhciBleHByZXNzaW9ucy5cbiAqL1xuXG5pbXBvcnQge1xuICBhc3NlcnQsXG4gIGFzc2VydE5ldmVyLFxuICBlbnN1cmVOb25OdWxsYWJsZVxufSBmcm9tICcuL3R5cGUtZ3VhcmRzLnRzJztcblxuLyoqXG4gKiBBIHN0cmF0ZWd5IHRvIHVzZSB3aGVuIG1lcmdpbmcgbXVsdGlwbGUgcmVnZXggZmxhZ3MgaW50byBvbmUgYWx0ZXJuYXRpb24uXG4gKi9cbmV4cG9ydCBlbnVtIFJlZ0V4cE1lcmdlRmxhZ3NDb25mbGljdFN0cmF0ZWd5IHtcbiAgLyoqXG4gICAqIEtlZXAgb25seSB0aGUgZmxhZ3MgcHJlc2VudCBpbiBhbGwgcmVnZXhlcy5cbiAgICovXG4gIEludGVyc2VjdCA9ICdJbnRlcnNlY3QnLFxuICAvKipcbiAgICogVGhyb3cgYW4gZXJyb3IgaWYgdGhlIHJlZ2V4ZXMgaGF2ZSBjb25mbGljdGluZyBmbGFncy5cbiAgICovXG4gIFRocm93ID0gJ1Rocm93JyxcbiAgLyoqXG4gICAqIEtlZXAgb25seSB0aGUgZmxhZ3MgcHJlc2VudCBpbiBhbnkgcmVnZXguXG4gICAqL1xuICBVbmlvbiA9ICdVbmlvbidcbn1cblxuLyoqXG4gKiBFc2NhcGVzIHNwZWNpYWwgY2hhcmFjdGVycyBpbiBhIHN0cmluZyB0byBzYWZlbHkgdXNlIGl0IHdpdGhpbiBhIHJlZ3VsYXIgZXhwcmVzc2lvbi5cbiAqXG4gKiBAcGFyYW0gJHN0cmluZyAtIFRoZSBzdHJpbmcgdG8gZXNjYXBlLlxuICogQHJldHVybnMgVGhlIGVzY2FwZWQgc3RyaW5nIHdpdGggc3BlY2lhbCBjaGFyYWN0ZXJzIHByZWZpeGVkIHdpdGggYSBiYWNrc2xhc2guXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlc2NhcGVSZWdFeHAoJHN0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgLy8gTk9URTogV2UgY2FuJ3QgdXNlIGByZXBsYWNlQWxsKClgIGZyb20gYFN0cmluZy50c2AgaGVyZSBiZWNhdXNlIGl0IGludHJvZHVjZXMgYSBjaXJjdWxhciBkZXBlbmRlbmN5LlxuICByZXR1cm4gJHN0cmluZy5yZXBsYWNlQWxsKC9bLiorP14ke30oKXxbXFxdXFxcXF0vZywgU3RyaW5nLnJhd2BcXCQmYCk7XG59XG5cbi8qKlxuICogUmVhZHMgYSBtYW5kYXRvcnkgbmFtZWQgY2FwdHVyZSBncm91cCBmcm9tIGEgcmVnZXggbWF0Y2guXG4gKlxuICogVXNlIHRoaXMgZm9yIGEgbmFtZWQgZ3JvdXAgdGhhdCBpcyBBTFdBWVMgcHJlc2VudCB3aGVuIHRoZSBwYXR0ZXJuIG1hdGNoZXMgXHUyMDE0IG5vdCB3cmFwcGVkIGluIGFuIG9wdGlvbmFsXG4gKiBgKD86XHUyMDI2KT9gIC8gYChcdTIwMjYpP2AuIFJldHVybnMgdGhlIGNhcHR1cmVkIHN0cmluZyAod2hpY2ggbWF5IGJlIGAnJ2AgZm9yIGEgemVyby13aWR0aCBtYXRjaCBzdWNoIGFzIGBcXHcqYCksXG4gKiB0aHJvd2luZyBpZiB0aGUgZ3JvdXAgXHUyMDE0IG9yIHRoZSBtYXRjaCdzIGBncm91cHNgIG9iamVjdCBcdTIwMTQgaXMgYWJzZW50LCBzbyBhIHBhdHRlcm4gY2hhbmdlIHRoYXQgZHJvcHMgdGhlXG4gKiBncm91cCBmYWlscyBsb3VkbHkgaW5zdGVhZCBvZiBzaWxlbnRseSB5aWVsZGluZyBhIHdyb25nIHZhbHVlLlxuICpcbiAqIFByZWZlciB0aGlzIG92ZXIgYG1hdGNoLmdyb3Vwcz8uW25hbWVdID8/ICcnYDogZm9yIGEgbWFuZGF0b3J5IGdyb3VwIHRoYXQgZmFsbGJhY2sgaXMgYSBuZXZlci10YWtlbiAoZGVhZClcbiAqIGJyYW5jaCB0aGF0IGZhaWxzIGEgMTAwJS1icmFuY2ggY292ZXJhZ2UgZ2F0ZSwgd2hlcmVhcyB0aGUgdGhyb3cgaGVyZSBsaXZlcyBpbnNpZGUgYGVuc3VyZU5vbk51bGxhYmxlYFxuICogKGFscmVhZHkgY292ZXJlZCksIGxlYXZpbmcgbm8gaW5saW5lIGJyYW5jaCBhdCB0aGUgY2FsbCBzaXRlLiBGb3IgYSBncm91cCB0aGF0IG1heSBsZWdpdGltYXRlbHkgYmUgYWJzZW50LFxuICogdXNlIHtAbGluayBnZXRPcHRpb25hbE5hbWVkR3JvdXB9IGFuZCBkZWZhdWx0IGl0cyBgbnVsbGAgd2l0aCBgPz8gXHUyMDI2YC5cbiAqXG4gKiBAcGFyYW0gbWF0Y2ggLSBUaGUgbWF0Y2ggcmV0dXJuZWQgYnkgYFJlZ0V4cC5leGVjYCwgYFN0cmluZy5tYXRjaEFsbGAsIG9yIGBTdHJpbmcubWF0Y2hgLlxuICogQHBhcmFtIGdyb3VwTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBjYXB0dXJlIGdyb3VwIHRvIHJlYWQuXG4gKiBAcmV0dXJucyBUaGUgY2FwdHVyZWQgc3RyaW5nLlxuICogQHRocm93cyBXaGVuIHRoZSBuYW1lZCBncm91cCBpcyBhYnNlbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRNYW5kYXRvcnlOYW1lZEdyb3VwKG1hdGNoOiBSZWdFeHBNYXRjaEFycmF5LCBncm91cE5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBlbnN1cmVOb25OdWxsYWJsZShnZXRPcHRpb25hbE5hbWVkR3JvdXAobWF0Y2gsIGdyb3VwTmFtZSkpO1xufVxuXG4vKipcbiAqIFJlYWRzIGFuIG9wdGlvbmFsIG5hbWVkIGNhcHR1cmUgZ3JvdXAgZnJvbSBhIHJlZ2V4IG1hdGNoLCBkaXN0aW5ndWlzaGluZyBhbiBhYnNlbnQgZ3JvdXAgZnJvbSBhIHByZXNlbnRcbiAqIGVtcHR5IG9uZS5cbiAqXG4gKiBSZXR1cm5zIHRoZSBjYXB0dXJlZCBzdHJpbmcgd2hlbiB0aGUgZ3JvdXAgcGFydGljaXBhdGVkIGluIHRoZSBtYXRjaCBcdTIwMTQgd2hpY2ggbWF5IGJlIGAnJ2AgZm9yIGEgemVyby13aWR0aFxuICogbWF0Y2ggc3VjaCBhcyBgXFx3KmAgXHUyMDE0IG9yIGBudWxsYCB3aGVuIHRoZSBncm91cCwgb3IgdGhlIG1hdGNoJ3MgYGdyb3Vwc2Agb2JqZWN0LCBpcyBhYnNlbnQgKGUuZy4gYW4gb3B0aW9uYWxcbiAqIGAoPzpcdTIwMjYpP2AgZ3JvdXAgdGhhdCBkaWQgbm90IG1hdGNoKS4gQmVjYXVzZSBgbnVsbGAgaXMgcmV0dXJuZWQgb25seSBmb3IgYSBnZW51aW5lbHktYWJzZW50IGdyb3VwLCBhXG4gKiBjYWxsZXIncyBgPz8gPGRlZmF1bHQ+YCBpcyBhIGxpdmUgYnJhbmNoIHJhdGhlciB0aGFuIHRoZSBkZWFkIG9uZSB0aGF0IGBtYXRjaC5ncm91cHM/LltuYW1lXSA/PyAnJ2AgbGVhdmVzXG4gKiBmb3IgYSBtYW5kYXRvcnkgZ3JvdXAuIEZvciBhIGdyb3VwIHRoYXQgbXVzdCBhbHdheXMgYmUgcHJlc2VudCwgdXNlIHtAbGluayBnZXRNYW5kYXRvcnlOYW1lZEdyb3VwfS5cbiAqXG4gKiBAcGFyYW0gbWF0Y2ggLSBUaGUgbWF0Y2ggcmV0dXJuZWQgYnkgYFJlZ0V4cC5leGVjYCwgYFN0cmluZy5tYXRjaEFsbGAsIG9yIGBTdHJpbmcubWF0Y2hgLlxuICogQHBhcmFtIGdyb3VwTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBjYXB0dXJlIGdyb3VwIHRvIHJlYWQuXG4gKiBAcmV0dXJucyBUaGUgY2FwdHVyZWQgc3RyaW5nLCBvciBgbnVsbGAgd2hlbiB0aGUgZ3JvdXAgaXMgYWJzZW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0T3B0aW9uYWxOYW1lZEdyb3VwKG1hdGNoOiBSZWdFeHBNYXRjaEFycmF5LCBncm91cE5hbWU6IHN0cmluZyk6IG51bGwgfCBzdHJpbmcge1xuICByZXR1cm4gbWF0Y2guZ3JvdXBzPy5bZ3JvdXBOYW1lXSA/PyBudWxsO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIHN0cmluZyBpcyBhIHZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbi5cbiAqXG4gKiBAcGFyYW0gJHN0cmluZyAtIFRoZSBzdHJpbmcgdG8gY2hlY2suXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHN0cmluZyBpcyBhIHZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbiwgYGZhbHNlYCBvdGhlcndpc2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkUmVnRXhwKCRzdHJpbmc6IHN0cmluZyk6IGJvb2xlYW4ge1xuICB0cnkge1xuICAgIG5ldyBSZWdFeHAoJHN0cmluZyk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBoYXNGbGFnKHJlZ0V4cDogUmVnRXhwLCBmbGFnOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIHJlZ0V4cC5mbGFncy5pbmNsdWRlcyhmbGFnKTtcbn1cblxuLyoqXG4gKiBBIHJlZ3VsYXIgZXhwcmVzc2lvbiB0aGF0IGFsd2F5cyBtYXRjaGVzLlxuICovXG5leHBvcnQgY29uc3QgQUxXQVlTX01BVENIX1JFR19FWFAgPSAvKD86KS87XG5cbi8qKlxuICogQSByZWd1bGFyIGV4cHJlc3Npb24gdGhhdCBuZXZlciBtYXRjaGVzLlxuICovXG5leHBvcnQgY29uc3QgTkVWRVJfTUFUQ0hfUkVHX0VYUCA9IC8uXi87XG5cbi8qKlxuICogTWVyZ2VzIHRoZSBmbGFncyBvZiBtdWx0aXBsZSByZWdleGVzIGludG8gYSBzaW5nbGUgZmxhZyBzdHJpbmcsIGFwcGx5aW5nIGEgY29uZmxpY3Qgc3RyYXRlZ3kuXG4gKlxuICogVGhlIGNvb3BlcmF0aW5nIHBlci1mbGFnIGhlbHBlcnMgc2hhcmUgdGhlIHNhbWUgcmVnZXhlcywgc3RyYXRlZ3ksIGFuZCBhY2N1bXVsYXRlZCBmbGFnIHNldCwgc29cbiAqIHRoZXkgYXJlIGdyb3VwZWQgaGVyZSBhcyBtZXRob2RzIG92ZXIgdGhvc2UgZmllbGRzIHJhdGhlciB0aGFuIHRocmVhZGluZyB0aGUgc3RhdGUgdGhyb3VnaFxuICogcG9zaXRpb25hbCBhcmd1bWVudHMuXG4gKi9cbmNsYXNzIFJlZ0V4cEZsYWdNZXJnZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IGZpbmFsRmxhZ3MgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBtZXJnZXIuXG4gICAqXG4gICAqIEBwYXJhbSByZWdFeHBzIC0gVGhlIHJlZ2V4ZXMgd2hvc2UgZmxhZ3MgYXJlIG1lcmdlZC5cbiAgICogQHBhcmFtIHN0cmF0ZWd5IC0gVGhlIHN0cmF0ZWd5IHRvIHVzZSB3aGVuIGZsYWdzIGNvbmZsaWN0LlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcmVnRXhwczogUmVnRXhwW10sIHByaXZhdGUgcmVhZG9ubHkgc3RyYXRlZ3k6IFJlZ0V4cE1lcmdlRmxhZ3NDb25mbGljdFN0cmF0ZWd5KSB7fVxuXG4gIC8qKlxuICAgKiBDb21wdXRlcyB0aGUgbWVyZ2VkIGZsYWcgc3RyaW5nIGZvciB0aGUgY29uZmlndXJlZCByZWdleGVzLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgbWVyZ2VkIGZsYWdzIGpvaW5lZCBpbnRvIGEgc2luZ2xlIHN0cmluZy5cbiAgICovXG4gIHB1YmxpYyBjb21wdXRlRmxhZ3MoKTogc3RyaW5nIHtcbiAgICB0aGlzLmFkZFNlbWFudGljRmxhZ3MoKTtcbiAgICB0aGlzLmFkZFVuaWNvZGVGbGFncygpO1xuICAgIHRoaXMuYWRkTWV0YUZsYWdzKCk7XG4gICAgcmV0dXJuIFsuLi50aGlzLmZpbmFsRmxhZ3NdLmpvaW4oJycpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRNZXRhRmxhZ3MoKTogdm9pZCB7XG4gICAgY29uc3QgTUVUQV9GTEFHUyA9IFsnZycsICdkJ107XG4gICAgZm9yIChjb25zdCBmbGFnIG9mIE1FVEFfRkxBR1MpIHtcbiAgICAgIGlmICh0aGlzLnJlZ0V4cHMuc29tZSgocmVnRXhwKSA9PiBoYXNGbGFnKHJlZ0V4cCwgZmxhZykpKSB7XG4gICAgICAgIHRoaXMuZmluYWxGbGFncy5hZGQoZmxhZyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhZGRTZW1hbnRpY0ZsYWdzKCk6IHZvaWQge1xuICAgIGNvbnN0IFNFTUFOVElDX0ZMQUdTID0gWydpJywgJ20nLCAncycsICd5J107XG4gICAgZm9yIChjb25zdCBmbGFnIG9mIFNFTUFOVElDX0ZMQUdTKSB7XG4gICAgICBpZiAodGhpcy5zaG91bGRQaWNrRmxhZyhmbGFnKSkge1xuICAgICAgICB0aGlzLmZpbmFsRmxhZ3MuYWRkKGZsYWcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWRkVW5pY29kZUZsYWdzKCk6IHZvaWQge1xuICAgIGNvbnN0IGNvdW50VSA9IHRoaXMucmVnRXhwcy5maWx0ZXIoKHJlZ0V4cCkgPT4gaGFzRmxhZyhyZWdFeHAsICd1JykpLmxlbmd0aDtcbiAgICBjb25zdCBjb3VudFYgPSB0aGlzLnJlZ0V4cHMuZmlsdGVyKChyZWdFeHApID0+IGhhc0ZsYWcocmVnRXhwLCAndicpKS5sZW5ndGg7XG5cbiAgICBsZXQgc2hvdWxkVXNlVUZsYWc6IGJvb2xlYW47XG4gICAgbGV0IHNob3VsZFVzZVZGbGFnOiBib29sZWFuO1xuXG4gICAgLyogdjggaWdub3JlIHN0YXJ0IC0tIHY4IGNvdW50cyB0aGUgaW1wbGljaXQgZGVmYXVsdCBicmFuY2ggYXMgdW5jb3ZlcmVkIGV2ZW4gd2hlbiBhbGwgZW51bSBjYXNlcyBhcmUgaGFuZGxlZC4gKi9cbiAgICBzd2l0Y2ggKHRoaXMuc3RyYXRlZ3kpIHtcbiAgICAgIC8qIHY4IGlnbm9yZSBzdG9wICovXG4gICAgICBjYXNlIFJlZ0V4cE1lcmdlRmxhZ3NDb25mbGljdFN0cmF0ZWd5LkludGVyc2VjdDoge1xuICAgICAgICBzaG91bGRVc2VVRmxhZyA9IGNvdW50VSA9PT0gdGhpcy5yZWdFeHBzLmxlbmd0aDtcbiAgICAgICAgc2hvdWxkVXNlVkZsYWcgPSBjb3VudFYgPT09IHRoaXMucmVnRXhwcy5sZW5ndGg7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBSZWdFeHBNZXJnZUZsYWdzQ29uZmxpY3RTdHJhdGVneS5UaHJvdzoge1xuICAgICAgICBjb25zdCBoYXZlQWxsVUZsYWcgPSBjb3VudFUgPT09IHRoaXMucmVnRXhwcy5sZW5ndGg7XG4gICAgICAgIGNvbnN0IGhhdmVOb1VGbGFnID0gY291bnRVID09PSAwO1xuICAgICAgICBjb25zdCBoYXZlQWxsVkZsYWcgPSBjb3VudFYgPT09IHRoaXMucmVnRXhwcy5sZW5ndGg7XG4gICAgICAgIGNvbnN0IGhhdmVOb1ZGbGFnID0gY291bnRWID09PSAwO1xuXG4gICAgICAgIGlmICghKGhhdmVBbGxVRmxhZyB8fCBoYXZlTm9VRmxhZykgfHwgIShoYXZlQWxsVkZsYWcgfHwgaGF2ZU5vVkZsYWcpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb25mbGljdGluZyBcXCd1XFwnL1xcJ3ZcXCcgZmxhZ3MgYWNyb3NzIHBhdHRlcm5zLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgc2hvdWxkVXNlVUZsYWcgPSBoYXZlQWxsVUZsYWc7XG4gICAgICAgIHNob3VsZFVzZVZGbGFnID0gaGF2ZUFsbFZGbGFnO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgUmVnRXhwTWVyZ2VGbGFnc0NvbmZsaWN0U3RyYXRlZ3kuVW5pb246IHtcbiAgICAgICAgc2hvdWxkVXNlVUZsYWcgPSBjb3VudFUgPiAwO1xuICAgICAgICBzaG91bGRVc2VWRmxhZyA9IGNvdW50ViA+IDA7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICAvKiB2OCBpZ25vcmUgc3RhcnQgLS0gRXhoYXVzdGl2ZSBzd2l0Y2ggZ3VhcmQuICovXG4gICAgICAgIGFzc2VydE5ldmVyKHRoaXMuc3RyYXRlZ3kpO1xuICAgICAgfVxuICAgICAgICAvKiB2OCBpZ25vcmUgc3RvcCAqL1xuICAgIH1cblxuICAgIGlmIChzaG91bGRVc2VVRmxhZyAmJiBzaG91bGRVc2VWRmxhZykge1xuICAgICAgYXNzZXJ0KHRoaXMuc3RyYXRlZ3kgIT09IFJlZ0V4cE1lcmdlRmxhZ3NDb25mbGljdFN0cmF0ZWd5LlRocm93LCAnQ2Fubm90IGNvbWJpbmUgYm90aCBcXCd1XFwnL1xcJ3ZcXCcgZmxhZ3MgaW4gb25lIFJlZ0V4cC4nKTtcbiAgICAgIHNob3VsZFVzZVVGbGFnID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKHNob3VsZFVzZVVGbGFnKSB7XG4gICAgICB0aGlzLmZpbmFsRmxhZ3MuYWRkKCd1Jyk7XG4gICAgfVxuICAgIGlmIChzaG91bGRVc2VWRmxhZykge1xuICAgICAgdGhpcy5maW5hbEZsYWdzLmFkZCgndicpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2hvdWxkUGlja0ZsYWcoZmxhZzogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgY291bnQgPSB0aGlzLnJlZ0V4cHMuZmlsdGVyKChyZWdFeHApID0+IGhhc0ZsYWcocmVnRXhwLCBmbGFnKSkubGVuZ3RoO1xuICAgIC8qIHY4IGlnbm9yZSBzdGFydCAtLSB2OCBjb3VudHMgdGhlIGltcGxpY2l0IGRlZmF1bHQgYnJhbmNoIGFzIHVuY292ZXJlZCBldmVuIHdoZW4gYWxsIGVudW0gY2FzZXMgYXJlIGhhbmRsZWQuICovXG4gICAgc3dpdGNoICh0aGlzLnN0cmF0ZWd5KSB7XG4gICAgICAvKiB2OCBpZ25vcmUgc3RvcCAqL1xuICAgICAgY2FzZSBSZWdFeHBNZXJnZUZsYWdzQ29uZmxpY3RTdHJhdGVneS5JbnRlcnNlY3Q6IHtcbiAgICAgICAgcmV0dXJuIGNvdW50ID09PSB0aGlzLnJlZ0V4cHMubGVuZ3RoO1xuICAgICAgfVxuICAgICAgY2FzZSBSZWdFeHBNZXJnZUZsYWdzQ29uZmxpY3RTdHJhdGVneS5UaHJvdzoge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgUmVnRXhwTWVyZ2VGbGFnc0NvbmZsaWN0U3RyYXRlZ3kuVW5pb246IHtcbiAgICAgICAgcmV0dXJuIGNvdW50ID4gMDtcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgLyogdjggaWdub3JlIHN0YXJ0IC0tIEV4aGF1c3RpdmUgc3dpdGNoIGd1YXJkLiAqL1xuICAgICAgICBhc3NlcnROZXZlcih0aGlzLnN0cmF0ZWd5KTtcbiAgICAgIH1cbiAgICAgICAgLyogdjggaWdub3JlIHN0b3AgKi9cbiAgICB9XG5cbiAgICBjb25zdCBoYXZlQWxsU2FtZUZsYWcgPSBjb3VudCA9PT0gMCB8fCBjb3VudCA9PT0gdGhpcy5yZWdFeHBzLmxlbmd0aDtcbiAgICBpZiAoIWhhdmVBbGxTYW1lRmxhZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb25mbGljdGluZyBmbGFnICcke2ZsYWd9JyBhY3Jvc3MgcGF0dGVybnMuYCk7XG4gICAgfVxuICAgIHJldHVybiBjb3VudCA9PT0gdGhpcy5yZWdFeHBzLmxlbmd0aDtcbiAgfVxufVxuXG4vKipcbiAqIENvbWJpbmUgbXVsdGlwbGUgcmVnZXhlcyBpbnRvIG9uZSBhbHRlcm5hdGlvbiwgaGFuZGxpbmcgZmxhZ3MuXG4gKlxuICogQHBhcmFtIHJlZ0V4cHMgLSBUaGUgcmVnZXhlcyB0byBjb21iaW5lLlxuICogQHBhcmFtIHN0cmF0ZWd5IC0gVGhlIHN0cmF0ZWd5IHRvIHVzZSB3aGVuIG1lcmdpbmcgZmxhZ3MgKGRlZmF1bHQ6IGBSZWdFeHBNZXJnZUZsYWdzQ29uZmxpY3RTdHJhdGVneS5UaHJvd2ApLlxuICogQHJldHVybnMgVGhlIGNvbWJpbmVkIHJlZ2V4LlxuICovXG5leHBvcnQgZnVuY3Rpb24gb25lT2YoXG4gIHJlZ0V4cHM6IFJlZ0V4cFtdLFxuICBzdHJhdGVneTogUmVnRXhwTWVyZ2VGbGFnc0NvbmZsaWN0U3RyYXRlZ3kgPSBSZWdFeHBNZXJnZUZsYWdzQ29uZmxpY3RTdHJhdGVneS5UaHJvd1xuKTogUmVnRXhwIHtcbiAgaWYgKHJlZ0V4cHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIEFMV0FZU19NQVRDSF9SRUdfRVhQO1xuICB9XG5cbiAgaWYgKHJlZ0V4cHMubGVuZ3RoID09PSAxICYmIHJlZ0V4cHNbMF0gIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiByZWdFeHBzWzBdO1xuICB9XG5cbiAgY29uc3Qgc291cmNlID0gcmVnRXhwcy5tYXAoKHJlZ0V4cCkgPT4gYCg/OiR7cmVnRXhwLnNvdXJjZX0pYCkuam9pbignfCcpO1xuICBjb25zdCBmbGFncyA9IG5ldyBSZWdFeHBGbGFnTWVyZ2VyKHJlZ0V4cHMsIHN0cmF0ZWd5KS5jb21wdXRlRmxhZ3MoKTtcbiAgcmV0dXJuIG5ldyBSZWdFeHAoc291cmNlLCBmbGFncyk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU1BO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUtBLElBQUssbUNBQUwsa0JBQUtBLHNDQUFMO0FBSUwsRUFBQUEsa0NBQUEsZUFBWTtBQUlaLEVBQUFBLGtDQUFBLFdBQVE7QUFJUixFQUFBQSxrQ0FBQSxXQUFRO0FBWkUsU0FBQUE7QUFBQSxHQUFBO0FBcUJMLFNBQVMsYUFBYSxTQUF5QjtBQUVwRCxTQUFPLFFBQVEsV0FBVyx1QkFBdUIsT0FBTyxRQUFRO0FBQ2xFO0FBb0JPLFNBQVMsdUJBQXVCLE9BQXlCLFdBQTJCO0FBQ3pGLFNBQU8sa0JBQWtCLHNCQUFzQixPQUFPLFNBQVMsQ0FBQztBQUNsRTtBQWdCTyxTQUFTLHNCQUFzQixPQUF5QixXQUFrQztBQUMvRixTQUFPLE1BQU0sU0FBUyxTQUFTLEtBQUs7QUFDdEM7QUFRTyxTQUFTLGNBQWMsU0FBMEI7QUFDdEQsTUFBSTtBQUNGLFFBQUksT0FBTyxPQUFPO0FBQ2xCLFdBQU87QUFBQSxFQUNULFFBQVE7QUFDTixXQUFPO0FBQUEsRUFDVDtBQUNGO0FBRUEsU0FBUyxRQUFRLFFBQWdCLE1BQXVCO0FBQ3RELFNBQU8sT0FBTyxNQUFNLFNBQVMsSUFBSTtBQUNuQztBQUtPLE1BQU0sdUJBQXVCO0FBSzdCLE1BQU0sc0JBQXNCO0FBU25DLE1BQU0saUJBQWlCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFTZCxZQUE2QixTQUFvQyxVQUE0QztBQUFoRjtBQUFvQztBQUFBLEVBQTZDO0FBQUEsRUFBakY7QUFBQSxFQUFvQztBQUFBLEVBUnZELGFBQWEsb0JBQUksSUFBWTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQWV2QyxlQUF1QjtBQUM1QixTQUFLLGlCQUFpQjtBQUN0QixTQUFLLGdCQUFnQjtBQUNyQixTQUFLLGFBQWE7QUFDbEIsV0FBTyxDQUFDLEdBQUcsS0FBSyxVQUFVLEVBQUUsS0FBSyxFQUFFO0FBQUEsRUFDckM7QUFBQSxFQUVRLGVBQXFCO0FBQzNCLFVBQU0sYUFBYSxDQUFDLEtBQUssR0FBRztBQUM1QixlQUFXLFFBQVEsWUFBWTtBQUM3QixVQUFJLEtBQUssUUFBUSxLQUFLLENBQUMsV0FBVyxRQUFRLFFBQVEsSUFBSSxDQUFDLEdBQUc7QUFDeEQsYUFBSyxXQUFXLElBQUksSUFBSTtBQUFBLE1BQzFCO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFBQSxFQUVRLG1CQUF5QjtBQUMvQixVQUFNLGlCQUFpQixDQUFDLEtBQUssS0FBSyxLQUFLLEdBQUc7QUFDMUMsZUFBVyxRQUFRLGdCQUFnQjtBQUNqQyxVQUFJLEtBQUssZUFBZSxJQUFJLEdBQUc7QUFDN0IsYUFBSyxXQUFXLElBQUksSUFBSTtBQUFBLE1BQzFCO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFBQSxFQUVRLGtCQUF3QjtBQUM5QixVQUFNLFNBQVMsS0FBSyxRQUFRLE9BQU8sQ0FBQyxXQUFXLFFBQVEsUUFBUSxHQUFHLENBQUMsRUFBRTtBQUNyRSxVQUFNLFNBQVMsS0FBSyxRQUFRLE9BQU8sQ0FBQyxXQUFXLFFBQVEsUUFBUSxHQUFHLENBQUMsRUFBRTtBQUVyRSxRQUFJO0FBQ0osUUFBSTtBQUdKLFlBQVEsS0FBSyxVQUFVO0FBQUE7QUFBQSxNQUVyQixLQUFLLDZCQUE0QztBQUMvQyx5QkFBaUIsV0FBVyxLQUFLLFFBQVE7QUFDekMseUJBQWlCLFdBQVcsS0FBSyxRQUFRO0FBQ3pDO0FBQUEsTUFDRjtBQUFBLE1BQ0EsS0FBSyxxQkFBd0M7QUFDM0MsY0FBTSxlQUFlLFdBQVcsS0FBSyxRQUFRO0FBQzdDLGNBQU0sY0FBYyxXQUFXO0FBQy9CLGNBQU0sZUFBZSxXQUFXLEtBQUssUUFBUTtBQUM3QyxjQUFNLGNBQWMsV0FBVztBQUUvQixZQUFJLEVBQUUsZ0JBQWdCLGdCQUFnQixFQUFFLGdCQUFnQixjQUFjO0FBQ3BFLGdCQUFNLElBQUksTUFBTSw0Q0FBZ0Q7QUFBQSxRQUNsRTtBQUVBLHlCQUFpQjtBQUNqQix5QkFBaUI7QUFDakI7QUFBQSxNQUNGO0FBQUEsTUFDQSxLQUFLLHFCQUF3QztBQUMzQyx5QkFBaUIsU0FBUztBQUMxQix5QkFBaUIsU0FBUztBQUMxQjtBQUFBLE1BQ0Y7QUFBQSxNQUNBLFNBQVM7QUFFUCxvQkFBWSxLQUFLLFFBQVE7QUFBQSxNQUMzQjtBQUFBLElBRUY7QUFFQSxRQUFJLGtCQUFrQixnQkFBZ0I7QUFDcEMsYUFBTyxLQUFLLGFBQWEscUJBQXdDLGtEQUFzRDtBQUN2SCx1QkFBaUI7QUFBQSxJQUNuQjtBQUVBLFFBQUksZ0JBQWdCO0FBQ2xCLFdBQUssV0FBVyxJQUFJLEdBQUc7QUFBQSxJQUN6QjtBQUNBLFFBQUksZ0JBQWdCO0FBQ2xCLFdBQUssV0FBVyxJQUFJLEdBQUc7QUFBQSxJQUN6QjtBQUFBLEVBQ0Y7QUFBQSxFQUVRLGVBQWUsTUFBdUI7QUFDNUMsVUFBTSxRQUFRLEtBQUssUUFBUSxPQUFPLENBQUMsV0FBVyxRQUFRLFFBQVEsSUFBSSxDQUFDLEVBQUU7QUFFckUsWUFBUSxLQUFLLFVBQVU7QUFBQTtBQUFBLE1BRXJCLEtBQUssNkJBQTRDO0FBQy9DLGVBQU8sVUFBVSxLQUFLLFFBQVE7QUFBQSxNQUNoQztBQUFBLE1BQ0EsS0FBSyxxQkFBd0M7QUFDM0M7QUFBQSxNQUNGO0FBQUEsTUFDQSxLQUFLLHFCQUF3QztBQUMzQyxlQUFPLFFBQVE7QUFBQSxNQUNqQjtBQUFBLE1BQ0EsU0FBUztBQUVQLG9CQUFZLEtBQUssUUFBUTtBQUFBLE1BQzNCO0FBQUEsSUFFRjtBQUVBLFVBQU0sa0JBQWtCLFVBQVUsS0FBSyxVQUFVLEtBQUssUUFBUTtBQUM5RCxRQUFJLENBQUMsaUJBQWlCO0FBQ3BCLFlBQU0sSUFBSSxNQUFNLHFCQUFxQixJQUFJLG9CQUFvQjtBQUFBLElBQy9EO0FBQ0EsV0FBTyxVQUFVLEtBQUssUUFBUTtBQUFBLEVBQ2hDO0FBQ0Y7QUFTTyxTQUFTLE1BQ2QsU0FDQSxXQUE2QyxxQkFDckM7QUFDUixNQUFJLFFBQVEsV0FBVyxHQUFHO0FBQ3hCLFdBQU87QUFBQSxFQUNUO0FBRUEsTUFBSSxRQUFRLFdBQVcsS0FBSyxRQUFRLENBQUMsTUFBTSxRQUFXO0FBQ3BELFdBQU8sUUFBUSxDQUFDO0FBQUEsRUFDbEI7QUFFQSxRQUFNLFNBQVMsUUFBUSxJQUFJLENBQUMsV0FBVyxNQUFNLE9BQU8sTUFBTSxHQUFHLEVBQUUsS0FBSyxHQUFHO0FBQ3ZFLFFBQU0sUUFBUSxJQUFJLGlCQUFpQixTQUFTLFFBQVEsRUFBRSxhQUFhO0FBQ25FLFNBQU8sSUFBSSxPQUFPLFFBQVEsS0FBSztBQUNqQzsiLAogICJuYW1lcyI6IFsiUmVnRXhwTWVyZ2VGbGFnc0NvbmZsaWN0U3RyYXRlZ3kiXQp9Cg==
@@ -30,7 +30,7 @@ export declare function buildCompileSvelte(): Promise<void>;
30
30
  * Compiles the TypeScript code.
31
31
  *
32
32
  * The general `tsc` pass runs with `skipLibCheck: true` (configured in `tsconfig.json`) so it does
33
- * not fail on broken upstream `.d.ts` files we do not control. Afterwards, {@link validateProjectTypes}
33
+ * not fail on broken upstream `.d.ts` files we do not control. Afterwards, {@link areProjectTypesValid}
34
34
  * re-runs the type-check in-memory with `skipLibCheck: false`, reporting only diagnostics from the
35
35
  * files we own, so the declarations we author are still fully validated.
36
36
  *
@@ -37,7 +37,10 @@ import {
37
37
  } from "./check-project-types.mjs";
38
38
  import { readdirPosix } from "./fs.mjs";
39
39
  import { readJson } from "./json.mjs";
40
- import { npmRunOptional } from "./npm-run.mjs";
40
+ import {
41
+ npmRunOptional,
42
+ NpmRunOptionalResult
43
+ } from "./npm-run.mjs";
41
44
  import { ObsidianDevUtilsRepoPaths } from "./obsidian-dev-utils-repo-paths.mjs";
42
45
  import {
43
46
  execFromRoot,
@@ -48,10 +51,10 @@ async function buildClean() {
48
51
  await rm(ObsidianDevUtilsRepoPaths.Dist, { force: true, recursive: true });
49
52
  }
50
53
  async function buildCompile() {
51
- if (!await npmRunOptional("build:compile:svelte")) {
54
+ if (await npmRunOptional("build:compile:svelte") === NpmRunOptionalResult.Skipped) {
52
55
  await buildCompileSvelte();
53
56
  }
54
- if (!await npmRunOptional("build:compile:typescript")) {
57
+ if (await npmRunOptional("build:compile:typescript") === NpmRunOptionalResult.Skipped) {
55
58
  await buildCompileTypeScript();
56
59
  }
57
60
  }
@@ -68,7 +71,7 @@ async function buildCompileSvelte() {
68
71
  }
69
72
  async function buildCompileTypeScript() {
70
73
  await execFromRoot(["npx", "tsc", "--build", "--force"]);
71
- if (!validateProjectTypes()) {
74
+ if (!areProjectTypesValid()) {
72
75
  throw new Error("TypeScript declaration validation failed.");
73
76
  }
74
77
  }
@@ -78,8 +81,8 @@ async function buildTemplates() {
78
81
  continue;
79
82
  }
80
83
  const path = trimStart({
81
- prefix: `${ObsidianDevUtilsRepoPaths.Templates}/`,
82
- str: join(dirent.parentPath, dirent.name)
84
+ $string: join(dirent.parentPath, dirent.name),
85
+ prefix: `${ObsidianDevUtilsRepoPaths.Templates}/`
83
86
  });
84
87
  const destinationPath = path.endsWith(TEMPLATE_FILE_SUFFIX) ? path.slice(0, -TEMPLATE_FILE_SUFFIX.length) : path;
85
88
  await cp(join(ObsidianDevUtilsRepoPaths.Templates, path), join(ObsidianDevUtilsRepoPaths.DistTemplates, destinationPath));
@@ -87,11 +90,7 @@ async function buildTemplates() {
87
90
  }
88
91
  const TEMPLATE_FILE_SUFFIX = ".template";
89
92
  const NODE_MODULES_SEGMENT = "/node_modules/";
90
- function shouldKeepProjectFile(params) {
91
- const { fileName, rootCanonical } = params;
92
- return fileName.startsWith(`${rootCanonical}/`) && !fileName.includes(NODE_MODULES_SEGMENT);
93
- }
94
- function validateProjectTypes() {
93
+ function areProjectTypesValid() {
95
94
  const root = getRootFolder();
96
95
  if (!root) {
97
96
  throw new Error("Could not find root folder");
@@ -104,6 +103,10 @@ function validateProjectTypes() {
104
103
  shouldKeepFile: (fileName) => shouldKeepProjectFile({ fileName, rootCanonical })
105
104
  });
106
105
  }
106
+ function shouldKeepProjectFile(params) {
107
+ const { fileName, rootCanonical } = params;
108
+ return fileName.startsWith(`${rootCanonical}/`) && !fileName.includes(NODE_MODULES_SEGMENT);
109
+ }
107
110
  export {
108
111
  buildClean,
109
112
  buildCompile,
@@ -111,4 +114,4 @@ export {
111
114
  buildCompileTypeScript,
112
115
  buildTemplates
113
116
  };
114
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9idWlsZC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIHV0aWxpdHkgZnVuY3Rpb25zIHRvIGhhbmRsZSB0aGUgYnVpbGQgcHJvY2VzcyBmb3Igc3RhdGljIGFzc2V0cyBhbmQgY2xlYW5pbmdcbiAqIHRoZSBidWlsZCBvdXRwdXQgZm9sZGVyLiBJdCBpbmNsdWRlcyBmdW5jdGlvbnMgdG8gY29weSBzdGF0aWMgZmlsZXMgdG8gdGhlIGRpc3RyaWJ1dGlvbiBmb2xkZXJcbiAqIGFuZCB0byByZW1vdmUgdGhlIGV4aXN0aW5nIGJ1aWxkIG91dHB1dC5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFRzQ29uZmlnSnNvbiB9IGZyb20gJ3R5cGUtZmVzdCc7XG5cbmltcG9ydCB7XG4gIGNwLFxuICBnbG9iLFxuICBybVxufSBmcm9tICdub2RlOmZzL3Byb21pc2VzJztcblxuaW1wb3J0IHsgdG9BcnJheSB9IGZyb20gJy4uL2FzeW5jLnRzJztcbmltcG9ydCB7IGdldExpYkRlYnVnZ2VyIH0gZnJvbSAnLi4vZGVidWcudHMnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJy4uL3BhdGgudHMnO1xuaW1wb3J0IHsgdHJpbVN0YXJ0IH0gZnJvbSAnLi4vc3RyaW5nLnRzJztcbmltcG9ydCB7XG4gIGNoZWNrUHJvamVjdFR5cGVzLFxuICBwYXJzZVRzQ29uZmlnLFxuICB0b0Nhbm9uaWNhbFxufSBmcm9tICcuL2NoZWNrLXByb2plY3QtdHlwZXMudHMnO1xuaW1wb3J0IHsgcmVhZGRpclBvc2l4IH0gZnJvbSAnLi9mcy50cyc7XG5pbXBvcnQgeyByZWFkSnNvbiB9IGZyb20gJy4vanNvbi50cyc7XG5pbXBvcnQgeyBucG1SdW5PcHRpb25hbCB9IGZyb20gJy4vbnBtLXJ1bi50cyc7XG5pbXBvcnQgeyBPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzIH0gZnJvbSAnLi9vYnNpZGlhbi1kZXYtdXRpbHMtcmVwby1wYXRocy50cyc7XG5pbXBvcnQge1xuICBleGVjRnJvbVJvb3QsXG4gIGdldFJvb3RGb2xkZXIsXG4gIHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlXG59IGZyb20gJy4vcm9vdC50cyc7XG5cbi8qKlxuICogUmVtb3ZlcyB0aGUgZGlzdHJpYnV0aW9uIGZvbGRlciBhbmQgaXRzIGNvbnRlbnRzLlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gZGVsZXRlcyB0aGUgZW50aXJlIGRpc3RyaWJ1dGlvbiBmb2xkZXIgdG8gZW5zdXJlIGEgY2xlYW4gYnVpbGQgZW52aXJvbm1lbnQuXG4gKlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBmb2xkZXIgaGFzIGJlZW4gcmVtb3ZlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJ1aWxkQ2xlYW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IHJtKE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuRGlzdCwgeyBmb3JjZTogdHJ1ZSwgcmVjdXJzaXZlOiB0cnVlIH0pO1xufVxuXG4vKipcbiAqIENvbXBpbGVzIHRoZSBjb2RlLlxuICpcbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgY29kZSBjb21waWxlcyBzdWNjZXNzZnVsbHkuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBidWlsZENvbXBpbGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmICghYXdhaXQgbnBtUnVuT3B0aW9uYWwoJ2J1aWxkOmNvbXBpbGU6c3ZlbHRlJykpIHtcbiAgICBhd2FpdCBidWlsZENvbXBpbGVTdmVsdGUoKTtcbiAgfVxuICBpZiAoIWF3YWl0IG5wbVJ1bk9wdGlvbmFsKCdidWlsZDpjb21waWxlOnR5cGVzY3JpcHQnKSkge1xuICAgIGF3YWl0IGJ1aWxkQ29tcGlsZVR5cGVTY3JpcHQoKTtcbiAgfVxufVxuXG4vKipcbiAqIENvbXBpbGVzIHRoZSBTdmVsdGUgY29kZS5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGNvZGUgY29tcGlsZXMgc3VjY2Vzc2Z1bGx5LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRDb21waWxlU3ZlbHRlKCk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB0c0NvbmZpZ1BhdGggPSByZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7IHBhdGg6IE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuVHNDb25maWdKc29uIH0pO1xuICBjb25zdCB0c0NvbmZpZyA9IGF3YWl0IHJlYWRKc29uPFRzQ29uZmlnSnNvbj4odHNDb25maWdQYXRoKTtcbiAgY29uc3QgYWxsRmlsZXMgPSBhd2FpdCB0b0FycmF5KGdsb2IodHNDb25maWcuaW5jbHVkZSA/PyBbXSwgeyBleGNsdWRlOiB0c0NvbmZpZy5leGNsdWRlID8/IFtdIH0pKTtcbiAgY29uc3Qgc3ZlbHRlRmlsZXMgPSBhbGxGaWxlcy5maWx0ZXIoKGZpbGUpID0+IGZpbGUuZW5kc1dpdGgoJy5zdmVsdGUnKSB8fCBmaWxlLmVuZHNXaXRoKCcuc3ZlbHRlLmpzJykgfHwgZmlsZS5lbmRzV2l0aCgnLnN2ZWx0ZS50cycpKTtcblxuICBpZiAoc3ZlbHRlRmlsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgZ2V0TGliRGVidWdnZXIoJ2J1aWxkOmJ1aWxkQ29tcGlsZVN2ZWx0ZScpKCdObyBTdmVsdGUgZmlsZXMgZm91bmQgaW4gdGhlIHByb2plY3QsIHNraXBwaW5nIFN2ZWx0ZSBjb21waWxhdGlvbicpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGF3YWl0IGV4ZWNGcm9tUm9vdChbJ25weCcsICdzdmVsdGUtY2hlY2snLCAnLS10c2NvbmZpZycsIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuVHNDb25maWdKc29uXSk7XG59XG5cbi8qKlxuICogQ29tcGlsZXMgdGhlIFR5cGVTY3JpcHQgY29kZS5cbiAqXG4gKiBUaGUgZ2VuZXJhbCBgdHNjYCBwYXNzIHJ1bnMgd2l0aCBgc2tpcExpYkNoZWNrOiB0cnVlYCAoY29uZmlndXJlZCBpbiBgdHNjb25maWcuanNvbmApIHNvIGl0IGRvZXNcbiAqIG5vdCBmYWlsIG9uIGJyb2tlbiB1cHN0cmVhbSBgLmQudHNgIGZpbGVzIHdlIGRvIG5vdCBjb250cm9sLiBBZnRlcndhcmRzLCB7QGxpbmsgdmFsaWRhdGVQcm9qZWN0VHlwZXN9XG4gKiByZS1ydW5zIHRoZSB0eXBlLWNoZWNrIGluLW1lbW9yeSB3aXRoIGBza2lwTGliQ2hlY2s6IGZhbHNlYCwgcmVwb3J0aW5nIG9ubHkgZGlhZ25vc3RpY3MgZnJvbSB0aGVcbiAqIGZpbGVzIHdlIG93biwgc28gdGhlIGRlY2xhcmF0aW9ucyB3ZSBhdXRob3IgYXJlIHN0aWxsIGZ1bGx5IHZhbGlkYXRlZC5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGNvZGUgY29tcGlsZXMgc3VjY2Vzc2Z1bGx5LlxuICogQHRocm93cyBJZiB0aGUgcHJvamVjdCdzIG93biBkZWNsYXJhdGlvbnMgZmFpbCB2YWxpZGF0aW9uLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRDb21waWxlVHlwZVNjcmlwdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgZXhlY0Zyb21Sb290KFsnbnB4JywgJ3RzYycsICctLWJ1aWxkJywgJy0tZm9yY2UnXSk7XG5cbiAgaWYgKCF2YWxpZGF0ZVByb2plY3RUeXBlcygpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIHZhbGlkYXRpb24gZmFpbGVkLicpO1xuICB9XG59XG5cbi8qKlxuICogQ29waWVzIGFsbCB0ZW1wbGF0ZSBmaWxlcyBmcm9tIHRoZSB0ZW1wbGF0ZXMgZm9sZGVyIHRvIHRoZSBgdGVtcGxhdGVzYCBmb2xkZXIgd2l0aGluIHRoZVxuICogZGlzdHJpYnV0aW9uIGZvbGRlci5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIHJlY3Vyc2l2ZWx5IHJlYWRzIHRoZSBjb250ZW50cyBvZiB0aGUgdGVtcGxhdGVzIGZvbGRlciBhbmQgY29waWVzIGVhY2ggZmlsZSB0byB0aGVcbiAqIGNvcnJlc3BvbmRpbmcgcGF0aCB1bmRlciB7QGxpbmsgT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5EaXN0VGVtcGxhdGVzfSwgc28gY29uc3VtZXJzIGNhbiBjb3B5IHRoZVxuICogdGVtcGxhdGVzIGZyb20gYG5vZGVfbW9kdWxlcy9vYnNpZGlhbi1kZXYtdXRpbHMvZGlzdC90ZW1wbGF0ZXNgLiBBIHRyYWlsaW5nIGAudGVtcGxhdGVgIG9uIGEgc291cmNlXG4gKiBmaWxlIG5hbWUgaXMgc3RyaXBwZWQgaW4gdGhlIGRlc3RpbmF0aW9uIChlLmcuIGBlc2xpbnQuY29uZmlnLm10cy50ZW1wbGF0ZWAgaXMgY29waWVkIGFzXG4gKiBgZXNsaW50LmNvbmZpZy5tdHNgKSwgc28gYW4gYWN0aXZlIGNvbmZpZyB0ZW1wbGF0ZSBjYW4gbGl2ZSBpbiB0aGUgcmVwbyB1bmRlciBhIG5hbWUgdGhhdCB0aGVcbiAqIGNvcnJlc3BvbmRpbmcgdG9vbCBkb2VzIG5vdCBhdXRvLWRpc2NvdmVyLlxuICpcbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiBhbGwgZmlsZXMgaGF2ZSBiZWVuIGNvcGllZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJ1aWxkVGVtcGxhdGVzKCk6IFByb21pc2U8dm9pZD4ge1xuICBmb3IgKGNvbnN0IGRpcmVudCBvZiBhd2FpdCByZWFkZGlyUG9zaXgoT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5UZW1wbGF0ZXMsIHsgcmVjdXJzaXZlOiB0cnVlLCB3aXRoRmlsZVR5cGVzOiB0cnVlIH0pKSB7XG4gICAgaWYgKCFkaXJlbnQuaXNGaWxlKCkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHBhdGggPSB0cmltU3RhcnQoe1xuICAgICAgcHJlZml4OiBgJHtPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLlRlbXBsYXRlc30vYCxcbiAgICAgIHN0cjogam9pbihkaXJlbnQucGFyZW50UGF0aCwgZGlyZW50Lm5hbWUpXG4gICAgfSk7XG4gICAgY29uc3QgZGVzdGluYXRpb25QYXRoID0gcGF0aC5lbmRzV2l0aChURU1QTEFURV9GSUxFX1NVRkZJWCkgPyBwYXRoLnNsaWNlKDAsIC1URU1QTEFURV9GSUxFX1NVRkZJWC5sZW5ndGgpIDogcGF0aDtcbiAgICBhd2FpdCBjcChqb2luKE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuVGVtcGxhdGVzLCBwYXRoKSwgam9pbihPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLkRpc3RUZW1wbGF0ZXMsIGRlc3RpbmF0aW9uUGF0aCkpO1xuICB9XG59XG5cbmNvbnN0IFRFTVBMQVRFX0ZJTEVfU1VGRklYID0gJy50ZW1wbGF0ZSc7XG5cbmNvbnN0IE5PREVfTU9EVUxFU19TRUdNRU5UID0gJy9ub2RlX21vZHVsZXMvJztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgc2hvdWxkS2VlcFByb2plY3RGaWxlfS5cbiAqL1xuaW50ZXJmYWNlIFNob3VsZEtlZXBQcm9qZWN0RmlsZVBhcmFtcyB7XG4gIC8qKlxuICAgKiBBYnNvbHV0ZSBwYXRoIG9mIHRoZSBmaWxlIHVuZGVyIGNvbnNpZGVyYXRpb24uXG4gICAqL1xuICByZWFkb25seSBmaWxlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBYnNvbHV0ZSAoY2Fub25pY2FsKSBwYXRoIG9mIHRoZSBwcm9qZWN0IHJvb3QuXG4gICAqL1xuICByZWFkb25seSByb290Q2Fub25pY2FsOiBzdHJpbmc7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgZmlsZSBiZWxvbmdzIHRvIHRoZSBwcm9qZWN0ICh1bmRlciB0aGUgcm9vdCBmb2xkZXIsIG91dHNpZGUgYG5vZGVfbW9kdWxlc2ApLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGNoZWNrLlxuICogQHJldHVybnMgYHRydWVgIHdoZW4gdGhlIGZpbGUgYmVsb25ncyB0byB0aGUgcHJvamVjdC5cbiAqL1xuZnVuY3Rpb24gc2hvdWxkS2VlcFByb2plY3RGaWxlKHBhcmFtczogU2hvdWxkS2VlcFByb2plY3RGaWxlUGFyYW1zKTogYm9vbGVhbiB7XG4gIGNvbnN0IHsgZmlsZU5hbWUsIHJvb3RDYW5vbmljYWwgfSA9IHBhcmFtcztcbiAgcmV0dXJuIGZpbGVOYW1lLnN0YXJ0c1dpdGgoYCR7cm9vdENhbm9uaWNhbH0vYCkgJiYgIWZpbGVOYW1lLmluY2x1ZGVzKE5PREVfTU9EVUxFU19TRUdNRU5UKTtcbn1cblxuLyoqXG4gKiBSZS1ydW5zIHRoZSBwcm9qZWN0IHR5cGUtY2hlY2sgaW4tbWVtb3J5IHdpdGggYHNraXBMaWJDaGVjazogZmFsc2VgLCByZXBvcnRpbmcgb25seSBkaWFnbm9zdGljc1xuICogd2hvc2Ugc291cmNlIGZpbGUgYmVsb25ncyB0byB0aGUgcHJvamVjdCAodW5kZXIgdGhlIHJvb3QgZm9sZGVyLCBvdXRzaWRlIGBub2RlX21vZHVsZXNgKS5cbiAqXG4gKiBAcmV0dXJucyBgdHJ1ZWAgd2hlbiB0aGUgcHJvamVjdCdzIG93biBmaWxlcyBoYXZlIG5vIHR5cGUgZXJyb3JzLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAqIEB0aHJvd3MgSWYgdGhlIHJvb3QgZm9sZGVyIGNhbm5vdCBiZSBmb3VuZC5cbiAqL1xuZnVuY3Rpb24gdmFsaWRhdGVQcm9qZWN0VHlwZXMoKTogYm9vbGVhbiB7XG4gIGNvbnN0IHJvb3QgPSBnZXRSb290Rm9sZGVyKCk7XG5cbiAgaWYgKCFyb290KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgZmluZCByb290IGZvbGRlcicpO1xuICB9XG5cbiAgY29uc3Qgcm9vdENhbm9uaWNhbCA9IHRvQ2Fub25pY2FsKHJvb3QpO1xuICBjb25zdCB7IGZpbGVOYW1lcywgb3B0aW9ucyB9ID0gcGFyc2VUc0NvbmZpZyhqb2luKHJvb3QsIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuVHNDb25maWdKc29uKSk7XG5cbiAgcmV0dXJuIGNoZWNrUHJvamVjdFR5cGVzKHtcbiAgICBvcHRpb25zLFxuICAgIHJvb3ROYW1lczogZmlsZU5hbWVzLFxuICAgIHNob3VsZEtlZXBGaWxlOiAoZmlsZU5hbWUpID0+IHNob3VsZEtlZXBQcm9qZWN0RmlsZSh7IGZpbGVOYW1lLCByb290Q2Fub25pY2FsIH0pXG4gIH0pO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFVQTtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFFUCxTQUFTLGVBQWU7QUFDeEIsU0FBUyxzQkFBc0I7QUFDL0IsU0FBUyxZQUFZO0FBQ3JCLFNBQVMsaUJBQWlCO0FBQzFCO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsb0JBQW9CO0FBQzdCLFNBQVMsZ0JBQWdCO0FBQ3pCLFNBQVMsc0JBQXNCO0FBQy9CLFNBQVMsaUNBQWlDO0FBQzFDO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQVNQLGVBQXNCLGFBQTRCO0FBQ2hELFFBQU0sR0FBRywwQkFBMEIsTUFBTSxFQUFFLE9BQU8sTUFBTSxXQUFXLEtBQUssQ0FBQztBQUMzRTtBQU9BLGVBQXNCLGVBQThCO0FBQ2xELE1BQUksQ0FBQyxNQUFNLGVBQWUsc0JBQXNCLEdBQUc7QUFDakQsVUFBTSxtQkFBbUI7QUFBQSxFQUMzQjtBQUNBLE1BQUksQ0FBQyxNQUFNLGVBQWUsMEJBQTBCLEdBQUc7QUFDckQsVUFBTSx1QkFBdUI7QUFBQSxFQUMvQjtBQUNGO0FBT0EsZUFBc0IscUJBQW9DO0FBQ3hELFFBQU0sZUFBZSx3QkFBd0IsRUFBRSxNQUFNLDBCQUEwQixhQUFhLENBQUM7QUFDN0YsUUFBTSxXQUFXLE1BQU0sU0FBdUIsWUFBWTtBQUMxRCxRQUFNLFdBQVcsTUFBTSxRQUFRLEtBQUssU0FBUyxXQUFXLENBQUMsR0FBRyxFQUFFLFNBQVMsU0FBUyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDaEcsUUFBTSxjQUFjLFNBQVMsT0FBTyxDQUFDLFNBQVMsS0FBSyxTQUFTLFNBQVMsS0FBSyxLQUFLLFNBQVMsWUFBWSxLQUFLLEtBQUssU0FBUyxZQUFZLENBQUM7QUFFcEksTUFBSSxZQUFZLFdBQVcsR0FBRztBQUM1QixtQkFBZSwwQkFBMEIsRUFBRSxtRUFBbUU7QUFDOUc7QUFBQSxFQUNGO0FBRUEsUUFBTSxhQUFhLENBQUMsT0FBTyxnQkFBZ0IsY0FBYywwQkFBMEIsWUFBWSxDQUFDO0FBQ2xHO0FBYUEsZUFBc0IseUJBQXdDO0FBQzVELFFBQU0sYUFBYSxDQUFDLE9BQU8sT0FBTyxXQUFXLFNBQVMsQ0FBQztBQUV2RCxNQUFJLENBQUMscUJBQXFCLEdBQUc7QUFDM0IsVUFBTSxJQUFJLE1BQU0sMkNBQTJDO0FBQUEsRUFDN0Q7QUFDRjtBQWVBLGVBQXNCLGlCQUFnQztBQUNwRCxhQUFXLFVBQVUsTUFBTSxhQUFhLDBCQUEwQixXQUFXLEVBQUUsV0FBVyxNQUFNLGVBQWUsS0FBSyxDQUFDLEdBQUc7QUFDdEgsUUFBSSxDQUFDLE9BQU8sT0FBTyxHQUFHO0FBQ3BCO0FBQUEsSUFDRjtBQUVBLFVBQU0sT0FBTyxVQUFVO0FBQUEsTUFDckIsUUFBUSxHQUFHLDBCQUEwQixTQUFTO0FBQUEsTUFDOUMsS0FBSyxLQUFLLE9BQU8sWUFBWSxPQUFPLElBQUk7QUFBQSxJQUMxQyxDQUFDO0FBQ0QsVUFBTSxrQkFBa0IsS0FBSyxTQUFTLG9CQUFvQixJQUFJLEtBQUssTUFBTSxHQUFHLENBQUMscUJBQXFCLE1BQU0sSUFBSTtBQUM1RyxVQUFNLEdBQUcsS0FBSywwQkFBMEIsV0FBVyxJQUFJLEdBQUcsS0FBSywwQkFBMEIsZUFBZSxlQUFlLENBQUM7QUFBQSxFQUMxSDtBQUNGO0FBRUEsTUFBTSx1QkFBdUI7QUFFN0IsTUFBTSx1QkFBdUI7QUF1QjdCLFNBQVMsc0JBQXNCLFFBQThDO0FBQzNFLFFBQU0sRUFBRSxVQUFVLGNBQWMsSUFBSTtBQUNwQyxTQUFPLFNBQVMsV0FBVyxHQUFHLGFBQWEsR0FBRyxLQUFLLENBQUMsU0FBUyxTQUFTLG9CQUFvQjtBQUM1RjtBQVNBLFNBQVMsdUJBQWdDO0FBQ3ZDLFFBQU0sT0FBTyxjQUFjO0FBRTNCLE1BQUksQ0FBQyxNQUFNO0FBQ1QsVUFBTSxJQUFJLE1BQU0sNEJBQTRCO0FBQUEsRUFDOUM7QUFFQSxRQUFNLGdCQUFnQixZQUFZLElBQUk7QUFDdEMsUUFBTSxFQUFFLFdBQVcsUUFBUSxJQUFJLGNBQWMsS0FBSyxNQUFNLDBCQUEwQixZQUFZLENBQUM7QUFFL0YsU0FBTyxrQkFBa0I7QUFBQSxJQUN2QjtBQUFBLElBQ0EsV0FBVztBQUFBLElBQ1gsZ0JBQWdCLENBQUMsYUFBYSxzQkFBc0IsRUFBRSxVQUFVLGNBQWMsQ0FBQztBQUFBLEVBQ2pGLENBQUM7QUFDSDsiLAogICJuYW1lcyI6IFtdCn0K
117
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9idWlsZC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIHV0aWxpdHkgZnVuY3Rpb25zIHRvIGhhbmRsZSB0aGUgYnVpbGQgcHJvY2VzcyBmb3Igc3RhdGljIGFzc2V0cyBhbmQgY2xlYW5pbmdcbiAqIHRoZSBidWlsZCBvdXRwdXQgZm9sZGVyLiBJdCBpbmNsdWRlcyBmdW5jdGlvbnMgdG8gY29weSBzdGF0aWMgZmlsZXMgdG8gdGhlIGRpc3RyaWJ1dGlvbiBmb2xkZXJcbiAqIGFuZCB0byByZW1vdmUgdGhlIGV4aXN0aW5nIGJ1aWxkIG91dHB1dC5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFRzQ29uZmlnSnNvbiB9IGZyb20gJ3R5cGUtZmVzdCc7XG5cbmltcG9ydCB7XG4gIGNwLFxuICBnbG9iLFxuICBybVxufSBmcm9tICdub2RlOmZzL3Byb21pc2VzJztcblxuaW1wb3J0IHsgdG9BcnJheSB9IGZyb20gJy4uL2FzeW5jLnRzJztcbmltcG9ydCB7IGdldExpYkRlYnVnZ2VyIH0gZnJvbSAnLi4vZGVidWcudHMnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJy4uL3BhdGgudHMnO1xuaW1wb3J0IHsgdHJpbVN0YXJ0IH0gZnJvbSAnLi4vc3RyaW5nLnRzJztcbmltcG9ydCB7XG4gIGNoZWNrUHJvamVjdFR5cGVzLFxuICBwYXJzZVRzQ29uZmlnLFxuICB0b0Nhbm9uaWNhbFxufSBmcm9tICcuL2NoZWNrLXByb2plY3QtdHlwZXMudHMnO1xuaW1wb3J0IHsgcmVhZGRpclBvc2l4IH0gZnJvbSAnLi9mcy50cyc7XG5pbXBvcnQgeyByZWFkSnNvbiB9IGZyb20gJy4vanNvbi50cyc7XG5pbXBvcnQge1xuICBucG1SdW5PcHRpb25hbCxcbiAgTnBtUnVuT3B0aW9uYWxSZXN1bHRcbn0gZnJvbSAnLi9ucG0tcnVuLnRzJztcbmltcG9ydCB7IE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMgfSBmcm9tICcuL29ic2lkaWFuLWRldi11dGlscy1yZXBvLXBhdGhzLnRzJztcbmltcG9ydCB7XG4gIGV4ZWNGcm9tUm9vdCxcbiAgZ2V0Um9vdEZvbGRlcixcbiAgcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmVcbn0gZnJvbSAnLi9yb290LnRzJztcblxuLyoqXG4gKiBSZW1vdmVzIHRoZSBkaXN0cmlidXRpb24gZm9sZGVyIGFuZCBpdHMgY29udGVudHMuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBkZWxldGVzIHRoZSBlbnRpcmUgZGlzdHJpYnV0aW9uIGZvbGRlciB0byBlbnN1cmUgYSBjbGVhbiBidWlsZCBlbnZpcm9ubWVudC5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGZvbGRlciBoYXMgYmVlbiByZW1vdmVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRDbGVhbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgcm0oT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5EaXN0LCB7IGZvcmNlOiB0cnVlLCByZWN1cnNpdmU6IHRydWUgfSk7XG59XG5cbi8qKlxuICogQ29tcGlsZXMgdGhlIGNvZGUuXG4gKlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBjb2RlIGNvbXBpbGVzIHN1Y2Nlc3NmdWxseS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJ1aWxkQ29tcGlsZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgaWYgKGF3YWl0IG5wbVJ1bk9wdGlvbmFsKCdidWlsZDpjb21waWxlOnN2ZWx0ZScpID09PSBOcG1SdW5PcHRpb25hbFJlc3VsdC5Ta2lwcGVkKSB7XG4gICAgYXdhaXQgYnVpbGRDb21waWxlU3ZlbHRlKCk7XG4gIH1cbiAgaWYgKGF3YWl0IG5wbVJ1bk9wdGlvbmFsKCdidWlsZDpjb21waWxlOnR5cGVzY3JpcHQnKSA9PT0gTnBtUnVuT3B0aW9uYWxSZXN1bHQuU2tpcHBlZCkge1xuICAgIGF3YWl0IGJ1aWxkQ29tcGlsZVR5cGVTY3JpcHQoKTtcbiAgfVxufVxuXG4vKipcbiAqIENvbXBpbGVzIHRoZSBTdmVsdGUgY29kZS5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGNvZGUgY29tcGlsZXMgc3VjY2Vzc2Z1bGx5LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRDb21waWxlU3ZlbHRlKCk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB0c0NvbmZpZ1BhdGggPSByZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7IHBhdGg6IE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuVHNDb25maWdKc29uIH0pO1xuICBjb25zdCB0c0NvbmZpZyA9IGF3YWl0IHJlYWRKc29uPFRzQ29uZmlnSnNvbj4odHNDb25maWdQYXRoKTtcbiAgY29uc3QgYWxsRmlsZXMgPSBhd2FpdCB0b0FycmF5KGdsb2IodHNDb25maWcuaW5jbHVkZSA/PyBbXSwgeyBleGNsdWRlOiB0c0NvbmZpZy5leGNsdWRlID8/IFtdIH0pKTtcbiAgY29uc3Qgc3ZlbHRlRmlsZXMgPSBhbGxGaWxlcy5maWx0ZXIoKGZpbGUpID0+IGZpbGUuZW5kc1dpdGgoJy5zdmVsdGUnKSB8fCBmaWxlLmVuZHNXaXRoKCcuc3ZlbHRlLmpzJykgfHwgZmlsZS5lbmRzV2l0aCgnLnN2ZWx0ZS50cycpKTtcblxuICBpZiAoc3ZlbHRlRmlsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgZ2V0TGliRGVidWdnZXIoJ2J1aWxkOmJ1aWxkQ29tcGlsZVN2ZWx0ZScpKCdObyBTdmVsdGUgZmlsZXMgZm91bmQgaW4gdGhlIHByb2plY3QsIHNraXBwaW5nIFN2ZWx0ZSBjb21waWxhdGlvbicpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGF3YWl0IGV4ZWNGcm9tUm9vdChbJ25weCcsICdzdmVsdGUtY2hlY2snLCAnLS10c2NvbmZpZycsIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuVHNDb25maWdKc29uXSk7XG59XG5cbi8qKlxuICogQ29tcGlsZXMgdGhlIFR5cGVTY3JpcHQgY29kZS5cbiAqXG4gKiBUaGUgZ2VuZXJhbCBgdHNjYCBwYXNzIHJ1bnMgd2l0aCBgc2tpcExpYkNoZWNrOiB0cnVlYCAoY29uZmlndXJlZCBpbiBgdHNjb25maWcuanNvbmApIHNvIGl0IGRvZXNcbiAqIG5vdCBmYWlsIG9uIGJyb2tlbiB1cHN0cmVhbSBgLmQudHNgIGZpbGVzIHdlIGRvIG5vdCBjb250cm9sLiBBZnRlcndhcmRzLCB7QGxpbmsgYXJlUHJvamVjdFR5cGVzVmFsaWR9XG4gKiByZS1ydW5zIHRoZSB0eXBlLWNoZWNrIGluLW1lbW9yeSB3aXRoIGBza2lwTGliQ2hlY2s6IGZhbHNlYCwgcmVwb3J0aW5nIG9ubHkgZGlhZ25vc3RpY3MgZnJvbSB0aGVcbiAqIGZpbGVzIHdlIG93biwgc28gdGhlIGRlY2xhcmF0aW9ucyB3ZSBhdXRob3IgYXJlIHN0aWxsIGZ1bGx5IHZhbGlkYXRlZC5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGNvZGUgY29tcGlsZXMgc3VjY2Vzc2Z1bGx5LlxuICogQHRocm93cyBJZiB0aGUgcHJvamVjdCdzIG93biBkZWNsYXJhdGlvbnMgZmFpbCB2YWxpZGF0aW9uLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRDb21waWxlVHlwZVNjcmlwdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgZXhlY0Zyb21Sb290KFsnbnB4JywgJ3RzYycsICctLWJ1aWxkJywgJy0tZm9yY2UnXSk7XG5cbiAgaWYgKCFhcmVQcm9qZWN0VHlwZXNWYWxpZCgpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIHZhbGlkYXRpb24gZmFpbGVkLicpO1xuICB9XG59XG5cbi8qKlxuICogQ29waWVzIGFsbCB0ZW1wbGF0ZSBmaWxlcyBmcm9tIHRoZSB0ZW1wbGF0ZXMgZm9sZGVyIHRvIHRoZSBgdGVtcGxhdGVzYCBmb2xkZXIgd2l0aGluIHRoZVxuICogZGlzdHJpYnV0aW9uIGZvbGRlci5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIHJlY3Vyc2l2ZWx5IHJlYWRzIHRoZSBjb250ZW50cyBvZiB0aGUgdGVtcGxhdGVzIGZvbGRlciBhbmQgY29waWVzIGVhY2ggZmlsZSB0byB0aGVcbiAqIGNvcnJlc3BvbmRpbmcgcGF0aCB1bmRlciB7QGxpbmsgT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5EaXN0VGVtcGxhdGVzfSwgc28gY29uc3VtZXJzIGNhbiBjb3B5IHRoZVxuICogdGVtcGxhdGVzIGZyb20gYG5vZGVfbW9kdWxlcy9vYnNpZGlhbi1kZXYtdXRpbHMvZGlzdC90ZW1wbGF0ZXNgLiBBIHRyYWlsaW5nIGAudGVtcGxhdGVgIG9uIGEgc291cmNlXG4gKiBmaWxlIG5hbWUgaXMgc3RyaXBwZWQgaW4gdGhlIGRlc3RpbmF0aW9uIChlLmcuIGBlc2xpbnQuY29uZmlnLm10cy50ZW1wbGF0ZWAgaXMgY29waWVkIGFzXG4gKiBgZXNsaW50LmNvbmZpZy5tdHNgKSwgc28gYW4gYWN0aXZlIGNvbmZpZyB0ZW1wbGF0ZSBjYW4gbGl2ZSBpbiB0aGUgcmVwbyB1bmRlciBhIG5hbWUgdGhhdCB0aGVcbiAqIGNvcnJlc3BvbmRpbmcgdG9vbCBkb2VzIG5vdCBhdXRvLWRpc2NvdmVyLlxuICpcbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiBhbGwgZmlsZXMgaGF2ZSBiZWVuIGNvcGllZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJ1aWxkVGVtcGxhdGVzKCk6IFByb21pc2U8dm9pZD4ge1xuICBmb3IgKGNvbnN0IGRpcmVudCBvZiBhd2FpdCByZWFkZGlyUG9zaXgoT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5UZW1wbGF0ZXMsIHsgcmVjdXJzaXZlOiB0cnVlLCB3aXRoRmlsZVR5cGVzOiB0cnVlIH0pKSB7XG4gICAgaWYgKCFkaXJlbnQuaXNGaWxlKCkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHBhdGggPSB0cmltU3RhcnQoe1xuICAgICAgJHN0cmluZzogam9pbihkaXJlbnQucGFyZW50UGF0aCwgZGlyZW50Lm5hbWUpLFxuICAgICAgcHJlZml4OiBgJHtPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLlRlbXBsYXRlc30vYFxuICAgIH0pO1xuICAgIGNvbnN0IGRlc3RpbmF0aW9uUGF0aCA9IHBhdGguZW5kc1dpdGgoVEVNUExBVEVfRklMRV9TVUZGSVgpID8gcGF0aC5zbGljZSgwLCAtVEVNUExBVEVfRklMRV9TVUZGSVgubGVuZ3RoKSA6IHBhdGg7XG4gICAgYXdhaXQgY3Aoam9pbihPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLlRlbXBsYXRlcywgcGF0aCksIGpvaW4oT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5EaXN0VGVtcGxhdGVzLCBkZXN0aW5hdGlvblBhdGgpKTtcbiAgfVxufVxuXG5jb25zdCBURU1QTEFURV9GSUxFX1NVRkZJWCA9ICcudGVtcGxhdGUnO1xuXG5jb25zdCBOT0RFX01PRFVMRVNfU0VHTUVOVCA9ICcvbm9kZV9tb2R1bGVzLyc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHNob3VsZEtlZXBQcm9qZWN0RmlsZX0uXG4gKi9cbmludGVyZmFjZSBTaG91bGRLZWVwUHJvamVjdEZpbGVQYXJhbXMge1xuICAvKipcbiAgICogQWJzb2x1dGUgcGF0aCBvZiB0aGUgZmlsZSB1bmRlciBjb25zaWRlcmF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgZmlsZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQWJzb2x1dGUgKGNhbm9uaWNhbCkgcGF0aCBvZiB0aGUgcHJvamVjdCByb290LlxuICAgKi9cbiAgcmVhZG9ubHkgcm9vdENhbm9uaWNhbDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlLXJ1bnMgdGhlIHByb2plY3QgdHlwZS1jaGVjayBpbi1tZW1vcnkgd2l0aCBgc2tpcExpYkNoZWNrOiBmYWxzZWAsIHJlcG9ydGluZyBvbmx5IGRpYWdub3N0aWNzXG4gKiB3aG9zZSBzb3VyY2UgZmlsZSBiZWxvbmdzIHRvIHRoZSBwcm9qZWN0ICh1bmRlciB0aGUgcm9vdCBmb2xkZXIsIG91dHNpZGUgYG5vZGVfbW9kdWxlc2ApLlxuICpcbiAqIEByZXR1cm5zIGB0cnVlYCB3aGVuIHRoZSBwcm9qZWN0J3Mgb3duIGZpbGVzIGhhdmUgbm8gdHlwZSBlcnJvcnMsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICogQHRocm93cyBJZiB0aGUgcm9vdCBmb2xkZXIgY2Fubm90IGJlIGZvdW5kLlxuICovXG5mdW5jdGlvbiBhcmVQcm9qZWN0VHlwZXNWYWxpZCgpOiBib29sZWFuIHtcbiAgY29uc3Qgcm9vdCA9IGdldFJvb3RGb2xkZXIoKTtcblxuICBpZiAoIXJvb3QpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBmaW5kIHJvb3QgZm9sZGVyJyk7XG4gIH1cblxuICBjb25zdCByb290Q2Fub25pY2FsID0gdG9DYW5vbmljYWwocm9vdCk7XG4gIGNvbnN0IHsgZmlsZU5hbWVzLCBvcHRpb25zIH0gPSBwYXJzZVRzQ29uZmlnKGpvaW4ocm9vdCwgT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5Uc0NvbmZpZ0pzb24pKTtcblxuICByZXR1cm4gY2hlY2tQcm9qZWN0VHlwZXMoe1xuICAgIG9wdGlvbnMsXG4gICAgcm9vdE5hbWVzOiBmaWxlTmFtZXMsXG4gICAgc2hvdWxkS2VlcEZpbGU6IChmaWxlTmFtZSkgPT4gc2hvdWxkS2VlcFByb2plY3RGaWxlKHsgZmlsZU5hbWUsIHJvb3RDYW5vbmljYWwgfSlcbiAgfSk7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgZmlsZSBiZWxvbmdzIHRvIHRoZSBwcm9qZWN0ICh1bmRlciB0aGUgcm9vdCBmb2xkZXIsIG91dHNpZGUgYG5vZGVfbW9kdWxlc2ApLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGNoZWNrLlxuICogQHJldHVybnMgYHRydWVgIHdoZW4gdGhlIGZpbGUgYmVsb25ncyB0byB0aGUgcHJvamVjdC5cbiAqL1xuZnVuY3Rpb24gc2hvdWxkS2VlcFByb2plY3RGaWxlKHBhcmFtczogU2hvdWxkS2VlcFByb2plY3RGaWxlUGFyYW1zKTogYm9vbGVhbiB7XG4gIGNvbnN0IHsgZmlsZU5hbWUsIHJvb3RDYW5vbmljYWwgfSA9IHBhcmFtcztcbiAgcmV0dXJuIGZpbGVOYW1lLnN0YXJ0c1dpdGgoYCR7cm9vdENhbm9uaWNhbH0vYCkgJiYgIWZpbGVOYW1lLmluY2x1ZGVzKE5PREVfTU9EVUxFU19TRUdNRU5UKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBVUE7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBRVAsU0FBUyxlQUFlO0FBQ3hCLFNBQVMsc0JBQXNCO0FBQy9CLFNBQVMsWUFBWTtBQUNyQixTQUFTLGlCQUFpQjtBQUMxQjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLG9CQUFvQjtBQUM3QixTQUFTLGdCQUFnQjtBQUN6QjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsaUNBQWlDO0FBQzFDO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQVNQLGVBQXNCLGFBQTRCO0FBQ2hELFFBQU0sR0FBRywwQkFBMEIsTUFBTSxFQUFFLE9BQU8sTUFBTSxXQUFXLEtBQUssQ0FBQztBQUMzRTtBQU9BLGVBQXNCLGVBQThCO0FBQ2xELE1BQUksTUFBTSxlQUFlLHNCQUFzQixNQUFNLHFCQUFxQixTQUFTO0FBQ2pGLFVBQU0sbUJBQW1CO0FBQUEsRUFDM0I7QUFDQSxNQUFJLE1BQU0sZUFBZSwwQkFBMEIsTUFBTSxxQkFBcUIsU0FBUztBQUNyRixVQUFNLHVCQUF1QjtBQUFBLEVBQy9CO0FBQ0Y7QUFPQSxlQUFzQixxQkFBb0M7QUFDeEQsUUFBTSxlQUFlLHdCQUF3QixFQUFFLE1BQU0sMEJBQTBCLGFBQWEsQ0FBQztBQUM3RixRQUFNLFdBQVcsTUFBTSxTQUF1QixZQUFZO0FBQzFELFFBQU0sV0FBVyxNQUFNLFFBQVEsS0FBSyxTQUFTLFdBQVcsQ0FBQyxHQUFHLEVBQUUsU0FBUyxTQUFTLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNoRyxRQUFNLGNBQWMsU0FBUyxPQUFPLENBQUMsU0FBUyxLQUFLLFNBQVMsU0FBUyxLQUFLLEtBQUssU0FBUyxZQUFZLEtBQUssS0FBSyxTQUFTLFlBQVksQ0FBQztBQUVwSSxNQUFJLFlBQVksV0FBVyxHQUFHO0FBQzVCLG1CQUFlLDBCQUEwQixFQUFFLG1FQUFtRTtBQUM5RztBQUFBLEVBQ0Y7QUFFQSxRQUFNLGFBQWEsQ0FBQyxPQUFPLGdCQUFnQixjQUFjLDBCQUEwQixZQUFZLENBQUM7QUFDbEc7QUFhQSxlQUFzQix5QkFBd0M7QUFDNUQsUUFBTSxhQUFhLENBQUMsT0FBTyxPQUFPLFdBQVcsU0FBUyxDQUFDO0FBRXZELE1BQUksQ0FBQyxxQkFBcUIsR0FBRztBQUMzQixVQUFNLElBQUksTUFBTSwyQ0FBMkM7QUFBQSxFQUM3RDtBQUNGO0FBZUEsZUFBc0IsaUJBQWdDO0FBQ3BELGFBQVcsVUFBVSxNQUFNLGFBQWEsMEJBQTBCLFdBQVcsRUFBRSxXQUFXLE1BQU0sZUFBZSxLQUFLLENBQUMsR0FBRztBQUN0SCxRQUFJLENBQUMsT0FBTyxPQUFPLEdBQUc7QUFDcEI7QUFBQSxJQUNGO0FBRUEsVUFBTSxPQUFPLFVBQVU7QUFBQSxNQUNyQixTQUFTLEtBQUssT0FBTyxZQUFZLE9BQU8sSUFBSTtBQUFBLE1BQzVDLFFBQVEsR0FBRywwQkFBMEIsU0FBUztBQUFBLElBQ2hELENBQUM7QUFDRCxVQUFNLGtCQUFrQixLQUFLLFNBQVMsb0JBQW9CLElBQUksS0FBSyxNQUFNLEdBQUcsQ0FBQyxxQkFBcUIsTUFBTSxJQUFJO0FBQzVHLFVBQU0sR0FBRyxLQUFLLDBCQUEwQixXQUFXLElBQUksR0FBRyxLQUFLLDBCQUEwQixlQUFlLGVBQWUsQ0FBQztBQUFBLEVBQzFIO0FBQ0Y7QUFFQSxNQUFNLHVCQUF1QjtBQUU3QixNQUFNLHVCQUF1QjtBQXdCN0IsU0FBUyx1QkFBZ0M7QUFDdkMsUUFBTSxPQUFPLGNBQWM7QUFFM0IsTUFBSSxDQUFDLE1BQU07QUFDVCxVQUFNLElBQUksTUFBTSw0QkFBNEI7QUFBQSxFQUM5QztBQUVBLFFBQU0sZ0JBQWdCLFlBQVksSUFBSTtBQUN0QyxRQUFNLEVBQUUsV0FBVyxRQUFRLElBQUksY0FBYyxLQUFLLE1BQU0sMEJBQTBCLFlBQVksQ0FBQztBQUUvRixTQUFPLGtCQUFrQjtBQUFBLElBQ3ZCO0FBQUEsSUFDQSxXQUFXO0FBQUEsSUFDWCxnQkFBZ0IsQ0FBQyxhQUFhLHNCQUFzQixFQUFFLFVBQVUsY0FBYyxDQUFDO0FBQUEsRUFDakYsQ0FBQztBQUNIO0FBUUEsU0FBUyxzQkFBc0IsUUFBOEM7QUFDM0UsUUFBTSxFQUFFLFVBQVUsY0FBYyxJQUFJO0FBQ3BDLFNBQU8sU0FBUyxXQUFXLEdBQUcsYUFBYSxHQUFHLEtBQUssQ0FBQyxTQUFTLFNBQVMsb0JBQW9CO0FBQzVGOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -34,9 +34,9 @@ function changeExtensionPlugin(extension) {
34
34
  continue;
35
35
  }
36
36
  const newPath = replaceAll({
37
+ $string: file.path,
37
38
  replacer: extension,
38
- searchValue: /\.js$/g,
39
- str: file.path
39
+ searchValue: /\.js$/g
40
40
  });
41
41
  const newText = rewriteImportPathExtensions(file.text, extension);
42
42
  await writeFile(newPath, newText);
@@ -47,31 +47,31 @@ function changeExtensionPlugin(extension) {
47
47
  }
48
48
  function rewriteImportPathExtensions(text, extension) {
49
49
  let newText = replaceAll({
50
- replacer: ({ capturedGroupArgs: [importPath = ""] }) => `require('${rewriteTsExtension(importPath, extension)}')`,
51
- searchValue: /require\(["'](?<ImportPath>.+?)["']\)/g,
52
- str: text
50
+ $string: text,
51
+ replacer: ({ capturedGroupArguments: [importPath = ""] }) => `require('${rewriteTsExtension(importPath, extension)}')`,
52
+ searchValue: /require\(["'](?<ImportPath>.+?)["']\)/g
53
53
  });
54
54
  newText = replaceAll({
55
- replacer: ({ capturedGroupArgs: [importPath = ""] }) => `from "${rewriteTsExtension(importPath, extension)}"`,
56
- searchValue: /from "(?<ImportPath>.+?)"/g,
57
- str: newText
55
+ $string: newText,
56
+ replacer: ({ capturedGroupArguments: [importPath = ""] }) => `from "${rewriteTsExtension(importPath, extension)}"`,
57
+ searchValue: /from "(?<ImportPath>.+?)"/g
58
58
  });
59
59
  newText = replaceAll({
60
- replacer: ({ capturedGroupArgs: [importPath = ""] }) => `import("${rewriteTsExtension(importPath, extension)}")`,
61
- searchValue: /import\(["'](?<ImportPath>.+?)["']\)/g,
62
- str: newText
60
+ $string: newText,
61
+ replacer: ({ capturedGroupArguments: [importPath = ""] }) => `import("${rewriteTsExtension(importPath, extension)}")`,
62
+ searchValue: /import\(["'](?<ImportPath>.+?)["']\)/g
63
63
  });
64
64
  return newText;
65
65
  }
66
66
  function rewriteTsExtension(importPath, extension) {
67
67
  return replaceAll({
68
+ $string: importPath,
68
69
  replacer: extension,
69
- searchValue: /\.ts$/g,
70
- str: importPath
70
+ searchValue: /\.ts$/g
71
71
  });
72
72
  }
73
73
  export {
74
74
  changeExtensionPlugin,
75
75
  rewriteImportPathExtensions
76
76
  };
77
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9idW5kbGVycy9lc2J1aWxkLWltcGwvY2hhbmdlLWV4dGVuc2lvbi1wbHVnaW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUaGlzIG1vZHVsZSBkZWZpbmVzIGFuIGVzYnVpbGQgcGx1Z2luIHRoYXQgY2hhbmdlcyB0aGUgZXh0ZW5zaW9uIG9mIEphdmFTY3JpcHQgZmlsZXMgYWZ0ZXIgdGhlIGJ1aWxkIHByb2Nlc3MuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBQbHVnaW4gfSBmcm9tICdlc2J1aWxkJztcblxuaW1wb3J0IHsgd3JpdGVGaWxlIH0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcyc7XG5cbmltcG9ydCB7IHJlcGxhY2VBbGwgfSBmcm9tICcuLi8uLi8uLi9zdHJpbmcudHMnO1xuaW1wb3J0IHsgT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocyB9IGZyb20gJy4uLy4uL29ic2lkaWFuLWRldi11dGlscy1yZXBvLXBhdGhzLnRzJztcblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIGVzYnVpbGQgcGx1Z2luIHRoYXQgcmV3cml0ZXMgZmlsZSBleHRlbnNpb25zIGF0IGJ1aWxkIHRpbWU7IHJlcXVpcmVzIGEgbGl2ZSBlc2J1aWxkIGNvbnRleHQuICovXG5cbi8qKlxuICogQ3JlYXRlcyBhbiBlc2J1aWxkIHBsdWdpbiB0aGF0IGNoYW5nZXMgdGhlIGV4dGVuc2lvbiBvZiBKYXZhU2NyaXB0IGZpbGVzIGFmdGVyIHRoZSBidWlsZCBwcm9jZXNzLlxuICpcbiAqIEBwYXJhbSBleHRlbnNpb24gLSBUaGUgZXh0ZW5zaW9uIHRvIGNoYW5nZSB0aGUgZmlsZXMgdG8uXG4gKiBAcmV0dXJucyBBbiBlc2J1aWxkIGBQbHVnaW5gIG9iamVjdCB0aGF0IGhhbmRsZXMgdGhlIHJlbmFtaW5nIGFuZCBtb2RpZmljYXRpb24gb2Ygb3V0cHV0IGZpbGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hhbmdlRXh0ZW5zaW9uUGx1Z2luKGV4dGVuc2lvbjogc3RyaW5nKTogUGx1Z2luIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnY2hhbmdlLWV4dGVuc2lvbicsXG4gICAgc2V0dXAoYnVpbGQpOiB2b2lkIHtcbiAgICAgIGJ1aWxkLm9uRW5kKGFzeW5jIChyZXN1bHQpID0+IHtcbiAgICAgICAgZm9yIChjb25zdCBmaWxlIG9mIHJlc3VsdC5vdXRwdXRGaWxlcyA/PyBbXSkge1xuICAgICAgICAgIGlmICghZmlsZS5wYXRoLmVuZHNXaXRoKE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuSnNFeHRlbnNpb24pIHx8IGZpbGUucGF0aC5lbmRzV2l0aChPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLkRqc0V4dGVuc2lvbikpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IG5ld1BhdGggPSByZXBsYWNlQWxsKHtcbiAgICAgICAgICAgIHJlcGxhY2VyOiBleHRlbnNpb24sXG4gICAgICAgICAgICBzZWFyY2hWYWx1ZTogL1xcLmpzJC9nLFxuICAgICAgICAgICAgc3RyOiBmaWxlLnBhdGhcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGNvbnN0IG5ld1RleHQgPSByZXdyaXRlSW1wb3J0UGF0aEV4dGVuc2lvbnMoZmlsZS50ZXh0LCBleHRlbnNpb24pO1xuXG4gICAgICAgICAgYXdhaXQgd3JpdGVGaWxlKG5ld1BhdGgsIG5ld1RleHQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG59XG5cbi8qIHY4IGlnbm9yZSBzdG9wICovXG5cbi8qKlxuICogUmV3cml0ZXMgdGhlIGV4dGVuc2lvbiBvZiBldmVyeSBpbXBvcnQtbGlrZSBwYXRoIGluIGFuIGVtaXR0ZWQgbW9kdWxlJ3MgdGV4dCBmcm9tIGAudHNgIHRvIHRoZSB0YXJnZXRcbiAqIG91dHB1dCBleHRlbnNpb24gKGAubWpzYCAvIGAuY2pzYCksIHNvIHRoZSBtdWx0aS1maWxlIGBkaXN0L2xpYmAgYnVpbGQgcmVmZXJlbmNlcyBpdHMgcmVhbCBzaWJsaW5ncy5cbiAqXG4gKiBDb3ZlcnMgYHJlcXVpcmUoJ1x1MjAyNicpYCwgc3RhdGljIGBmcm9tIFwiXHUyMDI2XCJgLCBhbmQgZHluYW1pYyBgaW1wb3J0KFwiXHUyMDI2XCIpYCBvY2N1cnJlbmNlcy5cbiAqXG4gKiBAcGFyYW0gdGV4dCAtIFRoZSBlbWl0dGVkIG1vZHVsZSB0ZXh0IHRvIHJld3JpdGUuXG4gKiBAcGFyYW0gZXh0ZW5zaW9uIC0gVGhlIG91dHB1dCBleHRlbnNpb24gdG8gcmV3cml0ZSBgLnRzYCBwYXRocyB0byAoZS5nLiBgLm1qc2Agb3IgYC5janNgKS5cbiAqIEByZXR1cm5zIFRoZSByZXdyaXR0ZW4gbW9kdWxlIHRleHQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXdyaXRlSW1wb3J0UGF0aEV4dGVuc2lvbnModGV4dDogc3RyaW5nLCBleHRlbnNpb246IHN0cmluZyk6IHN0cmluZyB7XG4gIGxldCBuZXdUZXh0ID0gcmVwbGFjZUFsbCh7XG4gICAgcmVwbGFjZXI6ICh7IGNhcHR1cmVkR3JvdXBBcmdzOiBbaW1wb3J0UGF0aCA9ICcnXSB9KSA9PiBgcmVxdWlyZSgnJHtyZXdyaXRlVHNFeHRlbnNpb24oaW1wb3J0UGF0aCwgZXh0ZW5zaW9uKX0nKWAsXG4gICAgc2VhcmNoVmFsdWU6IC9yZXF1aXJlXFwoW1wiJ10oPzxJbXBvcnRQYXRoPi4rPylbXCInXVxcKS9nLFxuICAgIHN0cjogdGV4dFxuICB9KTtcblxuICBuZXdUZXh0ID0gcmVwbGFjZUFsbCh7XG4gICAgcmVwbGFjZXI6ICh7IGNhcHR1cmVkR3JvdXBBcmdzOiBbaW1wb3J0UGF0aCA9ICcnXSB9KSA9PiBgZnJvbSBcIiR7cmV3cml0ZVRzRXh0ZW5zaW9uKGltcG9ydFBhdGgsIGV4dGVuc2lvbil9XCJgLFxuICAgIHNlYXJjaFZhbHVlOiAvZnJvbSBcIig/PEltcG9ydFBhdGg+Lis/KVwiL2csXG4gICAgc3RyOiBuZXdUZXh0XG4gIH0pO1xuXG4gIG5ld1RleHQgPSByZXBsYWNlQWxsKHtcbiAgICByZXBsYWNlcjogKHsgY2FwdHVyZWRHcm91cEFyZ3M6IFtpbXBvcnRQYXRoID0gJyddIH0pID0+IGBpbXBvcnQoXCIke3Jld3JpdGVUc0V4dGVuc2lvbihpbXBvcnRQYXRoLCBleHRlbnNpb24pfVwiKWAsXG4gICAgc2VhcmNoVmFsdWU6IC9pbXBvcnRcXChbXCInXSg/PEltcG9ydFBhdGg+Lis/KVtcIiddXFwpL2csXG4gICAgc3RyOiBuZXdUZXh0XG4gIH0pO1xuXG4gIHJldHVybiBuZXdUZXh0O1xufVxuXG4vKipcbiAqIFJld3JpdGVzIGEgdHJhaWxpbmcgYC50c2AgZXh0ZW5zaW9uIGluIGEgc2luZ2xlIGltcG9ydCBwYXRoIHRvIHRoZSB0YXJnZXQgb3V0cHV0IGV4dGVuc2lvbi5cbiAqXG4gKiBAcGFyYW0gaW1wb3J0UGF0aCAtIFRoZSBjYXB0dXJlZCBpbXBvcnQgcGF0aC5cbiAqIEBwYXJhbSBleHRlbnNpb24gLSBUaGUgb3V0cHV0IGV4dGVuc2lvbiB0byByZXdyaXRlIGEgdHJhaWxpbmcgYC50c2AgdG8uXG4gKiBAcmV0dXJucyBUaGUgcmV3cml0dGVuIHBhdGguXG4gKi9cbmZ1bmN0aW9uIHJld3JpdGVUc0V4dGVuc2lvbihpbXBvcnRQYXRoOiBzdHJpbmcsIGV4dGVuc2lvbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJlcGxhY2VBbGwoe1xuICAgIHJlcGxhY2VyOiBleHRlbnNpb24sXG4gICAgc2VhcmNoVmFsdWU6IC9cXC50cyQvZyxcbiAgICBzdHI6IGltcG9ydFBhdGhcbiAgfSk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVFBLFNBQVMsaUJBQWlCO0FBRTFCLFNBQVMsa0JBQWtCO0FBQzNCLFNBQVMsaUNBQWlDO0FBVW5DLFNBQVMsc0JBQXNCLFdBQTJCO0FBQy9ELFNBQU87QUFBQSxJQUNMLE1BQU07QUFBQSxJQUNOLE1BQU0sT0FBYTtBQUNqQixZQUFNLE1BQU0sT0FBTyxXQUFXO0FBQzVCLG1CQUFXLFFBQVEsT0FBTyxlQUFlLENBQUMsR0FBRztBQUMzQyxjQUFJLENBQUMsS0FBSyxLQUFLLFNBQVMsMEJBQTBCLFdBQVcsS0FBSyxLQUFLLEtBQUssU0FBUywwQkFBMEIsWUFBWSxHQUFHO0FBQzVIO0FBQUEsVUFDRjtBQUVBLGdCQUFNLFVBQVUsV0FBVztBQUFBLFlBQ3pCLFVBQVU7QUFBQSxZQUNWLGFBQWE7QUFBQSxZQUNiLEtBQUssS0FBSztBQUFBLFVBQ1osQ0FBQztBQUVELGdCQUFNLFVBQVUsNEJBQTRCLEtBQUssTUFBTSxTQUFTO0FBRWhFLGdCQUFNLFVBQVUsU0FBUyxPQUFPO0FBQUEsUUFDbEM7QUFBQSxNQUNGLENBQUM7QUFBQSxJQUNIO0FBQUEsRUFDRjtBQUNGO0FBY08sU0FBUyw0QkFBNEIsTUFBYyxXQUEyQjtBQUNuRixNQUFJLFVBQVUsV0FBVztBQUFBLElBQ3ZCLFVBQVUsQ0FBQyxFQUFFLG1CQUFtQixDQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sWUFBWSxtQkFBbUIsWUFBWSxTQUFTLENBQUM7QUFBQSxJQUM3RyxhQUFhO0FBQUEsSUFDYixLQUFLO0FBQUEsRUFDUCxDQUFDO0FBRUQsWUFBVSxXQUFXO0FBQUEsSUFDbkIsVUFBVSxDQUFDLEVBQUUsbUJBQW1CLENBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxTQUFTLG1CQUFtQixZQUFZLFNBQVMsQ0FBQztBQUFBLElBQzFHLGFBQWE7QUFBQSxJQUNiLEtBQUs7QUFBQSxFQUNQLENBQUM7QUFFRCxZQUFVLFdBQVc7QUFBQSxJQUNuQixVQUFVLENBQUMsRUFBRSxtQkFBbUIsQ0FBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLFdBQVcsbUJBQW1CLFlBQVksU0FBUyxDQUFDO0FBQUEsSUFDNUcsYUFBYTtBQUFBLElBQ2IsS0FBSztBQUFBLEVBQ1AsQ0FBQztBQUVELFNBQU87QUFDVDtBQVNBLFNBQVMsbUJBQW1CLFlBQW9CLFdBQTJCO0FBQ3pFLFNBQU8sV0FBVztBQUFBLElBQ2hCLFVBQVU7QUFBQSxJQUNWLGFBQWE7QUFBQSxJQUNiLEtBQUs7QUFBQSxFQUNQLENBQUM7QUFDSDsiLAogICJuYW1lcyI6IFtdCn0K
77
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9idW5kbGVycy9lc2J1aWxkLWltcGwvY2hhbmdlLWV4dGVuc2lvbi1wbHVnaW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUaGlzIG1vZHVsZSBkZWZpbmVzIGFuIGVzYnVpbGQgcGx1Z2luIHRoYXQgY2hhbmdlcyB0aGUgZXh0ZW5zaW9uIG9mIEphdmFTY3JpcHQgZmlsZXMgYWZ0ZXIgdGhlIGJ1aWxkIHByb2Nlc3MuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBQbHVnaW4gfSBmcm9tICdlc2J1aWxkJztcblxuaW1wb3J0IHsgd3JpdGVGaWxlIH0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcyc7XG5cbmltcG9ydCB7IHJlcGxhY2VBbGwgfSBmcm9tICcuLi8uLi8uLi9zdHJpbmcudHMnO1xuaW1wb3J0IHsgT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocyB9IGZyb20gJy4uLy4uL29ic2lkaWFuLWRldi11dGlscy1yZXBvLXBhdGhzLnRzJztcblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIGVzYnVpbGQgcGx1Z2luIHRoYXQgcmV3cml0ZXMgZmlsZSBleHRlbnNpb25zIGF0IGJ1aWxkIHRpbWU7IHJlcXVpcmVzIGEgbGl2ZSBlc2J1aWxkIGNvbnRleHQuICovXG5cbi8qKlxuICogQ3JlYXRlcyBhbiBlc2J1aWxkIHBsdWdpbiB0aGF0IGNoYW5nZXMgdGhlIGV4dGVuc2lvbiBvZiBKYXZhU2NyaXB0IGZpbGVzIGFmdGVyIHRoZSBidWlsZCBwcm9jZXNzLlxuICpcbiAqIEBwYXJhbSBleHRlbnNpb24gLSBUaGUgZXh0ZW5zaW9uIHRvIGNoYW5nZSB0aGUgZmlsZXMgdG8uXG4gKiBAcmV0dXJucyBBbiBlc2J1aWxkIGBQbHVnaW5gIG9iamVjdCB0aGF0IGhhbmRsZXMgdGhlIHJlbmFtaW5nIGFuZCBtb2RpZmljYXRpb24gb2Ygb3V0cHV0IGZpbGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hhbmdlRXh0ZW5zaW9uUGx1Z2luKGV4dGVuc2lvbjogc3RyaW5nKTogUGx1Z2luIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnY2hhbmdlLWV4dGVuc2lvbicsXG4gICAgc2V0dXAoYnVpbGQpOiB2b2lkIHtcbiAgICAgIGJ1aWxkLm9uRW5kKGFzeW5jIChyZXN1bHQpID0+IHtcbiAgICAgICAgZm9yIChjb25zdCBmaWxlIG9mIHJlc3VsdC5vdXRwdXRGaWxlcyA/PyBbXSkge1xuICAgICAgICAgIGlmICghZmlsZS5wYXRoLmVuZHNXaXRoKE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuSnNFeHRlbnNpb24pIHx8IGZpbGUucGF0aC5lbmRzV2l0aChPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLkRqc0V4dGVuc2lvbikpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IG5ld1BhdGggPSByZXBsYWNlQWxsKHtcbiAgICAgICAgICAgICRzdHJpbmc6IGZpbGUucGF0aCxcbiAgICAgICAgICAgIHJlcGxhY2VyOiBleHRlbnNpb24sXG4gICAgICAgICAgICBzZWFyY2hWYWx1ZTogL1xcLmpzJC9nXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBjb25zdCBuZXdUZXh0ID0gcmV3cml0ZUltcG9ydFBhdGhFeHRlbnNpb25zKGZpbGUudGV4dCwgZXh0ZW5zaW9uKTtcblxuICAgICAgICAgIGF3YWl0IHdyaXRlRmlsZShuZXdQYXRoLCBuZXdUZXh0KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9O1xufVxuXG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuXG4vKipcbiAqIFJld3JpdGVzIHRoZSBleHRlbnNpb24gb2YgZXZlcnkgaW1wb3J0LWxpa2UgcGF0aCBpbiBhbiBlbWl0dGVkIG1vZHVsZSdzIHRleHQgZnJvbSBgLnRzYCB0byB0aGUgdGFyZ2V0XG4gKiBvdXRwdXQgZXh0ZW5zaW9uIChgLm1qc2AgLyBgLmNqc2ApLCBzbyB0aGUgbXVsdGktZmlsZSBgZGlzdC9saWJgIGJ1aWxkIHJlZmVyZW5jZXMgaXRzIHJlYWwgc2libGluZ3MuXG4gKlxuICogQ292ZXJzIGByZXF1aXJlKCdcdTIwMjYnKWAsIHN0YXRpYyBgZnJvbSBcIlx1MjAyNlwiYCwgYW5kIGR5bmFtaWMgYGltcG9ydChcIlx1MjAyNlwiKWAgb2NjdXJyZW5jZXMuXG4gKlxuICogQHBhcmFtIHRleHQgLSBUaGUgZW1pdHRlZCBtb2R1bGUgdGV4dCB0byByZXdyaXRlLlxuICogQHBhcmFtIGV4dGVuc2lvbiAtIFRoZSBvdXRwdXQgZXh0ZW5zaW9uIHRvIHJld3JpdGUgYC50c2AgcGF0aHMgdG8gKGUuZy4gYC5tanNgIG9yIGAuY2pzYCkuXG4gKiBAcmV0dXJucyBUaGUgcmV3cml0dGVuIG1vZHVsZSB0ZXh0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmV3cml0ZUltcG9ydFBhdGhFeHRlbnNpb25zKHRleHQ6IHN0cmluZywgZXh0ZW5zaW9uOiBzdHJpbmcpOiBzdHJpbmcge1xuICBsZXQgbmV3VGV4dCA9IHJlcGxhY2VBbGwoe1xuICAgICRzdHJpbmc6IHRleHQsXG4gICAgcmVwbGFjZXI6ICh7IGNhcHR1cmVkR3JvdXBBcmd1bWVudHM6IFtpbXBvcnRQYXRoID0gJyddIH0pID0+IGByZXF1aXJlKCcke3Jld3JpdGVUc0V4dGVuc2lvbihpbXBvcnRQYXRoLCBleHRlbnNpb24pfScpYCxcbiAgICBzZWFyY2hWYWx1ZTogL3JlcXVpcmVcXChbXCInXSg/PEltcG9ydFBhdGg+Lis/KVtcIiddXFwpL2dcbiAgfSk7XG5cbiAgbmV3VGV4dCA9IHJlcGxhY2VBbGwoe1xuICAgICRzdHJpbmc6IG5ld1RleHQsXG4gICAgcmVwbGFjZXI6ICh7IGNhcHR1cmVkR3JvdXBBcmd1bWVudHM6IFtpbXBvcnRQYXRoID0gJyddIH0pID0+IGBmcm9tIFwiJHtyZXdyaXRlVHNFeHRlbnNpb24oaW1wb3J0UGF0aCwgZXh0ZW5zaW9uKX1cImAsXG4gICAgc2VhcmNoVmFsdWU6IC9mcm9tIFwiKD88SW1wb3J0UGF0aD4uKz8pXCIvZ1xuICB9KTtcblxuICBuZXdUZXh0ID0gcmVwbGFjZUFsbCh7XG4gICAgJHN0cmluZzogbmV3VGV4dCxcbiAgICByZXBsYWNlcjogKHsgY2FwdHVyZWRHcm91cEFyZ3VtZW50czogW2ltcG9ydFBhdGggPSAnJ10gfSkgPT4gYGltcG9ydChcIiR7cmV3cml0ZVRzRXh0ZW5zaW9uKGltcG9ydFBhdGgsIGV4dGVuc2lvbil9XCIpYCxcbiAgICBzZWFyY2hWYWx1ZTogL2ltcG9ydFxcKFtcIiddKD88SW1wb3J0UGF0aD4uKz8pW1wiJ11cXCkvZ1xuICB9KTtcblxuICByZXR1cm4gbmV3VGV4dDtcbn1cblxuLyoqXG4gKiBSZXdyaXRlcyBhIHRyYWlsaW5nIGAudHNgIGV4dGVuc2lvbiBpbiBhIHNpbmdsZSBpbXBvcnQgcGF0aCB0byB0aGUgdGFyZ2V0IG91dHB1dCBleHRlbnNpb24uXG4gKlxuICogQHBhcmFtIGltcG9ydFBhdGggLSBUaGUgY2FwdHVyZWQgaW1wb3J0IHBhdGguXG4gKiBAcGFyYW0gZXh0ZW5zaW9uIC0gVGhlIG91dHB1dCBleHRlbnNpb24gdG8gcmV3cml0ZSBhIHRyYWlsaW5nIGAudHNgIHRvLlxuICogQHJldHVybnMgVGhlIHJld3JpdHRlbiBwYXRoLlxuICovXG5mdW5jdGlvbiByZXdyaXRlVHNFeHRlbnNpb24oaW1wb3J0UGF0aDogc3RyaW5nLCBleHRlbnNpb246IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiByZXBsYWNlQWxsKHtcbiAgICAkc3RyaW5nOiBpbXBvcnRQYXRoLFxuICAgIHJlcGxhY2VyOiBleHRlbnNpb24sXG4gICAgc2VhcmNoVmFsdWU6IC9cXC50cyQvZ1xuICB9KTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUUEsU0FBUyxpQkFBaUI7QUFFMUIsU0FBUyxrQkFBa0I7QUFDM0IsU0FBUyxpQ0FBaUM7QUFVbkMsU0FBUyxzQkFBc0IsV0FBMkI7QUFDL0QsU0FBTztBQUFBLElBQ0wsTUFBTTtBQUFBLElBQ04sTUFBTSxPQUFhO0FBQ2pCLFlBQU0sTUFBTSxPQUFPLFdBQVc7QUFDNUIsbUJBQVcsUUFBUSxPQUFPLGVBQWUsQ0FBQyxHQUFHO0FBQzNDLGNBQUksQ0FBQyxLQUFLLEtBQUssU0FBUywwQkFBMEIsV0FBVyxLQUFLLEtBQUssS0FBSyxTQUFTLDBCQUEwQixZQUFZLEdBQUc7QUFDNUg7QUFBQSxVQUNGO0FBRUEsZ0JBQU0sVUFBVSxXQUFXO0FBQUEsWUFDekIsU0FBUyxLQUFLO0FBQUEsWUFDZCxVQUFVO0FBQUEsWUFDVixhQUFhO0FBQUEsVUFDZixDQUFDO0FBRUQsZ0JBQU0sVUFBVSw0QkFBNEIsS0FBSyxNQUFNLFNBQVM7QUFFaEUsZ0JBQU0sVUFBVSxTQUFTLE9BQU87QUFBQSxRQUNsQztBQUFBLE1BQ0YsQ0FBQztBQUFBLElBQ0g7QUFBQSxFQUNGO0FBQ0Y7QUFjTyxTQUFTLDRCQUE0QixNQUFjLFdBQTJCO0FBQ25GLE1BQUksVUFBVSxXQUFXO0FBQUEsSUFDdkIsU0FBUztBQUFBLElBQ1QsVUFBVSxDQUFDLEVBQUUsd0JBQXdCLENBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxZQUFZLG1CQUFtQixZQUFZLFNBQVMsQ0FBQztBQUFBLElBQ2xILGFBQWE7QUFBQSxFQUNmLENBQUM7QUFFRCxZQUFVLFdBQVc7QUFBQSxJQUNuQixTQUFTO0FBQUEsSUFDVCxVQUFVLENBQUMsRUFBRSx3QkFBd0IsQ0FBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLFNBQVMsbUJBQW1CLFlBQVksU0FBUyxDQUFDO0FBQUEsSUFDL0csYUFBYTtBQUFBLEVBQ2YsQ0FBQztBQUVELFlBQVUsV0FBVztBQUFBLElBQ25CLFNBQVM7QUFBQSxJQUNULFVBQVUsQ0FBQyxFQUFFLHdCQUF3QixDQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sV0FBVyxtQkFBbUIsWUFBWSxTQUFTLENBQUM7QUFBQSxJQUNqSCxhQUFhO0FBQUEsRUFDZixDQUFDO0FBRUQsU0FBTztBQUNUO0FBU0EsU0FBUyxtQkFBbUIsWUFBb0IsV0FBMkI7QUFDekUsU0FBTyxXQUFXO0FBQUEsSUFDaEIsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLElBQ1YsYUFBYTtBQUFBLEVBQ2YsQ0FBQztBQUNIOyIsCiAgIm5hbWVzIjogW10KfQo=