@deltabox/toolchain 2.1.0 → 2.3.2

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 (141) hide show
  1. package/CHANGELOG.md +404 -627
  2. package/README.md +6 -0
  3. package/dist/changelog.d.ts +6 -5
  4. package/dist/changelog.js +1 -1
  5. package/dist/cli/commands/providers.js +1 -1
  6. package/dist/cli/commands/reset.js +1 -1
  7. package/dist/cli/config-selection.js +1 -1
  8. package/dist/cli/index.d.ts +2 -2
  9. package/dist/cli/index.js +1 -1
  10. package/dist/cli/register.js +1 -1
  11. package/dist/cli/update-check.js +1 -1
  12. package/dist/config.d.ts +2 -2
  13. package/dist/config.js +1 -1
  14. package/dist/index.d.ts +38 -30
  15. package/dist/index.js +1 -1
  16. package/dist/migrate.d.ts +2 -2
  17. package/dist/migrate.js +1 -1
  18. package/dist/package.js +1 -1
  19. package/dist/packages/changelog/src/cli/index.js +1 -1
  20. package/dist/packages/changelog/src/index.d.ts +7 -6
  21. package/dist/packages/changelog/src/index.js +1 -1
  22. package/dist/packages/changelog/src/run-workflows.d.ts +39 -2
  23. package/dist/packages/changelog/src/run-workflows.js +1 -1
  24. package/dist/packages/changelog/src/run.d.ts +1 -1
  25. package/dist/packages/changelog/src/run.js +1 -1
  26. package/dist/packages/changelog/src/sync.js +1 -1
  27. package/dist/packages/changelog/src/templates.js +1 -1
  28. package/dist/packages/changelog/src/utils/format.d.ts +5 -3
  29. package/dist/packages/changelog/src/utils/format.js +5 -5
  30. package/dist/packages/changelog/src/utils/git.d.ts +1 -1
  31. package/dist/packages/changelog/src/utils/git.js +1 -1
  32. package/dist/packages/changelog/src/utils/reformat.d.ts +7 -2
  33. package/dist/packages/changelog/src/utils/reformat.js +5 -4
  34. package/dist/packages/changelog/src/utils/release-notes.js +1 -1
  35. package/dist/packages/changelog/src/utils/repo.js +1 -1
  36. package/dist/packages/changelog/src/utils/summary.d.ts +1 -1
  37. package/dist/packages/changelog/src/utils/types.d.ts +9 -46
  38. package/dist/packages/changelog/src/utils/versioning.d.ts +11 -14
  39. package/dist/packages/changelog/src/utils/write.js +1 -1
  40. package/dist/packages/changelog/src/workflows.d.ts +11 -3
  41. package/dist/packages/changelog/src/workflows.js +5 -5
  42. package/dist/packages/config/src/cli/index.d.ts +1 -1
  43. package/dist/packages/config/src/collect.js +1 -1
  44. package/dist/packages/config/src/config-json.js +1 -1
  45. package/dist/packages/config/src/generators/env.js +2 -2
  46. package/dist/packages/config/src/generators/markdown.js +8 -8
  47. package/dist/packages/config/src/generators/output.js +1 -0
  48. package/dist/packages/config/src/generators/types.js +3 -3
  49. package/dist/packages/config/src/index.d.ts +3 -3
  50. package/dist/packages/config/src/index.js +1 -1
  51. package/dist/packages/config/src/schema.d.ts +16 -0
  52. package/dist/packages/config/src/schema.js +1 -1
  53. package/dist/packages/config/src/types.d.ts +5 -0
  54. package/dist/packages/core/src/editor-config.js +1 -1
  55. package/dist/packages/core/src/loader.js +1 -1
  56. package/dist/packages/core/src/manifest.js +1 -1
  57. package/dist/packages/core/src/paths.js +1 -0
  58. package/dist/packages/core/src/provider-registry.js +1 -1
  59. package/dist/packages/core/src/reset.d.ts +3 -0
  60. package/dist/packages/core/src/reset.js +1 -1
  61. package/dist/packages/core/src/sync.js +1 -1
  62. package/dist/packages/core/src/vscode.js +1 -1
  63. package/dist/packages/core/src/watch.d.ts +1 -1
  64. package/dist/packages/core/src/watch.js +1 -1
  65. package/dist/packages/migrate/src/cli/index.js +1 -1
  66. package/dist/packages/migrate/src/eslint.js +1 -1
  67. package/dist/packages/migrate/src/index.d.ts +2 -2
  68. package/dist/packages/migrate/src/index.js +1 -1
  69. package/dist/packages/migrate/src/prettier.d.ts +2 -0
  70. package/dist/packages/migrate/src/prettier.js +2 -2
  71. package/dist/packages/migrate/src/vite-target.js +1 -1
  72. package/dist/packages/project/src/cli/index.js +1 -1
  73. package/dist/packages/project/src/index.d.ts +4 -4
  74. package/dist/packages/project/src/index.js +1 -1
  75. package/dist/packages/project/src/typescript.d.ts +4 -2
  76. package/dist/packages/project/src/typescript.js +2 -2
  77. package/dist/packages/shared/src/changelog-callbacks.d.ts +72 -0
  78. package/dist/packages/shared/src/config-schema/biome.d.ts +8 -1
  79. package/dist/packages/shared/src/config-schema/biome.js +1 -1
  80. package/dist/packages/shared/src/config-schema/changelog.d.ts +3049 -30
  81. package/dist/packages/shared/src/config-schema/changelog.js +1 -1
  82. package/dist/packages/shared/src/config-schema/ci.d.ts +1163 -23
  83. package/dist/packages/shared/src/config-schema/external.js +1 -0
  84. package/dist/packages/shared/src/config-schema/format.d.ts +16 -10
  85. package/dist/packages/shared/src/config-schema/format.js +1 -1
  86. package/dist/packages/shared/src/config-schema/generated/azure-pipelines.d.ts +10501 -0
  87. package/dist/packages/shared/src/config-schema/generated/biome-config.d.ts +5962 -0
  88. package/dist/packages/shared/src/config-schema/generated/github-workflow.d.ts +179 -0
  89. package/dist/packages/shared/src/config-schema/generated/gitlab-ci.d.ts +296 -0
  90. package/dist/packages/shared/src/config-schema/generated/oxfmt-config.d.ts +411 -0
  91. package/dist/packages/shared/src/config-schema/generated/oxlint-config.d.ts +2218 -0
  92. package/dist/packages/shared/src/config-schema/index.d.ts +5355 -142
  93. package/dist/packages/shared/src/config-schema/index.js +1 -1
  94. package/dist/packages/shared/src/config-schema/json.d.ts +18 -0
  95. package/dist/packages/shared/src/config-schema/json.js +1 -0
  96. package/dist/packages/shared/src/config-schema/logger.d.ts +10 -1
  97. package/dist/packages/shared/src/config-schema/logger.js +1 -1
  98. package/dist/packages/shared/src/config-schema/tsconfig.d.ts +5 -4
  99. package/dist/packages/shared/src/config-schema/tsconfig.js +1 -1
  100. package/dist/packages/shared/src/config-schema/vite.d.ts +5 -3
  101. package/dist/packages/shared/src/config-schema/vite.js +1 -1
  102. package/dist/packages/shared/src/config-schema/workflow.d.ts +946 -31
  103. package/dist/packages/shared/src/config-schema/workflow.js +1 -1
  104. package/dist/packages/shared/src/config-types.d.ts +257 -33
  105. package/dist/packages/shared/src/fs-utils.d.ts +12 -0
  106. package/dist/packages/shared/src/fs-utils.js +8 -1
  107. package/dist/packages/shared/src/index.d.ts +19 -11
  108. package/dist/packages/shared/src/index.js +1 -1
  109. package/dist/packages/shared/src/object-utils.d.ts +2 -0
  110. package/dist/packages/shared/src/object-utils.js +1 -1
  111. package/dist/packages/shared/src/registry-policy.d.ts +3 -2
  112. package/dist/packages/shared/src/registry-policy.js +1 -1
  113. package/dist/packages/shared/src/run.d.ts +2 -0
  114. package/dist/packages/shared/src/run.js +1 -1
  115. package/dist/packages/shared/src/string-utils.d.ts +7 -5
  116. package/dist/packages/shared/src/string-utils.js +2 -2
  117. package/dist/packages/shared/src/template.d.ts +2 -1
  118. package/dist/packages/shared/src/template.js +1 -1
  119. package/dist/packages/shared/src/toolchain.d.ts +14 -7
  120. package/dist/packages/shared/src/toolchain.js +1 -1
  121. package/dist/packages/shared/src/types.d.ts +5 -0
  122. package/dist/packages/shared/src/vite-defaults.d.ts +4 -3
  123. package/dist/packages/shared/src/vite-defaults.js +1 -1
  124. package/dist/packages/shared/src/yaml.js +5 -5
  125. package/dist/packages/template/src/scaffold.js +1 -1
  126. package/dist/packages/tsconfig/src/cli/generate/index.js +1 -1
  127. package/dist/packages/tsconfig/src/overrides.d.ts +5 -5
  128. package/dist/packages/tsdown/src/config/node.d.ts +5 -0
  129. package/dist/packages/tsdown/src/config/node.js +2 -2
  130. package/dist/packages/tsdown/src/index.d.ts +3 -3
  131. package/dist/packages/tsdown/src/index.js +1 -1
  132. package/dist/packages/vite/src/plugin.js +1 -1
  133. package/dist/packages/vite/src/vp.js +1 -1
  134. package/dist/project.d.ts +3 -3
  135. package/dist/project.js +1 -1
  136. package/dist/shared.d.ts +18 -10
  137. package/dist/shared.js +1 -1
  138. package/dist/tooling.js +1 -1
  139. package/dist/tsdown.d.ts +2 -2
  140. package/dist/tsdown.js +1 -1
  141. package/package.json +25 -13
@@ -0,0 +1,411 @@
1
+ import __tsdown_shims_path from 'node:path';
2
+ import __tsdown_shims_url from 'node:url';
3
+ //#region packages/shared/src/config-schema/generated/oxfmt-config.d.ts
4
+ export interface OxfmtConfig {
5
+ /**
6
+ * Include parentheses around a sole arrow function parameter.
7
+ *
8
+ * - Languages: JS, JSX, TS, TSX
9
+ * - Default: `"always"`
10
+ */
11
+ arrowParens?: 'always' | 'avoid';
12
+ /**
13
+ * Format matched files as the given language, instead of detecting it from the file name. e.g.
14
+ * Angular templates named `*.html`, or `*.wxml` files formatted as HTML. When a file matches
15
+ * multiple associations, the later one takes precedence (array order matters).
16
+ *
17
+ * - Default: `[]`
18
+ */
19
+ associations?: Array<{
20
+ excludeFiles?: Array<string>;
21
+ files: Array<string>;
22
+ language: 'javascript' | 'jsx' | 'typescript' | 'tsx' | 'json' | 'jsonc' | 'json5' | 'css' | 'scss' | 'less' | 'graphql' | 'yaml' | 'markdown' | 'toml' | 'html' | 'angular-html' | 'vue' | 'svelte' | 'astro' | 'handlebars' | 'mdx';
23
+ }>;
24
+ /**
25
+ * Options for `prettier-plugin-astro`.
26
+ *
27
+ * Pass `true` or an object to enable `.astro` file formatting, `false` to disable (handy in
28
+ * overrides). Setting `true` resets to defaults, dropping options inherited from a parent scope.
29
+ *
30
+ * NOTE: `prettier-plugin-astro` requires the `@astrojs/compiler-rs` package at runtime. Oxfmt does
31
+ * NOT bundle it, so install it in your project, otherwise formatting fails.
32
+ *
33
+ * - Languages: Astro
34
+ * - Default: Disabled
35
+ */
36
+ astro?: boolean | {
37
+ allowShorthand?: boolean;
38
+ compressHTML?: 'jsx' | 'html' | 'none';
39
+ skipFrontmatter?: boolean;
40
+ };
41
+ /**
42
+ * Put the `>` of a multi-line element at the end of the last line, instead of being alone on the
43
+ * next line (does not apply to self-closing elements).
44
+ *
45
+ * - Languages: JSX, TSX, HTML, Angular, Vue, MJML, Svelte, Astro
46
+ * - Default: `false`
47
+ */
48
+ bracketSameLine?: boolean;
49
+ /**
50
+ * Print spaces between brackets in object literals.
51
+ *
52
+ * - Languages: JS, JSX, TS, TSX, JSON, JSONC, JSON5, GraphQL, YAML
53
+ * - Default: `true`
54
+ */
55
+ bracketSpacing?: boolean;
56
+ /**
57
+ * Control whether to format embedded parts in the file. For example:
58
+ *
59
+ * - CSS-in-JS: template literal
60
+ * - JS-in-Vue: `<script>` block
61
+ * - JS-in-Markdown: code fence
62
+ * - YAML-in-CSS/Markdown: front matter
63
+ *
64
+ * With `"off"`, these parts are kept as-is.
65
+ *
66
+ * NOTE: Some languages behave differently. For Svelte, formatting fails with `"off"`, a limitation
67
+ * of `prettier-plugin-svelte`. For Astro, the frontmatter is still formatted, but by Prettier
68
+ * instead of Oxfmt (use `astro.skipFrontmatter` to keep it as-is).
69
+ *
70
+ * - Languages: JS, JSX, TS, TSX, CSS, SCSS, Less, HTML, Vue, Angular, Svelte, Astro, Markdown, MDX
71
+ * - Default: `"auto"`
72
+ */
73
+ embeddedLanguageFormatting?: 'auto' | 'off';
74
+ /**
75
+ * Which end of line characters to apply.
76
+ *
77
+ * NOTE: `"auto"` is not supported.
78
+ *
79
+ * - Languages: All
80
+ * - Default: `"lf"`
81
+ * - Overrides `.editorconfig.end_of_line`
82
+ */
83
+ endOfLine?: 'lf' | 'crlf' | 'cr';
84
+ /**
85
+ * When expressions wrap lines, print operators at the start of new lines (`"start"`) or at the end
86
+ * of previous lines (`"end"`).
87
+ *
88
+ * - Languages: JS, JSX, TS, TSX
89
+ * - Default: `"end"`
90
+ */
91
+ experimentalOperatorPosition?: 'start' | 'end';
92
+ /**
93
+ * Specify the global whitespace sensitivity.
94
+ *
95
+ * - Languages: HTML, Angular, Vue, Handlebars, Svelte
96
+ * - Default: `"css"`
97
+ */
98
+ htmlWhitespaceSensitivity?: 'css' | 'strict' | 'ignore';
99
+ /**
100
+ * Ignore files matching these glob patterns. Patterns use gitignore-style matching, rooted at the
101
+ * directory containing the configuration file. Files outside that directory cannot be matched;
102
+ * patterns containing `..` are rejected as a configuration error.
103
+ *
104
+ * - Default: `[]`
105
+ */
106
+ ignorePatterns?: Array<string>;
107
+ /**
108
+ * Whether to insert a final newline at the end of the file.
109
+ *
110
+ * - Languages: All
111
+ * - Default: `true`
112
+ * - Overrides `.editorconfig.insert_final_newline`
113
+ */
114
+ insertFinalNewline?: boolean;
115
+ /**
116
+ * Enable JSDoc comment formatting.
117
+ *
118
+ * Normalizes JSDoc comments: tag aliases are canonicalized, descriptions are capitalized, long
119
+ * lines are wrapped, and short comments are collapsed to single-line.
120
+ *
121
+ * Pass `true` or an object to enable, `false` to disable.
122
+ *
123
+ * - Languages: JS, JSX, TS, TSX
124
+ * - Default: Disabled
125
+ */
126
+ jsdoc?: boolean | {
127
+ addDefaultToDescription?: boolean;
128
+ bracketSpacing?: boolean;
129
+ capitalizeDescriptions?: boolean;
130
+ commentLineStrategy?: 'singleLine' | 'multiline' | 'keep';
131
+ descriptionTag?: boolean;
132
+ descriptionWithDot?: boolean;
133
+ keepUnparsableExampleIndent?: boolean;
134
+ lineWrappingStyle?: 'greedy' | 'balance';
135
+ preferCodeFences?: boolean;
136
+ separateReturnsFromParam?: boolean;
137
+ separateTagGroups?: boolean;
138
+ };
139
+ /**
140
+ * Use single quotes instead of double quotes in JSX.
141
+ *
142
+ * - Languages: JSX, TSX
143
+ * - Default: `false`
144
+ */
145
+ jsxSingleQuote?: boolean;
146
+ /**
147
+ * How to wrap object literals when they could fit on one line or span multiple lines.
148
+ *
149
+ * By default, formats objects as multi-line if there is a newline prior to the first property.
150
+ * Authors can use this heuristic to contextually improve readability, though it has some
151
+ * downsides.
152
+ *
153
+ * - Languages: JS, JSX, TS, TSX, JSON, JSONC, JSON5
154
+ * - Default: `"preserve"`
155
+ */
156
+ objectWrap?: 'preserve' | 'collapse';
157
+ /**
158
+ * File-specific overrides. When a file matches multiple overrides, the later override takes
159
+ * precedence (array order matters).
160
+ *
161
+ * - Default: `[]`
162
+ */
163
+ overrides?: Array<{
164
+ excludeFiles?: Array<string>;
165
+ files: Array<string>;
166
+ options?: {
167
+ arrowParens?: 'always' | 'avoid';
168
+ astro?: boolean | {
169
+ allowShorthand?: boolean;
170
+ compressHTML?: 'jsx' | 'html' | 'none';
171
+ skipFrontmatter?: boolean;
172
+ };
173
+ bracketSameLine?: boolean;
174
+ bracketSpacing?: boolean;
175
+ embeddedLanguageFormatting?: 'auto' | 'off';
176
+ endOfLine?: 'lf' | 'crlf' | 'cr';
177
+ experimentalOperatorPosition?: 'start' | 'end';
178
+ htmlWhitespaceSensitivity?: 'css' | 'strict' | 'ignore';
179
+ insertFinalNewline?: boolean;
180
+ jsdoc?: boolean | {
181
+ addDefaultToDescription?: boolean;
182
+ bracketSpacing?: boolean;
183
+ capitalizeDescriptions?: boolean;
184
+ commentLineStrategy?: 'singleLine' | 'multiline' | 'keep';
185
+ descriptionTag?: boolean;
186
+ descriptionWithDot?: boolean;
187
+ keepUnparsableExampleIndent?: boolean;
188
+ lineWrappingStyle?: 'greedy' | 'balance';
189
+ preferCodeFences?: boolean;
190
+ separateReturnsFromParam?: boolean;
191
+ separateTagGroups?: boolean;
192
+ };
193
+ jsxSingleQuote?: boolean;
194
+ objectWrap?: 'preserve' | 'collapse';
195
+ printWidth?: number;
196
+ proseWrap?: 'always' | 'never' | 'preserve';
197
+ quoteProps?: 'as-needed' | 'consistent' | 'preserve';
198
+ semi?: boolean;
199
+ singleAttributePerLine?: boolean;
200
+ singleQuote?: boolean;
201
+ sortImports?: boolean | {
202
+ customGroups?: Array<{
203
+ elementNamePattern?: Array<string>;
204
+ groupName?: string;
205
+ modifiers?: Array<'side_effect' | 'type' | 'value' | 'default' | 'wildcard' | 'named'>;
206
+ selector?: 'type' | 'side_effect_style' | 'side_effect' | 'style' | 'index' | 'sibling' | 'parent' | 'subpath' | 'internal' | 'builtin' | 'external' | 'import';
207
+ }>;
208
+ groups?: Array<{
209
+ newlinesBetween: boolean;
210
+ } | string | Array<string>>;
211
+ ignoreCase?: boolean;
212
+ internalPattern?: Array<string>;
213
+ newlinesBetween?: boolean;
214
+ order?: 'asc' | 'desc';
215
+ partitionByComment?: boolean;
216
+ partitionByNewline?: boolean;
217
+ sortSideEffects?: boolean;
218
+ };
219
+ sortPackageJson?: boolean | {
220
+ sortScripts?: boolean;
221
+ };
222
+ sortTailwindcss?: boolean | {
223
+ attributes?: Array<string>;
224
+ config?: string;
225
+ functions?: Array<string>;
226
+ preserveDuplicates?: boolean;
227
+ preserveWhitespace?: boolean;
228
+ stylesheet?: string;
229
+ };
230
+ svelte?: boolean | {
231
+ allowShorthand?: boolean;
232
+ indentScriptAndStyle?: boolean;
233
+ sortOrder?: string;
234
+ };
235
+ tabWidth?: number;
236
+ trailingComma?: 'all' | 'es5' | 'none';
237
+ useTabs?: boolean;
238
+ vueIndentScriptAndStyle?: boolean;
239
+ };
240
+ }>;
241
+ /**
242
+ * Specify the line length that the printer will wrap on.
243
+ *
244
+ * If you don't want line wrapping when formatting Markdown, you can set the `proseWrap` option to
245
+ * disable it.
246
+ *
247
+ * - Languages: All
248
+ * - Default: `100`
249
+ * - Overrides `.editorconfig.max_line_length`
250
+ */
251
+ printWidth?: number;
252
+ /**
253
+ * How to wrap prose.
254
+ *
255
+ * - `"always"`: Wrap prose to the print width
256
+ * - `"never"`: Put each prose block on a single line, relying on editor/viewer soft wrapping
257
+ * - `"preserve"`: Keep wrapping as-is
258
+ *
259
+ * By default, wrapping is preserved, since some services use a linebreak-sensitive renderer (e.g.
260
+ * GitHub comments, BitBucket).
261
+ *
262
+ * - Languages: Markdown, MDX, YAML
263
+ * - Default: `"preserve"`
264
+ */
265
+ proseWrap?: 'always' | 'never' | 'preserve';
266
+ /**
267
+ * Change when properties in objects are quoted.
268
+ *
269
+ * - Languages: JS, JSX, TS, TSX
270
+ * - Default: `"as-needed"`
271
+ */
272
+ quoteProps?: 'as-needed' | 'consistent' | 'preserve';
273
+ /**
274
+ * Print semicolons at the ends of statements.
275
+ *
276
+ * - Languages: JS, JSX, TS, TSX
277
+ * - Default: `true`
278
+ */
279
+ semi?: boolean;
280
+ /**
281
+ * Enforce single attribute per line.
282
+ *
283
+ * - Languages: JSX, TSX, HTML, Angular, Vue, MJML, Svelte, Astro
284
+ * - Default: `false`
285
+ */
286
+ singleAttributePerLine?: boolean;
287
+ /**
288
+ * Use single quotes instead of double quotes.
289
+ *
290
+ * For JSX, you can set the `jsxSingleQuote` option.
291
+ *
292
+ * - Languages: JS, JSX, TS, TSX, CSS, Less, SCSS, Markdown, MDX, YAML, Handlebars, Svelte, Astro
293
+ * - Default: `false`
294
+ * - Overrides `.editorconfig.quote_type`
295
+ */
296
+ singleQuote?: boolean;
297
+ /**
298
+ * Sort import statements.
299
+ *
300
+ * Uses a similar algorithm to
301
+ * [eslint-plugin-perfectionist/sort-imports](https://perfectionist.dev/rules/sort-imports).
302
+ *
303
+ * Pass `true` or an object to enable, `false` to disable.
304
+ *
305
+ * - Languages: JS, JSX, TS, TSX
306
+ * - Default: Disabled
307
+ */
308
+ sortImports?: boolean | {
309
+ customGroups?: Array<{
310
+ elementNamePattern?: Array<string>;
311
+ groupName?: string;
312
+ modifiers?: Array<'side_effect' | 'type' | 'value' | 'default' | 'wildcard' | 'named'>;
313
+ selector?: 'type' | 'side_effect_style' | 'side_effect' | 'style' | 'index' | 'sibling' | 'parent' | 'subpath' | 'internal' | 'builtin' | 'external' | 'import';
314
+ }>;
315
+ groups?: Array<{
316
+ newlinesBetween: boolean;
317
+ } | string | Array<string>>;
318
+ ignoreCase?: boolean;
319
+ internalPattern?: Array<string>;
320
+ newlinesBetween?: boolean;
321
+ order?: 'asc' | 'desc';
322
+ partitionByComment?: boolean;
323
+ partitionByNewline?: boolean;
324
+ sortSideEffects?: boolean;
325
+ };
326
+ /**
327
+ * Sort `package.json` keys.
328
+ *
329
+ * The order is NOT compatible with
330
+ * [prettier-plugin-packagejson](https://github.com/matzkoh/prettier-plugin-packagejson), but we
331
+ * believe it is clearer and easier to navigate.
332
+ *
333
+ * - Languages: JSON (`package.json` only)
334
+ * - Default: `true`
335
+ */
336
+ sortPackageJson?: boolean | {
337
+ sortScripts?: boolean;
338
+ };
339
+ /**
340
+ * Sort Tailwind CSS classes.
341
+ *
342
+ * Uses the same algorithm as
343
+ * [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss).
344
+ * Option names omit the `tailwind` prefix used in the original plugin (e.g. `config` instead of
345
+ * `tailwindConfig`).
346
+ *
347
+ * Pass `true` or an object to enable, `false` to disable.
348
+ *
349
+ * - Languages: JS, JSX, TS, TSX, HTML, Vue, Angular, Handlebars, CSS, SCSS, Less, Svelte, Astro
350
+ * - Default: Disabled
351
+ */
352
+ sortTailwindcss?: boolean | {
353
+ attributes?: Array<string>;
354
+ config?: string;
355
+ functions?: Array<string>;
356
+ preserveDuplicates?: boolean;
357
+ preserveWhitespace?: boolean;
358
+ stylesheet?: string;
359
+ };
360
+ /**
361
+ * Options for `prettier-plugin-svelte`.
362
+ *
363
+ * Pass `true` or an object to enable `.svelte` file formatting, `false` to disable (handy in
364
+ * overrides). Setting `true` resets to defaults, dropping options inherited from a parent scope.
365
+ *
366
+ * NOTE: `prettier-plugin-svelte` requires the `svelte` package (`svelte/compiler`) at runtime.
367
+ * Oxfmt does NOT bundle it, so install it in your project, otherwise formatting fails.
368
+ *
369
+ * - Languages: Svelte
370
+ * - Default: Disabled
371
+ */
372
+ svelte?: boolean | {
373
+ allowShorthand?: boolean;
374
+ indentScriptAndStyle?: boolean;
375
+ sortOrder?: string;
376
+ };
377
+ /**
378
+ * Specify the number of spaces per indentation-level.
379
+ *
380
+ * - Languages: All
381
+ * - Default: `2`
382
+ * - Overrides `.editorconfig.indent_size` (falls back to `.editorconfig.tab_width`)
383
+ */
384
+ tabWidth?: number;
385
+ /**
386
+ * Print trailing commas wherever possible in multi-line comma-separated syntactic structures.
387
+ *
388
+ * A single-line array, for example, never gets trailing commas.
389
+ *
390
+ * - Languages: JS, JSX, TS, TSX, JSONC, JSON5, TOML, CSS, Less, SCSS, YAML
391
+ * - Default: `"all"`
392
+ */
393
+ trailingComma?: 'all' | 'es5' | 'none';
394
+ /**
395
+ * Indent lines with tabs instead of spaces.
396
+ *
397
+ * - Languages: All
398
+ * - Default: `false`
399
+ * - Overrides `.editorconfig.indent_style`
400
+ */
401
+ useTabs?: boolean;
402
+ /**
403
+ * Whether or not to indent the code inside `<script>` and `<style>` tags in Vue files.
404
+ *
405
+ * - Languages: Vue
406
+ * - Default: `false`
407
+ */
408
+ vueIndentScriptAndStyle?: boolean;
409
+ [key: string]: unknown;
410
+ }
411
+ //#endregion