ultracite 7.5.8 → 7.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.
@@ -1,56 +1,9 @@
1
1
  {
2
2
  "root": false,
3
3
  "$schema": "../../../node_modules/@biomejs/biome/configuration_schema.json",
4
+ "extends": ["../../shared/ignores.jsonc"],
4
5
  "files": {
5
- "ignoreUnknown": true,
6
- "includes": [
7
- "**",
8
- "!!**/_generated",
9
- "!!**/*.gen.*",
10
- "!!**/.next",
11
- "!!**/next-env.d.ts",
12
- "!!**/.nuxt",
13
- "!!**/.output",
14
- "!!**/.svelte-kit",
15
- "!!**/.vitepress/cache",
16
- "!!**/.vitepress/dist",
17
- "!!**/dist",
18
- "!!**/build",
19
- "!!**/out",
20
- "!!**/.turbo",
21
- "!!**/.vercel",
22
- "!!**/.netlify",
23
- "!!**/storybook-static",
24
- "!!**/.docusaurus",
25
- "!!**/.cache",
26
- "!!**/public/build",
27
- "!!**/.parcel-cache",
28
- "!!**/.vite",
29
- "!!**/.astro",
30
- "!!**/_astro",
31
- "!!**/coverage",
32
- "!!**/.nyc_output",
33
- "!!**/*.generated.*",
34
- "!!**/*.auto.*",
35
- "!!**/generated",
36
- "!!**/auto-generated",
37
- "!!**/codegen",
38
- "!!**/__generated__",
39
- "!!**/graphql-types.*",
40
- "!!**/schema.d.ts",
41
- "!!**/schema.graphql.d.ts",
42
- "!!**/*.d.ts.map",
43
- "!!**/.expo",
44
- "!!**/.expo-shared",
45
- "!!**/android/build",
46
- "!!**/ios/build",
47
- "!!**/DerivedData/**/*",
48
- "!!**/bun.lock",
49
- "!!**/bun.lockb",
50
- "!!**/package-lock.json",
51
- "!!**/yarn.lock",
52
- "!!**/pnpm-lock.yaml"
53
- ]
6
+ "ignoreUnknown": true
54
7
  },
55
8
  "formatter": {
56
9
  "enabled": true,
@@ -147,6 +100,7 @@
147
100
  "noStaticOnlyClass": "error",
148
101
  "noThisInStatic": "error",
149
102
  "noUselessCatch": "error",
103
+ "noUselessCatchBinding": "error",
150
104
  "noUselessConstructor": "error",
151
105
  "noUselessContinue": "error",
152
106
  "noUselessEmptyExport": "error",
@@ -161,6 +115,7 @@
161
115
  "noUselessTernary": "error",
162
116
  "noUselessThisAlias": "error",
163
117
  "noUselessTypeConstraint": "error",
118
+ "noUselessUndefined": "error",
164
119
  "noUselessUndefinedInitialization": "error",
165
120
  "noVoid": "error",
166
121
  "useArrowFunction": "error",
@@ -177,6 +132,7 @@
177
132
 
178
133
  "noExcessiveLinesPerFunction": "off",
179
134
  "noImplicitCoercions": "off",
135
+ "useMaxParams": "off",
180
136
 
181
137
  /** ------------------------ CSS Rules ------------------------ **/
182
138
  "noImportantStyles": "off"
@@ -317,6 +273,7 @@
317
273
  },
318
274
  "useCollapsedElseIf": "error",
319
275
  "useCollapsedIf": "error",
276
+ "useConsistentArrowReturn": "error",
320
277
  "useConsistentArrayType": "error",
321
278
  "useConsistentBuiltinInstantiation": "error",
322
279
  "useConsistentMemberAccessibility": "error",
@@ -366,6 +323,7 @@
366
323
  "noCommonJs": "off",
367
324
  "noDefaultExport": "off",
368
325
  "noImplicitBoolean": "off",
326
+ "noJsxLiterals": "off",
369
327
  "noMagicNumbers": "off",
370
328
  "noProcessEnv": "off",
371
329
  "useComponentExportOnlyModules": "off",
@@ -456,6 +414,7 @@
456
414
  "useStaticResponseMethods": "error",
457
415
  "useStrictMode": "error",
458
416
  "noNonNullAssertedOptionalChain": "error",
417
+ "noUnusedExpressions": "error",
459
418
 
460
419
  "noConsole": "off",
461
420
 
@@ -472,7 +431,10 @@
472
431
  "noEmptyBlock": "error",
473
432
  "noImportantInKeyframe": "error",
474
433
  "noShorthandPropertyOverrides": "error",
475
- "noUnknownAtRules": "error"
434
+ "noUnknownAtRules": "error",
435
+
436
+ /** ------------------------ CSS Rules ------------------------ **/
437
+ "noEmptySource": "error"
476
438
  }
477
439
  }
478
440
  },
@@ -613,6 +575,7 @@
613
575
  "**/dist",
614
576
  "**/build",
615
577
  "**/.next",
578
+ "**/.open-next",
616
579
  "**/.nuxt",
617
580
  "**/out",
618
581
  "**/coverage",
@@ -3,6 +3,9 @@
3
3
  "$schema": "../../../node_modules/@biomejs/biome/configuration_schema.json",
4
4
  "linter": {
5
5
  "rules": {
6
+ "correctness": {
7
+ "noNextAsyncClientComponent": "error"
8
+ },
6
9
  "performance": {
7
10
  "noImgElement": "error"
8
11
  },
@@ -8,7 +8,9 @@
8
8
  },
9
9
  "correctness": {
10
10
  "noQwikUseVisibleTask": "error",
11
- "useQwikClasslist": "error"
11
+ "useQwikClasslist": "error",
12
+ "useQwikMethodUsage": "error",
13
+ "useQwikValidLexicalScope": "error"
12
14
  }
13
15
  }
14
16
  }
@@ -16,6 +16,7 @@
16
16
  "suspicious": {
17
17
  "noArrayIndexKey": "error",
18
18
  "noDuplicateJsxProps": "error",
19
+ "noReactForwardRef": "error",
19
20
  "noSuspiciousSemicolonInJsx": "error",
20
21
 
21
22
  "noReactSpecificProps": "off"
@@ -13,7 +13,12 @@
13
13
  "linter": {
14
14
  "rules": {
15
15
  "correctness": {
16
- "noUnusedImports": "off"
16
+ "noUnusedImports": "off",
17
+ "noVueDataObjectDeclaration": "error",
18
+ "noVueDuplicateKeys": "error",
19
+ "noVueReservedKeys": "error",
20
+ "noVueReservedProps": "error",
21
+ "noVueSetupPropsReactivityLoss": "error"
17
22
  },
18
23
  "suspicious": {
19
24
  "noReactSpecificProps": "error"
@@ -18,6 +18,7 @@ import unicorn from "eslint-plugin-unicorn";
18
18
  import unusedImports from "eslint-plugin-unused-imports";
19
19
  import globals from "globals";
20
20
 
21
+ import { ignorePatterns } from "../../shared/ignores.mjs";
21
22
  import compatRules from "./rules/compat.mjs";
22
23
  import cypressRules from "./rules/cypress.mjs";
23
24
  import eslintTypescriptRules from "./rules/eslint-typescript.mjs";
@@ -36,7 +37,7 @@ import unusedImportsRules from "./rules/unused-imports.mjs";
36
37
  const config = [
37
38
  importX.flatConfigs.typescript,
38
39
  {
39
- ignores: ["**/dist/", "**/build/", "**/.next/", "**/.turbo/"],
40
+ ignores: ignorePatterns,
40
41
  },
41
42
  {
42
43
  files: [
@@ -1,4 +1,6 @@
1
- import { rules } from "@tanstack/eslint-plugin-query";
1
+ import pluginQuery from "@tanstack/eslint-plugin-query";
2
+
3
+ const { rules } = pluginQuery;
2
4
 
3
5
  const availableKeys = Object.keys(rules).filter(
4
6
  (key) => !rules[key].meta.deprecated
@@ -1,10 +1,13 @@
1
1
  import { defineConfig } from "oxfmt";
2
2
 
3
+ import { ignorePatterns } from "../shared/ignores.mjs";
4
+
3
5
  export default defineConfig({
4
6
  arrowParens: "always",
5
7
  bracketSameLine: false,
6
8
  bracketSpacing: true,
7
9
  endOfLine: "lf",
10
+ ignorePatterns,
8
11
  jsxSingleQuote: false,
9
12
  printWidth: 80,
10
13
  quoteProps: "as-needed",
@@ -1,9 +1,12 @@
1
1
  import { defineConfig } from "oxlint";
2
2
 
3
+ import { ignorePatterns } from "../../shared/ignores.mjs";
4
+
3
5
  export default defineConfig({
4
6
  env: {
5
7
  browser: true,
6
8
  },
9
+ ignorePatterns,
7
10
  overrides: [
8
11
  {
9
12
  // Shared test file overrides — framework-specific test rules
@@ -370,6 +373,8 @@ export default defineConfig({
370
373
  "typescript/no-unnecessary-type-assertion": "error",
371
374
  "typescript/no-unnecessary-type-constraint": "error",
372
375
  "typescript/no-unnecessary-type-conversion": "error",
376
+ "typescript/no-unnecessary-qualifier": "error",
377
+ "typescript/no-unnecessary-type-parameters": "error",
373
378
  "typescript/no-unsafe-argument": "error",
374
379
  "typescript/no-unsafe-assignment": "error",
375
380
  "typescript/no-unsafe-call": "error",
@@ -380,6 +385,7 @@ export default defineConfig({
380
385
  "typescript/no-unsafe-return": "error",
381
386
  "typescript/no-unsafe-type-assertion": "error",
382
387
  "typescript/no-unsafe-unary-minus": "error",
388
+ "typescript/no-useless-default-assignment": "error",
383
389
  "typescript/no-useless-empty-export": "error",
384
390
  "typescript/no-var-requires": "off",
385
391
  "typescript/no-wrapper-object-types": "error",
@@ -397,6 +403,7 @@ export default defineConfig({
397
403
  "typescript/prefer-nullish-coalescing": "error",
398
404
  "typescript/prefer-promise-reject-errors": "error",
399
405
  "typescript/prefer-readonly": "error",
406
+ "typescript/prefer-readonly-parameter-types": "error",
400
407
  "typescript/prefer-reduce-type-parameter": "error",
401
408
  "typescript/prefer-regexp-exec": "error",
402
409
  "typescript/prefer-return-this-type": "error",
@@ -410,6 +417,7 @@ export default defineConfig({
410
417
  "typescript/restrict-template-expressions": "error",
411
418
  "typescript/return-await": "error",
412
419
  "typescript/strict-boolean-expressions": "error",
420
+ "typescript/strict-void-return": "error",
413
421
  "typescript/switch-exhaustiveness-check": "error",
414
422
  "typescript/triple-slash-reference": "error",
415
423
  "typescript/unbound-method": "error",
@@ -417,6 +425,7 @@ export default defineConfig({
417
425
  "typescript/use-unknown-in-catch-callback-variable": "error",
418
426
 
419
427
  // ── unicorn ────────────────────────────────────────────────────────
428
+ "unicorn/consistent-template-literal-escape": "error",
420
429
  "unicorn/catch-error-name": "error",
421
430
  "unicorn/consistent-assert": "error",
422
431
  "unicorn/consistent-date-clone": "error",
@@ -40,10 +40,12 @@ export default defineConfig({
40
40
  "jest/prefer-called-with": "error",
41
41
  "jest/prefer-comparison-matcher": "error",
42
42
  "jest/prefer-each": "error",
43
+ "jest/prefer-ending-with-an-expect": "error",
43
44
  "jest/prefer-equality-matcher": "error",
44
45
  "jest/prefer-expect-resolves": "error",
45
46
  "jest/prefer-hooks-in-order": "error",
46
47
  "jest/prefer-hooks-on-top": "error",
48
+ "jest/prefer-importing-jest-globals": "error",
47
49
  "jest/prefer-jest-mocked": "error",
48
50
  "jest/prefer-lowercase-title": "error",
49
51
  "jest/prefer-mock-promise-shorthand": "error",
@@ -61,6 +63,7 @@ export default defineConfig({
61
63
  "jest/require-top-level-describe": "error",
62
64
  "jest/valid-describe-callback": "error",
63
65
  "jest/valid-expect": "error",
66
+ "jest/valid-expect-in-promise": "error",
64
67
  "jest/valid-title": "error",
65
68
 
66
69
  // Disabled: bun:test mock.module() must be called at top level
@@ -61,7 +61,9 @@ export default defineConfig({
61
61
  "vitest/require-top-level-describe": "error",
62
62
  "vitest/valid-describe-callback": "error",
63
63
  "vitest/valid-expect": "error",
64
- "vitest/valid-title": "error",
64
+ "vitest/valid-expect-in-promise": "error",
65
+ // Disabled: conflicts with prefer-describe-function-title — function refs aren't string titles (#665)
66
+ "vitest/valid-title": "off",
65
67
  "vitest/warn-todo": "error",
66
68
 
67
69
  // Disabled: mock callbacks often need empty functions
@@ -0,0 +1 @@
1
+ export declare const ignorePatterns: string[];
@@ -0,0 +1,55 @@
1
+ {
2
+ // Auto-generated from ignores.mjs — do not edit directly.
3
+ // This file exists so biome can extend it via "extends".
4
+ "files": {
5
+ "includes": [
6
+ "**",
7
+ "!!**/dist",
8
+ "!!**/build",
9
+ "!!**/out",
10
+ "!!**/.next",
11
+ "!!**/.open-next",
12
+ "!!**/.nuxt",
13
+ "!!**/.output",
14
+ "!!**/.svelte-kit",
15
+ "!!**/.vitepress/cache",
16
+ "!!**/.vitepress/dist",
17
+ "!!**/.turbo",
18
+ "!!**/.vercel",
19
+ "!!**/.netlify",
20
+ "!!**/.docusaurus",
21
+ "!!**/.cache",
22
+ "!!**/.parcel-cache",
23
+ "!!**/.vite",
24
+ "!!**/.astro",
25
+ "!!**/_astro",
26
+ "!!**/public/build",
27
+ "!!**/storybook-static",
28
+ "!!**/_generated",
29
+ "!!**/*.gen.*",
30
+ "!!**/*.generated.*",
31
+ "!!**/*.auto.*",
32
+ "!!**/generated",
33
+ "!!**/auto-generated",
34
+ "!!**/codegen",
35
+ "!!**/__generated__",
36
+ "!!**/graphql-types.*",
37
+ "!!**/schema.d.ts",
38
+ "!!**/schema.graphql.d.ts",
39
+ "!!**/*.d.ts.map",
40
+ "!!**/coverage",
41
+ "!!**/.nyc_output",
42
+ "!!**/.expo",
43
+ "!!**/.expo-shared",
44
+ "!!**/android/build",
45
+ "!!**/ios/build",
46
+ "!!**/DerivedData/**/*",
47
+ "!!**/bun.lock",
48
+ "!!**/bun.lockb",
49
+ "!!**/package-lock.json",
50
+ "!!**/yarn.lock",
51
+ "!!**/pnpm-lock.yaml",
52
+ "!!**/next-env.d.ts"
53
+ ]
54
+ }
55
+ }
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Canonical ignore patterns shared across all linters and formatters.
3
+ *
4
+ * This file is the single source of truth. The prebuild script generates
5
+ * ignores.jsonc from this list (for biome's `extends`). Other tools
6
+ * (oxlint, oxfmt, eslint) import this module directly.
7
+ */
8
+ export const ignorePatterns = [
9
+ // ── Build / framework output ──────────────────────────────────────
10
+ "**/dist",
11
+ "**/build",
12
+ "**/out",
13
+ "**/.next",
14
+ "**/.open-next",
15
+ "**/.nuxt",
16
+ "**/.output",
17
+ "**/.svelte-kit",
18
+ "**/.vitepress/cache",
19
+ "**/.vitepress/dist",
20
+ "**/.turbo",
21
+ "**/.vercel",
22
+ "**/.netlify",
23
+ "**/.docusaurus",
24
+ "**/.cache",
25
+ "**/.parcel-cache",
26
+ "**/.vite",
27
+ "**/.astro",
28
+ "**/_astro",
29
+ "**/public/build",
30
+ "**/storybook-static",
31
+
32
+ // ── Generated code ────────────────────────────────────────────────
33
+ "**/_generated",
34
+ "**/*.gen.*",
35
+ "**/*.generated.*",
36
+ "**/*.auto.*",
37
+ "**/generated",
38
+ "**/auto-generated",
39
+ "**/codegen",
40
+ "**/__generated__",
41
+ "**/graphql-types.*",
42
+ "**/schema.d.ts",
43
+ "**/schema.graphql.d.ts",
44
+ "**/*.d.ts.map",
45
+
46
+ // ── Test coverage ─────────────────────────────────────────────────
47
+ "**/coverage",
48
+ "**/.nyc_output",
49
+
50
+ // ── Mobile ────────────────────────────────────────────────────────
51
+ "**/.expo",
52
+ "**/.expo-shared",
53
+ "**/android/build",
54
+ "**/ios/build",
55
+ "**/DerivedData/**/*",
56
+
57
+ // ── Lock files ────────────────────────────────────────────────────
58
+ "**/bun.lock",
59
+ "**/bun.lockb",
60
+ "**/package-lock.json",
61
+ "**/yarn.lock",
62
+ "**/pnpm-lock.yaml",
63
+
64
+ // ── Framework type definitions ────────────────────────────────────
65
+ "**/next-env.d.ts",
66
+ ];