@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,51 @@
1
+ /// <reference path="../library-references.d.cts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * Formats the source code with whichever formatter the project configures: dprint, Prettier or Biome.
6
+ */
7
+ /**
8
+ * A formatter the toolkit runs.
9
+ */
10
+ export type Formatter = 'biome' | 'dprint' | 'prettier';
11
+ /**
12
+ * Parameters for the {@link format} function.
13
+ */
14
+ export interface FormatOptions {
15
+ /**
16
+ * The configuration file used when the project has none of its own, as the chosen formatter's own `format` takes
17
+ * it.
18
+ */
19
+ readonly defaultConfigFilePath?: string | undefined;
20
+ /**
21
+ * The formatter to run. Omitted, {@link detectFormatter} chooses it.
22
+ */
23
+ readonly formatter?: Formatter | undefined;
24
+ /**
25
+ * Optional file paths to format. If omitted, formats the entire project.
26
+ */
27
+ readonly paths?: string[] | undefined;
28
+ /**
29
+ * Whether to rewrite the source code.
30
+ *
31
+ * @default `true`
32
+ */
33
+ readonly rewrite?: boolean | undefined;
34
+ }
35
+ /**
36
+ * Chooses the formatter from the configuration files at the project root.
37
+ *
38
+ * The order is `dprint.json`, then a Prettier configuration, then `biome.json` / `biome.jsonc`, so a project that
39
+ * lints with Biome and lays out with Prettier gets Prettier. A project with none of them gets dprint, as before
40
+ * Prettier and Biome were supported.
41
+ *
42
+ * @returns The formatter to run.
43
+ */
44
+ export declare function detectFormatter(): Promise<Formatter>;
45
+ /**
46
+ * Formats the source code with the project's formatter.
47
+ *
48
+ * @param options - The {@link FormatOptions}.
49
+ * @returns A {@link Promise} that resolves when the source code has been formatted.
50
+ */
51
+ export declare function format(options?: FormatOptions): Promise<void>;
@@ -0,0 +1,121 @@
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
+ "use strict";
40
+ var __defProp = Object.defineProperty;
41
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
42
+ var __getOwnPropNames = Object.getOwnPropertyNames;
43
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
44
+ var __export = (target, all) => {
45
+ for (var name in all)
46
+ __defProp(target, name, { get: all[name], enumerable: true });
47
+ };
48
+ var __copyProps = (to, from, except, desc) => {
49
+ if (from && typeof from === "object" || typeof from === "function") {
50
+ for (let key of __getOwnPropNames(from))
51
+ if (!__hasOwnProp.call(to, key) && key !== except)
52
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
53
+ }
54
+ return to;
55
+ };
56
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
57
+ var biome_exports = {};
58
+ __export(biome_exports, {
59
+ BIOME_CONFIG_FILE_NAMES: () => BIOME_CONFIG_FILE_NAMES,
60
+ BIOME_EXPLICIT_PATHS_ARGUMENTS: () => BIOME_EXPLICIT_PATHS_ARGUMENTS,
61
+ ensureBiomeConfig: () => ensureBiomeConfig,
62
+ format: () => format,
63
+ hasBiomeConfig: () => hasBiomeConfig
64
+ });
65
+ module.exports = __toCommonJS(biome_exports);
66
+ var import_debug = require('@mnaoumov/typescript-lib/debug');
67
+ var import_path = require('@mnaoumov/typescript-lib/path');
68
+ var import_type_guards = require('@mnaoumov/typescript-lib/type-guards');
69
+ var import_node_fs = require('node:fs');
70
+ var import_promises = require('node:fs/promises');
71
+ var import_package_manager = require('../package-manager.cjs');
72
+ var import_repo_paths = require('../repo-paths.cjs');
73
+ var import_root = require('../root.cjs');
74
+ var import_shared_config_files = require('../shared-config-files.cjs');
75
+ const BIOME_CONFIG_FILE_NAMES = [import_repo_paths.RepoPaths.BiomeJson, import_repo_paths.RepoPaths.BiomeJsonc];
76
+ const BIOME_EXPLICIT_PATHS_ARGUMENTS = ["--files-ignore-unknown=true", "--no-errors-on-unmatched"];
77
+ async function ensureBiomeConfig(options) {
78
+ if (hasBiomeConfig()) {
79
+ return;
80
+ }
81
+ const debug = (0, import_debug.getLibDebugger)("Biome:ensureBiomeConfig");
82
+ const defaultConfigFilePath = options?.defaultConfigFilePath;
83
+ if (defaultConfigFilePath) {
84
+ debug("Biome configuration file not found. Copying the default config...");
85
+ await (0, import_promises.cp)(defaultConfigFilePath, (0, import_root.resolvePathFromRootSafe)({ path: (0, import_path.basename)(defaultConfigFilePath) }));
86
+ return;
87
+ }
88
+ debug("Biome configuration file not found. Writing one that extends the shared config...");
89
+ const rootFolder = (0, import_root.getRootFolder)();
90
+ (0, import_type_guards.assertNonNullable)(rootFolder, "Root folder not found");
91
+ const sharedConfigPath = (0, import_path.toPosixPath)((0, import_path.relative)(rootFolder, (0, import_shared_config_files.getSharedConfigFilePath)(import_shared_config_files.SharedConfigFile.Biome)));
92
+ const extendsPath = JSON.stringify(sharedConfigPath.startsWith(".") ? sharedConfigPath : `./${sharedConfigPath}`);
93
+ await (0, import_promises.writeFile)((0, import_root.resolvePathFromRootSafe)({ path: import_repo_paths.RepoPaths.BiomeJson }), `{
94
+ "extends": [${extendsPath}]
95
+ }
96
+ `);
97
+ }
98
+ async function format(options) {
99
+ const { defaultConfigFilePath, paths, rewrite = true } = options ?? {};
100
+ await ensureBiomeConfig({ defaultConfigFilePath });
101
+ const hasPaths = paths !== void 0 && paths.length > 0;
102
+ await (0, import_root.execFromRoot)([
103
+ ...(0, import_package_manager.resolveToolCommand)({ tool: "biome" }),
104
+ "format",
105
+ ...rewrite ? ["--write"] : [],
106
+ ...hasPaths ? BIOME_EXPLICIT_PATHS_ARGUMENTS : [],
107
+ { batchedArguments: hasPaths ? paths : [import_repo_paths.RepoPaths.CurrentFolder] }
108
+ ]);
109
+ }
110
+ function hasBiomeConfig() {
111
+ return BIOME_CONFIG_FILE_NAMES.some((fileName) => (0, import_node_fs.existsSync)((0, import_root.resolvePathFromRootSafe)({ path: fileName })));
112
+ }
113
+ // Annotate the CommonJS export names for ESM import in node:
114
+ 0 && (module.exports = {
115
+ BIOME_CONFIG_FILE_NAMES,
116
+ BIOME_EXPLICIT_PATHS_ARGUMENTS,
117
+ ensureBiomeConfig,
118
+ format,
119
+ hasBiomeConfig
120
+ });
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9mb3JtYXR0ZXJzL2Jpb21lLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBGb3JtYXQgdGhlIHNvdXJjZSBjb2RlIHdpdGggQmlvbWUuXG4gKi9cblxuaW1wb3J0IHsgZ2V0TGliRGVidWdnZXIgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvZGVidWcnO1xuaW1wb3J0IHtcbiAgYmFzZW5hbWUsXG4gIHJlbGF0aXZlLFxuICB0b1Bvc2l4UGF0aFxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvcGF0aCc7XG5pbXBvcnQgeyBhc3NlcnROb25OdWxsYWJsZSB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90eXBlLWd1YXJkcyc7XG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQge1xuICBjcCxcbiAgd3JpdGVGaWxlXG59IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuXG5pbXBvcnQgeyByZXNvbHZlVG9vbENvbW1hbmQgfSBmcm9tICcuLi9wYWNrYWdlLW1hbmFnZXIudHMnO1xuaW1wb3J0IHsgUmVwb1BhdGhzIH0gZnJvbSAnLi4vcmVwby1wYXRocy50cyc7XG5pbXBvcnQge1xuICBleGVjRnJvbVJvb3QsXG4gIGdldFJvb3RGb2xkZXIsXG4gIHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlXG59IGZyb20gJy4uL3Jvb3QudHMnO1xuaW1wb3J0IHtcbiAgZ2V0U2hhcmVkQ29uZmlnRmlsZVBhdGgsXG4gIFNoYXJlZENvbmZpZ0ZpbGVcbn0gZnJvbSAnLi4vc2hhcmVkLWNvbmZpZy1maWxlcy50cyc7XG5cbi8qKlxuICogVGhlIGZpbGVzIEJpb21lIHJlYWRzIGl0cyBjb25maWd1cmF0aW9uIGZyb20uXG4gKi9cbmV4cG9ydCBjb25zdCBCSU9NRV9DT05GSUdfRklMRV9OQU1FUzogcmVhZG9ubHkgc3RyaW5nW10gPSBbUmVwb1BhdGhzLkJpb21lSnNvbiwgUmVwb1BhdGhzLkJpb21lSnNvbmNdO1xuXG4vKipcbiAqIFRoZSBmbGFncyB0aGF0IG1ha2UgQmlvbWUgc2tpcCwgcmF0aGVyIHRoYW4gZmFpbCBvbiwgYSBwYXRoIGl0IGlzIGhhbmRlZCBidXQgZG9lcyBub3QgaGFuZGxlOiBhIHByZS1jb21taXQgaG9va1xuICogaGFuZHMgZXZlcnkgdG9vbCBleHBsaWNpdCBmaWxlIGxpc3RzLCB3aGljaCBjYW4gbmFtZSBhIGZpbGUgQmlvbWUgZG9lcyBub3Qga25vdyBvciBhIGZpbGUgdGhlIHByb2plY3QgaWdub3Jlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IEJJT01FX0VYUExJQ0lUX1BBVEhTX0FSR1VNRU5UUzogcmVhZG9ubHkgc3RyaW5nW10gPSBbJy0tZmlsZXMtaWdub3JlLXVua25vd249dHJ1ZScsICctLW5vLWVycm9ycy1vbi11bm1hdGNoZWQnXTtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB0aGUge0BsaW5rIGVuc3VyZUJpb21lQ29uZmlnfSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbnN1cmVCaW9tZUNvbmZpZ09wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBjb3BpZWQgdG8gdGhlIHByb2plY3Qgcm9vdCB3aGVuIHRoZSBwcm9qZWN0IGhhcyBub25lLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdENvbmZpZ0ZpbGVQYXRoPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHRoZSB7QGxpbmsgZm9ybWF0fSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGb3JtYXRPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBjb25maWd1cmF0aW9uIGZpbGUgY29waWVkIHRvIHRoZSBwcm9qZWN0IHJvb3Qgd2hlbiB0aGUgcHJvamVjdCBoYXMgbm9uZS4gT21pdHRlZCwgYSBgYmlvbWUuanNvbmAgZXh0ZW5kaW5nXG4gICAqIHRoZSBzaGFyZWQgb25lIHRoaXMgcGFja2FnZSBzaGlwcyAoYGFzc2V0cy9iaW9tZS5qc29uYCkgaXMgd3JpdHRlbiBpbnN0ZWFkLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdENvbmZpZ0ZpbGVQYXRoPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBmaWxlIHBhdGhzIHRvIGZvcm1hdC4gSWYgb21pdHRlZCwgZm9ybWF0cyB0aGUgZW50aXJlIHByb2plY3QuXG4gICAqL1xuICByZWFkb25seSBwYXRocz86IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHJld3JpdGUgdGhlIHNvdXJjZSBjb2RlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgdHJ1ZWBcbiAgICovXG4gIHJlYWRvbmx5IHJld3JpdGU/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIE1ha2VzIHN1cmUgdGhlIHByb2plY3QgaGFzIGEgQmlvbWUgY29uZmlndXJhdGlvbiBvZiBpdHMgb3duLlxuICpcbiAqIEJpb21lIHJlc29sdmVzIGEgY29uZmlndXJhdGlvbidzIFZDUyByb290IGFuZCBnbG9icyBhZ2FpbnN0IHRoZSBjb25maWd1cmF0aW9uIGZpbGUncyBvd24gZm9sZGVyLCBzbyBhIHNoYXJlZFxuICogY29uZmlndXJhdGlvbiBjYW5ub3QgYmUgcGFzc2VkIHdpdGggYC0tY29uZmlnLXBhdGhgIGZyb20gaW5zaWRlIGBub2RlX21vZHVsZXNgOiBpdCBsb29rcyBmb3IgYC5naXRpZ25vcmVgIHRoZXJlLlxuICogVGhlIHByb2plY3QncyBvd24gYGJpb21lLmpzb25gIGV4dGVuZHMgaXQgaW5zdGVhZC4gV2hlbiB0aGVyZSBpcyBub25lLCB0aGUgZGVmYXVsdCBvbmUgaXMgY29waWVkIGluLCBvciBhXG4gKiBgYmlvbWUuanNvbmAgZXh0ZW5kaW5nIHRoZSBzaGFyZWQgY29uZmlndXJhdGlvbiBpcyB3cml0dGVuLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHtAbGluayBFbnN1cmVCaW9tZUNvbmZpZ09wdGlvbnN9LlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBwcm9qZWN0IGhhcyBhIEJpb21lIGNvbmZpZ3VyYXRpb24uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBlbnN1cmVCaW9tZUNvbmZpZyhvcHRpb25zPzogRW5zdXJlQmlvbWVDb25maWdPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmIChoYXNCaW9tZUNvbmZpZygpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgZGVidWcgPSBnZXRMaWJEZWJ1Z2dlcignQmlvbWU6ZW5zdXJlQmlvbWVDb25maWcnKTtcbiAgY29uc3QgZGVmYXVsdENvbmZpZ0ZpbGVQYXRoID0gb3B0aW9ucz8uZGVmYXVsdENvbmZpZ0ZpbGVQYXRoO1xuICBpZiAoZGVmYXVsdENvbmZpZ0ZpbGVQYXRoKSB7XG4gICAgZGVidWcoJ0Jpb21lIGNvbmZpZ3VyYXRpb24gZmlsZSBub3QgZm91bmQuIENvcHlpbmcgdGhlIGRlZmF1bHQgY29uZmlnLi4uJyk7XG4gICAgYXdhaXQgY3AoZGVmYXVsdENvbmZpZ0ZpbGVQYXRoLCByZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7IHBhdGg6IGJhc2VuYW1lKGRlZmF1bHRDb25maWdGaWxlUGF0aCkgfSkpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGRlYnVnKCdCaW9tZSBjb25maWd1cmF0aW9uIGZpbGUgbm90IGZvdW5kLiBXcml0aW5nIG9uZSB0aGF0IGV4dGVuZHMgdGhlIHNoYXJlZCBjb25maWcuLi4nKTtcbiAgY29uc3Qgcm9vdEZvbGRlciA9IGdldFJvb3RGb2xkZXIoKTtcbiAgYXNzZXJ0Tm9uTnVsbGFibGUocm9vdEZvbGRlciwgJ1Jvb3QgZm9sZGVyIG5vdCBmb3VuZCcpO1xuICBjb25zdCBzaGFyZWRDb25maWdQYXRoID0gdG9Qb3NpeFBhdGgocmVsYXRpdmUocm9vdEZvbGRlciwgZ2V0U2hhcmVkQ29uZmlnRmlsZVBhdGgoU2hhcmVkQ29uZmlnRmlsZS5CaW9tZSkpKTtcbiAgY29uc3QgZXh0ZW5kc1BhdGggPSBKU09OLnN0cmluZ2lmeShzaGFyZWRDb25maWdQYXRoLnN0YXJ0c1dpdGgoJy4nKSA/IHNoYXJlZENvbmZpZ1BhdGggOiBgLi8ke3NoYXJlZENvbmZpZ1BhdGh9YCk7XG4gIC8vIFdyaXR0ZW4gdGhlIHdheSBgYmlvbWUgZm9ybWF0YCBwcmludHMgaXQsIHNvIHRoZSBmaXJzdCBmb3JtYXQgbGVhdmVzIHRoZSBmaWxlIGFsb25lLlxuICBhd2FpdCB3cml0ZUZpbGUocmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoeyBwYXRoOiBSZXBvUGF0aHMuQmlvbWVKc29uIH0pLCBge1xcbiAgXCJleHRlbmRzXCI6IFske2V4dGVuZHNQYXRofV1cXG59XFxuYCk7XG59XG5cbi8qKlxuICogRm9ybWF0IHRoZSBzb3VyY2UgY29kZSB3aXRoIEJpb21lLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHtAbGluayBGb3JtYXRPcHRpb25zfS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgc291cmNlIGNvZGUgaGFzIGJlZW4gZm9ybWF0dGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZm9ybWF0KG9wdGlvbnM/OiBGb3JtYXRPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHsgZGVmYXVsdENvbmZpZ0ZpbGVQYXRoLCBwYXRocywgcmV3cml0ZSA9IHRydWUgfSA9IG9wdGlvbnMgPz8ge307XG4gIGF3YWl0IGVuc3VyZUJpb21lQ29uZmlnKHsgZGVmYXVsdENvbmZpZ0ZpbGVQYXRoIH0pO1xuICBjb25zdCBoYXNQYXRocyA9IHBhdGhzICE9PSB1bmRlZmluZWQgJiYgcGF0aHMubGVuZ3RoID4gMDtcblxuICBhd2FpdCBleGVjRnJvbVJvb3QoW1xuICAgIC4uLnJlc29sdmVUb29sQ29tbWFuZCh7IHRvb2w6ICdiaW9tZScgfSksXG4gICAgJ2Zvcm1hdCcsXG4gICAgLi4ucmV3cml0ZSA/IFsnLS13cml0ZSddIDogW10sXG4gICAgLi4uaGFzUGF0aHMgPyBCSU9NRV9FWFBMSUNJVF9QQVRIU19BUkdVTUVOVFMgOiBbXSxcbiAgICB7IGJhdGNoZWRBcmd1bWVudHM6IGhhc1BhdGhzID8gcGF0aHMgOiBbUmVwb1BhdGhzLkN1cnJlbnRGb2xkZXJdIH1cbiAgXSk7XG59XG5cbi8qKlxuICogU2F5cyB3aGV0aGVyIHRoZSBwcm9qZWN0IGNvbmZpZ3VyZXMgQmlvbWUgaXRzZWxmLlxuICpcbiAqIEByZXR1cm5zIFdoZXRoZXIgYSBgYmlvbWUuanNvbmAgb3IgYGJpb21lLmpzb25jYCBleGlzdHMgYXQgdGhlIHByb2plY3Qgcm9vdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc0Jpb21lQ29uZmlnKCk6IGJvb2xlYW4ge1xuICByZXR1cm4gQklPTUVfQ09ORklHX0ZJTEVfTkFNRVMuc29tZSgoZmlsZU5hbWUpID0+IGV4aXN0c1N5bmMocmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoeyBwYXRoOiBmaWxlTmFtZSB9KSkpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BLG1CQUErQjtBQUMvQixrQkFJTztBQUNQLHlCQUFrQztBQUNsQyxxQkFBMkI7QUFDM0Isc0JBR087QUFFUCw2QkFBbUM7QUFDbkMsd0JBQTBCO0FBQzFCLGtCQUlPO0FBQ1AsaUNBR087QUFLQSxNQUFNLDBCQUE2QyxDQUFDLDRCQUFVLFdBQVcsNEJBQVUsVUFBVTtBQU03RixNQUFNLGlDQUFvRCxDQUFDLCtCQUErQiwwQkFBMEI7QUE4QzNILGVBQXNCLGtCQUFrQixTQUFtRDtBQUN6RixNQUFJLGVBQWUsR0FBRztBQUNwQjtBQUFBLEVBQ0Y7QUFFQSxRQUFNLFlBQVEsNkJBQWUseUJBQXlCO0FBQ3RELFFBQU0sd0JBQXdCLFNBQVM7QUFDdkMsTUFBSSx1QkFBdUI7QUFDekIsVUFBTSxtRUFBbUU7QUFDekUsY0FBTSxvQkFBRywyQkFBdUIscUNBQXdCLEVBQUUsVUFBTSxzQkFBUyxxQkFBcUIsRUFBRSxDQUFDLENBQUM7QUFDbEc7QUFBQSxFQUNGO0FBRUEsUUFBTSxtRkFBbUY7QUFDekYsUUFBTSxpQkFBYSwyQkFBYztBQUNqQyw0Q0FBa0IsWUFBWSx1QkFBdUI7QUFDckQsUUFBTSx1QkFBbUIsNkJBQVksc0JBQVMsZ0JBQVksb0RBQXdCLDRDQUFpQixLQUFLLENBQUMsQ0FBQztBQUMxRyxRQUFNLGNBQWMsS0FBSyxVQUFVLGlCQUFpQixXQUFXLEdBQUcsSUFBSSxtQkFBbUIsS0FBSyxnQkFBZ0IsRUFBRTtBQUVoSCxZQUFNLCtCQUFVLHFDQUF3QixFQUFFLE1BQU0sNEJBQVUsVUFBVSxDQUFDLEdBQUc7QUFBQSxnQkFBb0IsV0FBVztBQUFBO0FBQUEsQ0FBUTtBQUNqSDtBQVFBLGVBQXNCLE9BQU8sU0FBd0M7QUFDbkUsUUFBTSxFQUFFLHVCQUF1QixPQUFPLFVBQVUsS0FBSyxJQUFJLFdBQVcsQ0FBQztBQUNyRSxRQUFNLGtCQUFrQixFQUFFLHNCQUFzQixDQUFDO0FBQ2pELFFBQU0sV0FBVyxVQUFVLFVBQWEsTUFBTSxTQUFTO0FBRXZELFlBQU0sMEJBQWE7QUFBQSxJQUNqQixPQUFHLDJDQUFtQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQUEsSUFDdkM7QUFBQSxJQUNBLEdBQUcsVUFBVSxDQUFDLFNBQVMsSUFBSSxDQUFDO0FBQUEsSUFDNUIsR0FBRyxXQUFXLGlDQUFpQyxDQUFDO0FBQUEsSUFDaEQsRUFBRSxrQkFBa0IsV0FBVyxRQUFRLENBQUMsNEJBQVUsYUFBYSxFQUFFO0FBQUEsRUFDbkUsQ0FBQztBQUNIO0FBT08sU0FBUyxpQkFBMEI7QUFDeEMsU0FBTyx3QkFBd0IsS0FBSyxDQUFDLGlCQUFhLCtCQUFXLHFDQUF3QixFQUFFLE1BQU0sU0FBUyxDQUFDLENBQUMsQ0FBQztBQUMzRzsiLCJuYW1lcyI6W119
@@ -0,0 +1,69 @@
1
+ /// <reference path="../library-references.d.cts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * Format the source code with Biome.
6
+ */
7
+ /**
8
+ * The files Biome reads its configuration from.
9
+ */
10
+ export declare const BIOME_CONFIG_FILE_NAMES: readonly string[];
11
+ /**
12
+ * The flags that make Biome skip, rather than fail on, a path it is handed but does not handle: a pre-commit hook
13
+ * hands every tool explicit file lists, which can name a file Biome does not know or a file the project ignores.
14
+ */
15
+ export declare const BIOME_EXPLICIT_PATHS_ARGUMENTS: readonly string[];
16
+ /**
17
+ * Parameters for the {@link ensureBiomeConfig} function.
18
+ */
19
+ export interface EnsureBiomeConfigOptions {
20
+ /**
21
+ * The configuration file copied to the project root when the project has none.
22
+ */
23
+ readonly defaultConfigFilePath?: string | undefined;
24
+ }
25
+ /**
26
+ * Parameters for the {@link format} function.
27
+ */
28
+ export interface FormatOptions {
29
+ /**
30
+ * The configuration file copied to the project root when the project has none. Omitted, a `biome.json` extending
31
+ * the shared one this package ships (`assets/biome.json`) is written instead.
32
+ */
33
+ readonly defaultConfigFilePath?: string | undefined;
34
+ /**
35
+ * Optional file paths to format. If omitted, formats the entire project.
36
+ */
37
+ readonly paths?: string[] | undefined;
38
+ /**
39
+ * Whether to rewrite the source code.
40
+ *
41
+ * @default `true`
42
+ */
43
+ readonly rewrite?: boolean | undefined;
44
+ }
45
+ /**
46
+ * Makes sure the project has a Biome configuration of its own.
47
+ *
48
+ * Biome resolves a configuration's VCS root and globs against the configuration file's own folder, so a shared
49
+ * configuration cannot be passed with `--config-path` from inside `node_modules`: it looks for `.gitignore` there.
50
+ * The project's own `biome.json` extends it instead. When there is none, the default one is copied in, or a
51
+ * `biome.json` extending the shared configuration is written.
52
+ *
53
+ * @param options - The {@link EnsureBiomeConfigOptions}.
54
+ * @returns A {@link Promise} that resolves when the project has a Biome configuration.
55
+ */
56
+ export declare function ensureBiomeConfig(options?: EnsureBiomeConfigOptions): Promise<void>;
57
+ /**
58
+ * Format the source code with Biome.
59
+ *
60
+ * @param options - The {@link FormatOptions}.
61
+ * @returns A {@link Promise} that resolves when the source code has been formatted.
62
+ */
63
+ export declare function format(options?: FormatOptions): Promise<void>;
64
+ /**
65
+ * Says whether the project configures Biome itself.
66
+ *
67
+ * @returns Whether a `biome.json` or `biome.jsonc` exists at the project root.
68
+ */
69
+ export declare function hasBiomeConfig(): boolean;
@@ -33,12 +33,21 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
33
33
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
34
34
  var formatters_exports = {};
35
35
  __export(formatters_exports, {
36
- dprint: () => dprint
36
+ auto: () => auto,
37
+ biome: () => biome,
38
+ dprint: () => dprint,
39
+ prettier: () => prettier
37
40
  });
38
41
  module.exports = __toCommonJS(formatters_exports);
42
+ var auto = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./auto.cjs')), 1);
43
+ var biome = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./biome.cjs')), 1);
39
44
  var dprint = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./dprint.cjs')), 1);
45
+ var prettier = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./prettier.cjs')), 1);
40
46
  // Annotate the CommonJS export names for ESM import in node:
41
47
  0 && (module.exports = {
42
- dprint
48
+ auto,
49
+ biome,
50
+ dprint,
51
+ prettier
43
52
  });
44
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2Zvcm1hdHRlcnMvaW5kZXgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qIFRISVMgSVMgQSBHRU5FUkFURUQvQlVORExFRCBGSUxFIEJZIEJVSUxEIFNDUklQVCAqL1xuXG5leHBvcnQgKiBhcyAnZHByaW50JyBmcm9tICcuL2RwcmludC50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUEsYUFBMEI7IiwKICAibmFtZXMiOiBbXQp9Cg==
53
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2Zvcm1hdHRlcnMvaW5kZXgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qIFRISVMgSVMgQSBHRU5FUkFURUQvQlVORExFRCBGSUxFIEJZIEJVSUxEIFNDUklQVCAqL1xuXG5leHBvcnQgKiBhcyAnYXV0bycgZnJvbSAnLi9hdXRvLnRzJztcbmV4cG9ydCAqIGFzICdiaW9tZScgZnJvbSAnLi9iaW9tZS50cyc7XG5leHBvcnQgKiBhcyAnZHByaW50JyBmcm9tICcuL2RwcmludC50cyc7XG5leHBvcnQgKiBhcyAncHJldHRpZXInIGZyb20gJy4vcHJldHRpZXIudHMnO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBLFdBQXdCO0FBQ3hCLFlBQXlCO0FBQ3pCLGFBQTBCO0FBQzFCLGVBQTRCOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -1,2 +1,5 @@
1
1
  /// <reference path="../library-references.d.cts" />
2
+ export * as 'auto' from './auto.cjs';
3
+ export * as 'biome' from './biome.cjs';
2
4
  export * as 'dprint' from './dprint.cjs';
5
+ export * as 'prettier' from './prettier.cjs';
@@ -0,0 +1,93 @@
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
+ "use strict";
7
+ var __defProp = Object.defineProperty;
8
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
9
+ var __getOwnPropNames = Object.getOwnPropertyNames;
10
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
11
+ var __export = (target, all) => {
12
+ for (var name in all)
13
+ __defProp(target, name, { get: all[name], enumerable: true });
14
+ };
15
+ var __copyProps = (to, from, except, desc) => {
16
+ if (from && typeof from === "object" || typeof from === "function") {
17
+ for (let key of __getOwnPropNames(from))
18
+ if (!__hasOwnProp.call(to, key) && key !== except)
19
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
20
+ }
21
+ return to;
22
+ };
23
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
24
+ var prettier_exports = {};
25
+ __export(prettier_exports, {
26
+ PRETTIER_CONFIG_FILE_NAMES: () => PRETTIER_CONFIG_FILE_NAMES,
27
+ format: () => format,
28
+ getPrettierConfig: () => getPrettierConfig,
29
+ hasPrettierConfig: () => hasPrettierConfig
30
+ });
31
+ module.exports = __toCommonJS(prettier_exports);
32
+ var import_node_fs = require('node:fs');
33
+ var import_npm = require('../npm.cjs');
34
+ var import_package_manager = require('../package-manager.cjs');
35
+ var import_repo_paths = require('../repo-paths.cjs');
36
+ var import_root = require('../root.cjs');
37
+ var import_shared_config_files = require('../shared-config-files.cjs');
38
+ const PRETTIER_CONFIG_FILE_NAMES = [
39
+ ".prettierrc",
40
+ ".prettierrc.cjs",
41
+ ".prettierrc.cts",
42
+ ".prettierrc.js",
43
+ ".prettierrc.json",
44
+ ".prettierrc.json5",
45
+ ".prettierrc.mjs",
46
+ ".prettierrc.mts",
47
+ ".prettierrc.toml",
48
+ ".prettierrc.ts",
49
+ ".prettierrc.yaml",
50
+ ".prettierrc.yml",
51
+ "prettier.config.cjs",
52
+ "prettier.config.cts",
53
+ "prettier.config.js",
54
+ "prettier.config.mjs",
55
+ "prettier.config.mts",
56
+ "prettier.config.ts"
57
+ ];
58
+ const EXCLUDED_PATTERNS = ["!**/*.md", "!**/*-lock.json"];
59
+ async function format(options) {
60
+ const { defaultConfigFilePath, paths, rewrite = true } = options ?? {};
61
+ const configArguments = await hasPrettierConfig() ? [] : ["--config", defaultConfigFilePath ?? (0, import_shared_config_files.getSharedConfigFilePath)(import_shared_config_files.SharedConfigFile.Prettier)];
62
+ const hasPaths = paths !== void 0 && paths.length > 0;
63
+ await (0, import_root.execFromRoot)([
64
+ ...(0, import_package_manager.resolveToolCommand)({ tool: "prettier" }),
65
+ rewrite ? "--write" : "--check",
66
+ "--ignore-unknown",
67
+ ...hasPaths ? ["--no-error-on-unmatched-pattern"] : [],
68
+ ...configArguments,
69
+ ...EXCLUDED_PATTERNS,
70
+ { batchedArguments: hasPaths ? paths : [import_repo_paths.RepoPaths.CurrentFolder] }
71
+ ]);
72
+ }
73
+ function getPrettierConfig() {
74
+ return JSON.parse((0, import_node_fs.readFileSync)((0, import_shared_config_files.getSharedConfigFilePath)(import_shared_config_files.SharedConfigFile.Prettier), "utf-8"));
75
+ }
76
+ async function hasPrettierConfig() {
77
+ if (PRETTIER_CONFIG_FILE_NAMES.some((fileName) => (0, import_node_fs.existsSync)((0, import_root.resolvePathFromRootSafe)({ path: fileName })))) {
78
+ return true;
79
+ }
80
+ if (!(0, import_node_fs.existsSync)((0, import_root.resolvePathFromRootSafe)({ path: import_repo_paths.RepoPaths.PackageJson }))) {
81
+ return false;
82
+ }
83
+ const packageJson = await (0, import_npm.readPackageJson)();
84
+ return Object.hasOwn(packageJson, "prettier");
85
+ }
86
+ // Annotate the CommonJS export names for ESM import in node:
87
+ 0 && (module.exports = {
88
+ PRETTIER_CONFIG_FILE_NAMES,
89
+ format,
90
+ getPrettierConfig,
91
+ hasPrettierConfig
92
+ });
93
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2Zvcm1hdHRlcnMvcHJldHRpZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBGb3JtYXQgdGhlIHNvdXJjZSBjb2RlIHdpdGggUHJldHRpZXIuXG4gKi9cblxuaW1wb3J0IHtcbiAgZXhpc3RzU3luYyxcbiAgcmVhZEZpbGVTeW5jXG59IGZyb20gJ25vZGU6ZnMnO1xuXG5pbXBvcnQgeyByZWFkUGFja2FnZUpzb24gfSBmcm9tICcuLi9ucG0udHMnO1xuaW1wb3J0IHsgcmVzb2x2ZVRvb2xDb21tYW5kIH0gZnJvbSAnLi4vcGFja2FnZS1tYW5hZ2VyLnRzJztcbmltcG9ydCB7IFJlcG9QYXRocyB9IGZyb20gJy4uL3JlcG8tcGF0aHMudHMnO1xuaW1wb3J0IHtcbiAgZXhlY0Zyb21Sb290LFxuICByZXNvbHZlUGF0aEZyb21Sb290U2FmZVxufSBmcm9tICcuLi9yb290LnRzJztcbmltcG9ydCB7XG4gIGdldFNoYXJlZENvbmZpZ0ZpbGVQYXRoLFxuICBTaGFyZWRDb25maWdGaWxlXG59IGZyb20gJy4uL3NoYXJlZC1jb25maWctZmlsZXMudHMnO1xuXG4vKipcbiAqIEV2ZXJ5IGZpbGUgUHJldHRpZXIgcmVhZHMgaXRzIGNvbmZpZ3VyYXRpb24gZnJvbSwgYmVzaWRlcyB0aGUgYHByZXR0aWVyYCBrZXkgb2YgYHBhY2thZ2UuanNvbmAuXG4gKlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9wcmV0dGllci5pby9kb2NzL2NvbmZpZ3VyYXRpb259XG4gKi9cbmV4cG9ydCBjb25zdCBQUkVUVElFUl9DT05GSUdfRklMRV9OQU1FUzogcmVhZG9ubHkgc3RyaW5nW10gPSBbXG4gICcucHJldHRpZXJyYycsXG4gICcucHJldHRpZXJyYy5janMnLFxuICAnLnByZXR0aWVycmMuY3RzJyxcbiAgJy5wcmV0dGllcnJjLmpzJyxcbiAgJy5wcmV0dGllcnJjLmpzb24nLFxuICAnLnByZXR0aWVycmMuanNvbjUnLFxuICAnLnByZXR0aWVycmMubWpzJyxcbiAgJy5wcmV0dGllcnJjLm10cycsXG4gICcucHJldHRpZXJyYy50b21sJyxcbiAgJy5wcmV0dGllcnJjLnRzJyxcbiAgJy5wcmV0dGllcnJjLnlhbWwnLFxuICAnLnByZXR0aWVycmMueW1sJyxcbiAgJ3ByZXR0aWVyLmNvbmZpZy5janMnLFxuICAncHJldHRpZXIuY29uZmlnLmN0cycsXG4gICdwcmV0dGllci5jb25maWcuanMnLFxuICAncHJldHRpZXIuY29uZmlnLm1qcycsXG4gICdwcmV0dGllci5jb25maWcubXRzJyxcbiAgJ3ByZXR0aWVyLmNvbmZpZy50cydcbl07XG5cbi8qKlxuICogVGhlIGZpbGVzIFByZXR0aWVyIGxlYXZlcyBhbG9uZSwgYXMgdGhlIHNoYXJlZCBgZHByaW50Lmpzb25gIGRvZXM6IE1hcmtkb3duIGJlbG9uZ3MgdG8gbWFya2Rvd25saW50LCBhbmQgYSBsb2NrZmlsZVxuICogYmVsb25ncyB0byBpdHMgcGFja2FnZSBtYW5hZ2VyLiBUaGV5IGFyZSBwYXNzZWQgYXMgbmVnYXRlZCBwYXR0ZXJucywgd2hpY2ggUHJldHRpZXIgYXBwbGllcyB0byB0aGUgcGF0aHMgaXQgaXMgZ2l2ZW5cbiAqIGFzIHdlbGwgYXMgdG8gdGhlIG9uZXMgaXQgZmluZHMuXG4gKi9cbmNvbnN0IEVYQ0xVREVEX1BBVFRFUk5TOiByZWFkb25seSBzdHJpbmdbXSA9IFsnISoqLyoubWQnLCAnISoqLyotbG9jay5qc29uJ107XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3IgdGhlIHtAbGluayBmb3JtYXR9IGZ1bmN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1hdE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIFByZXR0aWVyIGNvbmZpZ3VyYXRpb24gdXNlZCB3aGVuIHRoZSBwcm9qZWN0IGhhcyBub25lIG9mIGl0cyBvd24uIE9taXR0ZWQsIHRoZSBzaGFyZWQgb25lIHRoaXMgcGFja2FnZSBzaGlwc1xuICAgKiAoYGFzc2V0cy9wcmV0dGllci5qc29uYCkgaXMgdXNlZC5cbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRDb25maWdGaWxlUGF0aD86IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogT3B0aW9uYWwgZmlsZSBwYXRocyB0byBmb3JtYXQuIElmIG9taXR0ZWQsIGZvcm1hdHMgdGhlIGVudGlyZSBwcm9qZWN0LlxuICAgKi9cbiAgcmVhZG9ubHkgcGF0aHM/OiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogV2hldGhlciB0byByZXdyaXRlIHRoZSBzb3VyY2UgY29kZS5cbiAgICpcbiAgICogQGRlZmF1bHQgYHRydWVgXG4gICAqL1xuICByZWFkb25seSByZXdyaXRlPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBGb3JtYXQgdGhlIHNvdXJjZSBjb2RlIHdpdGggUHJldHRpZXIuXG4gKlxuICogUHJldHRpZXIgZmluZHMgdGhlIHByb2plY3QncyBvd24gY29uZmlndXJhdGlvbiBpdHNlbGYuIE9ubHkgYSBwcm9qZWN0IHdpdGggbm9uZSBnZXRzIGAtLWNvbmZpZ2AsIHBvaW50aW5nIGF0XG4gKiB7QGxpbmsgRm9ybWF0T3B0aW9ucy5kZWZhdWx0Q29uZmlnRmlsZVBhdGh9IG9yIGF0IHRoZSBzaGFyZWQgY29uZmlndXJhdGlvbi4gYC5naXRpZ25vcmVgIGFuZCBgLnByZXR0aWVyaWdub3JlYCBhcmVcbiAqIGhvbm9yZWQsIGFzIFByZXR0aWVyIGFsd2F5cyBkb2VzLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHtAbGluayBGb3JtYXRPcHRpb25zfS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgc291cmNlIGNvZGUgaGFzIGJlZW4gZm9ybWF0dGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZm9ybWF0KG9wdGlvbnM/OiBGb3JtYXRPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHsgZGVmYXVsdENvbmZpZ0ZpbGVQYXRoLCBwYXRocywgcmV3cml0ZSA9IHRydWUgfSA9IG9wdGlvbnMgPz8ge307XG4gIGNvbnN0IGNvbmZpZ0FyZ3VtZW50cyA9IGF3YWl0IGhhc1ByZXR0aWVyQ29uZmlnKClcbiAgICA/IFtdXG4gICAgOiBbJy0tY29uZmlnJywgZGVmYXVsdENvbmZpZ0ZpbGVQYXRoID8/IGdldFNoYXJlZENvbmZpZ0ZpbGVQYXRoKFNoYXJlZENvbmZpZ0ZpbGUuUHJldHRpZXIpXTtcbiAgY29uc3QgaGFzUGF0aHMgPSBwYXRocyAhPT0gdW5kZWZpbmVkICYmIHBhdGhzLmxlbmd0aCA+IDA7XG5cbiAgYXdhaXQgZXhlY0Zyb21Sb290KFtcbiAgICAuLi5yZXNvbHZlVG9vbENvbW1hbmQoeyB0b29sOiAncHJldHRpZXInIH0pLFxuICAgIHJld3JpdGUgPyAnLS13cml0ZScgOiAnLS1jaGVjaycsXG4gICAgJy0taWdub3JlLXVua25vd24nLFxuICAgIC4uLmhhc1BhdGhzID8gWyctLW5vLWVycm9yLW9uLXVubWF0Y2hlZC1wYXR0ZXJuJ10gOiBbXSxcbiAgICAuLi5jb25maWdBcmd1bWVudHMsXG4gICAgLi4uRVhDTFVERURfUEFUVEVSTlMsXG4gICAgeyBiYXRjaGVkQXJndW1lbnRzOiBoYXNQYXRocyA/IHBhdGhzIDogW1JlcG9QYXRocy5DdXJyZW50Rm9sZGVyXSB9XG4gIF0pO1xufVxuXG4vKipcbiAqIFJlYWRzIHRoZSBzaGFyZWQgUHJldHRpZXIgY29uZmlndXJhdGlvbiB0aGlzIHBhY2thZ2Ugc2hpcHMsIGZvciBhIHByb2plY3QncyBvd24gYHByZXR0aWVyLmNvbmZpZy5tanNgIHRvIGV4cG9ydCBvclxuICogYnVpbGQgb24uXG4gKlxuICogQHJldHVybnMgVGhlIHNoYXJlZCBjb25maWd1cmF0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHJldHRpZXJDb25maWcoKTogUmVhZG9ubHk8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHtcbiAgcmV0dXJuIEpTT04ucGFyc2UocmVhZEZpbGVTeW5jKGdldFNoYXJlZENvbmZpZ0ZpbGVQYXRoKFNoYXJlZENvbmZpZ0ZpbGUuUHJldHRpZXIpLCAndXRmLTgnKSkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbi8qKlxuICogU2F5cyB3aGV0aGVyIHRoZSBwcm9qZWN0IGNvbmZpZ3VyZXMgUHJldHRpZXIgaXRzZWxmLlxuICpcbiAqIEByZXR1cm5zIFdoZXRoZXIgYSBQcmV0dGllciBjb25maWd1cmF0aW9uIGZpbGUsIG9yIGEgYHByZXR0aWVyYCBrZXkgaW4gYHBhY2thZ2UuanNvbmAsIGV4aXN0cyBhdCB0aGUgcHJvamVjdCByb290LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaGFzUHJldHRpZXJDb25maWcoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGlmIChQUkVUVElFUl9DT05GSUdfRklMRV9OQU1FUy5zb21lKChmaWxlTmFtZSkgPT4gZXhpc3RzU3luYyhyZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7IHBhdGg6IGZpbGVOYW1lIH0pKSkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmICghZXhpc3RzU3luYyhyZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7IHBhdGg6IFJlcG9QYXRocy5QYWNrYWdlSnNvbiB9KSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBwYWNrYWdlSnNvbiA9IGF3YWl0IHJlYWRQYWNrYWdlSnNvbigpO1xuICByZXR1cm4gT2JqZWN0Lmhhc093bihwYWNrYWdlSnNvbiwgJ3ByZXR0aWVyJyk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQSxxQkFHTztBQUVQLGlCQUFnQztBQUNoQyw2QkFBbUM7QUFDbkMsd0JBQTBCO0FBQzFCLGtCQUdPO0FBQ1AsaUNBR087QUFPQSxNQUFNLDZCQUFnRDtBQUFBLEVBQzNEO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFDRjtBQU9BLE1BQU0sb0JBQXVDLENBQUMsWUFBWSxpQkFBaUI7QUFtQzNFLGVBQXNCLE9BQU8sU0FBd0M7QUFDbkUsUUFBTSxFQUFFLHVCQUF1QixPQUFPLFVBQVUsS0FBSyxJQUFJLFdBQVcsQ0FBQztBQUNyRSxRQUFNLGtCQUFrQixNQUFNLGtCQUFrQixJQUM1QyxDQUFDLElBQ0QsQ0FBQyxZQUFZLDZCQUF5QixvREFBd0IsNENBQWlCLFFBQVEsQ0FBQztBQUM1RixRQUFNLFdBQVcsVUFBVSxVQUFhLE1BQU0sU0FBUztBQUV2RCxZQUFNLDBCQUFhO0FBQUEsSUFDakIsT0FBRywyQ0FBbUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUFBLElBQzFDLFVBQVUsWUFBWTtBQUFBLElBQ3RCO0FBQUEsSUFDQSxHQUFHLFdBQVcsQ0FBQyxpQ0FBaUMsSUFBSSxDQUFDO0FBQUEsSUFDckQsR0FBRztBQUFBLElBQ0gsR0FBRztBQUFBLElBQ0gsRUFBRSxrQkFBa0IsV0FBVyxRQUFRLENBQUMsNEJBQVUsYUFBYSxFQUFFO0FBQUEsRUFDbkUsQ0FBQztBQUNIO0FBUU8sU0FBUyxvQkFBdUQ7QUFDckUsU0FBTyxLQUFLLFVBQU0saUNBQWEsb0RBQXdCLDRDQUFpQixRQUFRLEdBQUcsT0FBTyxDQUFDO0FBQzdGO0FBT0EsZUFBc0Isb0JBQXNDO0FBQzFELE1BQUksMkJBQTJCLEtBQUssQ0FBQyxpQkFBYSwrQkFBVyxxQ0FBd0IsRUFBRSxNQUFNLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRztBQUMxRyxXQUFPO0FBQUEsRUFDVDtBQUVBLE1BQUksS0FBQywrQkFBVyxxQ0FBd0IsRUFBRSxNQUFNLDRCQUFVLFlBQVksQ0FBQyxDQUFDLEdBQUc7QUFDekUsV0FBTztBQUFBLEVBQ1Q7QUFFQSxRQUFNLGNBQWMsVUFBTSw0QkFBZ0I7QUFDMUMsU0FBTyxPQUFPLE9BQU8sYUFBYSxVQUFVO0FBQzlDOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -0,0 +1,56 @@
1
+ /// <reference path="../library-references.d.cts" />
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>;
@@ -61,6 +61,7 @@ __export(index_exports, {
61
61
  "released-issues": () => released_issues,
62
62
  "repo-paths": () => repo_paths,
63
63
  root: () => root,
64
+ "shared-config-files": () => shared_config_files,
64
65
  "test-runners": () => test_runners,
65
66
  "validate-declarations": () => validate_declarations,
66
67
  version: () => version
@@ -94,6 +95,7 @@ var package_manager = __toESM(((module) => module && module.__esModule && 'defau
94
95
  var released_issues = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./released-issues.cjs')), 1);
95
96
  var repo_paths = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./repo-paths.cjs')), 1);
96
97
  var root = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./root.cjs')), 1);
98
+ var shared_config_files = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./shared-config-files.cjs')), 1);
97
99
  var test_runners = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./test-runners/index.cjs')), 1);
98
100
  var validate_declarations = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./validate-declarations.cjs')), 1);
99
101
  var version = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./version.cjs')), 1);
@@ -127,8 +129,9 @@ var version = __toESM(((module) => module && module.__esModule && 'default' in m
127
129
  "released-issues": null,
128
130
  "repo-paths": null,
129
131
  root,
132
+ "shared-config-files": null,
130
133
  "test-runners": null,
131
134
  "validate-declarations": null,
132
135
  version
133
136
  });
134
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgJ2J1aWxkJyBmcm9tICcuL2J1aWxkLnRzJztcbmV4cG9ydCAqIGFzICdidW5kbGVycycgZnJvbSAnLi9idW5kbGVycy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnY2hlY2stcHJvamVjdC10eXBlcycgZnJvbSAnLi9jaGVjay1wcm9qZWN0LXR5cGVzLnRzJztcbmV4cG9ydCAqIGFzICdjbGktdXRpbHMnIGZyb20gJy4vY2xpLXV0aWxzLnRzJztcbmV4cG9ydCAqIGFzICdjb2RlLWdlbmVyYXRvcicgZnJvbSAnLi9jb2RlLWdlbmVyYXRvci50cyc7XG5leHBvcnQgKiBhcyAnY29tbWl0bGludC1jb25maWcnIGZyb20gJy4vY29tbWl0bGludC1jb25maWcudHMnO1xuZXhwb3J0ICogYXMgJ2NvbW1pdGxpbnQtZm9yYmlkZGVuLXBhdHRlcm5zJyBmcm9tICcuL2NvbW1pdGxpbnQtZm9yYmlkZGVuLXBhdHRlcm5zLnRzJztcbmV4cG9ydCAqIGFzICdjb21taXRsaW50LXNwZWxsY2hlY2staGVhZGVyJyBmcm9tICcuL2NvbW1pdGxpbnQtc3BlbGxjaGVjay1oZWFkZXIudHMnO1xuZXhwb3J0ICogYXMgJ2RvY3Mtc2l0ZScgZnJvbSAnLi9kb2NzLXNpdGUvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2Vudi10b2dnbGUnIGZyb20gJy4vZW52LXRvZ2dsZS50cyc7XG5leHBvcnQgKiBhcyAnZXhlYycgZnJvbSAnLi9leGVjLnRzJztcbmV4cG9ydCAqIGFzICdmb3JiaWRkZW4tcGF0dGVybnMnIGZyb20gJy4vZm9yYmlkZGVuLXBhdHRlcm5zLnRzJztcbmV4cG9ydCAqIGFzICdmb3JtYXR0ZXJzJyBmcm9tICcuL2Zvcm1hdHRlcnMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2ZzJyBmcm9tICcuL2ZzLnRzJztcbmV4cG9ydCAqIGFzICdnYXRlJyBmcm9tICcuL2dhdGUudHMnO1xuZXhwb3J0ICogYXMgJ2dpdCcgZnJvbSAnLi9naXQudHMnO1xuZXhwb3J0ICogYXMgJ2pzb24nIGZyb20gJy4vanNvbi50cyc7XG5leHBvcnQgKiBhcyAnbGlicmFyeS1idWlsZCcgZnJvbSAnLi9saWJyYXJ5LWJ1aWxkLnRzJztcbmV4cG9ydCAqIGFzICdsaW50ZXJzJyBmcm9tICcuL2xpbnRlcnMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ25hbm8tc3RhZ2VkLWNvbmZpZycgZnJvbSAnLi9uYW5vLXN0YWdlZC1jb25maWcudHMnO1xuZXhwb3J0ICogYXMgJ25wbS1wdWJsaXNoJyBmcm9tICcuL25wbS1wdWJsaXNoLnRzJztcbmV4cG9ydCAqIGFzICducG0tcnVuJyBmcm9tICcuL25wbS1ydW4udHMnO1xuZXhwb3J0ICogYXMgJ25wbScgZnJvbSAnLi9ucG0udHMnO1xuZXhwb3J0ICogYXMgJ3BhY2thZ2UtbG9jay1pbnRlZ3JpdHknIGZyb20gJy4vcGFja2FnZS1sb2NrLWludGVncml0eS50cyc7XG5leHBvcnQgKiBhcyAncGFja2FnZS1tYW5hZ2VyJyBmcm9tICcuL3BhY2thZ2UtbWFuYWdlci50cyc7XG5leHBvcnQgKiBhcyAncmVsZWFzZWQtaXNzdWVzJyBmcm9tICcuL3JlbGVhc2VkLWlzc3Vlcy50cyc7XG5leHBvcnQgKiBhcyAncmVwby1wYXRocycgZnJvbSAnLi9yZXBvLXBhdGhzLnRzJztcbmV4cG9ydCAqIGFzICdyb290JyBmcm9tICcuL3Jvb3QudHMnO1xuZXhwb3J0ICogYXMgJ3Rlc3QtcnVubmVycycgZnJvbSAnLi90ZXN0LXJ1bm5lcnMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ3ZhbGlkYXRlLWRlY2xhcmF0aW9ucycgZnJvbSAnLi92YWxpZGF0ZS1kZWNsYXJhdGlvbnMudHMnO1xuZXhwb3J0ICogYXMgJ3ZlcnNpb24nIGZyb20gJy4vdmVyc2lvbi50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLCtCQUFBQTtBQUFBLEVBQUEsbUJBQUFDO0FBQUEsRUFBQSx3QkFBQUM7QUFBQSxFQUFBLDJCQUFBQztBQUFBLEVBQUEsdUNBQUFDO0FBQUEsRUFBQSxzQ0FBQUM7QUFBQSxFQUFBLG1CQUFBQztBQUFBLEVBQUEsb0JBQUFDO0FBQUEsRUFBQTtBQUFBLDhCQUFBQztBQUFBLEVBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHlCQUFBQztBQUFBLEVBQUE7QUFBQSw4QkFBQUM7QUFBQSxFQUFBO0FBQUEsdUJBQUFDO0FBQUEsRUFBQSxpQkFBQUM7QUFBQSxFQUFBLGdDQUFBQztBQUFBLEVBQUEseUJBQUFDO0FBQUEsRUFBQSx5QkFBQUM7QUFBQSxFQUFBLG9CQUFBQztBQUFBLEVBQUE7QUFBQSx3QkFBQUM7QUFBQSxFQUFBLCtCQUFBQztBQUFBLEVBQUE7QUFBQTtBQUFBO0FBRUEsWUFBeUI7QUFDekIsZUFBNEI7QUFDNUIsSUFBQWxCLHNCQUF1QztBQUN2QyxJQUFBQyxZQUE2QjtBQUM3QixJQUFBQyxpQkFBa0M7QUFDbEMsSUFBQUMsb0JBQXFDO0FBQ3JDLElBQUFDLGdDQUFpRDtBQUNqRCxJQUFBQywrQkFBZ0Q7QUFDaEQsSUFBQUMsWUFBNkI7QUFDN0IsSUFBQUMsYUFBOEI7QUFDOUIsV0FBd0I7QUFDeEIsSUFBQUMscUJBQXNDO0FBQ3RDLGlCQUE4QjtBQUM5QixTQUFzQjtBQUN0QixXQUF3QjtBQUN4QixVQUF1QjtBQUN2QixXQUF3QjtBQUN4QixJQUFBQyxnQkFBaUM7QUFDakMsY0FBMkI7QUFDM0IsSUFBQUMscUJBQXNDO0FBQ3RDLElBQUFDLGNBQStCO0FBQy9CLElBQUFDLFVBQTJCO0FBQzNCLFVBQXVCO0FBQ3ZCLElBQUFDLHlCQUEwQztBQUMxQyxJQUFBQyxrQkFBbUM7QUFDbkMsSUFBQUMsa0JBQW1DO0FBQ25DLElBQUFDLGFBQThCO0FBQzlCLFdBQXdCO0FBQ3hCLElBQUFDLGVBQWdDO0FBQ2hDLElBQUFDLHdCQUF5QztBQUN6QyxjQUEyQjsiLAogICJuYW1lcyI6IFsiY2hlY2stcHJvamVjdC10eXBlcyIsICJjbGktdXRpbHMiLCAiY29kZS1nZW5lcmF0b3IiLCAiY29tbWl0bGludC1jb25maWciLCAiY29tbWl0bGludC1mb3JiaWRkZW4tcGF0dGVybnMiLCAiY29tbWl0bGludC1zcGVsbGNoZWNrLWhlYWRlciIsICJkb2NzLXNpdGUiLCAiZW52LXRvZ2dsZSIsICJmb3JiaWRkZW4tcGF0dGVybnMiLCAibGlicmFyeS1idWlsZCIsICJuYW5vLXN0YWdlZC1jb25maWciLCAibnBtLXB1Ymxpc2giLCAibnBtLXJ1biIsICJwYWNrYWdlLWxvY2staW50ZWdyaXR5IiwgInBhY2thZ2UtbWFuYWdlciIsICJyZWxlYXNlZC1pc3N1ZXMiLCAicmVwby1wYXRocyIsICJ0ZXN0LXJ1bm5lcnMiLCAidmFsaWRhdGUtZGVjbGFyYXRpb25zIl0KfQo=
137
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgJ2J1aWxkJyBmcm9tICcuL2J1aWxkLnRzJztcbmV4cG9ydCAqIGFzICdidW5kbGVycycgZnJvbSAnLi9idW5kbGVycy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnY2hlY2stcHJvamVjdC10eXBlcycgZnJvbSAnLi9jaGVjay1wcm9qZWN0LXR5cGVzLnRzJztcbmV4cG9ydCAqIGFzICdjbGktdXRpbHMnIGZyb20gJy4vY2xpLXV0aWxzLnRzJztcbmV4cG9ydCAqIGFzICdjb2RlLWdlbmVyYXRvcicgZnJvbSAnLi9jb2RlLWdlbmVyYXRvci50cyc7XG5leHBvcnQgKiBhcyAnY29tbWl0bGludC1jb25maWcnIGZyb20gJy4vY29tbWl0bGludC1jb25maWcudHMnO1xuZXhwb3J0ICogYXMgJ2NvbW1pdGxpbnQtZm9yYmlkZGVuLXBhdHRlcm5zJyBmcm9tICcuL2NvbW1pdGxpbnQtZm9yYmlkZGVuLXBhdHRlcm5zLnRzJztcbmV4cG9ydCAqIGFzICdjb21taXRsaW50LXNwZWxsY2hlY2staGVhZGVyJyBmcm9tICcuL2NvbW1pdGxpbnQtc3BlbGxjaGVjay1oZWFkZXIudHMnO1xuZXhwb3J0ICogYXMgJ2RvY3Mtc2l0ZScgZnJvbSAnLi9kb2NzLXNpdGUvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2Vudi10b2dnbGUnIGZyb20gJy4vZW52LXRvZ2dsZS50cyc7XG5leHBvcnQgKiBhcyAnZXhlYycgZnJvbSAnLi9leGVjLnRzJztcbmV4cG9ydCAqIGFzICdmb3JiaWRkZW4tcGF0dGVybnMnIGZyb20gJy4vZm9yYmlkZGVuLXBhdHRlcm5zLnRzJztcbmV4cG9ydCAqIGFzICdmb3JtYXR0ZXJzJyBmcm9tICcuL2Zvcm1hdHRlcnMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2ZzJyBmcm9tICcuL2ZzLnRzJztcbmV4cG9ydCAqIGFzICdnYXRlJyBmcm9tICcuL2dhdGUudHMnO1xuZXhwb3J0ICogYXMgJ2dpdCcgZnJvbSAnLi9naXQudHMnO1xuZXhwb3J0ICogYXMgJ2pzb24nIGZyb20gJy4vanNvbi50cyc7XG5leHBvcnQgKiBhcyAnbGlicmFyeS1idWlsZCcgZnJvbSAnLi9saWJyYXJ5LWJ1aWxkLnRzJztcbmV4cG9ydCAqIGFzICdsaW50ZXJzJyBmcm9tICcuL2xpbnRlcnMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ25hbm8tc3RhZ2VkLWNvbmZpZycgZnJvbSAnLi9uYW5vLXN0YWdlZC1jb25maWcudHMnO1xuZXhwb3J0ICogYXMgJ25wbS1wdWJsaXNoJyBmcm9tICcuL25wbS1wdWJsaXNoLnRzJztcbmV4cG9ydCAqIGFzICducG0tcnVuJyBmcm9tICcuL25wbS1ydW4udHMnO1xuZXhwb3J0ICogYXMgJ25wbScgZnJvbSAnLi9ucG0udHMnO1xuZXhwb3J0ICogYXMgJ3BhY2thZ2UtbG9jay1pbnRlZ3JpdHknIGZyb20gJy4vcGFja2FnZS1sb2NrLWludGVncml0eS50cyc7XG5leHBvcnQgKiBhcyAncGFja2FnZS1tYW5hZ2VyJyBmcm9tICcuL3BhY2thZ2UtbWFuYWdlci50cyc7XG5leHBvcnQgKiBhcyAncmVsZWFzZWQtaXNzdWVzJyBmcm9tICcuL3JlbGVhc2VkLWlzc3Vlcy50cyc7XG5leHBvcnQgKiBhcyAncmVwby1wYXRocycgZnJvbSAnLi9yZXBvLXBhdGhzLnRzJztcbmV4cG9ydCAqIGFzICdyb290JyBmcm9tICcuL3Jvb3QudHMnO1xuZXhwb3J0ICogYXMgJ3NoYXJlZC1jb25maWctZmlsZXMnIGZyb20gJy4vc2hhcmVkLWNvbmZpZy1maWxlcy50cyc7XG5leHBvcnQgKiBhcyAndGVzdC1ydW5uZXJzJyBmcm9tICcuL3Rlc3QtcnVubmVycy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAndmFsaWRhdGUtZGVjbGFyYXRpb25zJyBmcm9tICcuL3ZhbGlkYXRlLWRlY2xhcmF0aW9ucy50cyc7XG5leHBvcnQgKiBhcyAndmVyc2lvbicgZnJvbSAnLi92ZXJzaW9uLnRzJztcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsK0JBQUFBO0FBQUEsRUFBQSxtQkFBQUM7QUFBQSxFQUFBLHdCQUFBQztBQUFBLEVBQUEsMkJBQUFDO0FBQUEsRUFBQSx1Q0FBQUM7QUFBQSxFQUFBLHNDQUFBQztBQUFBLEVBQUEsbUJBQUFDO0FBQUEsRUFBQSxvQkFBQUM7QUFBQSxFQUFBO0FBQUEsOEJBQUFDO0FBQUEsRUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEseUJBQUFDO0FBQUEsRUFBQTtBQUFBLDhCQUFBQztBQUFBLEVBQUE7QUFBQSx1QkFBQUM7QUFBQSxFQUFBLGlCQUFBQztBQUFBLEVBQUEsZ0NBQUFDO0FBQUEsRUFBQSx5QkFBQUM7QUFBQSxFQUFBLHlCQUFBQztBQUFBLEVBQUEsb0JBQUFDO0FBQUEsRUFBQTtBQUFBLCtCQUFBQztBQUFBLEVBQUEsc0JBQUFDO0FBQUEsRUFBQSwrQkFBQUM7QUFBQSxFQUFBO0FBQUE7QUFBQTtBQUVBLFlBQXlCO0FBQ3pCLGVBQTRCO0FBQzVCLElBQUFuQixzQkFBdUM7QUFDdkMsSUFBQUMsWUFBNkI7QUFDN0IsSUFBQUMsaUJBQWtDO0FBQ2xDLElBQUFDLG9CQUFxQztBQUNyQyxJQUFBQyxnQ0FBaUQ7QUFDakQsSUFBQUMsK0JBQWdEO0FBQ2hELElBQUFDLFlBQTZCO0FBQzdCLElBQUFDLGFBQThCO0FBQzlCLFdBQXdCO0FBQ3hCLElBQUFDLHFCQUFzQztBQUN0QyxpQkFBOEI7QUFDOUIsU0FBc0I7QUFDdEIsV0FBd0I7QUFDeEIsVUFBdUI7QUFDdkIsV0FBd0I7QUFDeEIsSUFBQUMsZ0JBQWlDO0FBQ2pDLGNBQTJCO0FBQzNCLElBQUFDLHFCQUFzQztBQUN0QyxJQUFBQyxjQUErQjtBQUMvQixJQUFBQyxVQUEyQjtBQUMzQixVQUF1QjtBQUN2QixJQUFBQyx5QkFBMEM7QUFDMUMsSUFBQUMsa0JBQW1DO0FBQ25DLElBQUFDLGtCQUFtQztBQUNuQyxJQUFBQyxhQUE4QjtBQUM5QixXQUF3QjtBQUN4QixJQUFBQyxzQkFBdUM7QUFDdkMsSUFBQUMsZUFBZ0M7QUFDaEMsSUFBQUMsd0JBQXlDO0FBQ3pDLGNBQTJCOyIsCiAgIm5hbWVzIjogWyJjaGVjay1wcm9qZWN0LXR5cGVzIiwgImNsaS11dGlscyIsICJjb2RlLWdlbmVyYXRvciIsICJjb21taXRsaW50LWNvbmZpZyIsICJjb21taXRsaW50LWZvcmJpZGRlbi1wYXR0ZXJucyIsICJjb21taXRsaW50LXNwZWxsY2hlY2staGVhZGVyIiwgImRvY3Mtc2l0ZSIsICJlbnYtdG9nZ2xlIiwgImZvcmJpZGRlbi1wYXR0ZXJucyIsICJsaWJyYXJ5LWJ1aWxkIiwgIm5hbm8tc3RhZ2VkLWNvbmZpZyIsICJucG0tcHVibGlzaCIsICJucG0tcnVuIiwgInBhY2thZ2UtbG9jay1pbnRlZ3JpdHkiLCAicGFja2FnZS1tYW5hZ2VyIiwgInJlbGVhc2VkLWlzc3VlcyIsICJyZXBvLXBhdGhzIiwgInNoYXJlZC1jb25maWctZmlsZXMiLCAidGVzdC1ydW5uZXJzIiwgInZhbGlkYXRlLWRlY2xhcmF0aW9ucyJdCn0K
@@ -31,6 +31,7 @@ export * as 'package-manager' from './package-manager.cjs';
31
31
  export * as 'released-issues' from './released-issues.cjs';
32
32
  export * as 'repo-paths' from './repo-paths.cjs';
33
33
  export * as 'root' from './root.cjs';
34
+ export * as 'shared-config-files' from './shared-config-files.cjs';
34
35
  export * as 'test-runners' from './test-runners/index.cjs';
35
36
  export * as 'validate-declarations' from './validate-declarations.cjs';
36
37
  export * as 'version' from './version.cjs';
@@ -0,0 +1,52 @@
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
+ "use strict";
7
+ var __defProp = Object.defineProperty;
8
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
9
+ var __getOwnPropNames = Object.getOwnPropertyNames;
10
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
11
+ var __export = (target, all) => {
12
+ for (var name in all)
13
+ __defProp(target, name, { get: all[name], enumerable: true });
14
+ };
15
+ var __copyProps = (to, from, except, desc) => {
16
+ if (from && typeof from === "object" || typeof from === "function") {
17
+ for (let key of __getOwnPropNames(from))
18
+ if (!__hasOwnProp.call(to, key) && key !== except)
19
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
20
+ }
21
+ return to;
22
+ };
23
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
24
+ var auto_exports = {};
25
+ __export(auto_exports, {
26
+ detectLinter: () => detectLinter,
27
+ lint: () => lint
28
+ });
29
+ module.exports = __toCommonJS(auto_exports);
30
+ var import_biome = require('../formatters/biome.cjs');
31
+ var import_biome2 = require('./biome.cjs');
32
+ var import_eslint = require('./eslint.cjs');
33
+ const LINTERS = {
34
+ biome: import_biome2.lint,
35
+ eslint: import_eslint.lint
36
+ };
37
+ function detectLinter() {
38
+ if ((0, import_eslint.hasEslintConfig)()) {
39
+ return "eslint";
40
+ }
41
+ return (0, import_biome.hasBiomeConfig)() ? "biome" : "eslint";
42
+ }
43
+ async function lint(options) {
44
+ const { linter = detectLinter(), ...lintOptions } = options ?? {};
45
+ await LINTERS[linter](lintOptions);
46
+ }
47
+ // Annotate the CommonJS export names for ESM import in node:
48
+ 0 && (module.exports = {
49
+ detectLinter,
50
+ lint
51
+ });
52
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2xpbnRlcnMvYXV0by50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIExpbnRzIHRoZSBwcm9qZWN0IHdpdGggd2hpY2hldmVyIGxpbnRlciB0aGUgcHJvamVjdCBjb25maWd1cmVzOiBFU0xpbnQgb3IgQmlvbWUuXG4gKi9cblxuaW1wb3J0IHsgaGFzQmlvbWVDb25maWcgfSBmcm9tICcuLi9mb3JtYXR0ZXJzL2Jpb21lLnRzJztcbmltcG9ydCB7IGxpbnQgYXMgbGludFdpdGhCaW9tZSB9IGZyb20gJy4vYmlvbWUudHMnO1xuaW1wb3J0IHtcbiAgaGFzRXNsaW50Q29uZmlnLFxuICBsaW50IGFzIGxpbnRXaXRoRXNsaW50XG59IGZyb20gJy4vZXNsaW50LnRzJztcblxuLyoqXG4gKiBBIGxpbnRlciB0aGUgdG9vbGtpdCBydW5zLlxuICovXG5leHBvcnQgdHlwZSBMaW50ZXIgPSAnYmlvbWUnIHwgJ2VzbGludCc7XG5cbmNvbnN0IExJTlRFUlM6IFJlYWRvbmx5PFJlY29yZDxMaW50ZXIsIChvcHRpb25zOiBMaW50T3B0aW9ucykgPT4gUHJvbWlzZTx2b2lkPj4+ID0ge1xuICBiaW9tZTogbGludFdpdGhCaW9tZSxcbiAgZXNsaW50OiBsaW50V2l0aEVzbGludFxufTtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB0aGUge0BsaW5rIGxpbnR9IGZ1bmN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExpbnRPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBjb25maWd1cmF0aW9uIGZpbGUgdXNlZCB3aGVuIHRoZSBwcm9qZWN0IGhhcyBub25lIG9mIGl0cyBvd24sIGFzIHRoZSBjaG9zZW4gbGludGVyJ3Mgb3duIGBsaW50YCB0YWtlcyBpdC5cbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRDb25maWdGaWxlUGF0aD86IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIGxpbnRlciB0byBydW4uIE9taXR0ZWQsIHtAbGluayBkZXRlY3RMaW50ZXJ9IGNob29zZXMgaXQuXG4gICAqL1xuICByZWFkb25seSBsaW50ZXI/OiBMaW50ZXIgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGZpbGUgcGF0aHMgdG8gbGludC4gSWYgb21pdHRlZCwgbGludHMgdGhlIGVudGlyZSBwcm9qZWN0LlxuICAgKi9cbiAgcmVhZG9ubHkgcGF0aHM/OiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogV2hldGhlciB0byBmaXggbGludGluZyBpc3N1ZXMgYXV0b21hdGljYWxseS5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkRml4PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBDaG9vc2VzIHRoZSBsaW50ZXIgZnJvbSB0aGUgY29uZmlndXJhdGlvbiBmaWxlcyBhdCB0aGUgcHJvamVjdCByb290LlxuICpcbiAqIEFuIGBlc2xpbnQuY29uZmlnLipgIGZpbGUgd2lucywgc28gYSBwcm9qZWN0IHRoYXQgZm9ybWF0cyB3aXRoIEJpb21lIGFuZCBsaW50cyB3aXRoIEVTTGludCBnZXRzIEVTTGludC4gT3RoZXJ3aXNlIGFcbiAqIGBiaW9tZS5qc29uYCAvIGBiaW9tZS5qc29uY2AgcGlja3MgQmlvbWUsIGFuZCBhIHByb2plY3Qgd2l0aCBuZWl0aGVyIGdldHMgRVNMaW50LCBhcyBiZWZvcmUgQmlvbWUgd2FzIHN1cHBvcnRlZC5cbiAqXG4gKiBAcmV0dXJucyBUaGUgbGludGVyIHRvIHJ1bi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRldGVjdExpbnRlcigpOiBMaW50ZXIge1xuICBpZiAoaGFzRXNsaW50Q29uZmlnKCkpIHtcbiAgICByZXR1cm4gJ2VzbGludCc7XG4gIH1cblxuICByZXR1cm4gaGFzQmlvbWVDb25maWcoKSA/ICdiaW9tZScgOiAnZXNsaW50Jztcbn1cblxuLyoqXG4gKiBMaW50cyB0aGUgcHJvamVjdCB3aXRoIGl0cyBsaW50ZXIuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUge0BsaW5rIExpbnRPcHRpb25zfS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgcHJvamVjdCBsaW50cyBjbGVhbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxpbnQob3B0aW9ucz86IExpbnRPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHsgbGludGVyID0gZGV0ZWN0TGludGVyKCksIC4uLmxpbnRPcHRpb25zIH0gPSBvcHRpb25zID8/IHt9O1xuICBhd2FpdCBMSU5URVJTW2xpbnRlcl0obGludE9wdGlvbnMpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQSxtQkFBK0I7QUFDL0IsSUFBQUEsZ0JBQXNDO0FBQ3RDLG9CQUdPO0FBT1AsTUFBTSxVQUE2RTtBQUFBLEVBQ2pGLE9BQU8sY0FBQUM7QUFBQSxFQUNQLFFBQVEsY0FBQUM7QUFDVjtBQXFDTyxTQUFTLGVBQXVCO0FBQ3JDLFVBQUksK0JBQWdCLEdBQUc7QUFDckIsV0FBTztBQUFBLEVBQ1Q7QUFFQSxhQUFPLDZCQUFlLElBQUksVUFBVTtBQUN0QztBQVFBLGVBQXNCLEtBQUssU0FBc0M7QUFDL0QsUUFBTSxFQUFFLFNBQVMsYUFBYSxHQUFHLEdBQUcsWUFBWSxJQUFJLFdBQVcsQ0FBQztBQUNoRSxRQUFNLFFBQVEsTUFBTSxFQUFFLFdBQVc7QUFDbkM7IiwKICAibmFtZXMiOiBbImltcG9ydF9iaW9tZSIsICJsaW50V2l0aEJpb21lIiwgImxpbnRXaXRoRXNsaW50Il0KfQo=
@@ -0,0 +1,49 @@
1
+ /// <reference path="../library-references.d.cts" />
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>;