ultracite 7.8.0 → 7.8.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.
- package/README.md +52 -12
- package/config/oxlint/core/index.mjs +5 -0
- package/config/oxlint/tanstack/index.mjs +6 -0
- package/config/oxlint/vue/index.mjs +13 -0
- package/config/stylelint/stylelint.config.mjs +1 -0
- package/dist/index.js +66 -71
- package/package.json +21 -22
- package/dist/adal-VMG3GLKT.svg +0 -1
- package/dist/aider-K7JLZT2D.svg +0 -1
- package/dist/amazon-q-TSOJNPXB.svg +0 -1
- package/dist/amp-EV4LVL5I.svg +0 -1
- package/dist/antigravity-JVONECNW.svg +0 -1
- package/dist/augmentcode-Q62PVXKO.svg +0 -1
- package/dist/biome-TVLEY2T4.svg +0 -1
- package/dist/bob-MRQ23J26.svg +0 -1
- package/dist/claude-6DLEHRDQ.svg +0 -1
- package/dist/cline-6HWKIYN7.svg +0 -1
- package/dist/codebuddy-OD3VECQ4.svg +0 -1
- package/dist/coder-7BVXO5OJ.svg +0 -1
- package/dist/codex-NQZ5TJCL.svg +0 -1
- package/dist/continue-LKI2ZW3R.svg +0 -1
- package/dist/copilot-L2IY45R2.svg +0 -1
- package/dist/crush-LYLRDQGZ.svg +0 -1
- package/dist/cursor-GQNH5LCA.svg +0 -1
- package/dist/devin-KY5ISKEW.svg +0 -1
- package/dist/droid-266OHJBT.svg +0 -1
- package/dist/eslint-7IULJKW7.svg +0 -1
- package/dist/firebase-studio-ILLWWYU7.svg +0 -1
- package/dist/firebender-UNO6LSZG.svg +0 -1
- package/dist/gemini-OYS6V4BH.svg +0 -1
- package/dist/goose-XBIEVD4H.svg +0 -1
- package/dist/index.d.ts +0 -5
- package/dist/jules-HJPVWU73.svg +0 -1
- package/dist/junie-RUWBUV6N.svg +0 -1
- package/dist/kilo-code-4QYUYY2E.svg +0 -1
- package/dist/kimi-6SOFW673.svg +0 -1
- package/dist/kiro-N2M256R6.svg +0 -1
- package/dist/langchain-5SXQKAL3.svg +0 -1
- package/dist/lovable-UELF2DY5.svg +0 -1
- package/dist/mcpjam-V2GHUPJN.svg +0 -1
- package/dist/mistral-HQ63EC2B.svg +0 -1
- package/dist/ona-KYYK3HQX.svg +0 -1
- package/dist/open-hands-K5EYKO6T.svg +0 -1
- package/dist/openclaw-XFPF7FMJ.svg +0 -1
- package/dist/opencode-K3274JKQ.svg +0 -1
- package/dist/oxlint-5IE3ABOZ.svg +0 -1
- package/dist/pi-AZOSKO3D.svg +0 -1
- package/dist/prettier-O4V2FSEA.svg +0 -1
- package/dist/qoder-LPW47DKG.svg +0 -1
- package/dist/qwen-N3D5CQYL.svg +0 -1
- package/dist/replit-WKR4Y6HH.svg +0 -1
- package/dist/roo-code-CVLBTS7D.svg +0 -1
- package/dist/snowflake-S3LTTUXJ.svg +0 -1
- package/dist/stylelint-DEBSWZVS.svg +0 -1
- package/dist/trae-RXVCFBOF.svg +0 -1
- package/dist/vercel-27VSITAQ.svg +0 -1
- package/dist/void-NYH3U3BB.svg +0 -1
- package/dist/vscode-DEOUEB65.svg +0 -1
- package/dist/warp-OZKAAQRT.svg +0 -1
- package/dist/windsurf-5T7JOTST.svg +0 -1
- package/dist/zed-SIARPESF.svg +0 -1
- package/dist/zencoder-VTSK5Z7Z.svg +0 -1
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
**A production-grade, zero-configuration preset for ESLint, Biome, and Oxlint.**
|
|
4
4
|
|
|
5
|
-
Ultracite
|
|
5
|
+
Ultracite helps you and your AI models write consistent, type-safe code without the hassle of configuration. Pick your preferred toolchain, run one command, and get hundreds of battle-tested rules wired up in seconds — across single repos and monorepos alike.
|
|
6
6
|
|
|
7
7
|
<div>
|
|
8
8
|
<img src="https://img.shields.io/npm/dy/ultracite" alt="" />
|
|
@@ -16,33 +16,73 @@ Ultracite is designed to help you and your AI models write consistent and type-s
|
|
|
16
16
|
npx ultracite init
|
|
17
17
|
```
|
|
18
18
|
|
|
19
|
-
The interactive setup
|
|
20
|
-
|
|
19
|
+
The interactive setup guides you through choosing your formatter/linter, framework, editor, and AI agents, then installs and configures everything for you. Re-run it any time to adjust your setup.
|
|
20
|
+
|
|
21
|
+
> Prefer a different package manager? Ultracite detects yours automatically, or you can run it with `pnpm dlx`, `yarn dlx`, or `bunx`.
|
|
22
|
+
|
|
23
|
+
## Commands
|
|
24
|
+
|
|
25
|
+
| Command | Description |
|
|
26
|
+
| ---------------------------- | ---------------------------------------------------------------------------------------- |
|
|
27
|
+
| `ultracite init` | Initialize Ultracite in the current directory (interactive by default). |
|
|
28
|
+
| `ultracite check [files...]` | Lint without writing changes. Unknown flags are passed through to the underlying linter. |
|
|
29
|
+
| `ultracite fix [files...]` | Lint and auto-fix. Unknown flags are passed through to the underlying linter. |
|
|
30
|
+
| `ultracite doctor` | Verify your Ultracite setup and diagnose configuration issues. |
|
|
31
|
+
|
|
32
|
+
`check` and `fix` accept an optional list of files or globs; omit them to run against the whole project. Add `-v` / `--version` or `-h` / `--help` for CLI details.
|
|
33
|
+
|
|
34
|
+
Common `init` flags for non-interactive / CI use:
|
|
35
|
+
|
|
36
|
+
| Flag | Description |
|
|
37
|
+
| ------------------------------ | ------------------------------------------------------------------- |
|
|
38
|
+
| `--linter <linter>` | Toolchain to configure (Biome, ESLint, or Oxlint). |
|
|
39
|
+
| `--pm <pm>` | Package manager to use. |
|
|
40
|
+
| `--editors <editors...>` | Editors to configure (use `universal` for `.vscode/settings.json`). |
|
|
41
|
+
| `--agents <agents...>` | AI agents to enable (use `universal` for `AGENTS.md`). |
|
|
42
|
+
| `--frameworks <frameworks...>` | Frameworks in use, for framework-aware rules. |
|
|
43
|
+
| `--type-aware` | Enable type-aware linting. |
|
|
44
|
+
| `--install-skill` | Install the reusable Ultracite skill after setup. |
|
|
45
|
+
| `--skip-install` | Configure without installing dependencies. |
|
|
46
|
+
| `--quiet` | Suppress interactive prompts (auto-enabled in CI). |
|
|
47
|
+
|
|
48
|
+
See the [CLI reference](https://docs.ultracite.ai/) for the full, current list of options.
|
|
21
49
|
|
|
22
50
|
## Supported Tools
|
|
23
51
|
|
|
24
|
-
- **Biome** — All-in-one formatting and linting
|
|
25
|
-
- **ESLint + Prettier + Stylelint** —
|
|
26
|
-
- **Oxlint + Oxfmt** —
|
|
52
|
+
- **Biome** — All-in-one formatting and linting in a single fast binary.
|
|
53
|
+
- **ESLint + Prettier + Stylelint** — The most mature ecosystem with the largest plugin support.
|
|
54
|
+
- **Oxlint + Oxfmt** — Rust-based tooling that runs dramatically faster than ESLint, part of the Oxc ecosystem.
|
|
27
55
|
|
|
28
56
|
## Key Features
|
|
29
57
|
|
|
30
58
|
### ⚡ Subsecond Performance
|
|
31
59
|
|
|
32
|
-
Built
|
|
60
|
+
Built around Rust-based tooling for near-instant analysis. On-save checks feel seamless and stay out of your way.
|
|
33
61
|
|
|
34
62
|
### 🎯 Zero-Config by Design
|
|
35
63
|
|
|
36
|
-
Hundreds of preconfigured rules
|
|
64
|
+
Hundreds of preconfigured rules tuned for modern JavaScript and TypeScript. It works out of the box, and you can override anything when you need to.
|
|
37
65
|
|
|
38
66
|
### 🤖 AI-Ready
|
|
39
67
|
|
|
40
|
-
Generate
|
|
68
|
+
Generate ruleset and context files for a wide range of AI agents — Claude Code, GitHub Copilot, Cursor, Gemini, and many more — so humans and models share one consistent style.
|
|
41
69
|
|
|
42
70
|
### 🏗️ Monorepo Ready
|
|
43
71
|
|
|
44
|
-
|
|
72
|
+
One unified toolchain configuration across every package and app, eliminating duplicate config files while keeping standards consistent.
|
|
73
|
+
|
|
74
|
+
## Using the presets directly
|
|
75
|
+
|
|
76
|
+
Beyond the CLI, Ultracite publishes ready-made config presets you can extend in your own setup (Biome, ESLint, Oxlint, Oxfmt, Prettier, and Stylelint). `ultracite init` wires these up for you; if you'd rather reference them by hand, the [configuration docs](https://docs.ultracite.ai/) list the exact import paths and extension points for each toolchain.
|
|
77
|
+
|
|
78
|
+
## Documentation
|
|
79
|
+
|
|
80
|
+
Full setup guides, configuration options, rule references, framework and editor integrations, and examples live in the docs:
|
|
81
|
+
|
|
82
|
+
- **Docs:** https://docs.ultracite.ai/
|
|
83
|
+
- **Website:** https://www.ultracite.ai/
|
|
84
|
+
- **Issues & discussions:** https://github.com/haydenbleasel/ultracite
|
|
45
85
|
|
|
46
|
-
|
|
86
|
+
## License
|
|
47
87
|
|
|
48
|
-
|
|
88
|
+
MIT © [Hayden Bleasel](https://github.com/haydenbleasel)
|
|
@@ -199,6 +199,7 @@ export default defineConfig({
|
|
|
199
199
|
"prefer-const": "error",
|
|
200
200
|
"prefer-destructuring": "error",
|
|
201
201
|
"prefer-exponentiation-operator": "error",
|
|
202
|
+
"prefer-named-capture-group": "error",
|
|
202
203
|
"prefer-numeric-literals": "error",
|
|
203
204
|
"prefer-object-has-own": "error",
|
|
204
205
|
"prefer-object-spread": "error",
|
|
@@ -277,9 +278,11 @@ export default defineConfig({
|
|
|
277
278
|
"jsdoc/require-throws-description": "error",
|
|
278
279
|
"jsdoc/require-throws-type": "error",
|
|
279
280
|
"jsdoc/require-yields": "error",
|
|
281
|
+
"jsdoc/require-yields-description": "error",
|
|
280
282
|
"jsdoc/require-yields-type": "error",
|
|
281
283
|
|
|
282
284
|
// ── node ───────────────────────────────────────────────────────────
|
|
285
|
+
"node/callback-return": "error",
|
|
283
286
|
"node/global-require": "error",
|
|
284
287
|
"node/handle-callback-err": "error",
|
|
285
288
|
"node/no-exports-assign": "error",
|
|
@@ -350,6 +353,7 @@ export default defineConfig({
|
|
|
350
353
|
"typescript/explicit-function-return-type": "off",
|
|
351
354
|
"typescript/explicit-member-accessibility": "off",
|
|
352
355
|
"typescript/explicit-module-boundary-types": "off",
|
|
356
|
+
"typescript/method-signature-style": "error",
|
|
353
357
|
"typescript/no-array-delete": "error",
|
|
354
358
|
"typescript/no-base-to-string": "error",
|
|
355
359
|
"typescript/no-confusing-non-null-assertion": "error",
|
|
@@ -454,6 +458,7 @@ export default defineConfig({
|
|
|
454
458
|
"unicorn/escape-case": "error",
|
|
455
459
|
"unicorn/explicit-length-check": "off",
|
|
456
460
|
"unicorn/filename-case": "error",
|
|
461
|
+
"unicorn/import-style": "error",
|
|
457
462
|
"unicorn/new-for-builtins": "error",
|
|
458
463
|
"unicorn/no-abusive-eslint-disable": "error",
|
|
459
464
|
"unicorn/no-accessor-recursion": "error",
|
|
@@ -2,6 +2,12 @@ import { defineConfig } from "oxlint";
|
|
|
2
2
|
|
|
3
3
|
export default defineConfig({
|
|
4
4
|
overrides: [
|
|
5
|
+
{
|
|
6
|
+
files: ["**/routes/**/*.{tsx,ts}", "**/app/routes/**/*.{tsx,ts}"],
|
|
7
|
+
rules: {
|
|
8
|
+
"unicorn/filename-case": "off",
|
|
9
|
+
},
|
|
10
|
+
},
|
|
5
11
|
{
|
|
6
12
|
files: ["**/routeTree.gen.ts"],
|
|
7
13
|
rules: {
|
|
@@ -3,7 +3,20 @@ import { defineConfig } from "oxlint";
|
|
|
3
3
|
export default defineConfig({
|
|
4
4
|
plugins: ["vue"],
|
|
5
5
|
rules: {
|
|
6
|
+
"vue/component-definition-name-casing": "error",
|
|
7
|
+
"vue/no-computed-properties-in-data": "error",
|
|
6
8
|
"vue/no-deprecated-model-definition": "error",
|
|
9
|
+
"vue/no-deprecated-props-default-this": "error",
|
|
10
|
+
"vue/no-expose-after-await": "error",
|
|
11
|
+
"vue/no-reserved-component-names": "error",
|
|
12
|
+
"vue/no-shared-component-data": "error",
|
|
13
|
+
"vue/no-watch-after-await": "error",
|
|
14
|
+
"vue/require-prop-type-constructor": "error",
|
|
15
|
+
"vue/require-render-return": "error",
|
|
16
|
+
"vue/require-slots-as-functions": "error",
|
|
7
17
|
"vue/return-in-computed-property": "error",
|
|
18
|
+
"vue/return-in-emits-validator": "error",
|
|
19
|
+
"vue/valid-define-options": "error",
|
|
20
|
+
"vue/valid-next-tick": "error",
|
|
8
21
|
},
|
|
9
22
|
});
|