obsidian-dev-utils 80.1.0 → 82.0.0-beta.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 (398) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/dist/lib/cjs/abort-controller.cjs +12 -9
  3. package/dist/lib/cjs/abort-controller.d.cts +2 -2
  4. package/dist/lib/cjs/async-events.cjs +9 -1
  5. package/dist/lib/cjs/async-events.d.cts +9 -1
  6. package/dist/lib/cjs/async.cjs +93 -34
  7. package/dist/lib/cjs/async.d.cts +87 -17
  8. package/dist/lib/cjs/codemirror/state-field-spec.d.cts +1 -1
  9. package/dist/lib/cjs/css-class.cjs +6 -1
  10. package/dist/lib/cjs/css-class.d.cts +20 -0
  11. package/dist/lib/cjs/debug.cjs +26 -9
  12. package/dist/lib/cjs/debug.d.cts +24 -6
  13. package/dist/lib/cjs/disposable.cjs +234 -0
  14. package/dist/lib/cjs/disposable.d.cts +124 -0
  15. package/dist/lib/cjs/error.cjs +29 -18
  16. package/dist/lib/cjs/error.d.cts +23 -7
  17. package/dist/lib/cjs/function.d.cts +1 -1
  18. package/dist/lib/cjs/html-element.cjs +9 -6
  19. package/dist/lib/cjs/html-element.d.cts +5 -3
  20. package/dist/lib/cjs/index.cjs +4 -1
  21. package/dist/lib/cjs/index.d.cts +1 -0
  22. package/dist/lib/cjs/library.cjs +2 -2
  23. package/dist/lib/cjs/object-utils.cjs +233 -128
  24. package/dist/lib/cjs/object-utils.d.cts +38 -13
  25. package/dist/lib/cjs/obsidian/@types/dataview/api/plugin-api.d.cts +1 -1
  26. package/dist/lib/cjs/obsidian/@types/dataview/data-index/index.d.cts +1 -1
  27. package/dist/lib/cjs/obsidian/@types/dataview/data-model/markdown.d.cts +2 -2
  28. package/dist/lib/cjs/obsidian/@types/dataview/data-model/serialized/markdown.d.cts +2 -2
  29. package/dist/lib/cjs/obsidian/@types/dataview/index.d.cts +1 -1
  30. package/dist/lib/cjs/obsidian/@types/dataview/query/engine.d.cts +1 -1
  31. package/dist/lib/cjs/obsidian/@types/dataview/typings/obsidian-ex.d.cts +1 -1
  32. package/dist/lib/cjs/obsidian/@types/dataview/ui/lp-render.d.cts +1 -1
  33. package/dist/lib/cjs/obsidian/@types/dataview/ui/markdown.d.cts +1 -1
  34. package/dist/lib/cjs/obsidian/@types/dataview/ui/views/calendar-view.d.cts +1 -1
  35. package/dist/lib/cjs/obsidian/@types/dataview/ui/views/inline-view.d.cts +1 -1
  36. package/dist/lib/cjs/obsidian/@types/dataview/ui/views/list-view.d.cts +2 -2
  37. package/dist/lib/cjs/obsidian/@types/dataview/ui/views/table-view.d.cts +2 -2
  38. package/dist/lib/cjs/obsidian/@types/dataview/ui/views/task-view.d.cts +1 -1
  39. package/dist/lib/cjs/obsidian/active-file-provider.d.cts +1 -1
  40. package/dist/lib/cjs/obsidian/app.d.cts +1 -1
  41. package/dist/lib/cjs/obsidian/async-with-notice.cjs +9 -6
  42. package/dist/lib/cjs/obsidian/async-with-notice.d.cts +16 -3
  43. package/dist/lib/cjs/obsidian/attachment-path.cjs +45 -13
  44. package/dist/lib/cjs/obsidian/attachment-path.d.cts +47 -9
  45. package/dist/lib/cjs/obsidian/backlink.cjs +6 -6
  46. package/dist/lib/cjs/obsidian/backlink.d.cts +6 -2
  47. package/dist/lib/cjs/obsidian/bases-view-registrar.d.cts +1 -1
  48. package/dist/lib/cjs/obsidian/callout.cjs +1 -1
  49. package/dist/lib/cjs/obsidian/callout.d.cts +8 -0
  50. package/dist/lib/cjs/obsidian/case-insensitive-file-index.d.cts +1 -1
  51. package/dist/lib/cjs/obsidian/code-block-markdown-information.d.cts +1 -1
  52. package/dist/lib/cjs/obsidian/command-handlers/abstract-file-command-handler.cjs +53 -16
  53. package/dist/lib/cjs/obsidian/command-handlers/abstract-file-command-handler.d.cts +84 -10
  54. package/dist/lib/cjs/obsidian/command-handlers/command-handler.d.cts +1 -1
  55. package/dist/lib/cjs/obsidian/command-handlers/editor-command-handler.cjs +25 -5
  56. package/dist/lib/cjs/obsidian/command-handlers/editor-command-handler.d.cts +38 -2
  57. package/dist/lib/cjs/obsidian/command-handlers/file-command-handler.cjs +33 -19
  58. package/dist/lib/cjs/obsidian/command-handlers/file-command-handler.d.cts +45 -19
  59. package/dist/lib/cjs/obsidian/command-handlers/folder-command-handler.cjs +33 -19
  60. package/dist/lib/cjs/obsidian/command-handlers/folder-command-handler.d.cts +45 -19
  61. package/dist/lib/cjs/obsidian/command-handlers/global-command-handler.d.cts +2 -2
  62. package/dist/lib/cjs/obsidian/command-handlers/open-settings-command-handler.d.cts +1 -1
  63. package/dist/lib/cjs/obsidian/command-registrar.d.cts +1 -1
  64. package/dist/lib/cjs/obsidian/components/all-windows-event-component.cjs +17 -9
  65. package/dist/lib/cjs/obsidian/components/all-windows-event-component.d.cts +49 -9
  66. package/dist/lib/cjs/obsidian/components/async-error-handler-component.cjs +5 -2
  67. package/dist/lib/cjs/obsidian/components/case-insensitive-file-index-component.d.cts +1 -1
  68. package/dist/lib/cjs/obsidian/components/disposable-component.cjs +5 -10
  69. package/dist/lib/cjs/obsidian/components/disposable-component.d.cts +0 -7
  70. package/dist/lib/cjs/obsidian/components/embed-extensions-component.d.cts +2 -2
  71. package/dist/lib/cjs/obsidian/components/layout-ready-component.d.cts +2 -2
  72. package/dist/lib/cjs/obsidian/components/menu-event-registrar-component.d.cts +1 -1
  73. package/dist/lib/cjs/obsidian/components/monkey-around-component.d.cts +1 -1
  74. package/dist/lib/cjs/obsidian/components/plugin-context-component.d.cts +1 -1
  75. package/dist/lib/cjs/obsidian/components/plugin-notice-component.cjs +1 -1
  76. package/dist/lib/cjs/obsidian/components/plugin-notice-component.d.cts +3 -2
  77. package/dist/lib/cjs/obsidian/components/plugin-settings-component.cjs +24 -8
  78. package/dist/lib/cjs/obsidian/components/plugin-settings-component.d.cts +26 -5
  79. package/dist/lib/cjs/obsidian/components/plugin-settings-tab-component.d.cts +1 -1
  80. package/dist/lib/cjs/obsidian/components/registry-component.d.cts +1 -1
  81. package/dist/lib/cjs/obsidian/components/rename-delete-handler-component.cjs +195 -72
  82. package/dist/lib/cjs/obsidian/components/rename-delete-handler-component.d.cts +4 -1
  83. package/dist/lib/cjs/obsidian/constructors/getDomEventsHandlersConstructor.d.cts +2 -2
  84. package/dist/lib/cjs/obsidian/data-handler.d.cts +1 -1
  85. package/dist/lib/cjs/obsidian/dataview-link.cjs +7 -2
  86. package/dist/lib/cjs/obsidian/dataview-link.d.cts +22 -5
  87. package/dist/lib/cjs/obsidian/dataview.cjs +27 -10
  88. package/dist/lib/cjs/obsidian/dataview.d.cts +32 -7
  89. package/dist/lib/cjs/obsidian/editor-extension-registrar.d.cts +1 -1
  90. package/dist/lib/cjs/obsidian/editor-lock.cjs +245 -0
  91. package/dist/lib/cjs/obsidian/editor-lock.d.cts +57 -0
  92. package/dist/lib/cjs/obsidian/editor.cjs +7 -1
  93. package/dist/lib/cjs/obsidian/editor.d.cts +3 -2
  94. package/dist/lib/cjs/obsidian/file-change.cjs +103 -27
  95. package/dist/lib/cjs/obsidian/file-change.d.cts +55 -14
  96. package/dist/lib/cjs/obsidian/file-manager.cjs +61 -32
  97. package/dist/lib/cjs/obsidian/file-manager.d.cts +65 -15
  98. package/dist/lib/cjs/obsidian/file-system.cjs +122 -23
  99. package/dist/lib/cjs/obsidian/file-system.d.cts +189 -40
  100. package/dist/lib/cjs/obsidian/frontmatter-link-cache-with-offsets.d.cts +1 -1
  101. package/dist/lib/cjs/obsidian/frontmatter.cjs +7 -2
  102. package/dist/lib/cjs/obsidian/hover-link-source-registrar.d.cts +1 -1
  103. package/dist/lib/cjs/obsidian/i18n/i18n.d.cts +1 -1
  104. package/dist/lib/cjs/obsidian/i18n/locales/en.cjs +4 -1
  105. package/dist/lib/cjs/obsidian/i18n/locales/en.d.cts +3 -0
  106. package/dist/lib/cjs/obsidian/i18n/locales/translations-map.d.cts +3 -0
  107. package/dist/lib/cjs/obsidian/index.cjs +4 -1
  108. package/dist/lib/cjs/obsidian/index.d.cts +1 -0
  109. package/dist/lib/cjs/obsidian/link.cjs +326 -129
  110. package/dist/lib/cjs/obsidian/link.d.cts +133 -36
  111. package/dist/lib/cjs/obsidian/logger.cjs +48 -22
  112. package/dist/lib/cjs/obsidian/logger.d.cts +27 -6
  113. package/dist/lib/cjs/obsidian/loop.cjs +14 -4
  114. package/dist/lib/cjs/obsidian/loop.d.cts +27 -8
  115. package/dist/lib/cjs/obsidian/markdown-code-block-processor-registrar.d.cts +2 -2
  116. package/dist/lib/cjs/obsidian/markdown-code-block-processor.cjs +155 -107
  117. package/dist/lib/cjs/obsidian/markdown-code-block-processor.d.cts +16 -6
  118. package/dist/lib/cjs/obsidian/markdown-post-processor-registrar.cjs +1 -1
  119. package/dist/lib/cjs/obsidian/markdown-post-processor-registrar.d.cts +5 -3
  120. package/dist/lib/cjs/obsidian/markdown-view.d.cts +1 -1
  121. package/dist/lib/cjs/obsidian/markdown.cjs +40 -11
  122. package/dist/lib/cjs/obsidian/markdown.d.cts +85 -17
  123. package/dist/lib/cjs/obsidian/menu-event-registrar.d.cts +1 -1
  124. package/dist/lib/cjs/obsidian/metadata-cache.cjs +88 -32
  125. package/dist/lib/cjs/obsidian/metadata-cache.d.cts +42 -32
  126. package/dist/lib/cjs/obsidian/modals/alert.cjs +1 -1
  127. package/dist/lib/cjs/obsidian/modals/alert.d.cts +2 -0
  128. package/dist/lib/cjs/obsidian/modals/confirm.cjs +1 -1
  129. package/dist/lib/cjs/obsidian/modals/confirm.d.cts +2 -0
  130. package/dist/lib/cjs/obsidian/modals/index.cjs +4 -1
  131. package/dist/lib/cjs/obsidian/modals/index.d.cts +1 -0
  132. package/dist/lib/cjs/obsidian/modals/minimizable-modal.cjs +234 -0
  133. package/dist/lib/cjs/obsidian/modals/minimizable-modal.d.cts +74 -0
  134. package/dist/lib/cjs/obsidian/modals/modal.d.cts +1 -1
  135. package/dist/lib/cjs/obsidian/modals/prompt.cjs +1 -1
  136. package/dist/lib/cjs/obsidian/modals/prompt.d.cts +7 -1
  137. package/dist/lib/cjs/obsidian/modals/select-item.cjs +1 -1
  138. package/dist/lib/cjs/obsidian/modals/select-item.d.cts +2 -0
  139. package/dist/lib/cjs/obsidian/obsidian-protocol-handler-registrar.d.cts +2 -2
  140. package/dist/lib/cjs/obsidian/obsidian-settings.d.cts +1 -1
  141. package/dist/lib/cjs/obsidian/path-settings.cjs +5 -2
  142. package/dist/lib/cjs/obsidian/plugin/plugin-context.d.cts +1 -1
  143. package/dist/lib/cjs/obsidian/plugin/plugin-event-source.cjs +5 -1
  144. package/dist/lib/cjs/obsidian/plugin/plugin-event-source.d.cts +5 -1
  145. package/dist/lib/cjs/obsidian/plugin/plugin-settings-tab.cjs +15 -7
  146. package/dist/lib/cjs/obsidian/plugin/plugin-settings-tab.d.cts +51 -14
  147. package/dist/lib/cjs/obsidian/plugin/plugin.cjs +22 -16
  148. package/dist/lib/cjs/obsidian/plugin/plugin.d.cts +6 -6
  149. package/dist/lib/cjs/obsidian/plugin-cli-handler-registrar.d.cts +2 -2
  150. package/dist/lib/cjs/obsidian/queue.cjs +9 -7
  151. package/dist/lib/cjs/obsidian/queue.d.cts +15 -3
  152. package/dist/lib/cjs/obsidian/react/app-context.d.cts +1 -1
  153. package/dist/lib/cjs/obsidian/reference.d.cts +1 -1
  154. package/dist/lib/cjs/obsidian/resource-url.cjs +7 -2
  155. package/dist/lib/cjs/obsidian/resource-url.d.cts +20 -5
  156. package/dist/lib/cjs/obsidian/ribbon-icon-registrar.d.cts +1 -1
  157. package/dist/lib/cjs/obsidian/setting-components/value-component-with-change-tracking.d.cts +1 -1
  158. package/dist/lib/cjs/obsidian/setting-ex.d.cts +1 -1
  159. package/dist/lib/cjs/obsidian/status-bar-item-registrar.cjs +4 -2
  160. package/dist/lib/cjs/obsidian/status-bar-item-registrar.d.cts +6 -2
  161. package/dist/lib/cjs/obsidian/vault-delete.cjs +19 -15
  162. package/dist/lib/cjs/obsidian/vault-delete.d.cts +12 -7
  163. package/dist/lib/cjs/obsidian/vault.cjs +116 -59
  164. package/dist/lib/cjs/obsidian/vault.d.cts +188 -45
  165. package/dist/lib/cjs/obsidian/view-registrar.d.cts +1 -1
  166. package/dist/lib/cjs/obsidian/workspace.d.cts +1 -1
  167. package/dist/lib/cjs/path.cjs +12 -5
  168. package/dist/lib/cjs/path.d.cts +15 -3
  169. package/dist/lib/cjs/reg-exp.cjs +101 -78
  170. package/dist/lib/cjs/script-utils/build.cjs +9 -5
  171. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/change-extension-plugin.cjs +34 -14
  172. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/change-extension-plugin.d.cts +1 -1
  173. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.cjs +20 -5
  174. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.d.cts +24 -6
  175. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/custom-esbuild-options-plugin.d.cts +1 -1
  176. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/dependency.cjs +11 -4
  177. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/fix-esm-plugin.cjs +6 -2
  178. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/fix-esm-plugin.d.cts +1 -1
  179. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/fix-source-maps-plugin.cjs +31 -12
  180. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/fix-source-maps-plugin.d.cts +20 -5
  181. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.cjs +7 -7
  182. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.d.cts +1 -1
  183. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/preprocess-plugin.cjs +12 -3
  184. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/preprocess-plugin.d.cts +1 -1
  185. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/rename-css-plugin.d.cts +1 -1
  186. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/svelte-wrapper-plugin.d.cts +1 -1
  187. package/dist/lib/cjs/script-utils/check-project-types.cjs +5 -1
  188. package/dist/lib/cjs/script-utils/check-project-types.d.cts +10 -2
  189. package/dist/lib/cjs/script-utils/cli-utils.cjs +6 -2
  190. package/dist/lib/cjs/script-utils/cli-utils.d.cts +1 -1
  191. package/dist/lib/cjs/script-utils/commitlint-config.d.cts +1 -1
  192. package/dist/lib/cjs/script-utils/exec.cjs +47 -12
  193. package/dist/lib/cjs/script-utils/exec.d.cts +12 -0
  194. package/dist/lib/cjs/script-utils/formatters/dprint.cjs +3 -3
  195. package/dist/lib/cjs/script-utils/formatters/dprint.d.cts +2 -0
  196. package/dist/lib/cjs/script-utils/fs.d.cts +1 -1
  197. package/dist/lib/cjs/script-utils/json.cjs +9 -5
  198. package/dist/lib/cjs/script-utils/json.d.cts +41 -9
  199. package/dist/lib/cjs/script-utils/linters/eslint-config.d.cts +1 -1
  200. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.d.cts +1 -1
  201. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-unused-params-members.cjs +8 -3
  202. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-unused-params-members.d.cts +1 -1
  203. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-used-underscore-variables.d.cts +1 -1
  204. package/dist/lib/cjs/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.d.cts +1 -1
  205. package/dist/lib/cjs/script-utils/linters/eslint-rules/params-options-name-match.d.cts +1 -1
  206. package/dist/lib/cjs/script-utils/linters/eslint-rules/prefer-noop-async.d.cts +1 -1
  207. package/dist/lib/cjs/script-utils/linters/eslint-rules/readonly-params-options-result-members.d.cts +1 -1
  208. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-component-suffix.cjs +27 -7
  209. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-component-suffix.d.cts +1 -1
  210. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-method-template.cjs +7 -3
  211. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-method-template.d.cts +1 -1
  212. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-super-call.cjs +8 -3
  213. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-super-call.d.cts +1 -1
  214. package/dist/lib/cjs/script-utils/linters/eslint-rules/rule-tester-helper.d.cts +2 -2
  215. package/dist/lib/cjs/script-utils/linters/eslint.cjs +3 -3
  216. package/dist/lib/cjs/script-utils/linters/eslint.d.cts +2 -0
  217. package/dist/lib/cjs/script-utils/linters/markdownlint-types/@types/markdownlint-cli2-config-schema.d.cts +1 -1
  218. package/dist/lib/cjs/script-utils/linters/markdownlint.cjs +3 -3
  219. package/dist/lib/cjs/script-utils/linters/markdownlint.d.cts +2 -0
  220. package/dist/lib/cjs/script-utils/linters/over-exposure.cjs +72 -30
  221. package/dist/lib/cjs/script-utils/linters/over-exposure.d.cts +9 -1
  222. package/dist/lib/cjs/script-utils/npm-publish.cjs +2 -2
  223. package/dist/lib/cjs/script-utils/npm.cjs +18 -9
  224. package/dist/lib/cjs/script-utils/npm.d.cts +3 -1
  225. package/dist/lib/cjs/script-utils/root.cjs +20 -5
  226. package/dist/lib/cjs/script-utils/root.d.cts +45 -9
  227. package/dist/lib/cjs/script-utils/test-runners/vitest.cjs +1 -1
  228. package/dist/lib/cjs/script-utils/test-runners/vitest.d.cts +2 -0
  229. package/dist/lib/cjs/script-utils/validate-declarations.cjs +8 -44
  230. package/dist/lib/cjs/script-utils/validate-declarations.d.cts +22 -9
  231. package/dist/lib/cjs/script-utils/version.cjs +36 -19
  232. package/dist/lib/cjs/script-utils/version.d.cts +20 -7
  233. package/dist/lib/cjs/strict-proxy.cjs +10 -1
  234. package/dist/lib/cjs/string.cjs +63 -22
  235. package/dist/lib/cjs/string.d.cts +194 -40
  236. package/dist/lib/cjs/value-provider.d.cts +1 -1
  237. package/dist/lib/esm/abort-controller.d.mts +2 -2
  238. package/dist/lib/esm/abort-controller.mjs +12 -9
  239. package/dist/lib/esm/async-events.d.mts +8 -0
  240. package/dist/lib/esm/async-events.mjs +9 -1
  241. package/dist/lib/esm/async.d.mts +86 -16
  242. package/dist/lib/esm/async.mjs +93 -34
  243. package/dist/lib/esm/css-class.d.mts +20 -0
  244. package/dist/lib/esm/css-class.mjs +6 -1
  245. package/dist/lib/esm/debug.d.mts +23 -5
  246. package/dist/lib/esm/debug.mjs +26 -9
  247. package/dist/lib/esm/disposable.d.mts +124 -0
  248. package/dist/lib/esm/disposable.mjs +122 -0
  249. package/dist/lib/esm/error.d.mts +23 -7
  250. package/dist/lib/esm/error.mjs +29 -18
  251. package/dist/lib/esm/html-element.d.mts +4 -2
  252. package/dist/lib/esm/html-element.mjs +9 -6
  253. package/dist/lib/esm/index.d.mts +1 -0
  254. package/dist/lib/esm/index.mjs +3 -1
  255. package/dist/lib/esm/library.mjs +2 -2
  256. package/dist/lib/esm/object-utils.d.mts +37 -12
  257. package/dist/lib/esm/object-utils.mjs +233 -128
  258. package/dist/lib/esm/obsidian/async-with-notice.d.mts +15 -2
  259. package/dist/lib/esm/obsidian/async-with-notice.mjs +9 -6
  260. package/dist/lib/esm/obsidian/attachment-path.d.mts +46 -8
  261. package/dist/lib/esm/obsidian/attachment-path.mjs +45 -13
  262. package/dist/lib/esm/obsidian/backlink.d.mts +6 -2
  263. package/dist/lib/esm/obsidian/backlink.mjs +6 -6
  264. package/dist/lib/esm/obsidian/callout.d.mts +8 -0
  265. package/dist/lib/esm/obsidian/callout.mjs +1 -1
  266. package/dist/lib/esm/obsidian/command-handlers/abstract-file-command-handler.d.mts +83 -9
  267. package/dist/lib/esm/obsidian/command-handlers/abstract-file-command-handler.mjs +53 -16
  268. package/dist/lib/esm/obsidian/command-handlers/editor-command-handler.d.mts +37 -1
  269. package/dist/lib/esm/obsidian/command-handlers/editor-command-handler.mjs +25 -5
  270. package/dist/lib/esm/obsidian/command-handlers/file-command-handler.d.mts +43 -17
  271. package/dist/lib/esm/obsidian/command-handlers/file-command-handler.mjs +33 -19
  272. package/dist/lib/esm/obsidian/command-handlers/folder-command-handler.d.mts +43 -17
  273. package/dist/lib/esm/obsidian/command-handlers/folder-command-handler.mjs +33 -19
  274. package/dist/lib/esm/obsidian/components/all-windows-event-component.d.mts +48 -8
  275. package/dist/lib/esm/obsidian/components/all-windows-event-component.mjs +17 -9
  276. package/dist/lib/esm/obsidian/components/async-error-handler-component.mjs +5 -2
  277. package/dist/lib/esm/obsidian/components/disposable-component.d.mts +0 -7
  278. package/dist/lib/esm/obsidian/components/disposable-component.mjs +3 -7
  279. package/dist/lib/esm/obsidian/components/plugin-notice-component.d.mts +3 -2
  280. package/dist/lib/esm/obsidian/components/plugin-notice-component.mjs +1 -1
  281. package/dist/lib/esm/obsidian/components/plugin-settings-component.d.mts +25 -4
  282. package/dist/lib/esm/obsidian/components/plugin-settings-component.mjs +24 -8
  283. package/dist/lib/esm/obsidian/components/rename-delete-handler-component.d.mts +3 -0
  284. package/dist/lib/esm/obsidian/components/rename-delete-handler-component.mjs +197 -79
  285. package/dist/lib/esm/obsidian/dataview-link.d.mts +22 -5
  286. package/dist/lib/esm/obsidian/dataview-link.mjs +7 -2
  287. package/dist/lib/esm/obsidian/dataview.d.mts +31 -6
  288. package/dist/lib/esm/obsidian/dataview.mjs +27 -10
  289. package/dist/lib/esm/obsidian/editor-lock.d.mts +57 -0
  290. package/dist/lib/esm/obsidian/editor-lock.mjs +141 -0
  291. package/dist/lib/esm/obsidian/editor.d.mts +2 -1
  292. package/dist/lib/esm/obsidian/editor.mjs +7 -1
  293. package/dist/lib/esm/obsidian/file-change.d.mts +54 -13
  294. package/dist/lib/esm/obsidian/file-change.mjs +104 -27
  295. package/dist/lib/esm/obsidian/file-manager.d.mts +63 -13
  296. package/dist/lib/esm/obsidian/file-manager.mjs +65 -33
  297. package/dist/lib/esm/obsidian/file-system.d.mts +188 -39
  298. package/dist/lib/esm/obsidian/file-system.mjs +122 -23
  299. package/dist/lib/esm/obsidian/frontmatter.mjs +7 -2
  300. package/dist/lib/esm/obsidian/i18n/locales/en.d.mts +3 -0
  301. package/dist/lib/esm/obsidian/i18n/locales/en.mjs +4 -1
  302. package/dist/lib/esm/obsidian/i18n/locales/translations-map.d.mts +3 -0
  303. package/dist/lib/esm/obsidian/index.d.mts +1 -0
  304. package/dist/lib/esm/obsidian/index.mjs +3 -1
  305. package/dist/lib/esm/obsidian/link.d.mts +131 -34
  306. package/dist/lib/esm/obsidian/link.mjs +327 -130
  307. package/dist/lib/esm/obsidian/logger.d.mts +26 -5
  308. package/dist/lib/esm/obsidian/logger.mjs +48 -22
  309. package/dist/lib/esm/obsidian/loop.d.mts +26 -7
  310. package/dist/lib/esm/obsidian/loop.mjs +14 -4
  311. package/dist/lib/esm/obsidian/markdown-code-block-processor.d.mts +15 -5
  312. package/dist/lib/esm/obsidian/markdown-code-block-processor.mjs +155 -107
  313. package/dist/lib/esm/obsidian/markdown-post-processor-registrar.d.mts +3 -1
  314. package/dist/lib/esm/obsidian/markdown-post-processor-registrar.mjs +1 -1
  315. package/dist/lib/esm/obsidian/markdown.d.mts +84 -16
  316. package/dist/lib/esm/obsidian/markdown.mjs +40 -11
  317. package/dist/lib/esm/obsidian/metadata-cache.d.mts +40 -30
  318. package/dist/lib/esm/obsidian/metadata-cache.mjs +88 -30
  319. package/dist/lib/esm/obsidian/modals/alert.d.mts +2 -0
  320. package/dist/lib/esm/obsidian/modals/alert.mjs +1 -1
  321. package/dist/lib/esm/obsidian/modals/confirm.d.mts +2 -0
  322. package/dist/lib/esm/obsidian/modals/confirm.mjs +1 -1
  323. package/dist/lib/esm/obsidian/modals/index.d.mts +1 -0
  324. package/dist/lib/esm/obsidian/modals/index.mjs +3 -1
  325. package/dist/lib/esm/obsidian/modals/minimizable-modal.d.mts +74 -0
  326. package/dist/lib/esm/obsidian/modals/minimizable-modal.mjs +126 -0
  327. package/dist/lib/esm/obsidian/modals/prompt.d.mts +6 -0
  328. package/dist/lib/esm/obsidian/modals/prompt.mjs +1 -1
  329. package/dist/lib/esm/obsidian/modals/select-item.d.mts +2 -0
  330. package/dist/lib/esm/obsidian/modals/select-item.mjs +1 -1
  331. package/dist/lib/esm/obsidian/path-settings.mjs +5 -2
  332. package/dist/lib/esm/obsidian/plugin/plugin-event-source.d.mts +4 -0
  333. package/dist/lib/esm/obsidian/plugin/plugin-event-source.mjs +5 -1
  334. package/dist/lib/esm/obsidian/plugin/plugin-settings-tab.d.mts +48 -11
  335. package/dist/lib/esm/obsidian/plugin/plugin-settings-tab.mjs +15 -7
  336. package/dist/lib/esm/obsidian/plugin/plugin.d.mts +4 -4
  337. package/dist/lib/esm/obsidian/plugin/plugin.mjs +24 -21
  338. package/dist/lib/esm/obsidian/queue.d.mts +14 -2
  339. package/dist/lib/esm/obsidian/queue.mjs +9 -7
  340. package/dist/lib/esm/obsidian/resource-url.d.mts +19 -4
  341. package/dist/lib/esm/obsidian/resource-url.mjs +7 -2
  342. package/dist/lib/esm/obsidian/status-bar-item-registrar.d.mts +6 -2
  343. package/dist/lib/esm/obsidian/status-bar-item-registrar.mjs +4 -2
  344. package/dist/lib/esm/obsidian/vault-delete.d.mts +11 -6
  345. package/dist/lib/esm/obsidian/vault-delete.mjs +19 -15
  346. package/dist/lib/esm/obsidian/vault.d.mts +187 -44
  347. package/dist/lib/esm/obsidian/vault.mjs +116 -59
  348. package/dist/lib/esm/path.d.mts +15 -3
  349. package/dist/lib/esm/path.mjs +12 -5
  350. package/dist/lib/esm/reg-exp.mjs +101 -78
  351. package/dist/lib/esm/script-utils/build.mjs +9 -5
  352. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/change-extension-plugin.mjs +34 -14
  353. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.d.mts +23 -5
  354. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.mjs +20 -5
  355. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/dependency.mjs +11 -4
  356. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/fix-esm-plugin.mjs +6 -2
  357. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/fix-source-maps-plugin.d.mts +19 -4
  358. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/fix-source-maps-plugin.mjs +31 -12
  359. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.mjs +7 -7
  360. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/preprocess-plugin.mjs +12 -3
  361. package/dist/lib/esm/script-utils/check-project-types.d.mts +9 -1
  362. package/dist/lib/esm/script-utils/check-project-types.mjs +5 -1
  363. package/dist/lib/esm/script-utils/cli-utils.mjs +6 -2
  364. package/dist/lib/esm/script-utils/exec.d.mts +12 -0
  365. package/dist/lib/esm/script-utils/exec.mjs +47 -12
  366. package/dist/lib/esm/script-utils/formatters/dprint.d.mts +2 -0
  367. package/dist/lib/esm/script-utils/formatters/dprint.mjs +3 -3
  368. package/dist/lib/esm/script-utils/json.d.mts +40 -8
  369. package/dist/lib/esm/script-utils/json.mjs +9 -5
  370. package/dist/lib/esm/script-utils/linters/eslint-rules/no-unused-params-members.mjs +8 -3
  371. package/dist/lib/esm/script-utils/linters/eslint-rules/require-component-suffix.mjs +27 -7
  372. package/dist/lib/esm/script-utils/linters/eslint-rules/require-method-template.mjs +7 -3
  373. package/dist/lib/esm/script-utils/linters/eslint-rules/require-super-call.mjs +8 -3
  374. package/dist/lib/esm/script-utils/linters/eslint.d.mts +2 -0
  375. package/dist/lib/esm/script-utils/linters/eslint.mjs +3 -3
  376. package/dist/lib/esm/script-utils/linters/markdownlint-types/@types/markdownlint-cli2-config-schema.d.mts +1 -1
  377. package/dist/lib/esm/script-utils/linters/markdownlint.d.mts +2 -0
  378. package/dist/lib/esm/script-utils/linters/markdownlint.mjs +3 -3
  379. package/dist/lib/esm/script-utils/linters/over-exposure.d.mts +8 -0
  380. package/dist/lib/esm/script-utils/linters/over-exposure.mjs +72 -30
  381. package/dist/lib/esm/script-utils/npm-publish.mjs +2 -2
  382. package/dist/lib/esm/script-utils/npm.d.mts +2 -0
  383. package/dist/lib/esm/script-utils/npm.mjs +18 -9
  384. package/dist/lib/esm/script-utils/root.d.mts +45 -9
  385. package/dist/lib/esm/script-utils/root.mjs +20 -5
  386. package/dist/lib/esm/script-utils/test-runners/vitest.d.mts +2 -0
  387. package/dist/lib/esm/script-utils/test-runners/vitest.mjs +1 -1
  388. package/dist/lib/esm/script-utils/validate-declarations.d.mts +22 -9
  389. package/dist/lib/esm/script-utils/validate-declarations.mjs +8 -51
  390. package/dist/lib/esm/script-utils/version.d.mts +20 -7
  391. package/dist/lib/esm/script-utils/version.mjs +36 -19
  392. package/dist/lib/esm/strict-proxy.mjs +10 -1
  393. package/dist/lib/esm/string.d.mts +194 -40
  394. package/dist/lib/esm/string.mjs +63 -22
  395. package/dist/styles.css +5 -1
  396. package/obsidian/Modals/minimizable-modal/package.json +6 -0
  397. package/obsidian/editor-lock/package.json +6 -0
  398. package/package.json +9 -9
@@ -47,7 +47,7 @@
47
47
  * test to switch to a cast-based access. Decorated members and exports shared with a still-exported
48
48
  * sibling stay skipped even under `shouldForce`, because no edit can be applied safely.
49
49
  */
50
- import type { CompilerOptions, LanguageService, LanguageServiceHost } from 'typescript';
50
+ import type { CompilerOptions, LanguageService, LanguageServiceHost } from 'typescript' with { 'resolution-mode': 'import' };
51
51
  /**
52
52
  * Parameters for {@link analyzeOverExposure}.
53
53
  */
@@ -64,6 +64,8 @@ export interface AnalyzeOverExposureParams {
64
64
  * When `true`, each fixable finding is tightened in place via {@link writeFile} (which must then
65
65
  * be provided), and the returned findings carry {@link OverExposureFinding.wasFixed} /
66
66
  * {@link OverExposureFinding.skipReason}. When `false` or omitted, the analysis only reports.
67
+ *
68
+ * @default `false`
67
69
  */
68
70
  readonly shouldFix?: boolean | undefined;
69
71
  /**
@@ -71,6 +73,8 @@ export interface AnalyzeOverExposureParams {
71
73
  * test references are tightened too, instead of being skipped with a `test-only`
72
74
  * {@link OverExposureFinding.skipReason}. Decorated members and exports shared with a
73
75
  * still-exported sibling stay skipped regardless, because no edit can be applied safely.
76
+ *
77
+ * @default `false`
74
78
  */
75
79
  readonly shouldForce?: boolean | undefined;
76
80
  /**
@@ -125,6 +129,8 @@ export interface FindOverExposureParams {
125
129
  * When `true`, fixable findings are tightened in place on disk (the `export` keyword is dropped,
126
130
  * or a `private` / `protected` modifier is inserted/replaced). When `false` or omitted, the
127
131
  * project is only analyzed.
132
+ *
133
+ * @default `false`
128
134
  */
129
135
  readonly shouldFix?: boolean | undefined;
130
136
  /**
@@ -132,6 +138,8 @@ export interface FindOverExposureParams {
132
138
  * test references are tightened too, instead of being skipped. Decorated members and exports
133
139
  * shared with a still-exported sibling stay skipped regardless. Forwarded to
134
140
  * {@link analyzeOverExposure}.
141
+ *
142
+ * @default `false`
135
143
  */
136
144
  readonly shouldForce?: boolean | undefined;
137
145
  }
@@ -142,7 +142,7 @@ var import_node_fs = require('node:fs');
142
142
  var import_node_process = __toESM(__extractDefault(require('node:process')), 1);
143
143
  var import_root = require('./root.cjs');
144
144
  async function publish(isBeta) {
145
- const envPath = (0, import_root.resolvePathFromRoot)(".env");
145
+ const envPath = (0, import_root.resolvePathFromRoot)({ path: ".env" });
146
146
  if (envPath && (0, import_node_fs.existsSync)(envPath)) {
147
147
  (0, import_node_process.loadEnvFile)(envPath);
148
148
  }
@@ -155,4 +155,4 @@ async function publish(isBeta) {
155
155
  0 && (module.exports = {
156
156
  publish
157
157
  });
158
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9ucG0tcHVibGlzaC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENvbnRhaW5zIHV0aWxpdHkgZnVuY3Rpb25zIGZvciBOUE0gcHVibGlzaC5cbiAqL1xuXG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgcHJvY2VzcywgeyBsb2FkRW52RmlsZSB9IGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5cbmltcG9ydCB7XG4gIGV4ZWNGcm9tUm9vdCxcbiAgcmVzb2x2ZVBhdGhGcm9tUm9vdFxufSBmcm9tICcuL3Jvb3QudHMnO1xuXG5pbnRlcmZhY2UgTnBtRW52IHtcbiAgTlBNX1RPS0VOOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHVibGlzaCB0byBOUE0uXG4gKlxuICogQHBhcmFtIGlzQmV0YSAtIFdoZXRoZXIgdG8gcHVibGlzaCB0byB0aGUgYmV0YSBOUE0gcmVnaXN0cnkuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwdWJsaXNoKGlzQmV0YT86IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgZW52UGF0aCA9IHJlc29sdmVQYXRoRnJvbVJvb3QoJy5lbnYnKTtcbiAgaWYgKGVudlBhdGggJiYgZXhpc3RzU3luYyhlbnZQYXRoKSkge1xuICAgIGxvYWRFbnZGaWxlKGVudlBhdGgpO1xuICB9XG4gIGNvbnN0IG5wbUVudiA9IHByb2Nlc3MuZW52IGFzIFBhcnRpYWw8TnBtRW52PjtcbiAgYXdhaXQgZXhlY0Zyb21Sb290KFsnbnBtJywgJ2NvbmZpZycsICdzZXQnLCBgLy9yZWdpc3RyeS5ucG1qcy5vcmcvOl9hdXRoVG9rZW49JHtucG1FbnYuTlBNX1RPS0VOID8/ICcnfWBdKTtcblxuICBjb25zdCB0YWcgPSBpc0JldGEgPyAnYmV0YScgOiAnbGF0ZXN0JztcbiAgYXdhaXQgZXhlY0Zyb21Sb290KFsnbnBtJywgJ3B1Ymxpc2gnLCAnLS10YWcnLCB0YWddKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQSxxQkFBMkI7QUFDM0IsMEJBQXFDO0FBRXJDLGtCQUdPO0FBV1AsZUFBc0IsUUFBUSxRQUFpQztBQUM3RCxRQUFNLGNBQVUsaUNBQW9CLE1BQU07QUFDMUMsTUFBSSxlQUFXLDJCQUFXLE9BQU8sR0FBRztBQUNsQyx5Q0FBWSxPQUFPO0FBQUEsRUFDckI7QUFDQSxRQUFNLFNBQVMsb0JBQUFBLFFBQVE7QUFDdkIsWUFBTSwwQkFBYSxDQUFDLE9BQU8sVUFBVSxPQUFPLG9DQUFvQyxPQUFPLGFBQWEsRUFBRSxFQUFFLENBQUM7QUFFekcsUUFBTSxNQUFNLFNBQVMsU0FBUztBQUM5QixZQUFNLDBCQUFhLENBQUMsT0FBTyxXQUFXLFNBQVMsR0FBRyxDQUFDO0FBQ3JEOyIsCiAgIm5hbWVzIjogWyJwcm9jZXNzIl0KfQo=
158
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9ucG0tcHVibGlzaC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENvbnRhaW5zIHV0aWxpdHkgZnVuY3Rpb25zIGZvciBOUE0gcHVibGlzaC5cbiAqL1xuXG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgcHJvY2VzcywgeyBsb2FkRW52RmlsZSB9IGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5cbmltcG9ydCB7XG4gIGV4ZWNGcm9tUm9vdCxcbiAgcmVzb2x2ZVBhdGhGcm9tUm9vdFxufSBmcm9tICcuL3Jvb3QudHMnO1xuXG5pbnRlcmZhY2UgTnBtRW52IHtcbiAgTlBNX1RPS0VOOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHVibGlzaCB0byBOUE0uXG4gKlxuICogQHBhcmFtIGlzQmV0YSAtIFdoZXRoZXIgdG8gcHVibGlzaCB0byB0aGUgYmV0YSBOUE0gcmVnaXN0cnkuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwdWJsaXNoKGlzQmV0YT86IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgZW52UGF0aCA9IHJlc29sdmVQYXRoRnJvbVJvb3QoeyBwYXRoOiAnLmVudicgfSk7XG4gIGlmIChlbnZQYXRoICYmIGV4aXN0c1N5bmMoZW52UGF0aCkpIHtcbiAgICBsb2FkRW52RmlsZShlbnZQYXRoKTtcbiAgfVxuICBjb25zdCBucG1FbnYgPSBwcm9jZXNzLmVudiBhcyBQYXJ0aWFsPE5wbUVudj47XG4gIGF3YWl0IGV4ZWNGcm9tUm9vdChbJ25wbScsICdjb25maWcnLCAnc2V0JywgYC8vcmVnaXN0cnkubnBtanMub3JnLzpfYXV0aFRva2VuPSR7bnBtRW52Lk5QTV9UT0tFTiA/PyAnJ31gXSk7XG5cbiAgY29uc3QgdGFnID0gaXNCZXRhID8gJ2JldGEnIDogJ2xhdGVzdCc7XG4gIGF3YWl0IGV4ZWNGcm9tUm9vdChbJ25wbScsICdwdWJsaXNoJywgJy0tdGFnJywgdGFnXSk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUEscUJBQTJCO0FBQzNCLDBCQUFxQztBQUVyQyxrQkFHTztBQVdQLGVBQXNCLFFBQVEsUUFBaUM7QUFDN0QsUUFBTSxjQUFVLGlDQUFvQixFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ3BELE1BQUksZUFBVywyQkFBVyxPQUFPLEdBQUc7QUFDbEMseUNBQVksT0FBTztBQUFBLEVBQ3JCO0FBQ0EsUUFBTSxTQUFTLG9CQUFBQSxRQUFRO0FBQ3ZCLFlBQU0sMEJBQWEsQ0FBQyxPQUFPLFVBQVUsT0FBTyxvQ0FBb0MsT0FBTyxhQUFhLEVBQUUsRUFBRSxDQUFDO0FBRXpHLFFBQU0sTUFBTSxTQUFTLFNBQVM7QUFDOUIsWUFBTSwwQkFBYSxDQUFDLE9BQU8sV0FBVyxTQUFTLEdBQUcsQ0FBQztBQUNyRDsiLAogICJuYW1lcyI6IFsicHJvY2VzcyJdCn0K
@@ -153,44 +153,53 @@ async function editNpmShrinkWrapJson(editFn, options = {}) {
153
153
  cwd,
154
154
  shouldSkipIfMissing
155
155
  } = options;
156
- await (0, import_json.editJson)(getNpmShrinkWrapJsonPath(cwd), editFn, (0, import_object_utils.normalizeOptionalProperties)({ shouldSkipIfMissing }));
156
+ await (0, import_json.editJson)((0, import_object_utils.normalizeOptionalProperties)({ editFn, path: getNpmShrinkWrapJsonPath(cwd), shouldSkipIfMissing }));
157
157
  }
158
158
  async function editPackageJson(editFn, options = {}) {
159
159
  const {
160
160
  cwd,
161
161
  shouldSkipIfMissing
162
162
  } = options;
163
- await (0, import_json.editJson)(getPackageJsonPath(cwd), editFn, (0, import_object_utils.normalizeOptionalProperties)({ shouldSkipIfMissing }));
163
+ await (0, import_json.editJson)((0, import_object_utils.normalizeOptionalProperties)({ editFn, path: getPackageJsonPath(cwd), shouldSkipIfMissing }));
164
164
  }
165
165
  function editPackageJsonSync(editFn, options = {}) {
166
166
  const {
167
167
  cwd,
168
168
  shouldSkipIfMissing
169
169
  } = options;
170
- (0, import_json.editJsonSync)(getPackageJsonPath(cwd), editFn, (0, import_object_utils.normalizeOptionalProperties)({ shouldSkipIfMissing }));
170
+ (0, import_json.editJsonSync)((0, import_object_utils.normalizeOptionalProperties)({ editFn, path: getPackageJsonPath(cwd), shouldSkipIfMissing }));
171
171
  }
172
172
  async function editPackageLockJson(editFn, options = {}) {
173
173
  const {
174
174
  cwd,
175
175
  shouldSkipIfMissing
176
176
  } = options;
177
- await (0, import_json.editJson)(getPackageLockJsonPath(cwd), editFn, (0, import_object_utils.normalizeOptionalProperties)({ shouldSkipIfMissing }));
177
+ await (0, import_json.editJson)((0, import_object_utils.normalizeOptionalProperties)({ editFn, path: getPackageLockJsonPath(cwd), shouldSkipIfMissing }));
178
178
  }
179
179
  function editPackageLockJsonSync(editFn, options = {}) {
180
180
  const {
181
181
  cwd,
182
182
  shouldSkipIfMissing
183
183
  } = options;
184
- (0, import_json.editJsonSync)(getPackageLockJsonPath(cwd), editFn, (0, import_object_utils.normalizeOptionalProperties)({ shouldSkipIfMissing }));
184
+ (0, import_json.editJsonSync)((0, import_object_utils.normalizeOptionalProperties)({ editFn, path: getPackageLockJsonPath(cwd), shouldSkipIfMissing }));
185
185
  }
186
186
  function getNpmShrinkWrapJsonPath(cwd) {
187
- return (0, import_type_guards.ensureNonNullable)((0, import_root.resolvePathFromRoot)(import_obsidian_plugin_repo_paths.ObsidianPluginRepoPaths.NpmShrinkwrapJson, cwd), "Could not determine the npm-shrinkwrap.json path");
187
+ return (0, import_type_guards.ensureNonNullable)(
188
+ (0, import_root.resolvePathFromRoot)((0, import_object_utils.normalizeOptionalProperties)({ cwd, path: import_obsidian_plugin_repo_paths.ObsidianPluginRepoPaths.NpmShrinkwrapJson })),
189
+ "Could not determine the npm-shrinkwrap.json path"
190
+ );
188
191
  }
189
192
  function getPackageJsonPath(cwd) {
190
- return (0, import_type_guards.ensureNonNullable)((0, import_root.resolvePathFromRoot)(import_obsidian_plugin_repo_paths.ObsidianPluginRepoPaths.PackageJson, cwd), "Could not determine the package.json path");
193
+ return (0, import_type_guards.ensureNonNullable)(
194
+ (0, import_root.resolvePathFromRoot)((0, import_object_utils.normalizeOptionalProperties)({ cwd, path: import_obsidian_plugin_repo_paths.ObsidianPluginRepoPaths.PackageJson })),
195
+ "Could not determine the package.json path"
196
+ );
191
197
  }
192
198
  function getPackageLockJsonPath(cwd) {
193
- return (0, import_type_guards.ensureNonNullable)((0, import_root.resolvePathFromRoot)(import_obsidian_plugin_repo_paths.ObsidianPluginRepoPaths.PackageLockJson, cwd), "Could not determine the package-lock.json path");
199
+ return (0, import_type_guards.ensureNonNullable)(
200
+ (0, import_root.resolvePathFromRoot)((0, import_object_utils.normalizeOptionalProperties)({ cwd, path: import_obsidian_plugin_repo_paths.ObsidianPluginRepoPaths.PackageLockJson })),
201
+ "Could not determine the package-lock.json path"
202
+ );
194
203
  }
195
204
  async function readPackageJson(cwd) {
196
205
  return await (0, import_json.readJson)(getPackageJsonPath(cwd));
@@ -235,4 +244,4 @@ function writePackageLockJsonSync(packageLockJson, cwd) {
235
244
  writePackageLockJson,
236
245
  writePackageLockJsonSync
237
246
  });
238
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9ucG0udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDb250YWlucyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgTlBNIHBhY2thZ2UuanNvbi5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIFBhY2thZ2VKc29uLFxuICBQcm9taXNhYmxlXG59IGZyb20gJ3R5cGUtZmVzdCc7XG5cbmltcG9ydCB0eXBlIHsgRWRpdEpzb25PcHRpb25zIH0gZnJvbSAnLi9qc29uLnRzJztcblxuaW1wb3J0IHsgbm9ybWFsaXplT3B0aW9uYWxQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vb2JqZWN0LXV0aWxzLnRzJztcbmltcG9ydCB7IE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzIH0gZnJvbSAnLi4vb2JzaWRpYW4vcGx1Z2luL29ic2lkaWFuLXBsdWdpbi1yZXBvLXBhdGhzLnRzJztcbmltcG9ydCB7IGVuc3VyZU5vbk51bGxhYmxlIH0gZnJvbSAnLi4vdHlwZS1ndWFyZHMudHMnO1xuaW1wb3J0IHtcbiAgZWRpdEpzb24sXG4gIGVkaXRKc29uU3luYyxcbiAgcmVhZEpzb24sXG4gIHJlYWRKc29uU3luYyxcbiAgd3JpdGVKc29uLFxuICB3cml0ZUpzb25TeW5jXG59IGZyb20gJy4vanNvbi50cyc7XG5pbXBvcnQgeyByZXNvbHZlUGF0aEZyb21Sb290IH0gZnJvbSAnLi9yb290LnRzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgZWRpdE5wbVNocmlua1dyYXBKc29ufS5cbiAqL1xuZXhwb3J0IHR5cGUgRWRpdE5wbVNocmlua1dyYXBKc29uT3B0aW9ucyA9IEVkaXRQYWNrYWdlSnNvbk9wdGlvbnM7XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIGVkaXRQYWNrYWdlSnNvbn0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRWRpdFBhY2thZ2VKc29uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBIGN1cnJlbnQgd29ya2luZyBmb2xkZXIgd2hlcmUgYHBhY2thZ2UuanNvbmAgaXMgbG9jYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGN3ZD86IHN0cmluZztcblxuICAvKipcbiAgICogSWYgYHRydWVgLCBza2lwcyBlZGl0aW5nIGlmIHRoZSBmaWxlIGRvZXMgbm90IGV4aXN0LlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkU2tpcElmTWlzc2luZz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIGVkaXRQYWNrYWdlSnNvblN5bmN9LlxuICovXG5leHBvcnQgdHlwZSBFZGl0UGFja2FnZUpzb25TeW5jT3B0aW9ucyA9IEVkaXRQYWNrYWdlSnNvbk9wdGlvbnM7XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIGVkaXRQYWNrYWdlTG9ja0pzb259LlxuICovXG5leHBvcnQgdHlwZSBFZGl0UGFja2FnZUxvY2tKc29uT3B0aW9ucyA9IEVkaXRQYWNrYWdlSnNvbk9wdGlvbnM7XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIGVkaXRQYWNrYWdlTG9ja0pzb25TeW5jfS5cbiAqL1xuZXhwb3J0IHR5cGUgRWRpdFBhY2thZ2VMb2NrSnNvblN5bmNPcHRpb25zID0gRWRpdFBhY2thZ2VKc29uT3B0aW9ucztcblxuLyoqXG4gKiBBIHR5cGUgb2YgdGhlIGBwYWNrYWdlLmpzb25gIGZpbGUuXG4gKi9cbmV4cG9ydCB0eXBlIHsgUGFja2FnZUpzb24gfTtcblxuLyoqXG4gKiBBIHR5cGUgb2YgdGhlIGBwYWNrYWdlLWxvY2suanNvbmAgZmlsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYWNrYWdlTG9ja0pzb24gZXh0ZW5kcyBQYXJ0aWFsPFBhY2thZ2VKc29uPiB7XG4gIC8qKlxuICAgKiBQYWNrYWdlcyBpbiB0aGUgYHBhY2thZ2UtbG9jay5qc29uYCBmaWxlLlxuICAgKi9cbiAgcGFja2FnZXM/OiBSZWNvcmQ8c3RyaW5nLCBQYWNrYWdlSnNvbj47XG59XG5cbi8qKlxuICogUmVhZHMsIGVkaXRzLCBhbmQgd3JpdGVzIGJhY2sgdGhlIGBwYWNrYWdlLWxvY2suanNvbmAgZmlsZSB1c2luZyB0aGUgcHJvdmlkZWQgZWRpdCBmdW5jdGlvbi5cbiAqXG4gKiBAcGFyYW0gZWRpdEZuIC0gVGhlIGZ1bmN0aW9uIHRvIGVkaXQgdGhlIHBhcnNlZCBgUGFja2FnZUpzb25gIG9iamVjdC5cbiAqIEBwYXJhbSBvcHRpb25zIC0gQWRkaXRpb25hbCBvcHRpb25zIGZvciBlZGl0aW5nLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBmaWxlIGhhcyBiZWVuIGVkaXRlZCBhbmQgd3JpdHRlbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGVkaXROcG1TaHJpbmtXcmFwSnNvbihcbiAgZWRpdEZuOiAocGFja2FnZUxvY2tKc29uOiBQYWNrYWdlTG9ja0pzb24pID0+IFByb21pc2FibGU8dm9pZD4sXG4gIG9wdGlvbnM6IEVkaXROcG1TaHJpbmtXcmFwSnNvbk9wdGlvbnMgPSB7fVxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHtcbiAgICBjd2QsXG4gICAgc2hvdWxkU2tpcElmTWlzc2luZ1xuICB9ID0gb3B0aW9ucztcbiAgYXdhaXQgZWRpdEpzb248UGFja2FnZUpzb24+KGdldE5wbVNocmlua1dyYXBKc29uUGF0aChjd2QpLCBlZGl0Rm4sIG5vcm1hbGl6ZU9wdGlvbmFsUHJvcGVydGllczxFZGl0SnNvbk9wdGlvbnM+KHsgc2hvdWxkU2tpcElmTWlzc2luZyB9KSk7XG59XG5cbi8qKlxuICogUmVhZHMsIGVkaXRzLCBhbmQgd3JpdGVzIGJhY2sgdGhlIGBwYWNrYWdlLmpzb25gIGZpbGUgdXNpbmcgdGhlIHByb3ZpZGVkIGVkaXQgZnVuY3Rpb24uXG4gKlxuICogQHBhcmFtIGVkaXRGbiAtIFRoZSBmdW5jdGlvbiB0byBlZGl0IHRoZSBwYXJzZWQgYFBhY2thZ2VKc29uYCBvYmplY3QuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFkZGl0aW9uYWwgb3B0aW9ucyBmb3IgZWRpdGluZy5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZmlsZSBoYXMgYmVlbiBlZGl0ZWQgYW5kIHdyaXR0ZW4uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBlZGl0UGFja2FnZUpzb24oXG4gIGVkaXRGbjogKHBhY2thZ2VKc29uOiBQYWNrYWdlSnNvbikgPT4gUHJvbWlzYWJsZTx2b2lkPixcbiAgb3B0aW9uczogRWRpdFBhY2thZ2VKc29uT3B0aW9ucyA9IHt9XG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3Qge1xuICAgIGN3ZCxcbiAgICBzaG91bGRTa2lwSWZNaXNzaW5nXG4gIH0gPSBvcHRpb25zO1xuICBhd2FpdCBlZGl0SnNvbjxQYWNrYWdlSnNvbj4oZ2V0UGFja2FnZUpzb25QYXRoKGN3ZCksIGVkaXRGbiwgbm9ybWFsaXplT3B0aW9uYWxQcm9wZXJ0aWVzPEVkaXRKc29uT3B0aW9ucz4oeyBzaG91bGRTa2lwSWZNaXNzaW5nIH0pKTtcbn1cblxuLyoqXG4gKiBSZWFkcywgZWRpdHMsIGFuZCB3cml0ZXMgYmFjayB0aGUgYHBhY2thZ2UuanNvbmAgZmlsZSB1c2luZyB0aGUgcHJvdmlkZWQgZWRpdCBmdW5jdGlvbi5cbiAqXG4gKiBAcGFyYW0gZWRpdEZuIC0gVGhlIGZ1bmN0aW9uIHRvIGVkaXQgdGhlIHBhcnNlZCBgUGFja2FnZUpzb25gIG9iamVjdC5cbiAqIEBwYXJhbSBvcHRpb25zIC0gQWRkaXRpb25hbCBvcHRpb25zIGZvciBlZGl0aW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZWRpdFBhY2thZ2VKc29uU3luYyhcbiAgZWRpdEZuOiAocGFja2FnZUpzb246IFBhY2thZ2VKc29uKSA9PiB2b2lkLFxuICBvcHRpb25zOiBFZGl0UGFja2FnZUpzb25TeW5jT3B0aW9ucyA9IHt9XG4pOiB2b2lkIHtcbiAgY29uc3Qge1xuICAgIGN3ZCxcbiAgICBzaG91bGRTa2lwSWZNaXNzaW5nXG4gIH0gPSBvcHRpb25zO1xuICBlZGl0SnNvblN5bmM8UGFja2FnZUpzb24+KGdldFBhY2thZ2VKc29uUGF0aChjd2QpLCBlZGl0Rm4sIG5vcm1hbGl6ZU9wdGlvbmFsUHJvcGVydGllczxFZGl0SnNvbk9wdGlvbnM+KHsgc2hvdWxkU2tpcElmTWlzc2luZyB9KSk7XG59XG5cbi8qKlxuICogUmVhZHMsIGVkaXRzLCBhbmQgd3JpdGVzIGJhY2sgdGhlIGBwYWNrYWdlLWxvY2suanNvbmAgZmlsZSB1c2luZyB0aGUgcHJvdmlkZWQgZWRpdCBmdW5jdGlvbi5cbiAqXG4gKiBAcGFyYW0gZWRpdEZuIC0gVGhlIGZ1bmN0aW9uIHRvIGVkaXQgdGhlIHBhcnNlZCBgUGFja2FnZUpzb25gIG9iamVjdC5cbiAqIEBwYXJhbSBvcHRpb25zIC0gQWRkaXRpb25hbCBvcHRpb25zIGZvciBlZGl0aW5nLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBmaWxlIGhhcyBiZWVuIGVkaXRlZCBhbmQgd3JpdHRlbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGVkaXRQYWNrYWdlTG9ja0pzb24oXG4gIGVkaXRGbjogKHBhY2thZ2VMb2NrSnNvbjogUGFja2FnZUxvY2tKc29uKSA9PiBQcm9taXNhYmxlPHZvaWQ+LFxuICBvcHRpb25zOiBFZGl0UGFja2FnZUxvY2tKc29uT3B0aW9ucyA9IHt9XG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3Qge1xuICAgIGN3ZCxcbiAgICBzaG91bGRTa2lwSWZNaXNzaW5nXG4gIH0gPSBvcHRpb25zO1xuICBhd2FpdCBlZGl0SnNvbjxQYWNrYWdlSnNvbj4oZ2V0UGFja2FnZUxvY2tKc29uUGF0aChjd2QpLCBlZGl0Rm4sIG5vcm1hbGl6ZU9wdGlvbmFsUHJvcGVydGllczxFZGl0SnNvbk9wdGlvbnM+KHsgc2hvdWxkU2tpcElmTWlzc2luZyB9KSk7XG59XG5cbi8qKlxuICogUmVhZHMsIGVkaXRzLCBhbmQgd3JpdGVzIGJhY2sgdGhlIGBwYWNrYWdlLWxvY2suanNvbmAgZmlsZSB1c2luZyB0aGUgcHJvdmlkZWQgZWRpdCBmdW5jdGlvbi5cbiAqXG4gKiBAcGFyYW0gZWRpdEZuIC0gVGhlIGZ1bmN0aW9uIHRvIGVkaXQgdGhlIHBhcnNlZCBgUGFja2FnZUxvY2tKc29uYCBvYmplY3QuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFkZGl0aW9uYWwgb3B0aW9ucyBmb3IgZWRpdGluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVkaXRQYWNrYWdlTG9ja0pzb25TeW5jKFxuICBlZGl0Rm46IChwYWNrYWdlTG9ja0pzb246IFBhY2thZ2VMb2NrSnNvbikgPT4gdm9pZCxcbiAgb3B0aW9uczogRWRpdFBhY2thZ2VMb2NrSnNvblN5bmNPcHRpb25zID0ge31cbik6IHZvaWQge1xuICBjb25zdCB7XG4gICAgY3dkLFxuICAgIHNob3VsZFNraXBJZk1pc3NpbmdcbiAgfSA9IG9wdGlvbnM7XG4gIGVkaXRKc29uU3luYzxQYWNrYWdlTG9ja0pzb24+KGdldFBhY2thZ2VMb2NrSnNvblBhdGgoY3dkKSwgZWRpdEZuLCBub3JtYWxpemVPcHRpb25hbFByb3BlcnRpZXM8RWRpdEpzb25PcHRpb25zPih7IHNob3VsZFNraXBJZk1pc3NpbmcgfSkpO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBwYXRoIHRvIHRoZSBgbnBtLXNocmlua3dyYXAuanNvbmAgZmlsZSBpbiB0aGUgc3BlY2lmaWVkIGZvbGRlciBvciBpbiB0aGUgcm9vdCBpZiBubyBmb2xkZXIgaXMgc3BlY2lmaWVkLlxuICpcbiAqIEBwYXJhbSBjd2QgLSBUaGUgY3VycmVudCB3b3JraW5nIGZvbGRlciB3aGVyZSBgbnBtLXNocmlua3dyYXAuanNvbmAgaXMgbG9jYXRlZC5cbiAqIEByZXR1cm5zIFRoZSByZXNvbHZlZCBwYXRoIHRvIHRoZSBgbnBtLXNocmlua3dyYXAuanNvbmAgZmlsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE5wbVNocmlua1dyYXBKc29uUGF0aChjd2Q/OiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gZW5zdXJlTm9uTnVsbGFibGUocmVzb2x2ZVBhdGhGcm9tUm9vdChPYnNpZGlhblBsdWdpblJlcG9QYXRocy5OcG1TaHJpbmt3cmFwSnNvbiwgY3dkKSwgJ0NvdWxkIG5vdCBkZXRlcm1pbmUgdGhlIG5wbS1zaHJpbmt3cmFwLmpzb24gcGF0aCcpO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBwYXRoIHRvIHRoZSBgcGFja2FnZS5qc29uYCBmaWxlIGluIHRoZSBzcGVjaWZpZWQgZm9sZGVyIG9yIGluIHRoZSByb290IGlmIG5vIGZvbGRlciBpcyBzcGVjaWZpZWQuXG4gKlxuICogQHBhcmFtIGN3ZCAtIFRoZSBjdXJyZW50IHdvcmtpbmcgZm9sZGVyIHdoZXJlIGBwYWNrYWdlLmpzb25gIGlzIGxvY2F0ZWQuXG4gKiBAcmV0dXJucyBUaGUgcmVzb2x2ZWQgcGF0aCB0byB0aGUgYHBhY2thZ2UuanNvbmAgZmlsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFBhY2thZ2VKc29uUGF0aChjd2Q/OiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gZW5zdXJlTm9uTnVsbGFibGUocmVzb2x2ZVBhdGhGcm9tUm9vdChPYnNpZGlhblBsdWdpblJlcG9QYXRocy5QYWNrYWdlSnNvbiwgY3dkKSwgJ0NvdWxkIG5vdCBkZXRlcm1pbmUgdGhlIHBhY2thZ2UuanNvbiBwYXRoJyk7XG59XG5cbi8qKlxuICogUmVzb2x2ZXMgdGhlIHBhdGggdG8gdGhlIGBwYWNrYWdlLWxvY2suanNvbmAgZmlsZSBpbiB0aGUgc3BlY2lmaWVkIGZvbGRlciBvciBpbiB0aGUgcm9vdCBpZiBubyBmb2xkZXIgaXMgc3BlY2lmaWVkLlxuICpcbiAqIEBwYXJhbSBjd2QgLSBUaGUgY3VycmVudCB3b3JraW5nIGZvbGRlciB3aGVyZSBgcGFja2FnZS1sb2NrLmpzb25gIGlzIGxvY2F0ZWQuXG4gKiBAcmV0dXJucyBUaGUgcmVzb2x2ZWQgcGF0aCB0byB0aGUgYHBhY2thZ2UtbG9jay5qc29uYCBmaWxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGFja2FnZUxvY2tKc29uUGF0aChjd2Q/OiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gZW5zdXJlTm9uTnVsbGFibGUocmVzb2x2ZVBhdGhGcm9tUm9vdChPYnNpZGlhblBsdWdpblJlcG9QYXRocy5QYWNrYWdlTG9ja0pzb24sIGN3ZCksICdDb3VsZCBub3QgZGV0ZXJtaW5lIHRoZSBwYWNrYWdlLWxvY2suanNvbiBwYXRoJyk7XG59XG5cbi8qKlxuICogUmVhZHMgdGhlIGBwYWNrYWdlLmpzb25gIGZpbGUgZnJvbSB0aGUgc3BlY2lmaWVkIGZvbGRlciBvciBmcm9tIHRoZSByb290IGlmIG5vIGZvbGRlciBpcyBzcGVjaWZpZWQuXG4gKlxuICogQHBhcmFtIGN3ZCAtIFRoZSBjdXJyZW50IHdvcmtpbmcgZm9sZGVyIHdoZXJlIGBwYWNrYWdlLmpzb25gIGlzIGxvY2F0ZWQuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIHBhcnNlZCBgUGFja2FnZUpzb25gIG9iamVjdC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWRQYWNrYWdlSnNvbihjd2Q/OiBzdHJpbmcpOiBQcm9taXNlPFBhY2thZ2VKc29uPiB7XG4gIHJldHVybiBhd2FpdCByZWFkSnNvbjxQYWNrYWdlSnNvbj4oZ2V0UGFja2FnZUpzb25QYXRoKGN3ZCkpO1xufVxuXG4vKipcbiAqIFJlYWRzIHRoZSBgcGFja2FnZS5qc29uYCBmaWxlIGZyb20gdGhlIHNwZWNpZmllZCBmb2xkZXIgb3IgZnJvbSB0aGUgcm9vdCBpZiBubyBmb2xkZXIgaXMgc3BlY2lmaWVkLlxuICpcbiAqIEBwYXJhbSBjd2QgLSBUaGUgY3VycmVudCB3b3JraW5nIGZvbGRlciB3aGVyZSBgcGFja2FnZS5qc29uYCBpcyBsb2NhdGVkLlxuICogQHJldHVybnMgVGhlIHBhcnNlZCBgUGFja2FnZUpzb25gIG9iamVjdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlYWRQYWNrYWdlSnNvblN5bmMoY3dkPzogc3RyaW5nKTogUGFja2FnZUpzb24ge1xuICByZXR1cm4gcmVhZEpzb25TeW5jPFBhY2thZ2VKc29uPihnZXRQYWNrYWdlSnNvblBhdGgoY3dkKSk7XG59XG5cbi8qKlxuICogUmVhZHMgdGhlIGBwYWNrYWdlLWxvY2suanNvbmAgZmlsZSBmcm9tIHRoZSBzcGVjaWZpZWQgZm9sZGVyIG9yIGZyb20gdGhlIHJvb3QgaWYgbm8gZm9sZGVyIGlzIHNwZWNpZmllZC5cbiAqXG4gKiBAcGFyYW0gY3dkIC0gVGhlIGN1cnJlbnQgd29ya2luZyBmb2xkZXIgd2hlcmUgYHBhY2thZ2UtbG9jay5qc29uYCBpcyBsb2NhdGVkLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBwYXJzZWQgYFBhY2thZ2VKc29uYCBvYmplY3QuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWFkUGFja2FnZUxvY2tKc29uKGN3ZD86IHN0cmluZyk6IFByb21pc2U8UGFja2FnZUxvY2tKc29uPiB7XG4gIHJldHVybiBhd2FpdCByZWFkSnNvbjxQYWNrYWdlTG9ja0pzb24+KGdldFBhY2thZ2VMb2NrSnNvblBhdGgoY3dkKSk7XG59XG5cbi8qKlxuICogUmVhZHMgdGhlIGBwYWNrYWdlLWxvY2suanNvbmAgZmlsZSBmcm9tIHRoZSBzcGVjaWZpZWQgZm9sZGVyIG9yIGZyb20gdGhlIHJvb3QgaWYgbm8gZm9sZGVyIGlzIHNwZWNpZmllZC5cbiAqXG4gKiBAcGFyYW0gY3dkIC0gVGhlIGN1cnJlbnQgd29ya2luZyBmb2xkZXIgd2hlcmUgYHBhY2thZ2UtbG9jay5qc29uYCBpcyBsb2NhdGVkLlxuICogQHJldHVybnMgVGhlIHBhcnNlZCBgUGFja2FnZUxvY2tKc29uYCBvYmplY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWFkUGFja2FnZUxvY2tKc29uU3luYyhjd2Q/OiBzdHJpbmcpOiBQYWNrYWdlTG9ja0pzb24ge1xuICByZXR1cm4gcmVhZEpzb25TeW5jPFBhY2thZ2VMb2NrSnNvbj4oZ2V0UGFja2FnZUxvY2tKc29uUGF0aChjd2QpKTtcbn1cblxuLyoqXG4gKiBXcml0ZXMgdGhlIHByb3ZpZGVkIGBQYWNrYWdlSnNvbmAgb2JqZWN0IHRvIHRoZSBgcGFja2FnZS5qc29uYCBmaWxlIGluIHRoZSBzcGVjaWZpZWQgZm9sZGVyIG9yIGluIHRoZSByb290LlxuICpcbiAqIEBwYXJhbSBwYWNrYWdlSnNvbiAtIFRoZSBgUGFja2FnZUpzb25gIG9iamVjdCB0byB3cml0ZS5cbiAqIEBwYXJhbSBjd2QgLSBUaGUgY3VycmVudCB3b3JraW5nIGZvbGRlciB3aGVyZSBgcGFja2FnZS5qc29uYCBpcyBsb2NhdGVkLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBmaWxlIGhhcyBiZWVuIHdyaXR0ZW4uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3cml0ZVBhY2thZ2VKc29uKHBhY2thZ2VKc29uOiBQYWNrYWdlSnNvbiwgY3dkPzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IHdyaXRlSnNvbihnZXRQYWNrYWdlSnNvblBhdGgoY3dkKSwgcGFja2FnZUpzb24pO1xufVxuXG4vKipcbiAqIFdyaXRlcyB0aGUgcHJvdmlkZWQgYFBhY2thZ2VKc29uYCBvYmplY3QgdG8gdGhlIGBwYWNrYWdlLmpzb25gIGZpbGUgaW4gdGhlIHNwZWNpZmllZCBmb2xkZXIgb3IgaW4gdGhlIHJvb3QuXG4gKlxuICogQHBhcmFtIHBhY2thZ2VKc29uIC0gVGhlIGBQYWNrYWdlSnNvbmAgb2JqZWN0IHRvIHdyaXRlLlxuICogQHBhcmFtIGN3ZCAtIFRoZSBjdXJyZW50IHdvcmtpbmcgZm9sZGVyIHdoZXJlIGBwYWNrYWdlLmpzb25gIGlzIGxvY2F0ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZVBhY2thZ2VKc29uU3luYyhwYWNrYWdlSnNvbjogUGFja2FnZUpzb24sIGN3ZD86IHN0cmluZyk6IHZvaWQge1xuICB3cml0ZUpzb25TeW5jKGdldFBhY2thZ2VKc29uUGF0aChjd2QpLCBwYWNrYWdlSnNvbik7XG59XG5cbi8qKlxuICogV3JpdGVzIHRoZSBwcm92aWRlZCBgUGFja2FnZUpzb25gIG9iamVjdCB0byB0aGUgYHBhY2thZ2UtbG9jay5qc29uYCBmaWxlIGluIHRoZSBzcGVjaWZpZWQgZm9sZGVyIG9yIGluIHRoZSByb290LlxuICpcbiAqIEBwYXJhbSBwYWNrYWdlTG9ja0pzb24gLSBUaGUgYFBhY2thZ2VMb2NrSnNvbmAgb2JqZWN0IHRvIHdyaXRlLlxuICogQHBhcmFtIGN3ZCAtIFRoZSBjdXJyZW50IHdvcmtpbmcgZm9sZGVyIHdoZXJlIGBwYWNrYWdlLWxvY2suanNvbmAgaXMgbG9jYXRlZC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZmlsZSBoYXMgYmVlbiB3cml0dGVuLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd3JpdGVQYWNrYWdlTG9ja0pzb24ocGFja2FnZUxvY2tKc29uOiBQYWNrYWdlTG9ja0pzb24sIGN3ZD86IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCB3cml0ZUpzb24oZ2V0UGFja2FnZUxvY2tKc29uUGF0aChjd2QpLCBwYWNrYWdlTG9ja0pzb24pO1xufVxuXG4vKipcbiAqIFdyaXRlcyB0aGUgcHJvdmlkZWQgYFBhY2thZ2VMb2NrSnNvbmAgb2JqZWN0IHRvIHRoZSBgcGFja2FnZS1sb2NrLmpzb25gIGZpbGUgaW4gdGhlIHNwZWNpZmllZCBmb2xkZXIgb3IgaW4gdGhlIHJvb3QuXG4gKlxuICogQHBhcmFtIHBhY2thZ2VMb2NrSnNvbiAtIFRoZSBgUGFja2FnZUxvY2tKc29uYCBvYmplY3QgdG8gd3JpdGUuXG4gKiBAcGFyYW0gY3dkIC0gVGhlIGN1cnJlbnQgd29ya2luZyBmb2xkZXIgd2hlcmUgYHBhY2thZ2UtbG9jay5qc29uYCBpcyBsb2NhdGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gd3JpdGVQYWNrYWdlTG9ja0pzb25TeW5jKHBhY2thZ2VMb2NrSnNvbjogUGFja2FnZUxvY2tKc29uLCBjd2Q/OiBzdHJpbmcpOiB2b2lkIHtcbiAgd3JpdGVKc29uU3luYyhnZXRQYWNrYWdlTG9ja0pzb25QYXRoKGN3ZCksIHBhY2thZ2VMb2NrSnNvbik7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFhQSwwQkFBNEM7QUFDNUMsd0NBQXdDO0FBQ3hDLHlCQUFrQztBQUNsQyxrQkFPTztBQUNQLGtCQUFvQztBQTJEcEMsZUFBc0Isc0JBQ3BCLFFBQ0EsVUFBd0MsQ0FBQyxHQUMxQjtBQUNmLFFBQU07QUFBQSxJQUNKO0FBQUEsSUFDQTtBQUFBLEVBQ0YsSUFBSTtBQUNKLFlBQU0sc0JBQXNCLHlCQUF5QixHQUFHLEdBQUcsWUFBUSxpREFBNkMsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO0FBQzFJO0FBU0EsZUFBc0IsZ0JBQ3BCLFFBQ0EsVUFBa0MsQ0FBQyxHQUNwQjtBQUNmLFFBQU07QUFBQSxJQUNKO0FBQUEsSUFDQTtBQUFBLEVBQ0YsSUFBSTtBQUNKLFlBQU0sc0JBQXNCLG1CQUFtQixHQUFHLEdBQUcsWUFBUSxpREFBNkMsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO0FBQ3BJO0FBUU8sU0FBUyxvQkFDZCxRQUNBLFVBQXNDLENBQUMsR0FDakM7QUFDTixRQUFNO0FBQUEsSUFDSjtBQUFBLElBQ0E7QUFBQSxFQUNGLElBQUk7QUFDSixnQ0FBMEIsbUJBQW1CLEdBQUcsR0FBRyxZQUFRLGlEQUE2QyxFQUFFLG9CQUFvQixDQUFDLENBQUM7QUFDbEk7QUFTQSxlQUFzQixvQkFDcEIsUUFDQSxVQUFzQyxDQUFDLEdBQ3hCO0FBQ2YsUUFBTTtBQUFBLElBQ0o7QUFBQSxJQUNBO0FBQUEsRUFDRixJQUFJO0FBQ0osWUFBTSxzQkFBc0IsdUJBQXVCLEdBQUcsR0FBRyxZQUFRLGlEQUE2QyxFQUFFLG9CQUFvQixDQUFDLENBQUM7QUFDeEk7QUFRTyxTQUFTLHdCQUNkLFFBQ0EsVUFBMEMsQ0FBQyxHQUNyQztBQUNOLFFBQU07QUFBQSxJQUNKO0FBQUEsSUFDQTtBQUFBLEVBQ0YsSUFBSTtBQUNKLGdDQUE4Qix1QkFBdUIsR0FBRyxHQUFHLFlBQVEsaURBQTZDLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztBQUMxSTtBQVFPLFNBQVMseUJBQXlCLEtBQXNCO0FBQzdELGFBQU8sMENBQWtCLGlDQUFvQiwwREFBd0IsbUJBQW1CLEdBQUcsR0FBRyxrREFBa0Q7QUFDbEo7QUFRTyxTQUFTLG1CQUFtQixLQUFzQjtBQUN2RCxhQUFPLDBDQUFrQixpQ0FBb0IsMERBQXdCLGFBQWEsR0FBRyxHQUFHLDJDQUEyQztBQUNySTtBQVFPLFNBQVMsdUJBQXVCLEtBQXNCO0FBQzNELGFBQU8sMENBQWtCLGlDQUFvQiwwREFBd0IsaUJBQWlCLEdBQUcsR0FBRyxnREFBZ0Q7QUFDOUk7QUFRQSxlQUFzQixnQkFBZ0IsS0FBb0M7QUFDeEUsU0FBTyxVQUFNLHNCQUFzQixtQkFBbUIsR0FBRyxDQUFDO0FBQzVEO0FBUU8sU0FBUyxvQkFBb0IsS0FBMkI7QUFDN0QsYUFBTywwQkFBMEIsbUJBQW1CLEdBQUcsQ0FBQztBQUMxRDtBQVFBLGVBQXNCLG9CQUFvQixLQUF3QztBQUNoRixTQUFPLFVBQU0sc0JBQTBCLHVCQUF1QixHQUFHLENBQUM7QUFDcEU7QUFRTyxTQUFTLHdCQUF3QixLQUErQjtBQUNyRSxhQUFPLDBCQUE4Qix1QkFBdUIsR0FBRyxDQUFDO0FBQ2xFO0FBU0EsZUFBc0IsaUJBQWlCLGFBQTBCLEtBQTZCO0FBQzVGLFlBQU0sdUJBQVUsbUJBQW1CLEdBQUcsR0FBRyxXQUFXO0FBQ3REO0FBUU8sU0FBUyxxQkFBcUIsYUFBMEIsS0FBb0I7QUFDakYsaUNBQWMsbUJBQW1CLEdBQUcsR0FBRyxXQUFXO0FBQ3BEO0FBU0EsZUFBc0IscUJBQXFCLGlCQUFrQyxLQUE2QjtBQUN4RyxZQUFNLHVCQUFVLHVCQUF1QixHQUFHLEdBQUcsZUFBZTtBQUM5RDtBQVFPLFNBQVMseUJBQXlCLGlCQUFrQyxLQUFvQjtBQUM3RixpQ0FBYyx1QkFBdUIsR0FBRyxHQUFHLGVBQWU7QUFDNUQ7IiwKICAibmFtZXMiOiBbXQp9Cg==
247
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9ucG0udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDb250YWlucyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgTlBNIHBhY2thZ2UuanNvbi5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIFBhY2thZ2VKc29uLFxuICBQcm9taXNhYmxlXG59IGZyb20gJ3R5cGUtZmVzdCc7XG5cbmltcG9ydCB0eXBlIHtcbiAgRWRpdEpzb25QYXJhbXMsXG4gIEVkaXRKc29uU3luY1BhcmFtc1xufSBmcm9tICcuL2pzb24udHMnO1xuaW1wb3J0IHR5cGUgeyBSZXNvbHZlUGF0aEZyb21Sb290UGFyYW1zIH0gZnJvbSAnLi9yb290LnRzJztcblxuaW1wb3J0IHsgbm9ybWFsaXplT3B0aW9uYWxQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vb2JqZWN0LXV0aWxzLnRzJztcbmltcG9ydCB7IE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzIH0gZnJvbSAnLi4vb2JzaWRpYW4vcGx1Z2luL29ic2lkaWFuLXBsdWdpbi1yZXBvLXBhdGhzLnRzJztcbmltcG9ydCB7IGVuc3VyZU5vbk51bGxhYmxlIH0gZnJvbSAnLi4vdHlwZS1ndWFyZHMudHMnO1xuaW1wb3J0IHtcbiAgZWRpdEpzb24sXG4gIGVkaXRKc29uU3luYyxcbiAgcmVhZEpzb24sXG4gIHJlYWRKc29uU3luYyxcbiAgd3JpdGVKc29uLFxuICB3cml0ZUpzb25TeW5jXG59IGZyb20gJy4vanNvbi50cyc7XG5pbXBvcnQgeyByZXNvbHZlUGF0aEZyb21Sb290IH0gZnJvbSAnLi9yb290LnRzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgZWRpdE5wbVNocmlua1dyYXBKc29ufS5cbiAqL1xuZXhwb3J0IHR5cGUgRWRpdE5wbVNocmlua1dyYXBKc29uT3B0aW9ucyA9IEVkaXRQYWNrYWdlSnNvbk9wdGlvbnM7XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIGVkaXRQYWNrYWdlSnNvbn0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRWRpdFBhY2thZ2VKc29uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBIGN1cnJlbnQgd29ya2luZyBmb2xkZXIgd2hlcmUgYHBhY2thZ2UuanNvbmAgaXMgbG9jYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGN3ZD86IHN0cmluZztcblxuICAvKipcbiAgICogSWYgYHRydWVgLCBza2lwcyBlZGl0aW5nIGlmIHRoZSBmaWxlIGRvZXMgbm90IGV4aXN0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICByZWFkb25seSBzaG91bGRTa2lwSWZNaXNzaW5nPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgZWRpdFBhY2thZ2VKc29uU3luY30uXG4gKi9cbmV4cG9ydCB0eXBlIEVkaXRQYWNrYWdlSnNvblN5bmNPcHRpb25zID0gRWRpdFBhY2thZ2VKc29uT3B0aW9ucztcblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgZWRpdFBhY2thZ2VMb2NrSnNvbn0uXG4gKi9cbmV4cG9ydCB0eXBlIEVkaXRQYWNrYWdlTG9ja0pzb25PcHRpb25zID0gRWRpdFBhY2thZ2VKc29uT3B0aW9ucztcblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgZWRpdFBhY2thZ2VMb2NrSnNvblN5bmN9LlxuICovXG5leHBvcnQgdHlwZSBFZGl0UGFja2FnZUxvY2tKc29uU3luY09wdGlvbnMgPSBFZGl0UGFja2FnZUpzb25PcHRpb25zO1xuXG4vKipcbiAqIEEgdHlwZSBvZiB0aGUgYHBhY2thZ2UuanNvbmAgZmlsZS5cbiAqL1xuZXhwb3J0IHR5cGUgeyBQYWNrYWdlSnNvbiB9O1xuXG4vKipcbiAqIEEgdHlwZSBvZiB0aGUgYHBhY2thZ2UtbG9jay5qc29uYCBmaWxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBhY2thZ2VMb2NrSnNvbiBleHRlbmRzIFBhcnRpYWw8UGFja2FnZUpzb24+IHtcbiAgLyoqXG4gICAqIFBhY2thZ2VzIGluIHRoZSBgcGFja2FnZS1sb2NrLmpzb25gIGZpbGUuXG4gICAqL1xuICBwYWNrYWdlcz86IFJlY29yZDxzdHJpbmcsIFBhY2thZ2VKc29uPjtcbn1cblxuLyoqXG4gKiBSZWFkcywgZWRpdHMsIGFuZCB3cml0ZXMgYmFjayB0aGUgYHBhY2thZ2UtbG9jay5qc29uYCBmaWxlIHVzaW5nIHRoZSBwcm92aWRlZCBlZGl0IGZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSBlZGl0Rm4gLSBUaGUgZnVuY3Rpb24gdG8gZWRpdCB0aGUgcGFyc2VkIGBQYWNrYWdlSnNvbmAgb2JqZWN0LlxuICogQHBhcmFtIG9wdGlvbnMgLSBBZGRpdGlvbmFsIG9wdGlvbnMgZm9yIGVkaXRpbmcuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGZpbGUgaGFzIGJlZW4gZWRpdGVkIGFuZCB3cml0dGVuLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZWRpdE5wbVNocmlua1dyYXBKc29uKFxuICBlZGl0Rm46IChwYWNrYWdlTG9ja0pzb246IFBhY2thZ2VMb2NrSnNvbikgPT4gUHJvbWlzYWJsZTx2b2lkPixcbiAgb3B0aW9uczogRWRpdE5wbVNocmlua1dyYXBKc29uT3B0aW9ucyA9IHt9XG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3Qge1xuICAgIGN3ZCxcbiAgICBzaG91bGRTa2lwSWZNaXNzaW5nXG4gIH0gPSBvcHRpb25zO1xuICBhd2FpdCBlZGl0SnNvbjxQYWNrYWdlSnNvbj4obm9ybWFsaXplT3B0aW9uYWxQcm9wZXJ0aWVzPEVkaXRKc29uUGFyYW1zPFBhY2thZ2VKc29uPj4oeyBlZGl0Rm4sIHBhdGg6IGdldE5wbVNocmlua1dyYXBKc29uUGF0aChjd2QpLCBzaG91bGRTa2lwSWZNaXNzaW5nIH0pKTtcbn1cblxuLyoqXG4gKiBSZWFkcywgZWRpdHMsIGFuZCB3cml0ZXMgYmFjayB0aGUgYHBhY2thZ2UuanNvbmAgZmlsZSB1c2luZyB0aGUgcHJvdmlkZWQgZWRpdCBmdW5jdGlvbi5cbiAqXG4gKiBAcGFyYW0gZWRpdEZuIC0gVGhlIGZ1bmN0aW9uIHRvIGVkaXQgdGhlIHBhcnNlZCBgUGFja2FnZUpzb25gIG9iamVjdC5cbiAqIEBwYXJhbSBvcHRpb25zIC0gQWRkaXRpb25hbCBvcHRpb25zIGZvciBlZGl0aW5nLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBmaWxlIGhhcyBiZWVuIGVkaXRlZCBhbmQgd3JpdHRlbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGVkaXRQYWNrYWdlSnNvbihcbiAgZWRpdEZuOiAocGFja2FnZUpzb246IFBhY2thZ2VKc29uKSA9PiBQcm9taXNhYmxlPHZvaWQ+LFxuICBvcHRpb25zOiBFZGl0UGFja2FnZUpzb25PcHRpb25zID0ge31cbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7XG4gICAgY3dkLFxuICAgIHNob3VsZFNraXBJZk1pc3NpbmdcbiAgfSA9IG9wdGlvbnM7XG4gIGF3YWl0IGVkaXRKc29uPFBhY2thZ2VKc29uPihub3JtYWxpemVPcHRpb25hbFByb3BlcnRpZXM8RWRpdEpzb25QYXJhbXM8UGFja2FnZUpzb24+Pih7IGVkaXRGbiwgcGF0aDogZ2V0UGFja2FnZUpzb25QYXRoKGN3ZCksIHNob3VsZFNraXBJZk1pc3NpbmcgfSkpO1xufVxuXG4vKipcbiAqIFJlYWRzLCBlZGl0cywgYW5kIHdyaXRlcyBiYWNrIHRoZSBgcGFja2FnZS5qc29uYCBmaWxlIHVzaW5nIHRoZSBwcm92aWRlZCBlZGl0IGZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSBlZGl0Rm4gLSBUaGUgZnVuY3Rpb24gdG8gZWRpdCB0aGUgcGFyc2VkIGBQYWNrYWdlSnNvbmAgb2JqZWN0LlxuICogQHBhcmFtIG9wdGlvbnMgLSBBZGRpdGlvbmFsIG9wdGlvbnMgZm9yIGVkaXRpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlZGl0UGFja2FnZUpzb25TeW5jKFxuICBlZGl0Rm46IChwYWNrYWdlSnNvbjogUGFja2FnZUpzb24pID0+IHZvaWQsXG4gIG9wdGlvbnM6IEVkaXRQYWNrYWdlSnNvblN5bmNPcHRpb25zID0ge31cbik6IHZvaWQge1xuICBjb25zdCB7XG4gICAgY3dkLFxuICAgIHNob3VsZFNraXBJZk1pc3NpbmdcbiAgfSA9IG9wdGlvbnM7XG4gIGVkaXRKc29uU3luYzxQYWNrYWdlSnNvbj4obm9ybWFsaXplT3B0aW9uYWxQcm9wZXJ0aWVzPEVkaXRKc29uU3luY1BhcmFtczxQYWNrYWdlSnNvbj4+KHsgZWRpdEZuLCBwYXRoOiBnZXRQYWNrYWdlSnNvblBhdGgoY3dkKSwgc2hvdWxkU2tpcElmTWlzc2luZyB9KSk7XG59XG5cbi8qKlxuICogUmVhZHMsIGVkaXRzLCBhbmQgd3JpdGVzIGJhY2sgdGhlIGBwYWNrYWdlLWxvY2suanNvbmAgZmlsZSB1c2luZyB0aGUgcHJvdmlkZWQgZWRpdCBmdW5jdGlvbi5cbiAqXG4gKiBAcGFyYW0gZWRpdEZuIC0gVGhlIGZ1bmN0aW9uIHRvIGVkaXQgdGhlIHBhcnNlZCBgUGFja2FnZUpzb25gIG9iamVjdC5cbiAqIEBwYXJhbSBvcHRpb25zIC0gQWRkaXRpb25hbCBvcHRpb25zIGZvciBlZGl0aW5nLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBmaWxlIGhhcyBiZWVuIGVkaXRlZCBhbmQgd3JpdHRlbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGVkaXRQYWNrYWdlTG9ja0pzb24oXG4gIGVkaXRGbjogKHBhY2thZ2VMb2NrSnNvbjogUGFja2FnZUxvY2tKc29uKSA9PiBQcm9taXNhYmxlPHZvaWQ+LFxuICBvcHRpb25zOiBFZGl0UGFja2FnZUxvY2tKc29uT3B0aW9ucyA9IHt9XG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3Qge1xuICAgIGN3ZCxcbiAgICBzaG91bGRTa2lwSWZNaXNzaW5nXG4gIH0gPSBvcHRpb25zO1xuICBhd2FpdCBlZGl0SnNvbjxQYWNrYWdlSnNvbj4obm9ybWFsaXplT3B0aW9uYWxQcm9wZXJ0aWVzPEVkaXRKc29uUGFyYW1zPFBhY2thZ2VKc29uPj4oeyBlZGl0Rm4sIHBhdGg6IGdldFBhY2thZ2VMb2NrSnNvblBhdGgoY3dkKSwgc2hvdWxkU2tpcElmTWlzc2luZyB9KSk7XG59XG5cbi8qKlxuICogUmVhZHMsIGVkaXRzLCBhbmQgd3JpdGVzIGJhY2sgdGhlIGBwYWNrYWdlLWxvY2suanNvbmAgZmlsZSB1c2luZyB0aGUgcHJvdmlkZWQgZWRpdCBmdW5jdGlvbi5cbiAqXG4gKiBAcGFyYW0gZWRpdEZuIC0gVGhlIGZ1bmN0aW9uIHRvIGVkaXQgdGhlIHBhcnNlZCBgUGFja2FnZUxvY2tKc29uYCBvYmplY3QuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFkZGl0aW9uYWwgb3B0aW9ucyBmb3IgZWRpdGluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVkaXRQYWNrYWdlTG9ja0pzb25TeW5jKFxuICBlZGl0Rm46IChwYWNrYWdlTG9ja0pzb246IFBhY2thZ2VMb2NrSnNvbikgPT4gdm9pZCxcbiAgb3B0aW9uczogRWRpdFBhY2thZ2VMb2NrSnNvblN5bmNPcHRpb25zID0ge31cbik6IHZvaWQge1xuICBjb25zdCB7XG4gICAgY3dkLFxuICAgIHNob3VsZFNraXBJZk1pc3NpbmdcbiAgfSA9IG9wdGlvbnM7XG4gIGVkaXRKc29uU3luYzxQYWNrYWdlTG9ja0pzb24+KG5vcm1hbGl6ZU9wdGlvbmFsUHJvcGVydGllczxFZGl0SnNvblN5bmNQYXJhbXM8UGFja2FnZUxvY2tKc29uPj4oeyBlZGl0Rm4sIHBhdGg6IGdldFBhY2thZ2VMb2NrSnNvblBhdGgoY3dkKSwgc2hvdWxkU2tpcElmTWlzc2luZyB9KSk7XG59XG5cbi8qKlxuICogUmVzb2x2ZXMgdGhlIHBhdGggdG8gdGhlIGBucG0tc2hyaW5rd3JhcC5qc29uYCBmaWxlIGluIHRoZSBzcGVjaWZpZWQgZm9sZGVyIG9yIGluIHRoZSByb290IGlmIG5vIGZvbGRlciBpcyBzcGVjaWZpZWQuXG4gKlxuICogQHBhcmFtIGN3ZCAtIFRoZSBjdXJyZW50IHdvcmtpbmcgZm9sZGVyIHdoZXJlIGBucG0tc2hyaW5rd3JhcC5qc29uYCBpcyBsb2NhdGVkLlxuICogQHJldHVybnMgVGhlIHJlc29sdmVkIHBhdGggdG8gdGhlIGBucG0tc2hyaW5rd3JhcC5qc29uYCBmaWxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TnBtU2hyaW5rV3JhcEpzb25QYXRoKGN3ZD86IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBlbnN1cmVOb25OdWxsYWJsZShcbiAgICByZXNvbHZlUGF0aEZyb21Sb290KG5vcm1hbGl6ZU9wdGlvbmFsUHJvcGVydGllczxSZXNvbHZlUGF0aEZyb21Sb290UGFyYW1zPih7IGN3ZCwgcGF0aDogT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTnBtU2hyaW5rd3JhcEpzb24gfSkpLFxuICAgICdDb3VsZCBub3QgZGV0ZXJtaW5lIHRoZSBucG0tc2hyaW5rd3JhcC5qc29uIHBhdGgnXG4gICk7XG59XG5cbi8qKlxuICogUmVzb2x2ZXMgdGhlIHBhdGggdG8gdGhlIGBwYWNrYWdlLmpzb25gIGZpbGUgaW4gdGhlIHNwZWNpZmllZCBmb2xkZXIgb3IgaW4gdGhlIHJvb3QgaWYgbm8gZm9sZGVyIGlzIHNwZWNpZmllZC5cbiAqXG4gKiBAcGFyYW0gY3dkIC0gVGhlIGN1cnJlbnQgd29ya2luZyBmb2xkZXIgd2hlcmUgYHBhY2thZ2UuanNvbmAgaXMgbG9jYXRlZC5cbiAqIEByZXR1cm5zIFRoZSByZXNvbHZlZCBwYXRoIHRvIHRoZSBgcGFja2FnZS5qc29uYCBmaWxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGFja2FnZUpzb25QYXRoKGN3ZD86IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBlbnN1cmVOb25OdWxsYWJsZShcbiAgICByZXNvbHZlUGF0aEZyb21Sb290KG5vcm1hbGl6ZU9wdGlvbmFsUHJvcGVydGllczxSZXNvbHZlUGF0aEZyb21Sb290UGFyYW1zPih7IGN3ZCwgcGF0aDogT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuUGFja2FnZUpzb24gfSkpLFxuICAgICdDb3VsZCBub3QgZGV0ZXJtaW5lIHRoZSBwYWNrYWdlLmpzb24gcGF0aCdcbiAgKTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgcGF0aCB0byB0aGUgYHBhY2thZ2UtbG9jay5qc29uYCBmaWxlIGluIHRoZSBzcGVjaWZpZWQgZm9sZGVyIG9yIGluIHRoZSByb290IGlmIG5vIGZvbGRlciBpcyBzcGVjaWZpZWQuXG4gKlxuICogQHBhcmFtIGN3ZCAtIFRoZSBjdXJyZW50IHdvcmtpbmcgZm9sZGVyIHdoZXJlIGBwYWNrYWdlLWxvY2suanNvbmAgaXMgbG9jYXRlZC5cbiAqIEByZXR1cm5zIFRoZSByZXNvbHZlZCBwYXRoIHRvIHRoZSBgcGFja2FnZS1sb2NrLmpzb25gIGZpbGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYWNrYWdlTG9ja0pzb25QYXRoKGN3ZD86IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBlbnN1cmVOb25OdWxsYWJsZShcbiAgICByZXNvbHZlUGF0aEZyb21Sb290KG5vcm1hbGl6ZU9wdGlvbmFsUHJvcGVydGllczxSZXNvbHZlUGF0aEZyb21Sb290UGFyYW1zPih7IGN3ZCwgcGF0aDogT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuUGFja2FnZUxvY2tKc29uIH0pKSxcbiAgICAnQ291bGQgbm90IGRldGVybWluZSB0aGUgcGFja2FnZS1sb2NrLmpzb24gcGF0aCdcbiAgKTtcbn1cblxuLyoqXG4gKiBSZWFkcyB0aGUgYHBhY2thZ2UuanNvbmAgZmlsZSBmcm9tIHRoZSBzcGVjaWZpZWQgZm9sZGVyIG9yIGZyb20gdGhlIHJvb3QgaWYgbm8gZm9sZGVyIGlzIHNwZWNpZmllZC5cbiAqXG4gKiBAcGFyYW0gY3dkIC0gVGhlIGN1cnJlbnQgd29ya2luZyBmb2xkZXIgd2hlcmUgYHBhY2thZ2UuanNvbmAgaXMgbG9jYXRlZC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgcGFyc2VkIGBQYWNrYWdlSnNvbmAgb2JqZWN0LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVhZFBhY2thZ2VKc29uKGN3ZD86IHN0cmluZyk6IFByb21pc2U8UGFja2FnZUpzb24+IHtcbiAgcmV0dXJuIGF3YWl0IHJlYWRKc29uPFBhY2thZ2VKc29uPihnZXRQYWNrYWdlSnNvblBhdGgoY3dkKSk7XG59XG5cbi8qKlxuICogUmVhZHMgdGhlIGBwYWNrYWdlLmpzb25gIGZpbGUgZnJvbSB0aGUgc3BlY2lmaWVkIGZvbGRlciBvciBmcm9tIHRoZSByb290IGlmIG5vIGZvbGRlciBpcyBzcGVjaWZpZWQuXG4gKlxuICogQHBhcmFtIGN3ZCAtIFRoZSBjdXJyZW50IHdvcmtpbmcgZm9sZGVyIHdoZXJlIGBwYWNrYWdlLmpzb25gIGlzIGxvY2F0ZWQuXG4gKiBAcmV0dXJucyBUaGUgcGFyc2VkIGBQYWNrYWdlSnNvbmAgb2JqZWN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVhZFBhY2thZ2VKc29uU3luYyhjd2Q/OiBzdHJpbmcpOiBQYWNrYWdlSnNvbiB7XG4gIHJldHVybiByZWFkSnNvblN5bmM8UGFja2FnZUpzb24+KGdldFBhY2thZ2VKc29uUGF0aChjd2QpKTtcbn1cblxuLyoqXG4gKiBSZWFkcyB0aGUgYHBhY2thZ2UtbG9jay5qc29uYCBmaWxlIGZyb20gdGhlIHNwZWNpZmllZCBmb2xkZXIgb3IgZnJvbSB0aGUgcm9vdCBpZiBubyBmb2xkZXIgaXMgc3BlY2lmaWVkLlxuICpcbiAqIEBwYXJhbSBjd2QgLSBUaGUgY3VycmVudCB3b3JraW5nIGZvbGRlciB3aGVyZSBgcGFja2FnZS1sb2NrLmpzb25gIGlzIGxvY2F0ZWQuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIHBhcnNlZCBgUGFja2FnZUpzb25gIG9iamVjdC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWRQYWNrYWdlTG9ja0pzb24oY3dkPzogc3RyaW5nKTogUHJvbWlzZTxQYWNrYWdlTG9ja0pzb24+IHtcbiAgcmV0dXJuIGF3YWl0IHJlYWRKc29uPFBhY2thZ2VMb2NrSnNvbj4oZ2V0UGFja2FnZUxvY2tKc29uUGF0aChjd2QpKTtcbn1cblxuLyoqXG4gKiBSZWFkcyB0aGUgYHBhY2thZ2UtbG9jay5qc29uYCBmaWxlIGZyb20gdGhlIHNwZWNpZmllZCBmb2xkZXIgb3IgZnJvbSB0aGUgcm9vdCBpZiBubyBmb2xkZXIgaXMgc3BlY2lmaWVkLlxuICpcbiAqIEBwYXJhbSBjd2QgLSBUaGUgY3VycmVudCB3b3JraW5nIGZvbGRlciB3aGVyZSBgcGFja2FnZS1sb2NrLmpzb25gIGlzIGxvY2F0ZWQuXG4gKiBAcmV0dXJucyBUaGUgcGFyc2VkIGBQYWNrYWdlTG9ja0pzb25gIG9iamVjdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlYWRQYWNrYWdlTG9ja0pzb25TeW5jKGN3ZD86IHN0cmluZyk6IFBhY2thZ2VMb2NrSnNvbiB7XG4gIHJldHVybiByZWFkSnNvblN5bmM8UGFja2FnZUxvY2tKc29uPihnZXRQYWNrYWdlTG9ja0pzb25QYXRoKGN3ZCkpO1xufVxuXG4vKipcbiAqIFdyaXRlcyB0aGUgcHJvdmlkZWQgYFBhY2thZ2VKc29uYCBvYmplY3QgdG8gdGhlIGBwYWNrYWdlLmpzb25gIGZpbGUgaW4gdGhlIHNwZWNpZmllZCBmb2xkZXIgb3IgaW4gdGhlIHJvb3QuXG4gKlxuICogQHBhcmFtIHBhY2thZ2VKc29uIC0gVGhlIGBQYWNrYWdlSnNvbmAgb2JqZWN0IHRvIHdyaXRlLlxuICogQHBhcmFtIGN3ZCAtIFRoZSBjdXJyZW50IHdvcmtpbmcgZm9sZGVyIHdoZXJlIGBwYWNrYWdlLmpzb25gIGlzIGxvY2F0ZWQuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGZpbGUgaGFzIGJlZW4gd3JpdHRlbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdyaXRlUGFja2FnZUpzb24ocGFja2FnZUpzb246IFBhY2thZ2VKc29uLCBjd2Q/OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgd3JpdGVKc29uKGdldFBhY2thZ2VKc29uUGF0aChjd2QpLCBwYWNrYWdlSnNvbik7XG59XG5cbi8qKlxuICogV3JpdGVzIHRoZSBwcm92aWRlZCBgUGFja2FnZUpzb25gIG9iamVjdCB0byB0aGUgYHBhY2thZ2UuanNvbmAgZmlsZSBpbiB0aGUgc3BlY2lmaWVkIGZvbGRlciBvciBpbiB0aGUgcm9vdC5cbiAqXG4gKiBAcGFyYW0gcGFja2FnZUpzb24gLSBUaGUgYFBhY2thZ2VKc29uYCBvYmplY3QgdG8gd3JpdGUuXG4gKiBAcGFyYW0gY3dkIC0gVGhlIGN1cnJlbnQgd29ya2luZyBmb2xkZXIgd2hlcmUgYHBhY2thZ2UuanNvbmAgaXMgbG9jYXRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdyaXRlUGFja2FnZUpzb25TeW5jKHBhY2thZ2VKc29uOiBQYWNrYWdlSnNvbiwgY3dkPzogc3RyaW5nKTogdm9pZCB7XG4gIHdyaXRlSnNvblN5bmMoZ2V0UGFja2FnZUpzb25QYXRoKGN3ZCksIHBhY2thZ2VKc29uKTtcbn1cblxuLyoqXG4gKiBXcml0ZXMgdGhlIHByb3ZpZGVkIGBQYWNrYWdlSnNvbmAgb2JqZWN0IHRvIHRoZSBgcGFja2FnZS1sb2NrLmpzb25gIGZpbGUgaW4gdGhlIHNwZWNpZmllZCBmb2xkZXIgb3IgaW4gdGhlIHJvb3QuXG4gKlxuICogQHBhcmFtIHBhY2thZ2VMb2NrSnNvbiAtIFRoZSBgUGFja2FnZUxvY2tKc29uYCBvYmplY3QgdG8gd3JpdGUuXG4gKiBAcGFyYW0gY3dkIC0gVGhlIGN1cnJlbnQgd29ya2luZyBmb2xkZXIgd2hlcmUgYHBhY2thZ2UtbG9jay5qc29uYCBpcyBsb2NhdGVkLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBmaWxlIGhhcyBiZWVuIHdyaXR0ZW4uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3cml0ZVBhY2thZ2VMb2NrSnNvbihwYWNrYWdlTG9ja0pzb246IFBhY2thZ2VMb2NrSnNvbiwgY3dkPzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IHdyaXRlSnNvbihnZXRQYWNrYWdlTG9ja0pzb25QYXRoKGN3ZCksIHBhY2thZ2VMb2NrSnNvbik7XG59XG5cbi8qKlxuICogV3JpdGVzIHRoZSBwcm92aWRlZCBgUGFja2FnZUxvY2tKc29uYCBvYmplY3QgdG8gdGhlIGBwYWNrYWdlLWxvY2suanNvbmAgZmlsZSBpbiB0aGUgc3BlY2lmaWVkIGZvbGRlciBvciBpbiB0aGUgcm9vdC5cbiAqXG4gKiBAcGFyYW0gcGFja2FnZUxvY2tKc29uIC0gVGhlIGBQYWNrYWdlTG9ja0pzb25gIG9iamVjdCB0byB3cml0ZS5cbiAqIEBwYXJhbSBjd2QgLSBUaGUgY3VycmVudCB3b3JraW5nIGZvbGRlciB3aGVyZSBgcGFja2FnZS1sb2NrLmpzb25gIGlzIGxvY2F0ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZVBhY2thZ2VMb2NrSnNvblN5bmMocGFja2FnZUxvY2tKc29uOiBQYWNrYWdlTG9ja0pzb24sIGN3ZD86IHN0cmluZyk6IHZvaWQge1xuICB3cml0ZUpzb25TeW5jKGdldFBhY2thZ2VMb2NrSnNvblBhdGgoY3dkKSwgcGFja2FnZUxvY2tKc29uKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWlCQSwwQkFBNEM7QUFDNUMsd0NBQXdDO0FBQ3hDLHlCQUFrQztBQUNsQyxrQkFPTztBQUNQLGtCQUFvQztBQTZEcEMsZUFBc0Isc0JBQ3BCLFFBQ0EsVUFBd0MsQ0FBQyxHQUMxQjtBQUNmLFFBQU07QUFBQSxJQUNKO0FBQUEsSUFDQTtBQUFBLEVBQ0YsSUFBSTtBQUNKLFlBQU0sMEJBQXNCLGlEQUF5RCxFQUFFLFFBQVEsTUFBTSx5QkFBeUIsR0FBRyxHQUFHLG9CQUFvQixDQUFDLENBQUM7QUFDNUo7QUFTQSxlQUFzQixnQkFDcEIsUUFDQSxVQUFrQyxDQUFDLEdBQ3BCO0FBQ2YsUUFBTTtBQUFBLElBQ0o7QUFBQSxJQUNBO0FBQUEsRUFDRixJQUFJO0FBQ0osWUFBTSwwQkFBc0IsaURBQXlELEVBQUUsUUFBUSxNQUFNLG1CQUFtQixHQUFHLEdBQUcsb0JBQW9CLENBQUMsQ0FBQztBQUN0SjtBQVFPLFNBQVMsb0JBQ2QsUUFDQSxVQUFzQyxDQUFDLEdBQ2pDO0FBQ04sUUFBTTtBQUFBLElBQ0o7QUFBQSxJQUNBO0FBQUEsRUFDRixJQUFJO0FBQ0osb0NBQTBCLGlEQUE2RCxFQUFFLFFBQVEsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLG9CQUFvQixDQUFDLENBQUM7QUFDeEo7QUFTQSxlQUFzQixvQkFDcEIsUUFDQSxVQUFzQyxDQUFDLEdBQ3hCO0FBQ2YsUUFBTTtBQUFBLElBQ0o7QUFBQSxJQUNBO0FBQUEsRUFDRixJQUFJO0FBQ0osWUFBTSwwQkFBc0IsaURBQXlELEVBQUUsUUFBUSxNQUFNLHVCQUF1QixHQUFHLEdBQUcsb0JBQW9CLENBQUMsQ0FBQztBQUMxSjtBQVFPLFNBQVMsd0JBQ2QsUUFDQSxVQUEwQyxDQUFDLEdBQ3JDO0FBQ04sUUFBTTtBQUFBLElBQ0o7QUFBQSxJQUNBO0FBQUEsRUFDRixJQUFJO0FBQ0osb0NBQThCLGlEQUFpRSxFQUFFLFFBQVEsTUFBTSx1QkFBdUIsR0FBRyxHQUFHLG9CQUFvQixDQUFDLENBQUM7QUFDcEs7QUFRTyxTQUFTLHlCQUF5QixLQUFzQjtBQUM3RCxhQUFPO0FBQUEsUUFDTCxxQ0FBb0IsaURBQXVELEVBQUUsS0FBSyxNQUFNLDBEQUF3QixrQkFBa0IsQ0FBQyxDQUFDO0FBQUEsSUFDcEk7QUFBQSxFQUNGO0FBQ0Y7QUFRTyxTQUFTLG1CQUFtQixLQUFzQjtBQUN2RCxhQUFPO0FBQUEsUUFDTCxxQ0FBb0IsaURBQXVELEVBQUUsS0FBSyxNQUFNLDBEQUF3QixZQUFZLENBQUMsQ0FBQztBQUFBLElBQzlIO0FBQUEsRUFDRjtBQUNGO0FBUU8sU0FBUyx1QkFBdUIsS0FBc0I7QUFDM0QsYUFBTztBQUFBLFFBQ0wscUNBQW9CLGlEQUF1RCxFQUFFLEtBQUssTUFBTSwwREFBd0IsZ0JBQWdCLENBQUMsQ0FBQztBQUFBLElBQ2xJO0FBQUEsRUFDRjtBQUNGO0FBUUEsZUFBc0IsZ0JBQWdCLEtBQW9DO0FBQ3hFLFNBQU8sVUFBTSxzQkFBc0IsbUJBQW1CLEdBQUcsQ0FBQztBQUM1RDtBQVFPLFNBQVMsb0JBQW9CLEtBQTJCO0FBQzdELGFBQU8sMEJBQTBCLG1CQUFtQixHQUFHLENBQUM7QUFDMUQ7QUFRQSxlQUFzQixvQkFBb0IsS0FBd0M7QUFDaEYsU0FBTyxVQUFNLHNCQUEwQix1QkFBdUIsR0FBRyxDQUFDO0FBQ3BFO0FBUU8sU0FBUyx3QkFBd0IsS0FBK0I7QUFDckUsYUFBTywwQkFBOEIsdUJBQXVCLEdBQUcsQ0FBQztBQUNsRTtBQVNBLGVBQXNCLGlCQUFpQixhQUEwQixLQUE2QjtBQUM1RixZQUFNLHVCQUFVLG1CQUFtQixHQUFHLEdBQUcsV0FBVztBQUN0RDtBQVFPLFNBQVMscUJBQXFCLGFBQTBCLEtBQW9CO0FBQ2pGLGlDQUFjLG1CQUFtQixHQUFHLEdBQUcsV0FBVztBQUNwRDtBQVNBLGVBQXNCLHFCQUFxQixpQkFBa0MsS0FBNkI7QUFDeEcsWUFBTSx1QkFBVSx1QkFBdUIsR0FBRyxHQUFHLGVBQWU7QUFDOUQ7QUFRTyxTQUFTLHlCQUF5QixpQkFBa0MsS0FBb0I7QUFDN0YsaUNBQWMsdUJBQXVCLEdBQUcsR0FBRyxlQUFlO0FBQzVEOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Contains utility functions for NPM package.json.
6
6
  */
7
- import type { PackageJson, Promisable } from 'type-fest';
7
+ import type { PackageJson, Promisable } from 'type-fest' with { 'resolution-mode': 'import' };
8
8
  /**
9
9
  * Options for {@link editNpmShrinkWrapJson}.
10
10
  */
@@ -19,6 +19,8 @@ export interface EditPackageJsonOptions {
19
19
  readonly cwd?: string;
20
20
  /**
21
21
  * If `true`, skips editing if the file does not exist.
22
+ *
23
+ * @default `false`
22
24
  */
23
25
  readonly shouldSkipIfMissing?: boolean;
24
26
  }
@@ -133,6 +133,7 @@ __export(root_exports, {
133
133
  });
134
134
  module.exports = __toCommonJS(root_exports);
135
135
  var import_node_fs = require('node:fs');
136
+ var import_object_utils = require('../object-utils.cjs');
136
137
  var import_path = require('../path.cjs');
137
138
  var import_exec = require('./exec.cjs');
138
139
  var import_obsidian_dev_utils_repo_paths = require('./obsidian-dev-utils-repo-paths.cjs');
@@ -159,17 +160,31 @@ function getRootFolder(cwd) {
159
160
  }
160
161
  return null;
161
162
  }
162
- function resolvePathFromRoot(path, cwd) {
163
+ function resolvePathFromRoot(params) {
164
+ const {
165
+ cwd,
166
+ path
167
+ } = params;
163
168
  const rootFolder = getRootFolder(cwd);
164
169
  if (!rootFolder) {
165
170
  return null;
166
171
  }
167
172
  return (0, import_path.resolve)(rootFolder, path);
168
173
  }
169
- function resolvePathFromRootSafe(path, cwd) {
170
- return resolvePathFromRoot(path, cwd) ?? path;
174
+ function resolvePathFromRootSafe(params) {
175
+ const {
176
+ cwd,
177
+ path
178
+ } = params;
179
+ return resolvePathFromRoot((0, import_object_utils.normalizeOptionalProperties)({ cwd, path })) ?? path;
171
180
  }
172
- function toRelativeFromRoot(path, cwd) {
181
+ function toRelativeFromRoot(params) {
182
+ const {
183
+ cwd
184
+ } = params;
185
+ let {
186
+ path
187
+ } = params;
173
188
  const rootFolder = getRootFolder(cwd);
174
189
  if (!rootFolder) {
175
190
  return null;
@@ -185,4 +200,4 @@ function toRelativeFromRoot(path, cwd) {
185
200
  resolvePathFromRootSafe,
186
201
  toRelativeFromRoot
187
202
  });
188
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9yb290LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQ29udGFpbnMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIGV4ZWN1dGluZyBjb21tYW5kcyBmcm9tIHRoZSByb290IGZvbGRlciBvZiBhIHByb2plY3QsXG4gKiByZXNvbHZpbmcgcGF0aHMgcmVsYXRpdmUgdG8gdGhlIHJvb3QuXG4gKi9cblxuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gJ25vZGU6ZnMnO1xuXG5pbXBvcnQgdHlwZSB7XG4gIENvbW1hbmRQYXJ0LFxuICBFeGVjRGV0YWlsZWRPcHRpb25zLFxuICBFeGVjT3B0aW9ucyxcbiAgRXhlY1Jlc3VsdCxcbiAgRXhlY1NpbXBsZU9wdGlvbnNcbn0gZnJvbSAnLi9leGVjLnRzJztcblxuaW1wb3J0IHtcbiAgZGlybmFtZSxcbiAgam9pbixcbiAgcmVsYXRpdmUsXG4gIHJlc29sdmUsXG4gIHRvUG9zaXhQYXRoXG59IGZyb20gJy4uL3BhdGgudHMnO1xuaW1wb3J0IHsgZXhlYyB9IGZyb20gJy4vZXhlYy50cyc7XG5pbXBvcnQgeyBPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzIH0gZnJvbSAnLi9vYnNpZGlhbi1kZXYtdXRpbHMtcmVwby1wYXRocy50cyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIGV4ZWNGcm9tUm9vdH0uXG4gKi9cbmV4cG9ydCB0eXBlIEV4ZWNGcm9tUm9vdE9wdGlvbnMgPSBFeGVjT3B0aW9ucztcblxuLyoqXG4gKiBFeGVjdXRlcyBhIGNvbW1hbmQgZnJvbSB0aGUgcm9vdCBmb2xkZXIgb2YgdGhlIHByb2plY3QuXG4gKlxuICogQHBhcmFtIGNvbW1hbmQgLSBUaGUgY29tbWFuZCB0byBleGVjdXRlLiBJdCBjYW4gYmUgYSBzdHJpbmcgb3IgYW4gYXJyYXkgb2Ygc3RyaW5ncy5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIHRoZSBleGVjdXRpb24uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIG91dHB1dCBvZiB0aGUgY29tbWFuZC5cbiAqIEB0aHJvd3MgSWYgdGhlIGNvbW1hbmQgZmFpbHMgd2l0aCBhIG5vbi16ZXJvIGV4aXQgY29kZSBhbmQgaWdub3JlRXhpdENvZGUgaXMgYGZhbHNlYC5cbiAqICAgICAgICAgVGhlIGVycm9yIG1lc3NhZ2UgaW5jbHVkZXMgdGhlIGV4aXQgY29kZSBhbmQgc3RkZXJyLlxuICogICAgICAgICBJZiBhbiBlcnJvciBvY2N1cnMgZHVyaW5nIHRoZSBleGVjdXRpb24gYW5kIGlnbm9yZUV4aXRDb2RlIGlzIGB0cnVlYCxcbiAqICAgICAgICAgdGhlIGVycm9yIGlzIHJlc29sdmVkIHdpdGggdGhlIHN0ZG91dCBhbmQgc3RkZXJyLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZXhlY0Zyb21Sb290KGNvbW1hbmQ6IENvbW1hbmRQYXJ0W10gfCBzdHJpbmcsIG9wdGlvbnM/OiBFeGVjU2ltcGxlT3B0aW9ucyk6IFByb21pc2U8c3RyaW5nPjtcbi8qKlxuICogRXhlY3V0ZXMgYSBjb21tYW5kIGZyb20gdGhlIHJvb3QgZm9sZGVyIG9mIHRoZSBwcm9qZWN0LlxuICpcbiAqIEBwYXJhbSBjb21tYW5kIC0gVGhlIGNvbW1hbmQgdG8gZXhlY3V0ZS4gSXQgY2FuIGJlIGEgc3RyaW5nIG9yIGFuIGFycmF5IG9mIHN0cmluZ3MuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciB0aGUgZXhlY3V0aW9uLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aXRoIEV4ZWNSZXN1bHQgb2JqZWN0LlxuICogICAgICAgICAgVGhlIEV4ZWNSZXN1bHQgb2JqZWN0IGNvbnRhaW5zIHRoZSBleGl0IGNvZGUsIGV4aXQgc2lnbmFsLCBzdGRlcnIsIGFuZCBzdGRvdXQuXG4gKiBAdGhyb3dzIElmIHRoZSBjb21tYW5kIGZhaWxzIHdpdGggYSBub24temVybyBleGl0IGNvZGUgYW5kIGlnbm9yZUV4aXRDb2RlIGlzIGBmYWxzZWAuXG4gKiAgICAgICAgIFRoZSBlcnJvciBtZXNzYWdlIGluY2x1ZGVzIHRoZSBleGl0IGNvZGUgYW5kIHN0ZGVyci5cbiAqICAgICAgICAgSWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgZXhlY3V0aW9uIGFuZCBpZ25vcmVFeGl0Q29kZSBpcyBgdHJ1ZWAsXG4gKiAgICAgICAgIHRoZSBlcnJvciBpcyByZXNvbHZlZCB3aXRoIHRoZSBzdGRvdXQgYW5kIHN0ZGVyci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4ZWNGcm9tUm9vdChjb21tYW5kOiBDb21tYW5kUGFydFtdIHwgc3RyaW5nLCBvcHRpb25zOiBFeGVjRGV0YWlsZWRPcHRpb25zKTogUHJvbWlzZTxFeGVjUmVzdWx0Pjtcbi8qKlxuICogRXhlY3V0ZXMgYSBjb21tYW5kIGZyb20gdGhlIHJvb3QgZm9sZGVyIG9mIHRoZSBwcm9qZWN0LlxuICpcbiAqIEBwYXJhbSBjb21tYW5kIC0gVGhlIGNvbW1hbmQgdG8gZXhlY3V0ZS4gSXQgY2FuIGJlIGEgc3RyaW5nIG9yIGFuIGFycmF5IG9mIHN0cmluZ3MuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciB0aGUgZXhlY3V0aW9uLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBvdXRwdXQgb2YgdGhlIGNvbW1hbmQgb3IgYW4gRXhlY1Jlc3VsdCBvYmplY3QuXG4gKiAgICAgICAgICBUaGUgRXhlY1Jlc3VsdCBvYmplY3QgY29udGFpbnMgdGhlIGV4aXQgY29kZSwgZXhpdCBzaWduYWwsIHN0ZGVyciwgYW5kIHN0ZG91dC5cbiAqIEB0aHJvd3MgSWYgdGhlIGNvbW1hbmQgZmFpbHMgd2l0aCBhIG5vbi16ZXJvIGV4aXQgY29kZSBhbmQgaWdub3JlRXhpdENvZGUgaXMgYGZhbHNlYC5cbiAqICAgICAgICAgVGhlIGVycm9yIG1lc3NhZ2UgaW5jbHVkZXMgdGhlIGV4aXQgY29kZSBhbmQgc3RkZXJyLlxuICogICAgICAgICBJZiBhbiBlcnJvciBvY2N1cnMgZHVyaW5nIHRoZSBleGVjdXRpb24gYW5kIGlnbm9yZUV4aXRDb2RlIGlzIGB0cnVlYCxcbiAqICAgICAgICAgdGhlIGVycm9yIGlzIHJlc29sdmVkIHdpdGggdGhlIHN0ZG91dCBhbmQgc3RkZXJyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXhlY0Zyb21Sb290KGNvbW1hbmQ6IENvbW1hbmRQYXJ0W10gfCBzdHJpbmcsIG9wdGlvbnM6IEV4ZWNGcm9tUm9vdE9wdGlvbnMgPSB7fSk6IFByb21pc2U8RXhlY1Jlc3VsdCB8IHN0cmluZz4ge1xuICBsZXQgcm9vdCA9IGdldFJvb3RGb2xkZXIob3B0aW9ucy5jd2QpO1xuXG4gIGlmICghcm9vdCkge1xuICAgIGlmIChvcHRpb25zLnNob3VsZEZhaWxJZkNhbGxlZEZyb21PdXRzaWRlUm9vdCA/PyB0cnVlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBmaW5kIHJvb3QgZm9sZGVyJyk7XG4gICAgfVxuXG4gICAgcm9vdCA9IG9wdGlvbnMuY3dkID8/IHByb2Nlc3MuY3dkKCk7XG4gIH1cblxuICBpZiAob3B0aW9ucy5zaG91bGRJbmNsdWRlRGV0YWlscykge1xuICAgIHJldHVybiBleGVjKGNvbW1hbmQsIHsgLi4ub3B0aW9ucywgY3dkOiByb290LCBzaG91bGRJbmNsdWRlRGV0YWlsczogdHJ1ZSB9KTtcbiAgfVxuXG4gIHJldHVybiBleGVjKGNvbW1hbmQsIHsgLi4ub3B0aW9ucywgY3dkOiByb290LCBzaG91bGRJbmNsdWRlRGV0YWlsczogZmFsc2UgfSk7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSByb290IGZvbGRlciBvZiB0aGUgcHJvamVjdC5cbiAqXG4gKiBAcGFyYW0gY3dkIC0gVGhlIGN1cnJlbnQgd29ya2luZyBmb2xkZXIgdG8gcmVzb2x2ZSBmcm9tLlxuICogQHJldHVybnMgVGhlIHBhdGggdG8gdGhlIHJvb3QgZm9sZGVyLlxuICogQHRocm93cyBJZiB0aGUgcm9vdCBmb2xkZXIgY2Fubm90IGJlIGZvdW5kLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Um9vdEZvbGRlcihjd2Q/OiBzdHJpbmcpOiBudWxsIHwgc3RyaW5nIHtcbiAgbGV0IGN1cnJlbnRGb2xkZXIgPSB0b1Bvc2l4UGF0aChjd2QgPz8gcHJvY2Vzcy5jd2QoKSk7XG4gIHdoaWxlIChjdXJyZW50Rm9sZGVyICE9PSBPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLkN1cnJlbnRGb2xkZXIgYXMgc3RyaW5nICYmIGN1cnJlbnRGb2xkZXIgIT09IE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuUm9vdEZvbGRlciBhcyBzdHJpbmcpIHtcbiAgICBpZiAoZXhpc3RzU3luYyhqb2luKGN1cnJlbnRGb2xkZXIsIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuUGFja2FnZUpzb24pKSkge1xuICAgICAgcmV0dXJuIHRvUG9zaXhQYXRoKGN1cnJlbnRGb2xkZXIpO1xuICAgIH1cbiAgICBjdXJyZW50Rm9sZGVyID0gZGlybmFtZShjdXJyZW50Rm9sZGVyKTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIGEgcGF0aCByZWxhdGl2ZSB0byB0aGUgcm9vdCBmb2xkZXIgb2YgdGhlIHByb2plY3QuXG4gKlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCB0byByZXNvbHZlLlxuICogQHBhcmFtIGN3ZCAtIFRoZSBjdXJyZW50IHdvcmtpbmcgZm9sZGVyIHRvIHJlc29sdmUgZnJvbS5cbiAqIEByZXR1cm5zIFRoZSByZXNvbHZlZCBhYnNvbHV0ZSBwYXRoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVBhdGhGcm9tUm9vdChwYXRoOiBzdHJpbmcsIGN3ZD86IHN0cmluZyk6IG51bGwgfCBzdHJpbmcge1xuICBjb25zdCByb290Rm9sZGVyID0gZ2V0Um9vdEZvbGRlcihjd2QpO1xuICBpZiAoIXJvb3RGb2xkZXIpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiByZXNvbHZlKHJvb3RGb2xkZXIsIHBhdGgpO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIGEgcGF0aCByZWxhdGl2ZSB0byB0aGUgcm9vdCBmb2xkZXIsIHJldHVybmluZyB0aGUgcmVzb2x2ZWQgcGF0aCBvciB0aGUgb3JpZ2luYWwgcGF0aCBpZiBpdCBkb2VzIG5vdCBleGlzdC5cbiAqXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSBwYXRoIHRvIHJlc29sdmUuXG4gKiBAcGFyYW0gY3dkIC0gVGhlIGN1cnJlbnQgd29ya2luZyBmb2xkZXIgdG8gcmVzb2x2ZSBmcm9tLlxuICogQHJldHVybnMgVGhlIHJlc29sdmVkIHBhdGggb3IgdGhlIG9yaWdpbmFsIHBhdGggaWYgaXQgZG9lcyBub3QgZXhpc3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlUGF0aEZyb21Sb290U2FmZShwYXRoOiBzdHJpbmcsIGN3ZD86IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiByZXNvbHZlUGF0aEZyb21Sb290KHBhdGgsIGN3ZCkgPz8gcGF0aDtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBhYnNvbHV0ZSBwYXRoIHRvIGEgcmVsYXRpdmUgcGF0aCBmcm9tIHRoZSByb290IGZvbGRlciBvZiB0aGUgcHJvamVjdC5cbiAqXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSBhYnNvbHV0ZSBwYXRoIHRvIGNvbnZlcnQuXG4gKiBAcGFyYW0gY3dkIC0gVGhlIGN1cnJlbnQgd29ya2luZyBmb2xkZXIgdG8gcmVzb2x2ZSBmcm9tLlxuICogQHJldHVybnMgVGhlIHJlbGF0aXZlIHBhdGggZnJvbSB0aGUgcm9vdCBmb2xkZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1JlbGF0aXZlRnJvbVJvb3QocGF0aDogc3RyaW5nLCBjd2Q/OiBzdHJpbmcpOiBudWxsIHwgc3RyaW5nIHtcbiAgY29uc3Qgcm9vdEZvbGRlciA9IGdldFJvb3RGb2xkZXIoY3dkKTtcbiAgaWYgKCFyb290Rm9sZGVyKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwYXRoID0gdG9Qb3NpeFBhdGgocGF0aCk7XG4gIHJldHVybiByZWxhdGl2ZShyb290Rm9sZGVyLCBwYXRoKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0EscUJBQTJCO0FBVTNCLGtCQU1PO0FBQ1Asa0JBQXFCO0FBQ3JCLDJDQUEwQztBQTRDbkMsU0FBUyxhQUFhLFNBQWlDLFVBQStCLENBQUMsR0FBaUM7QUFDN0gsTUFBSSxPQUFPLGNBQWMsUUFBUSxHQUFHO0FBRXBDLE1BQUksQ0FBQyxNQUFNO0FBQ1QsUUFBSSxRQUFRLHFDQUFxQyxNQUFNO0FBQ3JELFlBQU0sSUFBSSxNQUFNLDRCQUE0QjtBQUFBLElBQzlDO0FBRUEsV0FBTyxRQUFRLE9BQU8sUUFBUSxJQUFJO0FBQUEsRUFDcEM7QUFFQSxNQUFJLFFBQVEsc0JBQXNCO0FBQ2hDLGVBQU8sa0JBQUssU0FBUyxFQUFFLEdBQUcsU0FBUyxLQUFLLE1BQU0sc0JBQXNCLEtBQUssQ0FBQztBQUFBLEVBQzVFO0FBRUEsYUFBTyxrQkFBSyxTQUFTLEVBQUUsR0FBRyxTQUFTLEtBQUssTUFBTSxzQkFBc0IsTUFBTSxDQUFDO0FBQzdFO0FBU08sU0FBUyxjQUFjLEtBQTZCO0FBQ3pELE1BQUksb0JBQWdCLHlCQUFZLE9BQU8sUUFBUSxJQUFJLENBQUM7QUFDcEQsU0FBTyxrQkFBa0IsK0RBQTBCLGlCQUEyQixrQkFBa0IsK0RBQTBCLFlBQXNCO0FBQzlJLFlBQUksK0JBQVcsa0JBQUssZUFBZSwrREFBMEIsV0FBVyxDQUFDLEdBQUc7QUFDMUUsaUJBQU8seUJBQVksYUFBYTtBQUFBLElBQ2xDO0FBQ0Esd0JBQWdCLHFCQUFRLGFBQWE7QUFBQSxFQUN2QztBQUVBLFNBQU87QUFDVDtBQVNPLFNBQVMsb0JBQW9CLE1BQWMsS0FBNkI7QUFDN0UsUUFBTSxhQUFhLGNBQWMsR0FBRztBQUNwQyxNQUFJLENBQUMsWUFBWTtBQUNmLFdBQU87QUFBQSxFQUNUO0FBRUEsYUFBTyxxQkFBUSxZQUFZLElBQUk7QUFDakM7QUFTTyxTQUFTLHdCQUF3QixNQUFjLEtBQXNCO0FBQzFFLFNBQU8sb0JBQW9CLE1BQU0sR0FBRyxLQUFLO0FBQzNDO0FBU08sU0FBUyxtQkFBbUIsTUFBYyxLQUE2QjtBQUM1RSxRQUFNLGFBQWEsY0FBYyxHQUFHO0FBQ3BDLE1BQUksQ0FBQyxZQUFZO0FBQ2YsV0FBTztBQUFBLEVBQ1Q7QUFFQSxhQUFPLHlCQUFZLElBQUk7QUFDdkIsYUFBTyxzQkFBUyxZQUFZLElBQUk7QUFDbEM7IiwKICAibmFtZXMiOiBbXQp9Cg==
203
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9yb290LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQ29udGFpbnMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIGV4ZWN1dGluZyBjb21tYW5kcyBmcm9tIHRoZSByb290IGZvbGRlciBvZiBhIHByb2plY3QsXG4gKiByZXNvbHZpbmcgcGF0aHMgcmVsYXRpdmUgdG8gdGhlIHJvb3QuXG4gKi9cblxuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gJ25vZGU6ZnMnO1xuXG5pbXBvcnQgdHlwZSB7XG4gIENvbW1hbmRQYXJ0LFxuICBFeGVjRGV0YWlsZWRPcHRpb25zLFxuICBFeGVjT3B0aW9ucyxcbiAgRXhlY1Jlc3VsdCxcbiAgRXhlY1NpbXBsZU9wdGlvbnNcbn0gZnJvbSAnLi9leGVjLnRzJztcblxuaW1wb3J0IHsgbm9ybWFsaXplT3B0aW9uYWxQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vb2JqZWN0LXV0aWxzLnRzJztcbmltcG9ydCB7XG4gIGRpcm5hbWUsXG4gIGpvaW4sXG4gIHJlbGF0aXZlLFxuICByZXNvbHZlLFxuICB0b1Bvc2l4UGF0aFxufSBmcm9tICcuLi9wYXRoLnRzJztcbmltcG9ydCB7IGV4ZWMgfSBmcm9tICcuL2V4ZWMudHMnO1xuaW1wb3J0IHsgT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocyB9IGZyb20gJy4vb2JzaWRpYW4tZGV2LXV0aWxzLXJlcG8tcGF0aHMudHMnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBleGVjRnJvbVJvb3R9LlxuICovXG5leHBvcnQgdHlwZSBFeGVjRnJvbVJvb3RPcHRpb25zID0gRXhlY09wdGlvbnM7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHJlc29sdmVQYXRoRnJvbVJvb3R9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc29sdmVQYXRoRnJvbVJvb3RQYXJhbXMge1xuICAvKipcbiAgICogVGhlIGN1cnJlbnQgd29ya2luZyBmb2xkZXIgdG8gcmVzb2x2ZSBmcm9tLlxuICAgKi9cbiAgcmVhZG9ubHkgY3dkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0aCB0byByZXNvbHZlLlxuICAgKi9cbiAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xufVxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmV9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc29sdmVQYXRoRnJvbVJvb3RTYWZlUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50IHdvcmtpbmcgZm9sZGVyIHRvIHJlc29sdmUgZnJvbS5cbiAgICovXG4gIHJlYWRvbmx5IGN3ZD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhdGggdG8gcmVzb2x2ZS5cbiAgICovXG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbn1cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHRvUmVsYXRpdmVGcm9tUm9vdH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVG9SZWxhdGl2ZUZyb21Sb290UGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50IHdvcmtpbmcgZm9sZGVyIHRvIHJlc29sdmUgZnJvbS5cbiAgICovXG4gIHJlYWRvbmx5IGN3ZD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGFic29sdXRlIHBhdGggdG8gY29udmVydC5cbiAgICovXG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbn1cblxuLyoqXG4gKiBFeGVjdXRlcyBhIGNvbW1hbmQgZnJvbSB0aGUgcm9vdCBmb2xkZXIgb2YgdGhlIHByb2plY3QuXG4gKlxuICogQHBhcmFtIGNvbW1hbmQgLSBUaGUgY29tbWFuZCB0byBleGVjdXRlLiBJdCBjYW4gYmUgYSBzdHJpbmcgb3IgYW4gYXJyYXkgb2Ygc3RyaW5ncy5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIHRoZSBleGVjdXRpb24uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIG91dHB1dCBvZiB0aGUgY29tbWFuZC5cbiAqIEB0aHJvd3MgSWYgdGhlIGNvbW1hbmQgZmFpbHMgd2l0aCBhIG5vbi16ZXJvIGV4aXQgY29kZSBhbmQgaWdub3JlRXhpdENvZGUgaXMgYGZhbHNlYC5cbiAqICAgICAgICAgVGhlIGVycm9yIG1lc3NhZ2UgaW5jbHVkZXMgdGhlIGV4aXQgY29kZSBhbmQgc3RkZXJyLlxuICogICAgICAgICBJZiBhbiBlcnJvciBvY2N1cnMgZHVyaW5nIHRoZSBleGVjdXRpb24gYW5kIGlnbm9yZUV4aXRDb2RlIGlzIGB0cnVlYCxcbiAqICAgICAgICAgdGhlIGVycm9yIGlzIHJlc29sdmVkIHdpdGggdGhlIHN0ZG91dCBhbmQgc3RkZXJyLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZXhlY0Zyb21Sb290KGNvbW1hbmQ6IENvbW1hbmRQYXJ0W10gfCBzdHJpbmcsIG9wdGlvbnM/OiBFeGVjU2ltcGxlT3B0aW9ucyk6IFByb21pc2U8c3RyaW5nPjtcbi8qKlxuICogRXhlY3V0ZXMgYSBjb21tYW5kIGZyb20gdGhlIHJvb3QgZm9sZGVyIG9mIHRoZSBwcm9qZWN0LlxuICpcbiAqIEBwYXJhbSBjb21tYW5kIC0gVGhlIGNvbW1hbmQgdG8gZXhlY3V0ZS4gSXQgY2FuIGJlIGEgc3RyaW5nIG9yIGFuIGFycmF5IG9mIHN0cmluZ3MuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciB0aGUgZXhlY3V0aW9uLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aXRoIEV4ZWNSZXN1bHQgb2JqZWN0LlxuICogICAgICAgICAgVGhlIEV4ZWNSZXN1bHQgb2JqZWN0IGNvbnRhaW5zIHRoZSBleGl0IGNvZGUsIGV4aXQgc2lnbmFsLCBzdGRlcnIsIGFuZCBzdGRvdXQuXG4gKiBAdGhyb3dzIElmIHRoZSBjb21tYW5kIGZhaWxzIHdpdGggYSBub24temVybyBleGl0IGNvZGUgYW5kIGlnbm9yZUV4aXRDb2RlIGlzIGBmYWxzZWAuXG4gKiAgICAgICAgIFRoZSBlcnJvciBtZXNzYWdlIGluY2x1ZGVzIHRoZSBleGl0IGNvZGUgYW5kIHN0ZGVyci5cbiAqICAgICAgICAgSWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgZXhlY3V0aW9uIGFuZCBpZ25vcmVFeGl0Q29kZSBpcyBgdHJ1ZWAsXG4gKiAgICAgICAgIHRoZSBlcnJvciBpcyByZXNvbHZlZCB3aXRoIHRoZSBzdGRvdXQgYW5kIHN0ZGVyci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4ZWNGcm9tUm9vdChjb21tYW5kOiBDb21tYW5kUGFydFtdIHwgc3RyaW5nLCBvcHRpb25zOiBFeGVjRGV0YWlsZWRPcHRpb25zKTogUHJvbWlzZTxFeGVjUmVzdWx0Pjtcbi8qKlxuICogRXhlY3V0ZXMgYSBjb21tYW5kIGZyb20gdGhlIHJvb3QgZm9sZGVyIG9mIHRoZSBwcm9qZWN0LlxuICpcbiAqIEBwYXJhbSBjb21tYW5kIC0gVGhlIGNvbW1hbmQgdG8gZXhlY3V0ZS4gSXQgY2FuIGJlIGEgc3RyaW5nIG9yIGFuIGFycmF5IG9mIHN0cmluZ3MuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciB0aGUgZXhlY3V0aW9uLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBvdXRwdXQgb2YgdGhlIGNvbW1hbmQgb3IgYW4gRXhlY1Jlc3VsdCBvYmplY3QuXG4gKiAgICAgICAgICBUaGUgRXhlY1Jlc3VsdCBvYmplY3QgY29udGFpbnMgdGhlIGV4aXQgY29kZSwgZXhpdCBzaWduYWwsIHN0ZGVyciwgYW5kIHN0ZG91dC5cbiAqIEB0aHJvd3MgSWYgdGhlIGNvbW1hbmQgZmFpbHMgd2l0aCBhIG5vbi16ZXJvIGV4aXQgY29kZSBhbmQgaWdub3JlRXhpdENvZGUgaXMgYGZhbHNlYC5cbiAqICAgICAgICAgVGhlIGVycm9yIG1lc3NhZ2UgaW5jbHVkZXMgdGhlIGV4aXQgY29kZSBhbmQgc3RkZXJyLlxuICogICAgICAgICBJZiBhbiBlcnJvciBvY2N1cnMgZHVyaW5nIHRoZSBleGVjdXRpb24gYW5kIGlnbm9yZUV4aXRDb2RlIGlzIGB0cnVlYCxcbiAqICAgICAgICAgdGhlIGVycm9yIGlzIHJlc29sdmVkIHdpdGggdGhlIHN0ZG91dCBhbmQgc3RkZXJyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXhlY0Zyb21Sb290KGNvbW1hbmQ6IENvbW1hbmRQYXJ0W10gfCBzdHJpbmcsIG9wdGlvbnM6IEV4ZWNGcm9tUm9vdE9wdGlvbnMgPSB7fSk6IFByb21pc2U8RXhlY1Jlc3VsdCB8IHN0cmluZz4ge1xuICBsZXQgcm9vdCA9IGdldFJvb3RGb2xkZXIob3B0aW9ucy5jd2QpO1xuXG4gIGlmICghcm9vdCkge1xuICAgIGlmIChvcHRpb25zLnNob3VsZEZhaWxJZkNhbGxlZEZyb21PdXRzaWRlUm9vdCA/PyB0cnVlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBmaW5kIHJvb3QgZm9sZGVyJyk7XG4gICAgfVxuXG4gICAgcm9vdCA9IG9wdGlvbnMuY3dkID8/IHByb2Nlc3MuY3dkKCk7XG4gIH1cblxuICBpZiAob3B0aW9ucy5zaG91bGRJbmNsdWRlRGV0YWlscykge1xuICAgIHJldHVybiBleGVjKGNvbW1hbmQsIHsgLi4ub3B0aW9ucywgY3dkOiByb290LCBzaG91bGRJbmNsdWRlRGV0YWlsczogdHJ1ZSB9KTtcbiAgfVxuXG4gIHJldHVybiBleGVjKGNvbW1hbmQsIHsgLi4ub3B0aW9ucywgY3dkOiByb290LCBzaG91bGRJbmNsdWRlRGV0YWlsczogZmFsc2UgfSk7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSByb290IGZvbGRlciBvZiB0aGUgcHJvamVjdC5cbiAqXG4gKiBAcGFyYW0gY3dkIC0gVGhlIGN1cnJlbnQgd29ya2luZyBmb2xkZXIgdG8gcmVzb2x2ZSBmcm9tLlxuICogQHJldHVybnMgVGhlIHBhdGggdG8gdGhlIHJvb3QgZm9sZGVyLlxuICogQHRocm93cyBJZiB0aGUgcm9vdCBmb2xkZXIgY2Fubm90IGJlIGZvdW5kLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Um9vdEZvbGRlcihjd2Q/OiBzdHJpbmcpOiBudWxsIHwgc3RyaW5nIHtcbiAgbGV0IGN1cnJlbnRGb2xkZXIgPSB0b1Bvc2l4UGF0aChjd2QgPz8gcHJvY2Vzcy5jd2QoKSk7XG4gIHdoaWxlIChjdXJyZW50Rm9sZGVyICE9PSBPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLkN1cnJlbnRGb2xkZXIgYXMgc3RyaW5nICYmIGN1cnJlbnRGb2xkZXIgIT09IE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuUm9vdEZvbGRlciBhcyBzdHJpbmcpIHtcbiAgICBpZiAoZXhpc3RzU3luYyhqb2luKGN1cnJlbnRGb2xkZXIsIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuUGFja2FnZUpzb24pKSkge1xuICAgICAgcmV0dXJuIHRvUG9zaXhQYXRoKGN1cnJlbnRGb2xkZXIpO1xuICAgIH1cbiAgICBjdXJyZW50Rm9sZGVyID0gZGlybmFtZShjdXJyZW50Rm9sZGVyKTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIGEgcGF0aCByZWxhdGl2ZSB0byB0aGUgcm9vdCBmb2xkZXIgb2YgdGhlIHByb2plY3QuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgZnVuY3Rpb24uXG4gKiBAcmV0dXJucyBUaGUgcmVzb2x2ZWQgYWJzb2x1dGUgcGF0aC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVQYXRoRnJvbVJvb3QocGFyYW1zOiBSZXNvbHZlUGF0aEZyb21Sb290UGFyYW1zKTogbnVsbCB8IHN0cmluZyB7XG4gIGNvbnN0IHtcbiAgICBjd2QsXG4gICAgcGF0aFxuICB9ID0gcGFyYW1zO1xuICBjb25zdCByb290Rm9sZGVyID0gZ2V0Um9vdEZvbGRlcihjd2QpO1xuICBpZiAoIXJvb3RGb2xkZXIpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiByZXNvbHZlKHJvb3RGb2xkZXIsIHBhdGgpO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIGEgcGF0aCByZWxhdGl2ZSB0byB0aGUgcm9vdCBmb2xkZXIsIHJldHVybmluZyB0aGUgcmVzb2x2ZWQgcGF0aCBvciB0aGUgb3JpZ2luYWwgcGF0aCBpZiBpdCBkb2VzIG5vdCBleGlzdC5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBmdW5jdGlvbi5cbiAqIEByZXR1cm5zIFRoZSByZXNvbHZlZCBwYXRoIG9yIHRoZSBvcmlnaW5hbCBwYXRoIGlmIGl0IGRvZXMgbm90IGV4aXN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUocGFyYW1zOiBSZXNvbHZlUGF0aEZyb21Sb290U2FmZVBhcmFtcyk6IHN0cmluZyB7XG4gIGNvbnN0IHtcbiAgICBjd2QsXG4gICAgcGF0aFxuICB9ID0gcGFyYW1zO1xuICByZXR1cm4gcmVzb2x2ZVBhdGhGcm9tUm9vdChub3JtYWxpemVPcHRpb25hbFByb3BlcnRpZXM8UmVzb2x2ZVBhdGhGcm9tUm9vdFBhcmFtcz4oeyBjd2QsIHBhdGggfSkpID8/IHBhdGg7XG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gYWJzb2x1dGUgcGF0aCB0byBhIHJlbGF0aXZlIHBhdGggZnJvbSB0aGUgcm9vdCBmb2xkZXIgb2YgdGhlIHByb2plY3QuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgZnVuY3Rpb24uXG4gKiBAcmV0dXJucyBUaGUgcmVsYXRpdmUgcGF0aCBmcm9tIHRoZSByb290IGZvbGRlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvUmVsYXRpdmVGcm9tUm9vdChwYXJhbXM6IFRvUmVsYXRpdmVGcm9tUm9vdFBhcmFtcyk6IG51bGwgfCBzdHJpbmcge1xuICBjb25zdCB7XG4gICAgY3dkXG4gIH0gPSBwYXJhbXM7XG4gIGxldCB7XG4gICAgcGF0aFxuICB9ID0gcGFyYW1zO1xuICBjb25zdCByb290Rm9sZGVyID0gZ2V0Um9vdEZvbGRlcihjd2QpO1xuICBpZiAoIXJvb3RGb2xkZXIpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHBhdGggPSB0b1Bvc2l4UGF0aChwYXRoKTtcbiAgcmV0dXJuIHJlbGF0aXZlKHJvb3RGb2xkZXIsIHBhdGgpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQSxxQkFBMkI7QUFVM0IsMEJBQTRDO0FBQzVDLGtCQU1PO0FBQ1Asa0JBQXFCO0FBQ3JCLDJDQUEwQztBQXVGbkMsU0FBUyxhQUFhLFNBQWlDLFVBQStCLENBQUMsR0FBaUM7QUFDN0gsTUFBSSxPQUFPLGNBQWMsUUFBUSxHQUFHO0FBRXBDLE1BQUksQ0FBQyxNQUFNO0FBQ1QsUUFBSSxRQUFRLHFDQUFxQyxNQUFNO0FBQ3JELFlBQU0sSUFBSSxNQUFNLDRCQUE0QjtBQUFBLElBQzlDO0FBRUEsV0FBTyxRQUFRLE9BQU8sUUFBUSxJQUFJO0FBQUEsRUFDcEM7QUFFQSxNQUFJLFFBQVEsc0JBQXNCO0FBQ2hDLGVBQU8sa0JBQUssU0FBUyxFQUFFLEdBQUcsU0FBUyxLQUFLLE1BQU0sc0JBQXNCLEtBQUssQ0FBQztBQUFBLEVBQzVFO0FBRUEsYUFBTyxrQkFBSyxTQUFTLEVBQUUsR0FBRyxTQUFTLEtBQUssTUFBTSxzQkFBc0IsTUFBTSxDQUFDO0FBQzdFO0FBU08sU0FBUyxjQUFjLEtBQTZCO0FBQ3pELE1BQUksb0JBQWdCLHlCQUFZLE9BQU8sUUFBUSxJQUFJLENBQUM7QUFDcEQsU0FBTyxrQkFBa0IsK0RBQTBCLGlCQUEyQixrQkFBa0IsK0RBQTBCLFlBQXNCO0FBQzlJLFlBQUksK0JBQVcsa0JBQUssZUFBZSwrREFBMEIsV0FBVyxDQUFDLEdBQUc7QUFDMUUsaUJBQU8seUJBQVksYUFBYTtBQUFBLElBQ2xDO0FBQ0Esd0JBQWdCLHFCQUFRLGFBQWE7QUFBQSxFQUN2QztBQUVBLFNBQU87QUFDVDtBQVFPLFNBQVMsb0JBQW9CLFFBQWtEO0FBQ3BGLFFBQU07QUFBQSxJQUNKO0FBQUEsSUFDQTtBQUFBLEVBQ0YsSUFBSTtBQUNKLFFBQU0sYUFBYSxjQUFjLEdBQUc7QUFDcEMsTUFBSSxDQUFDLFlBQVk7QUFDZixXQUFPO0FBQUEsRUFDVDtBQUVBLGFBQU8scUJBQVEsWUFBWSxJQUFJO0FBQ2pDO0FBUU8sU0FBUyx3QkFBd0IsUUFBK0M7QUFDckYsUUFBTTtBQUFBLElBQ0o7QUFBQSxJQUNBO0FBQUEsRUFDRixJQUFJO0FBQ0osU0FBTyx3QkFBb0IsaURBQXVELEVBQUUsS0FBSyxLQUFLLENBQUMsQ0FBQyxLQUFLO0FBQ3ZHO0FBUU8sU0FBUyxtQkFBbUIsUUFBaUQ7QUFDbEYsUUFBTTtBQUFBLElBQ0o7QUFBQSxFQUNGLElBQUk7QUFDSixNQUFJO0FBQUEsSUFDRjtBQUFBLEVBQ0YsSUFBSTtBQUNKLFFBQU0sYUFBYSxjQUFjLEdBQUc7QUFDcEMsTUFBSSxDQUFDLFlBQVk7QUFDZixXQUFPO0FBQUEsRUFDVDtBQUVBLGFBQU8seUJBQVksSUFBSTtBQUN2QixhQUFPLHNCQUFTLFlBQVksSUFBSTtBQUNsQzsiLAogICJuYW1lcyI6IFtdCn0K
@@ -10,6 +10,45 @@ import type { CommandPart, ExecDetailedOptions, ExecOptions, ExecResult, ExecSim
10
10
  * Options for {@link execFromRoot}.
11
11
  */
12
12
  export type ExecFromRootOptions = ExecOptions;
13
+ /**
14
+ * Parameters for {@link resolvePathFromRoot}.
15
+ */
16
+ export interface ResolvePathFromRootParams {
17
+ /**
18
+ * The current working folder to resolve from.
19
+ */
20
+ readonly cwd?: string;
21
+ /**
22
+ * The path to resolve.
23
+ */
24
+ readonly path: string;
25
+ }
26
+ /**
27
+ * Parameters for {@link resolvePathFromRootSafe}.
28
+ */
29
+ export interface ResolvePathFromRootSafeParams {
30
+ /**
31
+ * The current working folder to resolve from.
32
+ */
33
+ readonly cwd?: string;
34
+ /**
35
+ * The path to resolve.
36
+ */
37
+ readonly path: string;
38
+ }
39
+ /**
40
+ * Parameters for {@link toRelativeFromRoot}.
41
+ */
42
+ export interface ToRelativeFromRootParams {
43
+ /**
44
+ * The current working folder to resolve from.
45
+ */
46
+ readonly cwd?: string;
47
+ /**
48
+ * The absolute path to convert.
49
+ */
50
+ readonly path: string;
51
+ }
13
52
  /**
14
53
  * Executes a command from the root folder of the project.
15
54
  *
@@ -46,24 +85,21 @@ export declare function getRootFolder(cwd?: string): null | string;
46
85
  /**
47
86
  * Resolves a path relative to the root folder of the project.
48
87
  *
49
- * @param path - The path to resolve.
50
- * @param cwd - The current working folder to resolve from.
88
+ * @param params - The parameters for the function.
51
89
  * @returns The resolved absolute path.
52
90
  */
53
- export declare function resolvePathFromRoot(path: string, cwd?: string): null | string;
91
+ export declare function resolvePathFromRoot(params: ResolvePathFromRootParams): null | string;
54
92
  /**
55
93
  * Resolves a path relative to the root folder, returning the resolved path or the original path if it does not exist.
56
94
  *
57
- * @param path - The path to resolve.
58
- * @param cwd - The current working folder to resolve from.
95
+ * @param params - The parameters for the function.
59
96
  * @returns The resolved path or the original path if it does not exist.
60
97
  */
61
- export declare function resolvePathFromRootSafe(path: string, cwd?: string): string;
98
+ export declare function resolvePathFromRootSafe(params: ResolvePathFromRootSafeParams): string;
62
99
  /**
63
100
  * Converts an absolute path to a relative path from the root folder of the project.
64
101
  *
65
- * @param path - The absolute path to convert.
66
- * @param cwd - The current working folder to resolve from.
102
+ * @param params - The parameters for the function.
67
103
  * @returns The relative path from the root folder.
68
104
  */
69
- export declare function toRelativeFromRoot(path: string, cwd?: string): null | string;
105
+ export declare function toRelativeFromRoot(params: ToRelativeFromRootParams): null | string;
@@ -159,4 +159,4 @@ function buildProjectFlags(projects) {
159
159
  testCoverage,
160
160
  testWatch
161
161
  });
162
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy90ZXN0LXJ1bm5lcnMvdml0ZXN0LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgZnVuY3Rpb25zIGZvciBydW5uaW5nIHRlc3RzIHVzaW5nIHRoZSBWaXRlc3QgZnJhbWV3b3JrLlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBFeGVjdXRlcyB2aXRlc3QgYXMgYSBDTEkgc3VicHJvY2VzczsgY29ycmVjdG5lc3MgaXMgdmVyaWZpZWQgYnkgcnVubmluZyB0ZXN0cywgbm90IHVuaXQgdGVzdHMuICovXG5cbmltcG9ydCB7IGV4ZWNGcm9tUm9vdCB9IGZyb20gJy4uL3Jvb3QudHMnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHJ1bm5pbmcgdGVzdHMgd2l0aCBjb3ZlcmFnZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUZXN0Q292ZXJhZ2VPcHRpb25zIGV4dGVuZHMgVGVzdE9wdGlvbnMge1xuICAvKipcbiAgICogTWluaW11bSBjb3ZlcmFnZSBwZXJjZW50YWdlIHJlcXVpcmVkLiBJZiB0aGUgYWN0dWFsIGNvdmVyYWdlIGZhbGxzIGJlbG93XG4gICAqIHRoaXMgdGhyZXNob2xkLCB0aGUgcHJvY2VzcyBleGl0cyB3aXRoIGEgbm9uLXplcm8gY29kZS5cbiAgICovXG4gIHJlYWRvbmx5IG1pbkNvdmVyYWdlSW5QZXJjZW50cz86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBydW5uaW5nIHRlc3RzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlc3RPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBwcm9qZWN0cyB0byBydW4uXG4gICAqL1xuICByZWFkb25seSBwcm9qZWN0cz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHJ1bm5pbmcgdGVzdHMgaW4gd2F0Y2ggbW9kZS5cbiAqL1xuZXhwb3J0IHR5cGUgVGVzdFdhdGNoT3B0aW9ucyA9IFRlc3RPcHRpb25zO1xuXG4vKipcbiAqIFJ1bnMgdGhlIHRlc3Qgc3VpdGUuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgdGhlIHRlc3QuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHRlc3RzIGhhdmUgY29tcGxldGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdGVzdChvcHRpb25zOiBUZXN0T3B0aW9ucyA9IHt9KTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGV4ZWNGcm9tUm9vdChbJ3ZpdGVzdCcsICdydW4nLCAuLi5idWlsZFByb2plY3RGbGFncyhvcHRpb25zLnByb2plY3RzKV0pO1xufVxuXG4vKipcbiAqIFJ1bnMgdGhlIHRlc3Qgc3VpdGUgd2l0aCBjb3ZlcmFnZS5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIE9wdGlvbmFsIGNvdmVyYWdlIGNvbmZpZ3VyYXRpb24uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHRlc3RzIGhhdmUgY29tcGxldGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdGVzdENvdmVyYWdlKG9wdGlvbnM6IFRlc3RDb3ZlcmFnZU9wdGlvbnMgPSB7fSk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB0aHJlc2hvbGQgPSBTdHJpbmcob3B0aW9ucy5taW5Db3ZlcmFnZUluUGVyY2VudHMgPz8gMCk7XG4gIGF3YWl0IGV4ZWNGcm9tUm9vdChbXG4gICAgJ3ZpdGVzdCcsXG4gICAgJ3J1bicsXG4gICAgLi4uYnVpbGRQcm9qZWN0RmxhZ3Mob3B0aW9ucy5wcm9qZWN0cyksXG4gICAgJy0tY292ZXJhZ2UnLFxuICAgIGAtLWNvdmVyYWdlLnRocmVzaG9sZHMubGluZXM9JHt0aHJlc2hvbGR9YCxcbiAgICBgLS1jb3ZlcmFnZS50aHJlc2hvbGRzLmZ1bmN0aW9ucz0ke3RocmVzaG9sZH1gLFxuICAgIGAtLWNvdmVyYWdlLnRocmVzaG9sZHMuYnJhbmNoZXM9JHt0aHJlc2hvbGR9YCxcbiAgICBgLS1jb3ZlcmFnZS50aHJlc2hvbGRzLnN0YXRlbWVudHM9JHt0aHJlc2hvbGR9YFxuICBdKTtcbn1cblxuLyoqXG4gKiBSdW5zIHRoZSB0ZXN0IHN1aXRlIGluIHdhdGNoIG1vZGUuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgdGhlIHRlc3QuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHRlc3RzIGhhdmUgY29tcGxldGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdGVzdFdhdGNoKG9wdGlvbnM6IFRlc3RXYXRjaE9wdGlvbnMgPSB7fSk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBleGVjRnJvbVJvb3QoWyd2aXRlc3QnLCAuLi5idWlsZFByb2plY3RGbGFncyhvcHRpb25zLnByb2plY3RzKV0pO1xufVxuXG4vKipcbiAqIEJ1aWxkcyBgLS1wcm9qZWN0YCBmbGFncyBmb3IgdGhlIGdpdmVuIHByb2plY3QgcHJlZml4ZXMuXG4gKiBFYWNoIHByZWZpeCBleHBhbmRzIHRvIGJvdGggYC0tcHJvamVjdD1wcmVmaXhgIChleGFjdCBtYXRjaClcbiAqIGFuZCBgLS1wcm9qZWN0PXByZWZpeDoqYCAoc3ViLXByb2plY3RzKS5cbiAqXG4gKiBAcGFyYW0gcHJvamVjdHMgLSBUaGUgcHJvamVjdCBuYW1lIHByZWZpeGVzLlxuICogQHJldHVybnMgVGhlIGAtLXByb2plY3RgIGZsYWdzIGFycmF5LlxuICovXG5mdW5jdGlvbiBidWlsZFByb2plY3RGbGFncyhwcm9qZWN0cz86IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICByZXR1cm4gKHByb2plY3RzID8/IFtdKS5mbGF0TWFwKChwcm9qZWN0KSA9PiBbYC0tcHJvamVjdD0ke3Byb2plY3R9YCwgYC0tcHJvamVjdD0ke3Byb2plY3R9OipgXSk7XG59XG5cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUEsa0JBQTZCO0FBa0M3QixlQUFzQixLQUFLLFVBQXVCLENBQUMsR0FBa0I7QUFDbkUsWUFBTSwwQkFBYSxDQUFDLFVBQVUsT0FBTyxHQUFHLGtCQUFrQixRQUFRLFFBQVEsQ0FBQyxDQUFDO0FBQzlFO0FBUUEsZUFBc0IsYUFBYSxVQUErQixDQUFDLEdBQWtCO0FBQ25GLFFBQU0sWUFBWSxPQUFPLFFBQVEseUJBQXlCLENBQUM7QUFDM0QsWUFBTSwwQkFBYTtBQUFBLElBQ2pCO0FBQUEsSUFDQTtBQUFBLElBQ0EsR0FBRyxrQkFBa0IsUUFBUSxRQUFRO0FBQUEsSUFDckM7QUFBQSxJQUNBLCtCQUErQixTQUFTO0FBQUEsSUFDeEMsbUNBQW1DLFNBQVM7QUFBQSxJQUM1QyxrQ0FBa0MsU0FBUztBQUFBLElBQzNDLG9DQUFvQyxTQUFTO0FBQUEsRUFDL0MsQ0FBQztBQUNIO0FBUUEsZUFBc0IsVUFBVSxVQUE0QixDQUFDLEdBQWtCO0FBQzdFLFlBQU0sMEJBQWEsQ0FBQyxVQUFVLEdBQUcsa0JBQWtCLFFBQVEsUUFBUSxDQUFDLENBQUM7QUFDdkU7QUFVQSxTQUFTLGtCQUFrQixVQUErQjtBQUN4RCxVQUFRLFlBQVksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsYUFBYSxPQUFPLElBQUksYUFBYSxPQUFPLElBQUksQ0FBQztBQUNqRzsiLAogICJuYW1lcyI6IFtdCn0K
162
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy90ZXN0LXJ1bm5lcnMvdml0ZXN0LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgZnVuY3Rpb25zIGZvciBydW5uaW5nIHRlc3RzIHVzaW5nIHRoZSBWaXRlc3QgZnJhbWV3b3JrLlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBFeGVjdXRlcyB2aXRlc3QgYXMgYSBDTEkgc3VicHJvY2VzczsgY29ycmVjdG5lc3MgaXMgdmVyaWZpZWQgYnkgcnVubmluZyB0ZXN0cywgbm90IHVuaXQgdGVzdHMuICovXG5cbmltcG9ydCB7IGV4ZWNGcm9tUm9vdCB9IGZyb20gJy4uL3Jvb3QudHMnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHJ1bm5pbmcgdGVzdHMgd2l0aCBjb3ZlcmFnZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUZXN0Q292ZXJhZ2VPcHRpb25zIGV4dGVuZHMgVGVzdE9wdGlvbnMge1xuICAvKipcbiAgICogTWluaW11bSBjb3ZlcmFnZSBwZXJjZW50YWdlIHJlcXVpcmVkLiBJZiB0aGUgYWN0dWFsIGNvdmVyYWdlIGZhbGxzIGJlbG93XG4gICAqIHRoaXMgdGhyZXNob2xkLCB0aGUgcHJvY2VzcyBleGl0cyB3aXRoIGEgbm9uLXplcm8gY29kZS5cbiAgICpcbiAgICogQGRlZmF1bHQgYDBgXG4gICAqL1xuICByZWFkb25seSBtaW5Db3ZlcmFnZUluUGVyY2VudHM/OiBudW1iZXI7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgcnVubmluZyB0ZXN0cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUZXN0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgcHJvamVjdHMgdG8gcnVuLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvamVjdHM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBydW5uaW5nIHRlc3RzIGluIHdhdGNoIG1vZGUuXG4gKi9cbmV4cG9ydCB0eXBlIFRlc3RXYXRjaE9wdGlvbnMgPSBUZXN0T3B0aW9ucztcblxuLyoqXG4gKiBSdW5zIHRoZSB0ZXN0IHN1aXRlLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIHRoZSB0ZXN0LlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSB0ZXN0cyBoYXZlIGNvbXBsZXRlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRlc3Qob3B0aW9uczogVGVzdE9wdGlvbnMgPSB7fSk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBleGVjRnJvbVJvb3QoWyd2aXRlc3QnLCAncnVuJywgLi4uYnVpbGRQcm9qZWN0RmxhZ3Mob3B0aW9ucy5wcm9qZWN0cyldKTtcbn1cblxuLyoqXG4gKiBSdW5zIHRoZSB0ZXN0IHN1aXRlIHdpdGggY292ZXJhZ2UuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25hbCBjb3ZlcmFnZSBjb25maWd1cmF0aW9uLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSB0ZXN0cyBoYXZlIGNvbXBsZXRlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRlc3RDb3ZlcmFnZShvcHRpb25zOiBUZXN0Q292ZXJhZ2VPcHRpb25zID0ge30pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgdGhyZXNob2xkID0gU3RyaW5nKG9wdGlvbnMubWluQ292ZXJhZ2VJblBlcmNlbnRzID8/IDApO1xuICBhd2FpdCBleGVjRnJvbVJvb3QoW1xuICAgICd2aXRlc3QnLFxuICAgICdydW4nLFxuICAgIC4uLmJ1aWxkUHJvamVjdEZsYWdzKG9wdGlvbnMucHJvamVjdHMpLFxuICAgICctLWNvdmVyYWdlJyxcbiAgICBgLS1jb3ZlcmFnZS50aHJlc2hvbGRzLmxpbmVzPSR7dGhyZXNob2xkfWAsXG4gICAgYC0tY292ZXJhZ2UudGhyZXNob2xkcy5mdW5jdGlvbnM9JHt0aHJlc2hvbGR9YCxcbiAgICBgLS1jb3ZlcmFnZS50aHJlc2hvbGRzLmJyYW5jaGVzPSR7dGhyZXNob2xkfWAsXG4gICAgYC0tY292ZXJhZ2UudGhyZXNob2xkcy5zdGF0ZW1lbnRzPSR7dGhyZXNob2xkfWBcbiAgXSk7XG59XG5cbi8qKlxuICogUnVucyB0aGUgdGVzdCBzdWl0ZSBpbiB3YXRjaCBtb2RlLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIHRoZSB0ZXN0LlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSB0ZXN0cyBoYXZlIGNvbXBsZXRlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRlc3RXYXRjaChvcHRpb25zOiBUZXN0V2F0Y2hPcHRpb25zID0ge30pOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgZXhlY0Zyb21Sb290KFsndml0ZXN0JywgLi4uYnVpbGRQcm9qZWN0RmxhZ3Mob3B0aW9ucy5wcm9qZWN0cyldKTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgYC0tcHJvamVjdGAgZmxhZ3MgZm9yIHRoZSBnaXZlbiBwcm9qZWN0IHByZWZpeGVzLlxuICogRWFjaCBwcmVmaXggZXhwYW5kcyB0byBib3RoIGAtLXByb2plY3Q9cHJlZml4YCAoZXhhY3QgbWF0Y2gpXG4gKiBhbmQgYC0tcHJvamVjdD1wcmVmaXg6KmAgKHN1Yi1wcm9qZWN0cykuXG4gKlxuICogQHBhcmFtIHByb2plY3RzIC0gVGhlIHByb2plY3QgbmFtZSBwcmVmaXhlcy5cbiAqIEByZXR1cm5zIFRoZSBgLS1wcm9qZWN0YCBmbGFncyBhcnJheS5cbiAqL1xuZnVuY3Rpb24gYnVpbGRQcm9qZWN0RmxhZ3MocHJvamVjdHM/OiBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIChwcm9qZWN0cyA/PyBbXSkuZmxhdE1hcCgocHJvamVjdCkgPT4gW2AtLXByb2plY3Q9JHtwcm9qZWN0fWAsIGAtLXByb2plY3Q9JHtwcm9qZWN0fToqYF0pO1xufVxuXG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBLGtCQUE2QjtBQW9DN0IsZUFBc0IsS0FBSyxVQUF1QixDQUFDLEdBQWtCO0FBQ25FLFlBQU0sMEJBQWEsQ0FBQyxVQUFVLE9BQU8sR0FBRyxrQkFBa0IsUUFBUSxRQUFRLENBQUMsQ0FBQztBQUM5RTtBQVFBLGVBQXNCLGFBQWEsVUFBK0IsQ0FBQyxHQUFrQjtBQUNuRixRQUFNLFlBQVksT0FBTyxRQUFRLHlCQUF5QixDQUFDO0FBQzNELFlBQU0sMEJBQWE7QUFBQSxJQUNqQjtBQUFBLElBQ0E7QUFBQSxJQUNBLEdBQUcsa0JBQWtCLFFBQVEsUUFBUTtBQUFBLElBQ3JDO0FBQUEsSUFDQSwrQkFBK0IsU0FBUztBQUFBLElBQ3hDLG1DQUFtQyxTQUFTO0FBQUEsSUFDNUMsa0NBQWtDLFNBQVM7QUFBQSxJQUMzQyxvQ0FBb0MsU0FBUztBQUFBLEVBQy9DLENBQUM7QUFDSDtBQVFBLGVBQXNCLFVBQVUsVUFBNEIsQ0FBQyxHQUFrQjtBQUM3RSxZQUFNLDBCQUFhLENBQUMsVUFBVSxHQUFHLGtCQUFrQixRQUFRLFFBQVEsQ0FBQyxDQUFDO0FBQ3ZFO0FBVUEsU0FBUyxrQkFBa0IsVUFBK0I7QUFDeEQsVUFBUSxZQUFZLENBQUMsR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDLGFBQWEsT0FBTyxJQUFJLGFBQWEsT0FBTyxJQUFJLENBQUM7QUFDakc7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -11,6 +11,8 @@ export interface TestCoverageOptions extends TestOptions {
11
11
  /**
12
12
  * Minimum coverage percentage required. If the actual coverage falls below
13
13
  * this threshold, the process exits with a non-zero code.
14
+ *
15
+ * @default `0`
14
16
  */
15
17
  readonly minCoverageInPercents?: number;
16
18
  }
@@ -128,18 +128,16 @@ __export(validate_declarations_exports, {
128
128
  validateDeclarations: () => validateDeclarations
129
129
  });
130
130
  module.exports = __toCommonJS(validate_declarations_exports);
131
- var import_typescript = require('typescript');
132
131
  var import_path = require('../path.cjs');
133
132
  var import_check_project_types = require('./check-project-types.cjs');
134
133
  var import_obsidian_dev_utils_repo_paths = require('./obsidian-dev-utils-repo-paths.cjs');
135
134
  var import_root = require('./root.cjs');
136
135
  const NODE_MODULES_SEGMENT = "/node_modules/";
137
- const RELATIVE_SPECIFIER_PREFIX = ".";
138
136
  const VALIDATE_DECLARATIONS_TS_CONFIG_FILE_NAMES = [
139
137
  import_obsidian_dev_utils_repo_paths.ObsidianDevUtilsRepoPaths.TsConfigValidateDeclarationsJson,
140
138
  import_obsidian_dev_utils_repo_paths.ObsidianDevUtilsRepoPaths.TsConfigValidateDeclarationsCjsJson
141
139
  ];
142
- function validateDeclarations() {
140
+ function validateDeclarations(options = {}) {
143
141
  const root = (0, import_root.getRootFolder)();
144
142
  if (!root) {
145
143
  throw new Error("Could not find root folder");
@@ -147,57 +145,23 @@ function validateDeclarations() {
147
145
  const rootCanonical = (0, import_check_project_types.toCanonical)(root);
148
146
  let isValid = true;
149
147
  for (const tsConfigFileName of VALIDATE_DECLARATIONS_TS_CONFIG_FILE_NAMES) {
150
- const { fileNames, options } = (0, import_check_project_types.parseTsConfig)((0, import_path.join)(root, tsConfigFileName));
148
+ const { fileNames, options: compilerOptions } = (0, import_check_project_types.parseTsConfig)((0, import_path.join)(root, tsConfigFileName));
151
149
  const isConfigValid = (0, import_check_project_types.checkProjectTypes)({
152
- options,
150
+ isVerbose: options.isVerbose ?? false,
151
+ options: compilerOptions,
153
152
  rootNames: fileNames,
154
- shouldKeepDiagnostic: (diagnostic) => !isThirdPartyModuleImportDiagnostic(diagnostic),
155
- shouldKeepFile: (fileName) => shouldKeepProjectFile(fileName, rootCanonical)
153
+ shouldKeepFile: (fileName) => shouldKeepProjectFile({ fileName, rootCanonical })
156
154
  });
157
155
  isValid &&= isConfigValid;
158
156
  }
159
157
  return isValid;
160
158
  }
161
- function findEnclosingModuleSpecifier(sourceFile, position) {
162
- let specifier = null;
163
- visit(sourceFile);
164
- return specifier;
165
- function visit(node) {
166
- if (position < node.getStart(sourceFile) || position >= node.getEnd()) {
167
- return;
168
- }
169
- const nodeSpecifier = getModuleSpecifier(node);
170
- if (nodeSpecifier !== null) {
171
- specifier = nodeSpecifier;
172
- }
173
- (0, import_typescript.forEachChild)(node, visit);
174
- }
175
- }
176
- function getModuleSpecifier(node) {
177
- if ((0, import_typescript.isImportDeclaration)(node) || (0, import_typescript.isExportDeclaration)(node)) {
178
- return getStringLiteralText(node.moduleSpecifier);
179
- }
180
- if ((0, import_typescript.isImportTypeNode)(node)) {
181
- return (0, import_typescript.isLiteralTypeNode)(node.argument) ? getStringLiteralText(node.argument.literal) : null;
182
- }
183
- return null;
184
- }
185
- function getStringLiteralText(node) {
186
- return node && (0, import_typescript.isStringLiteral)(node) ? node.text : null;
187
- }
188
- function isThirdPartyModuleImportDiagnostic(diagnostic) {
189
- const file = diagnostic.file;
190
- if (!file || diagnostic.start === void 0) {
191
- return false;
192
- }
193
- const specifier = findEnclosingModuleSpecifier(file, diagnostic.start);
194
- return specifier !== null && !specifier.startsWith(RELATIVE_SPECIFIER_PREFIX);
195
- }
196
- function shouldKeepProjectFile(fileName, rootCanonical) {
159
+ function shouldKeepProjectFile(params) {
160
+ const { fileName, rootCanonical } = params;
197
161
  return fileName.startsWith(`${rootCanonical}/`) && !fileName.includes(NODE_MODULES_SEGMENT);
198
162
  }
199
163
  // Annotate the CommonJS export names for ESM import in node:
200
164
  0 && (module.exports = {
201
165
  validateDeclarations
202
166
  });
203
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy92YWxpZGF0ZS1kZWNsYXJhdGlvbnMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUeXBlLWNoZWNrcyB0aGUgZ2VuZXJhdGVkIGRlY2xhcmF0aW9uIGZpbGVzIChgLmQuY3RzYCAvIGAuZC5tdHNgKSB0byBwcm92ZSB0aGV5IGFyZSBzZWxmLWNvbnRhaW5lZFxuICogXHUyMDE0IGV2ZXJ5IGBsaWJgIGFuZCBpbnRlcm5hbCBjcm9zcy1yZWZlcmVuY2UgdGhleSByZWx5IG9uIHJlc29sdmVzIG9uIGl0cyBvd24sIGluZGVwZW5kZW50IG9mIHRoZVxuICogY29uc3VtZXIncyBgdHNjb25maWdgLlxuICpcbiAqIFRoZSBsaWJyYXJ5IGRvZXMgbm90IG93biB0aGUgdHlwZXMgb2YgdGhlIHRoaXJkLXBhcnR5IHBhY2thZ2VzIGl0cyBkZWNsYXJhdGlvbnMgaW1wb3J0IChlLmcuXG4gKiBgdHlwZS1mZXN0YCwgYG9ic2lkaWFuYCwgYG1hcmtkb3dubGludGApLiBDcm9zcy1tb2R1bGUtZm9ybWF0IGludGVyb3AgZGlhZ25vc3RpY3MgY2F1c2VkIGJ5IHRob3NlXG4gKiBpbXBvcnRzIFx1MjAxNCBmb3IgZXhhbXBsZSBhIENvbW1vbkpTIGAuZC5jdHNgIGltcG9ydGluZyBhbiBFU00tb25seSBwYWNrYWdlIHdpdGhvdXQgYVxuICogYHJlc29sdXRpb24tbW9kZWAgYXR0cmlidXRlIChgVFMxNTQxYCAvIGBUUzE1NDJgIC8gYFRTMTQ3OWApIFx1MjAxNCBkZXNjcmliZSB0aGUgdGhpcmQtcGFydHkgcGFja2FnZSdzXG4gKiBzaGFwZSwgbm90IGEgZmxhdyBpbiBvdXIgZGVjbGFyYXRpb25zLCBhbmQgYXJlIHRoZSBjb25zdW1lcidzIGNvbmNlcm4uIFRoZXkgYXJlIHRoZXJlZm9yZSBpZ25vcmVkLlxuICogT25seSBkaWFnbm9zdGljcyBhYm91dCB0aGUgbGlicmFyeSdzIG93biBkZWNsYXJhdGlvbnMgYXJlIHJlcG9ydGVkLlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgRGlhZ25vc3RpYyxcbiAgTm9kZSxcbiAgU291cmNlRmlsZVxufSBmcm9tICd0eXBlc2NyaXB0JztcblxuaW1wb3J0IHtcbiAgZm9yRWFjaENoaWxkLFxuICBpc0V4cG9ydERlY2xhcmF0aW9uLFxuICBpc0ltcG9ydERlY2xhcmF0aW9uLFxuICBpc0ltcG9ydFR5cGVOb2RlLFxuICBpc0xpdGVyYWxUeXBlTm9kZSxcbiAgaXNTdHJpbmdMaXRlcmFsXG59IGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5pbXBvcnQgeyBqb2luIH0gZnJvbSAnLi4vcGF0aC50cyc7XG5pbXBvcnQge1xuICBjaGVja1Byb2plY3RUeXBlcyxcbiAgcGFyc2VUc0NvbmZpZyxcbiAgdG9DYW5vbmljYWxcbn0gZnJvbSAnLi9jaGVjay1wcm9qZWN0LXR5cGVzLnRzJztcbmltcG9ydCB7IE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMgfSBmcm9tICcuL29ic2lkaWFuLWRldi11dGlscy1yZXBvLXBhdGhzLnRzJztcbmltcG9ydCB7IGdldFJvb3RGb2xkZXIgfSBmcm9tICcuL3Jvb3QudHMnO1xuXG5jb25zdCBOT0RFX01PRFVMRVNfU0VHTUVOVCA9ICcvbm9kZV9tb2R1bGVzLyc7XG5jb25zdCBSRUxBVElWRV9TUEVDSUZJRVJfUFJFRklYID0gJy4nO1xuXG5jb25zdCBWQUxJREFURV9ERUNMQVJBVElPTlNfVFNfQ09ORklHX0ZJTEVfTkFNRVMgPSBbXG4gIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuVHNDb25maWdWYWxpZGF0ZURlY2xhcmF0aW9uc0pzb24sXG4gIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuVHNDb25maWdWYWxpZGF0ZURlY2xhcmF0aW9uc0Nqc0pzb25cbl07XG5cbi8qKlxuICogVmFsaWRhdGVzIHRoZSBnZW5lcmF0ZWQgZGVjbGFyYXRpb24gZmlsZXMgYWdhaW5zdCB0aGUgYHRzY29uZmlnLnZhbGlkYXRlLWRlY2xhcmF0aW9ucyouanNvbmBcbiAqIGNvbmZpZ3MsIHJlcG9ydGluZyBvbmx5IGRpYWdub3N0aWNzIHRoYXQgY29uY2VybiB0aGUgbGlicmFyeSdzIG93biBkZWNsYXJhdGlvbnMgYW5kIGlnbm9yaW5nIHRob3NlXG4gKiBjYXVzZWQgYnkgaW1wb3J0aW5nIHRoaXJkLXBhcnR5IHBhY2thZ2VzLlxuICpcbiAqIEByZXR1cm5zIGB0cnVlYCB3aGVuIHRoZSBsaWJyYXJ5J3Mgb3duIGRlY2xhcmF0aW9ucyBoYXZlIG5vIHR5cGUgZXJyb3JzLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAqIEB0aHJvd3MgSWYgdGhlIHJvb3QgZm9sZGVyIGNhbm5vdCBiZSBmb3VuZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlRGVjbGFyYXRpb25zKCk6IGJvb2xlYW4ge1xuICBjb25zdCByb290ID0gZ2V0Um9vdEZvbGRlcigpO1xuXG4gIGlmICghcm9vdCkge1xuICAgIHRocm93IG5ldyBFcnJvcignQ291bGQgbm90IGZpbmQgcm9vdCBmb2xkZXInKTtcbiAgfVxuXG4gIGNvbnN0IHJvb3RDYW5vbmljYWwgPSB0b0Nhbm9uaWNhbChyb290KTtcblxuICBsZXQgaXNWYWxpZCA9IHRydWU7XG5cbiAgZm9yIChjb25zdCB0c0NvbmZpZ0ZpbGVOYW1lIG9mIFZBTElEQVRFX0RFQ0xBUkFUSU9OU19UU19DT05GSUdfRklMRV9OQU1FUykge1xuICAgIGNvbnN0IHsgZmlsZU5hbWVzLCBvcHRpb25zIH0gPSBwYXJzZVRzQ29uZmlnKGpvaW4ocm9vdCwgdHNDb25maWdGaWxlTmFtZSkpO1xuICAgIGNvbnN0IGlzQ29uZmlnVmFsaWQgPSBjaGVja1Byb2plY3RUeXBlcyh7XG4gICAgICBvcHRpb25zLFxuICAgICAgcm9vdE5hbWVzOiBmaWxlTmFtZXMsXG4gICAgICBzaG91bGRLZWVwRGlhZ25vc3RpYzogKGRpYWdub3N0aWMpID0+ICFpc1RoaXJkUGFydHlNb2R1bGVJbXBvcnREaWFnbm9zdGljKGRpYWdub3N0aWMpLFxuICAgICAgc2hvdWxkS2VlcEZpbGU6IChmaWxlTmFtZSkgPT4gc2hvdWxkS2VlcFByb2plY3RGaWxlKGZpbGVOYW1lLCByb290Q2Fub25pY2FsKVxuICAgIH0pO1xuICAgIGlzVmFsaWQgJiY9IGlzQ29uZmlnVmFsaWQ7XG4gIH1cblxuICByZXR1cm4gaXNWYWxpZDtcbn1cblxuZnVuY3Rpb24gZmluZEVuY2xvc2luZ01vZHVsZVNwZWNpZmllcihzb3VyY2VGaWxlOiBTb3VyY2VGaWxlLCBwb3NpdGlvbjogbnVtYmVyKTogbnVsbCB8IHN0cmluZyB7XG4gIGxldCBzcGVjaWZpZXI6IG51bGwgfCBzdHJpbmcgPSBudWxsO1xuICB2aXNpdChzb3VyY2VGaWxlKTtcbiAgcmV0dXJuIHNwZWNpZmllcjtcblxuICBmdW5jdGlvbiB2aXNpdChub2RlOiBOb2RlKTogdm9pZCB7XG4gICAgaWYgKHBvc2l0aW9uIDwgbm9kZS5nZXRTdGFydChzb3VyY2VGaWxlKSB8fCBwb3NpdGlvbiA+PSBub2RlLmdldEVuZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgbm9kZVNwZWNpZmllciA9IGdldE1vZHVsZVNwZWNpZmllcihub2RlKTtcbiAgICBpZiAobm9kZVNwZWNpZmllciAhPT0gbnVsbCkge1xuICAgICAgc3BlY2lmaWVyID0gbm9kZVNwZWNpZmllcjtcbiAgICB9XG5cbiAgICBmb3JFYWNoQ2hpbGQobm9kZSwgdmlzaXQpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldE1vZHVsZVNwZWNpZmllcihub2RlOiBOb2RlKTogbnVsbCB8IHN0cmluZyB7XG4gIGlmIChpc0ltcG9ydERlY2xhcmF0aW9uKG5vZGUpIHx8IGlzRXhwb3J0RGVjbGFyYXRpb24obm9kZSkpIHtcbiAgICByZXR1cm4gZ2V0U3RyaW5nTGl0ZXJhbFRleHQobm9kZS5tb2R1bGVTcGVjaWZpZXIpO1xuICB9XG5cbiAgaWYgKGlzSW1wb3J0VHlwZU5vZGUobm9kZSkpIHtcbiAgICByZXR1cm4gaXNMaXRlcmFsVHlwZU5vZGUobm9kZS5hcmd1bWVudCkgPyBnZXRTdHJpbmdMaXRlcmFsVGV4dChub2RlLmFyZ3VtZW50LmxpdGVyYWwpIDogbnVsbDtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBnZXRTdHJpbmdMaXRlcmFsVGV4dChub2RlOiBOb2RlIHwgdW5kZWZpbmVkKTogbnVsbCB8IHN0cmluZyB7XG4gIHJldHVybiBub2RlICYmIGlzU3RyaW5nTGl0ZXJhbChub2RlKSA/IG5vZGUudGV4dCA6IG51bGw7XG59XG5cbmZ1bmN0aW9uIGlzVGhpcmRQYXJ0eU1vZHVsZUltcG9ydERpYWdub3N0aWMoZGlhZ25vc3RpYzogRGlhZ25vc3RpYyk6IGJvb2xlYW4ge1xuICBjb25zdCBmaWxlID0gZGlhZ25vc3RpYy5maWxlO1xuICBpZiAoIWZpbGUgfHwgZGlhZ25vc3RpYy5zdGFydCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3Qgc3BlY2lmaWVyID0gZmluZEVuY2xvc2luZ01vZHVsZVNwZWNpZmllcihmaWxlLCBkaWFnbm9zdGljLnN0YXJ0KTtcbiAgcmV0dXJuIHNwZWNpZmllciAhPT0gbnVsbCAmJiAhc3BlY2lmaWVyLnN0YXJ0c1dpdGgoUkVMQVRJVkVfU1BFQ0lGSUVSX1BSRUZJWCk7XG59XG5cbmZ1bmN0aW9uIHNob3VsZEtlZXBQcm9qZWN0RmlsZShmaWxlTmFtZTogc3RyaW5nLCByb290Q2Fub25pY2FsOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIGZpbGVOYW1lLnN0YXJ0c1dpdGgoYCR7cm9vdENhbm9uaWNhbH0vYCkgJiYgIWZpbGVOYW1lLmluY2x1ZGVzKE5PREVfTU9EVUxFU19TRUdNRU5UKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXFCQSx3QkFPTztBQUVQLGtCQUFxQjtBQUNyQixpQ0FJTztBQUNQLDJDQUEwQztBQUMxQyxrQkFBOEI7QUFFOUIsTUFBTSx1QkFBdUI7QUFDN0IsTUFBTSw0QkFBNEI7QUFFbEMsTUFBTSw2Q0FBNkM7QUFBQSxFQUNqRCwrREFBMEI7QUFBQSxFQUMxQiwrREFBMEI7QUFDNUI7QUFVTyxTQUFTLHVCQUFnQztBQUM5QyxRQUFNLFdBQU8sMkJBQWM7QUFFM0IsTUFBSSxDQUFDLE1BQU07QUFDVCxVQUFNLElBQUksTUFBTSw0QkFBNEI7QUFBQSxFQUM5QztBQUVBLFFBQU0sb0JBQWdCLHdDQUFZLElBQUk7QUFFdEMsTUFBSSxVQUFVO0FBRWQsYUFBVyxvQkFBb0IsNENBQTRDO0FBQ3pFLFVBQU0sRUFBRSxXQUFXLFFBQVEsUUFBSSw4Q0FBYyxrQkFBSyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLFVBQU0sb0JBQWdCLDhDQUFrQjtBQUFBLE1BQ3RDO0FBQUEsTUFDQSxXQUFXO0FBQUEsTUFDWCxzQkFBc0IsQ0FBQyxlQUFlLENBQUMsbUNBQW1DLFVBQVU7QUFBQSxNQUNwRixnQkFBZ0IsQ0FBQyxhQUFhLHNCQUFzQixVQUFVLGFBQWE7QUFBQSxJQUM3RSxDQUFDO0FBQ0QsZ0JBQVk7QUFBQSxFQUNkO0FBRUEsU0FBTztBQUNUO0FBRUEsU0FBUyw2QkFBNkIsWUFBd0IsVUFBaUM7QUFDN0YsTUFBSSxZQUEyQjtBQUMvQixRQUFNLFVBQVU7QUFDaEIsU0FBTztBQUVQLFdBQVMsTUFBTSxNQUFrQjtBQUMvQixRQUFJLFdBQVcsS0FBSyxTQUFTLFVBQVUsS0FBSyxZQUFZLEtBQUssT0FBTyxHQUFHO0FBQ3JFO0FBQUEsSUFDRjtBQUVBLFVBQU0sZ0JBQWdCLG1CQUFtQixJQUFJO0FBQzdDLFFBQUksa0JBQWtCLE1BQU07QUFDMUIsa0JBQVk7QUFBQSxJQUNkO0FBRUEsd0NBQWEsTUFBTSxLQUFLO0FBQUEsRUFDMUI7QUFDRjtBQUVBLFNBQVMsbUJBQW1CLE1BQTJCO0FBQ3JELFVBQUksdUNBQW9CLElBQUksU0FBSyx1Q0FBb0IsSUFBSSxHQUFHO0FBQzFELFdBQU8scUJBQXFCLEtBQUssZUFBZTtBQUFBLEVBQ2xEO0FBRUEsVUFBSSxvQ0FBaUIsSUFBSSxHQUFHO0FBQzFCLGVBQU8scUNBQWtCLEtBQUssUUFBUSxJQUFJLHFCQUFxQixLQUFLLFNBQVMsT0FBTyxJQUFJO0FBQUEsRUFDMUY7QUFFQSxTQUFPO0FBQ1Q7QUFFQSxTQUFTLHFCQUFxQixNQUF1QztBQUNuRSxTQUFPLFlBQVEsbUNBQWdCLElBQUksSUFBSSxLQUFLLE9BQU87QUFDckQ7QUFFQSxTQUFTLG1DQUFtQyxZQUFpQztBQUMzRSxRQUFNLE9BQU8sV0FBVztBQUN4QixNQUFJLENBQUMsUUFBUSxXQUFXLFVBQVUsUUFBVztBQUMzQyxXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sWUFBWSw2QkFBNkIsTUFBTSxXQUFXLEtBQUs7QUFDckUsU0FBTyxjQUFjLFFBQVEsQ0FBQyxVQUFVLFdBQVcseUJBQXlCO0FBQzlFO0FBRUEsU0FBUyxzQkFBc0IsVUFBa0IsZUFBZ0M7QUFDL0UsU0FBTyxTQUFTLFdBQVcsR0FBRyxhQUFhLEdBQUcsS0FBSyxDQUFDLFNBQVMsU0FBUyxvQkFBb0I7QUFDNUY7IiwKICAibmFtZXMiOiBbXQp9Cg==
167
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy92YWxpZGF0ZS1kZWNsYXJhdGlvbnMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUeXBlLWNoZWNrcyB0aGUgZ2VuZXJhdGVkIGRlY2xhcmF0aW9uIGZpbGVzIChgLmQuY3RzYCAvIGAuZC5tdHNgKSB0byBwcm92ZSB0aGV5IGFyZSBzZWxmLWNvbnRhaW5lZFxuICogXHUyMDE0IGV2ZXJ5IGBsaWJgIGFuZCBpbnRlcm5hbCBjcm9zcy1yZWZlcmVuY2UgdGhleSByZWx5IG9uIHJlc29sdmVzIG9uIGl0cyBvd24sIGluZGVwZW5kZW50IG9mIHRoZVxuICogY29uc3VtZXIncyBgdHNjb25maWdgLlxuICpcbiAqIE9ubHkgZGlhZ25vc3RpY3Mgd2hvc2Ugc291cmNlIGZpbGUgaXMgb25lIHdlIG93biAodW5kZXIgdGhlIHByb2plY3Qgcm9vdCwgb3V0c2lkZSBgbm9kZV9tb2R1bGVzYClcbiAqIGFyZSByZXBvcnRlZC4gRGlhZ25vc3RpY3MgaW5zaWRlIGBub2RlX21vZHVsZXNgIFx1MjAxNCBicm9rZW4gdXBzdHJlYW0gYC5kLnRzYCBmaWxlcyB3ZSBkbyBub3QgY29udHJvbCBcdTIwMTRcbiAqIGFyZSBpZ25vcmVkLiBDcm9zcy1tb2R1bGUtZm9ybWF0IGludGVyb3AgZGlhZ25vc3RpY3MgaW4gb3VyIG93biBkZWNsYXJhdGlvbnMgKGZvciBleGFtcGxlIGFcbiAqIENvbW1vbkpTIGAuZC5jdHNgIGltcG9ydGluZyBhbiBFU00tb25seSBwYWNrYWdlLCBgVFMxNTQxYCAvIGBUUzE1NDJgIC8gYFRTMTQ3OWApIGFyZSBOT1QgaWdub3JlZDpcbiAqIHRoZXkgZGVzY3JpYmUgZGVjbGFyYXRpb25zIHdlIGVtaXQsIHNvIHRoZSBnZW5lcmF0b3IgbXVzdCBwcm9kdWNlIHZhbGlkIG91dHB1dCAoZS5nLiBhZGQgdGhlXG4gKiByZXF1aXJlZCBgcmVzb2x1dGlvbi1tb2RlYCBhdHRyaWJ1dGUpIHJhdGhlciB0aGFuIHRoZSB2YWxpZGF0b3IgaGlkaW5nIHRoZSBwcm9ibGVtLlxuICovXG5cbmltcG9ydCB7IGpvaW4gfSBmcm9tICcuLi9wYXRoLnRzJztcbmltcG9ydCB7XG4gIGNoZWNrUHJvamVjdFR5cGVzLFxuICBwYXJzZVRzQ29uZmlnLFxuICB0b0Nhbm9uaWNhbFxufSBmcm9tICcuL2NoZWNrLXByb2plY3QtdHlwZXMudHMnO1xuaW1wb3J0IHsgT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocyB9IGZyb20gJy4vb2JzaWRpYW4tZGV2LXV0aWxzLXJlcG8tcGF0aHMudHMnO1xuaW1wb3J0IHsgZ2V0Um9vdEZvbGRlciB9IGZyb20gJy4vcm9vdC50cyc7XG5cbmNvbnN0IE5PREVfTU9EVUxFU19TRUdNRU5UID0gJy9ub2RlX21vZHVsZXMvJztcblxuY29uc3QgVkFMSURBVEVfREVDTEFSQVRJT05TX1RTX0NPTkZJR19GSUxFX05BTUVTID0gW1xuICBPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLlRzQ29uZmlnVmFsaWRhdGVEZWNsYXJhdGlvbnNKc29uLFxuICBPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLlRzQ29uZmlnVmFsaWRhdGVEZWNsYXJhdGlvbnNDanNKc29uXG5dO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayB2YWxpZGF0ZURlY2xhcmF0aW9uc30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmFsaWRhdGVEZWNsYXJhdGlvbnNPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZW4gYHRydWVgLCB0aGUgaWdub3JlZCBgbm9kZV9tb2R1bGVzYCBkaWFnbm9zdGljcyBhcmUgcHJpbnRlZCBpbiBmdWxsIGluIGFkZGl0aW9uIHRvIHRoZWlyXG4gICAqIGNvdW50LCBzbyB0aGV5IGNhbiBiZSBpbnNwZWN0ZWQuIFdoZW4gb21pdHRlZCBvciBgZmFsc2VgLCBvbmx5IHRoZSBjb3VudCBpcyBwcmludGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICByZWFkb25seSBpc1ZlcmJvc2U/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBzaG91bGRLZWVwUHJvamVjdEZpbGV9LlxuICovXG5pbnRlcmZhY2UgU2hvdWxkS2VlcFByb2plY3RGaWxlUGFyYW1zIHtcbiAgLyoqXG4gICAqIEFic29sdXRlIHBhdGggb2YgdGhlIGZpbGUgdW5kZXIgY29uc2lkZXJhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGZpbGVOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFic29sdXRlIChjYW5vbmljYWwpIHBhdGggb2YgdGhlIHByb2plY3Qgcm9vdC5cbiAgICovXG4gIHJlYWRvbmx5IHJvb3RDYW5vbmljYWw6IHN0cmluZztcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZXMgdGhlIGdlbmVyYXRlZCBkZWNsYXJhdGlvbiBmaWxlcyBhZ2FpbnN0IHRoZSBgdHNjb25maWcudmFsaWRhdGUtZGVjbGFyYXRpb25zKi5qc29uYFxuICogY29uZmlncywgcmVwb3J0aW5nIGV2ZXJ5IGRpYWdub3N0aWMgdGhhdCBjb25jZXJucyB0aGUgbGlicmFyeSdzIG93biBkZWNsYXJhdGlvbnMgYW5kIGlnbm9yaW5nIG9ubHlcbiAqIHRob3NlIHdob3NlIHNvdXJjZSBmaWxlIGxpdmVzIGluIGBub2RlX21vZHVsZXNgLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgY29udHJvbGxpbmcgdmFsaWRhdGlvbiBvdXRwdXQuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgd2hlbiB0aGUgbGlicmFyeSdzIG93biBkZWNsYXJhdGlvbnMgaGF2ZSBubyB0eXBlIGVycm9ycywgYGZhbHNlYCBvdGhlcndpc2UuXG4gKiBAdGhyb3dzIElmIHRoZSByb290IGZvbGRlciBjYW5ub3QgYmUgZm91bmQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZURlY2xhcmF0aW9ucyhvcHRpb25zOiBWYWxpZGF0ZURlY2xhcmF0aW9uc09wdGlvbnMgPSB7fSk6IGJvb2xlYW4ge1xuICBjb25zdCByb290ID0gZ2V0Um9vdEZvbGRlcigpO1xuXG4gIGlmICghcm9vdCkge1xuICAgIHRocm93IG5ldyBFcnJvcignQ291bGQgbm90IGZpbmQgcm9vdCBmb2xkZXInKTtcbiAgfVxuXG4gIGNvbnN0IHJvb3RDYW5vbmljYWwgPSB0b0Nhbm9uaWNhbChyb290KTtcblxuICBsZXQgaXNWYWxpZCA9IHRydWU7XG5cbiAgZm9yIChjb25zdCB0c0NvbmZpZ0ZpbGVOYW1lIG9mIFZBTElEQVRFX0RFQ0xBUkFUSU9OU19UU19DT05GSUdfRklMRV9OQU1FUykge1xuICAgIGNvbnN0IHsgZmlsZU5hbWVzLCBvcHRpb25zOiBjb21waWxlck9wdGlvbnMgfSA9IHBhcnNlVHNDb25maWcoam9pbihyb290LCB0c0NvbmZpZ0ZpbGVOYW1lKSk7XG4gICAgY29uc3QgaXNDb25maWdWYWxpZCA9IGNoZWNrUHJvamVjdFR5cGVzKHtcbiAgICAgIGlzVmVyYm9zZTogb3B0aW9ucy5pc1ZlcmJvc2UgPz8gZmFsc2UsXG4gICAgICBvcHRpb25zOiBjb21waWxlck9wdGlvbnMsXG4gICAgICByb290TmFtZXM6IGZpbGVOYW1lcyxcbiAgICAgIHNob3VsZEtlZXBGaWxlOiAoZmlsZU5hbWUpID0+IHNob3VsZEtlZXBQcm9qZWN0RmlsZSh7IGZpbGVOYW1lLCByb290Q2Fub25pY2FsIH0pXG4gICAgfSk7XG4gICAgaXNWYWxpZCAmJj0gaXNDb25maWdWYWxpZDtcbiAgfVxuXG4gIHJldHVybiBpc1ZhbGlkO1xufVxuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciBhIGZpbGUgYmVsb25ncyB0byB0aGUgcHJvamVjdCAodW5kZXIgdGhlIHJvb3QgZm9sZGVyLCBvdXRzaWRlIGBub2RlX21vZHVsZXNgKS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBjaGVjay5cbiAqIEByZXR1cm5zIGB0cnVlYCB3aGVuIHRoZSBmaWxlIGJlbG9uZ3MgdG8gdGhlIHByb2plY3QuXG4gKi9cbmZ1bmN0aW9uIHNob3VsZEtlZXBQcm9qZWN0RmlsZShwYXJhbXM6IFNob3VsZEtlZXBQcm9qZWN0RmlsZVBhcmFtcyk6IGJvb2xlYW4ge1xuICBjb25zdCB7IGZpbGVOYW1lLCByb290Q2Fub25pY2FsIH0gPSBwYXJhbXM7XG4gIHJldHVybiBmaWxlTmFtZS5zdGFydHNXaXRoKGAke3Jvb3RDYW5vbmljYWx9L2ApICYmICFmaWxlTmFtZS5pbmNsdWRlcyhOT0RFX01PRFVMRVNfU0VHTUVOVCk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFlQSxrQkFBcUI7QUFDckIsaUNBSU87QUFDUCwyQ0FBMEM7QUFDMUMsa0JBQThCO0FBRTlCLE1BQU0sdUJBQXVCO0FBRTdCLE1BQU0sNkNBQTZDO0FBQUEsRUFDakQsK0RBQTBCO0FBQUEsRUFDMUIsK0RBQTBCO0FBQzVCO0FBdUNPLFNBQVMscUJBQXFCLFVBQXVDLENBQUMsR0FBWTtBQUN2RixRQUFNLFdBQU8sMkJBQWM7QUFFM0IsTUFBSSxDQUFDLE1BQU07QUFDVCxVQUFNLElBQUksTUFBTSw0QkFBNEI7QUFBQSxFQUM5QztBQUVBLFFBQU0sb0JBQWdCLHdDQUFZLElBQUk7QUFFdEMsTUFBSSxVQUFVO0FBRWQsYUFBVyxvQkFBb0IsNENBQTRDO0FBQ3pFLFVBQU0sRUFBRSxXQUFXLFNBQVMsZ0JBQWdCLFFBQUksOENBQWMsa0JBQUssTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRixVQUFNLG9CQUFnQiw4Q0FBa0I7QUFBQSxNQUN0QyxXQUFXLFFBQVEsYUFBYTtBQUFBLE1BQ2hDLFNBQVM7QUFBQSxNQUNULFdBQVc7QUFBQSxNQUNYLGdCQUFnQixDQUFDLGFBQWEsc0JBQXNCLEVBQUUsVUFBVSxjQUFjLENBQUM7QUFBQSxJQUNqRixDQUFDO0FBQ0QsZ0JBQVk7QUFBQSxFQUNkO0FBRUEsU0FBTztBQUNUO0FBUUEsU0FBUyxzQkFBc0IsUUFBOEM7QUFDM0UsUUFBTSxFQUFFLFVBQVUsY0FBYyxJQUFJO0FBQ3BDLFNBQU8sU0FBUyxXQUFXLEdBQUcsYUFBYSxHQUFHLEtBQUssQ0FBQyxTQUFTLFNBQVMsb0JBQW9CO0FBQzVGOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -6,19 +6,32 @@
6
6
  * — every `lib` and internal cross-reference they rely on resolves on its own, independent of the
7
7
  * consumer's `tsconfig`.
8
8
  *
9
- * The library does not own the types of the third-party packages its declarations import (e.g.
10
- * `type-fest`, `obsidian`, `markdownlint`). Cross-module-format interop diagnostics caused by those
11
- * imports for example a CommonJS `.d.cts` importing an ESM-only package without a
12
- * `resolution-mode` attribute (`TS1541` / `TS1542` / `TS1479`) describe the third-party package's
13
- * shape, not a flaw in our declarations, and are the consumer's concern. They are therefore ignored.
14
- * Only diagnostics about the library's own declarations are reported.
9
+ * Only diagnostics whose source file is one we own (under the project root, outside `node_modules`)
10
+ * are reported. Diagnostics inside `node_modules` — broken upstream `.d.ts` files we do not control
11
+ * are ignored. Cross-module-format interop diagnostics in our own declarations (for example a
12
+ * CommonJS `.d.cts` importing an ESM-only package, `TS1541` / `TS1542` / `TS1479`) are NOT ignored:
13
+ * they describe declarations we emit, so the generator must produce valid output (e.g. add the
14
+ * required `resolution-mode` attribute) rather than the validator hiding the problem.
15
15
  */
16
+ /**
17
+ * Options for {@link validateDeclarations}.
18
+ */
19
+ export interface ValidateDeclarationsOptions {
20
+ /**
21
+ * When `true`, the ignored `node_modules` diagnostics are printed in full in addition to their
22
+ * count, so they can be inspected. When omitted or `false`, only the count is printed.
23
+ *
24
+ * @default `false`
25
+ */
26
+ readonly isVerbose?: boolean;
27
+ }
16
28
  /**
17
29
  * Validates the generated declaration files against the `tsconfig.validate-declarations*.json`
18
- * configs, reporting only diagnostics that concern the library's own declarations and ignoring those
19
- * caused by importing third-party packages.
30
+ * configs, reporting every diagnostic that concerns the library's own declarations and ignoring only
31
+ * those whose source file lives in `node_modules`.
20
32
  *
33
+ * @param options - The options controlling validation output.
21
34
  * @returns `true` when the library's own declarations have no type errors, `false` otherwise.
22
35
  * @throws If the root folder cannot be found.
23
36
  */
24
- export declare function validateDeclarations(): boolean;
37
+ export declare function validateDeclarations(options?: ValidateDeclarationsOptions): boolean;