@quentinhsu/biome-config 0.3.3 → 0.4.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 (34) hide show
  1. package/dist/131.mjs +358 -0
  2. package/dist/build.mjs +108 -360
  3. package/dist/index.jsonc +56 -56
  4. package/dist/index.mjs +1 -358
  5. package/dist/next.jsonc +60 -60
  6. package/dist/nuxt.jsonc +91 -91
  7. package/dist/react.jsonc +58 -58
  8. package/dist/rslib-runtime.mjs +38 -0
  9. package/dist/types/scripts/tag-release.d.ts +1 -0
  10. package/dist/types/scripts/validate-config-properties.d.ts +1 -0
  11. package/dist/types/src/constants/biome.d.ts +1 -1
  12. package/dist/types/src/generated/biome/index.d.ts +11 -8
  13. package/dist/types/src/generated/biome/no-comment-text-options.d.ts +761 -0
  14. package/dist/types/src/generated/biome/no-global-object-calls-options.d.ts +97 -97
  15. package/dist/types/src/generated/biome/no-sync-scripts-configuration.d.ts +185 -0
  16. package/dist/types/src/generated/biome/{use-semantic-elements-configuration.d.ts → no-useless-constructor-configuration.d.ts} +31 -49
  17. package/dist/types/src/generated/biome/nursery.d.ts +393 -594
  18. package/dist/types/src/generated/biome/{no-assign-in-expressions-configuration.d.ts → pattern-options.d.ts} +252 -179
  19. package/dist/types/src/generated/biome/rule-with-no-access-key-options.d.ts +555 -0
  20. package/dist/types/src/generated/biome/rule-with-no-blank-target-options.d.ts +530 -0
  21. package/dist/types/src/generated/biome/rule-with-no-fallthrough-switch-clause-options.d.ts +469 -0
  22. package/dist/types/src/generated/biome/rule-with-no-unknown-unit-options.d.ts +564 -0
  23. package/dist/types/src/generated/biome/schema.d.ts +35 -17
  24. package/dist/types/src/generated/biome/style.d.ts +614 -0
  25. package/dist/types/src/generated/biome/use-for-of-configuration.d.ts +144 -0
  26. package/dist/types/src/generated/biome/{no-non-null-assertion-options.d.ts → use-unique-variable-names-options.d.ts} +141 -119
  27. package/dist/types/src/index.d.ts +2 -2
  28. package/dist/vue.jsonc +60 -60
  29. package/package.json +38 -34
  30. package/dist/types/src/generated/biome/no-empty-source-configuration.d.ts +0 -241
  31. package/dist/types/src/generated/biome/no-misrefactored-shorthand-assign-options.d.ts +0 -1116
  32. package/dist/types/src/generated/biome/rule-with-no-document-import-in-page-options.d.ts +0 -1148
  33. package/dist/types/src/generated/biome/rule-with-no-implicit-coercions-options.d.ts +0 -1440
  34. package/dist/types/src/generated/biome/use-consistent-arrow-return-options.d.ts +0 -1341
package/dist/build.mjs CHANGED
@@ -1,363 +1,78 @@
1
+ import { __webpack_require__ } from "./rslib-runtime.mjs";
1
2
  import { mkdir, writeFile } from "node:fs/promises";
2
3
  import { dirname, join } from "node:path";
3
4
  import { fileURLToPath } from "node:url";
4
- const isPlainObject = (value)=>null !== value && 'object' == typeof value && !Array.isArray(value);
5
- const mergeArrays = (a, b)=>{
6
- const result = [
7
- ...a
8
- ];
9
- for (const item of b)if (!result.some((existing)=>deepEqual(existing, item))) result.push(item);
10
- return result;
11
- };
12
- const deepEqual = (a, b)=>{
13
- if (a === b) return true;
14
- if (Array.isArray(a) && Array.isArray(b)) return a.length === b.length && a.every((item, index)=>deepEqual(item, b[index]));
15
- if (isPlainObject(a) && isPlainObject(b)) {
16
- const keysA = Object.keys(a);
17
- const keysB = Object.keys(b);
18
- return keysA.length === keysB.length && keysA.every((key)=>deepEqual(a[key], b[key]));
5
+ import { allPresets } from "./131.mjs";
6
+ __webpack_require__.add({
7
+ "./node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.js" (module) {
8
+ let p = process || {}, argv = p.argv || [], env = p.env || {};
9
+ let isColorSupported = !(!!env.NO_COLOR || argv.includes("--no-color")) && (!!env.FORCE_COLOR || argv.includes("--color") || "win32" === p.platform || (p.stdout || {}).isTTY && "dumb" !== env.TERM || !!env.CI);
10
+ let formatter = (open, close, replace = open)=>(input)=>{
11
+ let string = "" + input, index = string.indexOf(close, open.length);
12
+ return ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close;
13
+ };
14
+ let replaceClose = (string, close, replace, index)=>{
15
+ let result = "", cursor = 0;
16
+ do {
17
+ result += string.substring(cursor, index) + replace;
18
+ cursor = index + close.length;
19
+ index = string.indexOf(close, cursor);
20
+ }while (~index);
21
+ return result + string.substring(cursor);
22
+ };
23
+ let createColors = (enabled = isColorSupported)=>{
24
+ let f = enabled ? formatter : ()=>String;
25
+ return {
26
+ isColorSupported: enabled,
27
+ reset: f("\x1b[0m", "\x1b[0m"),
28
+ bold: f("\x1b[1m", "\x1b[22m", "\x1b[22m\x1b[1m"),
29
+ dim: f("\x1b[2m", "\x1b[22m", "\x1b[22m\x1b[2m"),
30
+ italic: f("\x1b[3m", "\x1b[23m"),
31
+ underline: f("\x1b[4m", "\x1b[24m"),
32
+ inverse: f("\x1b[7m", "\x1b[27m"),
33
+ hidden: f("\x1b[8m", "\x1b[28m"),
34
+ strikethrough: f("\x1b[9m", "\x1b[29m"),
35
+ black: f("\x1b[30m", "\x1b[39m"),
36
+ red: f("\x1b[31m", "\x1b[39m"),
37
+ green: f("\x1b[32m", "\x1b[39m"),
38
+ yellow: f("\x1b[33m", "\x1b[39m"),
39
+ blue: f("\x1b[34m", "\x1b[39m"),
40
+ magenta: f("\x1b[35m", "\x1b[39m"),
41
+ cyan: f("\x1b[36m", "\x1b[39m"),
42
+ white: f("\x1b[37m", "\x1b[39m"),
43
+ gray: f("\x1b[90m", "\x1b[39m"),
44
+ bgBlack: f("\x1b[40m", "\x1b[49m"),
45
+ bgRed: f("\x1b[41m", "\x1b[49m"),
46
+ bgGreen: f("\x1b[42m", "\x1b[49m"),
47
+ bgYellow: f("\x1b[43m", "\x1b[49m"),
48
+ bgBlue: f("\x1b[44m", "\x1b[49m"),
49
+ bgMagenta: f("\x1b[45m", "\x1b[49m"),
50
+ bgCyan: f("\x1b[46m", "\x1b[49m"),
51
+ bgWhite: f("\x1b[47m", "\x1b[49m"),
52
+ blackBright: f("\x1b[90m", "\x1b[39m"),
53
+ redBright: f("\x1b[91m", "\x1b[39m"),
54
+ greenBright: f("\x1b[92m", "\x1b[39m"),
55
+ yellowBright: f("\x1b[93m", "\x1b[39m"),
56
+ blueBright: f("\x1b[94m", "\x1b[39m"),
57
+ magentaBright: f("\x1b[95m", "\x1b[39m"),
58
+ cyanBright: f("\x1b[96m", "\x1b[39m"),
59
+ whiteBright: f("\x1b[97m", "\x1b[39m"),
60
+ bgBlackBright: f("\x1b[100m", "\x1b[49m"),
61
+ bgRedBright: f("\x1b[101m", "\x1b[49m"),
62
+ bgGreenBright: f("\x1b[102m", "\x1b[49m"),
63
+ bgYellowBright: f("\x1b[103m", "\x1b[49m"),
64
+ bgBlueBright: f("\x1b[104m", "\x1b[49m"),
65
+ bgMagentaBright: f("\x1b[105m", "\x1b[49m"),
66
+ bgCyanBright: f("\x1b[106m", "\x1b[49m"),
67
+ bgWhiteBright: f("\x1b[107m", "\x1b[49m")
68
+ };
69
+ };
70
+ module.exports = createColors();
71
+ module.exports.createColors = createColors;
19
72
  }
20
- return false;
21
- };
22
- const deepMerge = (target, source)=>{
23
- for (const [key, value] of Object.entries(source)){
24
- const current = target[key];
25
- if (Array.isArray(value)) {
26
- if (Array.isArray(current)) target[key] = mergeArrays(current, value);
27
- else target[key] = [
28
- ...value
29
- ];
30
- continue;
31
- }
32
- if (isPlainObject(value)) {
33
- const nextTarget = isPlainObject(current) ? {
34
- ...current
35
- } : {};
36
- target[key] = deepMerge(nextTarget, value);
37
- continue;
38
- }
39
- target[key] = value;
40
- }
41
- return target;
42
- };
43
- const mergeConfigs = (...configs)=>{
44
- const merged = configs.reduce((accumulator, config)=>deepMerge(accumulator, config), {});
45
- return merged;
46
- };
47
- const BIOME_SCHEMA_URL = 'https://biomejs.dev/schemas/2.3.2/schema.json';
48
- const indexConfig = {
49
- $schema: BIOME_SCHEMA_URL,
50
- root: true,
51
- vcs: {
52
- enabled: true,
53
- clientKind: 'git',
54
- useIgnoreFile: true,
55
- defaultBranch: 'main'
56
- },
57
- files: {
58
- ignoreUnknown: true,
59
- includes: [
60
- '**',
61
- '!**/build',
62
- '!**/dist',
63
- '!**/.next'
64
- ]
65
- },
66
- formatter: {
67
- enabled: true,
68
- indentStyle: 'space',
69
- lineWidth: 140,
70
- formatWithErrors: true
71
- },
72
- assist: {
73
- actions: {
74
- source: {
75
- organizeImports: {
76
- level: 'on',
77
- options: {
78
- groups: [
79
- [
80
- ':NODE:',
81
- ':BUN:',
82
- ':PACKAGE_WITH_PROTOCOL:',
83
- ':PACKAGE:'
84
- ],
85
- ':BLANK_LINE:',
86
- ':ALIAS:',
87
- ':BLANK_LINE:',
88
- ':PATH:'
89
- ]
90
- }
91
- },
92
- useSortedKeys: 'on',
93
- useSortedAttributes: {
94
- level: 'on',
95
- options: {
96
- sortOrder: 'natural'
97
- }
98
- }
99
- }
100
- }
101
- },
102
- linter: {
103
- enabled: true,
104
- rules: {
105
- recommended: true,
106
- complexity: {
107
- noUselessStringConcat: 'error',
108
- noUselessUndefinedInitialization: 'error',
109
- noVoid: 'error',
110
- useDateNow: 'error'
111
- },
112
- correctness: {
113
- noConstantMathMinMaxClamp: 'error',
114
- noUndeclaredVariables: 'error',
115
- noUnusedImports: 'error',
116
- noUnusedFunctionParameters: 'error',
117
- noUnusedPrivateClassMembers: 'error',
118
- useExhaustiveDependencies: {
119
- level: 'error',
120
- options: {
121
- reportUnnecessaryDependencies: false
122
- }
123
- },
124
- noUnusedVariables: 'error'
125
- },
126
- style: {
127
- noParameterProperties: 'error',
128
- noYodaExpression: 'error',
129
- useConsistentBuiltinInstantiation: 'error',
130
- useFragmentSyntax: 'error',
131
- useImportType: {
132
- level: 'error',
133
- fix: 'safe',
134
- options: {
135
- style: 'separatedType'
136
- }
137
- },
138
- useSelfClosingElements: {
139
- level: 'error',
140
- fix: 'safe',
141
- options: {}
142
- },
143
- useShorthandAssign: 'error',
144
- useArrayLiterals: 'error'
145
- },
146
- nursery: {
147
- useSortedClasses: {
148
- level: 'error',
149
- fix: 'safe',
150
- options: {
151
- functions: [
152
- 'clsx',
153
- 'cn'
154
- ]
155
- }
156
- }
157
- },
158
- suspicious: {
159
- useAwait: 'error',
160
- noEvolvingTypes: 'error'
161
- }
162
- }
163
- },
164
- javascript: {
165
- formatter: {
166
- quoteStyle: 'single',
167
- jsxQuoteStyle: 'single',
168
- arrowParentheses: 'asNeeded',
169
- trailingCommas: 'all'
170
- }
171
- },
172
- overrides: [
173
- {
174
- includes: [
175
- '**/*.jsx',
176
- '**/*.tsx'
177
- ],
178
- linter: {
179
- rules: {
180
- style: {
181
- noParameterAssign: 'error'
182
- }
183
- }
184
- }
185
- },
186
- {
187
- includes: [
188
- '**/*.ts',
189
- '**/*.tsx'
190
- ],
191
- linter: {
192
- rules: {
193
- correctness: {
194
- noUnusedVariables: 'off'
195
- }
196
- }
197
- }
198
- }
199
- ]
200
- };
201
- const reactOverlay = {
202
- files: {
203
- includes: [
204
- '!**/.storybook'
205
- ]
206
- },
207
- javascript: {
208
- jsxRuntime: 'reactClassic'
209
- },
210
- linter: {
211
- rules: {
212
- style: {
213
- useFragmentSyntax: 'error'
214
- }
215
- }
216
- },
217
- overrides: [
218
- {
219
- includes: [
220
- '**/__tests__/**',
221
- '**/*.{test,spec}.{ts,tsx,js,jsx}'
222
- ],
223
- linter: {
224
- rules: {
225
- correctness: {
226
- noUnusedVariables: 'off'
227
- }
228
- }
229
- }
230
- }
231
- ]
232
- };
233
- const reactConfig = mergeConfigs(indexConfig, reactOverlay);
234
- const nextOverlay = {
235
- files: {
236
- includes: [
237
- '!**/.next',
238
- '!**/.vercel',
239
- '!**/out'
240
- ]
241
- },
242
- javascript: {
243
- jsxRuntime: 'transparent'
244
- },
245
- linter: {
246
- rules: {
247
- correctness: {
248
- useExhaustiveDependencies: {
249
- level: 'error',
250
- options: {
251
- reportUnnecessaryDependencies: true
252
- }
253
- }
254
- }
255
- }
256
- }
257
- };
258
- const nextConfig = mergeConfigs(reactConfig, nextOverlay);
259
- const vueOverlay = {
260
- files: {
261
- includes: [
262
- '!**/.vitepress',
263
- '!**/.output'
264
- ]
265
- },
266
- javascript: {
267
- parser: {
268
- jsxEverywhere: false
269
- }
270
- },
271
- html: {
272
- formatter: {
273
- indentScriptAndStyle: true,
274
- selfCloseVoidElements: 'always'
275
- }
276
- },
277
- overrides: [
278
- {
279
- includes: [
280
- '**/*.vue'
281
- ],
282
- formatter: {
283
- lineWidth: 120
284
- },
285
- javascript: {
286
- formatter: {
287
- quoteStyle: 'single'
288
- }
289
- }
290
- }
291
- ]
292
- };
293
- const vueConfig = mergeConfigs(indexConfig, vueOverlay);
294
- const nuxtOverlay = {
295
- files: {
296
- includes: [
297
- '!**/.nuxt',
298
- '!**/.nitro',
299
- '!**/.output'
300
- ]
301
- },
302
- javascript: {
303
- globals: [
304
- 'defineNuxtConfig',
305
- 'defineAppConfig',
306
- 'defineNuxtPlugin',
307
- 'defineNuxtRouteMiddleware',
308
- 'defineNuxtServerPlugin',
309
- 'defineNitroPlugin',
310
- 'defineEventHandler',
311
- 'defineLazyEventHandler',
312
- 'definePayloadPlugin',
313
- 'defineRouteRules',
314
- 'definePageMeta',
315
- 'useRuntimeConfig',
316
- 'useNuxtApp',
317
- 'useAsyncData',
318
- 'useLazyAsyncData',
319
- 'useFetch',
320
- 'useLazyFetch',
321
- 'useState',
322
- 'useCookie',
323
- 'useHead',
324
- 'useSeoMeta',
325
- 'useError',
326
- 'clearError',
327
- 'showError',
328
- 'navigateTo',
329
- 'abortNavigation',
330
- 'refreshNuxtData',
331
- 'onNuxtReady',
332
- 'useRouter',
333
- 'useRoute',
334
- 'useRequestEvent',
335
- 'useRequestHeaders'
336
- ]
337
- },
338
- overrides: [
339
- {
340
- includes: [
341
- '**/*.ts'
342
- ],
343
- linter: {
344
- rules: {
345
- correctness: {
346
- noUndeclaredVariables: 'error'
347
- }
348
- }
349
- }
350
- }
351
- ]
352
- };
353
- const nuxtConfig = mergeConfigs(vueConfig, nuxtOverlay);
354
- const allPresets = Object.freeze({
355
- index: indexConfig,
356
- react: reactConfig,
357
- next: nextConfig,
358
- vue: vueConfig,
359
- nuxt: nuxtConfig
360
73
  });
74
+ const picocolors = __webpack_require__("./node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.js");
75
+ var picocolors_default = /*#__PURE__*/ __webpack_require__.n(picocolors);
361
76
  const currentDir = dirname(fileURLToPath(import.meta.url));
362
77
  const outputDir = currentDir;
363
78
  const serialize = (config)=>`${JSON.stringify(config, null, 2)}\n`;
@@ -368,19 +83,52 @@ async function ensureDir(path) {
368
83
  }
369
84
  async function buildJsonPresets() {
370
85
  await ensureDir(outputDir);
86
+ const startTime = performance.now();
87
+ console.log(picocolors_default().blue(`
88
+ ██████╗ ██╗ ██████╗ ███╗ ███╗███████╗ ██████╗ ██████╗ ███╗ ██╗███████╗██╗ ██████╗
89
+ ██╔══██╗██║██╔═══██╗████╗ ████║██╔════╝ ██╔════╝██╔═══██╗████╗ ██║██╔════╝██║██╔════╝
90
+ ██████╔╝██║██║ ██║██╔████╔██║█████╗ ██║ ██║ ██║██╔██╗ ██║█████╗ ██║██║ ███╗
91
+ ██╔══██╗██║██║ ██║██║╚██╔╝██║██╔══╝ ██║ ██║ ██║██║╚██╗██║██╔══╝ ██║██║ ██║
92
+ ██████╔╝██║╚██████╔╝██║ ╚═╝ ██║███████╗ ╚██████╗╚██████╔╝██║ ╚████║██║ ██║╚██████╔╝
93
+ ╚═════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═══╝╚═╝ ╚═╝ ╚═════╝
94
+ `));
95
+ console.log(`${picocolors_default().magenta('config')} ${Object.keys(allPresets).length} presets loaded`);
96
+ console.log(`${picocolors_default().cyan('info')} build started...`);
371
97
  const tasks = Object.entries(allPresets).map(async ([name, config])=>{
372
- const filePath = join(outputDir, `${name}.jsonc`);
98
+ const fileName = `${name}.jsonc`;
99
+ const filePath = join(outputDir, fileName);
373
100
  const data = serialize(config);
374
101
  await writeFile(filePath, data, 'utf8');
375
- return filePath;
102
+ const size = Buffer.byteLength(data, 'utf8');
103
+ return {
104
+ fileName,
105
+ size
106
+ };
376
107
  });
377
- const writtenFiles = await Promise.all(tasks);
378
- return writtenFiles;
108
+ const results = await Promise.all(tasks);
109
+ const endTime = performance.now();
110
+ const duration = (endTime - startTime).toFixed(2);
111
+ console.log(`${picocolors_default().green('ready')} built in ${duration} ms`);
112
+ return results;
379
113
  }
380
114
  (async ()=>{
381
115
  try {
382
116
  const files = await buildJsonPresets();
383
- console.log(`Generated presets: ${files.join(', ')}`);
117
+ console.log('');
118
+ const PADDING = 25;
119
+ console.log(`${picocolors_default().gray('File'.padEnd(PADDING))} ${picocolors_default().gray('Size')}`);
120
+ let totalSize = 0;
121
+ for (const file of files){
122
+ const sizeKB = (file.size / 1024).toFixed(1);
123
+ totalSize += file.size;
124
+ const filePath = `dist/${file.fileName}`;
125
+ const paddedPath = filePath.padEnd(PADDING);
126
+ console.log(`${picocolors_default().cyan(paddedPath)} ${picocolors_default().bold(sizeKB + ' kB')}`);
127
+ }
128
+ console.log('');
129
+ const totalKB = (totalSize / 1024).toFixed(1);
130
+ console.log(`${picocolors_default().magenta('Total:'.padEnd(PADDING))} ${totalKB} kB`);
131
+ console.log('');
384
132
  } catch (error) {
385
133
  console.error('Failed to generate Biome presets', error);
386
134
  process.exitCode = 1;
package/dist/index.jsonc CHANGED
@@ -1,27 +1,5 @@
1
1
  {
2
- "$schema": "https://biomejs.dev/schemas/2.3.2/schema.json",
3
- "root": true,
4
- "vcs": {
5
- "enabled": true,
6
- "clientKind": "git",
7
- "useIgnoreFile": true,
8
- "defaultBranch": "main"
9
- },
10
- "files": {
11
- "ignoreUnknown": true,
12
- "includes": [
13
- "**",
14
- "!**/build",
15
- "!**/dist",
16
- "!**/.next"
17
- ]
18
- },
19
- "formatter": {
20
- "enabled": true,
21
- "indentStyle": "space",
22
- "lineWidth": 140,
23
- "formatWithErrors": true
24
- },
2
+ "$schema": "https://biomejs.dev/schemas/2.3.11/schema.json",
25
3
  "assist": {
26
4
  "actions": {
27
5
  "source": {
@@ -42,20 +20,42 @@
42
20
  ]
43
21
  }
44
22
  },
45
- "useSortedKeys": "on",
46
23
  "useSortedAttributes": {
47
24
  "level": "on",
48
25
  "options": {
49
26
  "sortOrder": "natural"
50
27
  }
51
- }
28
+ },
29
+ "useSortedKeys": "on"
52
30
  }
53
31
  }
54
32
  },
33
+ "files": {
34
+ "ignoreUnknown": true,
35
+ "includes": [
36
+ "**",
37
+ "!**/build",
38
+ "!**/dist",
39
+ "!**/.next"
40
+ ]
41
+ },
42
+ "formatter": {
43
+ "enabled": true,
44
+ "formatWithErrors": true,
45
+ "indentStyle": "space",
46
+ "lineWidth": 140
47
+ },
48
+ "javascript": {
49
+ "formatter": {
50
+ "arrowParentheses": "asNeeded",
51
+ "jsxQuoteStyle": "single",
52
+ "quoteStyle": "single",
53
+ "trailingCommas": "all"
54
+ }
55
+ },
55
56
  "linter": {
56
57
  "enabled": true,
57
58
  "rules": {
58
- "recommended": true,
59
59
  "complexity": {
60
60
  "noUselessStringConcat": "error",
61
61
  "noUselessUndefinedInitialization": "error",
@@ -65,63 +65,56 @@
65
65
  "correctness": {
66
66
  "noConstantMathMinMaxClamp": "error",
67
67
  "noUndeclaredVariables": "error",
68
- "noUnusedImports": "error",
69
68
  "noUnusedFunctionParameters": "error",
69
+ "noUnusedImports": "error",
70
70
  "noUnusedPrivateClassMembers": "error",
71
+ "noUnusedVariables": "error",
71
72
  "useExhaustiveDependencies": {
72
73
  "level": "error",
73
74
  "options": {
74
75
  "reportUnnecessaryDependencies": false
75
76
  }
76
- },
77
- "noUnusedVariables": "error"
77
+ }
78
+ },
79
+ "nursery": {
80
+ "useSortedClasses": {
81
+ "fix": "safe",
82
+ "level": "error",
83
+ "options": {
84
+ "functions": [
85
+ "clsx",
86
+ "cn"
87
+ ]
88
+ }
89
+ }
78
90
  },
91
+ "recommended": true,
79
92
  "style": {
80
93
  "noParameterProperties": "error",
81
94
  "noYodaExpression": "error",
95
+ "useArrayLiterals": "error",
82
96
  "useConsistentBuiltinInstantiation": "error",
83
97
  "useFragmentSyntax": "error",
84
98
  "useImportType": {
85
- "level": "error",
86
99
  "fix": "safe",
100
+ "level": "error",
87
101
  "options": {
88
102
  "style": "separatedType"
89
103
  }
90
104
  },
91
105
  "useSelfClosingElements": {
92
- "level": "error",
93
106
  "fix": "safe",
107
+ "level": "error",
94
108
  "options": {}
95
109
  },
96
- "useShorthandAssign": "error",
97
- "useArrayLiterals": "error"
98
- },
99
- "nursery": {
100
- "useSortedClasses": {
101
- "level": "error",
102
- "fix": "safe",
103
- "options": {
104
- "functions": [
105
- "clsx",
106
- "cn"
107
- ]
108
- }
109
- }
110
+ "useShorthandAssign": "error"
110
111
  },
111
112
  "suspicious": {
112
- "useAwait": "error",
113
- "noEvolvingTypes": "error"
113
+ "noEvolvingTypes": "error",
114
+ "useAwait": "error"
114
115
  }
115
116
  }
116
117
  },
117
- "javascript": {
118
- "formatter": {
119
- "quoteStyle": "single",
120
- "jsxQuoteStyle": "single",
121
- "arrowParentheses": "asNeeded",
122
- "trailingCommas": "all"
123
- }
124
- },
125
118
  "overrides": [
126
119
  {
127
120
  "includes": [
@@ -149,5 +142,12 @@
149
142
  }
150
143
  }
151
144
  }
152
- ]
145
+ ],
146
+ "root": true,
147
+ "vcs": {
148
+ "clientKind": "git",
149
+ "defaultBranch": "main",
150
+ "enabled": true,
151
+ "useIgnoreFile": true
152
+ }
153
153
  }