@mnaoumov/typescript-dev-toolkit 2.2.0 → 3.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 (96) hide show
  1. package/assets/biome.json +49 -0
  2. package/assets/prettier.json +13 -0
  3. package/dist/lib/cjs/docs-site/docs-links.cjs +6 -3
  4. package/dist/lib/cjs/docs-site/docs-site-commands.cjs +24 -5
  5. package/dist/lib/cjs/docs-site/docs-site-commands.d.cts +8 -3
  6. package/dist/lib/cjs/docs-site/docs-site-config.cjs +4 -1
  7. package/dist/lib/cjs/docs-site/docs-site-config.d.cts +17 -0
  8. package/dist/lib/cjs/docs-site/index.cjs +4 -1
  9. package/dist/lib/cjs/docs-site/index.d.cts +1 -0
  10. package/dist/lib/cjs/docs-site/link-check.cjs +88 -11
  11. package/dist/lib/cjs/docs-site/link-check.d.cts +91 -2
  12. package/dist/lib/cjs/docs-site/repo-homepage.cjs +108 -0
  13. package/dist/lib/cjs/docs-site/repo-homepage.d.cts +50 -0
  14. package/dist/lib/cjs/formatters/auto.cjs +59 -0
  15. package/dist/lib/cjs/formatters/auto.d.cts +51 -0
  16. package/dist/lib/cjs/formatters/biome.cjs +121 -0
  17. package/dist/lib/cjs/formatters/biome.d.cts +69 -0
  18. package/dist/lib/cjs/formatters/index.cjs +12 -3
  19. package/dist/lib/cjs/formatters/index.d.cts +3 -0
  20. package/dist/lib/cjs/formatters/prettier.cjs +93 -0
  21. package/dist/lib/cjs/formatters/prettier.d.cts +56 -0
  22. package/dist/lib/cjs/index.cjs +4 -1
  23. package/dist/lib/cjs/index.d.cts +1 -0
  24. package/dist/lib/cjs/linters/auto.cjs +52 -0
  25. package/dist/lib/cjs/linters/auto.d.cts +49 -0
  26. package/dist/lib/cjs/linters/biome.cjs +50 -0
  27. package/dist/lib/cjs/linters/biome.d.cts +36 -0
  28. package/dist/lib/cjs/linters/eslint-config.cjs +52 -29
  29. package/dist/lib/cjs/linters/eslint.cjs +15 -14
  30. package/dist/lib/cjs/linters/eslint.d.cts +6 -0
  31. package/dist/lib/cjs/linters/index.cjs +7 -1
  32. package/dist/lib/cjs/linters/index.d.cts +2 -0
  33. package/dist/lib/cjs/repo-paths.cjs +3 -1
  34. package/dist/lib/cjs/repo-paths.d.cts +8 -0
  35. package/dist/lib/cjs/shared-config-files.cjs +68 -0
  36. package/dist/lib/cjs/shared-config-files.d.cts +29 -0
  37. package/dist/lib/cjs/test-runners/auto.cjs +83 -0
  38. package/dist/lib/cjs/test-runners/auto.d.cts +82 -0
  39. package/dist/lib/cjs/test-runners/index.cjs +10 -1
  40. package/dist/lib/cjs/test-runners/index.d.cts +3 -0
  41. package/dist/lib/cjs/test-runners/jest-config.cjs +86 -0
  42. package/dist/lib/cjs/test-runners/jest-config.d.cts +71 -0
  43. package/dist/lib/cjs/test-runners/jest.cjs +111 -0
  44. package/dist/lib/cjs/test-runners/jest.d.cts +77 -0
  45. package/dist/lib/esm/docs-site/docs-links.mjs +7 -3
  46. package/dist/lib/esm/docs-site/docs-site-commands.d.mts +8 -3
  47. package/dist/lib/esm/docs-site/docs-site-commands.mjs +14 -5
  48. package/dist/lib/esm/docs-site/docs-site-config.d.mts +17 -0
  49. package/dist/lib/esm/docs-site/docs-site-config.mjs +4 -1
  50. package/dist/lib/esm/docs-site/index.d.mts +1 -0
  51. package/dist/lib/esm/docs-site/index.mjs +3 -1
  52. package/dist/lib/esm/docs-site/link-check.d.mts +91 -2
  53. package/dist/lib/esm/docs-site/link-check.mjs +83 -11
  54. package/dist/lib/esm/docs-site/repo-homepage.d.mts +50 -0
  55. package/dist/lib/esm/docs-site/repo-homepage.mjs +84 -0
  56. package/dist/lib/esm/formatters/auto.d.mts +51 -0
  57. package/dist/lib/esm/formatters/auto.mjs +40 -0
  58. package/dist/lib/esm/formatters/biome.d.mts +69 -0
  59. package/dist/lib/esm/formatters/biome.mjs +107 -0
  60. package/dist/lib/esm/formatters/index.d.mts +3 -0
  61. package/dist/lib/esm/formatters/index.mjs +8 -2
  62. package/dist/lib/esm/formatters/prettier.d.mts +56 -0
  63. package/dist/lib/esm/formatters/prettier.mjs +75 -0
  64. package/dist/lib/esm/index.d.mts +1 -0
  65. package/dist/lib/esm/index.mjs +3 -1
  66. package/dist/lib/esm/linters/auto.d.mts +49 -0
  67. package/dist/lib/esm/linters/auto.mjs +30 -0
  68. package/dist/lib/esm/linters/biome.d.mts +36 -0
  69. package/dist/lib/esm/linters/biome.mjs +29 -0
  70. package/dist/lib/esm/linters/eslint-config.mjs +52 -29
  71. package/dist/lib/esm/linters/eslint.d.mts +6 -0
  72. package/dist/lib/esm/linters/eslint.mjs +14 -14
  73. package/dist/lib/esm/linters/index.d.mts +2 -0
  74. package/dist/lib/esm/linters/index.mjs +5 -1
  75. package/dist/lib/esm/repo-paths.d.mts +8 -0
  76. package/dist/lib/esm/repo-paths.mjs +3 -1
  77. package/dist/lib/esm/shared-config-files.d.mts +29 -0
  78. package/dist/lib/esm/shared-config-files.mjs +36 -0
  79. package/dist/lib/esm/test-runners/auto.d.mts +82 -0
  80. package/dist/lib/esm/test-runners/auto.mjs +64 -0
  81. package/dist/lib/esm/test-runners/index.d.mts +3 -0
  82. package/dist/lib/esm/test-runners/index.mjs +7 -1
  83. package/dist/lib/esm/test-runners/jest-config.d.mts +71 -0
  84. package/dist/lib/esm/test-runners/jest-config.mjs +58 -0
  85. package/dist/lib/esm/test-runners/jest.d.mts +77 -0
  86. package/dist/lib/esm/test-runners/jest.mjs +75 -0
  87. package/docs-site/repo-homepage/package.json +6 -0
  88. package/formatters/auto/package.json +6 -0
  89. package/formatters/biome/package.json +6 -0
  90. package/formatters/prettier/package.json +6 -0
  91. package/linters/auto/package.json +6 -0
  92. package/linters/biome/package.json +6 -0
  93. package/package.json +21 -1
  94. package/test-runners/auto/package.json +6 -0
  95. package/test-runners/jest/package.json +6 -0
  96. package/test-runners/jest-config/package.json +6 -0
@@ -46,6 +46,14 @@ import {
46
46
  execFromRoot,
47
47
  resolvePathFromRootSafe
48
48
  } from "../root.mjs";
49
+ const ESLINT_CONFIG_FILE_NAMES = [
50
+ RepoPaths.EslintConfigJs,
51
+ RepoPaths.EslintConfigMjs,
52
+ RepoPaths.EslintConfigCjs,
53
+ RepoPaths.EslintConfigTs,
54
+ RepoPaths.EslintConfigMts,
55
+ RepoPaths.EslintConfigCts
56
+ ];
49
57
  const ESLINT_WARNINGS_AS_FINDINGS_ARGUMENTS = ["--max-warnings", "0", "--no-warn-ignored"];
50
58
  const LINT_PROBLEMS_MESSAGE = "ESLint reported lint problems. The findings are printed above.";
51
59
  const ESLINT_EXIT_CODE_CLEAN = 0;
@@ -75,21 +83,12 @@ function describeFailureToLint(result) {
75
83
  ...details.map((detail) => ` ${detail}`)
76
84
  ].join("\n");
77
85
  }
86
+ function hasEslintConfig() {
87
+ return ESLINT_CONFIG_FILE_NAMES.some((fileName) => existsSync(resolvePathFromRootSafe({ path: fileName })));
88
+ }
78
89
  async function lint(options) {
79
90
  const { defaultConfigFilePath, paths, shouldFix } = options ?? {};
80
- const configFiles = [
81
- RepoPaths.EslintConfigJs,
82
- RepoPaths.EslintConfigMjs,
83
- RepoPaths.EslintConfigCjs,
84
- RepoPaths.EslintConfigTs,
85
- RepoPaths.EslintConfigMts,
86
- RepoPaths.EslintConfigCts
87
- ];
88
- const doesConfigFileExist = configFiles.some((configFile) => {
89
- const configFilePath = resolvePathFromRootSafe({ path: configFile });
90
- return existsSync(configFilePath);
91
- });
92
- if (!doesConfigFileExist && defaultConfigFilePath) {
91
+ if (!hasEslintConfig() && defaultConfigFilePath) {
93
92
  getLibDebugger("ESLint:lint")("ESLint configuration file not found. Creating default config...");
94
93
  await cp(defaultConfigFilePath, resolvePathFromRootSafe({ path: basename(defaultConfigFilePath) }));
95
94
  }
@@ -145,6 +144,7 @@ export {
145
144
  LINT_PROBLEMS_MESSAGE,
146
145
  classifyEslintExit,
147
146
  describeFailureToLint,
147
+ hasEslintConfig,
148
148
  lint
149
149
  };
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saW50ZXJzL2VzbGludC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogTGludGluZyB1dGlsaXR5IGZvciBFU0xpbnQgY29uZmlndXJhdGlvbiB3aXRoIHN1cHBvcnQgZm9yIGF1dG9tYXRpYyBmaXhpbmcuXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgYSBmdW5jdGlvbiB0byBsaW50IGZpbGVzIGJhc2VkIG9uIHRoZSBFU0xpbnQgY29uZmlndXJhdGlvbiBkZWZpbmVkIGluIGBlc2xpbnQuY29uZmlnLnRzYC5cbiAqIEl0IGNhbiBhdXRvbWF0aWNhbGx5IGZpeCBsaW50aW5nIGlzc3VlcyBpZiBzcGVjaWZpZWQsIGFuZCBsb2dzIHJlc3VsdHMgdG8gdGhlIGNvbnNvbGUuXG4gKlxuICogSXQgYWxzbyBrZWVwcyBhIGNyYXNoZWQgbGludGVyIGFwYXJ0IGZyb20gYSByZWQgY29kZWJhc2UuIEhhbmRpbmcgRVNMaW50J3MgZXhpdCBjb2RlIHN0cmFpZ2h0IHRvXG4gKiB7QGxpbmsgZXhlY0Zyb21Sb290fSBhbmQgbGV0dGluZyBpdCB0aHJvdyByZXBvcnRzIGV2ZXJ5IG5vbi16ZXJvIGNvZGUgdGhlIHNhbWUgd2F5IC0tIGBDb21tYW5kIGZhaWxlZCB3aXRoXG4gKiBleGl0IGNvZGUgTmAgLS0gd2hpY2ggcHV0cyBhIHJ1bGUgdGhhdCB0aHJldywgYSBicm9rZW4gY29uZmlnIGFuZCBhbiBPUy1sZXZlbCBkZWF0aCBpbiB0aGUgc2FtZSBidWNrZXQgYXNcbiAqIHJlYWwgZmluZGluZ3MuIFRoZSByZWFkZXIgdGhlbiBnb2VzIGh1bnRpbmcgZm9yIGEgZGVmZWN0IGluIHNvdXJjZSBjb2RlIHRoYXQgd2FzIG5ldmVyIGp1ZGdlZCBhdCBhbGwuXG4gKi9cblxuaW1wb3J0IHsgZ2V0TGliRGVidWdnZXIgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvZGVidWcnO1xuaW1wb3J0IHsgYmFzZW5hbWUgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvcGF0aCc7XG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgeyBjcCB9IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuXG5pbXBvcnQgdHlwZSB7IEV4ZWNSZXN1bHQgfSBmcm9tICcuLi9leGVjLnRzJztcblxuaW1wb3J0IHsgcmVzb2x2ZVRvb2xDb21tYW5kIH0gZnJvbSAnLi4vcGFja2FnZS1tYW5hZ2VyLnRzJztcbmltcG9ydCB7IFJlcG9QYXRocyB9IGZyb20gJy4uL3JlcG8tcGF0aHMudHMnO1xuaW1wb3J0IHtcbiAgZXhlY0Zyb21Sb290LFxuICByZXNvbHZlUGF0aEZyb21Sb290U2FmZVxufSBmcm9tICcuLi9yb290LnRzJztcblxuLyoqXG4gKiBUaGUgZmxhZ3MgdGhhdCBtYWtlIGEgV0FSTklORyBjb3VudCBhcyBhIGZpbmRpbmcsIHBhc3NlZCBvbiBldmVyeSBydW4uXG4gKlxuICogRVNMaW50IGV4aXRzIGAwYCB3aGVuIGEgcnVuIHJlcG9ydGVkIHdhcm5pbmdzIGFuZCBubyBlcnJvcnMsIHNvIHdpdGhvdXQgYC0tbWF4LXdhcm5pbmdzIDBgIHRoZSBnYXRlIHJlYWRzIGFcbiAqIHdhcm5pbmcgYXMgYSBjbGVhbiB0cmVlOiBgbGludGAgcHJpbnRzIGl0LCByZXR1cm5zIHN1Y2Nlc3MsIGFuZCBDSSwgdGhlIHByZS1jb21taXQgaG9vayBhbmQgZXZlcnkgc3dlZXBcbiAqIGFncmVlIHRoZSB0cmVlIGlzIGNsZWFuLiBBIHdhcm5pbmcgdGhhdCBub3RoaW5nIGV2ZXIgZmFpbHMgb24gaXMgYSB3YXJuaW5nIHRoYXQgc3RhbmRzIGZvciBldmVyLCBhbmQgdGhlXG4gKiBmbGVldCBoYXMgY2FycmllZCBzZXZlcmFsIHRoYXQgZWFjaCBuZWVkZWQgYSBwZXJzb24gcmF0aGVyIHRoYW4gYSBnYXRlIHRvIG5vdGljZSB0aGVtLlxuICpcbiAqIEl0IGlzIHBhc3NlZCB1bmNvbmRpdGlvbmFsbHkgYW5kIHRoZXJlIGlzIG5vIG9wdGlvbiB0byByYWlzZSBpdDogYSBjZWlsaW5nIGEgcmVwbyBjYW4gcmFpc2UgaXMgYSBnYXRlXG4gKiBzb21lYm9keSB0dXJucyBvZmYuIEl0IGlzIHBhc3NlZCBvbiB0aGUgYC0tZml4YCBydW5zIHRvbywgYmVjYXVzZSB3aGF0ZXZlciBpcyBsZWZ0IGFmdGVyIGZpeGluZyBpcyBleGFjdGx5XG4gKiB3aGF0IHRoZSBuby1maXggcnVuIHdvdWxkIGhhdmUganVkZ2VkLCBzbyB0aGUgdHdvIGNhbm5vdCBkaXNhZ3JlZSBhYm91dCB3aGF0IGNvdW50cy4gSXQgaXMgYSBzdGF0aWMgY29tbWFuZFxuICogcGFydCByYXRoZXIgdGhhbiBhIGJhdGNoZWQgYXJndW1lbnQsIHNvIGV2ZXJ5IGJhdGNoIG9mIGEgc3BsaXQgY29tbWFuZCBsaW5lIGNhcnJpZXMgaXQuXG4gKlxuICogYC0tbm8td2Fybi1pZ25vcmVkYCBoYXMgdG8gdHJhdmVsIHdpdGggaXQuIFRoZSBwcmUtY29tbWl0IGhvb2sgaGFuZHMgRVNMaW50IGV4cGxpY2l0IGZpbGUgbGlzdHMsIGFuZCBFU0xpbnRcbiAqIHJlcG9ydHMgYW4gZXhwbGljaXRseSBwYXNzZWQsIGdsb2JhbGx5IGlnbm9yZWQgcGF0aCAoYSBgdGVtcGxhdGVzL2AgZmlsZSwgc2F5KSBhcyBhIFdBUk5JTkcgcmF0aGVyIHRoYW5cbiAqIHNraXBwaW5nIGl0LiBVbmRlciBgLS1tYXgtd2FybmluZ3MgMGAgdGhhdCB3YXJuaW5nIGFsb25lIHdvdWxkIGZhaWwgdGhlIGNvbW1pdCwgYWx0aG91Z2ggaXQgc2F5cyBub3RoaW5nXG4gKiBhYm91dCB0aGUgY29kZS5cbiAqL1xuY29uc3QgRVNMSU5UX1dBUk5JTkdTX0FTX0ZJTkRJTkdTX0FSR1VNRU5UUzogcmVhZG9ubHkgc3RyaW5nW10gPSBbJy0tbWF4LXdhcm5pbmdzJywgJzAnLCAnLS1uby13YXJuLWlnbm9yZWQnXTtcblxuLyoqXG4gKiBXaGF0IGFuIEVTTGludCBydW4gYWN0dWFsbHkgZXN0YWJsaXNoZWQuXG4gKlxuICogLSBgY2xlYW5gIC0tIGl0IGxpbnRlZCBldmVyeXRoaW5nIGFuZCBmb3VuZCBub3RoaW5nLCB3YXJuaW5ncyBpbmNsdWRlZDogc2VlXG4gKiAgIHtAbGluayBFU0xJTlRfV0FSTklOR1NfQVNfRklORElOR1NfQVJHVU1FTlRTfSBmb3Igd2hhdCBtYWtlcyB0aGUgXCJpbmNsdWRlZFwiIGhhbGYgdHJ1ZS5cbiAqIC0gYGxpbnQtcHJvYmxlbXNgIC0tIGl0IGxpbnRlZCBldmVyeXRoaW5nIGFuZCB0aGUgU09VUkNFIGlzIHJlZC5cbiAqIC0gYGRpZC1ub3QtbGludGAgLS0gaXQgbmV2ZXIgZ290IHRocm91Z2ggdGhlIGxpbnQsIHNvIHRoZSBzb3VyY2UgaGFzIG5vdCBiZWVuIGp1ZGdlZCBhdCBhbGwuXG4gKi9cbmV4cG9ydCB0eXBlIEVzbGludEV4aXRLaW5kID0gJ2NsZWFuJyB8ICdkaWQtbm90LWxpbnQnIHwgJ2xpbnQtcHJvYmxlbXMnO1xuXG4vKipcbiAqIFRoZSBtZXNzYWdlIHRocm93biBmb3IgcmVhbCBmaW5kaW5ncywga2VwdCBhcGFydCBmcm9tIHtAbGluayBkZXNjcmliZUZhaWx1cmVUb0xpbnR9J3MuXG4gKi9cbmV4cG9ydCBjb25zdCBMSU5UX1BST0JMRU1TX01FU1NBR0UgPSAnRVNMaW50IHJlcG9ydGVkIGxpbnQgcHJvYmxlbXMuIFRoZSBmaW5kaW5ncyBhcmUgcHJpbnRlZCBhYm92ZS4nO1xuXG4vKipcbiAqIEVTTGludCdzIGV4aXQtY29kZSBjb250cmFjdDogYDBgIGlzIGNsZWFuLCBgMWAgbWVhbnMgaXQgZmluaXNoZWQgYW5kIHJlcG9ydGVkIGxpbnQgcHJvYmxlbXMsIGFuZCBldmVyeVxuICogb3RoZXIgY29kZSBtZWFucyBpdCBuZXZlciBmaW5pc2hlZCBsaW50aW5nIGF0IGFsbCAtLSBhIHJ1bGUgdGhyZXcsIHRoZSBjb25maWcgaXMgYnJva2VuLCBvciB0aGUgT1Mga2lsbGVkXG4gKiB0aGUgcHJvY2Vzcy4gT25seSBgMWAgaXMgZXZpZGVuY2UgYWJvdXQgdGhlIHNvdXJjZTsgdGhlIHJlc3QgYXJlIGV2aWRlbmNlIGFib3V0IHRoZSBsaW50ZXIsIGFuZCBhIGNhbGxlclxuICogdGhhdCByZWFkcyB0aGVtIGFzIGZpbmRpbmdzIGdvZXMgaHVudGluZyBmb3IgYSBkZWZlY3QgdGhhdCBpcyBub3QgdGhlcmUuXG4gKlxuICogYDBgIGlzIG9ubHkgYXMgc3Ryb25nIGFzIHtAbGluayBFU0xJTlRfV0FSTklOR1NfQVNfRklORElOR1NfQVJHVU1FTlRTfSBtYWtlcyBpdDogb24gaXRzIG93biBFU0xpbnQgZXhpdHMgYDBgXG4gKiBmb3IgYSBydW4gdGhhdCByZXBvcnRlZCBXQVJOSU5HUyBhbmQgbm8gZXJyb3JzLCB3aGljaCB0aGlzIHdvdWxkIHJlYWQgYXMgYGNsZWFuYC5cbiAqXG4gKiBAc2VlIHtAbGluayBodHRwczovL2VzbGludC5vcmcvZG9jcy9sYXRlc3QvdXNlL2NvbW1hbmQtbGluZS1pbnRlcmZhY2UjZXhpdC1jb2Rlc31cbiAqL1xuY29uc3QgRVNMSU5UX0VYSVRfQ09ERV9DTEVBTiA9IDA7XG5cbmNvbnN0IEVTTElOVF9FWElUX0NPREVfTElOVF9QUk9CTEVNUyA9IDE7XG5cbi8qKlxuICogVGhlIGJhbm5lciBFU0xpbnQncyBmYXRhbC1lcnJvciBoYW5kbGVyIHdyaXRlcyB0byBzdGRlcnIgYmVmb3JlIGV4aXRpbmcuIEl0IGlzIE5PVCBjcmFzaC1zcGVjaWZpYzogRVNMaW50XG4gKiBwcmludHMgaXQgZm9yIGEgbWlzdHlwZWQgcGF0aCBhbmQgYSBicm9rZW4gY29uZmlnIGp1c3QgYXMgcmVhZGlseSBhcyBmb3IgYSBydWxlIHRoYXQgdGhyZXcsIHNvIGl0IGFuc3dlcnNcbiAqIFwiRVNMaW50IHRocmV3IGluc3RlYWQgb2YgZmluaXNoaW5nXCIgYW5kIG5vdGhpbmcgZmluZXIuIHtAbGluayBSVUxFX0NSQVNIX1JFR19FWFB9IGlzIHdoYXQgc2VwYXJhdGVzIHRoZVxuICogcnVsZSBjcmFzaCBvdXQgb2YgdGhhdCBzZXQuXG4gKi9cbmNvbnN0IEVTTElOVF9BQk9SVF9CQU5ORVIgPSAnT29wcyEgU29tZXRoaW5nIHdlbnQgd3JvbmchJztcblxuLyoqXG4gKiBFU0xpbnQgbmFtZXMgdGhlIG9mZmVuZGluZyBydWxlIG9uIGl0cyBvd24gbGluZSwgYW5kIG9ubHkgd2hlbiBhIFJVTEUgaXMgd2hhdCB0aHJldy5cbiAqL1xuY29uc3QgUlVMRV9DUkFTSF9SRUdfRVhQID0gL15SdWxlOiBcIi9tO1xuXG4vKipcbiAqIFRoZSBucG0gY2hhdHRlciB0aGF0IHNoYXJlcyB0aGUgY2hpbGQncyBzdGRlcnIgYW5kIHNheXMgbm90aGluZyBhYm91dCB3aHkgdGhlIGxpbnQgZmFpbGVkLlxuICovXG5jb25zdCBOUE1fTk9USUNFX1BSRUZJWCA9ICducG0gbm90aWNlJztcblxuLyoqXG4gKiBBIHN0YWNrIGZyYW1lIGluIEVTTGludCdzIG93biBvdXRwdXQgLS0gdGhlIGxpbmVzIGFib3ZlIGl0IHNheSB3aGF0IGhhcHBlbmVkLCB0aGVzZSBzYXkgb25seSB3aGVyZS5cbiAqL1xuY29uc3QgU1RBQ0tfRlJBTUVfUkVHX0VYUCA9IC9eYXRcXHMvO1xuXG5jb25zdCBNQVhfRkFJTFVSRV9ERVRBSUxfTElORVMgPSA2O1xuXG4vKipcbiAqIEV4aXQgY29kZXMgYXQgb3IgYWJvdmUgdGhpcyBhcmUgV2luZG93cyBOVCBzdGF0dXMgdmFsdWVzIHJhdGhlciB0aGFuIG9yZGluYXJ5IHByb2Nlc3MgZXhpdCBjb2RlcyAtLVxuICogbm90YWJseSBgMzIyMTIyNTQ3N2AgKGAweEMwMDAwMDA1YCwgYW4gYWNjZXNzIHZpb2xhdGlvbikuIFRoZSBFU0xpbnQgY2hpbGQgcmVhbGx5IGRvZXMgZGllIHRoYXQgd2F5IG9uXG4gKiBXaW5kb3dzIChtZWFzdXJlZCBhdCAxIHJ1biBpbiAzMCBvbiBhbiB1bmNoYW5nZWQsIGxpbnQtY2xlYW4gdHJlZSksIGFuZCBucG0gdGhlbiByZXBvcnRzIGl0IHRvIGl0cyBvd25cbiAqIGNhbGxlciBhcyBhIHBsYWluIGV4aXQgYDFgIC0tIHdoaWNoIGlzIGluZGlzdGluZ3Vpc2hhYmxlIGZyb20gXCJ0aGUgY29kZSBpcyByZWRcIiB1bmxlc3Mgc29tZXRoaW5nIHNheXNcbiAqIG90aGVyd2lzZS4gVGhhdCBpcyB3aGF0IHtAbGluayBkZXNjcmliZUZhaWx1cmVUb0xpbnR9IGlzIGZvci5cbiAqL1xuY29uc3QgTUlOX05UX1NUQVRVU19FWElUX0NPREUgPSAweDFfMDBfMDA7XG5cbmNvbnN0IEhFWF9SQURJWCA9IDE2O1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHRoZSB7QGxpbmsgbGludH0gZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGludE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBjb3BpZWQgdG8gdGhlIHByb2plY3Qgcm9vdCB3aGVuIHRoZSBwcm9qZWN0IGhhcyBub25lLiBXaXRob3V0IGl0LCBFU0xpbnQgcnVuc1xuICAgKiBhZ2FpbnN0IHdoYXRldmVyIGl0IGZpbmRzLCBhbmQgcmVwb3J0cyBhIG1pc3NpbmcgY29uZmlndXJhdGlvbiBpdHNlbGYuXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0Q29uZmlnRmlsZVBhdGg/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGZpbGUgcGF0aHMgdG8gbGludC4gSWYgb21pdHRlZCwgbGludHMgdGhlIGVudGlyZSBwcm9qZWN0LlxuICAgKi9cbiAgcmVhZG9ubHkgcGF0aHM/OiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogV2hldGhlciB0byBmaXggbGludGluZyBpc3N1ZXMgYXV0b21hdGljYWxseS5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkRml4PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBEZWNpZGVzIHdoaWNoIG9mIHRoZSB0aHJlZSB0aGluZ3MgYW4gRVNMaW50IHJ1biBlc3RhYmxpc2hlZC5cbiAqXG4gKiBBIGtpbGxlZCBwcm9jZXNzIGlzIGBkaWQtbm90LWxpbnRgIHdoYXRldmVyIGl0cyBleGl0IGNvZGUgc2F5cywgYmVjYXVzZSBhIHNpZ25hbCBtZWFucyBpdCB3YXMgc3RvcHBlZFxuICogcmF0aGVyIHRoYW4gdGhhdCBpdCBmaW5pc2hlZC4gQW4gZXhpdCBgMWAgY2FycnlpbmcgRVNMaW50J3MgZmF0YWwtZXJyb3IgYmFubmVyIGlzIGBkaWQtbm90LWxpbnRgIHRvbzogdGhhdFxuICogaXMgYSBjcmFzaCBucG0gcmVsYXllZCBhcyBhIHBsYWluIGAxYCwgbm90IGEgZmluZGluZy5cbiAqXG4gKiBAcGFyYW0gcmVzdWx0IC0gV2hhdCB0aGUgRVNMaW50IGNoaWxkIGRpZC5cbiAqIEByZXR1cm5zIFRoZSBraW5kIG9mIGVuZGluZyBpdCB3YXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbGFzc2lmeUVzbGludEV4aXQocmVzdWx0OiBFeGVjUmVzdWx0KTogRXNsaW50RXhpdEtpbmQge1xuICBpZiAocmVzdWx0LmV4aXRDb2RlID09PSBFU0xJTlRfRVhJVF9DT0RFX0NMRUFOICYmIHJlc3VsdC5leGl0U2lnbmFsID09PSBudWxsKSB7XG4gICAgcmV0dXJuICdjbGVhbic7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0LmV4aXRDb2RlID09PSBFU0xJTlRfRVhJVF9DT0RFX0xJTlRfUFJPQkxFTVMgJiYgIXJlc3VsdC5zdGRlcnIuaW5jbHVkZXMoRVNMSU5UX0FCT1JUX0JBTk5FUilcbiAgICA/ICdsaW50LXByb2JsZW1zJ1xuICAgIDogJ2RpZC1ub3QtbGludCc7XG59XG5cbi8qKlxuICogU2F5cyB3aGljaCBvZiB0aGUgZm91ciBmYWlsdXJlcyB0byBsaW50IGhhcHBlbmVkLCBhbmQgcXVvdGVzIGJhY2sgd2hhdCBFU0xpbnQgc2FpZCBhYm91dCBpdC5cbiAqXG4gKiBAcGFyYW0gcmVzdWx0IC0gV2hhdCB0aGUgRVNMaW50IGNoaWxkIGRpZC5cbiAqIEByZXR1cm5zIFRoZSBtZXNzYWdlIHRvIHRocm93LCB3aGljaCBzYXlzIG91dHJpZ2h0IHRoYXQgaXQgaXMgbm90IGEgZmluZGluZyBhYm91dCB0aGUgc291cmNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVzY3JpYmVGYWlsdXJlVG9MaW50KHJlc3VsdDogRXhlY1Jlc3VsdCk6IHN0cmluZyB7XG4gIGNvbnN0IGRldGFpbHMgPSBleHRyYWN0RmFpbHVyZURldGFpbHMocmVzdWx0LnN0ZGVycik7XG5cbiAgcmV0dXJuIFtcbiAgICBnZXRGYWlsdXJlSGVhZGxpbmUocmVzdWx0KSxcbiAgICAnVGhpcyBpcyBOT1QgYSBsaW50IGZpbmRpbmc6IHRoZSBzb3VyY2UgY29kZSBoYXMgbm90IGJlZW4ganVkZ2VkLCBzbyBkbyBub3QgZ28gbG9va2luZyBmb3IgYSBkZWZlY3QgaW4gaXQuJyxcbiAgICAnUmUtcnVuIHRoZSBjb21tYW5kLiBPbmx5IGlmIGl0IHJlcHJvZHVjZXMgaXMgdGhlcmUgc29tZXRoaW5nIHRvIGZpeCwgYW5kIHRoZSB0aGluZyB0byBmaXggaXMgdGhlIGxpbnRlci4nLFxuICAgIGAgIGV4aXQgY29kZTogJHtmb3JtYXRFeGl0Q29kZShyZXN1bHQuZXhpdENvZGUpfWAsXG4gICAgLi4ucmVzdWx0LmV4aXRTaWduYWwgPT09IG51bGwgPyBbXSA6IFtgICB0ZXJtaW5hdGVkIGJ5IHNpZ25hbDogJHtyZXN1bHQuZXhpdFNpZ25hbH1gXSxcbiAgICBkZXRhaWxzLmxlbmd0aCA+IDAgPyAnICBFU0xpbnQgc2FpZDonIDogJyAgRVNMaW50IHByaW50ZWQgbm8gZGlhZ25vc3RpYyBhdCBhbGwuJyxcbiAgICAuLi5kZXRhaWxzLm1hcCgoZGV0YWlsKSA9PiBgICAgICR7ZGV0YWlsfWApXG4gIF0uam9pbignXFxuJyk7XG59XG5cbi8qKlxuICogTGludCB0aGUgcHJvamVjdCB3aXRoIEVTTGludC5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSB7QGxpbmsgTGludE9wdGlvbnN9LlxuICogQHRocm93cyBBbiBgRXJyb3JgIGNhcnJ5aW5nIHtAbGluayBMSU5UX1BST0JMRU1TX01FU1NBR0V9IHdoZW4gdGhlIHNvdXJjZSBpcyByZWQsIGFuZFxuICoge0BsaW5rIGRlc2NyaWJlRmFpbHVyZVRvTGludH0ncyBtZXNzYWdlIHdoZW4gRVNMaW50IG5ldmVyIGZpbmlzaGVkIGxpbnRpbmcgYXQgYWxsLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbGludChvcHRpb25zPzogTGludE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgeyBkZWZhdWx0Q29uZmlnRmlsZVBhdGgsIHBhdGhzLCBzaG91bGRGaXggfSA9IG9wdGlvbnMgPz8ge307XG4gIGNvbnN0IGNvbmZpZ0ZpbGVzID0gW1xuICAgIFJlcG9QYXRocy5Fc2xpbnRDb25maWdKcyxcbiAgICBSZXBvUGF0aHMuRXNsaW50Q29uZmlnTWpzLFxuICAgIFJlcG9QYXRocy5Fc2xpbnRDb25maWdDanMsXG4gICAgUmVwb1BhdGhzLkVzbGludENvbmZpZ1RzLFxuICAgIFJlcG9QYXRocy5Fc2xpbnRDb25maWdNdHMsXG4gICAgUmVwb1BhdGhzLkVzbGludENvbmZpZ0N0c1xuICBdO1xuXG4gIGNvbnN0IGRvZXNDb25maWdGaWxlRXhpc3QgPSBjb25maWdGaWxlcy5zb21lKChjb25maWdGaWxlKSA9PiB7XG4gICAgY29uc3QgY29uZmlnRmlsZVBhdGggPSByZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7IHBhdGg6IGNvbmZpZ0ZpbGUgfSk7XG4gICAgcmV0dXJuIGV4aXN0c1N5bmMoY29uZmlnRmlsZVBhdGgpO1xuICB9KTtcblxuICBpZiAoIWRvZXNDb25maWdGaWxlRXhpc3QgJiYgZGVmYXVsdENvbmZpZ0ZpbGVQYXRoKSB7XG4gICAgZ2V0TGliRGVidWdnZXIoJ0VTTGludDpsaW50JykoJ0VTTGludCBjb25maWd1cmF0aW9uIGZpbGUgbm90IGZvdW5kLiBDcmVhdGluZyBkZWZhdWx0IGNvbmZpZy4uLicpO1xuICAgIGF3YWl0IGNwKGRlZmF1bHRDb25maWdGaWxlUGF0aCwgcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoeyBwYXRoOiBiYXNlbmFtZShkZWZhdWx0Q29uZmlnRmlsZVBhdGgpIH0pKTtcbiAgfVxuXG4gIC8qIHY4IGlnbm9yZSBzdGFydCAtLSBUaGUgcGF0aHMtcHJvdmlkZWQgYnJhbmNoIGlzIG9ubHkgZXhlcmNpc2VkIGJ5IGNvbnN1bWVyIHByb2plY3RzIHBhc3NpbmcgZmlsZSBsaXN0cy4gKi9cbiAgY29uc3QgdGFyZ2V0cyA9IHBhdGhzPy5sZW5ndGggPyBwYXRocyA6IFtSZXBvUGF0aHMuQ3VycmVudEZvbGRlcl07XG4gIC8qIHY4IGlnbm9yZSBzdG9wICovXG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGV4ZWNGcm9tUm9vdChbXG4gICAgLi4ucmVzb2x2ZVRvb2xDb21tYW5kKHsgdG9vbDogJ2VzbGludCcgfSksXG4gICAgLi4uRVNMSU5UX1dBUk5JTkdTX0FTX0ZJTkRJTkdTX0FSR1VNRU5UUyxcbiAgICAuLi4oc2hvdWxkRml4ID8gWyctLWZpeCddIDogW10pLFxuICAgIHsgYmF0Y2hlZEFyZ3VtZW50czogdGFyZ2V0cyB9XG4gIF0sIHtcbiAgICBzaG91bGRJZ25vcmVFeGl0Q29kZTogdHJ1ZSxcbiAgICBzaG91bGRJbmNsdWRlRGV0YWlsczogdHJ1ZVxuICB9KTtcblxuICBjb25zdCBraW5kID0gY2xhc3NpZnlFc2xpbnRFeGl0KHJlc3VsdCk7XG5cbiAgaWYgKGtpbmQgPT09ICdjbGVhbicpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3Ioa2luZCA9PT0gJ2xpbnQtcHJvYmxlbXMnID8gTElOVF9QUk9CTEVNU19NRVNTQUdFIDogZGVzY3JpYmVGYWlsdXJlVG9MaW50KHJlc3VsdCkpO1xufVxuXG4vKipcbiAqIFF1b3RlcyBiYWNrIGV2ZXJ5dGhpbmcgRVNMaW50IHNhaWQgdGhhdCBjYXJyaWVzIGluZm9ybWF0aW9uLiBJdCBkcm9wcyBvbmx5IHRoZSBiYW5uZXIgaXRzZWxmLCBucG0ncyBjaGF0dGVyXG4gKiBhbmQgdGhlIHN0YWNrIGZyYW1lcywgYW5kIGtlZXBzIHdoYXRldmVyIGlzIGxlZnQ6IGxpc3Rpbmcga25vd24gcHJlZml4ZXMgaW5zdGVhZCBjb3ZlcmVkIHRoZSBydWxlIGNyYXNoIGFuZFxuICogZHJvcHBlZCB0aGUgb25lIGxpbmUgdGhhdCBtYXR0ZXJlZCBmb3IgYSBtaXN0eXBlZCBwYXRoIChgTm8gZmlsZXMgbWF0Y2hpbmcgdGhlIHBhdHRlcm4gLi4uYCkuXG4gKlxuICogQHBhcmFtIHN0ZGVyciAtIEV2ZXJ5dGhpbmcgdGhlIGNoaWxkIHdyb3RlIHRvIHN0ZGVyci5cbiAqIEByZXR1cm5zIFRoZSBpbmZvcm1hdGl2ZSBsaW5lcywgZGUtZHVwbGljYXRlZCBhbmQgY2FwcGVkLlxuICovXG5mdW5jdGlvbiBleHRyYWN0RmFpbHVyZURldGFpbHMoc3RkZXJyOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gIGNvbnN0IGRldGFpbHM6IHN0cmluZ1tdID0gW107XG5cbiAgZm9yIChjb25zdCByYXdMaW5lIG9mIHN0ZGVyci5zcGxpdCgnXFxuJykpIHtcbiAgICBpZiAoZGV0YWlscy5sZW5ndGggPT09IE1BWF9GQUlMVVJFX0RFVEFJTF9MSU5FUykge1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgY29uc3QgbGluZSA9IHJhd0xpbmUudHJpbSgpO1xuICAgIGNvbnN0IGlzTm9pc2UgPSBsaW5lID09PSAnJ1xuICAgICAgfHwgbGluZS5zdGFydHNXaXRoKEVTTElOVF9BQk9SVF9CQU5ORVIpXG4gICAgICB8fCBsaW5lLnN0YXJ0c1dpdGgoTlBNX05PVElDRV9QUkVGSVgpXG4gICAgICB8fCBTVEFDS19GUkFNRV9SRUdfRVhQLnRlc3QobGluZSk7XG4gICAgaWYgKCFpc05vaXNlICYmICFkZXRhaWxzLmluY2x1ZGVzKGxpbmUpKSB7XG4gICAgICBkZXRhaWxzLnB1c2gobGluZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRldGFpbHM7XG59XG5cbi8qKlxuICogU3BlbGxzIGFuIGV4aXQgY29kZSwgYWRkaW5nIHRoZSBoZXggZm9ybSBmb3IgdGhlIE5UIHN0YXR1cyB2YWx1ZXMgYSByZWFkZXIgY2Fubm90IHJlY29nbml6ZSBpbiBkZWNpbWFsLlxuICpcbiAqIEBwYXJhbSBleGl0Q29kZSAtIFRoZSBjaGlsZCdzIGV4aXQgY29kZSwgb3IgYG51bGxgIHdoZW4gYSBzaWduYWwgZW5kZWQgaXQgZmlyc3QuXG4gKiBAcmV0dXJucyBUaGUgY29kZSBhcyBpdCBzaG91bGQgYmUgcmVhZCBiYWNrLlxuICovXG5mdW5jdGlvbiBmb3JtYXRFeGl0Q29kZShleGl0Q29kZTogbnVsbCB8IG51bWJlcik6IHN0cmluZyB7XG4gIGlmIChleGl0Q29kZSA9PT0gbnVsbCkge1xuICAgIHJldHVybiAnKG5vbmUgLSB0aGUgcHJvY2VzcyB3YXMgdGVybWluYXRlZCBiZWZvcmUgaXQgY291bGQgZXhpdCknO1xuICB9XG5cbiAgcmV0dXJuIGV4aXRDb2RlIDwgTUlOX05UX1NUQVRVU19FWElUX0NPREUgPyBTdHJpbmcoZXhpdENvZGUpIDogYCR7U3RyaW5nKGV4aXRDb2RlKX0gKDB4JHtleGl0Q29kZS50b1N0cmluZyhIRVhfUkFESVgpLnRvVXBwZXJDYXNlKCl9KWA7XG59XG5cbi8qKlxuICogTmFtZXMgd2hpY2ggb2YgdGhlIGZvdXIgd2F5cyBFU0xpbnQgZmFpbGVkIHRvIGxpbnQgdGhpcyB3YXMuXG4gKlxuICogQHBhcmFtIHJlc3VsdCAtIFdoYXQgdGhlIEVTTGludCBjaGlsZCBkaWQuXG4gKiBAcmV0dXJucyBUaGUgZmlyc3QgbGluZSBvZiB7QGxpbmsgZGVzY3JpYmVGYWlsdXJlVG9MaW50fSdzIG1lc3NhZ2UuXG4gKi9cbmZ1bmN0aW9uIGdldEZhaWx1cmVIZWFkbGluZShyZXN1bHQ6IEV4ZWNSZXN1bHQpOiBzdHJpbmcge1xuICBpZiAocmVzdWx0LmV4aXRTaWduYWwgIT09IG51bGwpIHtcbiAgICByZXR1cm4gJ0VTTGludCB3YXMgS0lMTEVEIGJlZm9yZSBpdCBmaW5pc2hlZCBsaW50aW5nLic7XG4gIH1cblxuICBpZiAocmVzdWx0LmV4aXRDb2RlICE9PSBudWxsICYmIHJlc3VsdC5leGl0Q29kZSA+PSBNSU5fTlRfU1RBVFVTX0VYSVRfQ09ERSkge1xuICAgIHJldHVybiAnRVNMaW50IERJRUQgYXQgdGhlIE9TIGxldmVsIC0gYW4gYWNjZXNzIHZpb2xhdGlvbiBvciBzaW1pbGFyLCB3aXRoIG5vIGRpYWdub3N0aWMgb2YgaXRzIG93bi4nO1xuICB9XG5cbiAgaWYgKFJVTEVfQ1JBU0hfUkVHX0VYUC50ZXN0KHJlc3VsdC5zdGRlcnIpKSB7XG4gICAgcmV0dXJuICdFU0xpbnQgQ1JBU0hFRDogYSBydWxlIHRocmV3IHdoaWxlIGxpbnRpbmcuIFRoZSBydWxlIGFuZCB0aGUgZmlsZSBpdCB3YXMgb24gYXJlIG5hbWVkIGJlbG93Lic7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0LnN0ZGVyci5pbmNsdWRlcyhFU0xJTlRfQUJPUlRfQkFOTkVSKVxuICAgID8gJ0VTTGludCBBQk9SVEVEOiBpdCB0aHJldyBpbnN0ZWFkIG9mIGZpbmlzaGluZyAtIGEgYnJva2VuIGNvbmZpZyBvciBjb21tYW5kIGxpbmUsIG9yIGFuIGludGVybmFsIGVycm9yLidcbiAgICA6ICdFU0xpbnQgZXhpdGVkIG5vbi16ZXJvIHdpdGhvdXQgcmVwb3J0aW5nIGZpbmRpbmdzLCBzbyBpdCBkaWQgbm90IGZpbmlzaCBsaW50aW5nLic7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBY0EsU0FBUyxzQkFBc0I7QUFDL0IsU0FBUyxnQkFBZ0I7QUFDekIsU0FBUyxrQkFBa0I7QUFDM0IsU0FBUyxVQUFVO0FBSW5CLFNBQVMsMEJBQTBCO0FBQ25DLFNBQVMsaUJBQWlCO0FBQzFCO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBb0JQLE1BQU0sd0NBQTJELENBQUMsa0JBQWtCLEtBQUssbUJBQW1CO0FBZXJHLE1BQU0sd0JBQXdCO0FBYXJDLE1BQU0s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
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saW50ZXJzL2VzbGludC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogTGludGluZyB1dGlsaXR5IGZvciBFU0xpbnQgY29uZmlndXJhdGlvbiB3aXRoIHN1cHBvcnQgZm9yIGF1dG9tYXRpYyBmaXhpbmcuXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgYSBmdW5jdGlvbiB0byBsaW50IGZpbGVzIGJhc2VkIG9uIHRoZSBFU0xpbnQgY29uZmlndXJhdGlvbiBkZWZpbmVkIGluIGBlc2xpbnQuY29uZmlnLnRzYC5cbiAqIEl0IGNhbiBhdXRvbWF0aWNhbGx5IGZpeCBsaW50aW5nIGlzc3VlcyBpZiBzcGVjaWZpZWQsIGFuZCBsb2dzIHJlc3VsdHMgdG8gdGhlIGNvbnNvbGUuXG4gKlxuICogSXQgYWxzbyBrZWVwcyBhIGNyYXNoZWQgbGludGVyIGFwYXJ0IGZyb20gYSByZWQgY29kZWJhc2UuIEhhbmRpbmcgRVNMaW50J3MgZXhpdCBjb2RlIHN0cmFpZ2h0IHRvXG4gKiB7QGxpbmsgZXhlY0Zyb21Sb290fSBhbmQgbGV0dGluZyBpdCB0aHJvdyByZXBvcnRzIGV2ZXJ5IG5vbi16ZXJvIGNvZGUgdGhlIHNhbWUgd2F5IC0tIGBDb21tYW5kIGZhaWxlZCB3aXRoXG4gKiBleGl0IGNvZGUgTmAgLS0gd2hpY2ggcHV0cyBhIHJ1bGUgdGhhdCB0aHJldywgYSBicm9rZW4gY29uZmlnIGFuZCBhbiBPUy1sZXZlbCBkZWF0aCBpbiB0aGUgc2FtZSBidWNrZXQgYXNcbiAqIHJlYWwgZmluZGluZ3MuIFRoZSByZWFkZXIgdGhlbiBnb2VzIGh1bnRpbmcgZm9yIGEgZGVmZWN0IGluIHNvdXJjZSBjb2RlIHRoYXQgd2FzIG5ldmVyIGp1ZGdlZCBhdCBhbGwuXG4gKi9cblxuaW1wb3J0IHsgZ2V0TGliRGVidWdnZXIgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvZGVidWcnO1xuaW1wb3J0IHsgYmFzZW5hbWUgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvcGF0aCc7XG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgeyBjcCB9IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuXG5pbXBvcnQgdHlwZSB7IEV4ZWNSZXN1bHQgfSBmcm9tICcuLi9leGVjLnRzJztcblxuaW1wb3J0IHsgcmVzb2x2ZVRvb2xDb21tYW5kIH0gZnJvbSAnLi4vcGFja2FnZS1tYW5hZ2VyLnRzJztcbmltcG9ydCB7IFJlcG9QYXRocyB9IGZyb20gJy4uL3JlcG8tcGF0aHMudHMnO1xuaW1wb3J0IHtcbiAgZXhlY0Zyb21Sb290LFxuICByZXNvbHZlUGF0aEZyb21Sb290U2FmZVxufSBmcm9tICcuLi9yb290LnRzJztcblxuLyoqXG4gKiBUaGUgZmxhdCBjb25maWd1cmF0aW9uIGZpbGVzIEVTTGludCByZWFkcy5cbiAqL1xuY29uc3QgRVNMSU5UX0NPTkZJR19GSUxFX05BTUVTOiByZWFkb25seSBzdHJpbmdbXSA9IFtcbiAgUmVwb1BhdGhzLkVzbGludENvbmZpZ0pzLFxuICBSZXBvUGF0aHMuRXNsaW50Q29uZmlnTWpzLFxuICBSZXBvUGF0aHMuRXNsaW50Q29uZmlnQ2pzLFxuICBSZXBvUGF0aHMuRXNsaW50Q29uZmlnVHMsXG4gIFJlcG9QYXRocy5Fc2xpbnRDb25maWdNdHMsXG4gIFJlcG9QYXRocy5Fc2xpbnRDb25maWdDdHNcbl07XG5cbi8qKlxuICogVGhlIGZsYWdzIHRoYXQgbWFrZSBhIFdBUk5JTkcgY291bnQgYXMgYSBmaW5kaW5nLCBwYXNzZWQgb24gZXZlcnkgcnVuLlxuICpcbiAqIEVTTGludCBleGl0cyBgMGAgd2hlbiBhIHJ1biByZXBvcnRlZCB3YXJuaW5ncyBhbmQgbm8gZXJyb3JzLCBzbyB3aXRob3V0IGAtLW1heC13YXJuaW5ncyAwYCB0aGUgZ2F0ZSByZWFkcyBhXG4gKiB3YXJuaW5nIGFzIGEgY2xlYW4gdHJlZTogYGxpbnRgIHByaW50cyBpdCwgcmV0dXJucyBzdWNjZXNzLCBhbmQgQ0ksIHRoZSBwcmUtY29tbWl0IGhvb2sgYW5kIGV2ZXJ5IHN3ZWVwXG4gKiBhZ3JlZSB0aGUgdHJlZSBpcyBjbGVhbi4gQSB3YXJuaW5nIHRoYXQgbm90aGluZyBldmVyIGZhaWxzIG9uIGlzIGEgd2FybmluZyB0aGF0IHN0YW5kcyBmb3IgZXZlciwgYW5kIHRoZVxuICogZmxlZXQgaGFzIGNhcnJpZWQgc2V2ZXJhbCB0aGF0IGVhY2ggbmVlZGVkIGEgcGVyc29uIHJhdGhlciB0aGFuIGEgZ2F0ZSB0byBub3RpY2UgdGhlbS5cbiAqXG4gKiBJdCBpcyBwYXNzZWQgdW5jb25kaXRpb25hbGx5IGFuZCB0aGVyZSBpcyBubyBvcHRpb24gdG8gcmFpc2UgaXQ6IGEgY2VpbGluZyBhIHJlcG8gY2FuIHJhaXNlIGlzIGEgZ2F0ZVxuICogc29tZWJvZHkgdHVybnMgb2ZmLiBJdCBpcyBwYXNzZWQgb24gdGhlIGAtLWZpeGAgcnVucyB0b28sIGJlY2F1c2Ugd2hhdGV2ZXIgaXMgbGVmdCBhZnRlciBmaXhpbmcgaXMgZXhhY3RseVxuICogd2hhdCB0aGUgbm8tZml4IHJ1biB3b3VsZCBoYXZlIGp1ZGdlZCwgc28gdGhlIHR3byBjYW5ub3QgZGlzYWdyZWUgYWJvdXQgd2hhdCBjb3VudHMuIEl0IGlzIGEgc3RhdGljIGNvbW1hbmRcbiAqIHBhcnQgcmF0aGVyIHRoYW4gYSBiYXRjaGVkIGFyZ3VtZW50LCBzbyBldmVyeSBiYXRjaCBvZiBhIHNwbGl0IGNvbW1hbmQgbGluZSBjYXJyaWVzIGl0LlxuICpcbiAqIGAtLW5vLXdhcm4taWdub3JlZGAgaGFzIHRvIHRyYXZlbCB3aXRoIGl0LiBUaGUgcHJlLWNvbW1pdCBob29rIGhhbmRzIEVTTGludCBleHBsaWNpdCBmaWxlIGxpc3RzLCBhbmQgRVNMaW50XG4gKiByZXBvcnRzIGFuIGV4cGxpY2l0bHkgcGFzc2VkLCBnbG9iYWxseSBpZ25vcmVkIHBhdGggKGEgYHRlbXBsYXRlcy9gIGZpbGUsIHNheSkgYXMgYSBXQVJOSU5HIHJhdGhlciB0aGFuXG4gKiBza2lwcGluZyBpdC4gVW5kZXIgYC0tbWF4LXdhcm5pbmdzIDBgIHRoYXQgd2FybmluZyBhbG9uZSB3b3VsZCBmYWlsIHRoZSBjb21taXQsIGFsdGhvdWdoIGl0IHNheXMgbm90aGluZ1xuICogYWJvdXQgdGhlIGNvZGUuXG4gKi9cbmNvbnN0IEVTTElOVF9XQVJOSU5HU19BU19GSU5ESU5HU19BUkdVTUVOVFM6IHJlYWRvbmx5IHN0cmluZ1tdID0gWyctLW1heC13YXJuaW5ncycsICcwJywgJy0tbm8td2Fybi1pZ25vcmVkJ107XG5cbi8qKlxuICogV2hhdCBhbiBFU0xpbnQgcnVuIGFjdHVhbGx5IGVzdGFibGlzaGVkLlxuICpcbiAqIC0gYGNsZWFuYCAtLSBpdCBsaW50ZWQgZXZlcnl0aGluZyBhbmQgZm91bmQgbm90aGluZywgd2FybmluZ3MgaW5jbHVkZWQ6IHNlZVxuICogICB7QGxpbmsgRVNMSU5UX1dBUk5JTkdTX0FTX0ZJTkRJTkdTX0FSR1VNRU5UU30gZm9yIHdoYXQgbWFrZXMgdGhlIFwiaW5jbHVkZWRcIiBoYWxmIHRydWUuXG4gKiAtIGBsaW50LXByb2JsZW1zYCAtLSBpdCBsaW50ZWQgZXZlcnl0aGluZyBhbmQgdGhlIFNPVVJDRSBpcyByZWQuXG4gKiAtIGBkaWQtbm90LWxpbnRgIC0tIGl0IG5ldmVyIGdvdCB0aHJvdWdoIHRoZSBsaW50LCBzbyB0aGUgc291cmNlIGhhcyBub3QgYmVlbiBqdWRnZWQgYXQgYWxsLlxuICovXG5leHBvcnQgdHlwZSBFc2xpbnRFeGl0S2luZCA9ICdjbGVhbicgfCAnZGlkLW5vdC1saW50JyB8ICdsaW50LXByb2JsZW1zJztcblxuLyoqXG4gKiBUaGUgbWVzc2FnZSB0aHJvd24gZm9yIHJlYWwgZmluZGluZ3MsIGtlcHQgYXBhcnQgZnJvbSB7QGxpbmsgZGVzY3JpYmVGYWlsdXJlVG9MaW50fSdzLlxuICovXG5leHBvcnQgY29uc3QgTElOVF9QUk9CTEVNU19NRVNTQUdFID0gJ0VTTGludCByZXBvcnRlZCBsaW50IHByb2JsZW1zLiBUaGUgZmluZGluZ3MgYXJlIHByaW50ZWQgYWJvdmUuJztcblxuLyoqXG4gKiBFU0xpbnQncyBleGl0LWNvZGUgY29udHJhY3Q6IGAwYCBpcyBjbGVhbiwgYDFgIG1lYW5zIGl0IGZpbmlzaGVkIGFuZCByZXBvcnRlZCBsaW50IHByb2JsZW1zLCBhbmQgZXZlcnlcbiAqIG90aGVyIGNvZGUgbWVhbnMgaXQgbmV2ZXIgZmluaXNoZWQgbGludGluZyBhdCBhbGwgLS0gYSBydWxlIHRocmV3LCB0aGUgY29uZmlnIGlzIGJyb2tlbiwgb3IgdGhlIE9TIGtpbGxlZFxuICogdGhlIHByb2Nlc3MuIE9ubHkgYDFgIGlzIGV2aWRlbmNlIGFib3V0IHRoZSBzb3VyY2U7IHRoZSByZXN0IGFyZSBldmlkZW5jZSBhYm91dCB0aGUgbGludGVyLCBhbmQgYSBjYWxsZXJcbiAqIHRoYXQgcmVhZHMgdGhlbSBhcyBmaW5kaW5ncyBnb2VzIGh1bnRpbmcgZm9yIGEgZGVmZWN0IHRoYXQgaXMgbm90IHRoZXJlLlxuICpcbiAqIGAwYCBpcyBvbmx5IGFzIHN0cm9uZyBhcyB7QGxpbmsgRVNMSU5UX1dBUk5JTkdTX0FTX0ZJTkRJTkdTX0FSR1VNRU5UU30gbWFrZXMgaXQ6IG9uIGl0cyBvd24gRVNMaW50IGV4aXRzIGAwYFxuICogZm9yIGEgcnVuIHRoYXQgcmVwb3J0ZWQgV0FSTklOR1MgYW5kIG5vIGVycm9ycywgd2hpY2ggdGhpcyB3b3VsZCByZWFkIGFzIGBjbGVhbmAuXG4gKlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9lc2xpbnQub3JnL2RvY3MvbGF0ZXN0L3VzZS9jb21tYW5kLWxpbmUtaW50ZXJmYWNlI2V4aXQtY29kZXN9XG4gKi9cbmNvbnN0IEVTTElOVF9FWElUX0NPREVfQ0xFQU4gPSAwO1xuXG5jb25zdCBFU0xJTlRfRVhJVF9DT0RFX0xJTlRfUFJPQkxFTVMgPSAxO1xuXG4vKipcbiAqIFRoZSBiYW5uZXIgRVNMaW50J3MgZmF0YWwtZXJyb3IgaGFuZGxlciB3cml0ZXMgdG8gc3RkZXJyIGJlZm9yZSBleGl0aW5nLiBJdCBpcyBOT1QgY3Jhc2gtc3BlY2lmaWM6IEVTTGludFxuICogcHJpbnRzIGl0IGZvciBhIG1pc3R5cGVkIHBhdGggYW5kIGEgYnJva2VuIGNvbmZpZyBqdXN0IGFzIHJlYWRpbHkgYXMgZm9yIGEgcnVsZSB0aGF0IHRocmV3LCBzbyBpdCBhbnN3ZXJzXG4gKiBcIkVTTGludCB0aHJldyBpbnN0ZWFkIG9mIGZpbmlzaGluZ1wiIGFuZCBub3RoaW5nIGZpbmVyLiB7QGxpbmsgUlVMRV9DUkFTSF9SRUdfRVhQfSBpcyB3aGF0IHNlcGFyYXRlcyB0aGVcbiAqIHJ1bGUgY3Jhc2ggb3V0IG9mIHRoYXQgc2V0LlxuICovXG5jb25zdCBFU0xJTlRfQUJPUlRfQkFOTkVSID0gJ09vcHMhIFNvbWV0aGluZyB3ZW50IHdyb25nISc7XG5cbi8qKlxuICogRVNMaW50IG5hbWVzIHRoZSBvZmZlbmRpbmcgcnVsZSBvbiBpdHMgb3duIGxpbmUsIGFuZCBvbmx5IHdoZW4gYSBSVUxFIGlzIHdoYXQgdGhyZXcuXG4gKi9cbmNvbnN0IFJVTEVfQ1JBU0hfUkVHX0VYUCA9IC9eUnVsZTogXCIvbTtcblxuLyoqXG4gKiBUaGUgbnBtIGNoYXR0ZXIgdGhhdCBzaGFyZXMgdGhlIGNoaWxkJ3Mgc3RkZXJyIGFuZCBzYXlzIG5vdGhpbmcgYWJvdXQgd2h5IHRoZSBsaW50IGZhaWxlZC5cbiAqL1xuY29uc3QgTlBNX05PVElDRV9QUkVGSVggPSAnbnBtIG5vdGljZSc7XG5cbi8qKlxuICogQSBzdGFjayBmcmFtZSBpbiBFU0xpbnQncyBvd24gb3V0cHV0IC0tIHRoZSBsaW5lcyBhYm92ZSBpdCBzYXkgd2hhdCBoYXBwZW5lZCwgdGhlc2Ugc2F5IG9ubHkgd2hlcmUuXG4gKi9cbmNvbnN0IFNUQUNLX0ZSQU1FX1JFR19FWFAgPSAvXmF0XFxzLztcblxuY29uc3QgTUFYX0ZBSUxVUkVfREVUQUlMX0xJTkVTID0gNjtcblxuLyoqXG4gKiBFeGl0IGNvZGVzIGF0IG9yIGFib3ZlIHRoaXMgYXJlIFdpbmRvd3MgTlQgc3RhdHVzIHZhbHVlcyByYXRoZXIgdGhhbiBvcmRpbmFyeSBwcm9jZXNzIGV4aXQgY29kZXMgLS1cbiAqIG5vdGFibHkgYDMyMjEyMjU0NzdgIChgMHhDMDAwMDAwNWAsIGFuIGFjY2VzcyB2aW9sYXRpb24pLiBUaGUgRVNMaW50IGNoaWxkIHJlYWxseSBkb2VzIGRpZSB0aGF0IHdheSBvblxuICogV2luZG93cyAobWVhc3VyZWQgYXQgMSBydW4gaW4gMzAgb24gYW4gdW5jaGFuZ2VkLCBsaW50LWNsZWFuIHRyZWUpLCBhbmQgbnBtIHRoZW4gcmVwb3J0cyBpdCB0byBpdHMgb3duXG4gKiBjYWxsZXIgYXMgYSBwbGFpbiBleGl0IGAxYCAtLSB3aGljaCBpcyBpbmRpc3Rpbmd1aXNoYWJsZSBmcm9tIFwidGhlIGNvZGUgaXMgcmVkXCIgdW5sZXNzIHNvbWV0aGluZyBzYXlzXG4gKiBvdGhlcndpc2UuIFRoYXQgaXMgd2hhdCB7QGxpbmsgZGVzY3JpYmVGYWlsdXJlVG9MaW50fSBpcyBmb3IuXG4gKi9cbmNvbnN0IE1JTl9OVF9TVEFUVVNfRVhJVF9DT0RFID0gMHgxXzAwXzAwO1xuXG5jb25zdCBIRVhfUkFESVggPSAxNjtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB0aGUge0BsaW5rIGxpbnR9IGZ1bmN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExpbnRPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBjb25maWd1cmF0aW9uIGZpbGUgY29waWVkIHRvIHRoZSBwcm9qZWN0IHJvb3Qgd2hlbiB0aGUgcHJvamVjdCBoYXMgbm9uZS4gV2l0aG91dCBpdCwgRVNMaW50IHJ1bnNcbiAgICogYWdhaW5zdCB3aGF0ZXZlciBpdCBmaW5kcywgYW5kIHJlcG9ydHMgYSBtaXNzaW5nIGNvbmZpZ3VyYXRpb24gaXRzZWxmLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdENvbmZpZ0ZpbGVQYXRoPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBmaWxlIHBhdGhzIHRvIGxpbnQuIElmIG9taXR0ZWQsIGxpbnRzIHRoZSBlbnRpcmUgcHJvamVjdC5cbiAgICovXG4gIHJlYWRvbmx5IHBhdGhzPzogc3RyaW5nW10gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZml4IGxpbnRpbmcgaXNzdWVzIGF1dG9tYXRpY2FsbHkuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZEZpeD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogRGVjaWRlcyB3aGljaCBvZiB0aGUgdGhyZWUgdGhpbmdzIGFuIEVTTGludCBydW4gZXN0YWJsaXNoZWQuXG4gKlxuICogQSBraWxsZWQgcHJvY2VzcyBpcyBgZGlkLW5vdC1saW50YCB3aGF0ZXZlciBpdHMgZXhpdCBjb2RlIHNheXMsIGJlY2F1c2UgYSBzaWduYWwgbWVhbnMgaXQgd2FzIHN0b3BwZWRcbiAqIHJhdGhlciB0aGFuIHRoYXQgaXQgZmluaXNoZWQuIEFuIGV4aXQgYDFgIGNhcnJ5aW5nIEVTTGludCdzIGZhdGFsLWVycm9yIGJhbm5lciBpcyBgZGlkLW5vdC1saW50YCB0b286IHRoYXRcbiAqIGlzIGEgY3Jhc2ggbnBtIHJlbGF5ZWQgYXMgYSBwbGFpbiBgMWAsIG5vdCBhIGZpbmRpbmcuXG4gKlxuICogQHBhcmFtIHJlc3VsdCAtIFdoYXQgdGhlIEVTTGludCBjaGlsZCBkaWQuXG4gKiBAcmV0dXJucyBUaGUga2luZCBvZiBlbmRpbmcgaXQgd2FzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xhc3NpZnlFc2xpbnRFeGl0KHJlc3VsdDogRXhlY1Jlc3VsdCk6IEVzbGludEV4aXRLaW5kIHtcbiAgaWYgKHJlc3VsdC5leGl0Q29kZSA9PT0gRVNMSU5UX0VYSVRfQ09ERV9DTEVBTiAmJiByZXN1bHQuZXhpdFNpZ25hbCA9PT0gbnVsbCkge1xuICAgIHJldHVybiAnY2xlYW4nO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdC5leGl0Q29kZSA9PT0gRVNMSU5UX0VYSVRfQ09ERV9MSU5UX1BST0JMRU1TICYmICFyZXN1bHQuc3RkZXJyLmluY2x1ZGVzKEVTTElOVF9BQk9SVF9CQU5ORVIpXG4gICAgPyAnbGludC1wcm9ibGVtcydcbiAgICA6ICdkaWQtbm90LWxpbnQnO1xufVxuXG4vKipcbiAqIFNheXMgd2hpY2ggb2YgdGhlIGZvdXIgZmFpbHVyZXMgdG8gbGludCBoYXBwZW5lZCwgYW5kIHF1b3RlcyBiYWNrIHdoYXQgRVNMaW50IHNhaWQgYWJvdXQgaXQuXG4gKlxuICogQHBhcmFtIHJlc3VsdCAtIFdoYXQgdGhlIEVTTGludCBjaGlsZCBkaWQuXG4gKiBAcmV0dXJucyBUaGUgbWVzc2FnZSB0byB0aHJvdywgd2hpY2ggc2F5cyBvdXRyaWdodCB0aGF0IGl0IGlzIG5vdCBhIGZpbmRpbmcgYWJvdXQgdGhlIHNvdXJjZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlc2NyaWJlRmFpbHVyZVRvTGludChyZXN1bHQ6IEV4ZWNSZXN1bHQpOiBzdHJpbmcge1xuICBjb25zdCBkZXRhaWxzID0gZXh0cmFjdEZhaWx1cmVEZXRhaWxzKHJlc3VsdC5zdGRlcnIpO1xuXG4gIHJldHVybiBbXG4gICAgZ2V0RmFpbHVyZUhlYWRsaW5lKHJlc3VsdCksXG4gICAgJ1RoaXMgaXMgTk9UIGEgbGludCBmaW5kaW5nOiB0aGUgc291cmNlIGNvZGUgaGFzIG5vdCBiZWVuIGp1ZGdlZCwgc28gZG8gbm90IGdvIGxvb2tpbmcgZm9yIGEgZGVmZWN0IGluIGl0LicsXG4gICAgJ1JlLXJ1biB0aGUgY29tbWFuZC4gT25seSBpZiBpdCByZXByb2R1Y2VzIGlzIHRoZXJlIHNvbWV0aGluZyB0byBmaXgsIGFuZCB0aGUgdGhpbmcgdG8gZml4IGlzIHRoZSBsaW50ZXIuJyxcbiAgICBgICBleGl0IGNvZGU6ICR7Zm9ybWF0RXhpdENvZGUocmVzdWx0LmV4aXRDb2RlKX1gLFxuICAgIC4uLnJlc3VsdC5leGl0U2lnbmFsID09PSBudWxsID8gW10gOiBbYCAgdGVybWluYXRlZCBieSBzaWduYWw6ICR7cmVzdWx0LmV4aXRTaWduYWx9YF0sXG4gICAgZGV0YWlscy5sZW5ndGggPiAwID8gJyAgRVNMaW50IHNhaWQ6JyA6ICcgIEVTTGludCBwcmludGVkIG5vIGRpYWdub3N0aWMgYXQgYWxsLicsXG4gICAgLi4uZGV0YWlscy5tYXAoKGRldGFpbCkgPT4gYCAgICAke2RldGFpbH1gKVxuICBdLmpvaW4oJ1xcbicpO1xufVxuXG4vKipcbiAqIFNheXMgd2hldGhlciB0aGUgcHJvamVjdCBjb25maWd1cmVzIEVTTGludCBpdHNlbGYuXG4gKlxuICogQHJldHVybnMgV2hldGhlciBhbiBgZXNsaW50LmNvbmZpZy4qYCBmaWxlIGV4aXN0cyBhdCB0aGUgcHJvamVjdCByb290LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaGFzRXNsaW50Q29uZmlnKCk6IGJvb2xlYW4ge1xuICByZXR1cm4gRVNMSU5UX0NPTkZJR19GSUxFX05BTUVTLnNvbWUoKGZpbGVOYW1lKSA9PiBleGlzdHNTeW5jKHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKHsgcGF0aDogZmlsZU5hbWUgfSkpKTtcbn1cblxuLyoqXG4gKiBMaW50IHRoZSBwcm9qZWN0IHdpdGggRVNMaW50LlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHtAbGluayBMaW50T3B0aW9uc30uXG4gKiBAdGhyb3dzIEFuIGBFcnJvcmAgY2Fycnlpbmcge0BsaW5rIExJTlRfUFJPQkxFTVNfTUVTU0FHRX0gd2hlbiB0aGUgc291cmNlIGlzIHJlZCwgYW5kXG4gKiB7QGxpbmsgZGVzY3JpYmVGYWlsdXJlVG9MaW50fSdzIG1lc3NhZ2Ugd2hlbiBFU0xpbnQgbmV2ZXIgZmluaXNoZWQgbGludGluZyBhdCBhbGwuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsaW50KG9wdGlvbnM/OiBMaW50T3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7IGRlZmF1bHRDb25maWdGaWxlUGF0aCwgcGF0aHMsIHNob3VsZEZpeCB9ID0gb3B0aW9ucyA/PyB7fTtcbiAgaWYgKCFoYXNFc2xpbnRDb25maWcoKSAmJiBkZWZhdWx0Q29uZmlnRmlsZVBhdGgpIHtcbiAgICBnZXRMaWJEZWJ1Z2dlcignRVNMaW50OmxpbnQnKSgnRVNMaW50IGNvbmZpZ3VyYXRpb24gZmlsZSBub3QgZm91bmQuIENyZWF0aW5nIGRlZmF1bHQgY29uZmlnLi4uJyk7XG4gICAgYXdhaXQgY3AoZGVmYXVsdENvbmZpZ0ZpbGVQYXRoLCByZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7IHBhdGg6IGJhc2VuYW1lKGRlZmF1bHRDb25maWdGaWxlUGF0aCkgfSkpO1xuICB9XG5cbiAgLyogdjggaWdub3JlIHN0YXJ0IC0tIFRoZSBwYXRocy1wcm92aWRlZCBicmFuY2ggaXMgb25seSBleGVyY2lzZWQgYnkgY29uc3VtZXIgcHJvamVjdHMgcGFzc2luZyBmaWxlIGxpc3RzLiAqL1xuICBjb25zdCB0YXJnZXRzID0gcGF0aHM/Lmxlbmd0aCA/IHBhdGhzIDogW1JlcG9QYXRocy5DdXJyZW50Rm9sZGVyXTtcbiAgLyogdjggaWdub3JlIHN0b3AgKi9cbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZXhlY0Zyb21Sb290KFtcbiAgICAuLi5yZXNvbHZlVG9vbENvbW1hbmQoeyB0b29sOiAnZXNsaW50JyB9KSxcbiAgICAuLi5FU0xJTlRfV0FSTklOR1NfQVNfRklORElOR1NfQVJHVU1FTlRTLFxuICAgIC4uLihzaG91bGRGaXggPyBbJy0tZml4J10gOiBbXSksXG4gICAgeyBiYXRjaGVkQXJndW1lbnRzOiB0YXJnZXRzIH1cbiAgXSwge1xuICAgIHNob3VsZElnbm9yZUV4aXRDb2RlOiB0cnVlLFxuICAgIHNob3VsZEluY2x1ZGVEZXRhaWxzOiB0cnVlXG4gIH0pO1xuXG4gIGNvbnN0IGtpbmQgPSBjbGFzc2lmeUVzbGludEV4aXQocmVzdWx0KTtcblxuICBpZiAoa2luZCA9PT0gJ2NsZWFuJykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcihraW5kID09PSAnbGludC1wcm9ibGVtcycgPyBMSU5UX1BST0JMRU1TX01FU1NBR0UgOiBkZXNjcmliZUZhaWx1cmVUb0xpbnQocmVzdWx0KSk7XG59XG5cbi8qKlxuICogUXVvdGVzIGJhY2sgZXZlcnl0aGluZyBFU0xpbnQgc2FpZCB0aGF0IGNhcnJpZXMgaW5mb3JtYXRpb24uIEl0IGRyb3BzIG9ubHkgdGhlIGJhbm5lciBpdHNlbGYsIG5wbSdzIGNoYXR0ZXJcbiAqIGFuZCB0aGUgc3RhY2sgZnJhbWVzLCBhbmQga2VlcHMgd2hhdGV2ZXIgaXMgbGVmdDogbGlzdGluZyBrbm93biBwcmVmaXhlcyBpbnN0ZWFkIGNvdmVyZWQgdGhlIHJ1bGUgY3Jhc2ggYW5kXG4gKiBkcm9wcGVkIHRoZSBvbmUgbGluZSB0aGF0IG1hdHRlcmVkIGZvciBhIG1pc3R5cGVkIHBhdGggKGBObyBmaWxlcyBtYXRjaGluZyB0aGUgcGF0dGVybiAuLi5gKS5cbiAqXG4gKiBAcGFyYW0gc3RkZXJyIC0gRXZlcnl0aGluZyB0aGUgY2hpbGQgd3JvdGUgdG8gc3RkZXJyLlxuICogQHJldHVybnMgVGhlIGluZm9ybWF0aXZlIGxpbmVzLCBkZS1kdXBsaWNhdGVkIGFuZCBjYXBwZWQuXG4gKi9cbmZ1bmN0aW9uIGV4dHJhY3RGYWlsdXJlRGV0YWlscyhzdGRlcnI6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgY29uc3QgZGV0YWlsczogc3RyaW5nW10gPSBbXTtcblxuICBmb3IgKGNvbnN0IHJhd0xpbmUgb2Ygc3RkZXJyLnNwbGl0KCdcXG4nKSkge1xuICAgIGlmIChkZXRhaWxzLmxlbmd0aCA9PT0gTUFYX0ZBSUxVUkVfREVUQUlMX0xJTkVTKSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBjb25zdCBsaW5lID0gcmF3TGluZS50cmltKCk7XG4gICAgY29uc3QgaXNOb2lzZSA9IGxpbmUgPT09ICcnXG4gICAgICB8fCBsaW5lLnN0YXJ0c1dpdGgoRVNMSU5UX0FCT1JUX0JBTk5FUilcbiAgICAgIHx8IGxpbmUuc3RhcnRzV2l0aChOUE1fTk9USUNFX1BSRUZJWClcbiAgICAgIHx8IFNUQUNLX0ZSQU1FX1JFR19FWFAudGVzdChsaW5lKTtcbiAgICBpZiAoIWlzTm9pc2UgJiYgIWRldGFpbHMuaW5jbHVkZXMobGluZSkpIHtcbiAgICAgIGRldGFpbHMucHVzaChsaW5lKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGV0YWlscztcbn1cblxuLyoqXG4gKiBTcGVsbHMgYW4gZXhpdCBjb2RlLCBhZGRpbmcgdGhlIGhleCBmb3JtIGZvciB0aGUgTlQgc3RhdHVzIHZhbHVlcyBhIHJlYWRlciBjYW5ub3QgcmVjb2duaXplIGluIGRlY2ltYWwuXG4gKlxuICogQHBhcmFtIGV4aXRDb2RlIC0gVGhlIGNoaWxkJ3MgZXhpdCBjb2RlLCBvciBgbnVsbGAgd2hlbiBhIHNpZ25hbCBlbmRlZCBpdCBmaXJzdC5cbiAqIEByZXR1cm5zIFRoZSBjb2RlIGFzIGl0IHNob3VsZCBiZSByZWFkIGJhY2suXG4gKi9cbmZ1bmN0aW9uIGZvcm1hdEV4aXRDb2RlKGV4aXRDb2RlOiBudWxsIHwgbnVtYmVyKTogc3RyaW5nIHtcbiAgaWYgKGV4aXRDb2RlID09PSBudWxsKSB7XG4gICAgcmV0dXJuICcobm9uZSAtIHRoZSBwcm9jZXNzIHdhcyB0ZXJtaW5hdGVkIGJlZm9yZSBpdCBjb3VsZCBleGl0KSc7XG4gIH1cblxuICByZXR1cm4gZXhpdENvZGUgPCBNSU5fTlRfU1RBVFVTX0VYSVRfQ09ERSA/IFN0cmluZyhleGl0Q29kZSkgOiBgJHtTdHJpbmcoZXhpdENvZGUpfSAoMHgke2V4aXRDb2RlLnRvU3RyaW5nKEhFWF9SQURJWCkudG9VcHBlckNhc2UoKX0pYDtcbn1cblxuLyoqXG4gKiBOYW1lcyB3aGljaCBvZiB0aGUgZm91ciB3YXlzIEVTTGludCBmYWlsZWQgdG8gbGludCB0aGlzIHdhcy5cbiAqXG4gKiBAcGFyYW0gcmVzdWx0IC0gV2hhdCB0aGUgRVNMaW50IGNoaWxkIGRpZC5cbiAqIEByZXR1cm5zIFRoZSBmaXJzdCBsaW5lIG9mIHtAbGluayBkZXNjcmliZUZhaWx1cmVUb0xpbnR9J3MgbWVzc2FnZS5cbiAqL1xuZnVuY3Rpb24gZ2V0RmFpbHVyZUhlYWRsaW5lKHJlc3VsdDogRXhlY1Jlc3VsdCk6IHN0cmluZyB7XG4gIGlmIChyZXN1bHQuZXhpdFNpZ25hbCAhPT0gbnVsbCkge1xuICAgIHJldHVybiAnRVNMaW50IHdhcyBLSUxMRUQgYmVmb3JlIGl0IGZpbmlzaGVkIGxpbnRpbmcuJztcbiAgfVxuXG4gIGlmIChyZXN1bHQuZXhpdENvZGUgIT09IG51bGwgJiYgcmVzdWx0LmV4aXRDb2RlID49IE1JTl9OVF9TVEFUVVNfRVhJVF9DT0RFKSB7XG4gICAgcmV0dXJuICdFU0xpbnQgRElFRCBhdCB0aGUgT1MgbGV2ZWwgLSBhbiBhY2Nlc3MgdmlvbGF0aW9uIG9yIHNpbWlsYXIsIHdpdGggbm8gZGlhZ25vc3RpYyBvZiBpdHMgb3duLic7XG4gIH1cblxuICBpZiAoUlVMRV9DUkFTSF9SRUdfRVhQLnRlc3QocmVzdWx0LnN0ZGVycikpIHtcbiAgICByZXR1cm4gJ0VTTGludCBDUkFTSEVEOiBhIHJ1bGUgdGhyZXcgd2hpbGUgbGludGluZy4gVGhlIHJ1bGUgYW5kIHRoZSBmaWxlIGl0IHdhcyBvbiBhcmUgbmFtZWQgYmVsb3cuJztcbiAgfVxuXG4gIHJldHVybiByZXN1bHQuc3RkZXJyLmluY2x1ZGVzKEVTTElOVF9BQk9SVF9CQU5ORVIpXG4gICAgPyAnRVNMaW50IEFCT1JURUQ6IGl0IHRocmV3IGluc3RlYWQgb2YgZmluaXNoaW5nIC0gYSBicm9rZW4gY29uZmlnIG9yIGNvbW1hbmQgbGluZSwgb3IgYW4gaW50ZXJuYWwgZXJyb3IuJ1xuICAgIDogJ0VTTGludCBleGl0ZWQgbm9uLXplcm8gd2l0aG91dCByZXBvcnRpbmcgZmluZGluZ3MsIHNvIGl0IGRpZCBub3QgZmluaXNoIGxpbnRpbmcuJztcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFjQSxTQUFTLHNCQUFzQjtBQUMvQixTQUFTLGdCQUFnQjtBQUN6QixTQUFTLGtCQUFrQjtBQUMzQixTQUFTLFVBQVU7QUFJbkIsU0FBUywwQkFBMEI7QUFDbkMsU0FBUyxpQkFBaUI7QUFDMUI7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFLUCxNQUFNLDJCQUE4QztBQUFBLEVBQ2xELFVBQVU7QUFBQSxFQUNWLFVBQVU7QUFBQSxFQUNWLFVBQVU7QUFBQSxFQUNWLFVBQVU7QUFBQSxFQUNWLFVBQVU7QUFBQSxFQUNWLFVBQVU7QUFDWjtBQW9CQSxNQUFNLHdDQUEyRCxDQUFDLGtCQUFrQixLQUFLLG1CQUFtQjtBQWVyRyxNQUFNLHdCQUF3QjtBQWFyQyxNQUFNLHlCQUF5QjtBQUUvQixNQUFNLGlDQUFpQztBQVF2QyxNQUFNLHNCQUFzQjtBQUs1QixNQUFNLHFCQUFxQjtBQUszQixNQUFNLG9CQUFvQjtBQUsxQixNQUFNLHNCQUFzQjtBQUU1QixNQUFNLDJCQUEyQjtBQVNqQyxNQUFNLDBCQUEwQjtBQUVoQyxNQUFNLFlBQVk7QUFtQ1gsU0FBUyxtQkFBbUIsUUFBb0M7QUFDckUsTUFBSSxPQUFPLGFBQWEsMEJBQTBCLE9BQU8sZUFBZSxNQUFNO0FBQzVFLFdBQU87QUFBQSxFQUNUO0FBRUEsU0FBTyxPQUFPLGFBQWEsa0NBQWtDLENBQUMsT0FBTyxPQUFPLFNBQVMsbUJBQW1CLElBQ3BHLGtCQUNBO0FBQ047QUFRTyxTQUFTLHNCQUFzQixRQUE0QjtBQUNoRSxRQUFNLFVBQVUsc0JBQXNCLE9BQU8sTUFBTTtBQUVuRCxTQUFPO0FBQUEsSUFDTCxtQkFBbUIsTUFBTTtBQUFBLElBQ3pCO0FBQUEsSUFDQTtBQUFBLElBQ0EsZ0JBQWdCLGVBQWUsT0FBTyxRQUFRLENBQUM7QUFBQSxJQUMvQyxHQUFHLE9BQU8sZUFBZSxPQUFPLENBQUMsSUFBSSxDQUFDLDJCQUEyQixPQUFPLFVBQVUsRUFBRTtBQUFBLElBQ3BGLFFBQVEsU0FBUyxJQUFJLG1CQUFtQjtBQUFBLElBQ3hDLEdBQUcsUUFBUSxJQUFJLENBQUMsV0FBVyxPQUFPLE1BQU0sRUFBRTtBQUFBLEVBQzVDLEVBQUUsS0FBSyxJQUFJO0FBQ2I7QUFPTyxTQUFTLGtCQUEyQjtBQUN6QyxTQUFPLHlCQUF5QixLQUFLLENBQUMsYUFBYSxXQUFXLHdCQUF3QixFQUFFLE1BQU0sU0FBUyxDQUFDLENBQUMsQ0FBQztBQUM1RztBQVNBLGVBQXNCLEtBQUssU0FBc0M7QUFDL0QsUUFBTSxFQUFFLHVCQUF1QixPQUFPLFVBQVUsSUFBSSxXQUFXLENBQUM7QUFDaEUsTUFBSSxDQUFDLGdCQUFnQixLQUFLLHVCQUF1QjtBQUMvQyxtQkFBZSxhQUFhLEVBQUUsaUVBQWlFO0FBQy9GLFVBQU0sR0FBRyx1QkFBdUIsd0JBQXdCLEVBQUUsTUFBTSxTQUFTLHFCQUFxQixFQUFFLENBQUMsQ0FBQztBQUFBLEVBQ3BHO0FBR0EsUUFBTSxVQUFVLE9BQU8sU0FBUyxRQUFRLENBQUMsVUFBVSxhQUFhO0FBRWhFLFFBQU0sU0FBUyxNQUFNLGFBQWE7QUFBQSxJQUNoQyxHQUFHLG1CQUFtQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQUEsSUFDeEMsR0FBRztBQUFBLElBQ0gsR0FBSSxZQUFZLENBQUMsT0FBTyxJQUFJLENBQUM7QUFBQSxJQUM3QixFQUFFLGtCQUFrQixRQUFRO0FBQUEsRUFDOUIsR0FBRztBQUFBLElBQ0Qsc0JBQXNCO0FBQUEsSUFDdEIsc0JBQXNCO0FBQUEsRUFDeEIsQ0FBQztBQUVELFFBQU0sT0FBTyxtQkFBbUIsTUFBTTtBQUV0QyxNQUFJLFNBQVMsU0FBUztBQUNwQjtBQUFBLEVBQ0Y7QUFFQSxRQUFNLElBQUksTUFBTSxTQUFTLGtCQUFrQix3QkFBd0Isc0JBQXNCLE1BQU0sQ0FBQztBQUNsRztBQVVBLFNBQVMsc0JBQXNCLFFBQTBCO0FBQ3ZELFFBQU0sVUFBb0IsQ0FBQztBQUUzQixhQUFXLFdBQVcsT0FBTyxNQUFNLElBQUksR0FBRztBQUN4QyxRQUFJLFFBQVEsV0FBVywwQkFBMEI7QUFDL0M7QUFBQSxJQUNGO0FBRUEsVUFBTSxPQUFPLFFBQVEsS0FBSztBQUMxQixVQUFNLFVBQVUsU0FBUyxNQUNwQixLQUFLLFdBQVcsbUJBQW1CLEtBQ25DLEtBQUssV0FBVyxpQkFBaUIsS0FDakMsb0JBQW9CLEtBQUssSUFBSTtBQUNsQyxRQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsU0FBUyxJQUFJLEdBQUc7QUFDdkMsY0FBUSxLQUFLLElBQUk7QUFBQSxJQUNuQjtBQUFBLEVBQ0Y7QUFFQSxTQUFPO0FBQ1Q7QUFRQSxTQUFTLGVBQWUsVUFBaUM7QUFDdkQsTUFBSSxhQUFhLE1BQU07QUFDckIsV0FBTztBQUFBLEVBQ1Q7QUFFQSxTQUFPLFdBQVcsMEJBQTBCLE9BQU8sUUFBUSxJQUFJLEdBQUcsT0FBTyxRQUFRLENBQUMsT0FBTyxTQUFTLFNBQVMsU0FBUyxFQUFFLFlBQVksQ0FBQztBQUNySTtBQVFBLFNBQVMsbUJBQW1CLFFBQTRCO0FBQ3RELE1BQUksT0FBTyxlQUFlLE1BQU07QUFDOUIsV0FBTztBQUFBLEVBQ1Q7QUFFQSxNQUFJLE9BQU8sYUFBYSxRQUFRLE9BQU8sWUFBWSx5QkFBeUI7QUFDMUUsV0FBTztBQUFBLEVBQ1Q7QUFFQSxNQUFJLG1CQUFtQixLQUFLLE9BQU8sTUFBTSxHQUFHO0FBQzFDLFdBQU87QUFBQSxFQUNUO0FBRUEsU0FBTyxPQUFPLE9BQU8sU0FBUyxtQkFBbUIsSUFDN0MsMkdBQ0E7QUFDTjsiLCJuYW1lcyI6W119
@@ -1,4 +1,6 @@
1
1
  /// <reference path="../library-references.d.mts" />
2
+ export * as 'auto' from './auto.mjs';
3
+ export * as 'biome' from './biome.mjs';
2
4
  export * as 'cspell-content' from './cspell-content.mjs';
3
5
  export * as 'cspell' from './cspell.mjs';
4
6
  export * as 'eslint-agnostic-core-boundary' from './eslint-agnostic-core-boundary.mjs';
@@ -3,6 +3,8 @@ 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
5
 
6
+ import * as auto from "./auto.mjs";
7
+ import * as biome from "./biome.mjs";
6
8
  import * as cspell_content from "./cspell-content.mjs";
7
9
  import * as cspell from "./cspell.mjs";
8
10
  import * as eslint_agnostic_core_boundary from "./eslint-agnostic-core-boundary.mjs";
@@ -18,6 +20,8 @@ import * as markdownlint_rules from "./markdownlint-rules/index.mjs";
18
20
  import * as markdownlint from "./markdownlint.mjs";
19
21
  import * as over_exposure from "./over-exposure.mjs";
20
22
  export {
23
+ auto,
24
+ biome,
21
25
  cspell,
22
26
  cspell_content as "cspell-content",
23
27
  eslint,
@@ -33,4 +37,4 @@ export {
33
37
  markdownlint_rules as "markdownlint-rules",
34
38
  over_exposure as "over-exposure"
35
39
  };
36
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2xpbnRlcnMvaW5kZXgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qIFRISVMgSVMgQSBHRU5FUkFURUQvQlVORExFRCBGSUxFIEJZIEJVSUxEIFNDUklQVCAqL1xuXG5leHBvcnQgKiBhcyAnY3NwZWxsLWNvbnRlbnQnIGZyb20gJy4vY3NwZWxsLWNvbnRlbnQudHMnO1xuZXhwb3J0ICogYXMgJ2NzcGVsbCcgZnJvbSAnLi9jc3BlbGwudHMnO1xuZXhwb3J0ICogYXMgJ2VzbGludC1hZ25vc3RpYy1jb3JlLWJvdW5kYXJ5JyBmcm9tICcuL2VzbGludC1hZ25vc3RpYy1jb3JlLWJvdW5kYXJ5LnRzJztcbmV4cG9ydCAqIGFzICdlc2xpbnQtY29uZmlnJyBmcm9tICcuL2VzbGludC1jb25maWcudHMnO1xuZXhwb3J0ICogYXMgJ2VzbGludC1uby1yZXN0cmljdGVkLXN5bnRheCcgZnJvbSAnLi9lc2xpbnQtbm8tcmVzdHJpY3RlZC1zeW50YXgudHMnO1xuZXhwb3J0ICogYXMgJ2VzbGludC1ydWxlcycgZnJvbSAnLi9lc2xpbnQtcnVsZXMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2VzbGludCcgZnJvbSAnLi9lc2xpbnQudHMnO1xuZXhwb3J0ICogYXMgJ2xpbnQtaWdub3JlcycgZnJvbSAnLi9saW50LWlnbm9yZXMudHMnO1xuZXhwb3J0ICogYXMgJ21hcmtkb3dubGludC1jbGkyLWNvbmZpZycgZnJvbSAnLi9tYXJrZG93bmxpbnQtY2xpMi1jb25maWcudHMnO1xuZXhwb3J0ICogYXMgJ21hcmtkb3dubGludC1jb250ZW50JyBmcm9tICcuL21hcmtkb3dubGludC1jb250ZW50LnRzJztcbmV4cG9ydCAqIGFzICdtYXJrZG93bmxpbnQtaWdub3JlcycgZnJvbSAnLi9tYXJrZG93bmxpbnQtaWdub3Jlcy50cyc7XG5leHBvcnQgKiBhcyAnbWFya2Rvd25saW50LXJ1bGVzJyBmcm9tICcuL21hcmtkb3dubGludC1ydWxlcy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnbWFya2Rvd25saW50JyBmcm9tICcuL21hcmtkb3dubGludC50cyc7XG5leHBvcnQgKiBhcyAnb3Zlci1leHBvc3VyZScgZnJvbSAnLi9vdmVyLWV4cG9zdXJlLnRzJztcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7O0FBRUEsWUFBWUEsb0JBQXNCO0FBQ2xDLFlBQVksWUFBYztBQUMxQixZQUFZQyxtQ0FBcUM7QUFDakQsWUFBWUMsbUJBQXFCO0FBQ2pDLFlBQVlDLGlDQUFtQztBQUMvQyxZQUFZQyxrQkFBb0I7QUFDaEMsWUFBWSxZQUFjO0FBQzFCLFlBQVlDLGtCQUFvQjtBQUNoQyxZQUFZQyw4QkFBZ0M7QUFDNUMsWUFBWUMsMEJBQTRCO0FBQ3hDLFlBQVlDLDBCQUE0QjtBQUN4QyxZQUFZQyx3QkFBMEI7QUFDdEMsWUFBWSxrQkFBb0I7QUFDaEMsWUFBWUMsbUJBQXFCOyIsCiAgIm5hbWVzIjogWyJjc3BlbGwtY29udGVudCIsICJlc2xpbnQtYWdub3N0aWMtY29yZS1ib3VuZGFyeSIsICJlc2xpbnQtY29uZmlnIiwgImVzbGludC1uby1yZXN0cmljdGVkLXN5bnRheCIsICJlc2xpbnQtcnVsZXMiLCAibGludC1pZ25vcmVzIiwgIm1hcmtkb3dubGludC1jbGkyLWNvbmZpZyIsICJtYXJrZG93bmxpbnQtY29udGVudCIsICJtYXJrZG93bmxpbnQtaWdub3JlcyIsICJtYXJrZG93bmxpbnQtcnVsZXMiLCAib3Zlci1leHBvc3VyZSJdCn0K
40
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2xpbnRlcnMvaW5kZXgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qIFRISVMgSVMgQSBHRU5FUkFURUQvQlVORExFRCBGSUxFIEJZIEJVSUxEIFNDUklQVCAqL1xuXG5leHBvcnQgKiBhcyAnYXV0bycgZnJvbSAnLi9hdXRvLnRzJztcbmV4cG9ydCAqIGFzICdiaW9tZScgZnJvbSAnLi9iaW9tZS50cyc7XG5leHBvcnQgKiBhcyAnY3NwZWxsLWNvbnRlbnQnIGZyb20gJy4vY3NwZWxsLWNvbnRlbnQudHMnO1xuZXhwb3J0ICogYXMgJ2NzcGVsbCcgZnJvbSAnLi9jc3BlbGwudHMnO1xuZXhwb3J0ICogYXMgJ2VzbGludC1hZ25vc3RpYy1jb3JlLWJvdW5kYXJ5JyBmcm9tICcuL2VzbGludC1hZ25vc3RpYy1jb3JlLWJvdW5kYXJ5LnRzJztcbmV4cG9ydCAqIGFzICdlc2xpbnQtY29uZmlnJyBmcm9tICcuL2VzbGludC1jb25maWcudHMnO1xuZXhwb3J0ICogYXMgJ2VzbGludC1uby1yZXN0cmljdGVkLXN5bnRheCcgZnJvbSAnLi9lc2xpbnQtbm8tcmVzdHJpY3RlZC1zeW50YXgudHMnO1xuZXhwb3J0ICogYXMgJ2VzbGludC1ydWxlcycgZnJvbSAnLi9lc2xpbnQtcnVsZXMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2VzbGludCcgZnJvbSAnLi9lc2xpbnQudHMnO1xuZXhwb3J0ICogYXMgJ2xpbnQtaWdub3JlcycgZnJvbSAnLi9saW50LWlnbm9yZXMudHMnO1xuZXhwb3J0ICogYXMgJ21hcmtkb3dubGludC1jbGkyLWNvbmZpZycgZnJvbSAnLi9tYXJrZG93bmxpbnQtY2xpMi1jb25maWcudHMnO1xuZXhwb3J0ICogYXMgJ21hcmtkb3dubGludC1jb250ZW50JyBmcm9tICcuL21hcmtkb3dubGludC1jb250ZW50LnRzJztcbmV4cG9ydCAqIGFzICdtYXJrZG93bmxpbnQtaWdub3JlcycgZnJvbSAnLi9tYXJrZG93bmxpbnQtaWdub3Jlcy50cyc7XG5leHBvcnQgKiBhcyAnbWFya2Rvd25saW50LXJ1bGVzJyBmcm9tICcuL21hcmtkb3dubGludC1ydWxlcy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnbWFya2Rvd25saW50JyBmcm9tICcuL21hcmtkb3dubGludC50cyc7XG5leHBvcnQgKiBhcyAnb3Zlci1leHBvc3VyZScgZnJvbSAnLi9vdmVyLWV4cG9zdXJlLnRzJztcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7O0FBRUEsWUFBWSxVQUFZO0FBQ3hCLFlBQVksV0FBYTtBQUN6QixZQUFZQSxvQkFBc0I7QUFDbEMsWUFBWSxZQUFjO0FBQzFCLFlBQVlDLG1DQUFxQztBQUNqRCxZQUFZQyxtQkFBcUI7QUFDakMsWUFBWUMsaUNBQW1DO0FBQy9DLFlBQVlDLGtCQUFvQjtBQUNoQyxZQUFZLFlBQWM7QUFDMUIsWUFBWUMsa0JBQW9CO0FBQ2hDLFlBQVlDLDhCQUFnQztBQUM1QyxZQUFZQywwQkFBNEI7QUFDeEMsWUFBWUMsMEJBQTRCO0FBQ3hDLFlBQVlDLHdCQUEwQjtBQUN0QyxZQUFZLGtCQUFvQjtBQUNoQyxZQUFZQyxtQkFBcUI7IiwKICAibmFtZXMiOiBbImNzcGVsbC1jb250ZW50IiwgImVzbGludC1hZ25vc3RpYy1jb3JlLWJvdW5kYXJ5IiwgImVzbGludC1jb25maWciLCAiZXNsaW50LW5vLXJlc3RyaWN0ZWQtc3ludGF4IiwgImVzbGludC1ydWxlcyIsICJsaW50LWlnbm9yZXMiLCAibWFya2Rvd25saW50LWNsaTItY29uZmlnIiwgIm1hcmtkb3dubGludC1jb250ZW50IiwgIm1hcmtkb3dubGludC1pZ25vcmVzIiwgIm1hcmtkb3dubGludC1ydWxlcyIsICJvdmVyLWV4cG9zdXJlIl0KfQo=
@@ -58,6 +58,14 @@ export declare enum RepoPaths {
58
58
  */
59
59
  Bin = ".bin",
60
60
  /**
61
+ Biome configuration file.
62
+ */
63
+ BiomeJson = "biome.json",
64
+ /**
65
+ Biome configuration file, with comments.
66
+ */
67
+ BiomeJsonc = "biome.jsonc",
68
+ /**
61
69
  Bun lockfile.
62
70
  */
63
71
  BunLock = "bun.lock",
@@ -16,6 +16,8 @@ var RepoPaths = /* @__PURE__ */ ((RepoPaths2) => {
16
16
  RepoPaths2["AnyTsx"] = "*.tsx";
17
17
  RepoPaths2["BatExtension"] = ".bat";
18
18
  RepoPaths2["Bin"] = ".bin";
19
+ RepoPaths2["BiomeJson"] = "biome.json";
20
+ RepoPaths2["BiomeJsonc"] = "biome.jsonc";
19
21
  RepoPaths2["BunLock"] = "bun.lock";
20
22
  RepoPaths2["BunLockb"] = "bun.lockb";
21
23
  RepoPaths2["ChangelogMd"] = "CHANGELOG.md";
@@ -85,4 +87,4 @@ var RepoPaths = /* @__PURE__ */ ((RepoPaths2) => {
85
87
  export {
86
88
  RepoPaths
87
89
  };
88
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3JlcG8tcGF0aHMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDb21tb24gZmlsZSBwYXRocyBhbmQgcGF0dGVybnMgdGhlIFR5cGVTY3JpcHQgcHJvamVjdCB0b29saW5nIHVzZXMsIHNvIHRoZSB0b29saW5nIG5ldmVyIHNwZWxscyB0aGVtIGFzXG4gKiBoYXJkY29kZWQgc3RyaW5ncy5cbiAqL1xuXG4vKipcbiAqIENvbW1vbiBmaWxlIHBhdGhzIGFuZCBwYXR0ZXJucyB1c2VkIGJ5IHRoZSBUeXBlU2NyaXB0IHByb2plY3QgdG9vbGluZy5cbiAqL1xuZXhwb3J0IGVudW0gUmVwb1BhdGhzIHtcbiAgLyoqXG4gIEFueSBmaWxlIG9yIGZvbGRlci5cbiAgICovXG4gIEFueSA9ICcqJyxcblxuICAvKipcbiAgQ29tbW9uSlMgZmlsZS5cbiAgICovXG4gIEFueUNqcyA9ICcqLmNqcycsXG5cbiAgLyoqXG4gIENvbW1vbkpTIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZS5cbiAgICovXG4gIEFueURjdHMgPSAnKi5kLmN0cycsXG5cbiAgLyoqXG4gIEVTTSBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUuXG4gICAqL1xuICBBbnlEbXRzID0gJyouZC5tdHMnLFxuXG4gIC8qKlxuICBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUuXG4gICAqL1xuICBBbnlEdHMgPSAnKi5kLnRzJyxcblxuICAvKipcbiAgRVNNIEphdmFTY3JpcHQgZmlsZS5cbiAgICovXG4gIEFueU1qcyA9ICcqLm1qcycsXG5cbiAgLyoqXG4gIEFueSBwYXRoIHJlY3Vyc2l2ZWx5LlxuICAgKi9cbiAgQW55UGF0aCA9ICcqKicsXG5cbiAgLyoqXG4gIEFueSB0ZXN0IFR5cGVTY3JpcHQgZmlsZS5cbiAgICovXG4gIEFueVRlc3RUcyA9ICcqLnRlc3QudHMnLFxuXG4gIC8qKlxuICBBbnkgVHlwZVNjcmlwdCBmaWxlLlxuICAgKi9cbiAgQW55VHMgPSAnKi50cycsXG5cbiAgLyoqXG4gIEFueSBUU1ggZmlsZS5cbiAgICovXG4gIEFueVRzeCA9ICcqLnRzeCcsXG5cbiAgLyoqXG4gIFdpbmRvd3MgYmF0Y2ggZmlsZSBleHRlbnNpb24uXG4gICAqL1xuICBCYXRFeHRlbnNpb24gPSAnLmJhdCcsXG5cbiAgLyoqXG4gIEZvbGRlciBob2xkaW5nIHRoZSBleGVjdXRhYmxlIHNoaW1zIG9mIGxvY2FsbHktaW5zdGFsbGVkIHBhY2thZ2VzLlxuICAgKi9cbiAgQmluID0gJy5iaW4nLFxuXG4gIC8qKlxuICBCdW4gbG9ja2ZpbGUuXG4gICAqL1xuICBCdW5Mb2NrID0gJ2J1bi5sb2NrJyxcblxuICAvKipcbiAgQmluYXJ5IGJ1biBsb2NrZmlsZSwgd3JpdHRlbiBieSBidW4gYmVmb3JlIHYxLjIuXG4gICAqL1xuICBCdW5Mb2NrYiA9ICdidW4ubG9ja2InLFxuXG4gIC8qKlxuICBDaGFuZ2Vsb2cgZmlsZS5cbiAgICovXG4gIENoYW5nZWxvZ01kID0gJ0NIQU5HRUxPRy5tZCcsXG5cbiAgLyoqXG4gIENvbW1vbkpTIGZvbGRlci5cbiAgICovXG4gIENqcyA9ICdjanMnLFxuXG4gIC8qKlxuICBDb21tb25KUyBmaWxlIGV4dGVuc2lvbi5cbiAgICovXG4gIENqc0V4dGVuc2lvbiA9ICcuY2pzJyxcblxuICAvKipcbiAgQ2xhdWRlIENvZGUncyB3b3JrdHJlZSBmb2xkZXIuIGBnaXQgd29ya3RyZWUgYWRkYCBwdXRzIGEgc2Vjb25kLCBjb21wbGV0ZSBjaGVja291dCBvZiB0aGUgcmVwb3NpdG9yeVxuICBoZXJlLCBJTlNJREUgdGhlIHJlcG9zaXRvcnksIHdoaWNoIGlzIHRoZSBvbmx5IHJlYXNvbiBhIHJlcG8gZXZlciBjb250YWlucyBhIGNvcHkgb2YgaXRzZWxmLiBOZXZlclxuICBzb3VyY2UsIHNvIGV2ZXJ5IGxpbnRlciB0aGF0IHdhbGtzIHRoZSB0cmVlIGhhcyB0byBza2lwIGl0LlxuICAgKi9cbiAgQ2xhdWRlV29ya3RyZWVzID0gJy5jbGF1ZGUvd29ya3RyZWVzJyxcblxuICAvKipcbiAgV2luZG93cyBjb21tYW5kIHNjcmlwdCBleHRlbnNpb24uXG4gICAqL1xuICBDb21tYW5kRXh0ZW5zaW9uID0gJy5jbWQnLFxuXG4gIC8qKlxuICBDb21taXRsaW50IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIENvbW1pdGxpbnRDb25maWdUcyA9ICdjb21taXRsaW50LmNvbmZpZy50cycsXG5cbiAgLyoqXG4gIEN1cnJlbnQgZm9sZGVyLlxuICAgKi9cbiAgQ3VycmVudEZvbGRlciA9ICcuJyxcblxuICAvKipcbiAgQ29tbW9uSlMgVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlIGV4dGVuc2lvbi5cbiAgICovXG4gIERjdHNFeHRlbnNpb24gPSAnLmQuY3RzJyxcblxuICAvKipcbiAgRGlzdHJpYnV0aW9uIGZvbGRlci5cbiAgICovXG4gIERpc3QgPSAnZGlzdCcsXG5cbiAgLyoqXG4gIEEgcGF0aCB0byB0aGUgYGxpYmAgZm9sZGVyIHdpdGhpbiB0aGUge0BsaW5rIERpc3R9IGZvbGRlci5cbiAgICovXG4gIERpc3RMaWIgPSAnZGlzdC9saWInLFxuXG4gIC8qKlxuICBBIHBhdGggdG8gdGhlIGB0ZW1wbGF0ZXNgIGZvbGRlciB3aXRoaW4gdGhlIHtAbGluayBEaXN0fSBmb2xkZXIsIGhvbGRpbmcgdGhlIGNvbnN1bWVyLWZhY2luZyB0ZW1wbGF0ZXMuXG4gICAqL1xuICBEaXN0VGVtcGxhdGVzID0gJ2Rpc3QvdGVtcGxhdGVzJyxcblxuICAvKipcbiAgVHJhbnNwaWxlZCBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUgZXh0ZW5zaW9uLlxuICAgKi9cbiAgRGpzRXh0ZW5zaW9uID0gJy5kLmpzJyxcblxuICAvKipcbiAgRVNNIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZSBleHRlbnNpb24uXG4gICAqL1xuICBEbXRzRXh0ZW5zaW9uID0gJy5kLm10cycsXG5cbiAgLyoqXG4gIE9ic2lkaWFuIGNvbmZpZ3VyYXRpb24gZm9sZGVyIHdpdGhpbiBhIHZhdWx0LlxuICAgKi9cbiAgRG90T2JzaWRpYW4gPSAnLm9ic2lkaWFuJyxcblxuICAvKipcbiAgRHByaW50IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIERwcmludEpzb24gPSAnZHByaW50Lmpzb24nLFxuXG4gIC8qKlxuICBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUgZXh0ZW5zaW9uLlxuICAgKi9cbiAgRHRzRXh0ZW5zaW9uID0gJy5kLnRzJyxcblxuICAvKipcbiAgQ29tbW9uSlMgRVNMaW50IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIEVzbGludENvbmZpZ0NqcyA9ICdlc2xpbnQuY29uZmlnLmNqcycsXG5cbiAgLyoqXG4gIENvbW1vbkpTIFR5cGVTY3JpcHQgRVNMaW50IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIEVzbGludENvbmZpZ0N0cyA9ICdlc2xpbnQuY29uZmlnLmN0cycsXG5cbiAgLyoqXG4gIEphdmFTY3JpcHQgRVNMaW50IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIEVzbGludENvbmZpZ0pzID0gJ2VzbGludC5jb25maWcuanMnLFxuXG4gIC8qKlxuICBFU00gSmF2YVNjcmlwdCBFU0xpbnQgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgRXNsaW50Q29uZmlnTWpzID0gJ2VzbGludC5jb25maWcubWpzJyxcblxuICAvKipcbiAgRVNNIFR5cGVTY3JpcHQgRVNMaW50IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIEVzbGludENvbmZpZ010cyA9ICdlc2xpbnQuY29uZmlnLm10cycsXG5cbiAgLyoqXG4gIFR5cGVTY3JpcHQgRVNMaW50IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIEVzbGludENvbmZpZ1RzID0gJ2VzbGludC5jb25maWcudHMnLFxuXG4gIC8qKlxuICBFU00gSmF2YVNjcmlwdCBmb2xkZXIuXG4gICAqL1xuICBFc20gPSAnZXNtJyxcblxuICAvKipcbiAgV2luZG93cyBleGVjdXRhYmxlIGV4dGVuc2lvbi5cbiAgICovXG4gIEV4ZUV4dGVuc2lvbiA9ICcuZXhlJyxcblxuICAvKipcbiAgQ29tbW9uSlMgSmF2YVNjcmlwdCBpbmRleCBmaWxlLlxuICAgKi9cbiAgSW5kZXhDanMgPSAnaW5kZXguY2pzJyxcblxuICAvKipcbiAgQ29tbW9uSlMgVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlIGluZGV4IGZpbGUuXG4gICAqL1xuICBJbmRleERjdHMgPSAnaW5kZXguZC5jdHMnLFxuXG4gIC8qKlxuICBFU00gVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlIGluZGV4IGZpbGUuXG4gICAqL1xuICBJbmRleERtdHMgPSAnaW5kZXguZC5tdHMnLFxuXG4gIC8qKlxuICBFU00gSmF2YVNjcmlwdCBpbmRleCBmaWxlLlxuICAgKi9cbiAgSW5kZXhNanMgPSAnaW5kZXgubWpzJyxcblxuICAvKipcbiAgVHlwZVNjcmlwdCBpbmRleCBmaWxlLlxuICAgKi9cbiAgSW5kZXhUcyA9ICdpbmRleC50cycsXG5cbiAgLyoqXG4gIEphdmFTY3JpcHQgZmlsZSBleHRlbnNpb24uXG4gICAqL1xuICBKc0V4dGVuc2lvbiA9ICcuanMnLFxuXG4gIC8qKlxuICBDb21tb25KUyBNYXJrZG93bmxpbnQgQ0xJMiBjb25maWd1cmF0aW9uIGZpbGUuXG4gICAqL1xuICBNYXJrZG93bmxpbnRDbGkyQ29uZmlnQ2pzID0gJy5tYXJrZG93bmxpbnQtY2xpMi5janMnLFxuXG4gIC8qKlxuICBKU09OQyBNYXJrZG93bmxpbnQgQ0xJMiBjb25maWd1cmF0aW9uIGZpbGUuXG4gICAqL1xuICBNYXJrZG93bmxpbnRDbGkyQ29uZmlnSnNvbmMgPSAnLm1hcmtkb3dubGludC1jbGkyLmpzb25jJyxcblxuICAvKipcbiAgRVNNIE1hcmtkb3dubGludCBDTEkyIGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIE1hcmtkb3dubGludENsaTJDb25maWdNanMgPSAnLm1hcmtkb3dubGludC1jbGkyLm1qcycsXG5cbiAgLyoqXG4gIFlBTUwgTWFya2Rvd25saW50IENMSTIgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgTWFya2Rvd25saW50Q2xpMkNvbmZpZ1lhbWwgPSAnLm1hcmtkb3dubGludC1jbGkyLnlhbWwnLFxuXG4gIC8qKlxuICBDb21tb25KUyBNYXJrZG93bmxpbnQgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgTWFya2Rvd25saW50Q29uZmlnQ2pzID0gJy5tYXJrZG93bmxpbnQuY2pzJyxcblxuICAvKipcbiAgSlNPTiBNYXJrZG93bmxpbnQgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgTWFya2Rvd25saW50Q29uZmlnSnNvbiA9ICcubWFya2Rvd25saW50Lmpzb24nLFxuXG4gIC8qKlxuICBKU09OQyBNYXJrZG93bmxpbnQgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgTWFya2Rvd25saW50Q29uZmlnSnNvbmMgPSAnLm1hcmtkb3dubGludC5qc29uYycsXG5cbiAgLyoqXG4gIEVTTSBNYXJrZG93bmxpbnQgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgTWFya2Rvd25saW50Q29uZmlnTWpzID0gJy5tYXJrZG93bmxpbnQubWpzJyxcblxuICAvKipcbiAgWUFNTCBNYXJrZG93bmxpbnQgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgTWFya2Rvd25saW50Q29uZmlnWWFtbCA9ICcubWFya2Rvd25saW50LnlhbWwnLFxuXG4gIC8qKlxuICBZQU1MIE1hcmtkb3dubGludCBjb25maWd1cmF0aW9uIGZpbGUuXG4gICAqL1xuICBNYXJrZG93bmxpbnRDb25maWdZbWwgPSAnLm1hcmtkb3dubGludC55bWwnLFxuXG4gIC8qKlxuICBFU00gSmF2YVNjcmlwdCBmaWxlIGV4dGVuc2lvbi5cbiAgICovXG4gIE1qc0V4dGVuc2lvbiA9ICcubWpzJyxcblxuICAvKipcbiAgVGVzdCBtb2NrcyBmb2xkZXIuXG4gICAqL1xuICBNb2NrcyA9ICdzcmMvdGVzdC1oZWxwZXJzJyxcblxuICAvKipcbiAgTm9kZSBtb2R1bGVzIGZvbGRlci5cbiAgICovXG4gIE5vZGVNb2R1bGVzID0gJ25vZGVfbW9kdWxlcycsXG5cbiAgLyoqXG4gIE5QTSBzaHJpbmt3cmFwIGZpbGUuXG4gICAqL1xuICBOcG1TaHJpbmt3cmFwSnNvbiA9ICducG0tc2hyaW5rd3JhcC5qc29uJyxcblxuICAvKipcbiAgUGFja2FnZSBKU09OIGZpbGUuXG4gICAqL1xuICBQYWNrYWdlSnNvbiA9ICdwYWNrYWdlLmpzb24nLFxuXG4gIC8qKlxuICBOUE0gbG9ja2ZpbGUuXG4gICAqL1xuICBQYWNrYWdlTG9ja0pzb24gPSAncGFja2FnZS1sb2NrLmpzb24nLFxuXG4gIC8qKlxuICBQbnBtIGxvY2tmaWxlLlxuICAgKi9cbiAgUG5wbUxvY2tZYW1sID0gJ3BucG0tbG9jay55YW1sJyxcblxuICAvKipcbiAgUm9vdCBmb2xkZXIuXG4gICAqL1xuICBSb290Rm9sZGVyID0gJy8nLFxuXG4gIC8qKlxuICBTY3JpcHRzIGZvbGRlci5cbiAgICovXG4gIFNjcmlwdHMgPSAnc2NyaXB0cycsXG5cbiAgLyoqXG4gIFNvdXJjZSBmb2xkZXIuXG4gICAqL1xuICBTcmMgPSAnc3JjJyxcblxuICAvKipcbiAgU3R5bGVzIGZvbGRlci5cbiAgICovXG4gIFN0eWxlcyA9ICdzdHlsZXMnLFxuXG4gIC8qKlxuICBTdHlsZXMgQ1NTIGZpbGUuXG4gICAqL1xuICBTdHlsZXNDc3MgPSAnc3R5bGVzLmNzcycsXG5cbiAgLyoqXG4gIFRlbXBsYXRlcyBmb2xkZXIuXG4gICAqL1xuICBUZW1wbGF0ZXMgPSAndGVtcGxhdGVzJyxcblxuICAvKipcbiAgVGVzdCBoZWxwZXJzIGZvbGRlci5cbiAgICovXG4gIFRlc3RIZWxwZXJzID0gJ3Rlc3QtaGVscGVycycsXG5cbiAgLyoqXG4gIFRlc3RzIGZvbGRlci5cbiAgICovXG4gIFRlc3RzID0gJ19fdGVzdHNfXycsXG5cbiAgLyoqXG4gIFR5cGVTY3JpcHQgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgVHNDb25maWdKc29uID0gJ3RzY29uZmlnLmpzb24nLFxuXG4gIC8qKlxuICBUeXBlU2NyaXB0IGNvbmZpZ3VyYXRpb24gZmlsZSB0aGF0IHZhbGlkYXRlcyB0aGUgZ2VuZXJhdGVkIENvbW1vbkpTIGRlY2xhcmF0aW9ucy5cbiAgICovXG4gIFRzQ29uZmlnVmFsaWRhdGVEZWNsYXJhdGlvbnNDanNKc29uID0gJ3RzY29uZmlnLnZhbGlkYXRlLWRlY2xhcmF0aW9ucy1janMuanNvbicsXG5cbiAgLyoqXG4gIFR5cGVTY3JpcHQgY29uZmlndXJhdGlvbiBmaWxlIHRoYXQgdmFsaWRhdGVzIHRoZSBnZW5lcmF0ZWQgRVNNIGRlY2xhcmF0aW9ucy5cbiAgICovXG4gIFRzQ29uZmlnVmFsaWRhdGVEZWNsYXJhdGlvbnNKc29uID0gJ3RzY29uZmlnLnZhbGlkYXRlLWRlY2xhcmF0aW9ucy5qc29uJyxcblxuICAvKipcbiAgVHlwZVNjcmlwdCBmaWxlIGV4dGVuc2lvbi5cbiAgICovXG4gIFRzRXh0ZW5zaW9uID0gJy50cycsXG5cbiAgLyoqXG4gIFR5cGVzIGZvbGRlci5cbiAgICovXG4gIFR5cGVzID0gJ0B0eXBlcycsXG5cbiAgLyoqXG4gIFZpdGVzdCBjb25maWd1cmF0aW9uIGZpbGUuXG4gICAqL1xuICBWaXRlc3RDb25maWdUcyA9ICd2aXRlc3QuY29uZmlnLnRzJyxcblxuICAvKipcbiAgWWFybiBsb2NrZmlsZS5cbiAgICovXG4gIFlhcm5Mb2NrID0gJ3lhcm4ubG9jaydcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7O0FBVU8sSUFBSyxZQUFMLGtCQUFLQSxlQUFMO0FBSUwsRUFBQUEsV0FBQSxTQUFNO0FBS04sRUFBQUEsV0FBQSxZQUFTO0FBS1QsRUFBQUEsV0FBQSxhQUFVO0FBS1YsRUFBQUEsV0FBQSxhQUFVO0FBS1YsRUFBQUEsV0FBQSxZQUFTO0FBS1QsRUFBQUEsV0FBQSxZQUFTO0FBS1QsRUFBQUEsV0FBQSxhQUFVO0FB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
90
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3JlcG8tcGF0aHMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDb21tb24gZmlsZSBwYXRocyBhbmQgcGF0dGVybnMgdGhlIFR5cGVTY3JpcHQgcHJvamVjdCB0b29saW5nIHVzZXMsIHNvIHRoZSB0b29saW5nIG5ldmVyIHNwZWxscyB0aGVtIGFzXG4gKiBoYXJkY29kZWQgc3RyaW5ncy5cbiAqL1xuXG4vKipcbiAqIENvbW1vbiBmaWxlIHBhdGhzIGFuZCBwYXR0ZXJucyB1c2VkIGJ5IHRoZSBUeXBlU2NyaXB0IHByb2plY3QgdG9vbGluZy5cbiAqL1xuZXhwb3J0IGVudW0gUmVwb1BhdGhzIHtcbiAgLyoqXG4gIEFueSBmaWxlIG9yIGZvbGRlci5cbiAgICovXG4gIEFueSA9ICcqJyxcblxuICAvKipcbiAgQ29tbW9uSlMgZmlsZS5cbiAgICovXG4gIEFueUNqcyA9ICcqLmNqcycsXG5cbiAgLyoqXG4gIENvbW1vbkpTIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZS5cbiAgICovXG4gIEFueURjdHMgPSAnKi5kLmN0cycsXG5cbiAgLyoqXG4gIEVTTSBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUuXG4gICAqL1xuICBBbnlEbXRzID0gJyouZC5tdHMnLFxuXG4gIC8qKlxuICBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUuXG4gICAqL1xuICBBbnlEdHMgPSAnKi5kLnRzJyxcblxuICAvKipcbiAgRVNNIEphdmFTY3JpcHQgZmlsZS5cbiAgICovXG4gIEFueU1qcyA9ICcqLm1qcycsXG5cbiAgLyoqXG4gIEFueSBwYXRoIHJlY3Vyc2l2ZWx5LlxuICAgKi9cbiAgQW55UGF0aCA9ICcqKicsXG5cbiAgLyoqXG4gIEFueSB0ZXN0IFR5cGVTY3JpcHQgZmlsZS5cbiAgICovXG4gIEFueVRlc3RUcyA9ICcqLnRlc3QudHMnLFxuXG4gIC8qKlxuICBBbnkgVHlwZVNjcmlwdCBmaWxlLlxuICAgKi9cbiAgQW55VHMgPSAnKi50cycsXG5cbiAgLyoqXG4gIEFueSBUU1ggZmlsZS5cbiAgICovXG4gIEFueVRzeCA9ICcqLnRzeCcsXG5cbiAgLyoqXG4gIFdpbmRvd3MgYmF0Y2ggZmlsZSBleHRlbnNpb24uXG4gICAqL1xuICBCYXRFeHRlbnNpb24gPSAnLmJhdCcsXG5cbiAgLyoqXG4gIEZvbGRlciBob2xkaW5nIHRoZSBleGVjdXRhYmxlIHNoaW1zIG9mIGxvY2FsbHktaW5zdGFsbGVkIHBhY2thZ2VzLlxuICAgKi9cbiAgQmluID0gJy5iaW4nLFxuXG4gIC8qKlxuICBCaW9tZSBjb25maWd1cmF0aW9uIGZpbGUuXG4gICAqL1xuICBCaW9tZUpzb24gPSAnYmlvbWUuanNvbicsXG5cbiAgLyoqXG4gIEJpb21lIGNvbmZpZ3VyYXRpb24gZmlsZSwgd2l0aCBjb21tZW50cy5cbiAgICovXG4gIEJpb21lSnNvbmMgPSAnYmlvbWUuanNvbmMnLFxuXG4gIC8qKlxuICBCdW4gbG9ja2ZpbGUuXG4gICAqL1xuICBCdW5Mb2NrID0gJ2J1bi5sb2NrJyxcblxuICAvKipcbiAgQmluYXJ5IGJ1biBsb2NrZmlsZSwgd3JpdHRlbiBieSBidW4gYmVmb3JlIHYxLjIuXG4gICAqL1xuICBCdW5Mb2NrYiA9ICdidW4ubG9ja2InLFxuXG4gIC8qKlxuICBDaGFuZ2Vsb2cgZmlsZS5cbiAgICovXG4gIENoYW5nZWxvZ01kID0gJ0NIQU5HRUxPRy5tZCcsXG5cbiAgLyoqXG4gIENvbW1vbkpTIGZvbGRlci5cbiAgICovXG4gIENqcyA9ICdjanMnLFxuXG4gIC8qKlxuICBDb21tb25KUyBmaWxlIGV4dGVuc2lvbi5cbiAgICovXG4gIENqc0V4dGVuc2lvbiA9ICcuY2pzJyxcblxuICAvKipcbiAgQ2xhdWRlIENvZGUncyB3b3JrdHJlZSBmb2xkZXIuIGBnaXQgd29ya3RyZWUgYWRkYCBwdXRzIGEgc2Vjb25kLCBjb21wbGV0ZSBjaGVja291dCBvZiB0aGUgcmVwb3NpdG9yeVxuICBoZXJlLCBJTlNJREUgdGhlIHJlcG9zaXRvcnksIHdoaWNoIGlzIHRoZSBvbmx5IHJlYXNvbiBhIHJlcG8gZXZlciBjb250YWlucyBhIGNvcHkgb2YgaXRzZWxmLiBOZXZlclxuICBzb3VyY2UsIHNvIGV2ZXJ5IGxpbnRlciB0aGF0IHdhbGtzIHRoZSB0cmVlIGhhcyB0byBza2lwIGl0LlxuICAgKi9cbiAgQ2xhdWRlV29ya3RyZWVzID0gJy5jbGF1ZGUvd29ya3RyZWVzJyxcblxuICAvKipcbiAgV2luZG93cyBjb21tYW5kIHNjcmlwdCBleHRlbnNpb24uXG4gICAqL1xuICBDb21tYW5kRXh0ZW5zaW9uID0gJy5jbWQnLFxuXG4gIC8qKlxuICBDb21taXRsaW50IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIENvbW1pdGxpbnRDb25maWdUcyA9ICdjb21taXRsaW50LmNvbmZpZy50cycsXG5cbiAgLyoqXG4gIEN1cnJlbnQgZm9sZGVyLlxuICAgKi9cbiAgQ3VycmVudEZvbGRlciA9ICcuJyxcblxuICAvKipcbiAgQ29tbW9uSlMgVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlIGV4dGVuc2lvbi5cbiAgICovXG4gIERjdHNFeHRlbnNpb24gPSAnLmQuY3RzJyxcblxuICAvKipcbiAgRGlzdHJpYnV0aW9uIGZvbGRlci5cbiAgICovXG4gIERpc3QgPSAnZGlzdCcsXG5cbiAgLyoqXG4gIEEgcGF0aCB0byB0aGUgYGxpYmAgZm9sZGVyIHdpdGhpbiB0aGUge0BsaW5rIERpc3R9IGZvbGRlci5cbiAgICovXG4gIERpc3RMaWIgPSAnZGlzdC9saWInLFxuXG4gIC8qKlxuICBBIHBhdGggdG8gdGhlIGB0ZW1wbGF0ZXNgIGZvbGRlciB3aXRoaW4gdGhlIHtAbGluayBEaXN0fSBmb2xkZXIsIGhvbGRpbmcgdGhlIGNvbnN1bWVyLWZhY2luZyB0ZW1wbGF0ZXMuXG4gICAqL1xuICBEaXN0VGVtcGxhdGVzID0gJ2Rpc3QvdGVtcGxhdGVzJyxcblxuICAvKipcbiAgVHJhbnNwaWxlZCBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUgZXh0ZW5zaW9uLlxuICAgKi9cbiAgRGpzRXh0ZW5zaW9uID0gJy5kLmpzJyxcblxuICAvKipcbiAgRVNNIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZSBleHRlbnNpb24uXG4gICAqL1xuICBEbXRzRXh0ZW5zaW9uID0gJy5kLm10cycsXG5cbiAgLyoqXG4gIE9ic2lkaWFuIGNvbmZpZ3VyYXRpb24gZm9sZGVyIHdpdGhpbiBhIHZhdWx0LlxuICAgKi9cbiAgRG90T2JzaWRpYW4gPSAnLm9ic2lkaWFuJyxcblxuICAvKipcbiAgRHByaW50IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIERwcmludEpzb24gPSAnZHByaW50Lmpzb24nLFxuXG4gIC8qKlxuICBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUgZXh0ZW5zaW9uLlxuICAgKi9cbiAgRHRzRXh0ZW5zaW9uID0gJy5kLnRzJyxcblxuICAvKipcbiAgQ29tbW9uSlMgRVNMaW50IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIEVzbGludENvbmZpZ0NqcyA9ICdlc2xpbnQuY29uZmlnLmNqcycsXG5cbiAgLyoqXG4gIENvbW1vbkpTIFR5cGVTY3JpcHQgRVNMaW50IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIEVzbGludENvbmZpZ0N0cyA9ICdlc2xpbnQuY29uZmlnLmN0cycsXG5cbiAgLyoqXG4gIEphdmFTY3JpcHQgRVNMaW50IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIEVzbGludENvbmZpZ0pzID0gJ2VzbGludC5jb25maWcuanMnLFxuXG4gIC8qKlxuICBFU00gSmF2YVNjcmlwdCBFU0xpbnQgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgRXNsaW50Q29uZmlnTWpzID0gJ2VzbGludC5jb25maWcubWpzJyxcblxuICAvKipcbiAgRVNNIFR5cGVTY3JpcHQgRVNMaW50IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIEVzbGludENvbmZpZ010cyA9ICdlc2xpbnQuY29uZmlnLm10cycsXG5cbiAgLyoqXG4gIFR5cGVTY3JpcHQgRVNMaW50IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIEVzbGludENvbmZpZ1RzID0gJ2VzbGludC5jb25maWcudHMnLFxuXG4gIC8qKlxuICBFU00gSmF2YVNjcmlwdCBmb2xkZXIuXG4gICAqL1xuICBFc20gPSAnZXNtJyxcblxuICAvKipcbiAgV2luZG93cyBleGVjdXRhYmxlIGV4dGVuc2lvbi5cbiAgICovXG4gIEV4ZUV4dGVuc2lvbiA9ICcuZXhlJyxcblxuICAvKipcbiAgQ29tbW9uSlMgSmF2YVNjcmlwdCBpbmRleCBmaWxlLlxuICAgKi9cbiAgSW5kZXhDanMgPSAnaW5kZXguY2pzJyxcblxuICAvKipcbiAgQ29tbW9uSlMgVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlIGluZGV4IGZpbGUuXG4gICAqL1xuICBJbmRleERjdHMgPSAnaW5kZXguZC5jdHMnLFxuXG4gIC8qKlxuICBFU00gVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlIGluZGV4IGZpbGUuXG4gICAqL1xuICBJbmRleERtdHMgPSAnaW5kZXguZC5tdHMnLFxuXG4gIC8qKlxuICBFU00gSmF2YVNjcmlwdCBpbmRleCBmaWxlLlxuICAgKi9cbiAgSW5kZXhNanMgPSAnaW5kZXgubWpzJyxcblxuICAvKipcbiAgVHlwZVNjcmlwdCBpbmRleCBmaWxlLlxuICAgKi9cbiAgSW5kZXhUcyA9ICdpbmRleC50cycsXG5cbiAgLyoqXG4gIEphdmFTY3JpcHQgZmlsZSBleHRlbnNpb24uXG4gICAqL1xuICBKc0V4dGVuc2lvbiA9ICcuanMnLFxuXG4gIC8qKlxuICBDb21tb25KUyBNYXJrZG93bmxpbnQgQ0xJMiBjb25maWd1cmF0aW9uIGZpbGUuXG4gICAqL1xuICBNYXJrZG93bmxpbnRDbGkyQ29uZmlnQ2pzID0gJy5tYXJrZG93bmxpbnQtY2xpMi5janMnLFxuXG4gIC8qKlxuICBKU09OQyBNYXJrZG93bmxpbnQgQ0xJMiBjb25maWd1cmF0aW9uIGZpbGUuXG4gICAqL1xuICBNYXJrZG93bmxpbnRDbGkyQ29uZmlnSnNvbmMgPSAnLm1hcmtkb3dubGludC1jbGkyLmpzb25jJyxcblxuICAvKipcbiAgRVNNIE1hcmtkb3dubGludCBDTEkyIGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIE1hcmtkb3dubGludENsaTJDb25maWdNanMgPSAnLm1hcmtkb3dubGludC1jbGkyLm1qcycsXG5cbiAgLyoqXG4gIFlBTUwgTWFya2Rvd25saW50IENMSTIgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgTWFya2Rvd25saW50Q2xpMkNvbmZpZ1lhbWwgPSAnLm1hcmtkb3dubGludC1jbGkyLnlhbWwnLFxuXG4gIC8qKlxuICBDb21tb25KUyBNYXJrZG93bmxpbnQgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgTWFya2Rvd25saW50Q29uZmlnQ2pzID0gJy5tYXJrZG93bmxpbnQuY2pzJyxcblxuICAvKipcbiAgSlNPTiBNYXJrZG93bmxpbnQgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgTWFya2Rvd25saW50Q29uZmlnSnNvbiA9ICcubWFya2Rvd25saW50Lmpzb24nLFxuXG4gIC8qKlxuICBKU09OQyBNYXJrZG93bmxpbnQgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgTWFya2Rvd25saW50Q29uZmlnSnNvbmMgPSAnLm1hcmtkb3dubGludC5qc29uYycsXG5cbiAgLyoqXG4gIEVTTSBNYXJrZG93bmxpbnQgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgTWFya2Rvd25saW50Q29uZmlnTWpzID0gJy5tYXJrZG93bmxpbnQubWpzJyxcblxuICAvKipcbiAgWUFNTCBNYXJrZG93bmxpbnQgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgTWFya2Rvd25saW50Q29uZmlnWWFtbCA9ICcubWFya2Rvd25saW50LnlhbWwnLFxuXG4gIC8qKlxuICBZQU1MIE1hcmtkb3dubGludCBjb25maWd1cmF0aW9uIGZpbGUuXG4gICAqL1xuICBNYXJrZG93bmxpbnRDb25maWdZbWwgPSAnLm1hcmtkb3dubGludC55bWwnLFxuXG4gIC8qKlxuICBFU00gSmF2YVNjcmlwdCBmaWxlIGV4dGVuc2lvbi5cbiAgICovXG4gIE1qc0V4dGVuc2lvbiA9ICcubWpzJyxcblxuICAvKipcbiAgVGVzdCBtb2NrcyBmb2xkZXIuXG4gICAqL1xuICBNb2NrcyA9ICdzcmMvdGVzdC1oZWxwZXJzJyxcblxuICAvKipcbiAgTm9kZSBtb2R1bGVzIGZvbGRlci5cbiAgICovXG4gIE5vZGVNb2R1bGVzID0gJ25vZGVfbW9kdWxlcycsXG5cbiAgLyoqXG4gIE5QTSBzaHJpbmt3cmFwIGZpbGUuXG4gICAqL1xuICBOcG1TaHJpbmt3cmFwSnNvbiA9ICducG0tc2hyaW5rd3JhcC5qc29uJyxcblxuICAvKipcbiAgUGFja2FnZSBKU09OIGZpbGUuXG4gICAqL1xuICBQYWNrYWdlSnNvbiA9ICdwYWNrYWdlLmpzb24nLFxuXG4gIC8qKlxuICBOUE0gbG9ja2ZpbGUuXG4gICAqL1xuICBQYWNrYWdlTG9ja0pzb24gPSAncGFja2FnZS1sb2NrLmpzb24nLFxuXG4gIC8qKlxuICBQbnBtIGxvY2tmaWxlLlxuICAgKi9cbiAgUG5wbUxvY2tZYW1sID0gJ3BucG0tbG9jay55YW1sJyxcblxuICAvKipcbiAgUm9vdCBmb2xkZXIuXG4gICAqL1xuICBSb290Rm9sZGVyID0gJy8nLFxuXG4gIC8qKlxuICBTY3JpcHRzIGZvbGRlci5cbiAgICovXG4gIFNjcmlwdHMgPSAnc2NyaXB0cycsXG5cbiAgLyoqXG4gIFNvdXJjZSBmb2xkZXIuXG4gICAqL1xuICBTcmMgPSAnc3JjJyxcblxuICAvKipcbiAgU3R5bGVzIGZvbGRlci5cbiAgICovXG4gIFN0eWxlcyA9ICdzdHlsZXMnLFxuXG4gIC8qKlxuICBTdHlsZXMgQ1NTIGZpbGUuXG4gICAqL1xuICBTdHlsZXNDc3MgPSAnc3R5bGVzLmNzcycsXG5cbiAgLyoqXG4gIFRlbXBsYXRlcyBmb2xkZXIuXG4gICAqL1xuICBUZW1wbGF0ZXMgPSAndGVtcGxhdGVzJyxcblxuICAvKipcbiAgVGVzdCBoZWxwZXJzIGZvbGRlci5cbiAgICovXG4gIFRlc3RIZWxwZXJzID0gJ3Rlc3QtaGVscGVycycsXG5cbiAgLyoqXG4gIFRlc3RzIGZvbGRlci5cbiAgICovXG4gIFRlc3RzID0gJ19fdGVzdHNfXycsXG5cbiAgLyoqXG4gIFR5cGVTY3JpcHQgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgVHNDb25maWdKc29uID0gJ3RzY29uZmlnLmpzb24nLFxuXG4gIC8qKlxuICBUeXBlU2NyaXB0IGNvbmZpZ3VyYXRpb24gZmlsZSB0aGF0IHZhbGlkYXRlcyB0aGUgZ2VuZXJhdGVkIENvbW1vbkpTIGRlY2xhcmF0aW9ucy5cbiAgICovXG4gIFRzQ29uZmlnVmFsaWRhdGVEZWNsYXJhdGlvbnNDanNKc29uID0gJ3RzY29uZmlnLnZhbGlkYXRlLWRlY2xhcmF0aW9ucy1janMuanNvbicsXG5cbiAgLyoqXG4gIFR5cGVTY3JpcHQgY29uZmlndXJhdGlvbiBmaWxlIHRoYXQgdmFsaWRhdGVzIHRoZSBnZW5lcmF0ZWQgRVNNIGRlY2xhcmF0aW9ucy5cbiAgICovXG4gIFRzQ29uZmlnVmFsaWRhdGVEZWNsYXJhdGlvbnNKc29uID0gJ3RzY29uZmlnLnZhbGlkYXRlLWRlY2xhcmF0aW9ucy5qc29uJyxcblxuICAvKipcbiAgVHlwZVNjcmlwdCBmaWxlIGV4dGVuc2lvbi5cbiAgICovXG4gIFRzRXh0ZW5zaW9uID0gJy50cycsXG5cbiAgLyoqXG4gIFR5cGVzIGZvbGRlci5cbiAgICovXG4gIFR5cGVzID0gJ0B0eXBlcycsXG5cbiAgLyoqXG4gIFZpdGVzdCBjb25maWd1cmF0aW9uIGZpbGUuXG4gICAqL1xuICBWaXRlc3RDb25maWdUcyA9ICd2aXRlc3QuY29uZmlnLnRzJyxcblxuICAvKipcbiAgWWFybiBsb2NrZmlsZS5cbiAgICovXG4gIFlhcm5Mb2NrID0gJ3lhcm4ubG9jaydcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7O0FBVU8sSUFBSyxZ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
@@ -0,0 +1,29 @@
1
+ /// <reference path="./library-references.d.mts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * Locates the shared tool configuration files this package ships under `assets/`.
6
+ */
7
+ /**
8
+ * A shared configuration file this package ships under `assets/`.
9
+ */
10
+ export declare enum SharedConfigFile {
11
+ /**
12
+ * The shared Biome configuration. A project's own `biome.json` extends it.
13
+ */
14
+ Biome = "biome.json",
15
+ /**
16
+ * The shared Prettier configuration.
17
+ */
18
+ Prettier = "prettier.json"
19
+ }
20
+ /**
21
+ * Finds a shared configuration file. It walks up from the module, because it runs from `src` here and from
22
+ * `dist/lib/<format>` once installed.
23
+ *
24
+ * @param file - The {@link SharedConfigFile} to find.
25
+ * @param moduleUrl - The URL of a module of this package to start from.
26
+ * @returns The file's absolute path.
27
+ * @throws If no folder above the module holds the file.
28
+ */
29
+ export declare function getSharedConfigFilePath(file: SharedConfigFile, moduleUrl?: string): string;
@@ -0,0 +1,36 @@
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
+ import { existsSync } from "node:fs";
7
+ import {
8
+ dirname,
9
+ join
10
+ } from "node:path";
11
+ import { fileURLToPath } from "node:url";
12
+ var SharedConfigFile = /* @__PURE__ */ ((SharedConfigFile2) => {
13
+ SharedConfigFile2["Biome"] = "biome.json";
14
+ SharedConfigFile2["Prettier"] = "prettier.json";
15
+ return SharedConfigFile2;
16
+ })(SharedConfigFile || {});
17
+ const ASSETS_FOLDER = "assets";
18
+ function getSharedConfigFilePath(file, moduleUrl = import.meta.url) {
19
+ let directory = dirname(fileURLToPath(moduleUrl));
20
+ for (; ; ) {
21
+ const candidate = join(directory, ASSETS_FOLDER, file);
22
+ if (existsSync(candidate)) {
23
+ return candidate;
24
+ }
25
+ const parent = dirname(directory);
26
+ if (parent === directory) {
27
+ throw new Error(`No ${ASSETS_FOLDER}/${file} above ${fileURLToPath(moduleUrl)}.`);
28
+ }
29
+ directory = parent;
30
+ }
31
+ }
32
+ export {
33
+ SharedConfigFile,
34
+ getSharedConfigFilePath
35
+ };
36
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3NoYXJlZC1jb25maWctZmlsZXMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBMb2NhdGVzIHRoZSBzaGFyZWQgdG9vbCBjb25maWd1cmF0aW9uIGZpbGVzIHRoaXMgcGFja2FnZSBzaGlwcyB1bmRlciBgYXNzZXRzL2AuXG4gKi9cblxuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHtcbiAgZGlybmFtZSxcbiAgam9pblxufSBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHsgZmlsZVVSTFRvUGF0aCB9IGZyb20gJ25vZGU6dXJsJztcblxuLyoqXG4gKiBBIHNoYXJlZCBjb25maWd1cmF0aW9uIGZpbGUgdGhpcyBwYWNrYWdlIHNoaXBzIHVuZGVyIGBhc3NldHMvYC5cbiAqL1xuZXhwb3J0IGVudW0gU2hhcmVkQ29uZmlnRmlsZSB7XG4gIC8qKlxuICAgKiBUaGUgc2hhcmVkIEJpb21lIGNvbmZpZ3VyYXRpb24uIEEgcHJvamVjdCdzIG93biBgYmlvbWUuanNvbmAgZXh0ZW5kcyBpdC5cbiAgICovXG4gIEJpb21lID0gJ2Jpb21lLmpzb24nLFxuXG4gIC8qKlxuICAgKiBUaGUgc2hhcmVkIFByZXR0aWVyIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBQcmV0dGllciA9ICdwcmV0dGllci5qc29uJ1xufVxuXG5jb25zdCBBU1NFVFNfRk9MREVSID0gJ2Fzc2V0cyc7XG5cbi8qKlxuICogRmluZHMgYSBzaGFyZWQgY29uZmlndXJhdGlvbiBmaWxlLiBJdCB3YWxrcyB1cCBmcm9tIHRoZSBtb2R1bGUsIGJlY2F1c2UgaXQgcnVucyBmcm9tIGBzcmNgIGhlcmUgYW5kIGZyb21cbiAqIGBkaXN0L2xpYi88Zm9ybWF0PmAgb25jZSBpbnN0YWxsZWQuXG4gKlxuICogQHBhcmFtIGZpbGUgLSBUaGUge0BsaW5rIFNoYXJlZENvbmZpZ0ZpbGV9IHRvIGZpbmQuXG4gKiBAcGFyYW0gbW9kdWxlVXJsIC0gVGhlIFVSTCBvZiBhIG1vZHVsZSBvZiB0aGlzIHBhY2thZ2UgdG8gc3RhcnQgZnJvbS5cbiAqIEByZXR1cm5zIFRoZSBmaWxlJ3MgYWJzb2x1dGUgcGF0aC5cbiAqIEB0aHJvd3MgSWYgbm8gZm9sZGVyIGFib3ZlIHRoZSBtb2R1bGUgaG9sZHMgdGhlIGZpbGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTaGFyZWRDb25maWdGaWxlUGF0aChmaWxlOiBTaGFyZWRDb25maWdGaWxlLCBtb2R1bGVVcmw6IHN0cmluZyA9IGltcG9ydC5tZXRhLnVybCk6IHN0cmluZyB7XG4gIGxldCBkaXJlY3RvcnkgPSBkaXJuYW1lKGZpbGVVUkxUb1BhdGgobW9kdWxlVXJsKSk7XG4gIGZvciAoOzspIHtcbiAgICBjb25zdCBjYW5kaWRhdGUgPSBqb2luKGRpcmVjdG9yeSwgQVNTRVRTX0ZPTERFUiwgZmlsZSk7XG4gICAgaWYgKGV4aXN0c1N5bmMoY2FuZGlkYXRlKSkge1xuICAgICAgcmV0dXJuIGNhbmRpZGF0ZTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJlbnQgPSBkaXJuYW1lKGRpcmVjdG9yeSk7XG4gICAgaWYgKHBhcmVudCA9PT0gZGlyZWN0b3J5KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vICR7QVNTRVRTX0ZPTERFUn0vJHtmaWxlfSBhYm92ZSAke2ZpbGVVUkxUb1BhdGgobW9kdWxlVXJsKX0uYCk7XG4gICAgfVxuXG4gICAgZGlyZWN0b3J5ID0gcGFyZW50O1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7OztBQU1BLFNBQVMsa0JBQWtCO0FBQzNCO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUyxxQkFBcUI7QUFLdkIsSUFBSyxtQkFBTCxrQkFBS0Esc0JBQUw7QUFJTCxFQUFBQSxrQkFBQSxXQUFRO0FBS1IsRUFBQUEsa0JBQUEsY0FBVztBQVRELFNBQUFBO0FBQUEsR0FBQTtBQVlaLE1BQU0sZ0JBQWdCO0FBV2YsU0FBUyx3QkFBd0IsTUFBd0IsWUFBb0IsWUFBWSxLQUFhO0FBQzNHLE1BQUksWUFBWSxRQUFRLGNBQWMsU0FBUyxDQUFDO0FBQ2hELGFBQVM7QUFDUCxVQUFNLFlBQVksS0FBSyxXQUFXLGVBQWUsSUFBSTtBQUNyRCxRQUFJLFdBQVcsU0FBUyxHQUFHO0FBQ3pCLGFBQU87QUFBQSxJQUNUO0FBRUEsVUFBTSxTQUFTLFFBQVEsU0FBUztBQUNoQyxRQUFJLFdBQVcsV0FBVztBQUN4QixZQUFNLElBQUksTUFBTSxNQUFNLGFBQWEsSUFBSSxJQUFJLFVBQVUsY0FBYyxTQUFTLENBQUMsR0FBRztBQUFBLElBQ2xGO0FBRUEsZ0JBQVk7QUFBQSxFQUNkO0FBQ0Y7IiwKICAibmFtZXMiOiBbIlNoYXJlZENvbmZpZ0ZpbGUiXQp9Cg==
@@ -0,0 +1,82 @@
1
+ /// <reference path="../library-references.d.mts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * Runs the tests with whichever runner the project configures: vitest or jest.
6
+ */
7
+ /**
8
+ * A test runner the toolkit runs.
9
+ */
10
+ export type TestRunner = 'jest' | 'vitest';
11
+ /**
12
+ * Every file vitest reads its configuration from.
13
+ *
14
+ * `vite.config.*` is deliberately not among them: a project that bundles with vite and tests with jest has one.
15
+ *
16
+ * @see {@link https://vitest.dev/config/}
17
+ */
18
+ export declare const VITEST_CONFIG_FILE_NAMES: readonly string[];
19
+ /**
20
+ * Options for running tests with coverage.
21
+ */
22
+ export interface TestCoverageOptions extends TestOptions {
23
+ /**
24
+ * Minimum coverage percentage required, for lines, functions, branches and statements alike.
25
+ *
26
+ * @default `0`
27
+ */
28
+ readonly minCoverageInPercents?: number;
29
+ }
30
+ /**
31
+ * Options for running tests.
32
+ */
33
+ export interface TestOptions {
34
+ /**
35
+ * Whether jest runs the suite as ES modules. Vitest ignores it.
36
+ *
37
+ * @default `true` when `package.json` declares `"type": "module"`
38
+ */
39
+ readonly esm?: boolean;
40
+ /**
41
+ * The projects to run. Vitest also runs each one's `name:*` sub-projects; jest matches a `displayName` exactly.
42
+ */
43
+ readonly projects?: string[];
44
+ /**
45
+ * The runner to use. Omitted, {@link detectTestRunner} chooses it.
46
+ */
47
+ readonly runner?: TestRunner;
48
+ }
49
+ /**
50
+ * Options for running tests in watch mode.
51
+ */
52
+ export type TestWatchOptions = TestOptions;
53
+ /**
54
+ * Chooses the test runner from the configuration files at the project root.
55
+ *
56
+ * The order is a vitest configuration, then a jest one (a file, or a `jest` key in `package.json`). A project with
57
+ * neither gets vitest, the runner every package on this toolchain used before jest was supported.
58
+ *
59
+ * @returns The runner to use.
60
+ */
61
+ export declare function detectTestRunner(): Promise<TestRunner>;
62
+ /**
63
+ * Runs the test suite with the project's runner.
64
+ *
65
+ * @param options - The {@link TestOptions}.
66
+ * @returns A {@link Promise} that resolves when the tests have completed.
67
+ */
68
+ export declare function test(options?: TestOptions): Promise<void>;
69
+ /**
70
+ * Runs the test suite with coverage, with the project's runner.
71
+ *
72
+ * @param options - The {@link TestCoverageOptions}.
73
+ * @returns A {@link Promise} that resolves when the tests have completed.
74
+ */
75
+ export declare function testCoverage(options?: TestCoverageOptions): Promise<void>;
76
+ /**
77
+ * Runs the test suite in watch mode, with the project's runner.
78
+ *
79
+ * @param options - The {@link TestWatchOptions}.
80
+ * @returns A {@link Promise} that resolves when the watcher exits.
81
+ */
82
+ export declare function testWatch(options?: TestWatchOptions): Promise<void>;
@@ -0,0 +1,64 @@
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
+ import { existsSync } from "node:fs";
7
+ import { resolvePathFromRootSafe } from "../root.mjs";
8
+ import {
9
+ hasJestConfig,
10
+ test as jestTest,
11
+ testCoverage as jestTestCoverage,
12
+ testWatch as jestTestWatch
13
+ } from "./jest.mjs";
14
+ import {
15
+ test as vitestTest,
16
+ testCoverage as vitestTestCoverage,
17
+ testWatch as vitestTestWatch
18
+ } from "./vitest.mjs";
19
+ const VITEST_CONFIG_FILE_NAMES = [
20
+ "vitest.config.cjs",
21
+ "vitest.config.cts",
22
+ "vitest.config.js",
23
+ "vitest.config.mjs",
24
+ "vitest.config.mts",
25
+ "vitest.config.ts"
26
+ ];
27
+ const RUNNERS = {
28
+ jest: {
29
+ test: jestTest,
30
+ testCoverage: jestTestCoverage,
31
+ testWatch: jestTestWatch
32
+ },
33
+ vitest: {
34
+ test: vitestTest,
35
+ testCoverage: vitestTestCoverage,
36
+ testWatch: vitestTestWatch
37
+ }
38
+ };
39
+ async function detectTestRunner() {
40
+ if (VITEST_CONFIG_FILE_NAMES.some((fileName) => existsSync(resolvePathFromRootSafe({ path: fileName })))) {
41
+ return "vitest";
42
+ }
43
+ return await hasJestConfig() ? "jest" : "vitest";
44
+ }
45
+ async function test(options = {}) {
46
+ const { runner = await detectTestRunner(), ...runnerOptions } = options;
47
+ await RUNNERS[runner].test(runnerOptions);
48
+ }
49
+ async function testCoverage(options = {}) {
50
+ const { runner = await detectTestRunner(), ...runnerOptions } = options;
51
+ await RUNNERS[runner].testCoverage(runnerOptions);
52
+ }
53
+ async function testWatch(options = {}) {
54
+ const { runner = await detectTestRunner(), ...runnerOptions } = options;
55
+ await RUNNERS[runner].testWatch(runnerOptions);
56
+ }
57
+ export {
58
+ VITEST_CONFIG_FILE_NAMES,
59
+ detectTestRunner,
60
+ test,
61
+ testCoverage,
62
+ testWatch
63
+ };
64
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3Rlc3QtcnVubmVycy9hdXRvLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogUnVucyB0aGUgdGVzdHMgd2l0aCB3aGljaGV2ZXIgcnVubmVyIHRoZSBwcm9qZWN0IGNvbmZpZ3VyZXM6IHZpdGVzdCBvciBqZXN0LlxuICovXG5cbmltcG9ydCB7IGV4aXN0c1N5bmMgfSBmcm9tICdub2RlOmZzJztcblxuaW1wb3J0IHsgcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUgfSBmcm9tICcuLi9yb290LnRzJztcbmltcG9ydCB7XG4gIGhhc0plc3RDb25maWcsXG4gIHRlc3QgYXMgamVzdFRlc3QsXG4gIHRlc3RDb3ZlcmFnZSBhcyBqZXN0VGVzdENvdmVyYWdlLFxuICB0ZXN0V2F0Y2ggYXMgamVzdFRlc3RXYXRjaFxufSBmcm9tICcuL2plc3QudHMnO1xuaW1wb3J0IHtcbiAgdGVzdCBhcyB2aXRlc3RUZXN0LFxuICB0ZXN0Q292ZXJhZ2UgYXMgdml0ZXN0VGVzdENvdmVyYWdlLFxuICB0ZXN0V2F0Y2ggYXMgdml0ZXN0VGVzdFdhdGNoXG59IGZyb20gJy4vdml0ZXN0LnRzJztcblxuLyoqXG4gKiBBIHRlc3QgcnVubmVyIHRoZSB0b29sa2l0IHJ1bnMuXG4gKi9cbmV4cG9ydCB0eXBlIFRlc3RSdW5uZXIgPSAnamVzdCcgfCAndml0ZXN0JztcblxuLyoqXG4gKiBFdmVyeSBmaWxlIHZpdGVzdCByZWFkcyBpdHMgY29uZmlndXJhdGlvbiBmcm9tLlxuICpcbiAqIGB2aXRlLmNvbmZpZy4qYCBpcyBkZWxpYmVyYXRlbHkgbm90IGFtb25nIHRoZW06IGEgcHJvamVjdCB0aGF0IGJ1bmRsZXMgd2l0aCB2aXRlIGFuZCB0ZXN0cyB3aXRoIGplc3QgaGFzIG9uZS5cbiAqXG4gKiBAc2VlIHtAbGluayBodHRwczovL3ZpdGVzdC5kZXYvY29uZmlnL31cbiAqL1xuZXhwb3J0IGNvbnN0IFZJVEVTVF9DT05GSUdfRklMRV9OQU1FUzogcmVhZG9ubHkgc3RyaW5nW10gPSBbXG4gICd2aXRlc3QuY29uZmlnLmNqcycsXG4gICd2aXRlc3QuY29uZmlnLmN0cycsXG4gICd2aXRlc3QuY29uZmlnLmpzJyxcbiAgJ3ZpdGVzdC5jb25maWcubWpzJyxcbiAgJ3ZpdGVzdC5jb25maWcubXRzJyxcbiAgJ3ZpdGVzdC5jb25maWcudHMnXG5dO1xuXG5pbnRlcmZhY2UgUnVubmVyRnVuY3Rpb25zIHtcbiAgcmVhZG9ubHkgdGVzdDogKG9wdGlvbnM6IFRlc3RPcHRpb25zKSA9PiBQcm9taXNlPHZvaWQ+O1xuICByZWFkb25seSB0ZXN0Q292ZXJhZ2U6IChvcHRpb25zOiBUZXN0Q292ZXJhZ2VPcHRpb25zKSA9PiBQcm9taXNlPHZvaWQ+O1xuICByZWFkb25seSB0ZXN0V2F0Y2g6IChvcHRpb25zOiBUZXN0V2F0Y2hPcHRpb25zKSA9PiBQcm9taXNlPHZvaWQ+O1xufVxuXG5jb25zdCBSVU5ORVJTOiBSZWFkb25seTxSZWNvcmQ8VGVzdFJ1bm5lciwgUnVubmVyRnVuY3Rpb25zPj4gPSB7XG4gIGplc3Q6IHtcbiAgICB0ZXN0OiBqZXN0VGVzdCxcbiAgICB0ZXN0Q292ZXJhZ2U6IGplc3RUZXN0Q292ZXJhZ2UsXG4gICAgdGVzdFdhdGNoOiBqZXN0VGVzdFdhdGNoXG4gIH0sXG4gIHZpdGVzdDoge1xuICAgIHRlc3Q6IHZpdGVzdFRlc3QsXG4gICAgdGVzdENvdmVyYWdlOiB2aXRlc3RUZXN0Q292ZXJhZ2UsXG4gICAgdGVzdFdhdGNoOiB2aXRlc3RUZXN0V2F0Y2hcbiAgfVxufTtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBydW5uaW5nIHRlc3RzIHdpdGggY292ZXJhZ2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGVzdENvdmVyYWdlT3B0aW9ucyBleHRlbmRzIFRlc3RPcHRpb25zIHtcbiAgLyoqXG4gICAqIE1pbmltdW0gY292ZXJhZ2UgcGVyY2VudGFnZSByZXF1aXJlZCwgZm9yIGxpbmVzLCBmdW5jdGlvbnMsIGJyYW5jaGVzIGFuZCBzdGF0ZW1lbnRzIGFsaWtlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgMGBcbiAgICovXG4gIHJlYWRvbmx5IG1pbkNvdmVyYWdlSW5QZXJjZW50cz86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBydW5uaW5nIHRlc3RzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlc3RPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgamVzdCBydW5zIHRoZSBzdWl0ZSBhcyBFUyBtb2R1bGVzLiBWaXRlc3QgaWdub3JlcyBpdC5cbiAgICpcbiAgICogQGRlZmF1bHQgYHRydWVgIHdoZW4gYHBhY2thZ2UuanNvbmAgZGVjbGFyZXMgYFwidHlwZVwiOiBcIm1vZHVsZVwiYFxuICAgKi9cbiAgcmVhZG9ubHkgZXNtPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIHByb2plY3RzIHRvIHJ1bi4gVml0ZXN0IGFsc28gcnVucyBlYWNoIG9uZSdzIGBuYW1lOipgIHN1Yi1wcm9qZWN0czsgamVzdCBtYXRjaGVzIGEgYGRpc3BsYXlOYW1lYCBleGFjdGx5LlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvamVjdHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIHJ1bm5lciB0byB1c2UuIE9taXR0ZWQsIHtAbGluayBkZXRlY3RUZXN0UnVubmVyfSBjaG9vc2VzIGl0LlxuICAgKi9cbiAgcmVhZG9ubHkgcnVubmVyPzogVGVzdFJ1bm5lcjtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBydW5uaW5nIHRlc3RzIGluIHdhdGNoIG1vZGUuXG4gKi9cbmV4cG9ydCB0eXBlIFRlc3RXYXRjaE9wdGlvbnMgPSBUZXN0T3B0aW9ucztcblxuLyoqXG4gKiBDaG9vc2VzIHRoZSB0ZXN0IHJ1bm5lciBmcm9tIHRoZSBjb25maWd1cmF0aW9uIGZpbGVzIGF0IHRoZSBwcm9qZWN0IHJvb3QuXG4gKlxuICogVGhlIG9yZGVyIGlzIGEgdml0ZXN0IGNvbmZpZ3VyYXRpb24sIHRoZW4gYSBqZXN0IG9uZSAoYSBmaWxlLCBvciBhIGBqZXN0YCBrZXkgaW4gYHBhY2thZ2UuanNvbmApLiBBIHByb2plY3Qgd2l0aFxuICogbmVpdGhlciBnZXRzIHZpdGVzdCwgdGhlIHJ1bm5lciBldmVyeSBwYWNrYWdlIG9uIHRoaXMgdG9vbGNoYWluIHVzZWQgYmVmb3JlIGplc3Qgd2FzIHN1cHBvcnRlZC5cbiAqXG4gKiBAcmV0dXJucyBUaGUgcnVubmVyIHRvIHVzZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRldGVjdFRlc3RSdW5uZXIoKTogUHJvbWlzZTxUZXN0UnVubmVyPiB7XG4gIGlmIChWSVRFU1RfQ09ORklHX0ZJTEVfTkFNRVMuc29tZSgoZmlsZU5hbWUpID0+IGV4aXN0c1N5bmMocmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoeyBwYXRoOiBmaWxlTmFtZSB9KSkpKSB7XG4gICAgcmV0dXJuICd2aXRlc3QnO1xuICB9XG5cbiAgcmV0dXJuIGF3YWl0IGhhc0plc3RDb25maWcoKSA/ICdqZXN0JyA6ICd2aXRlc3QnO1xufVxuXG4vKipcbiAqIFJ1bnMgdGhlIHRlc3Qgc3VpdGUgd2l0aCB0aGUgcHJvamVjdCdzIHJ1bm5lci5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSB7QGxpbmsgVGVzdE9wdGlvbnN9LlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSB0ZXN0cyBoYXZlIGNvbXBsZXRlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRlc3Qob3B0aW9uczogVGVzdE9wdGlvbnMgPSB7fSk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7IHJ1bm5lciA9IGF3YWl0IGRldGVjdFRlc3RSdW5uZXIoKSwgLi4ucnVubmVyT3B0aW9ucyB9ID0gb3B0aW9ucztcbiAgYXdhaXQgUlVOTkVSU1tydW5uZXJdLnRlc3QocnVubmVyT3B0aW9ucyk7XG59XG5cbi8qKlxuICogUnVucyB0aGUgdGVzdCBzdWl0ZSB3aXRoIGNvdmVyYWdlLCB3aXRoIHRoZSBwcm9qZWN0J3MgcnVubmVyLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHtAbGluayBUZXN0Q292ZXJhZ2VPcHRpb25zfS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgdGVzdHMgaGF2ZSBjb21wbGV0ZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0ZXN0Q292ZXJhZ2Uob3B0aW9uczogVGVzdENvdmVyYWdlT3B0aW9ucyA9IHt9KTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHsgcnVubmVyID0gYXdhaXQgZGV0ZWN0VGVzdFJ1bm5lcigpLCAuLi5ydW5uZXJPcHRpb25zIH0gPSBvcHRpb25zO1xuICBhd2FpdCBSVU5ORVJTW3J1bm5lcl0udGVzdENvdmVyYWdlKHJ1bm5lck9wdGlvbnMpO1xufVxuXG4vKipcbiAqIFJ1bnMgdGhlIHRlc3Qgc3VpdGUgaW4gd2F0Y2ggbW9kZSwgd2l0aCB0aGUgcHJvamVjdCdzIHJ1bm5lci5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSB7QGxpbmsgVGVzdFdhdGNoT3B0aW9uc30uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHdhdGNoZXIgZXhpdHMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0ZXN0V2F0Y2gob3B0aW9uczogVGVzdFdhdGNoT3B0aW9ucyA9IHt9KTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHsgcnVubmVyID0gYXdhaXQgZGV0ZWN0VGVzdFJ1bm5lcigpLCAuLi5ydW5uZXJPcHRpb25zIH0gPSBvcHRpb25zO1xuICBhd2FpdCBSVU5ORVJTW3J1bm5lcl0udGVzdFdhdGNoKHJ1bm5lck9wdGlvbnMpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7QUFNQSxTQUFTLGtCQUFrQjtBQUUzQixTQUFTLCtCQUErQjtBQUN4QztBQUFBLEVBQ0U7QUFBQSxFQUNBLFFBQVE7QUFBQSxFQUNSLGdCQUFnQjtBQUFBLEVBQ2hCLGFBQWE7QUFBQSxPQUNSO0FBQ1A7QUFBQSxFQUNFLFFBQVE7QUFBQSxFQUNSLGdCQUFnQjtBQUFBLEVBQ2hCLGFBQWE7QUFBQSxPQUNSO0FBY0EsTUFBTSwyQkFBOEM7QUFBQSxFQUN6RDtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQ0Y7QUFRQSxNQUFNLFVBQXlEO0FBQUEsRUFDN0QsTUFBTTtBQUFBLElBQ0osTUFBTTtBQUFBLElBQ04sY0FBYztBQUFBLElBQ2QsV0FBVztBQUFBLEVBQ2I7QUFBQSxFQUNBLFFBQVE7QUFBQSxJQUNOLE1BQU07QUFBQSxJQUNOLGNBQWM7QUFBQSxJQUNkLFdBQVc7QUFBQSxFQUNiO0FBQ0Y7QUFpREEsZUFBc0IsbUJBQXdDO0FBQzVELE1BQUkseUJBQXlCLEtBQUssQ0FBQyxhQUFhLFdBQVcsd0JBQXdCLEVBQUUsTUFBTSxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUc7QUFDeEcsV0FBTztBQUFBLEVBQ1Q7QUFFQSxTQUFPLE1BQU0sY0FBYyxJQUFJLFNBQVM7QUFDMUM7QUFRQSxlQUFzQixLQUFLLFVBQXVCLENBQUMsR0FBa0I7QUFDbkUsUUFBTSxFQUFFLFNBQVMsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLGNBQWMsSUFBSTtBQUNoRSxRQUFNLFFBQVEsTUFBTSxFQUFFLEtBQUssYUFBYTtBQUMxQztBQVFBLGVBQXNCLGFBQWEsVUFBK0IsQ0FBQyxHQUFrQjtBQUNuRixRQUFNLEVBQUUsU0FBUyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsY0FBYyxJQUFJO0FBQ2hFLFFBQU0sUUFBUSxNQUFNLEVBQUUsYUFBYSxhQUFhO0FBQ2xEO0FBUUEsZUFBc0IsVUFBVSxVQUE0QixDQUFDLEdBQWtCO0FBQzdFLFFBQU0sRUFBRSxTQUFTLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxjQUFjLElBQUk7QUFDaEUsUUFBTSxRQUFRLE1BQU0sRUFBRSxVQUFVLGFBQWE7QUFDL0M7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -1,3 +1,6 @@
1
1
  /// <reference path="../library-references.d.mts" />
2
+ export * as 'auto' from './auto.mjs';
3
+ export * as 'jest-config' from './jest-config.mjs';
4
+ export * as 'jest' from './jest.mjs';
2
5
  export * as 'vitest-config' from './vitest-config.mjs';
3
6
  export * as 'vitest' from './vitest.mjs';
@@ -3,10 +3,16 @@ 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
5
 
6
+ import * as auto from "./auto.mjs";
7
+ import * as jest_config from "./jest-config.mjs";
8
+ import * as jest from "./jest.mjs";
6
9
  import * as vitest_config from "./vitest-config.mjs";
7
10
  import * as vitest from "./vitest.mjs";
8
11
  export {
12
+ auto,
13
+ jest,
14
+ jest_config as "jest-config",
9
15
  vitest,
10
16
  vitest_config as "vitest-config"
11
17
  };
12
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3Rlc3QtcnVubmVycy9pbmRleC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogVEhJUyBJUyBBIEdFTkVSQVRFRC9CVU5ETEVEIEZJTEUgQlkgQlVJTEQgU0NSSVBUICovXG5cbmV4cG9ydCAqIGFzICd2aXRlc3QtY29uZmlnJyBmcm9tICcuL3ZpdGVzdC1jb25maWcudHMnO1xuZXhwb3J0ICogYXMgJ3ZpdGVzdCcgZnJvbSAnLi92aXRlc3QudHMnO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7QUFFQSxZQUFZQSxtQkFBcUI7QUFDakMsWUFBWSxZQUFjOyIsCiAgIm5hbWVzIjogWyJ2aXRlc3QtY29uZmlnIl0KfQo=
18
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3Rlc3QtcnVubmVycy9pbmRleC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogVEhJUyBJUyBBIEdFTkVSQVRFRC9CVU5ETEVEIEZJTEUgQlkgQlVJTEQgU0NSSVBUICovXG5cbmV4cG9ydCAqIGFzICdhdXRvJyBmcm9tICcuL2F1dG8udHMnO1xuZXhwb3J0ICogYXMgJ2plc3QtY29uZmlnJyBmcm9tICcuL2plc3QtY29uZmlnLnRzJztcbmV4cG9ydCAqIGFzICdqZXN0JyBmcm9tICcuL2plc3QudHMnO1xuZXhwb3J0ICogYXMgJ3ZpdGVzdC1jb25maWcnIGZyb20gJy4vdml0ZXN0LWNvbmZpZy50cyc7XG5leHBvcnQgKiBhcyAndml0ZXN0JyBmcm9tICcuL3ZpdGVzdC50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7OztBQUVBLFlBQVksVUFBWTtBQUN4QixZQUFZQSxpQkFBbUI7QUFDL0IsWUFBWSxVQUFZO0FBQ3hCLFlBQVlDLG1CQUFxQjtBQUNqQyxZQUFZLFlBQWM7IiwKICAibmFtZXMiOiBbImplc3QtY29uZmlnIiwgInZpdGVzdC1jb25maWciXQp9Cg==
@@ -0,0 +1,71 @@
1
+ /// <reference path="../library-references.d.mts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * Shared jest configuration for TypeScript packages: {@link defineJestConfig}, which fills in the ts-jest transform,
6
+ * the ESM settings, the test excludes and the coverage block a project otherwise writes by hand.
7
+ *
8
+ * The coverage block is the one the vitest library configuration uses, so a package reports the same files whichever
9
+ * runner it picks.
10
+ */
11
+ import type { Config } from 'jest';
12
+ import type { TsJestTransformerOptions } from 'ts-jest';
13
+ /**
14
+ * The files ts-jest compiles: `.ts`, `.tsx`, `.mts` and `.cts`.
15
+ */
16
+ export declare const JEST_TYPESCRIPT_TRANSFORM_PATTERN: string;
17
+ /**
18
+ * Maps a relative import written with a `.js` extension onto the path without an extension, which jest resolves.
19
+ *
20
+ * A project compiled with `module: nodenext` writes `./foo.js` for `./foo.ts`, and so does TypeScript itself when
21
+ * `rewriteRelativeImportExtensions` turns a `./foo.ts` import into `./foo.js`. Jest looks for a file literally named
22
+ * `foo.js` and fails with `Cannot find module './foo.js'`, so the extension is removed and jest's own
23
+ * `moduleFileExtensions` search finds `foo.ts`.
24
+ */
25
+ export declare const JEST_RELATIVE_JS_IMPORT_MAPPER: Readonly<Record<string, string>>;
26
+ /**
27
+ * Folders jest never collects tests from.
28
+ */
29
+ export declare const DEFAULT_JEST_TEST_PATH_IGNORE_PATTERNS: readonly string[];
30
+ /**
31
+ * Options for {@link defineJestConfig}: any jest option, which wins over the default the function would otherwise
32
+ * set, plus the two below.
33
+ */
34
+ export interface DefineJestConfigOptions extends Config {
35
+ /**
36
+ * Whether jest loads the project as ES modules.
37
+ *
38
+ * ESM needs `extensionsToTreatAsEsm`, ts-jest's `useESM`, and Node's `--experimental-vm-modules`, which the jest
39
+ * runner in this package adds by the same rule.
40
+ *
41
+ * @default `true` when `package.json` declares `"type": "module"`
42
+ */
43
+ readonly esm?: boolean;
44
+ /**
45
+ * Options for the ts-jest transform, spread over the defaults: `useESM` from {@link esm}, and a `tsconfig` of
46
+ * `{ isolatedModules: true }`, so each file is transpiled on its own, without a type check, as vitest does. A
47
+ * `tsconfig` given here replaces that default rather than merging with it.
48
+ *
49
+ * Ignored when {@link Config.transform} is given.
50
+ */
51
+ readonly tsJestOptions?: TsJestTransformerOptions;
52
+ }
53
+ /**
54
+ * Defines a TypeScript project's jest configuration.
55
+ *
56
+ * The defaults: the tests are `src/**\/*.test.ts`, run in the `node` environment, transformed by ts-jest, as ESM when
57
+ * the package is (see {@link DefineJestConfigOptions.esm}); a `.js` relative import resolves onto its `.ts` source;
58
+ * coverage is v8 over `src/`, without the barrels, the declarations, the tests and the test helpers, reported as
59
+ * `text`, `lcov` and `html` into `coverage/`. Every jest option in `options` replaces its default, except
60
+ * `moduleNameMapper`, whose entries are added to the `.js` mapper.
61
+ *
62
+ * @param options - The configuration options.
63
+ * @returns The jest configuration.
64
+ */
65
+ export declare function defineJestConfig(options?: DefineJestConfigOptions): Config;
66
+ /**
67
+ * Says whether the project at the root is an ES module package.
68
+ *
69
+ * @returns Whether its `package.json` declares `"type": "module"`. A project without a `package.json` is not.
70
+ */
71
+ export declare function isEsmPackage(): boolean;