@mnaoumov/obsidian-dev-toolkit 1.1.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (232) hide show
  1. package/dist/demo-vault-helper/main.js +179 -1
  2. package/dist/integration-test-plugin/main.js +1232 -1023
  3. package/dist/integration-test-plugin/manifest.json +2 -2
  4. package/dist/lib/cjs/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.cjs +3 -22
  5. package/dist/lib/cjs/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.d.cts +1 -1
  6. package/dist/lib/cjs/bundlers/esbuild-impl/dependency.cjs +2 -21
  7. package/dist/lib/cjs/bundlers/esbuild-impl/dependency.d.cts +1 -1
  8. package/dist/lib/cjs/bundlers/esbuild-impl/fix-source-maps-plugin.cjs +2 -21
  9. package/dist/lib/cjs/bundlers/esbuild-impl/fix-source-maps-plugin.d.cts +1 -1
  10. package/dist/lib/cjs/bundlers/esbuild-impl/index.cjs +7 -53
  11. package/dist/lib/cjs/bundlers/esbuild-impl/index.d.cts +1 -1
  12. package/dist/lib/cjs/bundlers/esbuild-impl/obsidian-plugin-builder.cjs +4 -23
  13. package/dist/lib/cjs/bundlers/esbuild-impl/obsidian-plugin-builder.d.cts +1 -1
  14. package/dist/lib/cjs/bundlers/esbuild-impl/preprocess-plugin.cjs +2 -21
  15. package/dist/lib/cjs/bundlers/esbuild-impl/preprocess-plugin.d.cts +1 -1
  16. package/dist/lib/cjs/bundlers/esbuild-impl/rename-css-plugin.cjs +2 -21
  17. package/dist/lib/cjs/bundlers/esbuild-impl/rename-css-plugin.d.cts +1 -1
  18. package/dist/lib/cjs/bundlers/esbuild.cjs +1 -47
  19. package/dist/lib/cjs/bundlers/esbuild.d.cts +1 -1
  20. package/dist/lib/cjs/bundlers/index.cjs +3 -49
  21. package/dist/lib/cjs/bundlers/index.d.cts +1 -1
  22. package/dist/lib/cjs/demo-vault-app-json.cjs +2 -21
  23. package/dist/lib/cjs/demo-vault-app-json.d.cts +1 -1
  24. package/dist/lib/cjs/demo-vault-buttons.cjs +3 -22
  25. package/dist/lib/cjs/demo-vault-buttons.d.cts +1 -1
  26. package/dist/lib/cjs/demo-vault-coverage.cjs +2 -21
  27. package/dist/lib/cjs/demo-vault-coverage.d.cts +1 -1
  28. package/dist/lib/cjs/demo-vault.cjs +3 -22
  29. package/dist/lib/cjs/demo-vault.d.cts +1 -1
  30. package/dist/lib/cjs/docs-site/index.cjs +118 -0
  31. package/dist/lib/cjs/docs-site/index.d.cts +2 -0
  32. package/dist/lib/cjs/docs-site/obsidian-external-type-links.cjs +119 -0
  33. package/dist/lib/cjs/docs-site/obsidian-external-type-links.d.cts +25 -0
  34. package/dist/lib/cjs/formatters/dprint.cjs +2 -21
  35. package/dist/lib/cjs/formatters/dprint.d.cts +1 -1
  36. package/dist/lib/cjs/formatters/index.cjs +2 -48
  37. package/dist/lib/cjs/formatters/index.d.cts +1 -1
  38. package/dist/lib/cjs/index.cjs +15 -58
  39. package/dist/lib/cjs/index.d.cts +1 -0
  40. package/dist/lib/cjs/integration-test-setup.cjs +1 -47
  41. package/dist/lib/cjs/integration-test-setup.d.cts +5 -5
  42. package/dist/lib/cjs/integration-test-vitest-global-setup.cjs +3 -22
  43. package/dist/lib/cjs/integration-test-vitest-global-setup.d.cts +7 -7
  44. package/dist/lib/cjs/jest-setup.cjs +2 -21
  45. package/dist/lib/cjs/jest-setup.d.cts +1 -1
  46. package/dist/lib/cjs/library-references.d.cts +2 -0
  47. package/dist/lib/cjs/linters/eslint-config.cjs +24 -40
  48. package/dist/lib/cjs/linters/eslint-config.d.cts +1 -1
  49. package/dist/lib/cjs/linters/eslint-rules/index.cjs +16 -62
  50. package/dist/lib/cjs/linters/eslint-rules/index.d.cts +2 -2
  51. package/dist/lib/cjs/linters/eslint-rules/manifest-description.cjs +1 -47
  52. package/dist/lib/cjs/linters/eslint-rules/manifest-description.d.cts +1 -1
  53. package/dist/lib/cjs/linters/eslint-rules/manifest-helpers.cjs +3 -22
  54. package/dist/lib/cjs/linters/eslint-rules/manifest-helpers.d.cts +1 -1
  55. package/dist/lib/cjs/linters/eslint-rules/manifest-id.cjs +1 -47
  56. package/dist/lib/cjs/linters/eslint-rules/manifest-id.d.cts +1 -1
  57. package/dist/lib/cjs/linters/eslint-rules/manifest-name.cjs +1 -47
  58. package/dist/lib/cjs/linters/eslint-rules/manifest-name.d.cts +1 -1
  59. package/dist/lib/cjs/linters/eslint-rules/manifest-schema.cjs +1 -47
  60. package/dist/lib/cjs/linters/eslint-rules/manifest-schema.d.cts +1 -1
  61. package/dist/lib/cjs/linters/eslint-rules/no-local-obsidian-internals.cjs +2 -21
  62. package/dist/lib/cjs/linters/eslint-rules/no-local-obsidian-internals.d.cts +1 -1
  63. package/dist/lib/cjs/linters/eslint-rules/no-over-cap-wait-in-eval-in-obsidian.cjs +2 -21
  64. package/dist/lib/cjs/linters/eslint-rules/no-over-cap-wait-in-eval-in-obsidian.d.cts +1 -1
  65. package/dist/lib/cjs/linters/eslint-rules/no-untrusted-input-events.cjs +2 -21
  66. package/dist/lib/cjs/linters/eslint-rules/no-untrusted-input-events.d.cts +1 -1
  67. package/dist/lib/cjs/linters/eslint-rules/obsidian-dev-toolkit-plugin.cjs +136 -0
  68. package/dist/lib/cjs/linters/eslint-rules/obsidian-dev-toolkit-plugin.d.cts +16 -0
  69. package/dist/lib/cjs/linters/eslint-rules/plugin-name-as-code-in-ui.cjs +1 -47
  70. package/dist/lib/cjs/linters/eslint-rules/plugin-name-as-code-in-ui.d.cts +1 -1
  71. package/dist/lib/cjs/linters/eslint-rules/plugin-name-as-code.cjs +1 -47
  72. package/dist/lib/cjs/linters/eslint-rules/plugin-name-as-code.d.cts +1 -1
  73. package/dist/lib/cjs/linters/eslint-rules/require-component-suffix.cjs +2 -21
  74. package/dist/lib/cjs/linters/eslint-rules/require-component-suffix.d.cts +1 -1
  75. package/dist/lib/cjs/linters/eslint-rules/require-plugin-api-contract-schemas.cjs +2 -21
  76. package/dist/lib/cjs/linters/eslint-rules/require-plugin-api-contract-schemas.d.cts +1 -1
  77. package/dist/lib/cjs/linters/eslint.cjs +2 -21
  78. package/dist/lib/cjs/linters/eslint.d.cts +1 -1
  79. package/dist/lib/cjs/linters/index.cjs +9 -55
  80. package/dist/lib/cjs/linters/index.d.cts +1 -1
  81. package/dist/lib/cjs/linters/markdownlint-cli2-config.cjs +2 -21
  82. package/dist/lib/cjs/linters/markdownlint-cli2-config.d.cts +1 -1
  83. package/dist/lib/cjs/linters/markdownlint-rules/index.cjs +2 -48
  84. package/dist/lib/cjs/linters/markdownlint-rules/index.d.cts +1 -1
  85. package/dist/lib/cjs/linters/markdownlint-rules/plugin-name-as-code.cjs +2 -48
  86. package/dist/lib/cjs/linters/markdownlint-rules/plugin-name-as-code.d.cts +1 -1
  87. package/dist/lib/cjs/linters/markdownlint.cjs +2 -21
  88. package/dist/lib/cjs/linters/markdownlint.d.cts +1 -1
  89. package/dist/lib/cjs/linters/obsidianmd-rule-custom-message.cjs +1 -47
  90. package/dist/lib/cjs/linters/obsidianmd-rule-custom-message.d.cts +1 -1
  91. package/dist/lib/cjs/linters/plugin-names.cjs +1 -47
  92. package/dist/lib/cjs/linters/plugin-names.d.cts +1 -1
  93. package/dist/lib/cjs/obsidian-plugin-repo-paths.cjs +1 -47
  94. package/dist/lib/cjs/obsidian-plugin-repo-paths.d.cts +1 -1
  95. package/dist/lib/cjs/setup.cjs +2 -21
  96. package/dist/lib/cjs/setup.d.cts +1 -1
  97. package/dist/lib/cjs/templates.cjs +2 -21
  98. package/dist/lib/cjs/templates.d.cts +1 -1
  99. package/dist/lib/cjs/test-runners/index.cjs +4 -50
  100. package/dist/lib/cjs/test-runners/index.d.cts +1 -1
  101. package/dist/lib/cjs/test-runners/integration-test-plugin.cjs +9 -28
  102. package/dist/lib/cjs/test-runners/integration-test-plugin.d.cts +5 -5
  103. package/dist/lib/cjs/test-runners/performance-eval-cap.cjs +1 -47
  104. package/dist/lib/cjs/test-runners/performance-eval-cap.d.cts +1 -1
  105. package/dist/lib/cjs/test-runners/stale-build-global-setup.cjs +2 -21
  106. package/dist/lib/cjs/test-runners/stale-build-global-setup.d.cts +1 -1
  107. package/dist/lib/cjs/test-runners/vitest-config.cjs +6 -25
  108. package/dist/lib/cjs/test-runners/vitest-config.d.cts +2 -3
  109. package/dist/lib/cjs/version.cjs +2 -21
  110. package/dist/lib/cjs/version.d.cts +1 -1
  111. package/dist/lib/cjs/vitest-setup.cjs +2 -21
  112. package/dist/lib/cjs/vitest-setup.d.cts +1 -1
  113. package/dist/lib/esm/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.d.mts +1 -1
  114. package/dist/lib/esm/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.mjs +2 -11
  115. package/dist/lib/esm/bundlers/esbuild-impl/dependency.d.mts +1 -1
  116. package/dist/lib/esm/bundlers/esbuild-impl/dependency.mjs +2 -11
  117. package/dist/lib/esm/bundlers/esbuild-impl/fix-source-maps-plugin.d.mts +1 -1
  118. package/dist/lib/esm/bundlers/esbuild-impl/fix-source-maps-plugin.mjs +2 -11
  119. package/dist/lib/esm/bundlers/esbuild-impl/index.d.mts +1 -1
  120. package/dist/lib/esm/bundlers/esbuild-impl/index.mjs +1 -37
  121. package/dist/lib/esm/bundlers/esbuild-impl/obsidian-plugin-builder.d.mts +1 -1
  122. package/dist/lib/esm/bundlers/esbuild-impl/obsidian-plugin-builder.mjs +2 -11
  123. package/dist/lib/esm/bundlers/esbuild-impl/preprocess-plugin.d.mts +1 -1
  124. package/dist/lib/esm/bundlers/esbuild-impl/preprocess-plugin.mjs +2 -11
  125. package/dist/lib/esm/bundlers/esbuild-impl/rename-css-plugin.d.mts +1 -1
  126. package/dist/lib/esm/bundlers/esbuild-impl/rename-css-plugin.mjs +2 -11
  127. package/dist/lib/esm/bundlers/esbuild.d.mts +1 -1
  128. package/dist/lib/esm/bundlers/esbuild.mjs +1 -37
  129. package/dist/lib/esm/bundlers/index.d.mts +1 -1
  130. package/dist/lib/esm/bundlers/index.mjs +1 -37
  131. package/dist/lib/esm/demo-vault-app-json.d.mts +1 -1
  132. package/dist/lib/esm/demo-vault-app-json.mjs +2 -11
  133. package/dist/lib/esm/demo-vault-buttons.d.mts +1 -1
  134. package/dist/lib/esm/demo-vault-buttons.mjs +2 -11
  135. package/dist/lib/esm/demo-vault-coverage.d.mts +1 -1
  136. package/dist/lib/esm/demo-vault-coverage.mjs +2 -11
  137. package/dist/lib/esm/demo-vault.d.mts +1 -1
  138. package/dist/lib/esm/demo-vault.mjs +3 -12
  139. package/dist/lib/esm/docs-site/index.d.mts +2 -0
  140. package/dist/lib/esm/docs-site/index.mjs +10 -0
  141. package/dist/lib/esm/docs-site/obsidian-external-type-links.d.mts +25 -0
  142. package/dist/lib/esm/docs-site/obsidian-external-type-links.mjs +21 -0
  143. package/dist/lib/esm/formatters/dprint.d.mts +1 -1
  144. package/dist/lib/esm/formatters/dprint.mjs +2 -11
  145. package/dist/lib/esm/formatters/index.d.mts +1 -1
  146. package/dist/lib/esm/formatters/index.mjs +1 -37
  147. package/dist/lib/esm/index.d.mts +1 -0
  148. package/dist/lib/esm/index.mjs +3 -37
  149. package/dist/lib/esm/integration-test-setup.d.mts +5 -5
  150. package/dist/lib/esm/integration-test-setup.mjs +1 -37
  151. package/dist/lib/esm/integration-test-vitest-global-setup.d.mts +7 -7
  152. package/dist/lib/esm/integration-test-vitest-global-setup.mjs +4 -13
  153. package/dist/lib/esm/jest-setup.d.mts +1 -1
  154. package/dist/lib/esm/jest-setup.mjs +2 -11
  155. package/dist/lib/esm/library-references.d.mts +2 -0
  156. package/dist/lib/esm/linters/eslint-config.d.mts +1 -1
  157. package/dist/lib/esm/linters/eslint-config.mjs +23 -29
  158. package/dist/lib/esm/linters/eslint-rules/index.d.mts +2 -2
  159. package/dist/lib/esm/linters/eslint-rules/index.mjs +3 -39
  160. package/dist/lib/esm/linters/eslint-rules/manifest-description.d.mts +1 -1
  161. package/dist/lib/esm/linters/eslint-rules/manifest-description.mjs +1 -37
  162. package/dist/lib/esm/linters/eslint-rules/manifest-helpers.d.mts +1 -1
  163. package/dist/lib/esm/linters/eslint-rules/manifest-helpers.mjs +2 -11
  164. package/dist/lib/esm/linters/eslint-rules/manifest-id.d.mts +1 -1
  165. package/dist/lib/esm/linters/eslint-rules/manifest-id.mjs +1 -37
  166. package/dist/lib/esm/linters/eslint-rules/manifest-name.d.mts +1 -1
  167. package/dist/lib/esm/linters/eslint-rules/manifest-name.mjs +1 -37
  168. package/dist/lib/esm/linters/eslint-rules/manifest-schema.d.mts +1 -1
  169. package/dist/lib/esm/linters/eslint-rules/manifest-schema.mjs +1 -37
  170. package/dist/lib/esm/linters/eslint-rules/no-local-obsidian-internals.d.mts +1 -1
  171. package/dist/lib/esm/linters/eslint-rules/no-local-obsidian-internals.mjs +2 -11
  172. package/dist/lib/esm/linters/eslint-rules/no-over-cap-wait-in-eval-in-obsidian.d.mts +1 -1
  173. package/dist/lib/esm/linters/eslint-rules/no-over-cap-wait-in-eval-in-obsidian.mjs +2 -11
  174. package/dist/lib/esm/linters/eslint-rules/no-untrusted-input-events.d.mts +1 -1
  175. package/dist/lib/esm/linters/eslint-rules/no-untrusted-input-events.mjs +2 -11
  176. package/dist/lib/esm/linters/eslint-rules/obsidian-dev-toolkit-plugin.d.mts +16 -0
  177. package/dist/lib/esm/linters/eslint-rules/obsidian-dev-toolkit-plugin.mjs +37 -0
  178. package/dist/lib/esm/linters/eslint-rules/plugin-name-as-code-in-ui.d.mts +1 -1
  179. package/dist/lib/esm/linters/eslint-rules/plugin-name-as-code-in-ui.mjs +1 -37
  180. package/dist/lib/esm/linters/eslint-rules/plugin-name-as-code.d.mts +1 -1
  181. package/dist/lib/esm/linters/eslint-rules/plugin-name-as-code.mjs +1 -37
  182. package/dist/lib/esm/linters/eslint-rules/require-component-suffix.d.mts +1 -1
  183. package/dist/lib/esm/linters/eslint-rules/require-component-suffix.mjs +2 -11
  184. package/dist/lib/esm/linters/eslint-rules/require-plugin-api-contract-schemas.d.mts +1 -1
  185. package/dist/lib/esm/linters/eslint-rules/require-plugin-api-contract-schemas.mjs +2 -11
  186. package/dist/lib/esm/linters/eslint.d.mts +1 -1
  187. package/dist/lib/esm/linters/eslint.mjs +2 -11
  188. package/dist/lib/esm/linters/index.d.mts +1 -1
  189. package/dist/lib/esm/linters/index.mjs +1 -37
  190. package/dist/lib/esm/linters/markdownlint-cli2-config.d.mts +1 -1
  191. package/dist/lib/esm/linters/markdownlint-cli2-config.mjs +2 -11
  192. package/dist/lib/esm/linters/markdownlint-rules/index.d.mts +1 -1
  193. package/dist/lib/esm/linters/markdownlint-rules/index.mjs +1 -37
  194. package/dist/lib/esm/linters/markdownlint-rules/plugin-name-as-code.d.mts +1 -1
  195. package/dist/lib/esm/linters/markdownlint-rules/plugin-name-as-code.mjs +1 -37
  196. package/dist/lib/esm/linters/markdownlint.d.mts +1 -1
  197. package/dist/lib/esm/linters/markdownlint.mjs +2 -11
  198. package/dist/lib/esm/linters/obsidianmd-rule-custom-message.d.mts +1 -1
  199. package/dist/lib/esm/linters/obsidianmd-rule-custom-message.mjs +1 -37
  200. package/dist/lib/esm/linters/plugin-names.d.mts +1 -1
  201. package/dist/lib/esm/linters/plugin-names.mjs +1 -37
  202. package/dist/lib/esm/obsidian-plugin-repo-paths.d.mts +1 -1
  203. package/dist/lib/esm/obsidian-plugin-repo-paths.mjs +1 -37
  204. package/dist/lib/esm/setup.d.mts +1 -1
  205. package/dist/lib/esm/setup.mjs +2 -11
  206. package/dist/lib/esm/templates.d.mts +1 -1
  207. package/dist/lib/esm/templates.mjs +2 -11
  208. package/dist/lib/esm/test-runners/index.d.mts +1 -1
  209. package/dist/lib/esm/test-runners/index.mjs +1 -37
  210. package/dist/lib/esm/test-runners/integration-test-plugin.d.mts +5 -5
  211. package/dist/lib/esm/test-runners/integration-test-plugin.mjs +8 -17
  212. package/dist/lib/esm/test-runners/performance-eval-cap.d.mts +1 -1
  213. package/dist/lib/esm/test-runners/performance-eval-cap.mjs +1 -37
  214. package/dist/lib/esm/test-runners/stale-build-global-setup.d.mts +1 -1
  215. package/dist/lib/esm/test-runners/stale-build-global-setup.mjs +2 -11
  216. package/dist/lib/esm/test-runners/vitest-config.d.mts +2 -3
  217. package/dist/lib/esm/test-runners/vitest-config.mjs +5 -14
  218. package/dist/lib/esm/version.d.mts +1 -1
  219. package/dist/lib/esm/version.mjs +2 -11
  220. package/dist/lib/esm/vitest-setup.d.mts +1 -1
  221. package/dist/lib/esm/vitest-setup.mjs +2 -11
  222. package/dist/templates/dprint.json +1 -0
  223. package/dist/templates/scripts/commitlint-config.ts +2 -2
  224. package/docs-site/index/package.json +6 -0
  225. package/docs-site/obsidian-external-type-links/package.json +6 -0
  226. package/docs-site/package.json +6 -0
  227. package/linters/eslint-rules/{obsidian-dev-utils-plugin → obsidian-dev-toolkit-plugin}/package.json +3 -3
  228. package/package.json +37 -6
  229. package/dist/lib/cjs/linters/eslint-rules/obsidian-dev-utils-plugin.cjs +0 -181
  230. package/dist/lib/cjs/linters/eslint-rules/obsidian-dev-utils-plugin.d.cts +0 -13
  231. package/dist/lib/esm/linters/eslint-rules/obsidian-dev-utils-plugin.d.mts +0 -13
  232. package/dist/lib/esm/linters/eslint-rules/obsidian-dev-utils-plugin.mjs +0 -73
@@ -2,13 +2,7 @@
2
2
  THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
3
  if you want to view the source, please visit the github repository of this plugin
4
4
  */
5
-
6
5
  (function () {
7
- function ensureDisposeSymbols(symbolConstructor = Symbol) {
8
- symbolConstructor.asyncDispose ??= symbolConstructor.for("Symbol.asyncDispose");
9
- symbolConstructor.dispose ??= symbolConstructor.for("Symbol.dispose");
10
- }
11
-
12
6
  function ensureBrowserProcess() {
13
7
  const browserProcess = {
14
8
  browser: true,
@@ -33,10 +27,7 @@ function ensureBrowserProcess() {
33
27
  existingProcessRecord["browser"] = true;
34
28
  }
35
29
 
36
- (function initEsm() {
37
- ensureDisposeSymbols();
38
- ensureBrowserProcess();
39
- })();
30
+ ensureBrowserProcess();
40
31
  })();
41
32
 
42
33
  import { readdirPosix } from "@mnaoumov/typescript-dev-toolkit/fs";
@@ -157,4 +148,4 @@ export {
157
148
  parseVersionArguments,
158
149
  updateVersion
159
150
  };
160
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3ZlcnNpb24udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBSZWxlYXNlcyBhbiBPYnNpZGlhbiBwbHVnaW46IHRoZSBnZW5lcmljIHJlbGVhc2UgZnJvbSBgQG1uYW91bW92L3R5cGVzY3JpcHQtZGV2LXRvb2xraXQvdmVyc2lvbmAsIHBsdXMgd2hhdCBvbmx5IGFcbiAqIHBsdWdpbiBoYXMgXHUyMDE0IGBtYW5pZmVzdC5qc29uYCAoYW5kIGBtYW5pZmVzdC1iZXRhLmpzb25gIGZvciBhIHByZS1yZWxlYXNlKSBhbmQgYHZlcnNpb25zLmpzb25gIGJ1bXBlZCB3aXRoIHRoZVxuICogcGx1Z2luJ3MgYG1pbkFwcFZlcnNpb25gLCB0aGUgdXBkYXRlZCBtYW5pZmVzdCBjb3BpZWQgaW50byBgZGlzdC9idWlsZGAsIHRoZSBkZW1vIHZhdWx0IGFyY2hpdmVkIGFzIGEgcmVsZWFzZVxuICogYXNzZXQsIGFuZCB0aGUgZmlsZXMgaW4gYGRpc3QvYnVpbGRgIGF0dGFjaGVkIHRvIHRoZSBHaXRIdWIgcmVsZWFzZSBpbnN0ZWFkIG9mIGFuIGBucG0gcGFja2AgdGFyYmFsbC5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIFBhcnNlZFZlcnNpb25Bcmd1bWVudHMgYXMgR2VuZXJpY1BhcnNlZFZlcnNpb25Bcmd1bWVudHMsXG4gIFVwZGF0ZVZlcnNpb25PcHRpb25zIGFzIEdlbmVyaWNVcGRhdGVWZXJzaW9uT3B0aW9uc1xufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1kZXYtdG9vbGtpdC92ZXJzaW9uJztcblxuaW1wb3J0IHsgcmVhZGRpclBvc2l4IH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtZGV2LXRvb2xraXQvZnMnO1xuaW1wb3J0IHsgZWRpdEpzb24gfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1kZXYtdG9vbGtpdC9qc29uJztcbmltcG9ydCB7IHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtZGV2LXRvb2xraXQvcm9vdCc7XG5pbXBvcnQge1xuICBpc1ByZVJlbGVhc2UsXG4gIHRvVXBkYXRlVmVyc2lvbk9wdGlvbnMsXG4gIHVwZGF0ZVZlcnNpb24gYXMgdXBkYXRlVmVyc2lvbkdlbmVyaWMsXG4gIFZFUlNJT05fQVJHVU1FTlRfT1BUSU9OU1xufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1kZXYtdG9vbGtpdC92ZXJzaW9uJztcbmltcG9ydCB7IGpvaW4gfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvcGF0aCc7XG5pbXBvcnQgeyBlbnN1cmVOb25OdWxsYWJsZSB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90eXBlLWd1YXJkcyc7XG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQge1xuICBjcCxcbiAgcm1cbn0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcyc7XG5pbXBvcnQgeyBwYXJzZUFyZ3MgfSBmcm9tICdub2RlOnV0aWwnO1xuXG5pbXBvcnQgeyBhcmNoaXZlUGx1Z2luRGVtb1ZhdWx0IH0gZnJvbSAnLi9kZW1vLXZhdWx0LnRzJztcbmltcG9ydCB7IE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzIH0gZnJvbSAnLi9vYnNpZGlhbi1wbHVnaW4tcmVwby1wYXRocy50cyc7XG5cbi8qKlxuICogVHlwZSByZXByZXNlbnRpbmcgdGhlIHN0cnVjdHVyZSBvZiBPYnNpZGlhbidzIGBkZXNrdG9wLXJlbGVhc2VzLmpzb25gIGZlZWQuXG4gKlxuICogVGhpcyBpcyB0aGUgZmVlZCB0aGUgZGVza3RvcCBhcHAgaXRzZWxmIHVwZGF0ZXMgZnJvbSwgc28gaXQgaXMgdGhlIG9ubHkgc291cmNlIHRoYXQgc3RhdGVzIGEgdmVyc2lvblxuICogZGVza3RvcCB1c2VycyBjYW4gYWN0dWFsbHkgcnVuLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlc2t0b3BSZWxlYXNlc0pzb24ge1xuICAvKipcbiAgICogVGhlIGxhdGVzdCBPYnNpZGlhbiB2ZXJzaW9uIGF2YWlsYWJsZSBmb3IgZGVza3RvcC5cbiAgICovXG4gIGxhdGVzdFZlcnNpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBUeXBlIHJlcHJlc2VudGluZyB0aGUgbWFuaWZlc3QgZmlsZSBmb3JtYXQgZm9yIE9ic2lkaWFuIHBsdWdpbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFuaWZlc3Qge1xuICAvKipcbiAgICogQSBtaW5pbXVtIE9ic2lkaWFuIHZlcnNpb24gcmVxdWlyZWQgZm9yIHRoZSBwbHVnaW4uXG4gICAqL1xuICBtaW5BcHBWZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgdmVyc2lvbiBvZiB0aGUgcGx1Z2luLlxuICAgKi9cbiAgdmVyc2lvbjogc3RyaW5nO1xufVxuLyoqXG4gKiBUaGUgcmVzdWx0IG9mIHBhcnNpbmcgdGhlIGNvbW1hbmQtbGluZSBhcmd1bWVudHMgZm9yIGEgcGx1Z2luIHJlbGVhc2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFyc2VkVmVyc2lvbkFyZ3VtZW50cyBleHRlbmRzIEdlbmVyaWNQYXJzZWRWZXJzaW9uQXJndW1lbnRzIHtcbiAgLyoqXG4gICAqIFRoZSB7QGxpbmsgVXBkYXRlVmVyc2lvbk9wdGlvbnN9IHBhcnNlZCBmcm9tIHRoZSBmbGFncy5cbiAgICovXG4gIHJlYWRvbmx5IG9wdGlvbnM6IFVwZGF0ZVZlcnNpb25PcHRpb25zO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayB1cGRhdGVWZXJzaW9ufTogdGhlIGdlbmVyaWMgcmVsZWFzZSBvcHRpb25zIHBsdXMgdGhlIHBsdWdpbidzIG93bi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVWZXJzaW9uT3B0aW9ucyBleHRlbmRzIEdlbmVyaWNVcGRhdGVWZXJzaW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBbiBleHBsaWNpdCBgbWluQXBwVmVyc2lvbmAgdG8gd3JpdGUgaW50byB0aGUgcGx1Z2luJ3MgYG1hbmlmZXN0Lmpzb25gIGFuZCBpdHMgbmV3IGB2ZXJzaW9ucy5qc29uYFxuICAgKiBlbnRyeS4gV2hlbiBzZXQsIGl0IGlzIHVzZWQgdmVyYmF0aW0gYW5kIHRoZSBsYXRlc3QgT2JzaWRpYW4gZGVza3RvcCB2ZXJzaW9uIGlzIG5vdCBmZXRjaGVkIGF0IGFsbC5cbiAgICpcbiAgICogU2V0IHRoaXMgd2hlbiB0aGUgcGx1Z2luIGhhcyBhIGtub3duIG1pbmltdW0gaXQgYWN0dWFsbHkgcmVxdWlyZXMsIHJhdGhlciB0aGFuIHRyYWNraW5nIHdoYXRldmVyXG4gICAqIE9ic2lkaWFuIHJlbGVhc2VkIG1vc3QgcmVjZW50bHkuIE9ubHkgYXBwbGllcyB0byBub24tcHJlLXJlbGVhc2UgdmVyc2lvbnMgKGEgcHJlLXJlbGVhc2UgY29waWVzIHRoZVxuICAgKiBleGlzdGluZyBgbWFuaWZlc3QuanNvbmAgYW5kIG5ldmVyIHdyaXRlcyBgbWluQXBwVmVyc2lvbmApLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0aGUgbGF0ZXN0IE9ic2lkaWFuIGRlc2t0b3AgdmVyc2lvblxuICAgKi9cbiAgcmVhZG9ubHkgbWluQXBwVmVyc2lvbj86IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogV2hldGhlciB0byBhcmNoaXZlIHRoZSBwbHVnaW4ncyBkZW1vIHZhdWx0IChgZGVtby12YXVsdC9gIGluIHRoZSByZXBvIHJvb3QpIGFzIGEgcmVsZWFzZSBhcnRpZmFjdC4gSWdub3JlZFxuICAgKiB3aGVuIHRoZSByZXBvIGhhcyBubyBgZGVtby12YXVsdC9gIGZvbGRlci5cbiAgICpcbiAgICogQGRlZmF1bHQgYHRydWVgXG4gICAqL1xuICByZWFkb25seSBzaG91bGRBcmNoaXZlRGVtb1ZhdWx0PzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBUaGUgZmVlZCB0aGUgT2JzaWRpYW4gZGVza3RvcCBhcHAgdXBkYXRlcyBmcm9tLlxuICpcbiAqIERlbGliZXJhdGVseSBOT1QgdGhlIEdpdEh1YiBgcmVsZWFzZXMvbGF0ZXN0YCBBUEk6IHRoYXQgZW5kcG9pbnQgcmV0dXJucyB0aGUgbmV3ZXN0IHJlbGVhc2Ugb2YgYW55IGtpbmRcbiAqIGluIGBvYnNpZGlhbm1kL29ic2lkaWFuLXJlbGVhc2VzYCwgaW5jbHVkaW5nIG9uZSB3aG9zZSBvbmx5IGFzc2V0IGlzIHRoZSBBbmRyb2lkIEFQSywgd2hpY2ggbm8gZGVza3RvcFxuICogdXNlciBjYW4gaW5zdGFsbC4gU2VlIHtAbGluayBnZXRMYXRlc3RPYnNpZGlhblZlcnNpb259LlxuICovXG5jb25zdCBERVNLVE9QX1JFTEVBU0VTX0pTT05fVVJMID0gJ2h0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9vYnNpZGlhbm1kL29ic2lkaWFuLXJlbGVhc2VzL21hc3Rlci9kZXNrdG9wLXJlbGVhc2VzLmpzb24nO1xuXG4vKipcbiAqIENvcGllcyB0aGUgdXBkYXRlZCBtYW5pZmVzdCBmaWxlIHRvIHRoZSBkaXN0cmlidXRpb24gYnVpbGQgZm9sZGVyLlxuICpcbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgY29weSBvcGVyYXRpb24gaXMgY29tcGxldGUuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjb3B5VXBkYXRlZE1hbmlmZXN0KCk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBjcChcbiAgICByZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7IHBhdGg6IE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hbmlmZXN0SnNvbiB9KSxcbiAgICByZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7IHBhdGg6IGpvaW4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuRGlzdEJ1aWxkLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5NYW5pZmVzdEpzb24pIH0pLFxuICAgIHsgZm9yY2U6IHRydWUgfVxuICApO1xufVxuXG4vKipcbiAqIFBhcnNlcyB0aGUgY29tbWFuZC1saW5lIGFyZ3VtZW50cyBmb3IgYSBwbHVnaW4gcmVsZWFzZTogZXZlcnkgZmxhZyB0aGUgZ2VuZXJpYyBgcGFyc2VWZXJzaW9uQXJndW1lbnRzYFxuICogcmVjb2duaXplcywgcGx1cyB0d28gb2YgdGhlIHBsdWdpbidzIG93bjpcbiAqIC0gYC0tbWluLWFwcC12ZXJzaW9uPTx4Lnkuej5gIFx1MjAxNCB3cml0ZSB0aGlzIGBtaW5BcHBWZXJzaW9uYCBpbnRvIHRoZSBwbHVnaW4ncyBgbWFuaWZlc3QuanNvbmAgYW5kIGl0cyBuZXdcbiAqICAgYHZlcnNpb25zLmpzb25gIGVudHJ5IGluc3RlYWQgb2YgdHJhY2tpbmcgdGhlIGxhdGVzdCBPYnNpZGlhbiBkZXNrdG9wIHZlcnNpb24uXG4gKiAtIGAtLW5vLWRlbW8tdmF1bHRgIFx1MjAxNCBza2lwIGFyY2hpdmluZyB0aGUgcGx1Z2luJ3MgZGVtbyB2YXVsdCAoYGRlbW8tdmF1bHQvYCkgYXMgYSByZWxlYXNlIGFydGlmYWN0LlxuICpcbiAqIEBwYXJhbSAkYXJndW1lbnRzIC0gVGhlIGNvbW1hbmQtbGluZSBhcmd1bWVudHMgdG8gcGFyc2UgKHR5cGljYWxseSBgcHJvY2Vzcy5hcmd2LnNsaWNlKDIpYCkuXG4gKiBAcmV0dXJucyBUaGUge0BsaW5rIFBhcnNlZFZlcnNpb25Bcmd1bWVudHN9IGNvbnRhaW5pbmcgdGhlIHZlcnNpb24gdXBkYXRlIHR5cGUgYW5kIHRoZSBvcHRpb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VWZXJzaW9uQXJndW1lbnRzKCRhcmd1bWVudHM6IHN0cmluZ1tdKTogUGFyc2VkVmVyc2lvbkFyZ3VtZW50cyB7XG4gIGNvbnN0IHsgcG9zaXRpb25hbHMsIHZhbHVlcyB9ID0gcGFyc2VBcmdzKHtcbiAgICBhbGxvd1Bvc2l0aW9uYWxzOiB0cnVlLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL25hbWUtcmVwbGFjZW1lbnRzIC0tIGBhcmdzYCBpcyB0aGUgb3B0aW9uIG5hbWUgTm9kZSdzIGBwYXJzZUFyZ3NgIHJlYWRzLlxuICAgIGFyZ3M6ICRhcmd1bWVudHMsXG4gICAgb3B0aW9uczoge1xuICAgICAgLi4uVkVSU0lPTl9BUkdVTUVOVF9PUFRJT05TLFxuICAgICAgJ21pbi1hcHAtdmVyc2lvbic6IHsgdHlwZTogJ3N0cmluZycgfSxcbiAgICAgICduby1kZW1vLXZhdWx0JzogeyB0eXBlOiAnYm9vbGVhbicgfVxuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHtcbiAgICBvcHRpb25zOiB7XG4gICAgICAuLi50b1VwZGF0ZVZlcnNpb25PcHRpb25zKHZhbHVlcyksXG4gICAgICBtaW5BcHBWZXJzaW9uOiB2YWx1ZXNbJ21pbi1hcHAtdmVyc2lvbiddLFxuICAgICAgc2hvdWxkQXJjaGl2ZURlbW9WYXVsdDogISh2YWx1ZXNbJ25vLWRlbW8tdmF1bHQnXSA/PyBmYWxzZSlcbiAgICB9LFxuICAgIHZlcnNpb25VcGRhdGVUeXBlOiBwb3NpdGlvbmFsc1swXVxuICB9O1xufVxuXG4vKipcbiAqIFJlbGVhc2VzIHRoZSBwbHVnaW4uIFNlZSB0aGUgYEBmaWxlYCBvdmVydmlldyBmb3Igd2hhdCBpdCBhZGRzIHRvIHRoZSBnZW5lcmljIHJlbGVhc2UuXG4gKlxuICogQHBhcmFtIHZlcnNpb25VcGRhdGVUeXBlIC0gVGhlIHR5cGUgb2YgdmVyc2lvbiB1cGRhdGUgdG8gcGVyZm9ybSAobWFqb3IsIG1pbm9yLCBwYXRjaCwgcHJlbWFqb3IsIHByZW1pbm9yLCBwcmVwYXRjaCwgcHJlcmVsZWFzZSwgb3IgeC55LnpbLXN1ZmZpeF0pLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUge0BsaW5rIFVwZGF0ZVZlcnNpb25PcHRpb25zfSBjb250cm9sbGluZyB0aGUgcmVsZWFzZSBiZWhhdmlvci5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgcmVsZWFzZSBpcyBjb21wbGV0ZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVwZGF0ZVZlcnNpb24odmVyc2lvblVwZGF0ZVR5cGU/OiBzdHJpbmcsIG9wdGlvbnM6IFVwZGF0ZVZlcnNpb25PcHRpb25zID0ge30pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3Qge1xuICAgIG1pbkFwcFZlcnNpb24sXG4gICAgcHJlcGFyZUdpdEh1YlJlbGVhc2UsXG4gICAgc2hvdWxkQXJjaGl2ZURlbW9WYXVsdCA9IHRydWUsXG4gICAgLi4uZ2VuZXJpY09wdGlvbnNcbiAgfSA9IG9wdGlvbnM7XG5cbiAgYXdhaXQgdXBkYXRlVmVyc2lvbkdlbmVyaWModmVyc2lvblVwZGF0ZVR5cGUsIHtcbiAgICAuLi5nZW5lcmljT3B0aW9ucyxcbiAgICBnZXRSZWxlYXNlQXNzZXRQYXRoczogZ2V0UGx1Z2luUmVsZWFzZUFzc2V0UGF0aHMsXG4gICAgYXN5bmMgcHJlcGFyZUdpdEh1YlJlbGVhc2UobmV3VmVyc2lvbjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICBhd2FpdCBwcmVwYXJlR2l0SHViUmVsZWFzZT8uKG5ld1ZlcnNpb24pO1xuICAgICAgaWYgKHNob3VsZEFyY2hpdmVEZW1vVmF1bHQpIHtcbiAgICAgICAgYXdhaXQgYXJjaGl2ZVBsdWdpbkRlbW9WYXVsdCgpO1xuICAgICAgfVxuICAgIH0sXG4gICAgYXN5bmMgdXBkYXRlVmVyc2lvbkluRXh0cmFGaWxlcyhuZXdWZXJzaW9uOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgIGF3YWl0IHVwZGF0ZVZlcnNpb25JbkZpbGVzRm9yUGx1Z2luKG5ld1ZlcnNpb24sIG1pbkFwcFZlcnNpb24pO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogRmV0Y2hlcyB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgT2JzaWRpYW4gdGhhdCB0aGUgZGVza3RvcCBhcHAgY2FuIGFjdHVhbGx5IHJ1bi5cbiAqXG4gKiBSZWFkcyB7QGxpbmsgREVTS1RPUF9SRUxFQVNFU19KU09OX1VSTH0sIG5vdCB0aGUgR2l0SHViIGByZWxlYXNlcy9sYXRlc3RgIEFQSS4gVGhlIEFQSSByZXR1cm5zIHRoZSBuZXdlc3RcbiAqIHJlbGVhc2Ugb2YgQU5ZIGtpbmQsIHNvIHdoZW5ldmVyIGEgbW9iaWxlLW9ubHkgcmVsZWFzZSAoYW4gQVBLLW9ubHkgYXNzZXQpIGlzIG5ld2VyIHRoYW4gdGhlIGRlc2t0b3Agb25lLFxuICogaXQgcmVwb3J0cyBhIHZlcnNpb24gdGhhdCBkb2VzIG5vdCBleGlzdCBmb3IgZGVza3RvcC4gQSBwbHVnaW4gcmVsZWFzZWQgaW4gdGhhdCB3aW5kb3cgZ2V0cyBhXG4gKiBgbWluQXBwVmVyc2lvbmAgbm8gZGVza3RvcCB1c2VyIGNhbiBzYXRpc2Z5LCBhbmQgT2JzaWRpYW4gc2lsZW50bHkga2VlcHMgb2ZmZXJpbmcgdGhlbSB0aGUgcHJldmlvdXNcbiAqIHJlbGVhc2UgaW5zdGVhZCBcdTIwMTQgdGhlIHJlbGVhc2Ugc3VjY2VlZHMgYW5kIHJlYWNoZXMgbm9ib2R5LlxuICpcbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIGxhdGVzdCBPYnNpZGlhbiB2ZXJzaW9uIGF2YWlsYWJsZSBmb3IgZGVza3RvcC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ2V0TGF0ZXN0T2JzaWRpYW5WZXJzaW9uKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLWdsb2JhbHMgLS0gV2UgcnVuIHRoaXMgb3V0c2lkZSBvZiBPYnNpZGlhbiwgc28gd2UgZG9uJ3QgaGF2ZSBgcmVxdWVzdFVybCgpYC5cbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChERVNLVE9QX1JFTEVBU0VTX0pTT05fVVJMKTtcbiAgY29uc3QgZGVza3RvcFJlbGVhc2VzSnNvbiA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKSBhcyBQYXJ0aWFsPERlc2t0b3BSZWxlYXNlc0pzb24+O1xuICByZXR1cm4gZW5zdXJlTm9uTnVsbGFibGUoZGVza3RvcFJlbGVhc2VzSnNvbi5sYXRlc3RWZXJzaW9uLCAnQ291bGQgbm90IGZpbmQgdGhlIGxhdGVzdCBkZXNrdG9wIE9ic2lkaWFuIHZlcnNpb24nKTtcbn1cbi8qKlxuICogVGhlIHBsdWdpbidzIHJlbGVhc2UgYXNzZXRzOiBldmVyeSBmaWxlIGluIGBkaXN0L2J1aWxkYC5cbiAqXG4gKiBAcmV0dXJucyBUaGUgYXNzZXQgcGF0aHMuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGdldFBsdWdpblJlbGVhc2VBc3NldFBhdGhzKCk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgY29uc3QgYnVpbGRGb2xkZXIgPSByZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7IHBhdGg6IE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkRpc3RCdWlsZCB9KTtcbiAgY29uc3QgZmlsZU5hbWVzID0gYXdhaXQgcmVhZGRpclBvc2l4KGJ1aWxkRm9sZGVyKTtcbiAgcmV0dXJuIGZpbGVOYW1lcy5tYXAoKGZpbGVOYW1lKSA9PiBqb2luKGJ1aWxkRm9sZGVyLCBmaWxlTmFtZSkpO1xufVxuXG5hc3luYyBmdW5jdGlvbiB1cGRhdGVWZXJzaW9uSW5GaWxlc0ZvclBsdWdpbihuZXdWZXJzaW9uOiBzdHJpbmcsIG1pbkFwcFZlcnNpb246IHN0cmluZyB8IHVuZGVmaW5lZCk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBtYW5pZmVzdEJldGFKc29uUGF0aCA9IHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKHsgcGF0aDogT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTWFuaWZlc3RCZXRhSnNvbiB9KTtcbiAgaWYgKGlzUHJlUmVsZWFzZShuZXdWZXJzaW9uKSkge1xuICAgIGF3YWl0IGNwKFxuICAgICAgcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoeyBwYXRoOiBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5NYW5pZmVzdEpzb24gfSksXG4gICAgICBtYW5pZmVzdEJldGFKc29uUGF0aCxcbiAgICAgIHsgZm9yY2U6IHRydWUgfVxuICAgICk7XG4gICAgYXdhaXQgZWRpdEpzb248TWFuaWZlc3Q+KHtcbiAgICAgIGVkaXRGdW5jdGlvbjogKG1hbmlmZXN0KSA9PiB7XG4gICAgICAgIG1hbmlmZXN0LnZlcnNpb24gPSBuZXdWZXJzaW9uO1xuICAgICAgfSxcbiAgICAgIHBhdGg6IE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hbmlmZXN0QmV0YUpzb25cbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCByZXNvbHZlZE1pbkFwcFZlcnNpb24gPSBtaW5BcHBWZXJzaW9uID8/IGF3YWl0IGdldExhdGVzdE9ic2lkaWFuVmVyc2lvbigpO1xuXG4gICAgYXdhaXQgZWRpdEpzb248TWFuaWZlc3Q+KHtcbiAgICAgIGVkaXRGdW5jdGlvbjogKG1hbmlmZXN0KSA9PiB7XG4gICAgICAgIG1hbmlmZXN0Lm1pbkFwcFZlcnNpb24gPSByZXNvbHZlZE1pbkFwcFZlcnNpb247XG4gICAgICAgIG1hbmlmZXN0LnZlcnNpb24gPSBuZXdWZXJzaW9uO1xuICAgICAgfSxcbiAgICAgIHBhdGg6IE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hbmlmZXN0SnNvblxuICAgIH0pO1xuXG4gICAgYXdhaXQgZWRpdEpzb248UmVjb3JkPHN0cmluZywgc3RyaW5nPj4oe1xuICAgICAgZWRpdEZ1bmN0aW9uOiAodmVyc2lvbnMpID0+IHtcbiAgICAgICAgdmVyc2lvbnNbbmV3VmVyc2lvbl0gPSByZXNvbHZlZE1pbkFwcFZlcnNpb247XG4gICAgICB9LFxuICAgICAgcGF0aDogT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuVmVyc2lvbnNKc29uXG4gICAgfSk7XG5cbiAgICBpZiAoZXhpc3RzU3luYyhtYW5pZmVzdEJldGFKc29uUGF0aCkpIHtcbiAgICAgIGF3YWl0IHJtKG1hbmlmZXN0QmV0YUpzb25QYXRoKTtcbiAgICB9XG4gIH1cblxuICBhd2FpdCBjb3B5VXBkYXRlZE1hbmlmZXN0KCk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztB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
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJzaW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBSZWxlYXNlcyBhbiBPYnNpZGlhbiBwbHVnaW46IHRoZSBnZW5lcmljIHJlbGVhc2UgZnJvbSBgQG1uYW91bW92L3R5cGVzY3JpcHQtZGV2LXRvb2xraXQvdmVyc2lvbmAsIHBsdXMgd2hhdCBvbmx5IGFcbiAqIHBsdWdpbiBoYXMg4oCUIGBtYW5pZmVzdC5qc29uYCAoYW5kIGBtYW5pZmVzdC1iZXRhLmpzb25gIGZvciBhIHByZS1yZWxlYXNlKSBhbmQgYHZlcnNpb25zLmpzb25gIGJ1bXBlZCB3aXRoIHRoZVxuICogcGx1Z2luJ3MgYG1pbkFwcFZlcnNpb25gLCB0aGUgdXBkYXRlZCBtYW5pZmVzdCBjb3BpZWQgaW50byBgZGlzdC9idWlsZGAsIHRoZSBkZW1vIHZhdWx0IGFyY2hpdmVkIGFzIGEgcmVsZWFzZVxuICogYXNzZXQsIGFuZCB0aGUgZmlsZXMgaW4gYGRpc3QvYnVpbGRgIGF0dGFjaGVkIHRvIHRoZSBHaXRIdWIgcmVsZWFzZSBpbnN0ZWFkIG9mIGFuIGBucG0gcGFja2AgdGFyYmFsbC5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIFBhcnNlZFZlcnNpb25Bcmd1bWVudHMgYXMgR2VuZXJpY1BhcnNlZFZlcnNpb25Bcmd1bWVudHMsXG4gIFVwZGF0ZVZlcnNpb25PcHRpb25zIGFzIEdlbmVyaWNVcGRhdGVWZXJzaW9uT3B0aW9uc1xufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1kZXYtdG9vbGtpdC92ZXJzaW9uJztcblxuaW1wb3J0IHsgcmVhZGRpclBvc2l4IH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtZGV2LXRvb2xraXQvZnMnO1xuaW1wb3J0IHsgZWRpdEpzb24gfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1kZXYtdG9vbGtpdC9qc29uJztcbmltcG9ydCB7IHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtZGV2LXRvb2xraXQvcm9vdCc7XG5pbXBvcnQge1xuICBpc1ByZVJlbGVhc2UsXG4gIHRvVXBkYXRlVmVyc2lvbk9wdGlvbnMsXG4gIHVwZGF0ZVZlcnNpb24gYXMgdXBkYXRlVmVyc2lvbkdlbmVyaWMsXG4gIFZFUlNJT05fQVJHVU1FTlRfT1BUSU9OU1xufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1kZXYtdG9vbGtpdC92ZXJzaW9uJztcbmltcG9ydCB7IGpvaW4gfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvcGF0aCc7XG5pbXBvcnQgeyBlbnN1cmVOb25OdWxsYWJsZSB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90eXBlLWd1YXJkcyc7XG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQge1xuICBjcCxcbiAgcm1cbn0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcyc7XG5pbXBvcnQgeyBwYXJzZUFyZ3MgfSBmcm9tICdub2RlOnV0aWwnO1xuXG5pbXBvcnQgeyBhcmNoaXZlUGx1Z2luRGVtb1ZhdWx0IH0gZnJvbSAnLi9kZW1vLXZhdWx0LnRzJztcbmltcG9ydCB7IE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzIH0gZnJvbSAnLi9vYnNpZGlhbi1wbHVnaW4tcmVwby1wYXRocy50cyc7XG5cbi8qKlxuICogVHlwZSByZXByZXNlbnRpbmcgdGhlIHN0cnVjdHVyZSBvZiBPYnNpZGlhbidzIGBkZXNrdG9wLXJlbGVhc2VzLmpzb25gIGZlZWQuXG4gKlxuICogVGhpcyBpcyB0aGUgZmVlZCB0aGUgZGVza3RvcCBhcHAgaXRzZWxmIHVwZGF0ZXMgZnJvbSwgc28gaXQgaXMgdGhlIG9ubHkgc291cmNlIHRoYXQgc3RhdGVzIGEgdmVyc2lvblxuICogZGVza3RvcCB1c2VycyBjYW4gYWN0dWFsbHkgcnVuLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlc2t0b3BSZWxlYXNlc0pzb24ge1xuICAvKipcbiAgICogVGhlIGxhdGVzdCBPYnNpZGlhbiB2ZXJzaW9uIGF2YWlsYWJsZSBmb3IgZGVza3RvcC5cbiAgICovXG4gIGxhdGVzdFZlcnNpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBUeXBlIHJlcHJlc2VudGluZyB0aGUgbWFuaWZlc3QgZmlsZSBmb3JtYXQgZm9yIE9ic2lkaWFuIHBsdWdpbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFuaWZlc3Qge1xuICAvKipcbiAgICogQSBtaW5pbXVtIE9ic2lkaWFuIHZlcnNpb24gcmVxdWlyZWQgZm9yIHRoZSBwbHVnaW4uXG4gICAqL1xuICBtaW5BcHBWZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgdmVyc2lvbiBvZiB0aGUgcGx1Z2luLlxuICAgKi9cbiAgdmVyc2lvbjogc3RyaW5nO1xufVxuLyoqXG4gKiBUaGUgcmVzdWx0IG9mIHBhcnNpbmcgdGhlIGNvbW1hbmQtbGluZSBhcmd1bWVudHMgZm9yIGEgcGx1Z2luIHJlbGVhc2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFyc2VkVmVyc2lvbkFyZ3VtZW50cyBleHRlbmRzIEdlbmVyaWNQYXJzZWRWZXJzaW9uQXJndW1lbnRzIHtcbiAgLyoqXG4gICAqIFRoZSB7QGxpbmsgVXBkYXRlVmVyc2lvbk9wdGlvbnN9IHBhcnNlZCBmcm9tIHRoZSBmbGFncy5cbiAgICovXG4gIHJlYWRvbmx5IG9wdGlvbnM6IFVwZGF0ZVZlcnNpb25PcHRpb25zO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayB1cGRhdGVWZXJzaW9ufTogdGhlIGdlbmVyaWMgcmVsZWFzZSBvcHRpb25zIHBsdXMgdGhlIHBsdWdpbidzIG93bi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVWZXJzaW9uT3B0aW9ucyBleHRlbmRzIEdlbmVyaWNVcGRhdGVWZXJzaW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBbiBleHBsaWNpdCBgbWluQXBwVmVyc2lvbmAgdG8gd3JpdGUgaW50byB0aGUgcGx1Z2luJ3MgYG1hbmlmZXN0Lmpzb25gIGFuZCBpdHMgbmV3IGB2ZXJzaW9ucy5qc29uYFxuICAgKiBlbnRyeS4gV2hlbiBzZXQsIGl0IGlzIHVzZWQgdmVyYmF0aW0gYW5kIHRoZSBsYXRlc3QgT2JzaWRpYW4gZGVza3RvcCB2ZXJzaW9uIGlzIG5vdCBmZXRjaGVkIGF0IGFsbC5cbiAgICpcbiAgICogU2V0IHRoaXMgd2hlbiB0aGUgcGx1Z2luIGhhcyBhIGtub3duIG1pbmltdW0gaXQgYWN0dWFsbHkgcmVxdWlyZXMsIHJhdGhlciB0aGFuIHRyYWNraW5nIHdoYXRldmVyXG4gICAqIE9ic2lkaWFuIHJlbGVhc2VkIG1vc3QgcmVjZW50bHkuIE9ubHkgYXBwbGllcyB0byBub24tcHJlLXJlbGVhc2UgdmVyc2lvbnMgKGEgcHJlLXJlbGVhc2UgY29waWVzIHRoZVxuICAgKiBleGlzdGluZyBgbWFuaWZlc3QuanNvbmAgYW5kIG5ldmVyIHdyaXRlcyBgbWluQXBwVmVyc2lvbmApLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0aGUgbGF0ZXN0IE9ic2lkaWFuIGRlc2t0b3AgdmVyc2lvblxuICAgKi9cbiAgcmVhZG9ubHkgbWluQXBwVmVyc2lvbj86IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogV2hldGhlciB0byBhcmNoaXZlIHRoZSBwbHVnaW4ncyBkZW1vIHZhdWx0IChgZGVtby12YXVsdC9gIGluIHRoZSByZXBvIHJvb3QpIGFzIGEgcmVsZWFzZSBhcnRpZmFjdC4gSWdub3JlZFxuICAgKiB3aGVuIHRoZSByZXBvIGhhcyBubyBgZGVtby12YXVsdC9gIGZvbGRlci5cbiAgICpcbiAgICogQGRlZmF1bHQgYHRydWVgXG4gICAqL1xuICByZWFkb25seSBzaG91bGRBcmNoaXZlRGVtb1ZhdWx0PzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBUaGUgZmVlZCB0aGUgT2JzaWRpYW4gZGVza3RvcCBhcHAgdXBkYXRlcyBmcm9tLlxuICpcbiAqIERlbGliZXJhdGVseSBOT1QgdGhlIEdpdEh1YiBgcmVsZWFzZXMvbGF0ZXN0YCBBUEk6IHRoYXQgZW5kcG9pbnQgcmV0dXJucyB0aGUgbmV3ZXN0IHJlbGVhc2Ugb2YgYW55IGtpbmRcbiAqIGluIGBvYnNpZGlhbm1kL29ic2lkaWFuLXJlbGVhc2VzYCwgaW5jbHVkaW5nIG9uZSB3aG9zZSBvbmx5IGFzc2V0IGlzIHRoZSBBbmRyb2lkIEFQSywgd2hpY2ggbm8gZGVza3RvcFxuICogdXNlciBjYW4gaW5zdGFsbC4gU2VlIHtAbGluayBnZXRMYXRlc3RPYnNpZGlhblZlcnNpb259LlxuICovXG5jb25zdCBERVNLVE9QX1JFTEVBU0VTX0pTT05fVVJMID0gJ2h0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9vYnNpZGlhbm1kL29ic2lkaWFuLXJlbGVhc2VzL21hc3Rlci9kZXNrdG9wLXJlbGVhc2VzLmpzb24nO1xuXG4vKipcbiAqIENvcGllcyB0aGUgdXBkYXRlZCBtYW5pZmVzdCBmaWxlIHRvIHRoZSBkaXN0cmlidXRpb24gYnVpbGQgZm9sZGVyLlxuICpcbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgY29weSBvcGVyYXRpb24gaXMgY29tcGxldGUuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjb3B5VXBkYXRlZE1hbmlmZXN0KCk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBjcChcbiAgICByZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7IHBhdGg6IE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hbmlmZXN0SnNvbiB9KSxcbiAgICByZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7IHBhdGg6IGpvaW4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuRGlzdEJ1aWxkLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5NYW5pZmVzdEpzb24pIH0pLFxuICAgIHsgZm9yY2U6IHRydWUgfVxuICApO1xufVxuXG4vKipcbiAqIFBhcnNlcyB0aGUgY29tbWFuZC1saW5lIGFyZ3VtZW50cyBmb3IgYSBwbHVnaW4gcmVsZWFzZTogZXZlcnkgZmxhZyB0aGUgZ2VuZXJpYyBgcGFyc2VWZXJzaW9uQXJndW1lbnRzYFxuICogcmVjb2duaXplcywgcGx1cyB0d28gb2YgdGhlIHBsdWdpbidzIG93bjpcbiAqIC0gYC0tbWluLWFwcC12ZXJzaW9uPTx4Lnkuej5gIOKAlCB3cml0ZSB0aGlzIGBtaW5BcHBWZXJzaW9uYCBpbnRvIHRoZSBwbHVnaW4ncyBgbWFuaWZlc3QuanNvbmAgYW5kIGl0cyBuZXdcbiAqICAgYHZlcnNpb25zLmpzb25gIGVudHJ5IGluc3RlYWQgb2YgdHJhY2tpbmcgdGhlIGxhdGVzdCBPYnNpZGlhbiBkZXNrdG9wIHZlcnNpb24uXG4gKiAtIGAtLW5vLWRlbW8tdmF1bHRgIOKAlCBza2lwIGFyY2hpdmluZyB0aGUgcGx1Z2luJ3MgZGVtbyB2YXVsdCAoYGRlbW8tdmF1bHQvYCkgYXMgYSByZWxlYXNlIGFydGlmYWN0LlxuICpcbiAqIEBwYXJhbSAkYXJndW1lbnRzIC0gVGhlIGNvbW1hbmQtbGluZSBhcmd1bWVudHMgdG8gcGFyc2UgKHR5cGljYWxseSBgcHJvY2Vzcy5hcmd2LnNsaWNlKDIpYCkuXG4gKiBAcmV0dXJucyBUaGUge0BsaW5rIFBhcnNlZFZlcnNpb25Bcmd1bWVudHN9IGNvbnRhaW5pbmcgdGhlIHZlcnNpb24gdXBkYXRlIHR5cGUgYW5kIHRoZSBvcHRpb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VWZXJzaW9uQXJndW1lbnRzKCRhcmd1bWVudHM6IHN0cmluZ1tdKTogUGFyc2VkVmVyc2lvbkFyZ3VtZW50cyB7XG4gIGNvbnN0IHsgcG9zaXRpb25hbHMsIHZhbHVlcyB9ID0gcGFyc2VBcmdzKHtcbiAgICBhbGxvd1Bvc2l0aW9uYWxzOiB0cnVlLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL25hbWUtcmVwbGFjZW1lbnRzIC0tIGBhcmdzYCBpcyB0aGUgb3B0aW9uIG5hbWUgTm9kZSdzIGBwYXJzZUFyZ3NgIHJlYWRzLlxuICAgIGFyZ3M6ICRhcmd1bWVudHMsXG4gICAgb3B0aW9uczoge1xuICAgICAgLi4uVkVSU0lPTl9BUkdVTUVOVF9PUFRJT05TLFxuICAgICAgJ21pbi1hcHAtdmVyc2lvbic6IHsgdHlwZTogJ3N0cmluZycgfSxcbiAgICAgICduby1kZW1vLXZhdWx0JzogeyB0eXBlOiAnYm9vbGVhbicgfVxuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHtcbiAgICBvcHRpb25zOiB7XG4gICAgICAuLi50b1VwZGF0ZVZlcnNpb25PcHRpb25zKHZhbHVlcyksXG4gICAgICBtaW5BcHBWZXJzaW9uOiB2YWx1ZXNbJ21pbi1hcHAtdmVyc2lvbiddLFxuICAgICAgc2hvdWxkQXJjaGl2ZURlbW9WYXVsdDogISh2YWx1ZXNbJ25vLWRlbW8tdmF1bHQnXSA/PyBmYWxzZSlcbiAgICB9LFxuICAgIHZlcnNpb25VcGRhdGVUeXBlOiBwb3NpdGlvbmFsc1swXVxuICB9O1xufVxuXG4vKipcbiAqIFJlbGVhc2VzIHRoZSBwbHVnaW4uIFNlZSB0aGUgYEBmaWxlYCBvdmVydmlldyBmb3Igd2hhdCBpdCBhZGRzIHRvIHRoZSBnZW5lcmljIHJlbGVhc2UuXG4gKlxuICogQHBhcmFtIHZlcnNpb25VcGRhdGVUeXBlIC0gVGhlIHR5cGUgb2YgdmVyc2lvbiB1cGRhdGUgdG8gcGVyZm9ybSAobWFqb3IsIG1pbm9yLCBwYXRjaCwgcHJlbWFqb3IsIHByZW1pbm9yLCBwcmVwYXRjaCwgcHJlcmVsZWFzZSwgb3IgeC55LnpbLXN1ZmZpeF0pLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUge0BsaW5rIFVwZGF0ZVZlcnNpb25PcHRpb25zfSBjb250cm9sbGluZyB0aGUgcmVsZWFzZSBiZWhhdmlvci5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgcmVsZWFzZSBpcyBjb21wbGV0ZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVwZGF0ZVZlcnNpb24odmVyc2lvblVwZGF0ZVR5cGU/OiBzdHJpbmcsIG9wdGlvbnM6IFVwZGF0ZVZlcnNpb25PcHRpb25zID0ge30pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3Qge1xuICAgIG1pbkFwcFZlcnNpb24sXG4gICAgcHJlcGFyZUdpdEh1YlJlbGVhc2UsXG4gICAgc2hvdWxkQXJjaGl2ZURlbW9WYXVsdCA9IHRydWUsXG4gICAgLi4uZ2VuZXJpY09wdGlvbnNcbiAgfSA9IG9wdGlvbnM7XG5cbiAgYXdhaXQgdXBkYXRlVmVyc2lvbkdlbmVyaWModmVyc2lvblVwZGF0ZVR5cGUsIHtcbiAgICAuLi5nZW5lcmljT3B0aW9ucyxcbiAgICBnZXRSZWxlYXNlQXNzZXRQYXRoczogZ2V0UGx1Z2luUmVsZWFzZUFzc2V0UGF0aHMsXG4gICAgYXN5bmMgcHJlcGFyZUdpdEh1YlJlbGVhc2UobmV3VmVyc2lvbjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICBhd2FpdCBwcmVwYXJlR2l0SHViUmVsZWFzZT8uKG5ld1ZlcnNpb24pO1xuICAgICAgaWYgKHNob3VsZEFyY2hpdmVEZW1vVmF1bHQpIHtcbiAgICAgICAgYXdhaXQgYXJjaGl2ZVBsdWdpbkRlbW9WYXVsdCgpO1xuICAgICAgfVxuICAgIH0sXG4gICAgYXN5bmMgdXBkYXRlVmVyc2lvbkluRXh0cmFGaWxlcyhuZXdWZXJzaW9uOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgIGF3YWl0IHVwZGF0ZVZlcnNpb25JbkZpbGVzRm9yUGx1Z2luKG5ld1ZlcnNpb24sIG1pbkFwcFZlcnNpb24pO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogRmV0Y2hlcyB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgT2JzaWRpYW4gdGhhdCB0aGUgZGVza3RvcCBhcHAgY2FuIGFjdHVhbGx5IHJ1bi5cbiAqXG4gKiBSZWFkcyB7QGxpbmsgREVTS1RPUF9SRUxFQVNFU19KU09OX1VSTH0sIG5vdCB0aGUgR2l0SHViIGByZWxlYXNlcy9sYXRlc3RgIEFQSS4gVGhlIEFQSSByZXR1cm5zIHRoZSBuZXdlc3RcbiAqIHJlbGVhc2Ugb2YgQU5ZIGtpbmQsIHNvIHdoZW5ldmVyIGEgbW9iaWxlLW9ubHkgcmVsZWFzZSAoYW4gQVBLLW9ubHkgYXNzZXQpIGlzIG5ld2VyIHRoYW4gdGhlIGRlc2t0b3Agb25lLFxuICogaXQgcmVwb3J0cyBhIHZlcnNpb24gdGhhdCBkb2VzIG5vdCBleGlzdCBmb3IgZGVza3RvcC4gQSBwbHVnaW4gcmVsZWFzZWQgaW4gdGhhdCB3aW5kb3cgZ2V0cyBhXG4gKiBgbWluQXBwVmVyc2lvbmAgbm8gZGVza3RvcCB1c2VyIGNhbiBzYXRpc2Z5LCBhbmQgT2JzaWRpYW4gc2lsZW50bHkga2VlcHMgb2ZmZXJpbmcgdGhlbSB0aGUgcHJldmlvdXNcbiAqIHJlbGVhc2UgaW5zdGVhZCDigJQgdGhlIHJlbGVhc2Ugc3VjY2VlZHMgYW5kIHJlYWNoZXMgbm9ib2R5LlxuICpcbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIGxhdGVzdCBPYnNpZGlhbiB2ZXJzaW9uIGF2YWlsYWJsZSBmb3IgZGVza3RvcC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ2V0TGF0ZXN0T2JzaWRpYW5WZXJzaW9uKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLWdsb2JhbHMgLS0gV2UgcnVuIHRoaXMgb3V0c2lkZSBvZiBPYnNpZGlhbiwgc28gd2UgZG9uJ3QgaGF2ZSBgcmVxdWVzdFVybCgpYC5cbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChERVNLVE9QX1JFTEVBU0VTX0pTT05fVVJMKTtcbiAgY29uc3QgZGVza3RvcFJlbGVhc2VzSnNvbiA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKSBhcyBQYXJ0aWFsPERlc2t0b3BSZWxlYXNlc0pzb24+O1xuICByZXR1cm4gZW5zdXJlTm9uTnVsbGFibGUoZGVza3RvcFJlbGVhc2VzSnNvbi5sYXRlc3RWZXJzaW9uLCAnQ291bGQgbm90IGZpbmQgdGhlIGxhdGVzdCBkZXNrdG9wIE9ic2lkaWFuIHZlcnNpb24nKTtcbn1cbi8qKlxuICogVGhlIHBsdWdpbidzIHJlbGVhc2UgYXNzZXRzOiBldmVyeSBmaWxlIGluIGBkaXN0L2J1aWxkYC5cbiAqXG4gKiBAcmV0dXJucyBUaGUgYXNzZXQgcGF0aHMuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGdldFBsdWdpblJlbGVhc2VBc3NldFBhdGhzKCk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgY29uc3QgYnVpbGRGb2xkZXIgPSByZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7IHBhdGg6IE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkRpc3RCdWlsZCB9KTtcbiAgY29uc3QgZmlsZU5hbWVzID0gYXdhaXQgcmVhZGRpclBvc2l4KGJ1aWxkRm9sZGVyKTtcbiAgcmV0dXJuIGZpbGVOYW1lcy5tYXAoKGZpbGVOYW1lKSA9PiBqb2luKGJ1aWxkRm9sZGVyLCBmaWxlTmFtZSkpO1xufVxuXG5hc3luYyBmdW5jdGlvbiB1cGRhdGVWZXJzaW9uSW5GaWxlc0ZvclBsdWdpbihuZXdWZXJzaW9uOiBzdHJpbmcsIG1pbkFwcFZlcnNpb246IHN0cmluZyB8IHVuZGVmaW5lZCk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBtYW5pZmVzdEJldGFKc29uUGF0aCA9IHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKHsgcGF0aDogT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTWFuaWZlc3RCZXRhSnNvbiB9KTtcbiAgaWYgKGlzUHJlUmVsZWFzZShuZXdWZXJzaW9uKSkge1xuICAgIGF3YWl0IGNwKFxuICAgICAgcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoeyBwYXRoOiBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5NYW5pZmVzdEpzb24gfSksXG4gICAgICBtYW5pZmVzdEJldGFKc29uUGF0aCxcbiAgICAgIHsgZm9yY2U6IHRydWUgfVxuICAgICk7XG4gICAgYXdhaXQgZWRpdEpzb248TWFuaWZlc3Q+KHtcbiAgICAgIGVkaXRGdW5jdGlvbjogKG1hbmlmZXN0KSA9PiB7XG4gICAgICAgIG1hbmlmZXN0LnZlcnNpb24gPSBuZXdWZXJzaW9uO1xuICAgICAgfSxcbiAgICAgIHBhdGg6IE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hbmlmZXN0QmV0YUpzb25cbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCByZXNvbHZlZE1pbkFwcFZlcnNpb24gPSBtaW5BcHBWZXJzaW9uID8/IGF3YWl0IGdldExhdGVzdE9ic2lkaWFuVmVyc2lvbigpO1xuXG4gICAgYXdhaXQgZWRpdEpzb248TWFuaWZlc3Q+KHtcbiAgICAgIGVkaXRGdW5jdGlvbjogKG1hbmlmZXN0KSA9PiB7XG4gICAgICAgIG1hbmlmZXN0Lm1pbkFwcFZlcnNpb24gPSByZXNvbHZlZE1pbkFwcFZlcnNpb247XG4gICAgICAgIG1hbmlmZXN0LnZlcnNpb24gPSBuZXdWZXJzaW9uO1xuICAgICAgfSxcbiAgICAgIHBhdGg6IE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hbmlmZXN0SnNvblxuICAgIH0pO1xuXG4gICAgYXdhaXQgZWRpdEpzb248UmVjb3JkPHN0cmluZywgc3RyaW5nPj4oe1xuICAgICAgZWRpdEZ1bmN0aW9uOiAodmVyc2lvbnMpID0+IHtcbiAgICAgICAgdmVyc2lvbnNbbmV3VmVyc2lvbl0gPSByZXNvbHZlZE1pbkFwcFZlcnNpb247XG4gICAgICB9LFxuICAgICAgcGF0aDogT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuVmVyc2lvbnNKc29uXG4gICAgfSk7XG5cbiAgICBpZiAoZXhpc3RzU3luYyhtYW5pZmVzdEJldGFKc29uUGF0aCkpIHtcbiAgICAgIGF3YWl0IHJtKG1hbmlmZXN0QmV0YUpzb25QYXRoKTtcbiAgICB9XG4gIH1cblxuICBhd2FpdCBjb3B5VXBkYXRlZE1hbmlmZXN0KCk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBY0EsU0FBUyxvQkFBb0I7QUFDN0IsU0FBUyxnQkFBZ0I7QUFD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
@@ -1,4 +1,4 @@
1
- /// <reference path="./index.d.mts" />
1
+ /// <reference path="./library-references.d.mts" />
2
2
  /**
3
3
  * @file
4
4
  *
@@ -2,13 +2,7 @@
2
2
  THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
3
  if you want to view the source, please visit the github repository of this plugin
4
4
  */
5
-
6
5
  (function () {
7
- function ensureDisposeSymbols(symbolConstructor = Symbol) {
8
- symbolConstructor.asyncDispose ??= symbolConstructor.for("Symbol.asyncDispose");
9
- symbolConstructor.dispose ??= symbolConstructor.for("Symbol.dispose");
10
- }
11
-
12
6
  function ensureBrowserProcess() {
13
7
  const browserProcess = {
14
8
  browser: true,
@@ -33,10 +27,7 @@ function ensureBrowserProcess() {
33
27
  existingProcessRecord["browser"] = true;
34
28
  }
35
29
 
36
- (function initEsm() {
37
- ensureDisposeSymbols();
38
- ensureBrowserProcess();
39
- })();
30
+ ensureBrowserProcess();
40
31
  })();
41
32
 
42
33
  import {
@@ -50,4 +41,4 @@ setup({
50
41
  afterEach,
51
42
  beforeEach
52
43
  });
53
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3ZpdGVzdC1zZXR1cC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFZpdGVzdCBzZXR1cCBmaWxlIGZvciBPYnNpZGlhbiBwbHVnaW5zIGJ1aWx0IG9uIGBAbW5hb3Vtb3Yvb2JzaWRpYW4tbGliYC5cbiAqXG4gKiBBZGQgaXQgdG8geW91ciBWaXRlc3QgY29uZmlnJ3MgYHNldHVwRmlsZXNgIChvciBpbXBvcnQgaXQgZnJvbSBhbm90aGVyIHNldHVwIGZpbGUpLiBCZWZvcmUgZWFjaFxuICogdGVzdCBpdCByZXNldHMgdGhlIGdlbmVyaWMgc2hhcmVkLXN0YXRlIHNsb3QsIHRoZSBgX19vYnNpZGlhbkRldlV0aWxzYCBiYWcgYW5kIHRoZSBsaWJyYXJ5IGNvbnRleHRzLCBhbmQgZW5hYmxlcyBhc3luYy1vcGVyYXRpb24gdHJhY2tpbmc7IGFmdGVyIGVhY2ggdGVzdCBpdFxuICogZGlzYWJsZXMgdHJhY2tpbmcsIHNvIHRlc3RzIGNhbiBgYXdhaXQgd2FpdEZvckFsbEFzeW5jT3BlcmF0aW9ucygpYCBhZ2FpbnN0IGlzb2xhdGVkIHN0YXRlLlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBUaGluIFZpdGVzdCBzZXR1cC1maWxlIGdsdWU7IHNldHVwIGlzIHVuaXQtdGVzdGVkIHNlcGFyYXRlbHkuICovXG5pbXBvcnQge1xuICBhZnRlckFsbCxcbiAgYWZ0ZXJFYWNoLFxuICBiZWZvcmVFYWNoXG59IGZyb20gJ3ZpdGVzdCc7XG5cbmltcG9ydCB7IHNldHVwIH0gZnJvbSAnLi9zZXR1cC50cyc7XG5cbnNldHVwKHtcbiAgYWZ0ZXJBbGwsXG4gIGFmdGVyRWFjaCxcbiAgYmVmb3JlRWFjaFxufSk7XG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFXQTtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFFUCxTQUFTLGFBQWE7QUFFdEIsTUFBTTtBQUFBLEVBQ0o7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUNGLENBQUM7IiwKICAibmFtZXMiOiBbXQp9Cg==
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92aXRlc3Qtc2V0dXAudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFZpdGVzdCBzZXR1cCBmaWxlIGZvciBPYnNpZGlhbiBwbHVnaW5zIGJ1aWx0IG9uIGBAbW5hb3Vtb3Yvb2JzaWRpYW4tbGliYC5cbiAqXG4gKiBBZGQgaXQgdG8geW91ciBWaXRlc3QgY29uZmlnJ3MgYHNldHVwRmlsZXNgIChvciBpbXBvcnQgaXQgZnJvbSBhbm90aGVyIHNldHVwIGZpbGUpLiBCZWZvcmUgZWFjaFxuICogdGVzdCBpdCByZXNldHMgdGhlIGdlbmVyaWMgc2hhcmVkLXN0YXRlIHNsb3QsIHRoZSBgX19vYnNpZGlhbkRldlV0aWxzYCBiYWcgYW5kIHRoZSBsaWJyYXJ5IGNvbnRleHRzLCBhbmQgZW5hYmxlcyBhc3luYy1vcGVyYXRpb24gdHJhY2tpbmc7IGFmdGVyIGVhY2ggdGVzdCBpdFxuICogZGlzYWJsZXMgdHJhY2tpbmcsIHNvIHRlc3RzIGNhbiBgYXdhaXQgd2FpdEZvckFsbEFzeW5jT3BlcmF0aW9ucygpYCBhZ2FpbnN0IGlzb2xhdGVkIHN0YXRlLlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBUaGluIFZpdGVzdCBzZXR1cC1maWxlIGdsdWU7IHNldHVwIGlzIHVuaXQtdGVzdGVkIHNlcGFyYXRlbHkuICovXG5pbXBvcnQge1xuICBhZnRlckFsbCxcbiAgYWZ0ZXJFYWNoLFxuICBiZWZvcmVFYWNoXG59IGZyb20gJ3ZpdGVzdCc7XG5cbmltcG9ydCB7IHNldHVwIH0gZnJvbSAnLi9zZXR1cC50cyc7XG5cbnNldHVwKHtcbiAgYWZ0ZXJBbGwsXG4gIGFmdGVyRWFjaCxcbiAgYmVmb3JlRWFjaFxufSk7XG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVdBO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUVQLFNBQVMsYUFBYTtBQUV0QixNQUFNO0FBQUEsRUFDSjtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQ0YsQ0FBQzsiLCJuYW1lcyI6W119
@@ -6,6 +6,7 @@
6
6
  "exportDeclaration.forceMultiLine": "whenMultiple",
7
7
  "functionExpression.spaceAfterFunctionKeyword": true,
8
8
  "importDeclaration.forceMultiLine": "whenMultiple",
9
+ "jsx.quoteStyle": "preferDouble",
9
10
  "lineWidth": 1000,
10
11
  "quoteStyle": "alwaysSingle",
11
12
  "trailingCommas": "never"
@@ -1,3 +1,3 @@
1
- import { obsidianDevUtilsConfig } from '@mnaoumov/typescript-dev-toolkit/commitlint-config';
1
+ import { commitlintConfig } from '@mnaoumov/typescript-dev-toolkit/commitlint-config';
2
2
 
3
- export const config = obsidianDevUtilsConfig;
3
+ export const config = commitlintConfig;
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../dist/lib/cjs/docs-site/index.cjs",
3
+ "module": "../../dist/lib/esm/docs-site/index.mjs",
4
+ "type": "module",
5
+ "types": "../../dist/lib/cjs/docs-site/index.d.cts"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../dist/lib/cjs/docs-site/obsidian-external-type-links.cjs",
3
+ "module": "../../dist/lib/esm/docs-site/obsidian-external-type-links.mjs",
4
+ "type": "module",
5
+ "types": "../../dist/lib/cjs/docs-site/obsidian-external-type-links.d.cts"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../dist/lib/cjs/docs-site/index.cjs",
3
+ "module": "../dist/lib/esm/docs-site/index.mjs",
4
+ "type": "module",
5
+ "types": "../dist/lib/cjs/docs-site/index.d.cts"
6
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
- "main": "../../../dist/lib/cjs/linters/eslint-rules/obsidian-dev-utils-plugin.cjs",
3
- "module": "../../../dist/lib/esm/linters/eslint-rules/obsidian-dev-utils-plugin.mjs",
2
+ "main": "../../../dist/lib/cjs/linters/eslint-rules/obsidian-dev-toolkit-plugin.cjs",
3
+ "module": "../../../dist/lib/esm/linters/eslint-rules/obsidian-dev-toolkit-plugin.mjs",
4
4
  "type": "module",
5
- "types": "../../../dist/lib/cjs/linters/eslint-rules/obsidian-dev-utils-plugin.d.cts"
5
+ "types": "../../../dist/lib/cjs/linters/eslint-rules/obsidian-dev-toolkit-plugin.d.cts"
6
6
  }
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@mnaoumov/obsidian-dev-toolkit",
3
- "version": "1.1.0",
3
+ "version": "2.1.0",
4
4
  "description": "Tooling for Obsidian plugin development: esbuild plugin builder, shared ESLint/Vitest configs, demo vaults and the release script.",
5
5
  "keywords": [
6
6
  "obsidian",
7
7
  "obsidian-plugin",
8
8
  "tooling"
9
9
  ],
10
- "homepage": "https://github.com/mnaoumov/obsidian-dev-toolkit#readme",
10
+ "homepage": "https://mnaoumov.dev/obsidian-dev-toolkit/",
11
11
  "bugs": {
12
12
  "url": "https://github.com/mnaoumov/obsidian-dev-toolkit/issues"
13
13
  },
@@ -79,6 +79,26 @@
79
79
  "default": "./dist/lib/cjs/bundlers/esbuild-impl/*.cjs"
80
80
  }
81
81
  },
82
+ "./docs-site": {
83
+ "import": {
84
+ "types": "./dist/lib/esm/docs-site/index.d.mts",
85
+ "default": "./dist/lib/esm/docs-site/index.mjs"
86
+ },
87
+ "require": {
88
+ "types": "./dist/lib/cjs/docs-site/index.d.cts",
89
+ "default": "./dist/lib/cjs/docs-site/index.cjs"
90
+ }
91
+ },
92
+ "./docs-site/*": {
93
+ "import": {
94
+ "types": "./dist/lib/esm/docs-site/*.d.mts",
95
+ "default": "./dist/lib/esm/docs-site/*.mjs"
96
+ },
97
+ "require": {
98
+ "types": "./dist/lib/cjs/docs-site/*.d.cts",
99
+ "default": "./dist/lib/cjs/docs-site/*.cjs"
100
+ }
101
+ },
82
102
  "./formatters": {
83
103
  "import": {
84
104
  "types": "./dist/lib/esm/formatters/index.d.mts",
@@ -202,6 +222,9 @@
202
222
  "build:validate-declarations": "jiti scripts/build-validate-declarations.ts",
203
223
  "build:validate-templates": "jiti scripts/build-validate-templates.ts",
204
224
  "commit": "jiti scripts/commit.ts",
225
+ "docs:build": "jiti scripts/docs-build.ts",
226
+ "docs:dev": "jiti scripts/docs-dev.ts",
227
+ "docs:preview": "jiti scripts/docs-preview.ts",
205
228
  "find-overexposed": "jiti scripts/find-overexposed.ts",
206
229
  "find-overexposed:fix": "jiti scripts/find-overexposed-fix.ts",
207
230
  "format": "jiti scripts/format.ts",
@@ -221,8 +244,8 @@
221
244
  },
222
245
  "dependencies": {
223
246
  "@eslint/json": "^2.1.0",
224
- "@mnaoumov/obsidian-lib": "^1.0.0",
225
- "@mnaoumov/typescript-dev-toolkit": "^1.0.0",
247
+ "@mnaoumov/obsidian-lib": "^3.1.0",
248
+ "@mnaoumov/typescript-dev-toolkit": "^2.1.0",
226
249
  "@mnaoumov/typescript-lib": "^1.0.0",
227
250
  "@mnaoumov/typescript-test-toolkit": "^1.0.0",
228
251
  "@types/babel__core": "^7.20.5",
@@ -245,15 +268,18 @@
245
268
  "typescript": "6.0.3"
246
269
  },
247
270
  "devDependencies": {
271
+ "@astrojs/markdown-satteri": "^0.4.4",
272
+ "@astrojs/starlight": "^0.42.6",
248
273
  "@commitlint/cli": "^21.2.2",
249
- "@commitlint/config-conventional": "^21.2.2",
250
274
  "@jest/globals": "^30.5.2",
251
275
  "@obsidian-typings/obsidian-public-latest": "^6.37.0",
276
+ "@resvg/resvg-js": "^2.6.2",
252
277
  "@total-typescript/ts-reset": "^0.6.1",
253
278
  "@tsconfig/strictest": "^2.0.8",
254
279
  "@types/node": "^26.6.2",
255
280
  "@typescript-eslint/rule-tester": "^8.71.2",
256
281
  "@vitest/coverage-v8": "^5.0.1",
282
+ "astro": "^7.4.0",
257
283
  "better-typescript-lib": "^2.12.0",
258
284
  "cspell": "^10.3.3",
259
285
  "czg": "^1.14.0",
@@ -264,8 +290,13 @@
264
290
  "nano-staged": "^1.0.2",
265
291
  "obsidian-integration-testing": "^17.3.0",
266
292
  "obsidian-test-mocks": "^7.0.0",
293
+ "satori": "^0.33.5",
294
+ "satteri": "^0.10.5",
295
+ "ts-morph": "^28.0.0",
267
296
  "tslib": "^2.8.1",
268
- "vitest": "^5.0.1"
297
+ "typedoc-plugin-mdn-links": "^5.1.1",
298
+ "vitest": "^5.0.1",
299
+ "yaml": "^2.9.1"
269
300
  },
270
301
  "peerDependencies": {
271
302
  "@jest/globals": "^30.5.2",
@@ -1,181 +0,0 @@
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 () {
7
- function ensureDisposeSymbols(symbolConstructor = Symbol) {
8
- symbolConstructor.asyncDispose ??= symbolConstructor.for("Symbol.asyncDispose");
9
- symbolConstructor.dispose ??= symbolConstructor.for("Symbol.dispose");
10
- }
11
-
12
- function ensureBrowserProcess() {
13
- const browserProcess = {
14
- browser: true,
15
- cwd() {
16
- return "/";
17
- },
18
- env: {},
19
- platform: "android"
20
- };
21
- const existingProcess = globalThis.process;
22
- if (!existingProcess) {
23
- globalThis.process = browserProcess;
24
- return;
25
- }
26
- if (existingProcess.versions?.node) {
27
- return;
28
- }
29
- const existingProcessRecord = existingProcess;
30
- for (const [key, value] of Object.entries(browserProcess)) {
31
- existingProcessRecord[key] ??= value;
32
- }
33
- existingProcessRecord["browser"] = true;
34
- }
35
-
36
- function keepName($unknown) {
37
- return $unknown;
38
- }
39
-
40
- (function initCjs() {
41
- const globalThisRecord = globalThis;
42
- ensureDisposeSymbols();
43
- globalThisRecord["__name"] ??= keepName;
44
- globalThisRecord["__extractDefault"] ??= extractDefault;
45
- ensureBrowserProcess();
46
- function extractDefault(module) {
47
- return module && module.__esModule && "default" in module ? module.default : module;
48
- }
49
- })();
50
- })();
51
- (function patchObsidianRequire() {
52
- const originalRequire = require;
53
- if (!originalRequire || originalRequire.__isPatched) {
54
- return;
55
- }
56
-
57
- require = Object.assign(
58
- (id) => requirePatched(id),
59
- originalRequire,
60
- {
61
- __isPatched: true
62
- }
63
- );
64
-
65
- function extractDefault(module) {
66
- return module && module.__esModule && 'default' in module ? module.default : module;
67
- }
68
-
69
- const OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
70
- '@codemirror/autocomplete',
71
- '@codemirror/collab',
72
- '@codemirror/commands',
73
- '@codemirror/language',
74
- '@codemirror/lint',
75
- '@codemirror/search',
76
- '@codemirror/state',
77
- '@codemirror/text',
78
- '@codemirror/view',
79
- '@lezer/common',
80
- '@lezer/highlight',
81
- '@lezer/lr',
82
- 'obsidian']
83
- );
84
-
85
- const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
86
- '@codemirror/closebrackets',
87
- '@codemirror/comment',
88
- '@codemirror/fold',
89
- '@codemirror/gutter',
90
- '@codemirror/highlight',
91
- '@codemirror/history',
92
- '@codemirror/matchbrackets',
93
- '@codemirror/panel',
94
- '@codemirror/rangeset',
95
- '@codemirror/rectangular-selection',
96
- '@codemirror/stream-parser',
97
- '@codemirror/tooltip']
98
- );
99
-
100
- function requirePatched(id) {
101
- if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
102
- return originalRequire?.(id);
103
- }
104
-
105
- // eslint-disable-next-line @typescript-eslint/no-deprecated, obsidianmd/no-global-this -- Need access to app. Actively use globalThis.
106
- if (globalThis.app.isMobile) {
107
- if (id === 'process' || id === 'node:process') {
108
- // eslint-disable-next-line no-console -- Valid usage.
109
- console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
110
-
111
- return process;
112
- }
113
- } else {
114
- const module = originalRequire?.(id);
115
- if (module) {
116
- return extractDefault(module);
117
- }
118
- }
119
-
120
- // eslint-disable-next-line no-console -- Valid usage.
121
- console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
122
- return {};
123
- }
124
- })();
125
-
126
- "use strict";
127
- var __defProp = Object.defineProperty;
128
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
129
- var __getOwnPropNames = Object.getOwnPropertyNames;
130
- var __hasOwnProp = Object.prototype.hasOwnProperty;
131
- var __export = (target, all) => {
132
- for (var name in all)
133
- __defProp(target, name, { get: all[name], enumerable: true });
134
- };
135
- var __copyProps = (to, from, except, desc) => {
136
- if (from && typeof from === "object" || typeof from === "function") {
137
- for (let key of __getOwnPropNames(from))
138
- if (!__hasOwnProp.call(to, key) && key !== except)
139
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
140
- }
141
- return to;
142
- };
143
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
144
- var obsidian_dev_utils_plugin_exports = {};
145
- __export(obsidian_dev_utils_plugin_exports, {
146
- obsidianDevUtilsPlugin: () => obsidianDevUtilsPlugin
147
- });
148
- module.exports = __toCommonJS(obsidian_dev_utils_plugin_exports);
149
- var import_in_house_plugin = require('@mnaoumov/typescript-dev-toolkit/linters/eslint-rules/in-house-plugin');
150
- var import_manifest_description = require('./manifest-description.cjs');
151
- var import_manifest_id = require('./manifest-id.cjs');
152
- var import_manifest_name = require('./manifest-name.cjs');
153
- var import_manifest_schema = require('./manifest-schema.cjs');
154
- var import_no_local_obsidian_internals = require('./no-local-obsidian-internals.cjs');
155
- var import_no_over_cap_wait_in_eval_in_obsidian = require('./no-over-cap-wait-in-eval-in-obsidian.cjs');
156
- var import_no_untrusted_input_events = require('./no-untrusted-input-events.cjs');
157
- var import_plugin_name_as_code_in_ui = require('./plugin-name-as-code-in-ui.cjs');
158
- var import_plugin_name_as_code = require('./plugin-name-as-code.cjs');
159
- var import_require_component_suffix = require('./require-component-suffix.cjs');
160
- var import_require_plugin_api_contract_schemas = require('./require-plugin-api-contract-schemas.cjs');
161
- const obsidianDevUtilsPlugin = {
162
- rules: {
163
- ...import_in_house_plugin.genericInHouseEslintRules,
164
- "manifest-description": import_manifest_description.manifestDescription,
165
- "manifest-id": import_manifest_id.manifestId,
166
- "manifest-name": import_manifest_name.manifestName,
167
- "manifest-schema": import_manifest_schema.manifestSchema,
168
- "no-local-obsidian-internals": import_no_local_obsidian_internals.noLocalObsidianInternals,
169
- "no-over-cap-wait-in-eval-in-obsidian": import_no_over_cap_wait_in_eval_in_obsidian.noOverCapWaitInEvalInObsidian,
170
- "no-untrusted-input-events": import_no_untrusted_input_events.noUntrustedInputEvents,
171
- "plugin-name-as-code": import_plugin_name_as_code.pluginNameAsCode,
172
- "plugin-name-as-code-in-ui": import_plugin_name_as_code_in_ui.pluginNameAsCodeInUi,
173
- "require-component-suffix": import_require_component_suffix.requireComponentSuffix,
174
- "require-plugin-api-contract-schemas": import_require_plugin_api_contract_schemas.requirePluginApiContractSchemas
175
- }
176
- };
177
- // Annotate the CommonJS export names for ESM import in node:
178
- 0 && (module.exports = {
179
- obsidianDevUtilsPlugin
180
- });
181
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpbnRlcnMvZXNsaW50LXJ1bGVzL29ic2lkaWFuLWRldi11dGlscy1wbHVnaW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBFU0xpbnQgcGx1Z2luIGZvciBPYnNpZGlhbiBkZXZlbG9wbWVudCB1dGlsaXRpZXMuXG4gKi9cbmltcG9ydCB0eXBlIHsgRVNMaW50IH0gZnJvbSAnZXNsaW50JztcblxuaW1wb3J0IHsgZ2VuZXJpY0luSG91c2VFc2xpbnRSdWxlcyB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWRldi10b29sa2l0L2xpbnRlcnMvZXNsaW50LXJ1bGVzL2luLWhvdXNlLXBsdWdpbic7XG5cbmltcG9ydCB7IG1hbmlmZXN0RGVzY3JpcHRpb24gfSBmcm9tICcuL21hbmlmZXN0LWRlc2NyaXB0aW9uLnRzJztcbmltcG9ydCB7IG1hbmlmZXN0SWQgfSBmcm9tICcuL21hbmlmZXN0LWlkLnRzJztcbmltcG9ydCB7IG1hbmlmZXN0TmFtZSB9IGZyb20gJy4vbWFuaWZlc3QtbmFtZS50cyc7XG5pbXBvcnQgeyBtYW5pZmVzdFNjaGVtYSB9IGZyb20gJy4vbWFuaWZlc3Qtc2NoZW1hLnRzJztcbmltcG9ydCB7IG5vTG9jYWxPYnNpZGlhbkludGVybmFscyB9IGZyb20gJy4vbm8tbG9jYWwtb2JzaWRpYW4taW50ZXJuYWxzLnRzJztcbmltcG9ydCB7IG5vT3ZlckNhcFdhaXRJbkV2YWxJbk9ic2lkaWFuIH0gZnJvbSAnLi9uby1vdmVyLWNhcC13YWl0LWluLWV2YWwtaW4tb2JzaWRpYW4udHMnO1xuaW1wb3J0IHsgbm9VbnRydXN0ZWRJbnB1dEV2ZW50cyB9IGZyb20gJy4vbm8tdW50cnVzdGVkLWlucHV0LWV2ZW50cy50cyc7XG5pbXBvcnQgeyBwbHVnaW5OYW1lQXNDb2RlSW5VaSB9IGZyb20gJy4vcGx1Z2luLW5hbWUtYXMtY29kZS1pbi11aS50cyc7XG5pbXBvcnQgeyBwbHVnaW5OYW1lQXNDb2RlIH0gZnJvbSAnLi9wbHVnaW4tbmFtZS1hcy1jb2RlLnRzJztcbmltcG9ydCB7IHJlcXVpcmVDb21wb25lbnRTdWZmaXggfSBmcm9tICcuL3JlcXVpcmUtY29tcG9uZW50LXN1ZmZpeC50cyc7XG5pbXBvcnQgeyByZXF1aXJlUGx1Z2luQXBpQ29udHJhY3RTY2hlbWFzIH0gZnJvbSAnLi9yZXF1aXJlLXBsdWdpbi1hcGktY29udHJhY3Qtc2NoZW1hcy50cyc7XG5cbi8qKlxuICogRVNMaW50IHBsdWdpbiBidW5kbGluZyBldmVyeSBgb2JzaWRpYW4tZGV2LXV0aWxzYCBjdXN0b20gcnVsZSwgcmVnaXN0ZXJlZCB1bmRlciB0aGUgYG9ic2lkaWFuLWRldi11dGlsc2AgbmFtZXNwYWNlOlxuICogdGhlIGdlbmVyaWMgcnVsZXMgb2YgYEBtbmFvdW1vdi90eXBlc2NyaXB0LWRldi10b29sa2l0YCBhbmQgdGhlIE9ic2lkaWFuIG9uZXMuIEl0IGlzIE9ORSBwbHVnaW4gY2FycnlpbmcgYm90aCxcbiAqIGJlY2F1c2UgRVNMaW50IHJlZnVzZXMgdHdvIGRpZmZlcmVudCBwbHVnaW5zIHVuZGVyIG9uZSBuYW1lc3BhY2UuXG4gKi9cbmV4cG9ydCBjb25zdCBvYnNpZGlhbkRldlV0aWxzUGx1Z2luOiBFU0xpbnQuUGx1Z2luID0ge1xuICBydWxlczoge1xuICAgIC4uLmdlbmVyaWNJbkhvdXNlRXNsaW50UnVsZXMsXG4gICAgJ21hbmlmZXN0LWRlc2NyaXB0aW9uJzogbWFuaWZlc3REZXNjcmlwdGlvbixcbiAgICAnbWFuaWZlc3QtaWQnOiBtYW5pZmVzdElkLFxuICAgICdtYW5pZmVzdC1uYW1lJzogbWFuaWZlc3ROYW1lLFxuICAgICdtYW5pZmVzdC1zY2hlbWEnOiBtYW5pZmVzdFNjaGVtYSxcbiAgICAnbm8tbG9jYWwtb2JzaWRpYW4taW50ZXJuYWxzJzogbm9Mb2NhbE9ic2lkaWFuSW50ZXJuYWxzLFxuICAgICduby1vdmVyLWNhcC13YWl0LWluLWV2YWwtaW4tb2JzaWRpYW4nOiBub092ZXJDYXBXYWl0SW5FdmFsSW5PYnNpZGlhbixcbiAgICAnbm8tdW50cnVzdGVkLWlucHV0LWV2ZW50cyc6IG5vVW50cnVzdGVkSW5wdXRFdmVudHMsXG4gICAgJ3BsdWdpbi1uYW1lLWFzLWNvZGUnOiBwbHVnaW5OYW1lQXNDb2RlLFxuICAgICdwbHVnaW4tbmFtZS1hcy1jb2RlLWluLXVpJzogcGx1Z2luTmFtZUFzQ29kZUluVWksXG4gICAgJ3JlcXVpcmUtY29tcG9uZW50LXN1ZmZpeCc6IHJlcXVpcmVDb21wb25lbnRTdWZmaXgsXG4gICAgJ3JlcXVpcmUtcGx1Z2luLWFwaS1jb250cmFjdC1zY2hlbWFzJzogcmVxdWlyZVBsdWdpbkFwaUNvbnRyYWN0U2NoZW1hc1xuICB9XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0EsNkJBQTBDO0FBRTFDLGtDQUFvQztBQUNwQyx5QkFBMkI7QUFDM0IsMkJBQTZCO0FBQzdCLDZCQUErQjtBQUMvQix5Q0FBeUM7QUFDekMsa0RBQThDO0FBQzlDLHVDQUF1QztBQUN2Qyx1Q0FBcUM7QUFDckMsaUNBQWlDO0FBQ2pDLHNDQUF1QztBQUN2QyxpREFBZ0Q7QUFPekMsTUFBTSx5QkFBd0M7QUFBQSxFQUNuRCxPQUFPO0FBQUEsSUFDTCxHQUFHO0FBQUEsSUFDSCx3QkFBd0I7QUFBQSxJQUN4QixlQUFlO0FBQUEsSUFDZixpQkFBaUI7QUFBQSxJQUNqQixtQkFBbUI7QUFBQSxJQUNuQiwrQkFBK0I7QUFBQSxJQUMvQix3Q0FBd0M7QUFBQSxJQUN4Qyw2QkFBNkI7QUFBQSxJQUM3Qix1QkFBdUI7QUFBQSxJQUN2Qiw2QkFBNkI7QUFBQSxJQUM3Qiw0QkFBNEI7QUFBQSxJQUM1Qix1Q0FBdUM7QUFBQSxFQUN6QztBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -1,13 +0,0 @@
1
- /// <reference path="../../index.d.cts" />
2
- /**
3
- * @file
4
- *
5
- * ESLint plugin for Obsidian development utilities.
6
- */
7
- import type { ESLint } from 'eslint' with { 'resolution-mode': 'import' };
8
- /**
9
- * ESLint plugin bundling every `obsidian-dev-utils` custom rule, registered under the `obsidian-dev-utils` namespace:
10
- * the generic rules of `@mnaoumov/typescript-dev-toolkit` and the Obsidian ones. It is ONE plugin carrying both,
11
- * because ESLint refuses two different plugins under one namespace.
12
- */
13
- export declare const obsidianDevUtilsPlugin: ESLint.Plugin;
@@ -1,13 +0,0 @@
1
- /// <reference path="../../index.d.mts" />
2
- /**
3
- * @file
4
- *
5
- * ESLint plugin for Obsidian development utilities.
6
- */
7
- import type { ESLint } from 'eslint';
8
- /**
9
- * ESLint plugin bundling every `obsidian-dev-utils` custom rule, registered under the `obsidian-dev-utils` namespace:
10
- * the generic rules of `@mnaoumov/typescript-dev-toolkit` and the Obsidian ones. It is ONE plugin carrying both,
11
- * because ESLint refuses two different plugins under one namespace.
12
- */
13
- export declare const obsidianDevUtilsPlugin: ESLint.Plugin;
@@ -1,73 +0,0 @@
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 () {
7
- function ensureDisposeSymbols(symbolConstructor = Symbol) {
8
- symbolConstructor.asyncDispose ??= symbolConstructor.for("Symbol.asyncDispose");
9
- symbolConstructor.dispose ??= symbolConstructor.for("Symbol.dispose");
10
- }
11
-
12
- function ensureBrowserProcess() {
13
- const browserProcess = {
14
- browser: true,
15
- cwd() {
16
- return "/";
17
- },
18
- env: {},
19
- platform: "android"
20
- };
21
- const existingProcess = globalThis.process;
22
- if (!existingProcess) {
23
- globalThis.process = browserProcess;
24
- return;
25
- }
26
- if (existingProcess.versions?.node) {
27
- return;
28
- }
29
- const existingProcessRecord = existingProcess;
30
- for (const [key, value] of Object.entries(browserProcess)) {
31
- existingProcessRecord[key] ??= value;
32
- }
33
- existingProcessRecord["browser"] = true;
34
- }
35
-
36
- (function initEsm() {
37
- ensureDisposeSymbols();
38
- ensureBrowserProcess();
39
- })();
40
- })();
41
-
42
- import { genericInHouseEslintRules } from "@mnaoumov/typescript-dev-toolkit/linters/eslint-rules/in-house-plugin";
43
- import { manifestDescription } from "./manifest-description.mjs";
44
- import { manifestId } from "./manifest-id.mjs";
45
- import { manifestName } from "./manifest-name.mjs";
46
- import { manifestSchema } from "./manifest-schema.mjs";
47
- import { noLocalObsidianInternals } from "./no-local-obsidian-internals.mjs";
48
- import { noOverCapWaitInEvalInObsidian } from "./no-over-cap-wait-in-eval-in-obsidian.mjs";
49
- import { noUntrustedInputEvents } from "./no-untrusted-input-events.mjs";
50
- import { pluginNameAsCodeInUi } from "./plugin-name-as-code-in-ui.mjs";
51
- import { pluginNameAsCode } from "./plugin-name-as-code.mjs";
52
- import { requireComponentSuffix } from "./require-component-suffix.mjs";
53
- import { requirePluginApiContractSchemas } from "./require-plugin-api-contract-schemas.mjs";
54
- const obsidianDevUtilsPlugin = {
55
- rules: {
56
- ...genericInHouseEslintRules,
57
- "manifest-description": manifestDescription,
58
- "manifest-id": manifestId,
59
- "manifest-name": manifestName,
60
- "manifest-schema": manifestSchema,
61
- "no-local-obsidian-internals": noLocalObsidianInternals,
62
- "no-over-cap-wait-in-eval-in-obsidian": noOverCapWaitInEvalInObsidian,
63
- "no-untrusted-input-events": noUntrustedInputEvents,
64
- "plugin-name-as-code": pluginNameAsCode,
65
- "plugin-name-as-code-in-ui": pluginNameAsCodeInUi,
66
- "require-component-suffix": requireComponentSuffix,
67
- "require-plugin-api-contract-schemas": requirePluginApiContractSchemas
68
- }
69
- };
70
- export {
71
- obsidianDevUtilsPlugin
72
- };
73
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpbnRlcnMvZXNsaW50LXJ1bGVzL29ic2lkaWFuLWRldi11dGlscy1wbHVnaW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBFU0xpbnQgcGx1Z2luIGZvciBPYnNpZGlhbiBkZXZlbG9wbWVudCB1dGlsaXRpZXMuXG4gKi9cbmltcG9ydCB0eXBlIHsgRVNMaW50IH0gZnJvbSAnZXNsaW50JztcblxuaW1wb3J0IHsgZ2VuZXJpY0luSG91c2VFc2xpbnRSdWxlcyB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWRldi10b29sa2l0L2xpbnRlcnMvZXNsaW50LXJ1bGVzL2luLWhvdXNlLXBsdWdpbic7XG5cbmltcG9ydCB7IG1hbmlmZXN0RGVzY3JpcHRpb24gfSBmcm9tICcuL21hbmlmZXN0LWRlc2NyaXB0aW9uLnRzJztcbmltcG9ydCB7IG1hbmlmZXN0SWQgfSBmcm9tICcuL21hbmlmZXN0LWlkLnRzJztcbmltcG9ydCB7IG1hbmlmZXN0TmFtZSB9IGZyb20gJy4vbWFuaWZlc3QtbmFtZS50cyc7XG5pbXBvcnQgeyBtYW5pZmVzdFNjaGVtYSB9IGZyb20gJy4vbWFuaWZlc3Qtc2NoZW1hLnRzJztcbmltcG9ydCB7IG5vTG9jYWxPYnNpZGlhbkludGVybmFscyB9IGZyb20gJy4vbm8tbG9jYWwtb2JzaWRpYW4taW50ZXJuYWxzLnRzJztcbmltcG9ydCB7IG5vT3ZlckNhcFdhaXRJbkV2YWxJbk9ic2lkaWFuIH0gZnJvbSAnLi9uby1vdmVyLWNhcC13YWl0LWluLWV2YWwtaW4tb2JzaWRpYW4udHMnO1xuaW1wb3J0IHsgbm9VbnRydXN0ZWRJbnB1dEV2ZW50cyB9IGZyb20gJy4vbm8tdW50cnVzdGVkLWlucHV0LWV2ZW50cy50cyc7XG5pbXBvcnQgeyBwbHVnaW5OYW1lQXNDb2RlSW5VaSB9IGZyb20gJy4vcGx1Z2luLW5hbWUtYXMtY29kZS1pbi11aS50cyc7XG5pbXBvcnQgeyBwbHVnaW5OYW1lQXNDb2RlIH0gZnJvbSAnLi9wbHVnaW4tbmFtZS1hcy1jb2RlLnRzJztcbmltcG9ydCB7IHJlcXVpcmVDb21wb25lbnRTdWZmaXggfSBmcm9tICcuL3JlcXVpcmUtY29tcG9uZW50LXN1ZmZpeC50cyc7XG5pbXBvcnQgeyByZXF1aXJlUGx1Z2luQXBpQ29udHJhY3RTY2hlbWFzIH0gZnJvbSAnLi9yZXF1aXJlLXBsdWdpbi1hcGktY29udHJhY3Qtc2NoZW1hcy50cyc7XG5cbi8qKlxuICogRVNMaW50IHBsdWdpbiBidW5kbGluZyBldmVyeSBgb2JzaWRpYW4tZGV2LXV0aWxzYCBjdXN0b20gcnVsZSwgcmVnaXN0ZXJlZCB1bmRlciB0aGUgYG9ic2lkaWFuLWRldi11dGlsc2AgbmFtZXNwYWNlOlxuICogdGhlIGdlbmVyaWMgcnVsZXMgb2YgYEBtbmFvdW1vdi90eXBlc2NyaXB0LWRldi10b29sa2l0YCBhbmQgdGhlIE9ic2lkaWFuIG9uZXMuIEl0IGlzIE9ORSBwbHVnaW4gY2FycnlpbmcgYm90aCxcbiAqIGJlY2F1c2UgRVNMaW50IHJlZnVzZXMgdHdvIGRpZmZlcmVudCBwbHVnaW5zIHVuZGVyIG9uZSBuYW1lc3BhY2UuXG4gKi9cbmV4cG9ydCBjb25zdCBvYnNpZGlhbkRldlV0aWxzUGx1Z2luOiBFU0xpbnQuUGx1Z2luID0ge1xuICBydWxlczoge1xuICAgIC4uLmdlbmVyaWNJbkhvdXNlRXNsaW50UnVsZXMsXG4gICAgJ21hbmlmZXN0LWRlc2NyaXB0aW9uJzogbWFuaWZlc3REZXNjcmlwdGlvbixcbiAgICAnbWFuaWZlc3QtaWQnOiBtYW5pZmVzdElkLFxuICAgICdtYW5pZmVzdC1uYW1lJzogbWFuaWZlc3ROYW1lLFxuICAgICdtYW5pZmVzdC1zY2hlbWEnOiBtYW5pZmVzdFNjaGVtYSxcbiAgICAnbm8tbG9jYWwtb2JzaWRpYW4taW50ZXJuYWxzJzogbm9Mb2NhbE9ic2lkaWFuSW50ZXJuYWxzLFxuICAgICduby1vdmVyLWNhcC13YWl0LWluLWV2YWwtaW4tb2JzaWRpYW4nOiBub092ZXJDYXBXYWl0SW5FdmFsSW5PYnNpZGlhbixcbiAgICAnbm8tdW50cnVzdGVkLWlucHV0LWV2ZW50cyc6IG5vVW50cnVzdGVkSW5wdXRFdmVudHMsXG4gICAgJ3BsdWdpbi1uYW1lLWFzLWNvZGUnOiBwbHVnaW5OYW1lQXNDb2RlLFxuICAgICdwbHVnaW4tbmFtZS1hcy1jb2RlLWluLXVpJzogcGx1Z2luTmFtZUFzQ29kZUluVWksXG4gICAgJ3JlcXVpcmUtY29tcG9uZW50LXN1ZmZpeCc6IHJlcXVpcmVDb21wb25lbnRTdWZmaXgsXG4gICAgJ3JlcXVpcmUtcGx1Z2luLWFwaS1jb250cmFjdC1zY2hlbWFzJzogcmVxdWlyZVBsdWdpbkFwaUNvbnRyYWN0U2NoZW1hc1xuICB9XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPQSxTQUFTLGlDQUFpQztBQUUxQyxTQUFTLDJCQUEyQjtBQUNwQyxTQUFTLGtCQUFrQjtBQUMzQixTQUFTLG9CQUFvQjtBQUM3QixTQUFTLHNCQUFzQjtBQUMvQixTQUFTLGdDQUFnQztBQUN6QyxTQUFTLHFDQUFxQztBQUM5QyxTQUFTLDhCQUE4QjtBQUN2QyxTQUFTLDRCQUE0QjtBQUNyQyxTQUFTLHdCQUF3QjtBQUNqQyxTQUFTLDhCQUE4QjtBQUN2QyxTQUFTLHVDQUF1QztBQU96QyxNQUFNLHlCQUF3QztBQUFBLEVBQ25ELE9BQU87QUFBQSxJQUNMLEdBQUc7QUFBQSxJQUNILHdCQUF3QjtBQUFBLElBQ3hCLGVBQWU7QUFBQSxJQUNmLGlCQUFpQjtBQUFBLElBQ2pCLG1CQUFtQjtBQUFBLElBQ25CLCtCQUErQjtBQUFBLElBQy9CLHdDQUF3QztBQUFBLElBQ3hDLDZCQUE2QjtBQUFBLElBQzdCLHVCQUF1QjtBQUFBLElBQ3ZCLDZCQUE2QjtBQUFBLElBQzdCLDRCQUE0QjtBQUFBLElBQzVCLHVDQUF1QztBQUFBLEVBQ3pDO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==