@deltabox/toolchain 2.4.0 → 2.6.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 (104) hide show
  1. package/CHANGELOG.md +106 -4
  2. package/dist/biome.d.ts +2 -2
  3. package/dist/biome.js +1 -1
  4. package/dist/cli/commands/sync.js +1 -1
  5. package/dist/cli/commands/watch.js +1 -1
  6. package/dist/cli/index.js +1 -1
  7. package/dist/cli/register.js +1 -1
  8. package/dist/cli/tooling-commands.js +1 -0
  9. package/dist/config.d.ts +2 -1
  10. package/dist/config.js +1 -1
  11. package/dist/core.d.ts +3 -3
  12. package/dist/core.js +1 -1
  13. package/dist/index.d.ts +10 -7
  14. package/dist/index.js +1 -1
  15. package/dist/package.js +1 -1
  16. package/dist/packages/biome/src/index.d.ts +142 -7
  17. package/dist/packages/biome/src/index.js +1 -1
  18. package/dist/packages/changelog/src/workflows.d.ts +19 -5
  19. package/dist/packages/changelog/src/workflows.js +5 -4
  20. package/dist/packages/config/src/generators/commands.d.ts +22 -0
  21. package/dist/packages/config/src/generators/commands.js +2 -0
  22. package/dist/packages/config/src/generators/index.d.ts +2 -1
  23. package/dist/packages/config/src/generators/index.js +1 -1
  24. package/dist/packages/config/src/generators/types.js +1 -1
  25. package/dist/packages/config/src/index.d.ts +3 -2
  26. package/dist/packages/config/src/index.js +1 -1
  27. package/dist/packages/config/src/schema.js +1 -1
  28. package/dist/packages/core/src/editor-config.js +1 -1
  29. package/dist/packages/core/src/index.d.ts +4 -4
  30. package/dist/packages/core/src/index.js +1 -1
  31. package/dist/packages/core/src/loader.js +1 -1
  32. package/dist/packages/core/src/sync.d.ts +6 -0
  33. package/dist/packages/core/src/sync.js +1 -1
  34. package/dist/packages/core/src/watch.d.ts +41 -0
  35. package/dist/packages/core/src/watch.js +1 -1
  36. package/dist/packages/migrate/src/oxlint-map.d.ts +34 -1
  37. package/dist/packages/migrate/src/oxlint-map.js +1 -1
  38. package/dist/packages/project/src/cli/index.js +1 -1
  39. package/dist/packages/project/src/index.d.ts +3 -3
  40. package/dist/packages/project/src/index.js +1 -1
  41. package/dist/packages/project/src/sync.js +1 -1
  42. package/dist/packages/project/src/typescript.d.ts +12 -4
  43. package/dist/packages/project/src/typescript.js +12 -11
  44. package/dist/packages/shared/src/config-schema/alias-rewrite.d.ts +32 -0
  45. package/dist/packages/shared/src/config-schema/biome.js +1 -1
  46. package/dist/packages/shared/src/config-schema/changelog.d.ts +293 -288
  47. package/dist/packages/shared/src/config-schema/ci.d.ts +888 -864
  48. package/dist/packages/shared/src/config-schema/format.d.ts +4 -6
  49. package/dist/packages/shared/src/config-schema/format.js +1 -1
  50. package/dist/packages/shared/src/config-schema/generated/gitlab-ci.d.ts +1 -1
  51. package/dist/packages/shared/src/config-schema/generated/oxfmt-config.d.ts +1 -1
  52. package/dist/packages/shared/src/config-schema/index.d.ts +2739 -2602
  53. package/dist/packages/shared/src/config-schema/json.d.ts +1 -1
  54. package/dist/packages/shared/src/config-schema/tsconfig.d.ts +21 -0
  55. package/dist/packages/shared/src/config-schema/tsconfig.js +1 -1
  56. package/dist/packages/shared/src/config-schema/vendor-types.d.ts +156 -0
  57. package/dist/packages/shared/src/config-schema/workflow.d.ts +1741 -1704
  58. package/dist/packages/shared/src/config-schema/workflow.js +1 -1
  59. package/dist/packages/shared/src/config-types.d.ts +102 -28
  60. package/dist/packages/shared/src/ignore.d.ts +5 -5
  61. package/dist/packages/shared/src/ignore.js +1 -1
  62. package/dist/packages/shared/src/index.d.ts +8 -5
  63. package/dist/packages/shared/src/index.js +1 -1
  64. package/dist/packages/shared/src/template.d.ts +1 -1
  65. package/dist/packages/shared/src/toolchain.d.ts +12 -3
  66. package/dist/packages/shared/src/toolchain.js +1 -1
  67. package/dist/packages/shared/src/tsconfig-files.d.ts +14 -0
  68. package/dist/packages/shared/src/tsconfig-files.js +1 -0
  69. package/dist/packages/shared/src/types.d.ts +4 -2
  70. package/dist/packages/shared/src/vite-defaults.d.ts +71 -4
  71. package/dist/packages/shared/src/vite-defaults.js +1 -1
  72. package/dist/packages/shared/src/yaml.d.ts +1 -1
  73. package/dist/packages/tsconfig/src/auto.d.ts +11 -0
  74. package/dist/packages/tsconfig/src/auto.js +1 -0
  75. package/dist/packages/tsconfig/src/cli/generate/index.d.ts +58 -0
  76. package/dist/packages/tsconfig/src/cli/generate/index.js +1 -1
  77. package/dist/packages/tsconfig/src/cli/generate/utils.d.ts +12 -0
  78. package/dist/packages/tsconfig/src/cli/generate/utils.js +1 -1
  79. package/dist/packages/tsconfig/src/cli/index.js +1 -1
  80. package/dist/packages/tsconfig/src/files.d.ts +5 -0
  81. package/dist/packages/tsconfig/src/files.js +1 -0
  82. package/dist/packages/tsconfig/src/index.d.ts +6 -5
  83. package/dist/packages/tsconfig/src/index.js +1 -1
  84. package/dist/packages/tsconfig/src/overrides.d.ts +3 -3
  85. package/dist/packages/tsconfig/src/resolve.d.ts +15 -3
  86. package/dist/packages/tsconfig/src/resolve.js +1 -1
  87. package/dist/packages/tsconfig/src/sync.d.ts +5 -11
  88. package/dist/packages/tsconfig/src/sync.js +1 -1
  89. package/dist/packages/tsconfig/src/templates.d.ts +38 -4
  90. package/dist/packages/tsconfig/src/workspaces.d.ts +36 -0
  91. package/dist/packages/tsconfig/src/workspaces.js +1 -0
  92. package/dist/packages/tsdown/src/config/node.js +1 -1
  93. package/dist/packages/vite/src/commands.js +1 -1
  94. package/dist/project.d.ts +2 -2
  95. package/dist/project.js +1 -1
  96. package/dist/shared.d.ts +7 -4
  97. package/dist/shared.js +1 -1
  98. package/dist/sync.d.ts +2 -0
  99. package/dist/sync.js +1 -1
  100. package/dist/tooling.d.ts +18 -1
  101. package/dist/tooling.js +1 -1
  102. package/dist/tsconfig.d.ts +5 -4
  103. package/dist/tsconfig.js +1 -1
  104. package/package.json +15 -14
@@ -4,7 +4,7 @@ import { z } from "zod";
4
4
  //#region packages/shared/src/config-schema/json.d.ts
5
5
  /** A JSON value, recursively. */
6
6
  type JsonValue = string | number | boolean | null | JsonValue[] | {
7
- [key: string]: JsonValue;
7
+ [key: string & {}]: JsonValue;
8
8
  };
9
9
  /**
10
10
  * Any JSON value (string, number, boolean, null, array or object), recursively.
@@ -11,6 +11,27 @@ export declare const tsconfigConfigSchema: z.ZodObject<{
11
11
  refs: z.ZodOptional<z.ZodBoolean>;
12
12
  composite: z.ZodOptional<z.ZodBoolean>;
13
13
  aliases: z.ZodOptional<z.ZodBoolean>;
14
+ auto: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
15
+ include: z.ZodOptional<z.ZodArray<z.ZodString>>;
16
+ exclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
17
+ rewriteAlias: z.ZodOptional<z.ZodUnion<readonly [z.ZodRecord<z.ZodString, z.ZodString>, z.ZodArray<z.ZodObject<{
18
+ pattern: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
19
+ replacement: z.ZodString;
20
+ }, z.core.$strip>>]>>;
21
+ }, z.core.$strip>]>>;
22
+ aliasAuto: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
23
+ include: z.ZodOptional<z.ZodArray<z.ZodString>>;
24
+ exclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
25
+ rewriteAlias: z.ZodOptional<z.ZodUnion<readonly [z.ZodRecord<z.ZodString, z.ZodString>, z.ZodArray<z.ZodObject<{
26
+ pattern: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
27
+ replacement: z.ZodString;
28
+ }, z.core.$strip>>]>>;
29
+ }, z.core.$strip>]>>;
30
+ refsAuto: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
31
+ include: z.ZodOptional<z.ZodArray<z.ZodString>>;
32
+ exclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
33
+ }, z.core.$strip>]>>;
34
+ autoSrcDir: z.ZodOptional<z.ZodString>;
14
35
  indent: z.ZodOptional<z.ZodNumber>;
15
36
  rootFile: z.ZodOptional<z.ZodString>;
16
37
  defaultFile: z.ZodOptional<z.ZodString>;
@@ -1 +1 @@
1
- import"node:path";import"node:url";import.meta.url;import{externalConfigSchema as e}from"./external.js";import{withEnabled as t}from"./meta.js";import{z as n}from"zod";const r=t=>e(t,`TsConfigJson`),i=t(n.object({glob:n.union([n.string(),n.array(n.string())]).describe("Glob(s) for the workspace default tsconfig files. Defaults to matching every `defaultFile` recursively.").optional(),exclude:n.union([n.string(),n.array(n.string())]).describe("Glob(s) to exclude from `glob`. Defaults to the common ignored paths (`node_modules`, `.dbx`, `dist`, `build`, ...).").optional(),gitignore:n.boolean().describe("Also respect `.gitignore` files (root + nested) when matching `glob` (default true).").optional(),refs:n.boolean().describe(`Wire project references (default false).`).optional(),composite:n.boolean().describe("Emit `composite: true` (default false).").optional(),aliases:n.boolean().describe(`Inject path aliases (default true).`).optional(),indent:n.number().describe(`JSON indentation (default 4).`).optional(),rootFile:n.string().describe("The workspaces tsconfig file name that holds `paths` + `references` (default `tsconfig.workspaces.json`).").optional(),defaultFile:n.string().describe("The workspace default tsconfig file name that the generator expands (default `tsconfig.default.json`).").optional(),buildFile:n.string().describe("The workspace build tsconfig file name (default `tsconfig.build.json`).").optional(),baseFile:n.string().describe("The root base tsconfig file name (default `tsconfig.base.json`).").optional(),extends:n.object({base:n.union([n.string(),n.array(n.string()),n.literal(!1)]).describe("`extends` written into scaffolded `tsconfig.base.json` files (or `false` to remove the field).").optional(),default:n.union([n.string(),n.array(n.string()),n.literal(!1)]).describe("`extends` written into scaffolded `tsconfig.default.json` files (or `false` to remove the field).").optional(),build:n.union([n.string(),n.array(n.string()),n.literal(!1)]).describe("`extends` written into scaffolded `tsconfig.build.json` files. Default `./tsconfig.default.json`; use `./tsconfig.json` to let builds reuse the path aliases (at the cost of pulling workspace source into the build).").optional()}).describe("Per-file `extends` overrides for generated/scaffolded tsconfig templates.").optional(),overrides:n.object({base:r("Deep-merged into the root base tsconfig (`baseFile`) during sync.").optional(),default:r("Deep-merged into every workspace default tsconfig (`defaultFile`) during sync.").optional(),build:r("Deep-merged into every workspace build tsconfig (`buildFile`) during sync.").optional(),root:r("Deep-merged into the root workspaces tsconfig (`rootFile`) during sync.").optional()}).describe(`Managed overrides deep-merged into the base/root/default/build tsconfig files during sync. The originals are snapshotted in the manifest, so removing a key reverts it (restoring the original value when the file defined one).`).meta({id:`ToolchainTsconfigOverrides`}).optional()})).describe(`Workspace tsconfig generation (path aliases + project references).`).meta({id:`ToolchainTsconfigConfig`});export{i as tsconfigConfigSchema};
1
+ import"node:path";import"node:url";import.meta.url;import{externalConfigSchema as e}from"./external.js";import{withEnabled as t}from"./meta.js";import{z as n}from"zod";const r=t=>e(t,`TsConfigJson`),i=n.object({include:n.array(n.string()).describe("Only auto-wire entries matching these globs (`auto`: workspace dirs; `aliasAuto`: rewritten alias keys; `refsAuto`: reference paths).").optional(),exclude:n.array(n.string()).describe("Skip entries matching these globs (same targets as `include`).").optional()}).meta({id:`ToolchainTsconfigAutoSetting`}),a=n.union([n.record(n.string(),n.string()),n.array(n.object({pattern:n.union([n.string(),n.array(n.string())]),replacement:n.string()}))]).describe('Rewrite the alias keys auto-wiring generates (custom keys are preserved). Patterns are URL-rewrite style: a string is a regular-expression source and replacements support `$1`, `$2`, ... capture groups. Examples: `{ "^@acme/(.+)$": "@acme/pkg/$1" }` (string patterns), `[{ pattern: /^@acme\\/(.+)$/, replacement: "@acme/pkg/$1" }]` (RegExp patterns), `[{ pattern: ["^@acme/a$", "^@acme/b$"], replacement: "@acme/x" }]` (an array of keys), and an array of such rules (applied in order; the first matching rule wins). `RegExp` patterns are only available from TS/JS configs; JSON configs use string patterns.').meta({tsType:`ToolchainTsconfigAliasRewrite`}),o=i.extend({rewriteAlias:a.optional()}).meta({id:`ToolchainTsconfigAliasAutoSetting`}),s=e=>n.union([n.boolean(),i]).describe(e),c=e=>n.union([n.boolean(),o]).describe(e),l=t(n.object({glob:n.union([n.string(),n.array(n.string())]).describe("Glob(s) for the workspace default tsconfig files. Defaults to matching every `defaultFile` recursively.").optional(),exclude:n.union([n.string(),n.array(n.string())]).describe("Glob(s) to exclude from `glob`. Defaults to the common ignored paths (`node_modules`, `.dbx`, `dist`, `build`, ...).").optional(),gitignore:n.boolean().describe("Also respect `.gitignore` files (root + nested) when matching `glob` (default true).").optional(),refs:n.boolean().describe(`Wire project references (default false).`).optional(),composite:n.boolean().describe("Emit `composite: true` (default false).").optional(),aliases:n.boolean().describe(`Inject path aliases (default true).`).optional(),auto:c(`Auto-generate the root workspaces tsconfig paths/references from the project graph (default false). Set true to derive them from the project graph; set false to only use the entries you define yourself.`).optional(),aliasAuto:c("Auto-generate path aliases (defaults to `auto`; `aliases` must also be enabled). Accepts the same `include`/`exclude`/`rewriteAlias` object as `auto`.").optional(),refsAuto:s("Auto-generate project references (defaults to `auto`; `refs` must also be enabled).").optional(),autoSrcDir:n.string().describe("Source directory used to resolve workspace entry points when `package.json` does not declare `exports`/`main`/`types` (default: the workspace's final tsconfig `rootDir`/`baseUrl`, falling back to `src`).").meta({tsType:`'src' | '.' | (string & {})`}).optional(),indent:n.number().describe(`JSON indentation (default 4).`).optional(),rootFile:n.string().describe("The workspaces tsconfig file name that holds `paths` + `references` (default `tsconfig.workspaces.json`).").optional(),defaultFile:n.string().describe("The workspace default tsconfig file name that the generator expands (default `tsconfig.default.json`).").optional(),buildFile:n.string().describe("The workspace build tsconfig file name (default `tsconfig.build.json`).").optional(),baseFile:n.string().describe("The root base tsconfig file name (default `tsconfig.base.json`).").optional(),extends:n.object({base:n.union([n.string(),n.array(n.string()),n.literal(!1)]).describe("`extends` written into scaffolded `tsconfig.base.json` files (or `false` to remove the field).").optional(),default:n.union([n.string(),n.array(n.string()),n.literal(!1)]).describe("`extends` written into scaffolded `tsconfig.default.json` files (or `false` to remove the field).").optional(),build:n.union([n.string(),n.array(n.string()),n.literal(!1)]).describe("`extends` written into scaffolded `tsconfig.build.json` files. Default `./tsconfig.default.json`; use `./tsconfig.json` to let builds reuse the path aliases (at the cost of pulling workspace source into the build).").optional()}).describe("Per-file `extends` overrides for generated/scaffolded tsconfig templates.").optional(),overrides:n.object({base:r("Deep-merged into the root base tsconfig (`baseFile`) during sync.").optional(),default:r("Deep-merged into every workspace default tsconfig (`defaultFile`) during sync.").optional(),build:r("Deep-merged into every workspace build tsconfig (`buildFile`) during sync.").optional(),root:r("Deep-merged into the root workspaces tsconfig (`rootFile`) during sync.").optional()}).describe(`Managed overrides deep-merged into the base/root/default/build tsconfig files during sync. The originals are snapshotted in the manifest, so removing a key reverts it (restoring the original value when the file defined one).`).meta({id:`ToolchainTsconfigOverrides`}).optional()})).describe(`Workspace tsconfig generation (path aliases + project references).`).meta({id:`ToolchainTsconfigConfig`});export{l as tsconfigConfigSchema};
@@ -0,0 +1,156 @@
1
+ import __tsdown_shims_path from 'node:path';
2
+ import __tsdown_shims_url from 'node:url';
3
+ //#region packages/shared/src/config-schema/vendor-types.d.ts
4
+ /**
5
+ * Self-contained mirrors of the external tool config types.
6
+ *
7
+ * `prettier`, `eslint` and `@dprint/types` are optional peers of the published
8
+ * package. Importing their types directly from `dist/*.d.ts` makes a clean
9
+ * install fail to typecheck unless they happen to be installed, so the
10
+ * published declarations carry these local mirrors instead. Each one exposes
11
+ * the keys users reach for most and keeps an open index signature for the rest,
12
+ * so unknown/newer options still typecheck (and known keys still autocomplete).
13
+ */
14
+ /** Prettier's `Options` (the `.prettierrc` shape). */
15
+ export interface PrettierConfig {
16
+ /** Wrap prose to this width. */
17
+ proseWrap?: 'always' | 'never' | 'preserve';
18
+ /** Print semicolons at the ends of statements. */
19
+ semi?: boolean;
20
+ /** Use single quotes instead of double quotes. */
21
+ singleQuote?: boolean;
22
+ /** Use single quotes in JSX. */
23
+ jsxSingleQuote?: boolean;
24
+ /** Print trailing commas wherever possible. */
25
+ trailingComma?: 'none' | 'es5' | 'all';
26
+ /** Print spaces between brackets in object literals. */
27
+ bracketSpacing?: boolean;
28
+ /** How to wrap object literals. */
29
+ objectWrap?: 'preserve' | 'collapse';
30
+ /** Put the `>` of a multi-line element on the last line. */
31
+ bracketSameLine?: boolean;
32
+ /** Deprecated alias for {@link bracketSameLine}. */
33
+ jsxBracketSameLine?: boolean;
34
+ /** Format only a segment of a file (start offset). */
35
+ rangeStart?: number;
36
+ /** Format only a segment of a file (end offset). */
37
+ rangeEnd?: number;
38
+ /** The parser to use (a built-in name or a plugin parser). */
39
+ parser?: string | Record<string & {}, unknown>;
40
+ /** The input filepath, used for parser inference. */
41
+ filepath?: string;
42
+ /** Only format files containing the `@format` pragma. */
43
+ requirePragma?: boolean;
44
+ /** Insert the `@format` pragma when formatting. */
45
+ insertPragma?: boolean;
46
+ /** Allow files to opt out with an ignore pragma. */
47
+ checkIgnorePragma?: boolean;
48
+ /** Include parentheses around a sole arrow function parameter. */
49
+ arrowParens?: 'avoid' | 'always';
50
+ /** Prettier plugins to load (module specifiers, URLs or plugin objects). */
51
+ plugins?: Array<unknown>;
52
+ /** How to handle whitespace in HTML. */
53
+ htmlWhitespaceSensitivity?: 'css' | 'strict' | 'ignore';
54
+ /** Which end-of-line characters to apply. */
55
+ endOfLine?: 'auto' | 'lf' | 'crlf' | 'cr';
56
+ /** Change when properties in objects are quoted. */
57
+ quoteProps?: 'as-needed' | 'consistent' | 'preserve';
58
+ /** Indent `<script>`/`<style>` content in Vue files. */
59
+ vueIndentScriptAndStyle?: boolean;
60
+ /** Control formatting of quoted code embedded in the file. */
61
+ embeddedLanguageFormatting?: 'auto' | 'off';
62
+ /** Enforce a single attribute per line in HTML/Vue/JSX. */
63
+ singleAttributePerLine?: boolean;
64
+ /** Where to print operators when binary expressions wrap. */
65
+ experimentalOperatorPosition?: 'start' | 'end';
66
+ /** Use curious ternaries. */
67
+ experimentalTernaries?: boolean;
68
+ /** The line length the printer wraps on. */
69
+ printWidth?: number;
70
+ /** The number of spaces per indentation level. */
71
+ tabWidth?: number;
72
+ /** Indent with tabs instead of spaces. */
73
+ useTabs?: boolean;
74
+ /** The parent parser, when formatting an embedded language. */
75
+ parentParser?: string;
76
+ /** @internal Whether the value is embedded in HTML. */
77
+ __embeddedInHtml?: boolean;
78
+ [key: string & {}]: unknown;
79
+ }
80
+ /** ESLint flat-config language options. */
81
+ export interface EslintLanguageOptions {
82
+ /** The ECMAScript version to support (`latest` for the newest). */
83
+ ecmaVersion?: number | 'latest';
84
+ /** The source type. */
85
+ sourceType?: 'script' | 'module' | 'commonjs';
86
+ /** Globals added to the linting scope. */
87
+ globals?: Record<string & {}, unknown>;
88
+ /** The parser (an object or a module specifier). */
89
+ parser?: unknown;
90
+ /** Parser-specific options. */
91
+ parserOptions?: Record<string & {}, unknown>;
92
+ }
93
+ /** ESLint flat-config linter options. */
94
+ export interface EslintLinterOptions {
95
+ /** Disallow inline configuration comments. */
96
+ noInlineConfig?: boolean;
97
+ /** Report unused `eslint-disable` directives. */
98
+ reportUnusedDisableDirectives?: boolean | 'off' | 'warn' | 'error' | 0 | 1 | 2;
99
+ }
100
+ /** ESLint's flat config object (`Linter.Config`). */
101
+ export interface EslintConfig {
102
+ /** A name for this config object (useful in errors and tooling). */
103
+ name?: string;
104
+ /** The base path for relative file patterns. */
105
+ basePath?: string;
106
+ /** The glob patterns (or groups of patterns) this config applies to. */
107
+ files?: Array<string | Array<string>>;
108
+ /** The glob patterns this config ignores. */
109
+ ignores?: Array<string>;
110
+ /** The language used for linting (set by language plugins). */
111
+ language?: string;
112
+ /** Other configs to extend. */
113
+ extends?: Array<string | EslintConfig>;
114
+ /** Language options (parser, globals, ECMAScript version). */
115
+ languageOptions?: EslintLanguageOptions;
116
+ /** Linter behaviour options. */
117
+ linterOptions?: EslintLinterOptions;
118
+ /** Plugin implementations keyed by namespace. */
119
+ plugins?: Record<string & {}, unknown>;
120
+ /** A processor (a module specifier or a processor object). */
121
+ processor?: unknown;
122
+ /** Rule severities and options keyed by rule name. */
123
+ rules?: Record<string & {}, unknown>;
124
+ /** Shared settings passed to every rule. */
125
+ settings?: Record<string & {}, unknown>;
126
+ [key: string & {}]: unknown;
127
+ }
128
+ /**
129
+ * Dprint's `dprint.json` configuration: global layout options plus arbitrary
130
+ * per-language/plugin sections.
131
+ */
132
+ export interface DprintConfig {
133
+ /** The project type (used by dprint's sponsor check). */
134
+ projectType?: 'openSource' | 'commercialSponsored' | 'commercialDidNotSponsor';
135
+ /** Only format changed files on subsequent runs. */
136
+ incremental?: boolean;
137
+ /** The width the printer tries to stay under. */
138
+ lineWidth?: number;
139
+ /** The number of spaces per indent level. */
140
+ indentWidth?: number;
141
+ /** Indent with tabs instead of spaces. */
142
+ useTabs?: boolean;
143
+ /** The kind of newline to use. */
144
+ newLineKind?: 'auto' | 'crlf' | 'lf' | 'system';
145
+ /** The files to include (globs). */
146
+ includes?: Array<string>;
147
+ /** The files to exclude (globs). */
148
+ excludes?: Array<string>;
149
+ /** The plugins to load (module specifiers or plugin objects). */
150
+ plugins?: Array<unknown>;
151
+ /** TypeScript plugin options. */
152
+ typescript?: Record<string & {}, unknown>;
153
+ /** Any other language/plugin section. */
154
+ [section: string & {}]: unknown;
155
+ }
156
+ //#endregion