obsidian-dev-utils 51.0.1 → 51.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/dist/lib/cjs/async.cjs +2 -2
  3. package/dist/lib/cjs/blob.cjs +2 -2
  4. package/dist/lib/cjs/debug.cjs +7 -8
  5. package/dist/lib/cjs/library.cjs +1 -1
  6. package/dist/lib/cjs/object-utils.cjs +23 -23
  7. package/dist/lib/cjs/obsidian/app.cjs +4 -3
  8. package/dist/lib/cjs/obsidian/components/setting-components/multiple-file-component.cjs +3 -2
  9. package/dist/lib/cjs/obsidian/components/setting-components/typed-text-component.cjs +1 -1
  10. package/dist/lib/cjs/obsidian/components/setting-components/validator-component.cjs +2 -2
  11. package/dist/lib/cjs/obsidian/constructors/getDomEventsHandlersConstructor.cjs +1 -1
  12. package/dist/lib/cjs/obsidian/constructors/getDomEventsHandlersConstructor.d.cts +3 -1
  13. package/dist/lib/cjs/obsidian/dataview-link.cjs +1 -1
  14. package/dist/lib/cjs/obsidian/dataview-link.d.cts +1 -1
  15. package/dist/lib/cjs/obsidian/file-change.cjs +1 -1
  16. package/dist/lib/cjs/obsidian/file-system.cjs +2 -2
  17. package/dist/lib/cjs/obsidian/i18n/custom-type-options-base.cjs +1 -1
  18. package/dist/lib/cjs/obsidian/i18n/custom-type-options-base.d.cts +12 -6
  19. package/dist/lib/cjs/obsidian/index.cjs +4 -1
  20. package/dist/lib/cjs/obsidian/index.d.cts +1 -0
  21. package/dist/lib/cjs/obsidian/is-in-obsidian.cjs +143 -0
  22. package/dist/lib/cjs/obsidian/is-in-obsidian.d.cts +11 -0
  23. package/dist/lib/cjs/obsidian/link.cjs +37 -37
  24. package/dist/lib/cjs/obsidian/markdown.cjs +1 -1
  25. package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.cjs +2 -2
  26. package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.d.cts +1 -1
  27. package/dist/lib/cjs/obsidian/plugin/path-settings.cjs +4 -5
  28. package/dist/lib/cjs/obsidian/plugin/plugin-settings-manager-base.cjs +2 -2
  29. package/dist/lib/cjs/obsidian/rename-delete-handler.cjs +2 -2
  30. package/dist/lib/cjs/obsidian/resource-url.cjs +3 -2
  31. package/dist/lib/cjs/obsidian/vault.cjs +2 -2
  32. package/dist/lib/cjs/reg-exp.cjs +5 -6
  33. package/dist/lib/cjs/script-utils/build.cjs +5 -5
  34. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/changeExtensionPlugin.cjs +3 -3
  35. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/copyToObsidianPluginsFolderPlugin.cjs +12 -11
  36. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/dependency.cjs +4 -4
  37. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/fixSourceMapsPlugin.cjs +6 -5
  38. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.cjs +15 -12
  39. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/preprocessPlugin.cjs +3 -3
  40. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/renameCssPlugin.cjs +5 -4
  41. package/dist/lib/cjs/script-utils/bundlers/esbuild.cjs +1 -1
  42. package/dist/lib/cjs/script-utils/cli-utils.cjs +14 -4
  43. package/dist/lib/cjs/script-utils/code-generator.cjs +3 -3
  44. package/dist/lib/cjs/script-utils/commitlint-config.cjs +134 -0
  45. package/dist/lib/cjs/script-utils/commitlint-config.d.cts +10 -0
  46. package/dist/lib/cjs/script-utils/exec.cjs +99 -10
  47. package/dist/lib/cjs/script-utils/exec.d.cts +35 -6
  48. package/dist/lib/cjs/script-utils/formatters/dprint.cjs +8 -6
  49. package/dist/lib/cjs/script-utils/formatters/dprint.d.cts +15 -2
  50. package/dist/lib/cjs/script-utils/fs.cjs +8 -11
  51. package/dist/lib/cjs/script-utils/fs.d.cts +1 -1
  52. package/dist/lib/cjs/script-utils/index.cjs +7 -4
  53. package/dist/lib/cjs/script-utils/index.d.cts +2 -1
  54. package/dist/lib/cjs/script-utils/json.cjs +9 -8
  55. package/dist/lib/cjs/script-utils/linters/cspell.cjs +5 -3
  56. package/dist/lib/cjs/script-utils/linters/cspell.d.cts +14 -1
  57. package/dist/lib/cjs/script-utils/linters/eslint-config.cjs +32 -20
  58. package/dist/lib/cjs/script-utils/linters/eslint-rules/index.cjs +142 -0
  59. package/dist/lib/cjs/script-utils/linters/eslint-rules/index.d.cts +1 -0
  60. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-used-underscore-params.cjs +174 -0
  61. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-used-underscore-params.d.cts +12 -0
  62. package/dist/lib/cjs/script-utils/linters/eslint-types/@types/@eslint-community__eslint-plugin-eslint-comments__configs.d.cts +4 -2
  63. package/dist/lib/cjs/script-utils/linters/eslint.cjs +9 -6
  64. package/dist/lib/cjs/script-utils/linters/eslint.d.cts +15 -2
  65. package/dist/lib/cjs/script-utils/linters/index.cjs +4 -1
  66. package/dist/lib/cjs/script-utils/linters/index.d.cts +1 -0
  67. package/dist/lib/cjs/script-utils/linters/markdownlint.cjs +13 -10
  68. package/dist/lib/cjs/script-utils/linters/markdownlint.d.cts +15 -2
  69. package/dist/lib/cjs/script-utils/nano-staged-config.cjs +143 -0
  70. package/dist/lib/cjs/script-utils/nano-staged-config.d.cts +14 -0
  71. package/dist/lib/cjs/script-utils/npm-publish.cjs +16 -5
  72. package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.cjs +2 -1
  73. package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.d.cts +2 -0
  74. package/dist/lib/cjs/script-utils/root.cjs +3 -3
  75. package/dist/lib/cjs/script-utils/root.d.cts +3 -7
  76. package/dist/lib/cjs/script-utils/test-runners/vitest.cjs +6 -3
  77. package/dist/lib/cjs/script-utils/test-runners/vitest.d.cts +12 -1
  78. package/dist/lib/cjs/script-utils/version.cjs +22 -31
  79. package/dist/lib/cjs/string.cjs +4 -13
  80. package/dist/lib/cjs/string.d.cts +2 -2
  81. package/dist/lib/cjs/type-guards.cjs +8 -1
  82. package/dist/lib/cjs/type-guards.d.cts +11 -1
  83. package/dist/lib/esm/async.mjs +6 -3
  84. package/dist/lib/esm/blob.mjs +2 -2
  85. package/dist/lib/esm/debug.mjs +5 -6
  86. package/dist/lib/esm/library.mjs +1 -1
  87. package/dist/lib/esm/object-utils.mjs +24 -23
  88. package/dist/lib/esm/obsidian/app.mjs +4 -3
  89. package/dist/lib/esm/obsidian/components/setting-components/multiple-file-component.mjs +3 -2
  90. package/dist/lib/esm/obsidian/components/setting-components/typed-text-component.mjs +1 -1
  91. package/dist/lib/esm/obsidian/components/setting-components/validator-component.mjs +2 -2
  92. package/dist/lib/esm/obsidian/constructors/getDomEventsHandlersConstructor.d.mts +3 -1
  93. package/dist/lib/esm/obsidian/constructors/getDomEventsHandlersConstructor.mjs +1 -1
  94. package/dist/lib/esm/obsidian/dataview-link.d.mts +1 -1
  95. package/dist/lib/esm/obsidian/dataview-link.mjs +1 -1
  96. package/dist/lib/esm/obsidian/file-change.mjs +1 -1
  97. package/dist/lib/esm/obsidian/file-system.mjs +3 -2
  98. package/dist/lib/esm/obsidian/i18n/custom-type-options-base.d.mts +12 -6
  99. package/dist/lib/esm/obsidian/i18n/custom-type-options-base.mjs +1 -1
  100. package/dist/lib/esm/obsidian/index.d.mts +1 -0
  101. package/dist/lib/esm/obsidian/index.mjs +3 -1
  102. package/dist/lib/esm/obsidian/is-in-obsidian.d.mts +11 -0
  103. package/dist/lib/esm/obsidian/is-in-obsidian.mjs +39 -0
  104. package/dist/lib/esm/obsidian/link.mjs +38 -41
  105. package/dist/lib/esm/obsidian/markdown.mjs +1 -1
  106. package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.d.mts +1 -1
  107. package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.mjs +2 -2
  108. package/dist/lib/esm/obsidian/plugin/path-settings.mjs +4 -5
  109. package/dist/lib/esm/obsidian/plugin/plugin-settings-manager-base.mjs +3 -2
  110. package/dist/lib/esm/obsidian/rename-delete-handler.mjs +6 -3
  111. package/dist/lib/esm/obsidian/resource-url.mjs +3 -2
  112. package/dist/lib/esm/obsidian/vault.mjs +3 -2
  113. package/dist/lib/esm/reg-exp.mjs +5 -6
  114. package/dist/lib/esm/script-utils/build.mjs +6 -6
  115. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/changeExtensionPlugin.mjs +2 -2
  116. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/copyToObsidianPluginsFolderPlugin.mjs +8 -8
  117. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/dependency.mjs +5 -5
  118. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/fixSourceMapsPlugin.mjs +5 -5
  119. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.mjs +10 -11
  120. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/preprocessPlugin.mjs +2 -2
  121. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/renameCssPlugin.mjs +3 -5
  122. package/dist/lib/esm/script-utils/bundlers/esbuild.mjs +1 -1
  123. package/dist/lib/esm/script-utils/cli-utils.mjs +2 -2
  124. package/dist/lib/esm/script-utils/code-generator.mjs +2 -2
  125. package/dist/lib/esm/script-utils/commitlint-config.d.mts +10 -0
  126. package/dist/lib/esm/script-utils/commitlint-config.mjs +28 -0
  127. package/dist/lib/esm/script-utils/exec.d.mts +35 -6
  128. package/dist/lib/esm/script-utils/exec.mjs +84 -8
  129. package/dist/lib/esm/script-utils/formatters/dprint.d.mts +15 -2
  130. package/dist/lib/esm/script-utils/formatters/dprint.mjs +6 -4
  131. package/dist/lib/esm/script-utils/fs.d.mts +1 -1
  132. package/dist/lib/esm/script-utils/fs.mjs +5 -8
  133. package/dist/lib/esm/script-utils/index.d.mts +2 -1
  134. package/dist/lib/esm/script-utils/index.mjs +5 -3
  135. package/dist/lib/esm/script-utils/json.mjs +7 -5
  136. package/dist/lib/esm/script-utils/linters/cspell.d.mts +14 -1
  137. package/dist/lib/esm/script-utils/linters/cspell.mjs +5 -3
  138. package/dist/lib/esm/script-utils/linters/eslint-config.mjs +32 -20
  139. package/dist/lib/esm/script-utils/linters/eslint-rules/index.d.mts +1 -0
  140. package/dist/lib/esm/script-utils/linters/eslint-rules/index.mjs +26 -0
  141. package/dist/lib/esm/script-utils/linters/eslint-rules/no-used-underscore-params.d.mts +12 -0
  142. package/dist/lib/esm/script-utils/linters/eslint-rules/no-used-underscore-params.mjs +68 -0
  143. package/dist/lib/esm/script-utils/linters/eslint-types/@types/@eslint-community__eslint-plugin-eslint-comments__configs.d.mts +4 -2
  144. package/dist/lib/esm/script-utils/linters/eslint.d.mts +15 -2
  145. package/dist/lib/esm/script-utils/linters/eslint.mjs +7 -7
  146. package/dist/lib/esm/script-utils/linters/index.d.mts +1 -0
  147. package/dist/lib/esm/script-utils/linters/index.mjs +3 -1
  148. package/dist/lib/esm/script-utils/linters/markdownlint.d.mts +15 -2
  149. package/dist/lib/esm/script-utils/linters/markdownlint.mjs +13 -11
  150. package/dist/lib/esm/script-utils/nano-staged-config.d.mts +14 -0
  151. package/dist/lib/esm/script-utils/nano-staged-config.mjs +37 -0
  152. package/dist/lib/esm/script-utils/npm-publish.mjs +3 -6
  153. package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.d.mts +2 -0
  154. package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.mjs +2 -1
  155. package/dist/lib/esm/script-utils/root.d.mts +3 -7
  156. package/dist/lib/esm/script-utils/root.mjs +2 -2
  157. package/dist/lib/esm/script-utils/test-runners/vitest.d.mts +12 -1
  158. package/dist/lib/esm/script-utils/test-runners/vitest.mjs +6 -3
  159. package/dist/lib/esm/script-utils/version.mjs +16 -27
  160. package/dist/lib/esm/string.d.mts +2 -2
  161. package/dist/lib/esm/string.mjs +7 -13
  162. package/dist/lib/esm/type-guards.d.mts +11 -1
  163. package/dist/lib/esm/type-guards.mjs +7 -1
  164. package/dist/scripts/build/build-clean.ts +4 -0
  165. package/dist/scripts/build/build-compile-svelte.ts +4 -0
  166. package/dist/scripts/build/build-compile-typescript.ts +4 -0
  167. package/dist/scripts/build/build-compile.ts +4 -0
  168. package/dist/scripts/build/build-static.ts +4 -0
  169. package/dist/scripts/bundlers/esbuild/build.ts +4 -0
  170. package/dist/scripts/bundlers/esbuild/dev.ts +4 -0
  171. package/dist/scripts/formatters/dprint/format-check.ts +8 -0
  172. package/dist/scripts/formatters/dprint/format.ts +8 -0
  173. package/dist/scripts/linters/cspell/spellcheck.ts +8 -0
  174. package/dist/scripts/linters/eslint/lint-fix.ts +8 -0
  175. package/dist/scripts/linters/eslint/lint.ts +8 -0
  176. package/dist/scripts/linters/markdownlint/lint-md-fix.ts +8 -0
  177. package/dist/scripts/linters/markdownlint/lint-md.ts +8 -0
  178. package/dist/scripts/test-runners/vitest/test-coverage.ts +4 -0
  179. package/dist/scripts/test-runners/vitest/test-watch.ts +4 -0
  180. package/dist/scripts/test-runners/vitest/test.ts +4 -0
  181. package/dist/scripts/version/version.ts +7 -0
  182. package/obsidian/is-in-obsidian/package.json +6 -0
  183. package/package.json +30 -4
  184. package/script-utils/commitlint-config/package.json +6 -0
  185. package/script-utils/linters/eslint-rules/index/package.json +6 -0
  186. package/script-utils/linters/eslint-rules/no-used-underscore-params/package.json +6 -0
  187. package/script-utils/linters/eslint-rules/package.json +6 -0
  188. package/script-utils/nano-staged-config/package.json +6 -0
  189. package/dist/lib/cjs/script-utils/linters/eslint-types/@types/@guardian__eslint-plugin-tsdoc-required.d.cts +0 -14
  190. package/dist/lib/cjs/script-utils/node-modules.cjs +0 -207
  191. package/dist/lib/cjs/script-utils/node-modules.d.cts +0 -17
  192. package/dist/lib/esm/script-utils/linters/eslint-types/@types/@guardian__eslint-plugin-tsdoc-required.d.mts +0 -14
  193. package/dist/lib/esm/script-utils/node-modules.d.mts +0 -17
  194. package/dist/lib/esm/script-utils/node-modules.mjs +0 -92
  195. package/dist/scripts/default/build-clean.ts +0 -5
  196. package/dist/scripts/default/build-compile-svelte.ts +0 -5
  197. package/dist/scripts/default/build-compile-typescript.ts +0 -5
  198. package/dist/scripts/default/build-compile.ts +0 -5
  199. package/dist/scripts/default/build-static.ts +0 -5
  200. package/dist/scripts/default/build.ts +0 -9
  201. package/dist/scripts/default/dev.ts +0 -10
  202. package/dist/scripts/default/format-check.ts +0 -5
  203. package/dist/scripts/default/format.ts +0 -5
  204. package/dist/scripts/default/lint-fix.ts +0 -5
  205. package/dist/scripts/default/lint.ts +0 -5
  206. package/dist/scripts/default/publish.ts +0 -5
  207. package/dist/scripts/default/spellcheck.ts +0 -5
  208. package/dist/scripts/default/version.ts +0 -5
  209. package/dist/scripts/examples/build.customPlugin.ts +0 -38
  210. package/dist/scripts/examples/build.svelteConditions.ts +0 -18
  211. package/dist/scripts/examples/eslint.config.extend.mts +0 -14
  212. package/dist/scripts/examples/eslint.config.no-dev-utils.mts +0 -15
  213. package/dist/scripts/examples/format.prettier.ts +0 -25
  214. package/script-utils/linters/eslint-types/@types/@guardian__eslint-plugin-tsdoc-required/package.json +0 -4
  215. package/script-utils/node-modules/package.json +0 -6
@@ -19,14 +19,16 @@ if you want to view the source, please visit the github repository of this plugi
19
19
  globalThis.process = browserProcess;
20
20
  })();
21
21
 
22
- import { toJson } from "../object-utils.mjs";
23
22
  import {
24
23
  existsSync,
25
- readFile,
26
24
  readFileSync,
27
- writeFile,
28
25
  writeFileSync
29
- } from "./node-modules.mjs";
26
+ } from "node:fs";
27
+ import {
28
+ readFile,
29
+ writeFile
30
+ } from "node:fs/promises";
31
+ import { toJson } from "../object-utils.mjs";
30
32
  async function editJson(path, editFn, options = {}) {
31
33
  const {
32
34
  shouldSkipIfMissing
@@ -71,4 +73,4 @@ export {
71
73
  writeJson,
72
74
  writeJsonSync
73
75
  };
74
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9qc29uLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIENvbnRhaW5zIHV0aWxpdHkgZnVuY3Rpb25zIGZvciBKU09OLlxuICovXG5cbmltcG9ydCB0eXBlIHsgUHJvbWlzYWJsZSB9IGZyb20gJ3R5cGUtZmVzdCc7XG5cbmltcG9ydCB7IHRvSnNvbiB9IGZyb20gJy4uL29iamVjdC11dGlscy50cyc7XG5pbXBvcnQge1xuICBleGlzdHNTeW5jLFxuICByZWFkRmlsZSxcbiAgcmVhZEZpbGVTeW5jLFxuICB3cml0ZUZpbGUsXG4gIHdyaXRlRmlsZVN5bmNcbn0gZnJvbSAnLi9ub2RlLW1vZHVsZXMudHMnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBlZGl0SnNvbn0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRWRpdEpzb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIElmIGB0cnVlYCwgc2tpcHMgZWRpdGluZyBpZiB0aGUgZmlsZSBkb2VzIG5vdCBleGlzdC5cbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZFNraXBJZk1pc3Npbmc/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJlYWRzLCBlZGl0cywgYW5kIHdyaXRlcyBiYWNrIGEgSlNPTiBmaWxlIHVzaW5nIGEgcHJvdmlkZWQgZWRpdCBmdW5jdGlvbi5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiB0aGUgZGF0YSB0byBiZSBlZGl0ZWQuXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSBwYXRoIHRvIHRoZSBKU09OIGZpbGUuXG4gKiBAcGFyYW0gZWRpdEZuIC0gVGhlIGZ1bmN0aW9uIHRvIGVkaXQgdGhlIHBhcnNlZCBKU09OIGRhdGEuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFkZGl0aW9uYWwgb3B0aW9ucyBmb3IgZWRpdGluZy5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZmlsZSBoYXMgYmVlbiBlZGl0ZWQgYW5kIHdyaXR0ZW4uXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktdHlwZS1wYXJhbWV0ZXJzIC0tIFdlIG5lZWQgdG8gdXNlIHRoZSBkdW1teSBwYXJhbWV0ZXIgdG8gZ2V0IHR5cGUgaW5mZXJlbmNlLlxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGVkaXRKc29uPFQ+KFxuICBwYXRoOiBzdHJpbmcsXG4gIGVkaXRGbjogKGRhdGE6IFQpID0+IFByb21pc2FibGU8dm9pZD4sXG4gIG9wdGlvbnM6IEVkaXRKc29uT3B0aW9ucyA9IHt9XG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3Qge1xuICAgIHNob3VsZFNraXBJZk1pc3NpbmdcbiAgfSA9IG9wdGlvbnM7XG4gIGlmIChzaG91bGRTa2lwSWZNaXNzaW5nICYmICFleGlzdHNTeW5jKHBhdGgpKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnN0IGRhdGEgPSBhd2FpdCByZWFkSnNvbjxUPihwYXRoKTtcbiAgYXdhaXQgZWRpdEZuKGRhdGEpO1xuICBhd2FpdCB3cml0ZUpzb24ocGF0aCwgZGF0YSk7XG59XG5cbi8qKlxuICogUmVhZHMsIGVkaXRzLCBhbmQgd3JpdGVzIGJhY2sgYSBKU09OIGZpbGUgdXNpbmcgYSBwcm92aWRlZCBlZGl0IGZ1bmN0aW9uLlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIHRoZSBkYXRhIHRvIGJlIGVkaXRlZC5cbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggdG8gdGhlIEpTT04gZmlsZS5cbiAqIEBwYXJhbSBlZGl0Rm4gLSBUaGUgZnVuY3Rpb24gdG8gZWRpdCB0aGUgcGFyc2VkIEpTT04gZGF0YS5cbiAqIEBwYXJhbSBvcHRpb25zIC0gQWRkaXRpb25hbCBvcHRpb25zIGZvciBlZGl0aW5nLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LXR5cGUtcGFyYW1ldGVycyAtLSBXZSBuZWVkIHRvIHVzZSB0aGUgZHVtbXkgcGFyYW1ldGVyIHRvIGdldCB0eXBlIGluZmVyZW5jZS5cbmV4cG9ydCBmdW5jdGlvbiBlZGl0SnNvblN5bmM8VD4oXG4gIHBhdGg6IHN0cmluZyxcbiAgZWRpdEZuOiAoZGF0YTogVCkgPT4gdm9pZCxcbiAgb3B0aW9uczogRWRpdEpzb25PcHRpb25zID0ge31cbik6IHZvaWQge1xuICBjb25zdCB7XG4gICAgc2hvdWxkU2tpcElmTWlzc2luZ1xuICB9ID0gb3B0aW9ucztcbiAgaWYgKHNob3VsZFNraXBJZk1pc3NpbmcgJiYgIWV4aXN0c1N5bmMocGF0aCkpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3QgZGF0YSA9IHJlYWRKc29uU3luYzxUPihwYXRoKTtcbiAgZWRpdEZuKGRhdGEpO1xuICB3cml0ZUpzb25TeW5jKHBhdGgsIGRhdGEpO1xufVxuXG4vKipcbiAqIFJlYWRzIGEgSlNPTiBmaWxlIGFuZCBwYXJzZXMgaXRzIGNvbnRlbnRzIGludG8gYSBKYXZhU2NyaXB0IG9iamVjdCBvZiB0eXBlIGBUYC5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSB0byB3aGljaCB0aGUgSlNPTiBjb250ZW50IHdpbGwgYmUgcGFyc2VkLlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCB0byB0aGUgSlNPTiBmaWxlLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBwYXJzZWQgSlNPTiBvYmplY3Qgb2YgdHlwZSBgVGAuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWFkSnNvbjxUPihwYXRoOiBzdHJpbmcpOiBQcm9taXNlPFQ+IHtcbiAgcmV0dXJuIEpTT04ucGFyc2UoYXdhaXQgcmVhZEZpbGUocGF0aCwgJ3V0Zi04JykpIGFzIFQ7XG59XG5cbi8qKlxuICogUmVhZHMgYSBKU09OIGZpbGUgYW5kIHBhcnNlcyBpdHMgY29udGVudHMgaW50byBhIEphdmFTY3JpcHQgb2JqZWN0IG9mIHR5cGUgYFRgLlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIHRvIHdoaWNoIHRoZSBKU09OIGNvbnRlbnQgd2lsbCBiZSBwYXJzZWQuXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSBwYXRoIHRvIHRoZSBKU09OIGZpbGUuXG4gKiBAcmV0dXJucyBUaGUgcGFyc2VkIEpTT04gb2JqZWN0IG9mIHR5cGUgYFRgLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LXR5cGUtcGFyYW1ldGVycyAtLSBXZSBuZWVkIHRvIHVzZSB0aGUgZHVtbXkgcGFyYW1ldGVyIHRvIGdldCB0eXBlIGluZmVyZW5jZS5cbmV4cG9ydCBmdW5jdGlvbiByZWFkSnNvblN5bmM8VD4ocGF0aDogc3RyaW5nKTogVCB7XG4gIHJldHVybiBKU09OLnBhcnNlKHJlYWRGaWxlU3luYyhwYXRoLCAndXRmLTgnKSkgYXMgVDtcbn1cblxuLyoqXG4gKiBXcml0ZXMgYSBKYXZhU2NyaXB0IG9iamVjdCB0byBhIEpTT04gZmlsZS5cbiAqXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSBwYXRoIHRvIHRoZSBKU09OIGZpbGUuXG4gKiBAcGFyYW0gZGF0YSAtIFRoZSBkYXRhIHRvIHdyaXRlIHRvIHRoZSBKU09OIGZpbGUuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGZpbGUgaGFzIGJlZW4gd3JpdHRlbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdyaXRlSnNvbihwYXRoOiBzdHJpbmcsIGRhdGE6IHVua25vd24pOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgd3JpdGVGaWxlKHBhdGgsIGAke3RvSnNvbihkYXRhKX1cXG5gKTtcbn1cblxuLyoqXG4gKiBXcml0ZXMgYSBKYXZhU2NyaXB0IG9iamVjdCB0byBhIEpTT04gZmlsZS5cbiAqXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSBwYXRoIHRvIHRoZSBKU09OIGZpbGUuXG4gKiBAcGFyYW0gZGF0YSAtIFRoZSBkYXRhIHRvIHdyaXRlIHRvIHRoZSBKU09OIGZpbGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZUpzb25TeW5jKHBhdGg6IHN0cmluZywgZGF0YTogdW5rbm93bik6IHZvaWQge1xuICB3cml0ZUZpbGVTeW5jKHBhdGgsIGAke3RvSnNvbihkYXRhKX1cXG5gKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVFBLFNBQVMsY0FBYztBQUN2QjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQXNCUCxlQUFzQixTQUNwQixNQUNBLFFBQ0EsVUFBMkIsQ0FBQyxHQUNiO0FBQ2YsUUFBTTtBQUFBLElBQ0o7QUFBQSxFQUNGLElBQUk7QUFDSixNQUFJLHVCQUF1QixDQUFDLFdBQVcsSUFBSSxHQUFHO0FBQzVDO0FBQUEsRUFDRjtBQUNBLFFBQU0sT0FBTyxNQUFNLFNBQVksSUFBSTtBQUNuQyxRQUFNLE9BQU8sSUFBSTtBQUNqQixRQUFNLFVBQVUsTUFBTSxJQUFJO0FBQzVCO0FBV08sU0FBUyxhQUNkLE1BQ0EsUUFDQSxVQUEyQixDQUFDLEdBQ3RCO0FBQ04sUUFBTTtBQUFBLElBQ0o7QUFBQSxFQUNGLElBQUk7QUFDSixNQUFJLHVCQUF1QixDQUFDLFdBQVcsSUFBSSxHQUFHO0FBQzVDO0FBQUEsRUFDRjtBQUNBLFFBQU0sT0FBTyxhQUFnQixJQUFJO0FBQ2pDLFNBQU8sSUFBSTtBQUNYLGdCQUFjLE1BQU0sSUFBSTtBQUMxQjtBQVNBLGVBQXNCLFNBQVksTUFBMEI7QUFDMUQsU0FBTyxLQUFLLE1BQU0sTUFBTSxTQUFTLE1BQU0sT0FBTyxDQUFDO0FBQ2pEO0FBVU8sU0FBUyxhQUFnQixNQUFpQjtBQUMvQyxTQUFPLEtBQUssTUFBTSxhQUFhLE1BQU0sT0FBTyxDQUFDO0FBQy9DO0FBU0EsZUFBc0IsVUFBVSxNQUFjLE1BQThCO0FBQzFFLFFBQU0sVUFBVSxNQUFNLEdBQUcsT0FBTyxJQUFJLENBQUM7QUFBQSxDQUFJO0FBQzNDO0FBUU8sU0FBUyxjQUFjLE1BQWMsTUFBcUI7QUFDL0QsZ0JBQWMsTUFBTSxHQUFHLE9BQU8sSUFBSSxDQUFDO0FBQUEsQ0FBSTtBQUN6QzsiLAogICJuYW1lcyI6IFtdCn0K
76
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9qc29uLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIENvbnRhaW5zIHV0aWxpdHkgZnVuY3Rpb25zIGZvciBKU09OLlxuICovXG5cbmltcG9ydCB0eXBlIHsgUHJvbWlzYWJsZSB9IGZyb20gJ3R5cGUtZmVzdCc7XG5cbmltcG9ydCB7XG4gIGV4aXN0c1N5bmMsXG4gIHJlYWRGaWxlU3luYyxcbiAgd3JpdGVGaWxlU3luY1xufSBmcm9tICdub2RlOmZzJztcbmltcG9ydCB7XG4gIHJlYWRGaWxlLFxuICB3cml0ZUZpbGVcbn0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcyc7XG5cbmltcG9ydCB7IHRvSnNvbiB9IGZyb20gJy4uL29iamVjdC11dGlscy50cyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIGVkaXRKc29ufS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFZGl0SnNvbk9wdGlvbnMge1xuICAvKipcbiAgICogSWYgYHRydWVgLCBza2lwcyBlZGl0aW5nIGlmIHRoZSBmaWxlIGRvZXMgbm90IGV4aXN0LlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkU2tpcElmTWlzc2luZz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogUmVhZHMsIGVkaXRzLCBhbmQgd3JpdGVzIGJhY2sgYSBKU09OIGZpbGUgdXNpbmcgYSBwcm92aWRlZCBlZGl0IGZ1bmN0aW9uLlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIHRoZSBkYXRhIHRvIGJlIGVkaXRlZC5cbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggdG8gdGhlIEpTT04gZmlsZS5cbiAqIEBwYXJhbSBlZGl0Rm4gLSBUaGUgZnVuY3Rpb24gdG8gZWRpdCB0aGUgcGFyc2VkIEpTT04gZGF0YS5cbiAqIEBwYXJhbSBvcHRpb25zIC0gQWRkaXRpb25hbCBvcHRpb25zIGZvciBlZGl0aW5nLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBmaWxlIGhhcyBiZWVuIGVkaXRlZCBhbmQgd3JpdHRlbi5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bm5lY2Vzc2FyeS10eXBlLXBhcmFtZXRlcnMgLS0gV2UgbmVlZCB0byB1c2UgdGhlIGR1bW15IHBhcmFtZXRlciB0byBnZXQgdHlwZSBpbmZlcmVuY2UuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZWRpdEpzb248VD4oXG4gIHBhdGg6IHN0cmluZyxcbiAgZWRpdEZuOiAoZGF0YTogVCkgPT4gUHJvbWlzYWJsZTx2b2lkPixcbiAgb3B0aW9uczogRWRpdEpzb25PcHRpb25zID0ge31cbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7XG4gICAgc2hvdWxkU2tpcElmTWlzc2luZ1xuICB9ID0gb3B0aW9ucztcbiAgaWYgKHNob3VsZFNraXBJZk1pc3NpbmcgJiYgIWV4aXN0c1N5bmMocGF0aCkpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3QgZGF0YSA9IGF3YWl0IHJlYWRKc29uPFQ+KHBhdGgpO1xuICBhd2FpdCBlZGl0Rm4oZGF0YSk7XG4gIGF3YWl0IHdyaXRlSnNvbihwYXRoLCBkYXRhKTtcbn1cblxuLyoqXG4gKiBSZWFkcywgZWRpdHMsIGFuZCB3cml0ZXMgYmFjayBhIEpTT04gZmlsZSB1c2luZyBhIHByb3ZpZGVkIGVkaXQgZnVuY3Rpb24uXG4gKlxuICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgb2YgdGhlIGRhdGEgdG8gYmUgZWRpdGVkLlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCB0byB0aGUgSlNPTiBmaWxlLlxuICogQHBhcmFtIGVkaXRGbiAtIFRoZSBmdW5jdGlvbiB0byBlZGl0IHRoZSBwYXJzZWQgSlNPTiBkYXRhLlxuICogQHBhcmFtIG9wdGlvbnMgLSBBZGRpdGlvbmFsIG9wdGlvbnMgZm9yIGVkaXRpbmcuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktdHlwZS1wYXJhbWV0ZXJzIC0tIFdlIG5lZWQgdG8gdXNlIHRoZSBkdW1teSBwYXJhbWV0ZXIgdG8gZ2V0IHR5cGUgaW5mZXJlbmNlLlxuZXhwb3J0IGZ1bmN0aW9uIGVkaXRKc29uU3luYzxUPihcbiAgcGF0aDogc3RyaW5nLFxuICBlZGl0Rm46IChkYXRhOiBUKSA9PiB2b2lkLFxuICBvcHRpb25zOiBFZGl0SnNvbk9wdGlvbnMgPSB7fVxuKTogdm9pZCB7XG4gIGNvbnN0IHtcbiAgICBzaG91bGRTa2lwSWZNaXNzaW5nXG4gIH0gPSBvcHRpb25zO1xuICBpZiAoc2hvdWxkU2tpcElmTWlzc2luZyAmJiAhZXhpc3RzU3luYyhwYXRoKSkge1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zdCBkYXRhID0gcmVhZEpzb25TeW5jPFQ+KHBhdGgpO1xuICBlZGl0Rm4oZGF0YSk7XG4gIHdyaXRlSnNvblN5bmMocGF0aCwgZGF0YSk7XG59XG5cbi8qKlxuICogUmVhZHMgYSBKU09OIGZpbGUgYW5kIHBhcnNlcyBpdHMgY29udGVudHMgaW50byBhIEphdmFTY3JpcHQgb2JqZWN0IG9mIHR5cGUgYFRgLlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIHRvIHdoaWNoIHRoZSBKU09OIGNvbnRlbnQgd2lsbCBiZSBwYXJzZWQuXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSBwYXRoIHRvIHRoZSBKU09OIGZpbGUuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIHBhcnNlZCBKU09OIG9iamVjdCBvZiB0eXBlIGBUYC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWRKc29uPFQ+KHBhdGg6IHN0cmluZyk6IFByb21pc2U8VD4ge1xuICByZXR1cm4gSlNPTi5wYXJzZShhd2FpdCByZWFkRmlsZShwYXRoLCAndXRmLTgnKSkgYXMgVDtcbn1cblxuLyoqXG4gKiBSZWFkcyBhIEpTT04gZmlsZSBhbmQgcGFyc2VzIGl0cyBjb250ZW50cyBpbnRvIGEgSmF2YVNjcmlwdCBvYmplY3Qgb2YgdHlwZSBgVGAuXG4gKlxuICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgdG8gd2hpY2ggdGhlIEpTT04gY29udGVudCB3aWxsIGJlIHBhcnNlZC5cbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggdG8gdGhlIEpTT04gZmlsZS5cbiAqIEByZXR1cm5zIFRoZSBwYXJzZWQgSlNPTiBvYmplY3Qgb2YgdHlwZSBgVGAuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktdHlwZS1wYXJhbWV0ZXJzIC0tIFdlIG5lZWQgdG8gdXNlIHRoZSBkdW1teSBwYXJhbWV0ZXIgdG8gZ2V0IHR5cGUgaW5mZXJlbmNlLlxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRKc29uU3luYzxUPihwYXRoOiBzdHJpbmcpOiBUIHtcbiAgcmV0dXJuIEpTT04ucGFyc2UocmVhZEZpbGVTeW5jKHBhdGgsICd1dGYtOCcpKSBhcyBUO1xufVxuXG4vKipcbiAqIFdyaXRlcyBhIEphdmFTY3JpcHQgb2JqZWN0IHRvIGEgSlNPTiBmaWxlLlxuICpcbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggdG8gdGhlIEpTT04gZmlsZS5cbiAqIEBwYXJhbSBkYXRhIC0gVGhlIGRhdGEgdG8gd3JpdGUgdG8gdGhlIEpTT04gZmlsZS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZmlsZSBoYXMgYmVlbiB3cml0dGVuLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd3JpdGVKc29uKHBhdGg6IHN0cmluZywgZGF0YTogdW5rbm93bik6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCB3cml0ZUZpbGUocGF0aCwgYCR7dG9Kc29uKGRhdGEpfVxcbmApO1xufVxuXG4vKipcbiAqIFdyaXRlcyBhIEphdmFTY3JpcHQgb2JqZWN0IHRvIGEgSlNPTiBmaWxlLlxuICpcbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggdG8gdGhlIEpTT04gZmlsZS5cbiAqIEBwYXJhbSBkYXRhIC0gVGhlIGRhdGEgdG8gd3JpdGUgdG8gdGhlIEpTT04gZmlsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdyaXRlSnNvblN5bmMocGF0aDogc3RyaW5nLCBkYXRhOiB1bmtub3duKTogdm9pZCB7XG4gIHdyaXRlRmlsZVN5bmMocGF0aCwgYCR7dG9Kc29uKGRhdGEpfVxcbmApO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUUE7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFFUCxTQUFTLGNBQWM7QUFzQnZCLGVBQXNCLFNBQ3BCLE1BQ0EsUUFDQSxVQUEyQixDQUFDLEdBQ2I7QUFDZixRQUFNO0FBQUEsSUFDSjtBQUFBLEVBQ0YsSUFBSTtBQUNKLE1BQUksdUJBQXVCLENBQUMsV0FBVyxJQUFJLEdBQUc7QUFDNUM7QUFBQSxFQUNGO0FBQ0EsUUFBTSxPQUFPLE1BQU0sU0FBWSxJQUFJO0FBQ25DLFFBQU0sT0FBTyxJQUFJO0FBQ2pCLFFBQU0sVUFBVSxNQUFNLElBQUk7QUFDNUI7QUFXTyxTQUFTLGFBQ2QsTUFDQSxRQUNBLFVBQTJCLENBQUMsR0FDdEI7QUFDTixRQUFNO0FBQUEsSUFDSjtBQUFBLEVBQ0YsSUFBSTtBQUNKLE1BQUksdUJBQXVCLENBQUMsV0FBVyxJQUFJLEdBQUc7QUFDNUM7QUFBQSxFQUNGO0FBQ0EsUUFBTSxPQUFPLGFBQWdCLElBQUk7QUFDakMsU0FBTyxJQUFJO0FBQ1gsZ0JBQWMsTUFBTSxJQUFJO0FBQzFCO0FBU0EsZUFBc0IsU0FBWSxNQUEwQjtBQUMxRCxTQUFPLEtBQUssTUFBTSxNQUFNLFNBQVMsTUFBTSxPQUFPLENBQUM7QUFDakQ7QUFVTyxTQUFTLGFBQWdCLE1BQWlCO0FBQy9DLFNBQU8sS0FBSyxNQUFNLGFBQWEsTUFBTSxPQUFPLENBQUM7QUFDL0M7QUFTQSxlQUFzQixVQUFVLE1BQWMsTUFBOEI7QUFDMUUsUUFBTSxVQUFVLE1BQU0sR0FBRyxPQUFPLElBQUksQ0FBQztBQUFBLENBQUk7QUFDM0M7QUFRTyxTQUFTLGNBQWMsTUFBYyxNQUFxQjtBQUMvRCxnQkFBYyxNQUFNLEdBQUcsT0FBTyxJQUFJLENBQUM7QUFBQSxDQUFJO0FBQ3pDOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -4,12 +4,25 @@
4
4
  * This module provides a function for running a spellcheck on the codebase using the `cspell` library.
5
5
  * It reports any spelling issues found in the code and returns a {@link CliTaskResult} indicating whether the spellcheck was successful.
6
6
  */
7
+ /**
8
+ * Parameters for the {@link spellcheck} function.
9
+ */
10
+ export interface SpellcheckParams {
11
+ /**
12
+ * Optional file paths to check. If omitted, checks the entire project.
13
+ */
14
+ paths?: string[] | undefined;
15
+ }
7
16
  /**
8
17
  * Runs a spellcheck on the entire codebase using `cspell`.
9
18
  *
10
19
  * Checks all files in the current folder and its subfolders for spelling issues.
11
20
  * If issues are found, they are logged to the console with their file path, line, and column number.
12
21
  *
22
+ * Uses `--no-must-find-files` so that cspell does not fail when all provided paths
23
+ * are excluded by built-in ignore rules (e.g., `package-lock.json`).
24
+ *
25
+ * @param params - The {@link SpellcheckParams}.
13
26
  * @returns A {@link Promise} that resolves to a {@link CliTaskResult}, indicating the success or failure of the spellcheck.
14
27
  */
15
- export declare function spellcheck(): Promise<void>;
28
+ export declare function spellcheck(params?: SpellcheckParams): Promise<void>;
@@ -20,10 +20,12 @@ if you want to view the source, please visit the github repository of this plugi
20
20
  })();
21
21
 
22
22
  import { execFromRoot } from "../root.mjs";
23
- async function spellcheck() {
24
- await execFromRoot("npx cspell . --no-progress");
23
+ async function spellcheck(params) {
24
+ const { paths } = params ?? {};
25
+ const targets = paths?.length ? paths : ["."];
26
+ await execFromRoot(["npx", "cspell", "--no-progress", "--no-must-find-files", { batchedArgs: targets }]);
25
27
  }
26
28
  export {
27
29
  spellcheck
28
30
  };
29
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2NzcGVsbC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyBhIGZ1bmN0aW9uIGZvciBydW5uaW5nIGEgc3BlbGxjaGVjayBvbiB0aGUgY29kZWJhc2UgdXNpbmcgdGhlIGBjc3BlbGxgIGxpYnJhcnkuXG4gKiBJdCByZXBvcnRzIGFueSBzcGVsbGluZyBpc3N1ZXMgZm91bmQgaW4gdGhlIGNvZGUgYW5kIHJldHVybnMgYSB7QGxpbmsgQ2xpVGFza1Jlc3VsdH0gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBzcGVsbGNoZWNrIHdhcyBzdWNjZXNzZnVsLlxuICovXG5cbmltcG9ydCB7IGV4ZWNGcm9tUm9vdCB9IGZyb20gJy4uL3Jvb3QudHMnO1xuXG4vKipcbiAqIFJ1bnMgYSBzcGVsbGNoZWNrIG9uIHRoZSBlbnRpcmUgY29kZWJhc2UgdXNpbmcgYGNzcGVsbGAuXG4gKlxuICogQ2hlY2tzIGFsbCBmaWxlcyBpbiB0aGUgY3VycmVudCBmb2xkZXIgYW5kIGl0cyBzdWJmb2xkZXJzIGZvciBzcGVsbGluZyBpc3N1ZXMuXG4gKiBJZiBpc3N1ZXMgYXJlIGZvdW5kLCB0aGV5IGFyZSBsb2dnZWQgdG8gdGhlIGNvbnNvbGUgd2l0aCB0aGVpciBmaWxlIHBhdGgsIGxpbmUsIGFuZCBjb2x1bW4gbnVtYmVyLlxuICpcbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gYSB7QGxpbmsgQ2xpVGFza1Jlc3VsdH0sIGluZGljYXRpbmcgdGhlIHN1Y2Nlc3Mgb3IgZmFpbHVyZSBvZiB0aGUgc3BlbGxjaGVjay5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNwZWxsY2hlY2soKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGV4ZWNGcm9tUm9vdCgnbnB4IGNzcGVsbCAuIC0tbm8tcHJvZ3Jlc3MnKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU9BLFNBQVMsb0JBQW9CO0FBVTdCLGVBQXNCLGFBQTRCO0FBQ2hELFFBQU0sYUFBYSw0QkFBNEI7QUFDakQ7IiwKICAibmFtZXMiOiBbXQp9Cg==
31
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2NzcGVsbC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyBhIGZ1bmN0aW9uIGZvciBydW5uaW5nIGEgc3BlbGxjaGVjayBvbiB0aGUgY29kZWJhc2UgdXNpbmcgdGhlIGBjc3BlbGxgIGxpYnJhcnkuXG4gKiBJdCByZXBvcnRzIGFueSBzcGVsbGluZyBpc3N1ZXMgZm91bmQgaW4gdGhlIGNvZGUgYW5kIHJldHVybnMgYSB7QGxpbmsgQ2xpVGFza1Jlc3VsdH0gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBzcGVsbGNoZWNrIHdhcyBzdWNjZXNzZnVsLlxuICovXG5cbmltcG9ydCB7IGV4ZWNGcm9tUm9vdCB9IGZyb20gJy4uL3Jvb3QudHMnO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHRoZSB7QGxpbmsgc3BlbGxjaGVja30gZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BlbGxjaGVja1BhcmFtcyB7XG4gIC8qKlxuICAgKiBPcHRpb25hbCBmaWxlIHBhdGhzIHRvIGNoZWNrLiBJZiBvbWl0dGVkLCBjaGVja3MgdGhlIGVudGlyZSBwcm9qZWN0LlxuICAgKi9cbiAgcGF0aHM/OiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBSdW5zIGEgc3BlbGxjaGVjayBvbiB0aGUgZW50aXJlIGNvZGViYXNlIHVzaW5nIGBjc3BlbGxgLlxuICpcbiAqIENoZWNrcyBhbGwgZmlsZXMgaW4gdGhlIGN1cnJlbnQgZm9sZGVyIGFuZCBpdHMgc3ViZm9sZGVycyBmb3Igc3BlbGxpbmcgaXNzdWVzLlxuICogSWYgaXNzdWVzIGFyZSBmb3VuZCwgdGhleSBhcmUgbG9nZ2VkIHRvIHRoZSBjb25zb2xlIHdpdGggdGhlaXIgZmlsZSBwYXRoLCBsaW5lLCBhbmQgY29sdW1uIG51bWJlci5cbiAqXG4gKiBVc2VzIGAtLW5vLW11c3QtZmluZC1maWxlc2Agc28gdGhhdCBjc3BlbGwgZG9lcyBub3QgZmFpbCB3aGVuIGFsbCBwcm92aWRlZCBwYXRoc1xuICogYXJlIGV4Y2x1ZGVkIGJ5IGJ1aWx0LWluIGlnbm9yZSBydWxlcyAoZS5nLiwgYHBhY2thZ2UtbG9jay5qc29uYCkuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSB7QGxpbmsgU3BlbGxjaGVja1BhcmFtc30uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIGEge0BsaW5rIENsaVRhc2tSZXN1bHR9LCBpbmRpY2F0aW5nIHRoZSBzdWNjZXNzIG9yIGZhaWx1cmUgb2YgdGhlIHNwZWxsY2hlY2suXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzcGVsbGNoZWNrKHBhcmFtcz86IFNwZWxsY2hlY2tQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgeyBwYXRocyB9ID0gcGFyYW1zID8/IHt9O1xuICAvKiB2OCBpZ25vcmUgc3RhcnQgLS0gVGhlIHBhdGhzLXByb3ZpZGVkIGJyYW5jaCBpcyBvbmx5IGV4ZXJjaXNlZCBieSBjb25zdW1lciBwcm9qZWN0cyBwYXNzaW5nIGZpbGUgbGlzdHMuICovXG4gIGNvbnN0IHRhcmdldHMgPSBwYXRocz8ubGVuZ3RoID8gcGF0aHMgOiBbJy4nXTtcbiAgLyogdjggaWdub3JlIHN0b3AgKi9cbiAgYXdhaXQgZXhlY0Zyb21Sb290KFsnbnB4JywgJ2NzcGVsbCcsICctLW5vLXByb2dyZXNzJywgJy0tbm8tbXVzdC1maW5kLWZpbGVzJywgeyBiYXRjaGVkQXJnczogdGFyZ2V0cyB9XSk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPQSxTQUFTLG9CQUFvQjtBQXdCN0IsZUFBc0IsV0FBVyxRQUEwQztBQUN6RSxRQUFNLEVBQUUsTUFBTSxJQUFJLFVBQVUsQ0FBQztBQUU3QixRQUFNLFVBQVUsT0FBTyxTQUFTLFFBQVEsQ0FBQyxHQUFHO0FBRTVDLFFBQU0sYUFBYSxDQUFDLE9BQU8sVUFBVSxpQkFBaUIsd0JBQXdCLEVBQUUsYUFBYSxRQUFRLENBQUMsQ0FBQztBQUN6RzsiLAogICJuYW1lcyI6IFtdCn0K
@@ -20,11 +20,11 @@ if you want to view the source, please visit the github repository of this plugi
20
20
  })();
21
21
 
22
22
  import commentsConfigs from "@eslint-community/eslint-plugin-eslint-comments/configs";
23
+ import { includeIgnoreFile } from "@eslint/compat";
23
24
  import eslint from "@eslint/js";
24
25
  import stylistic from "@stylistic/eslint-plugin";
25
26
  import { createTypeScriptImportResolver } from "eslint-import-resolver-typescript";
26
27
  import { flatConfigs as eslintPluginImportXFlatConfigs } from "eslint-plugin-import-x";
27
- import eslintPluginModulesNewlines from "eslint-plugin-modules-newlines";
28
28
  import obsidianmd from "eslint-plugin-obsidianmd";
29
29
  import { configs as perfectionistConfigs } from "eslint-plugin-perfectionist";
30
30
  import {
@@ -36,6 +36,7 @@ import tseslint from "typescript-eslint";
36
36
  import { ObsidianPluginRepoPaths } from "../../obsidian/plugin/obsidian-plugin-repo-paths.mjs";
37
37
  import { join } from "../../path.mjs";
38
38
  import { getRootFolder } from "../root.mjs";
39
+ import { noUsedUnderscoreParams } from "./eslint-rules/no-used-underscore-params.mjs";
39
40
  const typeScriptFiles = [
40
41
  join(ObsidianPluginRepoPaths.Tests, ObsidianPluginRepoPaths.AnyPath, ObsidianPluginRepoPaths.AnyTs),
41
42
  join(ObsidianPluginRepoPaths.Mocks, ObsidianPluginRepoPaths.AnyPath, ObsidianPluginRepoPaths.AnyTs),
@@ -47,6 +48,7 @@ const typeScriptFiles = [
47
48
  ObsidianPluginRepoPaths.EslintConfigMts
48
49
  ];
49
50
  const obsidianDevUtilsConfigs = defineConfig(
51
+ includeIgnoreFile(join(getRootFolder() ?? "", ".gitignore")),
50
52
  globalIgnores([
51
53
  join(ObsidianPluginRepoPaths.AnyPath, ObsidianPluginRepoPaths.AnyCjs),
52
54
  join(ObsidianPluginRepoPaths.AnyPath, ObsidianPluginRepoPaths.AnyJs),
@@ -58,7 +60,6 @@ const obsidianDevUtilsConfigs = defineConfig(
58
60
  ...getStylisticConfigs(),
59
61
  ...getImportXConfigs(),
60
62
  ...getPerfectionistConfigs(),
61
- ...getModulesNewlinesConfigs(),
62
63
  ...getEslintImportResolverTypescriptConfigs(),
63
64
  ...getEslintCommentsConfigs(),
64
65
  ...getObsidianLintConfigs()
@@ -190,6 +191,14 @@ function getEslintConfigs() {
190
191
  {
191
192
  message: "Do not use anonymous inline object types in interface/method signatures. Define a named interface instead.",
192
193
  selector: "TSMethodSignature TSTypeLiteral"
194
+ },
195
+ {
196
+ message: "Do not use anonymous inline object types as type arguments. Define a named interface instead.",
197
+ selector: "TSTypeParameterInstantiation TSTypeLiteral"
198
+ },
199
+ {
200
+ message: "Do not use anonymous inline object types in type annotations. Define a named interface instead.",
201
+ selector: "TSTypeAnnotation TSTypeLiteral"
193
202
  }
194
203
  ],
195
204
  "no-return-assign": "error",
@@ -234,6 +243,12 @@ function getEslintConfigs() {
234
243
  "vars-on-top": "error",
235
244
  "yoda": "error"
236
245
  }
246
+ },
247
+ {
248
+ files: ["src/script-utils/linters/markdownlint-types/@types/markdownlint-cli2-config-schema.d.ts"],
249
+ rules: {
250
+ "no-restricted-syntax": "off"
251
+ }
237
252
  }
238
253
  ]);
239
254
  }
@@ -295,33 +310,19 @@ function getImportXConfigs() {
295
310
  ]
296
311
  }
297
312
  ],
298
- "import-x/no-unused-modules": "error",
313
+ "import-x/no-unused-modules": "off",
299
314
  "import-x/no-useless-path-segments": "error",
300
315
  "import-x/no-webpack-loader-syntax": "error"
301
316
  }
302
317
  },
303
318
  {
304
- files: ["scripts/**/*.ts"],
319
+ files: ["scripts/**/*.ts", "src/script-utils/**/*.ts"],
305
320
  rules: {
306
321
  "import-x/no-nodejs-modules": "off"
307
322
  }
308
323
  }
309
324
  ]);
310
325
  }
311
- function getModulesNewlinesConfigs() {
312
- return defineConfig([
313
- {
314
- files: typeScriptFiles,
315
- plugins: {
316
- "modules-newlines": eslintPluginModulesNewlines
317
- },
318
- rules: {
319
- "modules-newlines/export-declaration-newline": "error",
320
- "modules-newlines/import-declaration-newline": "error"
321
- }
322
- }
323
- ]);
324
- }
325
326
  function getObsidianLintConfigs() {
326
327
  const obsidianRecommendedConfigs = Array.from(obsidianmd.configs?.["recommended"]);
327
328
  const scopedObsidianRecommendedConfigs = obsidianRecommendedConfigs.map((config) => {
@@ -466,7 +467,18 @@ function getTseslintConfigs() {
466
467
  varsIgnorePattern: "^_"
467
468
  }
468
469
  ],
469
- "@typescript-eslint/prefer-readonly": "error"
470
+ "@typescript-eslint/prefer-readonly": "error",
471
+ "obsidian-dev-utils/no-used-underscore-params": "error"
472
+ }
473
+ },
474
+ {
475
+ files: typeScriptFiles,
476
+ plugins: {
477
+ "obsidian-dev-utils": {
478
+ rules: {
479
+ "no-used-underscore-params": noUsedUnderscoreParams
480
+ }
481
+ }
470
482
  }
471
483
  },
472
484
  {
@@ -482,4 +494,4 @@ export {
482
494
  obsidianDevUtilsConfigs,
483
495
  typeScriptFiles
484
496
  };
485
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKlxuICogRVNMaW50IGNvbmZpZ3VyYXRpb24gZm9yIFR5cGVTY3JpcHQgcHJvamVjdHMgd2l0aCB2YXJpb3VzIHBsdWdpbnMuXG4gKlxuICogVGhpcyBtb2R1bGUgZXhwb3J0cyBFU0xpbnQgY29uZmlndXJhdGlvbnMgZm9yIFR5cGVTY3JpcHQgcHJvamVjdHMsIGludGVncmF0aW5nIG11bHRpcGxlIEVTTGludCBwbHVnaW5zXG4gKiBzdWNoIGFzIGBAdHlwZXNjcmlwdC1lc2xpbnQvcGFyc2VyYCwgYEB0eXBlc2NyaXB0LWVzbGludC9lc2xpbnQtcGx1Z2luYCxcbiAqIGBlc2xpbnQtcGx1Z2luLW1vZHVsZXMtbmV3bGluZXNgLCBgQHN0eWxpc3RpYy9lc2xpbnQtcGx1Z2luYC5cbiAqIEl0IHNldHMgdXAgcGFyc2VycywgcGx1Z2lucywgYW5kIHJ1bGVzIGZvciBtYWludGFpbmluZyBjb2RlIHF1YWxpdHkgYW5kIGNvbnNpc3RlbmN5LlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBEZWNsYXJhdGl2ZSBFU0xpbnQgcnVsZS9wbHVnaW4gY29uZmlndXJhdGlvbjsgY29ycmVjdG5lc3MgaXMgdmVyaWZpZWQgYnkgcnVubmluZyBFU0xpbnQsIG5vdCB1bml0IHRlc3RzLiAqL1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1tYWdpYy1udW1iZXJzIC0tIFdlIGRpc2FibGVkIG1hZ2ljIG51bWJlcnMgYmVjYXVzZSB0aGV5IGFyZSB1c2VkIGFsbCBvdmVyIHRoZSBjb25maWdzLiAqL1xuaW1wb3J0IHR5cGUge1xuICBFU0xpbnQsXG4gIExpbnRlclxufSBmcm9tICdlc2xpbnQnO1xuXG5pbXBvcnQgY29tbWVudHNDb25maWdzIGZyb20gJ0Blc2xpbnQtY29tbXVuaXR5L2VzbGludC1wbHVnaW4tZXNsaW50LWNvbW1lbnRzL2NvbmZpZ3MnO1xuaW1wb3J0IGVzbGludCBmcm9tICdAZXNsaW50L2pzJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQteC9uby1yZW5hbWUtZGVmYXVsdCAtLSBUaGUgZGVmYXVsdCBleHBvcnQgbmFtZSBgcGx1Z2luYCBpcyB0b28gY29uZnVzaW5nLlxuaW1wb3J0IHN0eWxpc3RpYyBmcm9tICdAc3R5bGlzdGljL2VzbGludC1wbHVnaW4nO1xuaW1wb3J0IHsgY3JlYXRlVHlwZVNjcmlwdEltcG9ydFJlc29sdmVyIH0gZnJvbSAnZXNsaW50LWltcG9ydC1yZXNvbHZlci10eXBlc2NyaXB0JztcbmltcG9ydCB7IGZsYXRDb25maWdzIGFzIGVzbGludFBsdWdpbkltcG9ydFhGbGF0Q29uZmlncyB9IGZyb20gJ2VzbGludC1wbHVnaW4taW1wb3J0LXgnO1xuaW1wb3J0IGVzbGludFBsdWdpbk1vZHVsZXNOZXdsaW5lcyBmcm9tICdlc2xpbnQtcGx1Z2luLW1vZHVsZXMtbmV3bGluZXMnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC14L25vLXJlbmFtZS1kZWZhdWx0IC0tIFRoZSBkZWZhdWx0IGV4cG9ydCBuYW1lIGBwbHVnaW5gIGlzIHRvbyBjb25mdXNpbmcuXG5pbXBvcnQgb2JzaWRpYW5tZCBmcm9tICdlc2xpbnQtcGx1Z2luLW9ic2lkaWFubWQnO1xuaW1wb3J0IHsgY29uZmlncyBhcyBwZXJmZWN0aW9uaXN0Q29uZmlncyB9IGZyb20gJ2VzbGludC1wbHVnaW4tcGVyZmVjdGlvbmlzdCc7XG5pbXBvcnQge1xuICBkZWZpbmVDb25maWcsXG4gIGdsb2JhbElnbm9yZXNcbn0gZnJvbSAnZXNsaW50L2NvbmZpZyc7XG5pbXBvcnQgZ2xvYmFscyBmcm9tICdnbG9iYWxzJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQteC9uby1yZW5hbWUtZGVmYXVsdCAtLSBUaGUgZGVmYXVsdCBleHBvcnQgbmFtZSBgX2RlZmF1bHRgIGlzIHRvbyBjb25mdXNpbmcuXG5pbXBvcnQgdHNlc2xpbnQgZnJvbSAndHlwZXNjcmlwdC1lc2xpbnQnO1xuXG5pbXBvcnQgeyBPYnNpZGlhblBsdWdpblJlcG9QYXRocyB9IGZyb20gJy4uLy4uL29ic2lkaWFuL3BsdWdpbi9vYnNpZGlhbi1wbHVnaW4tcmVwby1wYXRocy50cyc7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSAnLi4vLi4vcGF0aC50cyc7XG5pbXBvcnQgeyBnZXRSb290Rm9sZGVyIH0gZnJvbSAnLi4vcm9vdC50cyc7XG5cbi8qKlxuICogVGhlIGxpc3Qgb2YgVHlwZVNjcmlwdCBmaWxlcyB0byBsaW50LlxuICovXG5leHBvcnQgY29uc3QgdHlwZVNjcmlwdEZpbGVzID0gW1xuICBqb2luKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLlRlc3RzLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlQYXRoLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlUcyksXG4gIGpvaW4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTW9ja3MsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueVBhdGgsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueVRzKSxcbiAgam9pbihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5TcmMsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueVBhdGgsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueVRzKSxcbiAgam9pbihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5TcmMsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueVBhdGgsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueVRzeCksXG4gIGpvaW4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuU2NyaXB0cywgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55UGF0aCwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55VHMpLFxuICBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5NYXJrZG93bmxpbnRDbGkyQ29uZmlnTXRzLFxuICBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5Db21taXRsaW50Q29uZmlnVHMsXG4gIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkVzbGludENvbmZpZ010c1xuXTtcblxuLyoqXG4gKiBFU0xpbnQgY29uZmlndXJhdGlvbnMgZm9yIFR5cGVTY3JpcHQgcHJvamVjdHMuXG4gKi9cbmV4cG9ydCBjb25zdCBvYnNpZGlhbkRldlV0aWxzQ29uZmlnczogTGludGVyLkNvbmZpZ1tdID0gZGVmaW5lQ29uZmlnKFxuICBnbG9iYWxJZ25vcmVzKFtcbiAgICBqb2luKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueVBhdGgsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueUNqcyksXG4gICAgam9pbihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlQYXRoLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlKcyksXG4gICAgam9pbihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlQYXRoLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlNanMpLFxuICAgIGpvaW4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuRGlzdCwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55UGF0aClcbiAgXSksXG4gIC4uLmdldEVzbGludENvbmZpZ3MoKSxcbiAgLi4uZ2V0VHNlc2xpbnRDb25maWdzKCksXG4gIC4uLmdldFN0eWxpc3RpY0NvbmZpZ3MoKSxcbiAgLi4uZ2V0SW1wb3J0WENvbmZpZ3MoKSxcbiAgLi4uZ2V0UGVyZmVjdGlvbmlzdENvbmZpZ3MoKSxcbiAgLi4uZ2V0TW9kdWxlc05ld2xpbmVzQ29uZmlncygpLFxuICAuLi5nZXRFc2xpbnRJbXBvcnRSZXNvbHZlclR5cGVzY3JpcHRDb25maWdzKCksXG4gIC4uLmdldEVzbGludENvbW1lbnRzQ29uZmlncygpLFxuICAuLi5nZXRPYnNpZGlhbkxpbnRDb25maWdzKClcbik7XG5cbmZ1bmN0aW9uIGdldEVzbGludENvbW1lbnRzQ29uZmlncygpOiBMaW50ZXIuQ29uZmlnW10ge1xuICByZXR1cm4gZGVmaW5lQ29uZmlnKFtcbiAgICB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0LXgvbm8tbmFtZWQtYXMtZGVmYXVsdC1tZW1iZXIgLS0gVGhlIGRlZmF1bHQgZXhwb3J0IG5hbWUgYHJlY29tbWVuZGVkYCBpcyB0b28gY29uZnVzaW5nLlxuICAgICAgZXh0ZW5kczogW2NvbW1lbnRzQ29uZmlncy5yZWNvbW1lbmRlZF0sXG4gICAgICBmaWxlczogdHlwZVNjcmlwdEZpbGVzLFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgJ0Blc2xpbnQtY29tbXVuaXR5L2VzbGludC1jb21tZW50cy9yZXF1aXJlLWRlc2NyaXB0aW9uJzogJ2Vycm9yJ1xuICAgICAgfVxuICAgIH1cbiAgXSk7XG59XG5cbmZ1bmN0aW9uIGdldEVzbGludENvbmZpZ3MoKTogTGludGVyLkNvbmZpZ1tdIHtcbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhbXG4gICAge1xuICAgICAgZXh0ZW5kczogW2VzbGludC5jb25maWdzLnJlY29tbWVuZGVkXSxcbiAgICAgIGZpbGVzOiB0eXBlU2NyaXB0RmlsZXMsXG4gICAgICBydWxlczoge1xuICAgICAgICAnYWNjZXNzb3ItcGFpcnMnOiAnZXJyb3InLFxuICAgICAgICAnYXJyYXktY2FsbGJhY2stcmV0dXJuJzogJ2Vycm9yJyxcbiAgICAgICAgJ2NhbWVsY2FzZSc6ICdlcnJvcicsXG4gICAgICAgICdjYXBpdGFsaXplZC1jb21tZW50cyc6IFsnZXJyb3InLCAnYWx3YXlzJywgeyBibG9jazogeyBpZ25vcmVQYXR0ZXJuOiAndjgnIH0gfV0sXG4gICAgICAgICdjb21wbGV4aXR5JzogJ2Vycm9yJyxcbiAgICAgICAgJ2NvbnNpc3RlbnQtdGhpcyc6ICdlcnJvcicsXG4gICAgICAgICdjdXJseSc6ICdlcnJvcicsXG4gICAgICAgICdkZWZhdWx0LWNhc2UnOiAnZXJyb3InLFxuICAgICAgICAnZGVmYXVsdC1jYXNlLWxhc3QnOiAnZXJyb3InLFxuICAgICAgICAnZGVmYXVsdC1wYXJhbS1sYXN0JzogJ2Vycm9yJyxcbiAgICAgICAgJ2VxZXFlcSc6ICdlcnJvcicsXG4gICAgICAgICdmdW5jLW5hbWUtbWF0Y2hpbmcnOiAnZXJyb3InLFxuICAgICAgICAnZnVuYy1uYW1lcyc6ICdlcnJvcicsXG4gICAgICAgICdmdW5jLXN0eWxlJzogW1xuICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAgJ2RlY2xhcmF0aW9uJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhbGxvd0Fycm93RnVuY3Rpb25zOiBmYWxzZVxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgJ2dyb3VwZWQtYWNjZXNzb3ItcGFpcnMnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICAnZ2V0QmVmb3JlU2V0J1xuICAgICAgICBdLFxuICAgICAgICAnZ3VhcmQtZm9yLWluJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWFsZXJ0JzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWFycmF5LWNvbnN0cnVjdG9yJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWJpdHdpc2UnOiAnZXJyb3InLFxuICAgICAgICAnbm8tY2FsbGVyJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWNvbnNvbGUnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhbGxvdzogW1xuICAgICAgICAgICAgICAnd2FybicsXG4gICAgICAgICAgICAgICdlcnJvcidcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgICduby1jb25zdHJ1Y3Rvci1yZXR1cm4nOiAnZXJyb3InLFxuICAgICAgICAnbm8tZGl2LXJlZ2V4JzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWVsc2UtcmV0dXJuJzogW1xuICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAge1xuICAgICAgICAgICAgYWxsb3dFbHNlSWY6IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICAnbm8tZW1wdHktZnVuY3Rpb24nOiAnZXJyb3InLFxuICAgICAgICAnbm8tZXh0ZW5kLW5hdGl2ZSc6ICdlcnJvcicsXG4gICAgICAgICduby1leHRyYS1iaW5kJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWV4dHJhLWxhYmVsJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWltcGxpY2l0LWNvZXJjaW9uJzogW1xuICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAge1xuICAgICAgICAgICAgYWxsb3c6IFtcbiAgICAgICAgICAgICAgJyEhJ1xuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgJ25vLWltcGxpZWQtZXZhbCc6ICdlcnJvcicsXG4gICAgICAgICduby1pbm5lci1kZWNsYXJhdGlvbnMnOiAnZXJyb3InLFxuICAgICAgICAnbm8taXRlcmF0b3InOiAnZXJyb3InLFxuICAgICAgICAnbm8tbGFiZWwtdmFyJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWxhYmVscyc6ICdlcnJvcicsXG4gICAgICAgICduby1sb25lLWJsb2Nrcyc6ICdlcnJvcicsXG4gICAgICAgICduby1sb25lbHktaWYnOiAnZXJyb3InLFxuICAgICAgICAnbm8tbG9vcC1mdW5jJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLW1hZ2ljLW51bWJlcnMnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBkZXRlY3RPYmplY3RzOiB0cnVlLFxuICAgICAgICAgICAgZW5mb3JjZUNvbnN0OiB0cnVlLFxuICAgICAgICAgICAgaWdub3JlOiBbXG4gICAgICAgICAgICAgIC0xLFxuICAgICAgICAgICAgICAwLFxuICAgICAgICAgICAgICAxXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICAnbm8tbXVsdGktYXNzaWduJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLW11bHRpLXN0cic6ICdlcnJvcicsXG4gICAgICAgICduby1uZWdhdGVkLWNvbmRpdGlvbic6ICdlcnJvcicsXG4gICAgICAgICduby1uZXN0ZWQtdGVybmFyeSc6ICdlcnJvcicsXG4gICAgICAgICduby1uZXctZnVuYyc6ICdlcnJvcicsXG4gICAgICAgICduby1uZXctd3JhcHBlcnMnOiAnZXJyb3InLFxuICAgICAgICAnbm8tb2JqZWN0LWNvbnN0cnVjdG9yJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLW9jdGFsLWVzY2FwZSc6ICdlcnJvcicsXG4gICAgICAgICduby1wcm9taXNlLWV4ZWN1dG9yLXJldHVybic6ICdlcnJvcicsXG4gICAgICAgICduby1wcm90byc6ICdlcnJvcicsXG4gICAgICAgICduby1yZXN0cmljdGVkLXN5bnRheCc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIGRlZmluaXRlIGFzc2lnbm1lbnQgYXNzZXJ0aW9ucyAoISkuIEluaXRpYWxpemUgdGhlIGZpZWxkIG9yIG1ha2UgaXQgb3B0aW9uYWwuJyxcbiAgICAgICAgICAgIHNlbGVjdG9yOiAnUHJvcGVydHlEZWZpbml0aW9uW2RlZmluaXRlPXRydWVdJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWVzc2FnZTogJ0RvIG5vdCB1c2UgZGVmaW5pdGUgYXNzaWdubWVudCBhc3NlcnRpb25zICghKSBvbiBhYnN0cmFjdCBmaWVsZHMuJyxcbiAgICAgICAgICAgIHNlbGVjdG9yOiAnVFNBYnN0cmFjdFByb3BlcnR5RGVmaW5pdGlvbltkZWZpbml0ZT10cnVlXSdcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIGFub255bW91cyBpbmxpbmUgb2JqZWN0IHR5cGVzIGluIGZ1bmN0aW9uIHBhcmFtZXRlcnMuIERlZmluZSBhIG5hbWVkIGludGVyZmFjZSBpbnN0ZWFkLicsXG4gICAgICAgICAgICBzZWxlY3RvcjogJzpmdW5jdGlvbiA+IElkZW50aWZpZXIgVFNUeXBlTGl0ZXJhbCdcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIGFub255bW91cyBpbmxpbmUgb2JqZWN0IHR5cGVzIGluIGZ1bmN0aW9uIHJldHVybiB0eXBlcy4gRGVmaW5lIGEgbmFtZWQgaW50ZXJmYWNlIGluc3RlYWQuJyxcbiAgICAgICAgICAgIHNlbGVjdG9yOiAnOmZ1bmN0aW9uID4gVFNUeXBlQW5ub3RhdGlvbiBUU1R5cGVMaXRlcmFsJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWVzc2FnZTogJ0RvIG5vdCB1c2UgYW5vbnltb3VzIGlubGluZSBvYmplY3QgdHlwZXMgaW4gaW50ZXJmYWNlL21ldGhvZCBzaWduYXR1cmVzLiBEZWZpbmUgYSBuYW1lZCBpbnRlcmZhY2UgaW5zdGVhZC4nLFxuICAgICAgICAgICAgc2VsZWN0b3I6ICdUU01ldGhvZFNpZ25hdHVyZSBUU1R5cGVMaXRlcmFsJ1xuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgJ25vLXJldHVybi1hc3NpZ24nOiAnZXJyb3InLFxuICAgICAgICAnbm8tc2NyaXB0LXVybCc6ICdlcnJvcicsXG4gICAgICAgICduby1zZWxmLWNvbXBhcmUnOiAnZXJyb3InLFxuICAgICAgICAnbm8tc2VxdWVuY2VzJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXNoYWRvdyc6ICdlcnJvcicsXG4gICAgICAgICduby10ZW1wbGF0ZS1jdXJseS1pbi1zdHJpbmcnOiAnZXJyb3InLFxuICAgICAgICAnbm8tdGhyb3ctbGl0ZXJhbCc6ICdlcnJvcicsXG4gICAgICAgICduby11bm1vZGlmaWVkLWxvb3AtY29uZGl0aW9uJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXVubmVlZGVkLXRlcm5hcnknOiAnZXJyb3InLFxuICAgICAgICAnbm8tdW5yZWFjaGFibGUtbG9vcCc6ICdlcnJvcicsXG4gICAgICAgICduby11bnVzZWQtZXhwcmVzc2lvbnMnOiAnZXJyb3InLFxuICAgICAgICAnbm8tdXNlbGVzcy1hc3NpZ25tZW50JzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXVzZWxlc3MtY2FsbCc6ICdlcnJvcicsXG4gICAgICAgICduby11c2VsZXNzLWNvbXB1dGVkLWtleSc6ICdlcnJvcicsXG4gICAgICAgICduby11c2VsZXNzLWNvbmNhdCc6ICdlcnJvcicsXG4gICAgICAgICduby11c2VsZXNzLWNvbnN0cnVjdG9yJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXVzZWxlc3MtcmVuYW1lJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXVzZWxlc3MtcmV0dXJuJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXZhcic6ICdlcnJvcicsXG4gICAgICAgICduby12b2lkJzogJ2Vycm9yJyxcbiAgICAgICAgJ29iamVjdC1zaG9ydGhhbmQnOiAnZXJyb3InLFxuICAgICAgICAnb3BlcmF0b3ItYXNzaWdubWVudCc6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItYXJyb3ctY2FsbGJhY2snOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLWNvbnN0JzogJ2Vycm9yJyxcbiAgICAgICAgJ3ByZWZlci1leHBvbmVudGlhdGlvbi1vcGVyYXRvcic6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItbmFtZWQtY2FwdHVyZS1ncm91cCc6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItbnVtZXJpYy1saXRlcmFscyc6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItb2JqZWN0LWhhcy1vd24nOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLW9iamVjdC1zcHJlYWQnOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLXByb21pc2UtcmVqZWN0LWVycm9ycyc6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItcmVnZXgtbGl0ZXJhbHMnOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLXJlc3QtcGFyYW1zJzogJ2Vycm9yJyxcbiAgICAgICAgJ3ByZWZlci1zcHJlYWQnOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLXRlbXBsYXRlJzogJ2Vycm9yJyxcbiAgICAgICAgJ3JhZGl4JzogJ2Vycm9yJyxcbiAgICAgICAgJ3JlcXVpcmUtYXRvbWljLXVwZGF0ZXMnOiAnZXJyb3InLFxuICAgICAgICAncmVxdWlyZS1hd2FpdCc6ICdlcnJvcicsXG4gICAgICAgICdzeW1ib2wtZGVzY3JpcHRpb24nOiAnZXJyb3InLFxuICAgICAgICAndW5pY29kZS1ib20nOiAnZXJyb3InLFxuICAgICAgICAndmFycy1vbi10b3AnOiAnZXJyb3InLFxuICAgICAgICAneW9kYSc6ICdlcnJvcidcbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXRFc2xpbnRJbXBvcnRSZXNvbHZlclR5cGVzY3JpcHRDb25maWdzKCk6IExpbnRlci5Db25maWdbXSB7XG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIHtcbiAgICAgIHNldHRpbmdzOiB7XG4gICAgICAgICdpbXBvcnQteC9yZXNvbHZlci1uZXh0JzogW1xuICAgICAgICAgIGNyZWF0ZVR5cGVTY3JpcHRJbXBvcnRSZXNvbHZlcih7XG4gICAgICAgICAgICBhbHdheXNUcnlUeXBlczogdHJ1ZVxuICAgICAgICAgIH0pXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXRJbXBvcnRYQ29uZmlncygpOiBMaW50ZXIuQ29uZmlnW10ge1xuICByZXR1cm4gZGVmaW5lQ29uZmlnKFtcbiAgICB7XG4gICAgICBleHRlbmRzOiBbXG4gICAgICAgIGVzbGludFBsdWdpbkltcG9ydFhGbGF0Q29uZmlncy5yZWNvbW1lbmRlZCBhcyBMaW50ZXIuQ29uZmlnLFxuICAgICAgICBlc2xpbnRQbHVnaW5JbXBvcnRYRmxhdENvbmZpZ3MudHlwZXNjcmlwdCBhcyBMaW50ZXIuQ29uZmlnLFxuICAgICAgICBlc2xpbnRQbHVnaW5JbXBvcnRYRmxhdENvbmZpZ3MuZXJyb3JzIGFzIExpbnRlci5Db25maWcsXG4gICAgICAgIGVzbGludFBsdWdpbkltcG9ydFhGbGF0Q29uZmlncy53YXJuaW5ncyBhcyBMaW50ZXIuQ29uZmlnXG4gICAgICBdLFxuICAgICAgZmlsZXM6IHR5cGVTY3JpcHRGaWxlcyxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdpbXBvcnQteC9jb25zaXN0ZW50LXR5cGUtc3BlY2lmaWVyLXN0eWxlJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L2V4dGVuc2lvbnMnOiBbJ2Vycm9yJywgJ2lnbm9yZVBhY2thZ2VzJ10sXG4gICAgICAgICdpbXBvcnQteC9maXJzdCc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9pbXBvcnRzLWZpcnN0JzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25ld2xpbmUtYWZ0ZXItaW1wb3J0JzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWFic29sdXRlLXBhdGgnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tYW1kJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWFub255bW91cy1kZWZhdWx0LWV4cG9ydCc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1jb21tb25qcyc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1jeWNsZSc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1kZWZhdWx0LWV4cG9ydCc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1kZXByZWNhdGVkJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWR1cGxpY2F0ZXMnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tZHluYW1pYy1yZXF1aXJlJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWVtcHR5LW5hbWVkLWJsb2Nrcyc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1pbXBvcnQtbW9kdWxlLWV4cG9ydHMnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tbXV0YWJsZS1leHBvcnRzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLW5hbWVkLWRlZmF1bHQnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tbmFtZXNwYWNlJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLW5vZGVqcy1tb2R1bGVzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLXJlbGF0aXZlLXBhY2thZ2VzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLXJlc3RyaWN0ZWQtcGF0aHMnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tc2VsZi1pbXBvcnQnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tdW5hc3NpZ25lZC1pbXBvcnQnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhbGxvdzogW1xuICAgICAgICAgICAgICAnKiovKi5jc3MnLFxuICAgICAgICAgICAgICAnKiovKi5zYXNzJyxcbiAgICAgICAgICAgICAgJyoqLyouc2NzcydcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgICdpbXBvcnQteC9uby11bnVzZWQtbW9kdWxlcyc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby11c2VsZXNzLXBhdGgtc2VnbWVudHMnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8td2VicGFjay1sb2FkZXItc3ludGF4JzogJ2Vycm9yJ1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZXM6IFsnc2NyaXB0cy8qKi8qLnRzJ10sXG4gICAgICBydWxlczoge1xuICAgICAgICAnaW1wb3J0LXgvbm8tbm9kZWpzLW1vZHVsZXMnOiAnb2ZmJ1xuICAgICAgfVxuICAgIH1cbiAgXSk7XG59XG5cbmZ1bmN0aW9uIGdldE1vZHVsZXNOZXdsaW5lc0NvbmZpZ3MoKTogTGludGVyLkNvbmZpZ1tdIHtcbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhbXG4gICAge1xuICAgICAgZmlsZXM6IHR5cGVTY3JpcHRGaWxlcyxcbiAgICAgIHBsdWdpbnM6IHtcbiAgICAgICAgJ21vZHVsZXMtbmV3bGluZXMnOiBlc2xpbnRQbHVnaW5Nb2R1bGVzTmV3bGluZXNcbiAgICAgIH0sXG4gICAgICBydWxlczoge1xuICAgICAgICAnbW9kdWxlcy1uZXdsaW5lcy9leHBvcnQtZGVjbGFyYXRpb24tbmV3bGluZSc6ICdlcnJvcicsXG4gICAgICAgICdtb2R1bGVzLW5ld2xpbmVzL2ltcG9ydC1kZWNsYXJhdGlvbi1uZXdsaW5lJzogJ2Vycm9yJ1xuICAgICAgfVxuICAgIH1cbiAgXSk7XG59XG5cbmZ1bmN0aW9uIGdldE9ic2lkaWFuTGludENvbmZpZ3MoKTogTGludGVyLkNvbmZpZ1tdIHtcbiAgY29uc3Qgb2JzaWRpYW5SZWNvbW1lbmRlZENvbmZpZ3MgPSBBcnJheS5mcm9tKG9ic2lkaWFubWQuY29uZmlncz8uWydyZWNvbW1lbmRlZCddIGFzIEl0ZXJhYmxlPExpbnRlci5Db25maWc+KTtcblxuICBjb25zdCBzY29wZWRPYnNpZGlhblJlY29tbWVuZGVkQ29uZmlncyA9IG9ic2lkaWFuUmVjb21tZW5kZWRDb25maWdzLm1hcCgoY29uZmlnKSA9PiB7XG4gICAgaWYgKGNvbmZpZy5maWxlcz8uaW5jbHVkZXMoJ3BhY2thZ2UuanNvbicpKSB7XG4gICAgICByZXR1cm4gY29uZmlnO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi5jb25maWcsXG4gICAgICBmaWxlczogdHlwZVNjcmlwdEZpbGVzXG4gICAgfTtcbiAgfSk7XG5cbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhbXG4gICAgLi4uc2NvcGVkT2JzaWRpYW5SZWNvbW1lbmRlZENvbmZpZ3MsXG4gICAge1xuICAgICAgcGx1Z2luczoge1xuICAgICAgICBvYnNpZGlhbm1kOiBvYnNpZGlhbm1kIGFzIEVTTGludC5QbHVnaW5cbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGxhbmd1YWdlT3B0aW9uczoge1xuICAgICAgICBnbG9iYWxzOiB7XG4gICAgICAgICAgLi4uZ2xvYmFscy5icm93c2VyLFxuICAgICAgICAgIC4uLmdsb2JhbHMubm9kZSxcbiAgICAgICAgICBhY3RpdmVEb2N1bWVudDogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBhY3RpdmVXaW5kb3c6ICdyZWFkb25seScsXG4gICAgICAgICAgYWpheDogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBhamF4UHJvbWlzZTogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBjcmVhdGVEaXY6ICdyZWFkb25seScsXG4gICAgICAgICAgY3JlYXRlRWw6ICdyZWFkb25seScsXG4gICAgICAgICAgY3JlYXRlRnJhZ21lbnQ6ICdyZWFkb25seScsXG4gICAgICAgICAgY3JlYXRlU3BhbjogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBjcmVhdGVTdmc6ICdyZWFkb25seScsXG4gICAgICAgICAgRG9tRWxlbWVudEluZm86ICdyZWFkb25seScsXG4gICAgICAgICAgZmlzaDogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBmaXNoQWxsOiAncmVhZG9ubHknLFxuICAgICAgICAgIGlzQm9vbGVhbjogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBuZXh0RnJhbWU6ICdyZWFkb25seScsXG4gICAgICAgICAgTm9kZUpTOiAncmVhZG9ubHknLFxuICAgICAgICAgIHJlYWR5OiAncmVhZG9ubHknLFxuICAgICAgICAgIHNsZWVwOiAncmVhZG9ubHknXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXRQZXJmZWN0aW9uaXN0Q29uZmlncygpOiBMaW50ZXIuQ29uZmlnW10ge1xuICByZXR1cm4gZGVmaW5lQ29uZmlnKFt7XG4gICAgZXh0ZW5kczogW3BlcmZlY3Rpb25pc3RDb25maWdzWydyZWNvbW1lbmRlZC1hbHBoYWJldGljYWwnXV0sXG4gICAgZmlsZXM6IHR5cGVTY3JpcHRGaWxlc1xuICB9XSk7XG59XG5cbmZ1bmN0aW9uIGdldFN0eWxpc3RpY0NvbmZpZ3MoKTogTGludGVyLkNvbmZpZ1tdIHtcbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhbXG4gICAge1xuICAgICAgZXh0ZW5kczogW1xuICAgICAgICBzdHlsaXN0aWMuY29uZmlncy5yZWNvbW1lbmRlZCxcbiAgICAgICAgc3R5bGlzdGljLmNvbmZpZ3MuY3VzdG9taXplKHtcbiAgICAgICAgICBhcnJvd1BhcmVuczogdHJ1ZSxcbiAgICAgICAgICBicmFjZVN0eWxlOiAnMXRicycsXG4gICAgICAgICAgY29tbWFEYW5nbGU6ICduZXZlcicsXG4gICAgICAgICAgc2VtaTogdHJ1ZVxuICAgICAgICB9KVxuICAgICAgXSxcbiAgICAgIGZpbGVzOiB0eXBlU2NyaXB0RmlsZXMsXG4gICAgICBydWxlczoge1xuICAgICAgICAnQHN0eWxpc3RpYy9pbmRlbnQnOiAnb2ZmJyxcbiAgICAgICAgJ0BzdHlsaXN0aWMvaW5kZW50LWJpbmFyeS1vcHMnOiAnb2ZmJyxcbiAgICAgICAgJ0BzdHlsaXN0aWMvanN4LW9uZS1leHByZXNzaW9uLXBlci1saW5lJzogJ29mZicsXG4gICAgICAgICdAc3R5bGlzdGljL25vLWV4dHJhLXNlbWknOiAnZXJyb3InLFxuICAgICAgICAnQHN0eWxpc3RpYy9vYmplY3QtY3VybHktbmV3bGluZSc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIEV4cG9ydERlY2xhcmF0aW9uOiB7XG4gICAgICAgICAgICAgIG1pblByb3BlcnRpZXM6IDIsXG4gICAgICAgICAgICAgIG11bHRpbGluZTogdHJ1ZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIEltcG9ydERlY2xhcmF0aW9uOiB7XG4gICAgICAgICAgICAgIG1pblByb3BlcnRpZXM6IDIsXG4gICAgICAgICAgICAgIG11bHRpbGluZTogdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgJ0BzdHlsaXN0aWMvb3BlcmF0b3ItbGluZWJyZWFrJzogW1xuICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAgJ2JlZm9yZScsXG4gICAgICAgICAge1xuICAgICAgICAgICAgb3ZlcnJpZGVzOiB7XG4gICAgICAgICAgICAgICc9JzogJ2FmdGVyJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgJ0BzdHlsaXN0aWMvcXVvdGVzJzogW1xuICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAgJ3NpbmdsZScsXG4gICAgICAgICAge1xuICAgICAgICAgICAgYWxsb3dUZW1wbGF0ZUxpdGVyYWxzOiAnbmV2ZXInXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgfVxuICBdKTtcbn1cblxuZnVuY3Rpb24gZ2V0VHNlc2xpbnRDb25maWdzKCk6IExpbnRlci5Db25maWdbXSB7XG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIHtcbiAgICAgIGV4dGVuZHM6IFtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC14L25vLW5hbWVkLWFzLWRlZmF1bHQtbWVtYmVyIC0tIFRoZSBkZWZhdWx0IGV4cG9ydCBuYW1lIGBfZGVmYXVsdGAgaXMgdG9vIGNvbmZ1c2luZy5cbiAgICAgICAgLi4udHNlc2xpbnQuY29uZmlncy5zdHJpY3RUeXBlQ2hlY2tlZCxcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC14L25vLW5hbWVkLWFzLWRlZmF1bHQtbWVtYmVyIC0tIFRoZSBkZWZhdWx0IGV4cG9ydCBuYW1lIGBfZGVmYXVsdGAgaXMgdG9vIGNvbmZ1c2luZy5cbiAgICAgICAgLi4udHNlc2xpbnQuY29uZmlncy5zdHlsaXN0aWNUeXBlQ2hlY2tlZFxuICAgICAgXSxcbiAgICAgIGZpbGVzOiB0eXBlU2NyaXB0RmlsZXMsXG4gICAgICBsYW5ndWFnZU9wdGlvbnM6IHtcbiAgICAgICAgcGFyc2VyT3B0aW9uczoge1xuICAgICAgICAgIGVjbWFGZWF0dXJlczoge1xuICAgICAgICAgICAganN4OiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwcm9qZWN0U2VydmljZTogdHJ1ZSxcbiAgICAgICAgICB0c2NvbmZpZ1Jvb3REaXI6IGdldFJvb3RGb2xkZXIoKSA/PyAnJ1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgJ0B0eXBlc2NyaXB0LWVzbGludC9leHBsaWNpdC1mdW5jdGlvbi1yZXR1cm4tdHlwZSc6ICdlcnJvcicsXG4gICAgICAgICdAdHlwZXNjcmlwdC1lc2xpbnQvZXhwbGljaXQtbWVtYmVyLWFjY2Vzc2liaWxpdHknOiAnZXJyb3InLFxuICAgICAgICAnQHR5cGVzY3JpcHQtZXNsaW50L25vLWludmFsaWQtdm9pZC10eXBlJzogWydlcnJvcicsIHtcbiAgICAgICAgICBhbGxvd0FzVGhpc1BhcmFtZXRlcjogdHJ1ZVxuICAgICAgICB9XSxcbiAgICAgICAgJ0B0eXBlc2NyaXB0LWVzbGludC9uby10aGlzLWFsaWFzJzogWydlcnJvcicsIHtcbiAgICAgICAgICBhbGxvd2VkTmFtZXM6IFtcbiAgICAgICAgICAgICd0aGF0J1xuICAgICAgICAgIF1cbiAgICAgICAgfV0sXG4gICAgICAgICdAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhcmdzOiAnYWxsJyxcbiAgICAgICAgICAgIGFyZ3NJZ25vcmVQYXR0ZXJuOiAnXl8nLFxuICAgICAgICAgICAgY2F1Z2h0RXJyb3JzOiAnYWxsJyxcbiAgICAgICAgICAgIGNhdWdodEVycm9yc0lnbm9yZVBhdHRlcm46ICdeXycsXG4gICAgICAgICAgICBkZXN0cnVjdHVyZWRBcnJheUlnbm9yZVBhdHRlcm46ICdeXycsXG4gICAgICAgICAgICBpZ25vcmVSZXN0U2libGluZ3M6IHRydWUsXG4gICAgICAgICAgICB2YXJzSWdub3JlUGF0dGVybjogJ15fJ1xuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgJ0B0eXBlc2NyaXB0LWVzbGludC9wcmVmZXItcmVhZG9ubHknOiAnZXJyb3InXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBzZXR0aW5nczoge1xuICAgICAgICByZWFjdDoge1xuICAgICAgICAgIHZlcnNpb246ICdkZXRlY3QnXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG4vKiBlc2xpbnQtZW5hYmxlIG5vLW1hZ2ljLW51bWJlcnMgLS0gV2UgZGlzYWJsZWQgbWFnaWMgbnVtYmVycyBiZWNhdXNlIHRoZXkgYXJlIHVzZWQgYWxsIG92ZXIgdGhlIGNvbmZpZ3MuICovXG5cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFtQkEsT0FBTyxxQkFBcUI7QUFDNUIsT0FBTyxZQUFZO0FBRW5CLE9BQU8sZUFBZTtBQUN0QixTQUFTLHNDQUFzQztBQUMvQyxTQUFTLGVBQWUsc0NBQXNDO0FBQzlELE9BQU8saUNBQWlDO0FBRXhDLE9BQU8sZ0JBQWdCO0FBQ3ZCLFNBQVMsV0FBVyw0QkFBNEI7QUFDaEQ7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxPQUFPLGFBQWE7QUFFcEIsT0FBTyxjQUFjO0FBRXJCLFNBQVMsK0JBQStCO0FBQ3hDLFNBQVMsWUFBWTtBQUNyQixTQUFTLHFCQUFxQjtBQUt2QixNQUFNLGtCQUFrQjtBQUFBLEVBQzdCLEtB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
497
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKlxuICogRVNMaW50IGNvbmZpZ3VyYXRpb24gZm9yIFR5cGVTY3JpcHQgcHJvamVjdHMgd2l0aCB2YXJpb3VzIHBsdWdpbnMuXG4gKlxuICogVGhpcyBtb2R1bGUgZXhwb3J0cyBFU0xpbnQgY29uZmlndXJhdGlvbnMgZm9yIFR5cGVTY3JpcHQgcHJvamVjdHMsIGludGVncmF0aW5nIG11bHRpcGxlIEVTTGludCBwbHVnaW5zXG4gKiBzdWNoIGFzIGBAdHlwZXNjcmlwdC1lc2xpbnQvcGFyc2VyYCwgYEB0eXBlc2NyaXB0LWVzbGludC9lc2xpbnQtcGx1Z2luYCxcbiAqIGBlc2xpbnQtcGx1Z2luLW1vZHVsZXMtbmV3bGluZXNgLCBgQHN0eWxpc3RpYy9lc2xpbnQtcGx1Z2luYC5cbiAqIEl0IHNldHMgdXAgcGFyc2VycywgcGx1Z2lucywgYW5kIHJ1bGVzIGZvciBtYWludGFpbmluZyBjb2RlIHF1YWxpdHkgYW5kIGNvbnNpc3RlbmN5LlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBEZWNsYXJhdGl2ZSBFU0xpbnQgcnVsZS9wbHVnaW4gY29uZmlndXJhdGlvbjsgY29ycmVjdG5lc3MgaXMgdmVyaWZpZWQgYnkgcnVubmluZyBFU0xpbnQsIG5vdCB1bml0IHRlc3RzLiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIEVTTGludCxcbiAgTGludGVyXG59IGZyb20gJ2VzbGludCc7XG5cbi8qIGVzbGludC1kaXNhYmxlIG5vLW1hZ2ljLW51bWJlcnMgLS0gV2UgZGlzYWJsZWQgbWFnaWMgbnVtYmVycyBiZWNhdXNlIHRoZXkgYXJlIHVzZWQgYWxsIG92ZXIgdGhlIGNvbmZpZ3MuICovXG5pbXBvcnQgY29tbWVudHNDb25maWdzIGZyb20gJ0Blc2xpbnQtY29tbXVuaXR5L2VzbGludC1wbHVnaW4tZXNsaW50LWNvbW1lbnRzL2NvbmZpZ3MnO1xuaW1wb3J0IHsgaW5jbHVkZUlnbm9yZUZpbGUgfSBmcm9tICdAZXNsaW50L2NvbXBhdCc7XG5pbXBvcnQgZXNsaW50IGZyb20gJ0Blc2xpbnQvanMnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC14L25vLXJlbmFtZS1kZWZhdWx0IC0tIFRoZSBkZWZhdWx0IGV4cG9ydCBuYW1lIGBwbHVnaW5gIGlzIHRvbyBjb25mdXNpbmcuXG5pbXBvcnQgc3R5bGlzdGljIGZyb20gJ0BzdHlsaXN0aWMvZXNsaW50LXBsdWdpbic7XG5pbXBvcnQgeyBjcmVhdGVUeXBlU2NyaXB0SW1wb3J0UmVzb2x2ZXIgfSBmcm9tICdlc2xpbnQtaW1wb3J0LXJlc29sdmVyLXR5cGVzY3JpcHQnO1xuaW1wb3J0IHsgZmxhdENvbmZpZ3MgYXMgZXNsaW50UGx1Z2luSW1wb3J0WEZsYXRDb25maWdzIH0gZnJvbSAnZXNsaW50LXBsdWdpbi1pbXBvcnQteCc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0LXgvbm8tcmVuYW1lLWRlZmF1bHQgLS0gVGhlIGRlZmF1bHQgZXhwb3J0IG5hbWUgYHBsdWdpbmAgaXMgdG9vIGNvbmZ1c2luZy5cbmltcG9ydCBvYnNpZGlhbm1kIGZyb20gJ2VzbGludC1wbHVnaW4tb2JzaWRpYW5tZCc7XG5pbXBvcnQgeyBjb25maWdzIGFzIHBlcmZlY3Rpb25pc3RDb25maWdzIH0gZnJvbSAnZXNsaW50LXBsdWdpbi1wZXJmZWN0aW9uaXN0JztcbmltcG9ydCB7XG4gIGRlZmluZUNvbmZpZyxcbiAgZ2xvYmFsSWdub3Jlc1xufSBmcm9tICdlc2xpbnQvY29uZmlnJztcbmltcG9ydCBnbG9iYWxzIGZyb20gJ2dsb2JhbHMnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC14L25vLXJlbmFtZS1kZWZhdWx0IC0tIFRoZSBkZWZhdWx0IGV4cG9ydCBuYW1lIGBfZGVmYXVsdGAgaXMgdG9vIGNvbmZ1c2luZy5cbmltcG9ydCB0c2VzbGludCBmcm9tICd0eXBlc2NyaXB0LWVzbGludCc7XG5cbmltcG9ydCB7IE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzIH0gZnJvbSAnLi4vLi4vb2JzaWRpYW4vcGx1Z2luL29ic2lkaWFuLXBsdWdpbi1yZXBvLXBhdGhzLnRzJztcbmltcG9ydCB7IGpvaW4gfSBmcm9tICcuLi8uLi9wYXRoLnRzJztcbmltcG9ydCB7IGdldFJvb3RGb2xkZXIgfSBmcm9tICcuLi9yb290LnRzJztcbmltcG9ydCB7IG5vVXNlZFVuZGVyc2NvcmVQYXJhbXMgfSBmcm9tICcuL2VzbGludC1ydWxlcy9uby11c2VkLXVuZGVyc2NvcmUtcGFyYW1zLnRzJztcblxuLyoqXG4gKiBUaGUgbGlzdCBvZiBUeXBlU2NyaXB0IGZpbGVzIHRvIGxpbnQuXG4gKi9cbmV4cG9ydCBjb25zdCB0eXBlU2NyaXB0RmlsZXMgPSBbXG4gIGpvaW4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuVGVzdHMsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueVBhdGgsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueVRzKSxcbiAgam9pbihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5Nb2NrcywgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55UGF0aCwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55VHMpLFxuICBqb2luKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLlNyYywgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55UGF0aCwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55VHMpLFxuICBqb2luKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLlNyYywgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55UGF0aCwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55VHN4KSxcbiAgam9pbihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5TY3JpcHRzLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlQYXRoLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlUcyksXG4gIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hcmtkb3dubGludENsaTJDb25maWdNdHMsXG4gIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkNvbW1pdGxpbnRDb25maWdUcyxcbiAgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuRXNsaW50Q29uZmlnTXRzXG5dO1xuXG4vKipcbiAqIEVTTGludCBjb25maWd1cmF0aW9ucyBmb3IgVHlwZVNjcmlwdCBwcm9qZWN0cy5cbiAqL1xuZXhwb3J0IGNvbnN0IG9ic2lkaWFuRGV2VXRpbHNDb25maWdzOiBMaW50ZXIuQ29uZmlnW10gPSBkZWZpbmVDb25maWcoXG4gIGluY2x1ZGVJZ25vcmVGaWxlKGpvaW4oZ2V0Um9vdEZvbGRlcigpID8/ICcnLCAnLmdpdGlnbm9yZScpKSxcbiAgZ2xvYmFsSWdub3JlcyhbXG4gICAgam9pbihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlQYXRoLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlDanMpLFxuICAgIGpvaW4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55UGF0aCwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55SnMpLFxuICAgIGpvaW4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55UGF0aCwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55TWpzKSxcbiAgICBqb2luKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkRpc3QsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueVBhdGgpXG4gIF0pLFxuICAuLi5nZXRFc2xpbnRDb25maWdzKCksXG4gIC4uLmdldFRzZXNsaW50Q29uZmlncygpLFxuICAuLi5nZXRTdHlsaXN0aWNDb25maWdzKCksXG4gIC4uLmdldEltcG9ydFhDb25maWdzKCksXG4gIC4uLmdldFBlcmZlY3Rpb25pc3RDb25maWdzKCksXG4gIC4uLmdldEVzbGludEltcG9ydFJlc29sdmVyVHlwZXNjcmlwdENvbmZpZ3MoKSxcbiAgLi4uZ2V0RXNsaW50Q29tbWVudHNDb25maWdzKCksXG4gIC4uLmdldE9ic2lkaWFuTGludENvbmZpZ3MoKVxuKTtcblxuZnVuY3Rpb24gZ2V0RXNsaW50Q29tbWVudHNDb25maWdzKCk6IExpbnRlci5Db25maWdbXSB7XG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQteC9uby1uYW1lZC1hcy1kZWZhdWx0LW1lbWJlciAtLSBUaGUgZGVmYXVsdCBleHBvcnQgbmFtZSBgcmVjb21tZW5kZWRgIGlzIHRvbyBjb25mdXNpbmcuXG4gICAgICBleHRlbmRzOiBbY29tbWVudHNDb25maWdzLnJlY29tbWVuZGVkXSxcbiAgICAgIGZpbGVzOiB0eXBlU2NyaXB0RmlsZXMsXG4gICAgICBydWxlczoge1xuICAgICAgICAnQGVzbGludC1jb21tdW5pdHkvZXNsaW50LWNvbW1lbnRzL3JlcXVpcmUtZGVzY3JpcHRpb24nOiAnZXJyb3InXG4gICAgICB9XG4gICAgfVxuICBdKTtcbn1cblxuZnVuY3Rpb24gZ2V0RXNsaW50Q29uZmlncygpOiBMaW50ZXIuQ29uZmlnW10ge1xuICByZXR1cm4gZGVmaW5lQ29uZmlnKFtcbiAgICB7XG4gICAgICBleHRlbmRzOiBbZXNsaW50LmNvbmZpZ3MucmVjb21tZW5kZWRdLFxuICAgICAgZmlsZXM6IHR5cGVTY3JpcHRGaWxlcyxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdhY2Nlc3Nvci1wYWlycyc6ICdlcnJvcicsXG4gICAgICAgICdhcnJheS1jYWxsYmFjay1yZXR1cm4nOiAnZXJyb3InLFxuICAgICAgICAnY2FtZWxjYXNlJzogJ2Vycm9yJyxcbiAgICAgICAgJ2NhcGl0YWxpemVkLWNvbW1lbnRzJzogWydlcnJvcicsICdhbHdheXMnLCB7IGJsb2NrOiB7IGlnbm9yZVBhdHRlcm46ICd2OCcgfSB9XSxcbiAgICAgICAgJ2NvbXBsZXhpdHknOiAnZXJyb3InLFxuICAgICAgICAnY29uc2lzdGVudC10aGlzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2N1cmx5JzogJ2Vycm9yJyxcbiAgICAgICAgJ2RlZmF1bHQtY2FzZSc6ICdlcnJvcicsXG4gICAgICAgICdkZWZhdWx0LWNhc2UtbGFzdCc6ICdlcnJvcicsXG4gICAgICAgICdkZWZhdWx0LXBhcmFtLWxhc3QnOiAnZXJyb3InLFxuICAgICAgICAnZXFlcWVxJzogJ2Vycm9yJyxcbiAgICAgICAgJ2Z1bmMtbmFtZS1tYXRjaGluZyc6ICdlcnJvcicsXG4gICAgICAgICdmdW5jLW5hbWVzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2Z1bmMtc3R5bGUnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICAnZGVjbGFyYXRpb24nLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFsbG93QXJyb3dGdW5jdGlvbnM6IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICAnZ3JvdXBlZC1hY2Nlc3Nvci1wYWlycyc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgICdnZXRCZWZvcmVTZXQnXG4gICAgICAgIF0sXG4gICAgICAgICdndWFyZC1mb3ItaW4nOiAnZXJyb3InLFxuICAgICAgICAnbm8tYWxlcnQnOiAnZXJyb3InLFxuICAgICAgICAnbm8tYXJyYXktY29uc3RydWN0b3InOiAnZXJyb3InLFxuICAgICAgICAnbm8tYml0d2lzZSc6ICdlcnJvcicsXG4gICAgICAgICduby1jYWxsZXInOiAnZXJyb3InLFxuICAgICAgICAnbm8tY29uc29sZSc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFsbG93OiBbXG4gICAgICAgICAgICAgICd3YXJuJyxcbiAgICAgICAgICAgICAgJ2Vycm9yJ1xuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgJ25vLWNvbnN0cnVjdG9yLXJldHVybic6ICdlcnJvcicsXG4gICAgICAgICduby1kaXYtcmVnZXgnOiAnZXJyb3InLFxuICAgICAgICAnbm8tZWxzZS1yZXR1cm4nOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhbGxvd0Vsc2VJZjogZmFsc2VcbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgICduby1lbXB0eS1mdW5jdGlvbic6ICdlcnJvcicsXG4gICAgICAgICduby1leHRlbmQtbmF0aXZlJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWV4dHJhLWJpbmQnOiAnZXJyb3InLFxuICAgICAgICAnbm8tZXh0cmEtbGFiZWwnOiAnZXJyb3InLFxuICAgICAgICAnbm8taW1wbGljaXQtY29lcmNpb24nOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhbGxvdzogW1xuICAgICAgICAgICAgICAnISEnXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICAnbm8taW1wbGllZC1ldmFsJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWlubmVyLWRlY2xhcmF0aW9ucyc6ICdlcnJvcicsXG4gICAgICAgICduby1pdGVyYXRvcic6ICdlcnJvcicsXG4gICAgICAgICduby1sYWJlbC12YXInOiAnZXJyb3InLFxuICAgICAgICAnbm8tbGFiZWxzJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWxvbmUtYmxvY2tzJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWxvbmVseS1pZic6ICdlcnJvcicsXG4gICAgICAgICduby1sb29wLWZ1bmMnOiAnZXJyb3InLFxuICAgICAgICAnbm8tbWFnaWMtbnVtYmVycyc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGRldGVjdE9iamVjdHM6IHRydWUsXG4gICAgICAgICAgICBlbmZvcmNlQ29uc3Q6IHRydWUsXG4gICAgICAgICAgICBpZ25vcmU6IFtcbiAgICAgICAgICAgICAgLTEsXG4gICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgIDFcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgICduby1tdWx0aS1hc3NpZ24nOiAnZXJyb3InLFxuICAgICAgICAnbm8tbXVsdGktc3RyJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLW5lZ2F0ZWQtY29uZGl0aW9uJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLW5lc3RlZC10ZXJuYXJ5JzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLW5ldy1mdW5jJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLW5ldy13cmFwcGVycyc6ICdlcnJvcicsXG4gICAgICAgICduby1vYmplY3QtY29uc3RydWN0b3InOiAnZXJyb3InLFxuICAgICAgICAnbm8tb2N0YWwtZXNjYXBlJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXByb21pc2UtZXhlY3V0b3ItcmV0dXJuJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXByb3RvJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXJlc3RyaWN0ZWQtc3ludGF4JzogW1xuICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWVzc2FnZTogJ0RvIG5vdCB1c2UgZGVmaW5pdGUgYXNzaWdubWVudCBhc3NlcnRpb25zICghKS4gSW5pdGlhbGl6ZSB0aGUgZmllbGQgb3IgbWFrZSBpdCBvcHRpb25hbC4nLFxuICAgICAgICAgICAgc2VsZWN0b3I6ICdQcm9wZXJ0eURlZmluaXRpb25bZGVmaW5pdGU9dHJ1ZV0nXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBtZXNzYWdlOiAnRG8gbm90IHVzZSBkZWZpbml0ZSBhc3NpZ25tZW50IGFzc2VydGlvbnMgKCEpIG9uIGFic3RyYWN0IGZpZWxkcy4nLFxuICAgICAgICAgICAgc2VsZWN0b3I6ICdUU0Fic3RyYWN0UHJvcGVydHlEZWZpbml0aW9uW2RlZmluaXRlPXRydWVdJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWVzc2FnZTogJ0RvIG5vdCB1c2UgYW5vbnltb3VzIGlubGluZSBvYmplY3QgdHlwZXMgaW4gZnVuY3Rpb24gcGFyYW1ldGVycy4gRGVmaW5lIGEgbmFtZWQgaW50ZXJmYWNlIGluc3RlYWQuJyxcbiAgICAgICAgICAgIHNlbGVjdG9yOiAnOmZ1bmN0aW9uID4gSWRlbnRpZmllciBUU1R5cGVMaXRlcmFsJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWVzc2FnZTogJ0RvIG5vdCB1c2UgYW5vbnltb3VzIGlubGluZSBvYmplY3QgdHlwZXMgaW4gZnVuY3Rpb24gcmV0dXJuIHR5cGVzLiBEZWZpbmUgYSBuYW1lZCBpbnRlcmZhY2UgaW5zdGVhZC4nLFxuICAgICAgICAgICAgc2VsZWN0b3I6ICc6ZnVuY3Rpb24gPiBUU1R5cGVBbm5vdGF0aW9uIFRTVHlwZUxpdGVyYWwnXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBtZXNzYWdlOiAnRG8gbm90IHVzZSBhbm9ueW1vdXMgaW5saW5lIG9iamVjdCB0eXBlcyBpbiBpbnRlcmZhY2UvbWV0aG9kIHNpZ25hdHVyZXMuIERlZmluZSBhIG5hbWVkIGludGVyZmFjZSBpbnN0ZWFkLicsXG4gICAgICAgICAgICBzZWxlY3RvcjogJ1RTTWV0aG9kU2lnbmF0dXJlIFRTVHlwZUxpdGVyYWwnXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBtZXNzYWdlOiAnRG8gbm90IHVzZSBhbm9ueW1vdXMgaW5saW5lIG9iamVjdCB0eXBlcyBhcyB0eXBlIGFyZ3VtZW50cy4gRGVmaW5lIGEgbmFtZWQgaW50ZXJmYWNlIGluc3RlYWQuJyxcbiAgICAgICAgICAgIHNlbGVjdG9yOiAnVFNUeXBlUGFyYW1ldGVySW5zdGFudGlhdGlvbiBUU1R5cGVMaXRlcmFsJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWVzc2FnZTogJ0RvIG5vdCB1c2UgYW5vbnltb3VzIGlubGluZSBvYmplY3QgdHlwZXMgaW4gdHlwZSBhbm5vdGF0aW9ucy4gRGVmaW5lIGEgbmFtZWQgaW50ZXJmYWNlIGluc3RlYWQuJyxcbiAgICAgICAgICAgIHNlbGVjdG9yOiAnVFNUeXBlQW5ub3RhdGlvbiBUU1R5cGVMaXRlcmFsJ1xuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgJ25vLXJldHVybi1hc3NpZ24nOiAnZXJyb3InLFxuICAgICAgICAnbm8tc2NyaXB0LXVybCc6ICdlcnJvcicsXG4gICAgICAgICduby1zZWxmLWNvbXBhcmUnOiAnZXJyb3InLFxuICAgICAgICAnbm8tc2VxdWVuY2VzJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXNoYWRvdyc6ICdlcnJvcicsXG4gICAgICAgICduby10ZW1wbGF0ZS1jdXJseS1pbi1zdHJpbmcnOiAnZXJyb3InLFxuICAgICAgICAnbm8tdGhyb3ctbGl0ZXJhbCc6ICdlcnJvcicsXG4gICAgICAgICduby11bm1vZGlmaWVkLWxvb3AtY29uZGl0aW9uJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXVubmVlZGVkLXRlcm5hcnknOiAnZXJyb3InLFxuICAgICAgICAnbm8tdW5yZWFjaGFibGUtbG9vcCc6ICdlcnJvcicsXG4gICAgICAgICduby11bnVzZWQtZXhwcmVzc2lvbnMnOiAnZXJyb3InLFxuICAgICAgICAnbm8tdXNlbGVzcy1hc3NpZ25tZW50JzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXVzZWxlc3MtY2FsbCc6ICdlcnJvcicsXG4gICAgICAgICduby11c2VsZXNzLWNvbXB1dGVkLWtleSc6ICdlcnJvcicsXG4gICAgICAgICduby11c2VsZXNzLWNvbmNhdCc6ICdlcnJvcicsXG4gICAgICAgICduby11c2VsZXNzLWNvbnN0cnVjdG9yJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXVzZWxlc3MtcmVuYW1lJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXVzZWxlc3MtcmV0dXJuJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXZhcic6ICdlcnJvcicsXG4gICAgICAgICduby12b2lkJzogJ2Vycm9yJyxcbiAgICAgICAgJ29iamVjdC1zaG9ydGhhbmQnOiAnZXJyb3InLFxuICAgICAgICAnb3BlcmF0b3ItYXNzaWdubWVudCc6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItYXJyb3ctY2FsbGJhY2snOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLWNvbnN0JzogJ2Vycm9yJyxcbiAgICAgICAgJ3ByZWZlci1leHBvbmVudGlhdGlvbi1vcGVyYXRvcic6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItbmFtZWQtY2FwdHVyZS1ncm91cCc6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItbnVtZXJpYy1saXRlcmFscyc6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItb2JqZWN0LWhhcy1vd24nOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLW9iamVjdC1zcHJlYWQnOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLXByb21pc2UtcmVqZWN0LWVycm9ycyc6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItcmVnZXgtbGl0ZXJhbHMnOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLXJlc3QtcGFyYW1zJzogJ2Vycm9yJyxcbiAgICAgICAgJ3ByZWZlci1zcHJlYWQnOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLXRlbXBsYXRlJzogJ2Vycm9yJyxcbiAgICAgICAgJ3JhZGl4JzogJ2Vycm9yJyxcbiAgICAgICAgJ3JlcXVpcmUtYXRvbWljLXVwZGF0ZXMnOiAnZXJyb3InLFxuICAgICAgICAncmVxdWlyZS1hd2FpdCc6ICdlcnJvcicsXG4gICAgICAgICdzeW1ib2wtZGVzY3JpcHRpb24nOiAnZXJyb3InLFxuICAgICAgICAndW5pY29kZS1ib20nOiAnZXJyb3InLFxuICAgICAgICAndmFycy1vbi10b3AnOiAnZXJyb3InLFxuICAgICAgICAneW9kYSc6ICdlcnJvcidcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGZpbGVzOiBbJ3NyYy9zY3JpcHQtdXRpbHMvbGludGVycy9tYXJrZG93bmxpbnQtdHlwZXMvQHR5cGVzL21hcmtkb3dubGludC1jbGkyLWNvbmZpZy1zY2hlbWEuZC50cyddLFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgJ25vLXJlc3RyaWN0ZWQtc3ludGF4JzogJ29mZidcbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXRFc2xpbnRJbXBvcnRSZXNvbHZlclR5cGVzY3JpcHRDb25maWdzKCk6IExpbnRlci5Db25maWdbXSB7XG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIHtcbiAgICAgIHNldHRpbmdzOiB7XG4gICAgICAgICdpbXBvcnQteC9yZXNvbHZlci1uZXh0JzogW1xuICAgICAgICAgIGNyZWF0ZVR5cGVTY3JpcHRJbXBvcnRSZXNvbHZlcih7XG4gICAgICAgICAgICBhbHdheXNUcnlUeXBlczogdHJ1ZVxuICAgICAgICAgIH0pXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXRJbXBvcnRYQ29uZmlncygpOiBMaW50ZXIuQ29uZmlnW10ge1xuICByZXR1cm4gZGVmaW5lQ29uZmlnKFtcbiAgICB7XG4gICAgICBleHRlbmRzOiBbXG4gICAgICAgIGVzbGludFBsdWdpbkltcG9ydFhGbGF0Q29uZmlncy5yZWNvbW1lbmRlZCBhcyBMaW50ZXIuQ29uZmlnLFxuICAgICAgICBlc2xpbnRQbHVnaW5JbXBvcnRYRmxhdENvbmZpZ3MudHlwZXNjcmlwdCBhcyBMaW50ZXIuQ29uZmlnLFxuICAgICAgICBlc2xpbnRQbHVnaW5JbXBvcnRYRmxhdENvbmZpZ3MuZXJyb3JzIGFzIExpbnRlci5Db25maWcsXG4gICAgICAgIGVzbGludFBsdWdpbkltcG9ydFhGbGF0Q29uZmlncy53YXJuaW5ncyBhcyBMaW50ZXIuQ29uZmlnXG4gICAgICBdLFxuICAgICAgZmlsZXM6IHR5cGVTY3JpcHRGaWxlcyxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdpbXBvcnQteC9jb25zaXN0ZW50LXR5cGUtc3BlY2lmaWVyLXN0eWxlJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L2V4dGVuc2lvbnMnOiBbJ2Vycm9yJywgJ2lnbm9yZVBhY2thZ2VzJ10sXG4gICAgICAgICdpbXBvcnQteC9maXJzdCc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9pbXBvcnRzLWZpcnN0JzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25ld2xpbmUtYWZ0ZXItaW1wb3J0JzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWFic29sdXRlLXBhdGgnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tYW1kJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWFub255bW91cy1kZWZhdWx0LWV4cG9ydCc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1jb21tb25qcyc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1jeWNsZSc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1kZWZhdWx0LWV4cG9ydCc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1kZXByZWNhdGVkJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWR1cGxpY2F0ZXMnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tZHluYW1pYy1yZXF1aXJlJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWVtcHR5LW5hbWVkLWJsb2Nrcyc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1pbXBvcnQtbW9kdWxlLWV4cG9ydHMnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tbXV0YWJsZS1leHBvcnRzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLW5hbWVkLWRlZmF1bHQnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tbmFtZXNwYWNlJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLW5vZGVqcy1tb2R1bGVzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLXJlbGF0aXZlLXBhY2thZ2VzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLXJlc3RyaWN0ZWQtcGF0aHMnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tc2VsZi1pbXBvcnQnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tdW5hc3NpZ25lZC1pbXBvcnQnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhbGxvdzogW1xuICAgICAgICAgICAgICAnKiovKi5jc3MnLFxuICAgICAgICAgICAgICAnKiovKi5zYXNzJyxcbiAgICAgICAgICAgICAgJyoqLyouc2NzcydcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgICdpbXBvcnQteC9uby11bnVzZWQtbW9kdWxlcyc6ICdvZmYnLFxuICAgICAgICAnaW1wb3J0LXgvbm8tdXNlbGVzcy1wYXRoLXNlZ21lbnRzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLXdlYnBhY2stbG9hZGVyLXN5bnRheCc6ICdlcnJvcidcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGZpbGVzOiBbJ3NjcmlwdHMvKiovKi50cycsICdzcmMvc2NyaXB0LXV0aWxzLyoqLyoudHMnXSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdpbXBvcnQteC9uby1ub2RlanMtbW9kdWxlcyc6ICdvZmYnXG4gICAgICB9XG4gICAgfVxuICBdKTtcbn1cblxuZnVuY3Rpb24gZ2V0T2JzaWRpYW5MaW50Q29uZmlncygpOiBMaW50ZXIuQ29uZmlnW10ge1xuICBjb25zdCBvYnNpZGlhblJlY29tbWVuZGVkQ29uZmlncyA9IEFycmF5LmZyb20ob2JzaWRpYW5tZC5jb25maWdzPy5bJ3JlY29tbWVuZGVkJ10gYXMgSXRlcmFibGU8TGludGVyLkNvbmZpZz4pO1xuXG4gIGNvbnN0IHNjb3BlZE9ic2lkaWFuUmVjb21tZW5kZWRDb25maWdzID0gb2JzaWRpYW5SZWNvbW1lbmRlZENvbmZpZ3MubWFwKChjb25maWcpID0+IHtcbiAgICBpZiAoY29uZmlnLmZpbGVzPy5pbmNsdWRlcygncGFja2FnZS5qc29uJykpIHtcbiAgICAgIHJldHVybiBjb25maWc7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmNvbmZpZyxcbiAgICAgIGZpbGVzOiB0eXBlU2NyaXB0RmlsZXNcbiAgICB9O1xuICB9KTtcblxuICByZXR1cm4gZGVmaW5lQ29uZmlnKFtcbiAgICAuLi5zY29wZWRPYnNpZGlhblJlY29tbWVuZGVkQ29uZmlncyxcbiAgICB7XG4gICAgICBwbHVnaW5zOiB7XG4gICAgICAgIG9ic2lkaWFubWQ6IG9ic2lkaWFubWQgYXMgRVNMaW50LlBsdWdpblxuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbGFuZ3VhZ2VPcHRpb25zOiB7XG4gICAgICAgIGdsb2JhbHM6IHtcbiAgICAgICAgICAuLi5nbG9iYWxzLmJyb3dzZXIsXG4gICAgICAgICAgLi4uZ2xvYmFscy5ub2RlLFxuICAgICAgICAgIGFjdGl2ZURvY3VtZW50OiAncmVhZG9ubHknLFxuICAgICAgICAgIGFjdGl2ZVdpbmRvdzogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBhamF4OiAncmVhZG9ubHknLFxuICAgICAgICAgIGFqYXhQcm9taXNlOiAncmVhZG9ubHknLFxuICAgICAgICAgIGNyZWF0ZURpdjogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBjcmVhdGVFbDogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBjcmVhdGVGcmFnbWVudDogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBjcmVhdGVTcGFuOiAncmVhZG9ubHknLFxuICAgICAgICAgIGNyZWF0ZVN2ZzogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBEb21FbGVtZW50SW5mbzogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBmaXNoOiAncmVhZG9ubHknLFxuICAgICAgICAgIGZpc2hBbGw6ICdyZWFkb25seScsXG4gICAgICAgICAgaXNCb29sZWFuOiAncmVhZG9ubHknLFxuICAgICAgICAgIG5leHRGcmFtZTogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBOb2RlSlM6ICdyZWFkb25seScsXG4gICAgICAgICAgcmVhZHk6ICdyZWFkb25seScsXG4gICAgICAgICAgc2xlZXA6ICdyZWFkb25seSdcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgXSk7XG59XG5cbmZ1bmN0aW9uIGdldFBlcmZlY3Rpb25pc3RDb25maWdzKCk6IExpbnRlci5Db25maWdbXSB7XG4gIHJldHVybiBkZWZpbmVDb25maWcoW3tcbiAgICBleHRlbmRzOiBbcGVyZmVjdGlvbmlzdENvbmZpZ3NbJ3JlY29tbWVuZGVkLWFscGhhYmV0aWNhbCddXSxcbiAgICBmaWxlczogdHlwZVNjcmlwdEZpbGVzXG4gIH1dKTtcbn1cblxuZnVuY3Rpb24gZ2V0U3R5bGlzdGljQ29uZmlncygpOiBMaW50ZXIuQ29uZmlnW10ge1xuICByZXR1cm4gZGVmaW5lQ29uZmlnKFtcbiAgICB7XG4gICAgICBleHRlbmRzOiBbXG4gICAgICAgIHN0eWxpc3RpYy5jb25maWdzLnJlY29tbWVuZGVkLFxuICAgICAgICBzdHlsaXN0aWMuY29uZmlncy5jdXN0b21pemUoe1xuICAgICAgICAgIGFycm93UGFyZW5zOiB0cnVlLFxuICAgICAgICAgIGJyYWNlU3R5bGU6ICcxdGJzJyxcbiAgICAgICAgICBjb21tYURhbmdsZTogJ25ldmVyJyxcbiAgICAgICAgICBzZW1pOiB0cnVlXG4gICAgICAgIH0pXG4gICAgICBdLFxuICAgICAgZmlsZXM6IHR5cGVTY3JpcHRGaWxlcyxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdAc3R5bGlzdGljL2luZGVudCc6ICdvZmYnLFxuICAgICAgICAnQHN0eWxpc3RpYy9pbmRlbnQtYmluYXJ5LW9wcyc6ICdvZmYnLFxuICAgICAgICAnQHN0eWxpc3RpYy9qc3gtb25lLWV4cHJlc3Npb24tcGVyLWxpbmUnOiAnb2ZmJyxcbiAgICAgICAgJ0BzdHlsaXN0aWMvbm8tZXh0cmEtc2VtaSc6ICdlcnJvcicsXG4gICAgICAgICdAc3R5bGlzdGljL29iamVjdC1jdXJseS1uZXdsaW5lJzogW1xuICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAge1xuICAgICAgICAgICAgRXhwb3J0RGVjbGFyYXRpb246IHtcbiAgICAgICAgICAgICAgbWluUHJvcGVydGllczogMixcbiAgICAgICAgICAgICAgbXVsdGlsaW5lOiB0cnVlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgSW1wb3J0RGVjbGFyYXRpb246IHtcbiAgICAgICAgICAgICAgbWluUHJvcGVydGllczogMixcbiAgICAgICAgICAgICAgbXVsdGlsaW5lOiB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICAnQHN0eWxpc3RpYy9vcGVyYXRvci1saW5lYnJlYWsnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICAnYmVmb3JlJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvdmVycmlkZXM6IHtcbiAgICAgICAgICAgICAgJz0nOiAnYWZ0ZXInXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICAnQHN0eWxpc3RpYy9xdW90ZXMnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICAnc2luZ2xlJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhbGxvd1RlbXBsYXRlTGl0ZXJhbHM6ICduZXZlcidcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXRUc2VzbGludENvbmZpZ3MoKTogTGludGVyLkNvbmZpZ1tdIHtcbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhbXG4gICAge1xuICAgICAgZXh0ZW5kczogW1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0LXgvbm8tbmFtZWQtYXMtZGVmYXVsdC1tZW1iZXIgLS0gVGhlIGRlZmF1bHQgZXhwb3J0IG5hbWUgYF9kZWZhdWx0YCBpcyB0b28gY29uZnVzaW5nLlxuICAgICAgICAuLi50c2VzbGludC5jb25maWdzLnN0cmljdFR5cGVDaGVja2VkLFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0LXgvbm8tbmFtZWQtYXMtZGVmYXVsdC1tZW1iZXIgLS0gVGhlIGRlZmF1bHQgZXhwb3J0IG5hbWUgYF9kZWZhdWx0YCBpcyB0b28gY29uZnVzaW5nLlxuICAgICAgICAuLi50c2VzbGludC5jb25maWdzLnN0eWxpc3RpY1R5cGVDaGVja2VkXG4gICAgICBdLFxuICAgICAgZmlsZXM6IHR5cGVTY3JpcHRGaWxlcyxcbiAgICAgIGxhbmd1YWdlT3B0aW9uczoge1xuICAgICAgICBwYXJzZXJPcHRpb25zOiB7XG4gICAgICAgICAgZWNtYUZlYXR1cmVzOiB7XG4gICAgICAgICAgICBqc3g6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIHByb2plY3RTZXJ2aWNlOiB0cnVlLFxuICAgICAgICAgIHRzY29uZmlnUm9vdERpcjogZ2V0Um9vdEZvbGRlcigpID8/ICcnXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBydWxlczoge1xuICAgICAgICAnQHR5cGVzY3JpcHQtZXNsaW50L2V4cGxpY2l0LWZ1bmN0aW9uLXJldHVybi10eXBlJzogJ2Vycm9yJyxcbiAgICAgICAgJ0B0eXBlc2NyaXB0LWVzbGludC9leHBsaWNpdC1tZW1iZXItYWNjZXNzaWJpbGl0eSc6ICdlcnJvcicsXG4gICAgICAgICdAdHlwZXNjcmlwdC1lc2xpbnQvbm8taW52YWxpZC12b2lkLXR5cGUnOiBbJ2Vycm9yJywge1xuICAgICAgICAgIGFsbG93QXNUaGlzUGFyYW1ldGVyOiB0cnVlXG4gICAgICAgIH1dLFxuICAgICAgICAnQHR5cGVzY3JpcHQtZXNsaW50L25vLXRoaXMtYWxpYXMnOiBbJ2Vycm9yJywge1xuICAgICAgICAgIGFsbG93ZWROYW1lczogW1xuICAgICAgICAgICAgJ3RoYXQnXG4gICAgICAgICAgXVxuICAgICAgICB9XSxcbiAgICAgICAgJ0B0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFyZ3M6ICdhbGwnLFxuICAgICAgICAgICAgYXJnc0lnbm9yZVBhdHRlcm46ICdeXycsXG4gICAgICAgICAgICBjYXVnaHRFcnJvcnM6ICdhbGwnLFxuICAgICAgICAgICAgY2F1Z2h0RXJyb3JzSWdub3JlUGF0dGVybjogJ15fJyxcbiAgICAgICAgICAgIGRlc3RydWN0dXJlZEFycmF5SWdub3JlUGF0dGVybjogJ15fJyxcbiAgICAgICAgICAgIGlnbm9yZVJlc3RTaWJsaW5nczogdHJ1ZSxcbiAgICAgICAgICAgIHZhcnNJZ25vcmVQYXR0ZXJuOiAnXl8nXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICAnQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1yZWFkb25seSc6ICdlcnJvcicsXG4gICAgICAgICdvYnNpZGlhbi1kZXYtdXRpbHMvbm8tdXNlZC11bmRlcnNjb3JlLXBhcmFtcyc6ICdlcnJvcidcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGZpbGVzOiB0eXBlU2NyaXB0RmlsZXMsXG4gICAgICBwbHVnaW5zOiB7XG4gICAgICAgICdvYnNpZGlhbi1kZXYtdXRpbHMnOiB7XG4gICAgICAgICAgcnVsZXM6IHtcbiAgICAgICAgICAgICduby11c2VkLXVuZGVyc2NvcmUtcGFyYW1zJzogbm9Vc2VkVW5kZXJzY29yZVBhcmFtc1xuICAgICAgICAgIH1cbiAgICAgICAgfSBhcyBFU0xpbnQuUGx1Z2luXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBzZXR0aW5nczoge1xuICAgICAgICByZWFjdDoge1xuICAgICAgICAgIHZlcnNpb246ICdkZXRlY3QnXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG4vKiBlc2xpbnQtZW5hYmxlIG5vLW1hZ2ljLW51bWJlcnMgLS0gV2UgZGlzYWJsZWQgbWFnaWMgbnVtYmVycyBiZWNhdXNlIHRoZXkgYXJlIHVzZWQgYWxsIG92ZXIgdGhlIGNvbmZpZ3MuICovXG5cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFtQkEsT0FBTyxxQkFBcUI7QUFDNUIsU0FBUyx5QkFBeUI7QUFDbEMsT0FBTyxZQUFZO0FBRW5CLE9BQU8sZUFBZTtBQUN0QixTQUFTLHNDQUFzQztBQUMvQyxTQUFTLGVBQWUsc0NBQXNDO0FBRTlELE9BQU8sZ0JBQWdCO0FBQ3ZCLFNBQVMsV0FBVyw0QkFBNEI7QUFDaEQ7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxPQUFPLGFBQWE7QUFFcEIsT0FBTyxjQUFjO0FBRXJCLFNBQVMsK0JBQStCO0FBQ3hDLFNBQVMsWUFBWTtBQUNyQixTQUFTLHFCQUFxQjtBQUM5QixTQUFTLDhCQUE4QjtBQUtoQyxNQUFNLGtCQUFrQjtBQUFBLEVBQzdCLEtBQUssd0JBQXdCLE9BQU8sd0JBQXdCLFNBQVMsd0JBQXdCLEtBQUs7QUFBQSxFQUNsRyxLQUFLLHdCQUF3QixPQUFPLHdCQUF3QixTQUFTLHdCQUF3QixLQUFLO0FBQUEsRUFDbEcsS0FBSyx3QkFBd0IsS0FBSyx3QkFBd0IsU0FBUyx3QkFBd0IsS0FBSztBQUFBLEVBQ2hHLEtBQUssd0JBQXdCLEtBQUssd0JBQXdCLFNBQVMsd0JBQXdCLE1BQU07QUFBQSxFQUNqRyxLQUFLLHdCQUF3QixTQUFTLHdCQUF3QixTQUFTLHdC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
@@ -0,0 +1 @@
1
+ export * as no_used_underscore_params from './no-used-underscore-params.mjs';
@@ -0,0 +1,26 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+
6
+ (function initEsm() {
7
+ if (globalThis.process) {
8
+ return;
9
+ }
10
+
11
+ const browserProcess = {
12
+ browser: true,
13
+ cwd() {
14
+ return '/';
15
+ },
16
+ env: {},
17
+ platform: 'android'
18
+ };
19
+ globalThis.process = browserProcess;
20
+ })();
21
+
22
+ import * as no_used_underscore_params from "./no-used-underscore-params.mjs";
23
+ export {
24
+ no_used_underscore_params
25
+ };
26
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1ydWxlcy9pbmRleC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogVEhJUyBJUyBBIEdFTkVSQVRFRC9CVU5ETEVEIEZJTEUgQlkgQlVJTEQgU0NSSVBUICovXG5cbmV4cG9ydCAqIGFzIG5vX3VzZWRfdW5kZXJzY29yZV9wYXJhbXMgZnJvbSAnLi9uby11c2VkLXVuZGVyc2NvcmUtcGFyYW1zLnRzJztcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLFlBQVksK0JBQStCOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @packageDocumentation
3
+ *
4
+ * ESLint rule: no-used-underscore-params
5
+ *
6
+ * Reports an error when a parameter with a `_` prefix is actually
7
+ * referenced in the function body. The `_` prefix convention signals
8
+ * "this parameter is intentionally unused" — if it IS used, the
9
+ * prefix is misleading and should be removed.
10
+ */
11
+ import type { Rule } from 'eslint';
12
+ export declare const noUsedUnderscoreParams: Rule.RuleModule;
@@ -0,0 +1,68 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+
6
+ (function initEsm() {
7
+ if (globalThis.process) {
8
+ return;
9
+ }
10
+
11
+ const browserProcess = {
12
+ browser: true,
13
+ cwd() {
14
+ return '/';
15
+ },
16
+ env: {},
17
+ platform: 'android'
18
+ };
19
+ globalThis.process = browserProcess;
20
+ })();
21
+
22
+ const noUsedUnderscoreParams = {
23
+ create(context) {
24
+ return {
25
+ ":function"(node) {
26
+ const scope = context.sourceCode.getScope(node);
27
+ for (const variable of scope.variables) {
28
+ if (!variable.name.startsWith("_")) {
29
+ continue;
30
+ }
31
+ const defNode = variable.defs[0];
32
+ if (defNode?.type !== "Parameter") {
33
+ continue;
34
+ }
35
+ const funcBody = node.body;
36
+ const bodyRange = funcBody?.range;
37
+ const hasBodyReferences = variable.references.some((ref) => {
38
+ if (!ref.isRead()) {
39
+ return false;
40
+ }
41
+ if (bodyRange && ref.identifier.range) {
42
+ return ref.identifier.range[0] >= bodyRange[0] && ref.identifier.range[1] <= bodyRange[1];
43
+ }
44
+ return true;
45
+ });
46
+ if (hasBodyReferences) {
47
+ context.report({
48
+ data: { name: variable.name },
49
+ message: 'Parameter "{{ name }}" has a `_` prefix but is used. Remove the `_` prefix since the parameter is not unused (G10e).',
50
+ node: defNode.name
51
+ });
52
+ }
53
+ }
54
+ }
55
+ };
56
+ },
57
+ meta: {
58
+ docs: {
59
+ description: "Disallow `_`-prefixed parameters that are actually used in the function body"
60
+ },
61
+ schema: [],
62
+ type: "problem"
63
+ }
64
+ };
65
+ export {
66
+ noUsedUnderscoreParams
67
+ };
68
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1ydWxlcy9uby11c2VkLXVuZGVyc2NvcmUtcGFyYW1zLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIEVTTGludCBydWxlOiBuby11c2VkLXVuZGVyc2NvcmUtcGFyYW1zXG4gKlxuICogUmVwb3J0cyBhbiBlcnJvciB3aGVuIGEgcGFyYW1ldGVyIHdpdGggYSBgX2AgcHJlZml4IGlzIGFjdHVhbGx5XG4gKiByZWZlcmVuY2VkIGluIHRoZSBmdW5jdGlvbiBib2R5LiBUaGUgYF9gIHByZWZpeCBjb252ZW50aW9uIHNpZ25hbHNcbiAqIFwidGhpcyBwYXJhbWV0ZXIgaXMgaW50ZW50aW9uYWxseSB1bnVzZWRcIiBcdTIwMTQgaWYgaXQgSVMgdXNlZCwgdGhlXG4gKiBwcmVmaXggaXMgbWlzbGVhZGluZyBhbmQgc2hvdWxkIGJlIHJlbW92ZWQuXG4gKi9cbmltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gJ2VzbGludCc7XG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBFU0xpbnQgcnVsZSBtb2R1bGU7IGNvcnJlY3RuZXNzIGlzIHZlcmlmaWVkIGJ5IHJ1bm5pbmcgRVNMaW50LCBub3QgdW5pdCB0ZXN0cy4gKi9cblxuZXhwb3J0IGNvbnN0IG5vVXNlZFVuZGVyc2NvcmVQYXJhbXM6IFJ1bGUuUnVsZU1vZHVsZSA9IHtcbiAgY3JlYXRlKGNvbnRleHQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgJzpmdW5jdGlvbicobm9kZTogUnVsZS5Ob2RlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNjb3BlID0gY29udGV4dC5zb3VyY2VDb2RlLmdldFNjb3BlKG5vZGUpO1xuXG4gICAgICAgIGZvciAoY29uc3QgdmFyaWFibGUgb2Ygc2NvcGUudmFyaWFibGVzKSB7XG4gICAgICAgICAgaWYgKCF2YXJpYWJsZS5uYW1lLnN0YXJ0c1dpdGgoJ18nKSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gTXVzdCBiZSBhIHBhcmFtZXRlciAobm90IGEgbG9jYWwgdmFyaWFibGUpXG4gICAgICAgICAgY29uc3QgZGVmTm9kZSA9IHZhcmlhYmxlLmRlZnNbMF07XG4gICAgICAgICAgaWYgKGRlZk5vZGU/LnR5cGUgIT09ICdQYXJhbWV0ZXInKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgcGFyYW1ldGVyIGhhcyByZWZlcmVuY2VzIGluIHRoZSBmdW5jdGlvbiBib2R5IChub3QganVzdFxuICAgICAgICAgIC8vIEluIHRoZSByZXR1cm4gdHlwZSBhbm5vdGF0aW9uLCBlLmcuLCB0eXBlIHByZWRpY2F0ZXMgbGlrZSBgYXNzZXJ0cyBfb2JqIGlzIFRgKS5cbiAgICAgICAgICBjb25zdCBmdW5jQm9keSA9IChub2RlIGFzIHsgYm9keT86IFJ1bGUuTm9kZSB9KS5ib2R5O1xuICAgICAgICAgIGNvbnN0IGJvZHlSYW5nZSA9IGZ1bmNCb2R5Py5yYW5nZTtcbiAgICAgICAgICBjb25zdCBoYXNCb2R5UmVmZXJlbmNlcyA9IHZhcmlhYmxlLnJlZmVyZW5jZXMuc29tZSgocmVmKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXJlZi5pc1JlYWQoKSkge1xuICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBJZiB3ZSBjYW4gZGV0ZXJtaW5lIHRoZSBib2R5IHJhbmdlLCBvbmx5IGNvdW50IHJlZnMgaW5zaWRlIGl0XG4gICAgICAgICAgICBpZiAoYm9keVJhbmdlICYmIHJlZi5pZGVudGlmaWVyLnJhbmdlKSB7XG4gICAgICAgICAgICAgIHJldHVybiByZWYuaWRlbnRpZmllci5yYW5nZVswXSA+PSBib2R5UmFuZ2VbMF1cbiAgICAgICAgICAgICAgICAmJiByZWYuaWRlbnRpZmllci5yYW5nZVsxXSA8PSBib2R5UmFuZ2VbMV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBGYWxsYmFjazogY291bnQgYWxsIHJlYWRzXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAoaGFzQm9keVJlZmVyZW5jZXMpIHtcbiAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgICAgZGF0YTogeyBuYW1lOiB2YXJpYWJsZS5uYW1lIH0sXG4gICAgICAgICAgICAgIG1lc3NhZ2U6ICdQYXJhbWV0ZXIgXCJ7eyBuYW1lIH19XCIgaGFzIGEgYF9gIHByZWZpeCBidXQgaXMgdXNlZC4gUmVtb3ZlIHRoZSBgX2AgcHJlZml4IHNpbmNlIHRoZSBwYXJhbWV0ZXIgaXMgbm90IHVudXNlZCAoRzEwZSkuJyxcbiAgICAgICAgICAgICAgbm9kZTogZGVmTm9kZS5uYW1lXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9LFxuICBtZXRhOiB7XG4gICAgZG9jczoge1xuICAgICAgZGVzY3JpcHRpb246ICdEaXNhbGxvdyBgX2AtcHJlZml4ZWQgcGFyYW1ldGVycyB0aGF0IGFyZSBhY3R1YWxseSB1c2VkIGluIHRoZSBmdW5jdGlvbiBib2R5J1xuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgICB0eXBlOiAncHJvYmxlbSdcbiAgfVxufTtcblxuLyogdjggaWdub3JlIHN0b3AgKi9cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWNPLE1BQU0seUJBQTBDO0FBQUEsRUFDckQsT0FBTyxTQUFTO0FBQ2QsV0FBTztBQUFBLE1BQ0wsWUFBWSxNQUF1QjtBQUNqQyxjQUFNLFFBQVEsUUFBUSxXQUFXLFNBQVMsSUFBSTtBQUU5QyxtQkFBVyxZQUFZLE1BQU0sV0FBVztBQUN0QyxjQUFJLENBQUMsU0FBUyxLQUFLLFdBQVcsR0FBRyxHQUFHO0FBQ2xDO0FBQUEsVUFDRjtBQUdBLGdCQUFNLFVBQVUsU0FBUyxLQUFLLENBQUM7QUFDL0IsY0FBSSxTQUFTLFNBQVMsYUFBYTtBQUNqQztBQUFBLFVBQ0Y7QUFJQSxnQkFBTSxXQUFZLEtBQThCO0FBQ2hELGdCQUFNLFlBQVksVUFBVTtBQUM1QixnQkFBTSxvQkFBb0IsU0FBUyxXQUFXLEtBQUssQ0FBQyxRQUFRO0FBQzFELGdCQUFJLENBQUMsSUFBSSxPQUFPLEdBQUc7QUFDakIscUJBQU87QUFBQSxZQUNUO0FBRUEsZ0JBQUksYUFBYSxJQUFJLFdBQVcsT0FBTztBQUNyQyxxQkFBTyxJQUFJLFdBQVcsTUFBTSxDQUFDLEtBQUssVUFBVSxDQUFDLEtBQ3hDLElBQUksV0FBVyxNQUFNLENBQUMsS0FBSyxVQUFVLENBQUM7QUFBQSxZQUM3QztBQUVBLG1CQUFPO0FBQUEsVUFDVCxDQUFDO0FBQ0QsY0FBSSxtQkFBbUI7QUFDckIsb0JBQVEsT0FBTztBQUFBLGNBQ2IsTUFBTSxFQUFFLE1BQU0sU0FBUyxLQUFLO0FBQUEsY0FDNUIsU0FBUztBQUFBLGNBQ1QsTUFBTSxRQUFRO0FBQUEsWUFDaEIsQ0FBQztBQUFBLFVBQ0g7QUFBQSxRQUNGO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQUEsRUFDQSxNQUFNO0FBQUEsSUFDSixNQUFNO0FBQUEsTUFDSixhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0EsUUFBUSxDQUFDO0FBQUEsSUFDVCxNQUFNO0FBQUEsRUFDUjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -7,9 +7,11 @@
7
7
  declare module '@eslint-community/eslint-plugin-eslint-comments/configs' {
8
8
  import type { Linter } from 'eslint';
9
9
 
10
- const configs: {
10
+ interface EslintCommentsConfigs {
11
11
  recommended: Linter.Config;
12
- };
12
+ }
13
+
14
+ const configs: EslintCommentsConfigs;
13
15
  // eslint-disable-next-line import-x/no-default-export -- That is the way library exports.
14
16
  export default configs;
15
17
  }
@@ -6,9 +6,22 @@
6
6
  * This module provides a function to lint files based on the ESLint configuration defined in `eslint.config.ts`.
7
7
  * It can automatically fix linting issues if specified, and logs results to the console.
8
8
  */
9
+ /**
10
+ * Parameters for the {@link lint} function.
11
+ */
12
+ export interface LintParams {
13
+ /**
14
+ * Optional file paths to lint. If omitted, lints the entire project.
15
+ */
16
+ paths?: string[] | undefined;
17
+ /**
18
+ * Whether to fix linting issues automatically.
19
+ */
20
+ shouldFix?: boolean | undefined;
21
+ }
9
22
  /**
10
23
  * Lint the project with ESLint.
11
24
  *
12
- * @param shouldFix - Whether to fix linting issues automatically.
25
+ * @param params - The {@link LintParams}.
13
26
  */
14
- export declare function lint(shouldFix?: boolean): Promise<void>;
27
+ export declare function lint(params?: LintParams): Promise<void>;
@@ -19,6 +19,8 @@ if you want to view the source, please visit the github repository of this plugi
19
19
  globalThis.process = browserProcess;
20
20
  })();
21
21
 
22
+ import { existsSync } from "node:fs";
23
+ import { cp } from "node:fs/promises";
22
24
  import { getLibDebugger } from "../../debug.mjs";
23
25
  import { ObsidianPluginRepoPaths } from "../../obsidian/plugin/obsidian-plugin-repo-paths.mjs";
24
26
  import {
@@ -26,17 +28,14 @@ import {
26
28
  join
27
29
  } from "../../path.mjs";
28
30
  import { assertNonNullable } from "../../type-guards.mjs";
29
- import {
30
- cp,
31
- existsSync
32
- } from "../node-modules.mjs";
33
31
  import { ObsidianDevUtilsRepoPaths } from "../obsidian-dev-utils-repo-paths.mjs";
34
32
  import {
35
33
  execFromRoot,
36
34
  getRootFolder,
37
35
  resolvePathFromRootSafe
38
36
  } from "../root.mjs";
39
- async function lint(shouldFix) {
37
+ async function lint(params) {
38
+ const { paths, shouldFix } = params ?? {};
40
39
  const configFiles = [
41
40
  ObsidianPluginRepoPaths.EslintConfigJs,
42
41
  ObsidianPluginRepoPaths.EslintConfigMjs,
@@ -58,9 +57,10 @@ async function lint(shouldFix) {
58
57
  resolvePathFromRootSafe(ObsidianPluginRepoPaths.EslintConfigMts)
59
58
  );
60
59
  }
61
- await execFromRoot(["npx", "eslint", ...shouldFix ? ["--fix"] : [], ObsidianPluginRepoPaths.CurrentFolder]);
60
+ const targets = paths?.length ? paths : [ObsidianPluginRepoPaths.CurrentFolder];
61
+ await execFromRoot(["npx", "eslint", ...shouldFix ? ["--fix"] : [], { batchedArgs: targets }]);
62
62
  }
63
63
  export {
64
64
  lint
65
65
  };
66
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBMaW50aW5nIHV0aWxpdHkgZm9yIEVTTGludCBjb25maWd1cmF0aW9uIHdpdGggc3VwcG9ydCBmb3IgYXV0b21hdGljIGZpeGluZy5cbiAqXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyBhIGZ1bmN0aW9uIHRvIGxpbnQgZmlsZXMgYmFzZWQgb24gdGhlIEVTTGludCBjb25maWd1cmF0aW9uIGRlZmluZWQgaW4gYGVzbGludC5jb25maWcudHNgLlxuICogSXQgY2FuIGF1dG9tYXRpY2FsbHkgZml4IGxpbnRpbmcgaXNzdWVzIGlmIHNwZWNpZmllZCwgYW5kIGxvZ3MgcmVzdWx0cyB0byB0aGUgY29uc29sZS5cbiAqL1xuXG5pbXBvcnQgeyBnZXRMaWJEZWJ1Z2dlciB9IGZyb20gJy4uLy4uL2RlYnVnLnRzJztcbmltcG9ydCB7IE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzIH0gZnJvbSAnLi4vLi4vb2JzaWRpYW4vcGx1Z2luL29ic2lkaWFuLXBsdWdpbi1yZXBvLXBhdGhzLnRzJztcbmltcG9ydCB7XG4gIGdldEZvbGRlck5hbWUsXG4gIGpvaW5cbn0gZnJvbSAnLi4vLi4vcGF0aC50cyc7XG5pbXBvcnQgeyBhc3NlcnROb25OdWxsYWJsZSB9IGZyb20gJy4uLy4uL3R5cGUtZ3VhcmRzLnRzJztcbmltcG9ydCB7XG4gIGNwLFxuICBleGlzdHNTeW5jXG59IGZyb20gJy4uL25vZGUtbW9kdWxlcy50cyc7XG5pbXBvcnQgeyBPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzIH0gZnJvbSAnLi4vb2JzaWRpYW4tZGV2LXV0aWxzLXJlcG8tcGF0aHMudHMnO1xuaW1wb3J0IHtcbiAgZXhlY0Zyb21Sb290LFxuICBnZXRSb290Rm9sZGVyLFxuICByZXNvbHZlUGF0aEZyb21Sb290U2FmZVxufSBmcm9tICcuLi9yb290LnRzJztcblxuLyoqXG4gKiBMaW50IHRoZSBwcm9qZWN0IHdpdGggRVNMaW50LlxuICpcbiAqIEBwYXJhbSBzaG91bGRGaXggLSBXaGV0aGVyIHRvIGZpeCBsaW50aW5nIGlzc3VlcyBhdXRvbWF0aWNhbGx5LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbGludChzaG91bGRGaXg/OiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGNvbmZpZ0ZpbGVzID0gW1xuICAgIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkVzbGludENvbmZpZ0pzLFxuICAgIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkVzbGludENvbmZpZ01qcyxcbiAgICBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5Fc2xpbnRDb25maWdDanMsXG4gICAgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuRXNsaW50Q29uZmlnVHMsXG4gICAgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuRXNsaW50Q29uZmlnTXRzLFxuICAgIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkVzbGludENvbmZpZ0N0c1xuICBdO1xuXG4gIGNvbnN0IGNvbmZpZ0ZpbGVFeGlzdCA9IGNvbmZpZ0ZpbGVzLnNvbWUoKGNvbmZpZ0ZpbGUpID0+IHtcbiAgICBjb25zdCBjb25maWdGaWxlUGF0aCA9IHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKGNvbmZpZ0ZpbGUpO1xuICAgIHJldHVybiBleGlzdHNTeW5jKGNvbmZpZ0ZpbGVQYXRoKTtcbiAgfSk7XG5cbiAgaWYgKCFjb25maWdGaWxlRXhpc3QpIHtcbiAgICBnZXRMaWJEZWJ1Z2dlcignRVNMaW50OmxpbnQnKSgnRVNMaW50IGNvbmZpZ3VyYXRpb24gZmlsZSBub3QgZm91bmQuIENyZWF0aW5nIGRlZmF1bHQgY29uZmlnLi4uJyk7XG4gICAgY29uc3QgcGFja2FnZUZvbGRlciA9IGdldFJvb3RGb2xkZXIoZ2V0Rm9sZGVyTmFtZShpbXBvcnQubWV0YS51cmwpKTtcbiAgICBhc3NlcnROb25OdWxsYWJsZShwYWNrYWdlRm9sZGVyLCAnUGFja2FnZSBmb2xkZXIgbm90IGZvdW5kJyk7XG4gICAgYXdhaXQgY3AoXG4gICAgICBqb2luKHBhY2thZ2VGb2xkZXIsIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuRGlzdCwgT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5Fc2xpbnRDb25maWdNdHMpLFxuICAgICAgcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuRXNsaW50Q29uZmlnTXRzKVxuICAgICk7XG4gIH1cblxuICBhd2FpdCBleGVjRnJvbVJvb3QoWyducHgnLCAnZXNsaW50JywgLi4uKHNob3VsZEZpeCA/IFsnLS1maXgnXSA6IFtdKSwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQ3VycmVudEZvbGRlcl0pO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBU0EsU0FBUyxzQkFBc0I7QUFDL0IsU0FBUywrQkFBK0I7QUFDeEM7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLHlCQUF5QjtBQUNsQztBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsaUNBQWlDO0FBQzFDO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQU9QLGVBQXNCLEtBQUssV0FBb0M7QUFDN0QsUUFBTSxjQUFjO0FBQUEsSUFDbEIsd0JBQXdCO0FBQUEsSUFDeEIsd0JBQXdCO0FBQUEsSUFDeEIsd0JBQXdCO0FBQUEsSUFDeEIsd0JBQXdCO0FBQUEsSUFDeEIsd0JBQXdCO0FBQUEsSUFDeEIsd0JBQXdCO0FBQUEsRUFDMUI7QUFFQSxRQUFNLGtCQUFrQixZQUFZLEtBQUssQ0FBQyxlQUFlO0FBQ3ZELFVBQU0saUJBQWlCLHdCQUF3QixVQUFVO0FBQ3pELFdBQU8sV0FBVyxjQUFjO0FBQUEsRUFDbEMsQ0FBQztBQUVELE1BQUksQ0FBQyxpQkFBaUI7QUFDcEIsbUJBQWUsYUFBYSxFQUFFLGlFQUFpRTtBQUMvRixVQUFNLGdCQUFnQixjQUFjLGNBQWMsWUFBWSxHQUFHLENBQUM7QUFDbEUsc0JBQWtCLGVBQWUsMEJBQTBCO0FBQzNELFVBQU07QUFBQSxNQUNKLEtBQUssZUFBZSwwQkFBMEIsTUFBTSwwQkFBMEIsZUFBZTtBQUFBLE1BQzdGLHdCQUF3Qix3QkFBd0IsZUFBZTtBQUFBLElBQ2pFO0FBQUEsRUFDRjtBQUVBLFFBQU0sYUFBYSxDQUFDLE9BQU8sVUFBVSxHQUFJLFlBQVksQ0FBQyxPQUFPLElBQUksQ0FBQyxHQUFJLHdCQUF3QixhQUFhLENBQUM7QUFDOUc7IiwKICAibmFtZXMiOiBbXQp9Cg==
66
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBMaW50aW5nIHV0aWxpdHkgZm9yIEVTTGludCBjb25maWd1cmF0aW9uIHdpdGggc3VwcG9ydCBmb3IgYXV0b21hdGljIGZpeGluZy5cbiAqXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyBhIGZ1bmN0aW9uIHRvIGxpbnQgZmlsZXMgYmFzZWQgb24gdGhlIEVTTGludCBjb25maWd1cmF0aW9uIGRlZmluZWQgaW4gYGVzbGludC5jb25maWcudHNgLlxuICogSXQgY2FuIGF1dG9tYXRpY2FsbHkgZml4IGxpbnRpbmcgaXNzdWVzIGlmIHNwZWNpZmllZCwgYW5kIGxvZ3MgcmVzdWx0cyB0byB0aGUgY29uc29sZS5cbiAqL1xuXG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgeyBjcCB9IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuXG5pbXBvcnQgeyBnZXRMaWJEZWJ1Z2dlciB9IGZyb20gJy4uLy4uL2RlYnVnLnRzJztcbmltcG9ydCB7IE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzIH0gZnJvbSAnLi4vLi4vb2JzaWRpYW4vcGx1Z2luL29ic2lkaWFuLXBsdWdpbi1yZXBvLXBhdGhzLnRzJztcbmltcG9ydCB7XG4gIGdldEZvbGRlck5hbWUsXG4gIGpvaW5cbn0gZnJvbSAnLi4vLi4vcGF0aC50cyc7XG5pbXBvcnQgeyBhc3NlcnROb25OdWxsYWJsZSB9IGZyb20gJy4uLy4uL3R5cGUtZ3VhcmRzLnRzJztcbmltcG9ydCB7IE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMgfSBmcm9tICcuLi9vYnNpZGlhbi1kZXYtdXRpbHMtcmVwby1wYXRocy50cyc7XG5pbXBvcnQge1xuICBleGVjRnJvbVJvb3QsXG4gIGdldFJvb3RGb2xkZXIsXG4gIHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlXG59IGZyb20gJy4uL3Jvb3QudHMnO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHRoZSB7QGxpbmsgbGludH0gZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGludFBhcmFtcyB7XG4gIC8qKlxuICAgKiBPcHRpb25hbCBmaWxlIHBhdGhzIHRvIGxpbnQuIElmIG9taXR0ZWQsIGxpbnRzIHRoZSBlbnRpcmUgcHJvamVjdC5cbiAgICovXG4gIHBhdGhzPzogc3RyaW5nW10gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZml4IGxpbnRpbmcgaXNzdWVzIGF1dG9tYXRpY2FsbHkuXG4gICAqL1xuICBzaG91bGRGaXg/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIExpbnQgdGhlIHByb2plY3Qgd2l0aCBFU0xpbnQuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSB7QGxpbmsgTGludFBhcmFtc30uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsaW50KHBhcmFtcz86IExpbnRQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgeyBwYXRocywgc2hvdWxkRml4IH0gPSBwYXJhbXMgPz8ge307XG4gIGNvbnN0IGNvbmZpZ0ZpbGVzID0gW1xuICAgIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkVzbGludENvbmZpZ0pzLFxuICAgIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkVzbGludENvbmZpZ01qcyxcbiAgICBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5Fc2xpbnRDb25maWdDanMsXG4gICAgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuRXNsaW50Q29uZmlnVHMsXG4gICAgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuRXNsaW50Q29uZmlnTXRzLFxuICAgIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkVzbGludENvbmZpZ0N0c1xuICBdO1xuXG4gIGNvbnN0IGNvbmZpZ0ZpbGVFeGlzdCA9IGNvbmZpZ0ZpbGVzLnNvbWUoKGNvbmZpZ0ZpbGUpID0+IHtcbiAgICBjb25zdCBjb25maWdGaWxlUGF0aCA9IHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKGNvbmZpZ0ZpbGUpO1xuICAgIHJldHVybiBleGlzdHNTeW5jKGNvbmZpZ0ZpbGVQYXRoKTtcbiAgfSk7XG5cbiAgaWYgKCFjb25maWdGaWxlRXhpc3QpIHtcbiAgICBnZXRMaWJEZWJ1Z2dlcignRVNMaW50OmxpbnQnKSgnRVNMaW50IGNvbmZpZ3VyYXRpb24gZmlsZSBub3QgZm91bmQuIENyZWF0aW5nIGRlZmF1bHQgY29uZmlnLi4uJyk7XG4gICAgY29uc3QgcGFja2FnZUZvbGRlciA9IGdldFJvb3RGb2xkZXIoZ2V0Rm9sZGVyTmFtZShpbXBvcnQubWV0YS51cmwpKTtcbiAgICBhc3NlcnROb25OdWxsYWJsZShwYWNrYWdlRm9sZGVyLCAnUGFja2FnZSBmb2xkZXIgbm90IGZvdW5kJyk7XG4gICAgYXdhaXQgY3AoXG4gICAgICBqb2luKHBhY2thZ2VGb2xkZXIsIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuRGlzdCwgT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5Fc2xpbnRDb25maWdNdHMpLFxuICAgICAgcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuRXNsaW50Q29uZmlnTXRzKVxuICAgICk7XG4gIH1cblxuICAvKiB2OCBpZ25vcmUgc3RhcnQgLS0gVGhlIHBhdGhzLXByb3ZpZGVkIGJyYW5jaCBpcyBvbmx5IGV4ZXJjaXNlZCBieSBjb25zdW1lciBwcm9qZWN0cyBwYXNzaW5nIGZpbGUgbGlzdHMuICovXG4gIGNvbnN0IHRhcmdldHMgPSBwYXRocz8ubGVuZ3RoID8gcGF0aHMgOiBbT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQ3VycmVudEZvbGRlcl07XG4gIC8qIHY4IGlnbm9yZSBzdG9wICovXG4gIGF3YWl0IGV4ZWNGcm9tUm9vdChbJ25weCcsICdlc2xpbnQnLCAuLi4oc2hvdWxkRml4ID8gWyctLWZpeCddIDogW10pLCB7IGJhdGNoZWRBcmdzOiB0YXJnZXRzIH1dKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVNBLFNBQVMsa0JBQWtCO0FBQzNCLFNBQVMsVUFBVTtBQUVuQixTQUFTLHNCQUFzQjtBQUMvQixTQUFTLCtCQUErQjtBQUN4QztBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMseUJBQXlCO0FBQ2xDLFNBQVMsaUNBQWlDO0FBQzFDO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQXNCUCxlQUFzQixLQUFLLFFBQW9DO0FBQzdELFFBQU0sRUFBRSxPQUFPLFVBQVUsSUFBSSxVQUFVLENBQUM7QUFDeEMsUUFBTSxjQUFjO0FBQUEsSUFDbEIsd0JBQXdCO0FBQUEsSUFDeEIsd0JBQXdCO0FBQUEsSUFDeEIsd0JBQXdCO0FBQUEsSUFDeEIsd0JBQXdCO0FBQUEsSUFDeEIsd0JBQXdCO0FBQUEsSUFDeEIsd0JBQXdCO0FBQUEsRUFDMUI7QUFFQSxRQUFNLGtCQUFrQixZQUFZLEtBQUssQ0FBQyxlQUFlO0FBQ3ZELFVBQU0saUJBQWlCLHdCQUF3QixVQUFVO0FBQ3pELFdBQU8sV0FBVyxjQUFjO0FBQUEsRUFDbEMsQ0FBQztBQUVELE1BQUksQ0FBQyxpQkFBaUI7QUFDcEIsbUJBQWUsYUFBYSxFQUFFLGlFQUFpRTtBQUMvRixVQUFNLGdCQUFnQixjQUFjLGNBQWMsWUFBWSxHQUFHLENBQUM7QUFDbEUsc0JBQWtCLGVBQWUsMEJBQTBCO0FBQzNELFVBQU07QUFBQSxNQUNKLEtBQUssZUFBZSwwQkFBMEIsTUFBTSwwQkFBMEIsZUFBZTtBQUFBLE1BQzdGLHdCQUF3Qix3QkFBd0IsZUFBZTtBQUFBLElBQ2pFO0FBQUEsRUFDRjtBQUdBLFFBQU0sVUFBVSxPQUFPLFNBQVMsUUFBUSxDQUFDLHdCQUF3QixhQUFhO0FBRTlFLFFBQU0sYUFBYSxDQUFDLE9BQU8sVUFBVSxHQUFJLFlBQVksQ0FBQyxPQUFPLElBQUksQ0FBQyxHQUFJLEVBQUUsYUFBYSxRQUFRLENBQUMsQ0FBQztBQUNqRzsiLAogICJuYW1lcyI6IFtdCn0K
@@ -1,5 +1,6 @@
1
1
  export * as cspell from './cspell.mjs';
2
2
  export * as eslint_config from './eslint-config.mjs';
3
+ export * as eslint_rules from './eslint-rules/index.mjs';
3
4
  export * as eslint from './eslint.mjs';
4
5
  export * as markdownlint_cli2_config from './markdownlint-cli2-config.mjs';
5
6
  export * as markdownlint from './markdownlint.mjs';
@@ -21,6 +21,7 @@ if you want to view the source, please visit the github repository of this plugi
21
21
 
22
22
  import * as cspell from "./cspell.mjs";
23
23
  import * as eslint_config from "./eslint-config.mjs";
24
+ import * as eslint_rules from "./eslint-rules/index.mjs";
24
25
  import * as eslint from "./eslint.mjs";
25
26
  import * as markdownlint_cli2_config from "./markdownlint-cli2-config.mjs";
26
27
  import * as markdownlint from "./markdownlint.mjs";
@@ -28,7 +29,8 @@ export {
28
29
  cspell,
29
30
  eslint,
30
31
  eslint_config,
32
+ eslint_rules,
31
33
  markdownlint,
32
34
  markdownlint_cli2_config
33
35
  };
34
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgY3NwZWxsIGZyb20gJy4vY3NwZWxsLnRzJztcbmV4cG9ydCAqIGFzIGVzbGludF9jb25maWcgZnJvbSAnLi9lc2xpbnQtY29uZmlnLnRzJztcbmV4cG9ydCAqIGFzIGVzbGludCBmcm9tICcuL2VzbGludC50cyc7XG5leHBvcnQgKiBhcyBtYXJrZG93bmxpbnRfY2xpMl9jb25maWcgZnJvbSAnLi9tYXJrZG93bmxpbnQtY2xpMi1jb25maWcudHMnO1xuZXhwb3J0ICogYXMgbWFya2Rvd25saW50IGZyb20gJy4vbWFya2Rvd25saW50LnRzJztcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLFlBQVksWUFBWTtBQUN4QixZQUFZLG1CQUFtQjtBQUMvQixZQUFZLFlBQVk7QUFDeEIsWUFBWSw4QkFBOEI7QUFDMUMsWUFBWSxrQkFBa0I7IiwKICAibmFtZXMiOiBbXQp9Cg==
36
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgY3NwZWxsIGZyb20gJy4vY3NwZWxsLnRzJztcbmV4cG9ydCAqIGFzIGVzbGludF9jb25maWcgZnJvbSAnLi9lc2xpbnQtY29uZmlnLnRzJztcbmV4cG9ydCAqIGFzIGVzbGludF9ydWxlcyBmcm9tICcuL2VzbGludC1ydWxlcy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyBlc2xpbnQgZnJvbSAnLi9lc2xpbnQudHMnO1xuZXhwb3J0ICogYXMgbWFya2Rvd25saW50X2NsaTJfY29uZmlnIGZyb20gJy4vbWFya2Rvd25saW50LWNsaTItY29uZmlnLnRzJztcbmV4cG9ydCAqIGFzIG1hcmtkb3dubGludCBmcm9tICcuL21hcmtkb3dubGludC50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxZQUFZLFlBQVk7QUFDeEIsWUFBWSxtQkFBbUI7QUFDL0IsWUFBWSxrQkFBa0I7QUFDOUIsWUFBWSxZQUFZO0FBQ3hCLFlBQVksOEJBQThCO0FBQzFDLFlBQVksa0JBQWtCOyIsCiAgIm5hbWVzIjogW10KfQo=