@mnaoumov/typescript-dev-toolkit 3.0.0 → 3.2.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 (100) 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 +1 -1
  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/nano-staged-config.cjs +33 -16
  34. package/dist/lib/cjs/nano-staged-config.d.cts +6 -0
  35. package/dist/lib/cjs/repo-paths.cjs +3 -1
  36. package/dist/lib/cjs/repo-paths.d.cts +8 -0
  37. package/dist/lib/cjs/shared-config-files.cjs +68 -0
  38. package/dist/lib/cjs/shared-config-files.d.cts +29 -0
  39. package/dist/lib/cjs/test-runners/auto.cjs +83 -0
  40. package/dist/lib/cjs/test-runners/auto.d.cts +82 -0
  41. package/dist/lib/cjs/test-runners/index.cjs +10 -1
  42. package/dist/lib/cjs/test-runners/index.d.cts +3 -0
  43. package/dist/lib/cjs/test-runners/jest-config.cjs +86 -0
  44. package/dist/lib/cjs/test-runners/jest-config.d.cts +71 -0
  45. package/dist/lib/cjs/test-runners/jest.cjs +111 -0
  46. package/dist/lib/cjs/test-runners/jest.d.cts +77 -0
  47. package/dist/lib/esm/docs-site/docs-links.mjs +7 -3
  48. package/dist/lib/esm/docs-site/docs-site-commands.d.mts +8 -3
  49. package/dist/lib/esm/docs-site/docs-site-commands.mjs +14 -5
  50. package/dist/lib/esm/docs-site/docs-site-config.d.mts +17 -0
  51. package/dist/lib/esm/docs-site/docs-site-config.mjs +4 -1
  52. package/dist/lib/esm/docs-site/index.d.mts +1 -0
  53. package/dist/lib/esm/docs-site/index.mjs +3 -1
  54. package/dist/lib/esm/docs-site/link-check.d.mts +91 -2
  55. package/dist/lib/esm/docs-site/link-check.mjs +83 -11
  56. package/dist/lib/esm/docs-site/repo-homepage.d.mts +50 -0
  57. package/dist/lib/esm/docs-site/repo-homepage.mjs +84 -0
  58. package/dist/lib/esm/formatters/auto.d.mts +51 -0
  59. package/dist/lib/esm/formatters/auto.mjs +40 -0
  60. package/dist/lib/esm/formatters/biome.d.mts +69 -0
  61. package/dist/lib/esm/formatters/biome.mjs +107 -0
  62. package/dist/lib/esm/formatters/index.d.mts +3 -0
  63. package/dist/lib/esm/formatters/index.mjs +8 -2
  64. package/dist/lib/esm/formatters/prettier.d.mts +56 -0
  65. package/dist/lib/esm/formatters/prettier.mjs +75 -0
  66. package/dist/lib/esm/index.d.mts +1 -0
  67. package/dist/lib/esm/index.mjs +3 -1
  68. package/dist/lib/esm/linters/auto.d.mts +49 -0
  69. package/dist/lib/esm/linters/auto.mjs +30 -0
  70. package/dist/lib/esm/linters/biome.d.mts +36 -0
  71. package/dist/lib/esm/linters/biome.mjs +29 -0
  72. package/dist/lib/esm/linters/eslint-config.mjs +1 -1
  73. package/dist/lib/esm/linters/eslint.d.mts +6 -0
  74. package/dist/lib/esm/linters/eslint.mjs +14 -14
  75. package/dist/lib/esm/linters/index.d.mts +2 -0
  76. package/dist/lib/esm/linters/index.mjs +5 -1
  77. package/dist/lib/esm/nano-staged-config.d.mts +6 -0
  78. package/dist/lib/esm/nano-staged-config.mjs +33 -16
  79. package/dist/lib/esm/repo-paths.d.mts +8 -0
  80. package/dist/lib/esm/repo-paths.mjs +3 -1
  81. package/dist/lib/esm/shared-config-files.d.mts +29 -0
  82. package/dist/lib/esm/shared-config-files.mjs +36 -0
  83. package/dist/lib/esm/test-runners/auto.d.mts +82 -0
  84. package/dist/lib/esm/test-runners/auto.mjs +64 -0
  85. package/dist/lib/esm/test-runners/index.d.mts +3 -0
  86. package/dist/lib/esm/test-runners/index.mjs +7 -1
  87. package/dist/lib/esm/test-runners/jest-config.d.mts +71 -0
  88. package/dist/lib/esm/test-runners/jest-config.mjs +58 -0
  89. package/dist/lib/esm/test-runners/jest.d.mts +77 -0
  90. package/dist/lib/esm/test-runners/jest.mjs +75 -0
  91. package/docs-site/repo-homepage/package.json +6 -0
  92. package/formatters/auto/package.json +6 -0
  93. package/formatters/biome/package.json +6 -0
  94. package/formatters/prettier/package.json +6 -0
  95. package/linters/auto/package.json +6 -0
  96. package/linters/biome/package.json +6 -0
  97. package/package.json +21 -1
  98. package/test-runners/auto/package.json +6 -0
  99. package/test-runners/jest/package.json +6 -0
  100. package/test-runners/jest-config/package.json +6 -0
@@ -0,0 +1,107 @@
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
+ (function () {
6
+ function ensureBrowserProcess() {
7
+ const browserProcess = {
8
+ browser: true,
9
+ cwd() {
10
+ return '/';
11
+ },
12
+ env: {},
13
+ platform: 'android'
14
+ };
15
+
16
+ const existingProcess = globalThis.process;
17
+
18
+ if (!existingProcess) {
19
+ globalThis.process = browserProcess;
20
+ return;
21
+ }
22
+
23
+ if (existingProcess.versions?.node) {
24
+ return;
25
+ }
26
+
27
+ const existingProcessRecord = existingProcess;
28
+
29
+ for (const [key, value] of Object.entries(browserProcess)) {
30
+ existingProcessRecord[key] ??= value;
31
+ }
32
+
33
+ existingProcessRecord['browser'] = true;
34
+ }
35
+
36
+ ensureBrowserProcess();
37
+ })();
38
+
39
+ import { getLibDebugger } from "@mnaoumov/typescript-lib/debug";
40
+ import {
41
+ basename,
42
+ relative,
43
+ toPosixPath
44
+ } from "@mnaoumov/typescript-lib/path";
45
+ import { assertNonNullable } from "@mnaoumov/typescript-lib/type-guards";
46
+ import { existsSync } from "node:fs";
47
+ import {
48
+ cp,
49
+ writeFile
50
+ } from "node:fs/promises";
51
+ import { resolveToolCommand } from "../package-manager.mjs";
52
+ import { RepoPaths } from "../repo-paths.mjs";
53
+ import {
54
+ execFromRoot,
55
+ getRootFolder,
56
+ resolvePathFromRootSafe
57
+ } from "../root.mjs";
58
+ import {
59
+ getSharedConfigFilePath,
60
+ SharedConfigFile
61
+ } from "../shared-config-files.mjs";
62
+ const BIOME_CONFIG_FILE_NAMES = [RepoPaths.BiomeJson, RepoPaths.BiomeJsonc];
63
+ const BIOME_EXPLICIT_PATHS_ARGUMENTS = ["--files-ignore-unknown=true", "--no-errors-on-unmatched"];
64
+ async function ensureBiomeConfig(options) {
65
+ if (hasBiomeConfig()) {
66
+ return;
67
+ }
68
+ const debug = getLibDebugger("Biome:ensureBiomeConfig");
69
+ const defaultConfigFilePath = options?.defaultConfigFilePath;
70
+ if (defaultConfigFilePath) {
71
+ debug("Biome configuration file not found. Copying the default config...");
72
+ await cp(defaultConfigFilePath, resolvePathFromRootSafe({ path: basename(defaultConfigFilePath) }));
73
+ return;
74
+ }
75
+ debug("Biome configuration file not found. Writing one that extends the shared config...");
76
+ const rootFolder = getRootFolder();
77
+ assertNonNullable(rootFolder, "Root folder not found");
78
+ const sharedConfigPath = toPosixPath(relative(rootFolder, getSharedConfigFilePath(SharedConfigFile.Biome)));
79
+ const extendsPath = JSON.stringify(sharedConfigPath.startsWith(".") ? sharedConfigPath : `./${sharedConfigPath}`);
80
+ await writeFile(resolvePathFromRootSafe({ path: RepoPaths.BiomeJson }), `{
81
+ "extends": [${extendsPath}]
82
+ }
83
+ `);
84
+ }
85
+ async function format(options) {
86
+ const { defaultConfigFilePath, paths, rewrite = true } = options ?? {};
87
+ await ensureBiomeConfig({ defaultConfigFilePath });
88
+ const hasPaths = paths !== void 0 && paths.length > 0;
89
+ await execFromRoot([
90
+ ...resolveToolCommand({ tool: "biome" }),
91
+ "format",
92
+ ...rewrite ? ["--write"] : [],
93
+ ...hasPaths ? BIOME_EXPLICIT_PATHS_ARGUMENTS : [],
94
+ { batchedArguments: hasPaths ? paths : [RepoPaths.CurrentFolder] }
95
+ ]);
96
+ }
97
+ function hasBiomeConfig() {
98
+ return BIOME_CONFIG_FILE_NAMES.some((fileName) => existsSync(resolvePathFromRootSafe({ path: fileName })));
99
+ }
100
+ export {
101
+ BIOME_CONFIG_FILE_NAMES,
102
+ BIOME_EXPLICIT_PATHS_ARGUMENTS,
103
+ ensureBiomeConfig,
104
+ format,
105
+ hasBiomeConfig
106
+ };
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9mb3JtYXR0ZXJzL2Jpb21lLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBGb3JtYXQgdGhlIHNvdXJjZSBjb2RlIHdpdGggQmlvbWUuXG4gKi9cblxuaW1wb3J0IHsgZ2V0TGliRGVidWdnZXIgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvZGVidWcnO1xuaW1wb3J0IHtcbiAgYmFzZW5hbWUsXG4gIHJlbGF0aXZlLFxuICB0b1Bvc2l4UGF0aFxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvcGF0aCc7XG5pbXBvcnQgeyBhc3NlcnROb25OdWxsYWJsZSB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90eXBlLWd1YXJkcyc7XG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQge1xuICBjcCxcbiAgd3JpdGVGaWxlXG59IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuXG5pbXBvcnQgeyByZXNvbHZlVG9vbENvbW1hbmQgfSBmcm9tICcuLi9wYWNrYWdlLW1hbmFnZXIudHMnO1xuaW1wb3J0IHsgUmVwb1BhdGhzIH0gZnJvbSAnLi4vcmVwby1wYXRocy50cyc7XG5pbXBvcnQge1xuICBleGVjRnJvbVJvb3QsXG4gIGdldFJvb3RGb2xkZXIsXG4gIHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlXG59IGZyb20gJy4uL3Jvb3QudHMnO1xuaW1wb3J0IHtcbiAgZ2V0U2hhcmVkQ29uZmlnRmlsZVBhdGgsXG4gIFNoYXJlZENvbmZpZ0ZpbGVcbn0gZnJvbSAnLi4vc2hhcmVkLWNvbmZpZy1maWxlcy50cyc7XG5cbi8qKlxuICogVGhlIGZpbGVzIEJpb21lIHJlYWRzIGl0cyBjb25maWd1cmF0aW9uIGZyb20uXG4gKi9cbmV4cG9ydCBjb25zdCBCSU9NRV9DT05GSUdfRklMRV9OQU1FUzogcmVhZG9ubHkgc3RyaW5nW10gPSBbUmVwb1BhdGhzLkJpb21lSnNvbiwgUmVwb1BhdGhzLkJpb21lSnNvbmNdO1xuXG4vKipcbiAqIFRoZSBmbGFncyB0aGF0IG1ha2UgQmlvbWUgc2tpcCwgcmF0aGVyIHRoYW4gZmFpbCBvbiwgYSBwYXRoIGl0IGlzIGhhbmRlZCBidXQgZG9lcyBub3QgaGFuZGxlOiBhIHByZS1jb21taXQgaG9va1xuICogaGFuZHMgZXZlcnkgdG9vbCBleHBsaWNpdCBmaWxlIGxpc3RzLCB3aGljaCBjYW4gbmFtZSBhIGZpbGUgQmlvbWUgZG9lcyBub3Qga25vdyBvciBhIGZpbGUgdGhlIHByb2plY3QgaWdub3Jlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IEJJT01FX0VYUExJQ0lUX1BBVEhTX0FSR1VNRU5UUzogcmVhZG9ubHkgc3RyaW5nW10gPSBbJy0tZmlsZXMtaWdub3JlLXVua25vd249dHJ1ZScsICctLW5vLWVycm9ycy1vbi11bm1hdGNoZWQnXTtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB0aGUge0BsaW5rIGVuc3VyZUJpb21lQ29uZmlnfSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbnN1cmVCaW9tZUNvbmZpZ09wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBjb3BpZWQgdG8gdGhlIHByb2plY3Qgcm9vdCB3aGVuIHRoZSBwcm9qZWN0IGhhcyBub25lLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdENvbmZpZ0ZpbGVQYXRoPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHRoZSB7QGxpbmsgZm9ybWF0fSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGb3JtYXRPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBjb25maWd1cmF0aW9uIGZpbGUgY29waWVkIHRvIHRoZSBwcm9qZWN0IHJvb3Qgd2hlbiB0aGUgcHJvamVjdCBoYXMgbm9uZS4gT21pdHRlZCwgYSBgYmlvbWUuanNvbmAgZXh0ZW5kaW5nXG4gICAqIHRoZSBzaGFyZWQgb25lIHRoaXMgcGFja2FnZSBzaGlwcyAoYGFzc2V0cy9iaW9tZS5qc29uYCkgaXMgd3JpdHRlbiBpbnN0ZWFkLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdENvbmZpZ0ZpbGVQYXRoPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBmaWxlIHBhdGhzIHRvIGZvcm1hdC4gSWYgb21pdHRlZCwgZm9ybWF0cyB0aGUgZW50aXJlIHByb2plY3QuXG4gICAqL1xuICByZWFkb25seSBwYXRocz86IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHJld3JpdGUgdGhlIHNvdXJjZSBjb2RlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgdHJ1ZWBcbiAgICovXG4gIHJlYWRvbmx5IHJld3JpdGU/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIE1ha2VzIHN1cmUgdGhlIHByb2plY3QgaGFzIGEgQmlvbWUgY29uZmlndXJhdGlvbiBvZiBpdHMgb3duLlxuICpcbiAqIEJpb21lIHJlc29sdmVzIGEgY29uZmlndXJhdGlvbidzIFZDUyByb290IGFuZCBnbG9icyBhZ2FpbnN0IHRoZSBjb25maWd1cmF0aW9uIGZpbGUncyBvd24gZm9sZGVyLCBzbyBhIHNoYXJlZFxuICogY29uZmlndXJhdGlvbiBjYW5ub3QgYmUgcGFzc2VkIHdpdGggYC0tY29uZmlnLXBhdGhgIGZyb20gaW5zaWRlIGBub2RlX21vZHVsZXNgOiBpdCBsb29rcyBmb3IgYC5naXRpZ25vcmVgIHRoZXJlLlxuICogVGhlIHByb2plY3QncyBvd24gYGJpb21lLmpzb25gIGV4dGVuZHMgaXQgaW5zdGVhZC4gV2hlbiB0aGVyZSBpcyBub25lLCB0aGUgZGVmYXVsdCBvbmUgaXMgY29waWVkIGluLCBvciBhXG4gKiBgYmlvbWUuanNvbmAgZXh0ZW5kaW5nIHRoZSBzaGFyZWQgY29uZmlndXJhdGlvbiBpcyB3cml0dGVuLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHtAbGluayBFbnN1cmVCaW9tZUNvbmZpZ09wdGlvbnN9LlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBwcm9qZWN0IGhhcyBhIEJpb21lIGNvbmZpZ3VyYXRpb24uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBlbnN1cmVCaW9tZUNvbmZpZyhvcHRpb25zPzogRW5zdXJlQmlvbWVDb25maWdPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmIChoYXNCaW9tZUNvbmZpZygpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgZGVidWcgPSBnZXRMaWJEZWJ1Z2dlcignQmlvbWU6ZW5zdXJlQmlvbWVDb25maWcnKTtcbiAgY29uc3QgZGVmYXVsdENvbmZpZ0ZpbGVQYXRoID0gb3B0aW9ucz8uZGVmYXVsdENvbmZpZ0ZpbGVQYXRoO1xuICBpZiAoZGVmYXVsdENvbmZpZ0ZpbGVQYXRoKSB7XG4gICAgZGVidWcoJ0Jpb21lIGNvbmZpZ3VyYXRpb24gZmlsZSBub3QgZm91bmQuIENvcHlpbmcgdGhlIGRlZmF1bHQgY29uZmlnLi4uJyk7XG4gICAgYXdhaXQgY3AoZGVmYXVsdENvbmZpZ0ZpbGVQYXRoLCByZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7IHBhdGg6IGJhc2VuYW1lKGRlZmF1bHRDb25maWdGaWxlUGF0aCkgfSkpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGRlYnVnKCdCaW9tZSBjb25maWd1cmF0aW9uIGZpbGUgbm90IGZvdW5kLiBXcml0aW5nIG9uZSB0aGF0IGV4dGVuZHMgdGhlIHNoYXJlZCBjb25maWcuLi4nKTtcbiAgY29uc3Qgcm9vdEZvbGRlciA9IGdldFJvb3RGb2xkZXIoKTtcbiAgYXNzZXJ0Tm9uTnVsbGFibGUocm9vdEZvbGRlciwgJ1Jvb3QgZm9sZGVyIG5vdCBmb3VuZCcpO1xuICBjb25zdCBzaGFyZWRDb25maWdQYXRoID0gdG9Qb3NpeFBhdGgocmVsYXRpdmUocm9vdEZvbGRlciwgZ2V0U2hhcmVkQ29uZmlnRmlsZVBhdGgoU2hhcmVkQ29uZmlnRmlsZS5CaW9tZSkpKTtcbiAgY29uc3QgZXh0ZW5kc1BhdGggPSBKU09OLnN0cmluZ2lmeShzaGFyZWRDb25maWdQYXRoLnN0YXJ0c1dpdGgoJy4nKSA/IHNoYXJlZENvbmZpZ1BhdGggOiBgLi8ke3NoYXJlZENvbmZpZ1BhdGh9YCk7XG4gIC8vIFdyaXR0ZW4gdGhlIHdheSBgYmlvbWUgZm9ybWF0YCBwcmludHMgaXQsIHNvIHRoZSBmaXJzdCBmb3JtYXQgbGVhdmVzIHRoZSBmaWxlIGFsb25lLlxuICBhd2FpdCB3cml0ZUZpbGUocmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoeyBwYXRoOiBSZXBvUGF0aHMuQmlvbWVKc29uIH0pLCBge1xcbiAgXCJleHRlbmRzXCI6IFske2V4dGVuZHNQYXRofV1cXG59XFxuYCk7XG59XG5cbi8qKlxuICogRm9ybWF0IHRoZSBzb3VyY2UgY29kZSB3aXRoIEJpb21lLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHtAbGluayBGb3JtYXRPcHRpb25zfS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgc291cmNlIGNvZGUgaGFzIGJlZW4gZm9ybWF0dGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZm9ybWF0KG9wdGlvbnM/OiBGb3JtYXRPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHsgZGVmYXVsdENvbmZpZ0ZpbGVQYXRoLCBwYXRocywgcmV3cml0ZSA9IHRydWUgfSA9IG9wdGlvbnMgPz8ge307XG4gIGF3YWl0IGVuc3VyZUJpb21lQ29uZmlnKHsgZGVmYXVsdENvbmZpZ0ZpbGVQYXRoIH0pO1xuICBjb25zdCBoYXNQYXRocyA9IHBhdGhzICE9PSB1bmRlZmluZWQgJiYgcGF0aHMubGVuZ3RoID4gMDtcblxuICBhd2FpdCBleGVjRnJvbVJvb3QoW1xuICAgIC4uLnJlc29sdmVUb29sQ29tbWFuZCh7IHRvb2w6ICdiaW9tZScgfSksXG4gICAgJ2Zvcm1hdCcsXG4gICAgLi4ucmV3cml0ZSA/IFsnLS13cml0ZSddIDogW10sXG4gICAgLi4uaGFzUGF0aHMgPyBCSU9NRV9FWFBMSUNJVF9QQVRIU19BUkdVTUVOVFMgOiBbXSxcbiAgICB7IGJhdGNoZWRBcmd1bWVudHM6IGhhc1BhdGhzID8gcGF0aHMgOiBbUmVwb1BhdGhzLkN1cnJlbnRGb2xkZXJdIH1cbiAgXSk7XG59XG5cbi8qKlxuICogU2F5cyB3aGV0aGVyIHRoZSBwcm9qZWN0IGNvbmZpZ3VyZXMgQmlvbWUgaXRzZWxmLlxuICpcbiAqIEByZXR1cm5zIFdoZXRoZXIgYSBgYmlvbWUuanNvbmAgb3IgYGJpb21lLmpzb25jYCBleGlzdHMgYXQgdGhlIHByb2plY3Qgcm9vdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc0Jpb21lQ29uZmlnKCk6IGJvb2xlYW4ge1xuICByZXR1cm4gQklPTUVfQ09ORklHX0ZJTEVfTkFNRVMuc29tZSgoZmlsZU5hbWUpID0+IGV4aXN0c1N5bmMocmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoeyBwYXRoOiBmaWxlTmFtZSB9KSkpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU1BLFNBQVMsc0JBQXNCO0FBQy9CO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMseUJBQXlCO0FBQ2xDLFNBQVMsa0JBQWtCO0FBQzNCO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBRVAsU0FBUywwQkFBMEI7QUFDbkMsU0FBUyxpQkFBaUI7QUFDMUI7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFLQSxNQUFNLDBCQUE2QyxDQUFDLFVBQVUsV0FBVyxVQUFVLFVBQVU7QUFNN0YsTUFBTSxpQ0FBb0QsQ0FBQywrQkFBK0IsMEJBQTBCO0FBOEMzSCxlQUFzQixrQkFBa0IsU0FBbUQ7QUFDekYsTUFBSSxlQUFlLEdBQUc7QUFDcEI7QUFBQSxFQUNGO0FBRUEsUUFBTSxRQUFRLGVBQWUseUJBQXlCO0FBQ3RELFFBQU0sd0JBQXdCLFNBQVM7QUFDdkMsTUFBSSx1QkFBdUI7QUFDekIsVUFBTSxtRUFBbUU7QUFDekUsVUFBTSxHQUFHLHVCQUF1Qix3QkFBd0IsRUFBRSxNQUFNLFNBQVMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO0FBQ2xHO0FBQUEsRUFDRjtBQUVBLFFBQU0sbUZBQW1GO0FBQ3pGLFFBQU0sYUFBYSxjQUFjO0FBQ2pDLG9CQUFrQixZQUFZLHVCQUF1QjtBQUNyRCxRQUFNLG1CQUFtQixZQUFZLFNBQVMsWUFBWSx3QkFBd0IsaUJBQWlCLEtBQUssQ0FBQyxDQUFDO0FBQzFHLFFBQU0sY0FBYyxLQUFLLFVBQVUsaUJBQWlCLFdBQVcsR0FBRyxJQUFJLG1CQUFtQixLQUFLLGdCQUFnQixFQUFFO0FBRWhILFFBQU0sVUFBVSx3QkFBd0IsRUFBRSxNQUFNLFVBQVUsVUFBVSxDQUFDLEdBQUc7QUFBQSxnQkFBb0IsV0FBVztBQUFBO0FBQUEsQ0FBUTtBQUNqSDtBQVFBLGVBQXNCLE9BQU8sU0FBd0M7QUFDbkUsUUFBTSxFQUFFLHVCQUF1QixPQUFPLFVBQVUsS0FBSyxJQUFJLFdBQVcsQ0FBQztBQUNyRSxRQUFNLGtCQUFrQixFQUFFLHNCQUFzQixDQUFDO0FBQ2pELFFBQU0sV0FBVyxVQUFVLFVBQWEsTUFBTSxTQUFTO0FBRXZELFFBQU0sYUFBYTtBQUFBLElBQ2pCLEdBQUcsbUJBQW1CLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFBQSxJQUN2QztBQUFBLElBQ0EsR0FBRyxVQUFVLENBQUMsU0FBUyxJQUFJLENBQUM7QUFBQSxJQUM1QixHQUFHLFdBQVcsaUNBQWlDLENBQUM7QUFBQSxJQUNoRCxFQUFFLGtCQUFrQixXQUFXLFFBQVEsQ0FBQyxVQUFVLGFBQWEsRUFBRTtBQUFBLEVBQ25FLENBQUM7QUFDSDtBQU9PLFNBQVMsaUJBQTBCO0FBQ3hDLFNBQU8sd0JBQXdCLEtBQUssQ0FBQyxhQUFhLFdBQVcsd0JBQXdCLEVBQUUsTUFBTSxTQUFTLENBQUMsQ0FBQyxDQUFDO0FBQzNHOyIsIm5hbWVzIjpbXX0=
@@ -1,2 +1,5 @@
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 'dprint' from './dprint.mjs';
5
+ export * as 'prettier' from './prettier.mjs';
@@ -3,8 +3,14 @@ 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 dprint from "./dprint.mjs";
9
+ import * as prettier from "./prettier.mjs";
7
10
  export {
8
- dprint
11
+ auto,
12
+ biome,
13
+ dprint,
14
+ prettier
9
15
  };
10
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2Zvcm1hdHRlcnMvaW5kZXgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qIFRISVMgSVMgQSBHRU5FUkFURUQvQlVORExFRCBGSUxFIEJZIEJVSUxEIFNDUklQVCAqL1xuXG5leHBvcnQgKiBhcyAnZHByaW50JyBmcm9tICcuL2RwcmludC50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7OztBQUVBLFlBQVksWUFBYzsiLAogICJuYW1lcyI6IFtdCn0K
16
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2Zvcm1hdHRlcnMvaW5kZXgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qIFRISVMgSVMgQSBHRU5FUkFURUQvQlVORExFRCBGSUxFIEJZIEJVSUxEIFNDUklQVCAqL1xuXG5leHBvcnQgKiBhcyAnYXV0bycgZnJvbSAnLi9hdXRvLnRzJztcbmV4cG9ydCAqIGFzICdiaW9tZScgZnJvbSAnLi9iaW9tZS50cyc7XG5leHBvcnQgKiBhcyAnZHByaW50JyBmcm9tICcuL2RwcmludC50cyc7XG5leHBvcnQgKiBhcyAncHJldHRpZXInIGZyb20gJy4vcHJldHRpZXIudHMnO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7QUFFQSxZQUFZLFVBQVk7QUFDeEIsWUFBWSxXQUFhO0FBQ3pCLFlBQVksWUFBYztBQUMxQixZQUFZLGNBQWdCOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -0,0 +1,56 @@
1
+ /// <reference path="../library-references.d.mts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * Format the source code with Prettier.
6
+ */
7
+ /**
8
+ * Every file Prettier reads its configuration from, besides the `prettier` key of `package.json`.
9
+ *
10
+ * @see {@link https://prettier.io/docs/configuration}
11
+ */
12
+ export declare const PRETTIER_CONFIG_FILE_NAMES: readonly string[];
13
+ /**
14
+ * Parameters for the {@link format} function.
15
+ */
16
+ export interface FormatOptions {
17
+ /**
18
+ * The Prettier configuration used when the project has none of its own. Omitted, the shared one this package ships
19
+ * (`assets/prettier.json`) is used.
20
+ */
21
+ readonly defaultConfigFilePath?: string | undefined;
22
+ /**
23
+ * Optional file paths to format. If omitted, formats the entire project.
24
+ */
25
+ readonly paths?: string[] | undefined;
26
+ /**
27
+ * Whether to rewrite the source code.
28
+ *
29
+ * @default `true`
30
+ */
31
+ readonly rewrite?: boolean | undefined;
32
+ }
33
+ /**
34
+ * Format the source code with Prettier.
35
+ *
36
+ * Prettier finds the project's own configuration itself. Only a project with none gets `--config`, pointing at
37
+ * {@link FormatOptions.defaultConfigFilePath} or at the shared configuration. `.gitignore` and `.prettierignore` are
38
+ * honored, as Prettier always does.
39
+ *
40
+ * @param options - The {@link FormatOptions}.
41
+ * @returns A {@link Promise} that resolves when the source code has been formatted.
42
+ */
43
+ export declare function format(options?: FormatOptions): Promise<void>;
44
+ /**
45
+ * Reads the shared Prettier configuration this package ships, for a project's own `prettier.config.mjs` to export or
46
+ * build on.
47
+ *
48
+ * @returns The shared configuration.
49
+ */
50
+ export declare function getPrettierConfig(): Readonly<Record<string, unknown>>;
51
+ /**
52
+ * Says whether the project configures Prettier itself.
53
+ *
54
+ * @returns Whether a Prettier configuration file, or a `prettier` key in `package.json`, exists at the project root.
55
+ */
56
+ export declare function hasPrettierConfig(): Promise<boolean>;
@@ -0,0 +1,75 @@
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 {
7
+ existsSync,
8
+ readFileSync
9
+ } from "node:fs";
10
+ import { readPackageJson } from "../npm.mjs";
11
+ import { resolveToolCommand } from "../package-manager.mjs";
12
+ import { RepoPaths } from "../repo-paths.mjs";
13
+ import {
14
+ execFromRoot,
15
+ resolvePathFromRootSafe
16
+ } from "../root.mjs";
17
+ import {
18
+ getSharedConfigFilePath,
19
+ SharedConfigFile
20
+ } from "../shared-config-files.mjs";
21
+ const PRETTIER_CONFIG_FILE_NAMES = [
22
+ ".prettierrc",
23
+ ".prettierrc.cjs",
24
+ ".prettierrc.cts",
25
+ ".prettierrc.js",
26
+ ".prettierrc.json",
27
+ ".prettierrc.json5",
28
+ ".prettierrc.mjs",
29
+ ".prettierrc.mts",
30
+ ".prettierrc.toml",
31
+ ".prettierrc.ts",
32
+ ".prettierrc.yaml",
33
+ ".prettierrc.yml",
34
+ "prettier.config.cjs",
35
+ "prettier.config.cts",
36
+ "prettier.config.js",
37
+ "prettier.config.mjs",
38
+ "prettier.config.mts",
39
+ "prettier.config.ts"
40
+ ];
41
+ const EXCLUDED_PATTERNS = ["!**/*.md", "!**/*-lock.json"];
42
+ async function format(options) {
43
+ const { defaultConfigFilePath, paths, rewrite = true } = options ?? {};
44
+ const configArguments = await hasPrettierConfig() ? [] : ["--config", defaultConfigFilePath ?? getSharedConfigFilePath(SharedConfigFile.Prettier)];
45
+ const hasPaths = paths !== void 0 && paths.length > 0;
46
+ await execFromRoot([
47
+ ...resolveToolCommand({ tool: "prettier" }),
48
+ rewrite ? "--write" : "--check",
49
+ "--ignore-unknown",
50
+ ...hasPaths ? ["--no-error-on-unmatched-pattern"] : [],
51
+ ...configArguments,
52
+ ...EXCLUDED_PATTERNS,
53
+ { batchedArguments: hasPaths ? paths : [RepoPaths.CurrentFolder] }
54
+ ]);
55
+ }
56
+ function getPrettierConfig() {
57
+ return JSON.parse(readFileSync(getSharedConfigFilePath(SharedConfigFile.Prettier), "utf-8"));
58
+ }
59
+ async function hasPrettierConfig() {
60
+ if (PRETTIER_CONFIG_FILE_NAMES.some((fileName) => existsSync(resolvePathFromRootSafe({ path: fileName })))) {
61
+ return true;
62
+ }
63
+ if (!existsSync(resolvePathFromRootSafe({ path: RepoPaths.PackageJson }))) {
64
+ return false;
65
+ }
66
+ const packageJson = await readPackageJson();
67
+ return Object.hasOwn(packageJson, "prettier");
68
+ }
69
+ export {
70
+ PRETTIER_CONFIG_FILE_NAMES,
71
+ format,
72
+ getPrettierConfig,
73
+ hasPrettierConfig
74
+ };
75
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2Zvcm1hdHRlcnMvcHJldHRpZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBGb3JtYXQgdGhlIHNvdXJjZSBjb2RlIHdpdGggUHJldHRpZXIuXG4gKi9cblxuaW1wb3J0IHtcbiAgZXhpc3RzU3luYyxcbiAgcmVhZEZpbGVTeW5jXG59IGZyb20gJ25vZGU6ZnMnO1xuXG5pbXBvcnQgeyByZWFkUGFja2FnZUpzb24gfSBmcm9tICcuLi9ucG0udHMnO1xuaW1wb3J0IHsgcmVzb2x2ZVRvb2xDb21tYW5kIH0gZnJvbSAnLi4vcGFja2FnZS1tYW5hZ2VyLnRzJztcbmltcG9ydCB7IFJlcG9QYXRocyB9IGZyb20gJy4uL3JlcG8tcGF0aHMudHMnO1xuaW1wb3J0IHtcbiAgZXhlY0Zyb21Sb290LFxuICByZXNvbHZlUGF0aEZyb21Sb290U2FmZVxufSBmcm9tICcuLi9yb290LnRzJztcbmltcG9ydCB7XG4gIGdldFNoYXJlZENvbmZpZ0ZpbGVQYXRoLFxuICBTaGFyZWRDb25maWdGaWxlXG59IGZyb20gJy4uL3NoYXJlZC1jb25maWctZmlsZXMudHMnO1xuXG4vKipcbiAqIEV2ZXJ5IGZpbGUgUHJldHRpZXIgcmVhZHMgaXRzIGNvbmZpZ3VyYXRpb24gZnJvbSwgYmVzaWRlcyB0aGUgYHByZXR0aWVyYCBrZXkgb2YgYHBhY2thZ2UuanNvbmAuXG4gKlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9wcmV0dGllci5pby9kb2NzL2NvbmZpZ3VyYXRpb259XG4gKi9cbmV4cG9ydCBjb25zdCBQUkVUVElFUl9DT05GSUdfRklMRV9OQU1FUzogcmVhZG9ubHkgc3RyaW5nW10gPSBbXG4gICcucHJldHRpZXJyYycsXG4gICcucHJldHRpZXJyYy5janMnLFxuICAnLnByZXR0aWVycmMuY3RzJyxcbiAgJy5wcmV0dGllcnJjLmpzJyxcbiAgJy5wcmV0dGllcnJjLmpzb24nLFxuICAnLnByZXR0aWVycmMuanNvbjUnLFxuICAnLnByZXR0aWVycmMubWpzJyxcbiAgJy5wcmV0dGllcnJjLm10cycsXG4gICcucHJldHRpZXJyYy50b21sJyxcbiAgJy5wcmV0dGllcnJjLnRzJyxcbiAgJy5wcmV0dGllcnJjLnlhbWwnLFxuICAnLnByZXR0aWVycmMueW1sJyxcbiAgJ3ByZXR0aWVyLmNvbmZpZy5janMnLFxuICAncHJldHRpZXIuY29uZmlnLmN0cycsXG4gICdwcmV0dGllci5jb25maWcuanMnLFxuICAncHJldHRpZXIuY29uZmlnLm1qcycsXG4gICdwcmV0dGllci5jb25maWcubXRzJyxcbiAgJ3ByZXR0aWVyLmNvbmZpZy50cydcbl07XG5cbi8qKlxuICogVGhlIGZpbGVzIFByZXR0aWVyIGxlYXZlcyBhbG9uZSwgYXMgdGhlIHNoYXJlZCBgZHByaW50Lmpzb25gIGRvZXM6IE1hcmtkb3duIGJlbG9uZ3MgdG8gbWFya2Rvd25saW50LCBhbmQgYSBsb2NrZmlsZVxuICogYmVsb25ncyB0byBpdHMgcGFja2FnZSBtYW5hZ2VyLiBUaGV5IGFyZSBwYXNzZWQgYXMgbmVnYXRlZCBwYXR0ZXJucywgd2hpY2ggUHJldHRpZXIgYXBwbGllcyB0byB0aGUgcGF0aHMgaXQgaXMgZ2l2ZW5cbiAqIGFzIHdlbGwgYXMgdG8gdGhlIG9uZXMgaXQgZmluZHMuXG4gKi9cbmNvbnN0IEVYQ0xVREVEX1BBVFRFUk5TOiByZWFkb25seSBzdHJpbmdbXSA9IFsnISoqLyoubWQnLCAnISoqLyotbG9jay5qc29uJ107XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3IgdGhlIHtAbGluayBmb3JtYXR9IGZ1bmN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1hdE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIFByZXR0aWVyIGNvbmZpZ3VyYXRpb24gdXNlZCB3aGVuIHRoZSBwcm9qZWN0IGhhcyBub25lIG9mIGl0cyBvd24uIE9taXR0ZWQsIHRoZSBzaGFyZWQgb25lIHRoaXMgcGFja2FnZSBzaGlwc1xuICAgKiAoYGFzc2V0cy9wcmV0dGllci5qc29uYCkgaXMgdXNlZC5cbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRDb25maWdGaWxlUGF0aD86IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogT3B0aW9uYWwgZmlsZSBwYXRocyB0byBmb3JtYXQuIElmIG9taXR0ZWQsIGZvcm1hdHMgdGhlIGVudGlyZSBwcm9qZWN0LlxuICAgKi9cbiAgcmVhZG9ubHkgcGF0aHM/OiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogV2hldGhlciB0byByZXdyaXRlIHRoZSBzb3VyY2UgY29kZS5cbiAgICpcbiAgICogQGRlZmF1bHQgYHRydWVgXG4gICAqL1xuICByZWFkb25seSByZXdyaXRlPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBGb3JtYXQgdGhlIHNvdXJjZSBjb2RlIHdpdGggUHJldHRpZXIuXG4gKlxuICogUHJldHRpZXIgZmluZHMgdGhlIHByb2plY3QncyBvd24gY29uZmlndXJhdGlvbiBpdHNlbGYuIE9ubHkgYSBwcm9qZWN0IHdpdGggbm9uZSBnZXRzIGAtLWNvbmZpZ2AsIHBvaW50aW5nIGF0XG4gKiB7QGxpbmsgRm9ybWF0T3B0aW9ucy5kZWZhdWx0Q29uZmlnRmlsZVBhdGh9IG9yIGF0IHRoZSBzaGFyZWQgY29uZmlndXJhdGlvbi4gYC5naXRpZ25vcmVgIGFuZCBgLnByZXR0aWVyaWdub3JlYCBhcmVcbiAqIGhvbm9yZWQsIGFzIFByZXR0aWVyIGFsd2F5cyBkb2VzLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHtAbGluayBGb3JtYXRPcHRpb25zfS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgc291cmNlIGNvZGUgaGFzIGJlZW4gZm9ybWF0dGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZm9ybWF0KG9wdGlvbnM/OiBGb3JtYXRPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHsgZGVmYXVsdENvbmZpZ0ZpbGVQYXRoLCBwYXRocywgcmV3cml0ZSA9IHRydWUgfSA9IG9wdGlvbnMgPz8ge307XG4gIGNvbnN0IGNvbmZpZ0FyZ3VtZW50cyA9IGF3YWl0IGhhc1ByZXR0aWVyQ29uZmlnKClcbiAgICA/IFtdXG4gICAgOiBbJy0tY29uZmlnJywgZGVmYXVsdENvbmZpZ0ZpbGVQYXRoID8/IGdldFNoYXJlZENvbmZpZ0ZpbGVQYXRoKFNoYXJlZENvbmZpZ0ZpbGUuUHJldHRpZXIpXTtcbiAgY29uc3QgaGFzUGF0aHMgPSBwYXRocyAhPT0gdW5kZWZpbmVkICYmIHBhdGhzLmxlbmd0aCA+IDA7XG5cbiAgYXdhaXQgZXhlY0Zyb21Sb290KFtcbiAgICAuLi5yZXNvbHZlVG9vbENvbW1hbmQoeyB0b29sOiAncHJldHRpZXInIH0pLFxuICAgIHJld3JpdGUgPyAnLS13cml0ZScgOiAnLS1jaGVjaycsXG4gICAgJy0taWdub3JlLXVua25vd24nLFxuICAgIC4uLmhhc1BhdGhzID8gWyctLW5vLWVycm9yLW9uLXVubWF0Y2hlZC1wYXR0ZXJuJ10gOiBbXSxcbiAgICAuLi5jb25maWdBcmd1bWVudHMsXG4gICAgLi4uRVhDTFVERURfUEFUVEVSTlMsXG4gICAgeyBiYXRjaGVkQXJndW1lbnRzOiBoYXNQYXRocyA/IHBhdGhzIDogW1JlcG9QYXRocy5DdXJyZW50Rm9sZGVyXSB9XG4gIF0pO1xufVxuXG4vKipcbiAqIFJlYWRzIHRoZSBzaGFyZWQgUHJldHRpZXIgY29uZmlndXJhdGlvbiB0aGlzIHBhY2thZ2Ugc2hpcHMsIGZvciBhIHByb2plY3QncyBvd24gYHByZXR0aWVyLmNvbmZpZy5tanNgIHRvIGV4cG9ydCBvclxuICogYnVpbGQgb24uXG4gKlxuICogQHJldHVybnMgVGhlIHNoYXJlZCBjb25maWd1cmF0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHJldHRpZXJDb25maWcoKTogUmVhZG9ubHk8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHtcbiAgcmV0dXJuIEpTT04ucGFyc2UocmVhZEZpbGVTeW5jKGdldFNoYXJlZENvbmZpZ0ZpbGVQYXRoKFNoYXJlZENvbmZpZ0ZpbGUuUHJldHRpZXIpLCAndXRmLTgnKSkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbi8qKlxuICogU2F5cyB3aGV0aGVyIHRoZSBwcm9qZWN0IGNvbmZpZ3VyZXMgUHJldHRpZXIgaXRzZWxmLlxuICpcbiAqIEByZXR1cm5zIFdoZXRoZXIgYSBQcmV0dGllciBjb25maWd1cmF0aW9uIGZpbGUsIG9yIGEgYHByZXR0aWVyYCBrZXkgaW4gYHBhY2thZ2UuanNvbmAsIGV4aXN0cyBhdCB0aGUgcHJvamVjdCByb290LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaGFzUHJldHRpZXJDb25maWcoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGlmIChQUkVUVElFUl9DT05GSUdfRklMRV9OQU1FUy5zb21lKChmaWxlTmFtZSkgPT4gZXhpc3RzU3luYyhyZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7IHBhdGg6IGZpbGVOYW1lIH0pKSkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmICghZXhpc3RzU3luYyhyZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7IHBhdGg6IFJlcG9QYXRocy5QYWNrYWdlSnNvbiB9KSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBwYWNrYWdlSnNvbiA9IGF3YWl0IHJlYWRQYWNrYWdlSnNvbigpO1xuICByZXR1cm4gT2JqZWN0Lmhhc093bihwYWNrYWdlSnNvbiwgJ3ByZXR0aWVyJyk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7OztBQU1BO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBRVAsU0FBUyx1QkFBdUI7QUFDaEMsU0FBUywwQkFBMEI7QUFDbkMsU0FBUyxpQkFBaUI7QUFDMUI7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQU9BLE1BQU0sNkJBQWdEO0FBQUEsRUFDM0Q7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUNGO0FBT0EsTUFBTSxvQkFBdUMsQ0FBQyxZQUFZLGlCQUFpQjtBQW1DM0UsZUFBc0IsT0FBTyxTQUF3QztBQUNuRSxRQUFNLEVBQUUsdUJBQXVCLE9BQU8sVUFBVSxLQUFLLElBQUksV0FBVyxDQUFDO0FBQ3JFLFFBQU0sa0JBQWtCLE1BQU0sa0JBQWtCLElBQzVDLENBQUMsSUFDRCxDQUFDLFlBQVkseUJBQXlCLHdCQUF3QixpQkFBaUIsUUFBUSxDQUFDO0FBQzVGLFFBQU0sV0FBVyxVQUFVLFVBQWEsTUFBTSxTQUFTO0FBRXZELFFBQU0sYUFBYTtBQUFBLElBQ2pCLEdBQUcsbUJBQW1CLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFBQSxJQUMxQyxVQUFVLFlBQVk7QUFBQSxJQUN0QjtBQUFBLElBQ0EsR0FBRyxXQUFXLENBQUMsaUNBQWlDLElBQUksQ0FBQztBQUFBLElBQ3JELEdBQUc7QUFBQSxJQUNILEdBQUc7QUFBQSxJQUNILEVBQUUsa0JBQWtCLFdBQVcsUUFBUSxDQUFDLFVBQVUsYUFBYSxFQUFFO0FBQUEsRUFDbkUsQ0FBQztBQUNIO0FBUU8sU0FBUyxvQkFBdUQ7QUFDckUsU0FBTyxLQUFLLE1BQU0sYUFBYSx3QkFBd0IsaUJBQWlCLFFBQVEsR0FBRyxPQUFPLENBQUM7QUFDN0Y7QUFPQSxlQUFzQixvQkFBc0M7QUFDMUQsTUFBSSwyQkFBMkIsS0FBSyxDQUFDLGFBQWEsV0FBVyx3QkFBd0IsRUFBRSxNQUFNLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRztBQUMxRyxXQUFPO0FBQUEsRUFDVDtBQUVBLE1BQUksQ0FBQyxXQUFXLHdCQUF3QixFQUFFLE1BQU0sVUFBVSxZQUFZLENBQUMsQ0FBQyxHQUFHO0FBQ3pFLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxjQUFjLE1BQU0sZ0JBQWdCO0FBQzFDLFNBQU8sT0FBTyxPQUFPLGFBQWEsVUFBVTtBQUM5QzsiLAogICJuYW1lcyI6IFtdCn0K
@@ -31,6 +31,7 @@ export * as 'package-manager' from './package-manager.mjs';
31
31
  export * as 'released-issues' from './released-issues.mjs';
32
32
  export * as 'repo-paths' from './repo-paths.mjs';
33
33
  export * as 'root' from './root.mjs';
34
+ export * as 'shared-config-files' from './shared-config-files.mjs';
34
35
  export * as 'test-runners' from './test-runners/index.mjs';
35
36
  export * as 'validate-declarations' from './validate-declarations.mjs';
36
37
  export * as 'version' from './version.mjs';
@@ -31,6 +31,7 @@ import * as package_manager from "./package-manager.mjs";
31
31
  import * as released_issues from "./released-issues.mjs";
32
32
  import * as repo_paths from "./repo-paths.mjs";
33
33
  import * as root from "./root.mjs";
34
+ import * as shared_config_files from "./shared-config-files.mjs";
34
35
  import * as test_runners from "./test-runners/index.mjs";
35
36
  import * as validate_declarations from "./validate-declarations.mjs";
36
37
  import * as version from "./version.mjs";
@@ -63,8 +64,9 @@ export {
63
64
  released_issues as "released-issues",
64
65
  repo_paths as "repo-paths",
65
66
  root,
67
+ shared_config_files as "shared-config-files",
66
68
  test_runners as "test-runners",
67
69
  validate_declarations as "validate-declarations",
68
70
  version
69
71
  };
70
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgJ2J1aWxkJyBmcm9tICcuL2J1aWxkLnRzJztcbmV4cG9ydCAqIGFzICdidW5kbGVycycgZnJvbSAnLi9idW5kbGVycy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnY2hlY2stcHJvamVjdC10eXBlcycgZnJvbSAnLi9jaGVjay1wcm9qZWN0LXR5cGVzLnRzJztcbmV4cG9ydCAqIGFzICdjbGktdXRpbHMnIGZyb20gJy4vY2xpLXV0aWxzLnRzJztcbmV4cG9ydCAqIGFzICdjb2RlLWdlbmVyYXRvcicgZnJvbSAnLi9jb2RlLWdlbmVyYXRvci50cyc7XG5leHBvcnQgKiBhcyAnY29tbWl0bGludC1jb25maWcnIGZyb20gJy4vY29tbWl0bGludC1jb25maWcudHMnO1xuZXhwb3J0ICogYXMgJ2NvbW1pdGxpbnQtZm9yYmlkZGVuLXBhdHRlcm5zJyBmcm9tICcuL2NvbW1pdGxpbnQtZm9yYmlkZGVuLXBhdHRlcm5zLnRzJztcbmV4cG9ydCAqIGFzICdjb21taXRsaW50LXNwZWxsY2hlY2staGVhZGVyJyBmcm9tICcuL2NvbW1pdGxpbnQtc3BlbGxjaGVjay1oZWFkZXIudHMnO1xuZXhwb3J0ICogYXMgJ2RvY3Mtc2l0ZScgZnJvbSAnLi9kb2NzLXNpdGUvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2Vudi10b2dnbGUnIGZyb20gJy4vZW52LXRvZ2dsZS50cyc7XG5leHBvcnQgKiBhcyAnZXhlYycgZnJvbSAnLi9leGVjLnRzJztcbmV4cG9ydCAqIGFzICdmb3JiaWRkZW4tcGF0dGVybnMnIGZyb20gJy4vZm9yYmlkZGVuLXBhdHRlcm5zLnRzJztcbmV4cG9ydCAqIGFzICdmb3JtYXR0ZXJzJyBmcm9tICcuL2Zvcm1hdHRlcnMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2ZzJyBmcm9tICcuL2ZzLnRzJztcbmV4cG9ydCAqIGFzICdnYXRlJyBmcm9tICcuL2dhdGUudHMnO1xuZXhwb3J0ICogYXMgJ2dpdCcgZnJvbSAnLi9naXQudHMnO1xuZXhwb3J0ICogYXMgJ2pzb24nIGZyb20gJy4vanNvbi50cyc7XG5leHBvcnQgKiBhcyAnbGlicmFyeS1idWlsZCcgZnJvbSAnLi9saWJyYXJ5LWJ1aWxkLnRzJztcbmV4cG9ydCAqIGFzICdsaW50ZXJzJyBmcm9tICcuL2xpbnRlcnMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ25hbm8tc3RhZ2VkLWNvbmZpZycgZnJvbSAnLi9uYW5vLXN0YWdlZC1jb25maWcudHMnO1xuZXhwb3J0ICogYXMgJ25wbS1wdWJsaXNoJyBmcm9tICcuL25wbS1wdWJsaXNoLnRzJztcbmV4cG9ydCAqIGFzICducG0tcnVuJyBmcm9tICcuL25wbS1ydW4udHMnO1xuZXhwb3J0ICogYXMgJ25wbScgZnJvbSAnLi9ucG0udHMnO1xuZXhwb3J0ICogYXMgJ3BhY2thZ2UtbG9jay1pbnRlZ3JpdHknIGZyb20gJy4vcGFja2FnZS1sb2NrLWludGVncml0eS50cyc7XG5leHBvcnQgKiBhcyAncGFja2FnZS1tYW5hZ2VyJyBmcm9tICcuL3BhY2thZ2UtbWFuYWdlci50cyc7XG5leHBvcnQgKiBhcyAncmVsZWFzZWQtaXNzdWVzJyBmcm9tICcuL3JlbGVhc2VkLWlzc3Vlcy50cyc7XG5leHBvcnQgKiBhcyAncmVwby1wYXRocycgZnJvbSAnLi9yZXBvLXBhdGhzLnRzJztcbmV4cG9ydCAqIGFzICdyb290JyBmcm9tICcuL3Jvb3QudHMnO1xuZXhwb3J0ICogYXMgJ3Rlc3QtcnVubmVycycgZnJvbSAnLi90ZXN0LXJ1bm5lcnMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ3ZhbGlkYXRlLWRlY2xhcmF0aW9ucycgZnJvbSAnLi92YWxpZGF0ZS1kZWNsYXJhdGlvbnMudHMnO1xuZXhwb3J0ICogYXMgJ3ZlcnNpb24nIGZyb20gJy4vdmVyc2lvbi50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7OztBQUVBLFlBQVksV0FBYTtBQUN6QixZQUFZLGNBQWdCO0FBQzVCLFlBQVlBLHlCQUEyQjtBQUN2QyxZQUFZQyxlQUFpQjtBQUM3QixZQUFZQyxvQkFBc0I7QUFDbEMsWUFBWUMsdUJBQXlCO0FBQ3JDLFlBQVlDLG1DQUFxQztBQUNqRCxZQUFZQyxrQ0FBb0M7QUFDaEQsWUFBWUMsZUFBaUI7QUFDN0IsWUFBWUMsZ0JBQWtCO0FBQzlCLFlBQVksVUFBWTtBQUN4QixZQUFZQyx3QkFBMEI7QUFDdEMsWUFBWSxnQkFBa0I7QUFDOUIsWUFBWSxRQUFVO0FBQ3RCLFlBQVksVUFBWTtBQUN4QixZQUFZLFNBQVc7QUFDdkIsWUFBWSxVQUFZO0FBQ3hCLFlBQVlDLG1CQUFxQjtBQUNqQyxZQUFZLGFBQWU7QUFDM0IsWUFBWUMsd0JBQTBCO0FBQ3RDLFlBQVlDLGlCQUFtQjtBQUMvQixZQUFZQyxhQUFlO0FBQzNCLFlBQVksU0FBVztBQUN2QixZQUFZQyw0QkFBOEI7QUFDMUMsWUFBWUMscUJBQXVCO0FBQ25DLFlBQVlDLHFCQUF1QjtBQUNuQyxZQUFZQyxnQkFBa0I7QUFDOUIsWUFBWSxVQUFZO0FBQ3hCLFlBQVlDLGtCQUFvQjtBQUNoQyxZQUFZQywyQkFBNkI7QUFDekMsWUFBWSxhQUFlOyIsCiAgIm5hbWVzIjogWyJjaGVjay1wcm9qZWN0LXR5cGVzIiwgImNsaS11dGlscyIsICJjb2RlLWdlbmVyYXRvciIsICJjb21taXRsaW50LWNvbmZpZyIsICJjb21taXRsaW50LWZvcmJpZGRlbi1wYXR0ZXJucyIsICJjb21taXRsaW50LXNwZWxsY2hlY2staGVhZGVyIiwgImRvY3Mtc2l0ZSIsICJlbnYtdG9nZ2xlIiwgImZvcmJpZGRlbi1wYXR0ZXJucyIsICJsaWJyYXJ5LWJ1aWxkIiwgIm5hbm8tc3RhZ2VkLWNvbmZpZyIsICJucG0tcHVibGlzaCIsICJucG0tcnVuIiwgInBhY2thZ2UtbG9jay1pbnRlZ3JpdHkiLCAicGFja2FnZS1tYW5hZ2VyIiwgInJlbGVhc2VkLWlzc3VlcyIsICJyZXBvLXBhdGhzIiwgInRlc3QtcnVubmVycyIsICJ2YWxpZGF0ZS1kZWNsYXJhdGlvbnMiXQp9Cg==
72
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgJ2J1aWxkJyBmcm9tICcuL2J1aWxkLnRzJztcbmV4cG9ydCAqIGFzICdidW5kbGVycycgZnJvbSAnLi9idW5kbGVycy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnY2hlY2stcHJvamVjdC10eXBlcycgZnJvbSAnLi9jaGVjay1wcm9qZWN0LXR5cGVzLnRzJztcbmV4cG9ydCAqIGFzICdjbGktdXRpbHMnIGZyb20gJy4vY2xpLXV0aWxzLnRzJztcbmV4cG9ydCAqIGFzICdjb2RlLWdlbmVyYXRvcicgZnJvbSAnLi9jb2RlLWdlbmVyYXRvci50cyc7XG5leHBvcnQgKiBhcyAnY29tbWl0bGludC1jb25maWcnIGZyb20gJy4vY29tbWl0bGludC1jb25maWcudHMnO1xuZXhwb3J0ICogYXMgJ2NvbW1pdGxpbnQtZm9yYmlkZGVuLXBhdHRlcm5zJyBmcm9tICcuL2NvbW1pdGxpbnQtZm9yYmlkZGVuLXBhdHRlcm5zLnRzJztcbmV4cG9ydCAqIGFzICdjb21taXRsaW50LXNwZWxsY2hlY2staGVhZGVyJyBmcm9tICcuL2NvbW1pdGxpbnQtc3BlbGxjaGVjay1oZWFkZXIudHMnO1xuZXhwb3J0ICogYXMgJ2RvY3Mtc2l0ZScgZnJvbSAnLi9kb2NzLXNpdGUvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2Vudi10b2dnbGUnIGZyb20gJy4vZW52LXRvZ2dsZS50cyc7XG5leHBvcnQgKiBhcyAnZXhlYycgZnJvbSAnLi9leGVjLnRzJztcbmV4cG9ydCAqIGFzICdmb3JiaWRkZW4tcGF0dGVybnMnIGZyb20gJy4vZm9yYmlkZGVuLXBhdHRlcm5zLnRzJztcbmV4cG9ydCAqIGFzICdmb3JtYXR0ZXJzJyBmcm9tICcuL2Zvcm1hdHRlcnMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2ZzJyBmcm9tICcuL2ZzLnRzJztcbmV4cG9ydCAqIGFzICdnYXRlJyBmcm9tICcuL2dhdGUudHMnO1xuZXhwb3J0ICogYXMgJ2dpdCcgZnJvbSAnLi9naXQudHMnO1xuZXhwb3J0ICogYXMgJ2pzb24nIGZyb20gJy4vanNvbi50cyc7XG5leHBvcnQgKiBhcyAnbGlicmFyeS1idWlsZCcgZnJvbSAnLi9saWJyYXJ5LWJ1aWxkLnRzJztcbmV4cG9ydCAqIGFzICdsaW50ZXJzJyBmcm9tICcuL2xpbnRlcnMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ25hbm8tc3RhZ2VkLWNvbmZpZycgZnJvbSAnLi9uYW5vLXN0YWdlZC1jb25maWcudHMnO1xuZXhwb3J0ICogYXMgJ25wbS1wdWJsaXNoJyBmcm9tICcuL25wbS1wdWJsaXNoLnRzJztcbmV4cG9ydCAqIGFzICducG0tcnVuJyBmcm9tICcuL25wbS1ydW4udHMnO1xuZXhwb3J0ICogYXMgJ25wbScgZnJvbSAnLi9ucG0udHMnO1xuZXhwb3J0ICogYXMgJ3BhY2thZ2UtbG9jay1pbnRlZ3JpdHknIGZyb20gJy4vcGFja2FnZS1sb2NrLWludGVncml0eS50cyc7XG5leHBvcnQgKiBhcyAncGFja2FnZS1tYW5hZ2VyJyBmcm9tICcuL3BhY2thZ2UtbWFuYWdlci50cyc7XG5leHBvcnQgKiBhcyAncmVsZWFzZWQtaXNzdWVzJyBmcm9tICcuL3JlbGVhc2VkLWlzc3Vlcy50cyc7XG5leHBvcnQgKiBhcyAncmVwby1wYXRocycgZnJvbSAnLi9yZXBvLXBhdGhzLnRzJztcbmV4cG9ydCAqIGFzICdyb290JyBmcm9tICcuL3Jvb3QudHMnO1xuZXhwb3J0ICogYXMgJ3NoYXJlZC1jb25maWctZmlsZXMnIGZyb20gJy4vc2hhcmVkLWNvbmZpZy1maWxlcy50cyc7XG5leHBvcnQgKiBhcyAndGVzdC1ydW5uZXJzJyBmcm9tICcuL3Rlc3QtcnVubmVycy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAndmFsaWRhdGUtZGVjbGFyYXRpb25zJyBmcm9tICcuL3ZhbGlkYXRlLWRlY2xhcmF0aW9ucy50cyc7XG5leHBvcnQgKiBhcyAndmVyc2lvbicgZnJvbSAnLi92ZXJzaW9uLnRzJztcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7O0FBRUEsWUFBWSxXQUFhO0FBQ3pCLFlBQVksY0FBZ0I7QUFDNUIsWUFBWUEseUJBQTJCO0FBQ3ZDLFlBQVlDLGVBQWlCO0FBQzdCLFlBQVlDLG9CQUFzQjtBQUNsQyxZQUFZQyx1QkFBeUI7QUFDckMsWUFBWUMsbUNBQXFDO0FBQ2pELFlBQVlDLGtDQUFvQztBQUNoRCxZQUFZQyxlQUFpQjtBQUM3QixZQUFZQyxnQkFBa0I7QUFDOUIsWUFBWSxVQUFZO0FBQ3hCLFlBQVlDLHdCQUEwQjtBQUN0QyxZQUFZLGdCQUFrQjtBQUM5QixZQUFZLFFBQVU7QUFDdEIsWUFBWSxVQUFZO0FBQ3hCLFlBQVksU0FBVztBQUN2QixZQUFZLFVBQVk7QUFDeEIsWUFBWUMsbUJBQXFCO0FBQ2pDLFlBQVksYUFBZTtBQUMzQixZQUFZQyx3QkFBMEI7QUFDdEMsWUFBWUMsaUJBQW1CO0FBQy9CLFlBQVlDLGFBQWU7QUFDM0IsWUFBWSxTQUFXO0FBQ3ZCLFlBQVlDLDRCQUE4QjtBQUMxQyxZQUFZQyxxQkFBdUI7QUFDbkMsWUFBWUMscUJBQXVCO0FBQ25DLFlBQVlDLGdCQUFrQjtBQUM5QixZQUFZLFVBQVk7QUFDeEIsWUFBWUMseUJBQTJCO0FBQ3ZDLFlBQVlDLGtCQUFvQjtBQUNoQyxZQUFZQywyQkFBNkI7QUFDekMsWUFBWSxhQUFlOyIsCiAgIm5hbWVzIjogWyJjaGVjay1wcm9qZWN0LXR5cGVzIiwgImNsaS11dGlscyIsICJjb2RlLWdlbmVyYXRvciIsICJjb21taXRsaW50LWNvbmZpZyIsICJjb21taXRsaW50LWZvcmJpZGRlbi1wYXR0ZXJucyIsICJjb21taXRsaW50LXNwZWxsY2hlY2staGVhZGVyIiwgImRvY3Mtc2l0ZSIsICJlbnYtdG9nZ2xlIiwgImZvcmJpZGRlbi1wYXR0ZXJucyIsICJsaWJyYXJ5LWJ1aWxkIiwgIm5hbm8tc3RhZ2VkLWNvbmZpZyIsICJucG0tcHVibGlzaCIsICJucG0tcnVuIiwgInBhY2thZ2UtbG9jay1pbnRlZ3JpdHkiLCAicGFja2FnZS1tYW5hZ2VyIiwgInJlbGVhc2VkLWlzc3VlcyIsICJyZXBvLXBhdGhzIiwgInNoYXJlZC1jb25maWctZmlsZXMiLCAidGVzdC1ydW5uZXJzIiwgInZhbGlkYXRlLWRlY2xhcmF0aW9ucyJdCn0K
@@ -0,0 +1,49 @@
1
+ /// <reference path="../library-references.d.mts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * Lints the project with whichever linter the project configures: ESLint or Biome.
6
+ */
7
+ /**
8
+ * A linter the toolkit runs.
9
+ */
10
+ export type Linter = 'biome' | 'eslint';
11
+ /**
12
+ * Parameters for the {@link lint} function.
13
+ */
14
+ export interface LintOptions {
15
+ /**
16
+ * The configuration file used when the project has none of its own, as the chosen linter's own `lint` takes it.
17
+ */
18
+ readonly defaultConfigFilePath?: string | undefined;
19
+ /**
20
+ * The linter to run. Omitted, {@link detectLinter} chooses it.
21
+ */
22
+ readonly linter?: Linter | undefined;
23
+ /**
24
+ * Optional file paths to lint. If omitted, lints the entire project.
25
+ */
26
+ readonly paths?: string[] | undefined;
27
+ /**
28
+ * Whether to fix linting issues automatically.
29
+ *
30
+ * @default `false`
31
+ */
32
+ readonly shouldFix?: boolean | undefined;
33
+ }
34
+ /**
35
+ * Chooses the linter from the configuration files at the project root.
36
+ *
37
+ * An `eslint.config.*` file wins, so a project that formats with Biome and lints with ESLint gets ESLint. Otherwise a
38
+ * `biome.json` / `biome.jsonc` picks Biome, and a project with neither gets ESLint, as before Biome was supported.
39
+ *
40
+ * @returns The linter to run.
41
+ */
42
+ export declare function detectLinter(): Linter;
43
+ /**
44
+ * Lints the project with its linter.
45
+ *
46
+ * @param options - The {@link LintOptions}.
47
+ * @returns A {@link Promise} that resolves when the project lints clean.
48
+ */
49
+ export declare function lint(options?: LintOptions): Promise<void>;
@@ -0,0 +1,30 @@
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 { hasBiomeConfig } from "../formatters/biome.mjs";
7
+ import { lint as lintWithBiome } from "./biome.mjs";
8
+ import {
9
+ hasEslintConfig,
10
+ lint as lintWithEslint
11
+ } from "./eslint.mjs";
12
+ const LINTERS = {
13
+ biome: lintWithBiome,
14
+ eslint: lintWithEslint
15
+ };
16
+ function detectLinter() {
17
+ if (hasEslintConfig()) {
18
+ return "eslint";
19
+ }
20
+ return hasBiomeConfig() ? "biome" : "eslint";
21
+ }
22
+ async function lint(options) {
23
+ const { linter = detectLinter(), ...lintOptions } = options ?? {};
24
+ await LINTERS[linter](lintOptions);
25
+ }
26
+ export {
27
+ detectLinter,
28
+ lint
29
+ };
30
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2xpbnRlcnMvYXV0by50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIExpbnRzIHRoZSBwcm9qZWN0IHdpdGggd2hpY2hldmVyIGxpbnRlciB0aGUgcHJvamVjdCBjb25maWd1cmVzOiBFU0xpbnQgb3IgQmlvbWUuXG4gKi9cblxuaW1wb3J0IHsgaGFzQmlvbWVDb25maWcgfSBmcm9tICcuLi9mb3JtYXR0ZXJzL2Jpb21lLnRzJztcbmltcG9ydCB7IGxpbnQgYXMgbGludFdpdGhCaW9tZSB9IGZyb20gJy4vYmlvbWUudHMnO1xuaW1wb3J0IHtcbiAgaGFzRXNsaW50Q29uZmlnLFxuICBsaW50IGFzIGxpbnRXaXRoRXNsaW50XG59IGZyb20gJy4vZXNsaW50LnRzJztcblxuLyoqXG4gKiBBIGxpbnRlciB0aGUgdG9vbGtpdCBydW5zLlxuICovXG5leHBvcnQgdHlwZSBMaW50ZXIgPSAnYmlvbWUnIHwgJ2VzbGludCc7XG5cbmNvbnN0IExJTlRFUlM6IFJlYWRvbmx5PFJlY29yZDxMaW50ZXIsIChvcHRpb25zOiBMaW50T3B0aW9ucykgPT4gUHJvbWlzZTx2b2lkPj4+ID0ge1xuICBiaW9tZTogbGludFdpdGhCaW9tZSxcbiAgZXNsaW50OiBsaW50V2l0aEVzbGludFxufTtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB0aGUge0BsaW5rIGxpbnR9IGZ1bmN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExpbnRPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBjb25maWd1cmF0aW9uIGZpbGUgdXNlZCB3aGVuIHRoZSBwcm9qZWN0IGhhcyBub25lIG9mIGl0cyBvd24sIGFzIHRoZSBjaG9zZW4gbGludGVyJ3Mgb3duIGBsaW50YCB0YWtlcyBpdC5cbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRDb25maWdGaWxlUGF0aD86IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIGxpbnRlciB0byBydW4uIE9taXR0ZWQsIHtAbGluayBkZXRlY3RMaW50ZXJ9IGNob29zZXMgaXQuXG4gICAqL1xuICByZWFkb25seSBsaW50ZXI/OiBMaW50ZXIgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGZpbGUgcGF0aHMgdG8gbGludC4gSWYgb21pdHRlZCwgbGludHMgdGhlIGVudGlyZSBwcm9qZWN0LlxuICAgKi9cbiAgcmVhZG9ubHkgcGF0aHM/OiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogV2hldGhlciB0byBmaXggbGludGluZyBpc3N1ZXMgYXV0b21hdGljYWxseS5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkRml4PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBDaG9vc2VzIHRoZSBsaW50ZXIgZnJvbSB0aGUgY29uZmlndXJhdGlvbiBmaWxlcyBhdCB0aGUgcHJvamVjdCByb290LlxuICpcbiAqIEFuIGBlc2xpbnQuY29uZmlnLipgIGZpbGUgd2lucywgc28gYSBwcm9qZWN0IHRoYXQgZm9ybWF0cyB3aXRoIEJpb21lIGFuZCBsaW50cyB3aXRoIEVTTGludCBnZXRzIEVTTGludC4gT3RoZXJ3aXNlIGFcbiAqIGBiaW9tZS5qc29uYCAvIGBiaW9tZS5qc29uY2AgcGlja3MgQmlvbWUsIGFuZCBhIHByb2plY3Qgd2l0aCBuZWl0aGVyIGdldHMgRVNMaW50LCBhcyBiZWZvcmUgQmlvbWUgd2FzIHN1cHBvcnRlZC5cbiAqXG4gKiBAcmV0dXJucyBUaGUgbGludGVyIHRvIHJ1bi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRldGVjdExpbnRlcigpOiBMaW50ZXIge1xuICBpZiAoaGFzRXNsaW50Q29uZmlnKCkpIHtcbiAgICByZXR1cm4gJ2VzbGludCc7XG4gIH1cblxuICByZXR1cm4gaGFzQmlvbWVDb25maWcoKSA/ICdiaW9tZScgOiAnZXNsaW50Jztcbn1cblxuLyoqXG4gKiBMaW50cyB0aGUgcHJvamVjdCB3aXRoIGl0cyBsaW50ZXIuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUge0BsaW5rIExpbnRPcHRpb25zfS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgcHJvamVjdCBsaW50cyBjbGVhbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxpbnQob3B0aW9ucz86IExpbnRPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHsgbGludGVyID0gZGV0ZWN0TGludGVyKCksIC4uLmxpbnRPcHRpb25zIH0gPSBvcHRpb25zID8/IHt9O1xuICBhd2FpdCBMSU5URVJTW2xpbnRlcl0obGludE9wdGlvbnMpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7QUFNQSxTQUFTLHNCQUFzQjtBQUMvQixTQUFTLFFBQVEscUJBQXFCO0FBQ3RDO0FBQUEsRUFDRTtBQUFBLEVBQ0EsUUFBUTtBQUFBLE9BQ0g7QUFPUCxNQUFNLFVBQTZFO0FBQUEsRUFDakYsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUNWO0FBcUNPLFNBQVMsZUFBdUI7QUFDckMsTUFBSSxnQkFBZ0IsR0FBRztBQUNyQixXQUFPO0FBQUEsRUFDVDtBQUVBLFNBQU8sZUFBZSxJQUFJLFVBQVU7QUFDdEM7QUFRQSxlQUFzQixLQUFLLFNBQXNDO0FBQy9ELFFBQU0sRUFBRSxTQUFTLGFBQWEsR0FBRyxHQUFHLFlBQVksSUFBSSxXQUFXLENBQUM7QUFDaEUsUUFBTSxRQUFRLE1BQU0sRUFBRSxXQUFXO0FBQ25DOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -0,0 +1,36 @@
1
+ /// <reference path="../library-references.d.mts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * Lints the project with Biome.
6
+ */
7
+ /**
8
+ * Parameters for the {@link lint} function.
9
+ */
10
+ export interface LintOptions {
11
+ /**
12
+ * The configuration file copied to the project root when the project has none. Omitted, a `biome.json` extending
13
+ * the shared one this package ships (`assets/biome.json`) is written instead.
14
+ */
15
+ readonly defaultConfigFilePath?: string | undefined;
16
+ /**
17
+ * Optional file paths to lint. If omitted, lints the entire project.
18
+ */
19
+ readonly paths?: string[] | undefined;
20
+ /**
21
+ * Whether to apply the safe fixes.
22
+ *
23
+ * @default `false`
24
+ */
25
+ readonly shouldFix?: boolean | undefined;
26
+ }
27
+ /**
28
+ * Lint the project with Biome.
29
+ *
30
+ * A warning fails the run, as it does for ESLint: Biome exits `0` on warnings unless it is given
31
+ * `--error-on-warnings`.
32
+ *
33
+ * @param options - The {@link LintOptions}.
34
+ * @returns A {@link Promise} that resolves when the project lints clean.
35
+ */
36
+ export declare function lint(options?: LintOptions): Promise<void>;
@@ -0,0 +1,29 @@
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 {
7
+ BIOME_EXPLICIT_PATHS_ARGUMENTS,
8
+ ensureBiomeConfig
9
+ } from "../formatters/biome.mjs";
10
+ import { resolveToolCommand } from "../package-manager.mjs";
11
+ import { RepoPaths } from "../repo-paths.mjs";
12
+ import { execFromRoot } from "../root.mjs";
13
+ async function lint(options) {
14
+ const { defaultConfigFilePath, paths, shouldFix } = options ?? {};
15
+ await ensureBiomeConfig({ defaultConfigFilePath });
16
+ const hasPaths = paths !== void 0 && paths.length > 0;
17
+ await execFromRoot([
18
+ ...resolveToolCommand({ tool: "biome" }),
19
+ "lint",
20
+ "--error-on-warnings",
21
+ ...shouldFix ? ["--write"] : [],
22
+ ...hasPaths ? BIOME_EXPLICIT_PATHS_ARGUMENTS : [],
23
+ { batchedArguments: hasPaths ? paths : [RepoPaths.CurrentFolder] }
24
+ ]);
25
+ }
26
+ export {
27
+ lint
28
+ };
29
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2xpbnRlcnMvYmlvbWUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBMaW50cyB0aGUgcHJvamVjdCB3aXRoIEJpb21lLlxuICovXG5cbmltcG9ydCB7XG4gIEJJT01FX0VYUExJQ0lUX1BBVEhTX0FSR1VNRU5UUyxcbiAgZW5zdXJlQmlvbWVDb25maWdcbn0gZnJvbSAnLi4vZm9ybWF0dGVycy9iaW9tZS50cyc7XG5pbXBvcnQgeyByZXNvbHZlVG9vbENvbW1hbmQgfSBmcm9tICcuLi9wYWNrYWdlLW1hbmFnZXIudHMnO1xuaW1wb3J0IHsgUmVwb1BhdGhzIH0gZnJvbSAnLi4vcmVwby1wYXRocy50cyc7XG5pbXBvcnQgeyBleGVjRnJvbVJvb3QgfSBmcm9tICcuLi9yb290LnRzJztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB0aGUge0BsaW5rIGxpbnR9IGZ1bmN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExpbnRPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBjb25maWd1cmF0aW9uIGZpbGUgY29waWVkIHRvIHRoZSBwcm9qZWN0IHJvb3Qgd2hlbiB0aGUgcHJvamVjdCBoYXMgbm9uZS4gT21pdHRlZCwgYSBgYmlvbWUuanNvbmAgZXh0ZW5kaW5nXG4gICAqIHRoZSBzaGFyZWQgb25lIHRoaXMgcGFja2FnZSBzaGlwcyAoYGFzc2V0cy9iaW9tZS5qc29uYCkgaXMgd3JpdHRlbiBpbnN0ZWFkLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdENvbmZpZ0ZpbGVQYXRoPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBmaWxlIHBhdGhzIHRvIGxpbnQuIElmIG9taXR0ZWQsIGxpbnRzIHRoZSBlbnRpcmUgcHJvamVjdC5cbiAgICovXG4gIHJlYWRvbmx5IHBhdGhzPzogc3RyaW5nW10gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gYXBwbHkgdGhlIHNhZmUgZml4ZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZEZpeD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogTGludCB0aGUgcHJvamVjdCB3aXRoIEJpb21lLlxuICpcbiAqIEEgd2FybmluZyBmYWlscyB0aGUgcnVuLCBhcyBpdCBkb2VzIGZvciBFU0xpbnQ6IEJpb21lIGV4aXRzIGAwYCBvbiB3YXJuaW5ncyB1bmxlc3MgaXQgaXMgZ2l2ZW5cbiAqIGAtLWVycm9yLW9uLXdhcm5pbmdzYC5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSB7QGxpbmsgTGludE9wdGlvbnN9LlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBwcm9qZWN0IGxpbnRzIGNsZWFuLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbGludChvcHRpb25zPzogTGludE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgeyBkZWZhdWx0Q29uZmlnRmlsZVBhdGgsIHBhdGhzLCBzaG91bGRGaXggfSA9IG9wdGlvbnMgPz8ge307XG4gIGF3YWl0IGVuc3VyZUJpb21lQ29uZmlnKHsgZGVmYXVsdENvbmZpZ0ZpbGVQYXRoIH0pO1xuICBjb25zdCBoYXNQYXRocyA9IHBhdGhzICE9PSB1bmRlZmluZWQgJiYgcGF0aHMubGVuZ3RoID4gMDtcblxuICBhd2FpdCBleGVjRnJvbVJvb3QoW1xuICAgIC4uLnJlc29sdmVUb29sQ29tbWFuZCh7IHRvb2w6ICdiaW9tZScgfSksXG4gICAgJ2xpbnQnLFxuICAgICctLWVycm9yLW9uLXdhcm5pbmdzJyxcbiAgICAuLi5zaG91bGRGaXggPyBbJy0td3JpdGUnXSA6IFtdLFxuICAgIC4uLmhhc1BhdGhzID8gQklPTUVfRVhQTElDSVRfUEFUSFNfQVJHVU1FTlRTIDogW10sXG4gICAgeyBiYXRjaGVkQXJndW1lbnRzOiBoYXNQYXRocyA/IHBhdGhzIDogW1JlcG9QYXRocy5DdXJyZW50Rm9sZGVyXSB9XG4gIF0pO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7QUFNQTtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsMEJBQTBCO0FBQ25DLFNBQVMsaUJBQWlCO0FBQzFCLFNBQVMsb0JBQW9CO0FBa0M3QixlQUFzQixLQUFLLFNBQXNDO0FBQy9ELFFBQU0sRUFBRSx1QkFBdUIsT0FBTyxVQUFVLElBQUksV0FBVyxDQUFDO0FBQ2hFLFFBQU0sa0JBQWtCLEVBQUUsc0JBQXNCLENBQUM7QUFDakQsUUFBTSxXQUFXLFVBQVUsVUFBYSxNQUFNLFNBQVM7QUFFdkQsUUFBTSxhQUFhO0FBQUEsSUFDakIsR0FBRyxtQkFBbUIsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUFBLElBQ3ZDO0FBQUEsSUFDQTtBQUFBLElBQ0EsR0FBRyxZQUFZLENBQUMsU0FBUyxJQUFJLENBQUM7QUFBQSxJQUM5QixHQUFHLFdBQVcsaUNBQWlDLENBQUM7QUFBQSxJQUNoRCxFQUFFLGtCQUFrQixXQUFXLFFBQVEsQ0FBQyxVQUFVLGFBQWEsRUFBRTtBQUFBLEVBQ25FLENBQUM7QUFDSDsiLAogICJuYW1lcyI6IFtdCn0K