oxlint-plugin-vize 0.115.0 → 0.116.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.
- package/README.md +5 -4
- package/dist/index.d.mts +3 -1
- package/dist/index.mjs +12 -1
- package/package.json +10 -10
package/README.md
CHANGED
|
@@ -12,7 +12,7 @@ This package lets Oxlint execute Patina through Vize's native binding while stil
|
|
|
12
12
|
|
|
13
13
|
- Runs Vize Patina rules inside Oxlint as `vize/*` diagnostics, so Vue-specific findings can live beside Oxlint core rules in one command.
|
|
14
14
|
- Keeps Oxlint's existing rules and built-in `vue` plugin active. The bridge adds Vize rules; it does not replace `eqeqeq`, `no-console`, or your existing `vue/*` setup.
|
|
15
|
-
- Ships preset rule maps for JS/TS Oxlint configs: `configs.recommended`, `configs.essential`, `configs.opinionated`, `configs.nuxt`, `configs.all`, and type-aware opt-in variants.
|
|
15
|
+
- Ships preset rule maps for JS/TS Oxlint configs: `configs.recommended`, `configs.essential`, `configs.ecosystem`, `configs.opinionated`, `configs.nuxt`, `configs.all`, and type-aware opt-in variants.
|
|
16
16
|
- Supports runtime settings through `settings.vize`, including `locale`, `preset`, and `helpLevel`.
|
|
17
17
|
- Provides the `oxlint-vize` CLI wrapper, which runs Oxlint with a scriptless-SFC workaround and rewrites temporary paths back to the original `.vue` files.
|
|
18
18
|
- Resolves Vize native bindings through platform-specific optional dependencies, so published installs do not need a separate `@vizejs/native` package.
|
|
@@ -81,7 +81,7 @@ export default {
|
|
|
81
81
|
};
|
|
82
82
|
```
|
|
83
83
|
|
|
84
|
-
`configs.recommended`, `configs.essential`, `configs.opinionated`, `configs.nuxt`, and `configs.all` intentionally skip Vize's unstable type-aware rules for now. If you explicitly want those experimental rules too, use `configs.recommendedWithTypeAware`, `configs.opinionatedWithTypeAware`, or `createVizeRuleConfig({ includeTypeAware: true, preset: ... })`.
|
|
84
|
+
`configs.recommended`, `configs.essential`, `configs.ecosystem`, `configs.opinionated`, `configs.nuxt`, and `configs.all` intentionally skip Vize's unstable type-aware rules for now. If you explicitly want those experimental rules too, use `configs.recommendedWithTypeAware`, `configs.ecosystemWithTypeAware`, `configs.opinionatedWithTypeAware`, or `createVizeRuleConfig({ includeTypeAware: true, preset: ... })`.
|
|
85
85
|
|
|
86
86
|
You can pass Patina settings through `settings.vize`:
|
|
87
87
|
|
|
@@ -97,12 +97,13 @@ You can pass Patina settings through `settings.vize`:
|
|
|
97
97
|
}
|
|
98
98
|
```
|
|
99
99
|
|
|
100
|
-
- `preset` accepts `"general-recommended"`, `"essential"`, `"incremental"`, `"opinionated"`, or `"nuxt"`.
|
|
100
|
+
- `preset` accepts `"general-recommended"`, `"essential"`, `"ecosystem"`, `"incremental"`, `"opinionated"`, or `"nuxt"`.
|
|
101
101
|
- `preset` defaults to `"general-recommended"`.
|
|
102
102
|
- Bundle presets keep out-of-bundle rules quiet even if they are still listed in `rules`.
|
|
103
103
|
- `"incremental"` skips bundle gating and runs only the Vize rules you explicitly configure in Oxlint.
|
|
104
|
+
- `"ecosystem"` enables Vize's Vue Router, Vue I18n, Pinia, Vue Test Utils, Nuxt, and Void Vue rules without taking on the full opinionated preset.
|
|
104
105
|
- `"opinionated"` is the preset that enables Vize's built-in script rules such as `vize/script/no-options-api`.
|
|
105
|
-
- Legacy aliases such as `"GeneralRecommended"`, `"Essential"`, `"Incremental"`, `"Opinionated"`, `"Nuxt"`, and `"happy-path"` are still accepted for compatibility.
|
|
106
|
+
- Legacy aliases such as `"GeneralRecommended"`, `"Essential"`, `"Ecosystem"`, `"Incremental"`, `"Opinionated"`, `"Nuxt"`, and `"happy-path"` are still accepted for compatibility.
|
|
106
107
|
- `helpLevel` accepts `"full"`, `"short"`, or `"none"`.
|
|
107
108
|
- `helpLevel: "full"` only expands the Patina remediation text. It does not restore original-SFC formatter anchors or machine-readable range fidelity.
|
|
108
109
|
- `showHelp` is still accepted for backward compatibility, but `helpLevel` is the preferred setting.
|
package/dist/index.d.mts
CHANGED
|
@@ -4,7 +4,7 @@ import * as _$_oxlint_plugins0 from "@oxlint/plugins";
|
|
|
4
4
|
declare const _default: _$_oxlint_plugins0.Plugin;
|
|
5
5
|
//#endregion
|
|
6
6
|
//#region src/model.d.ts
|
|
7
|
-
type PatinaPreset = "general-recommended" | "essential" | "incremental" | "opinionated" | "nuxt";
|
|
7
|
+
type PatinaPreset = "general-recommended" | "essential" | "ecosystem" | "incremental" | "opinionated" | "nuxt";
|
|
8
8
|
//#endregion
|
|
9
9
|
//#region src/configs.d.ts
|
|
10
10
|
type OxlintRuleSeverity = "error" | "warn";
|
|
@@ -17,6 +17,8 @@ interface VizeRuleConfigOptions {
|
|
|
17
17
|
declare function createVizeRuleConfig(options?: VizeRuleConfigOptions): OxlintRuleConfig;
|
|
18
18
|
declare const configs: {
|
|
19
19
|
readonly all: OxlintRuleConfig;
|
|
20
|
+
readonly ecosystem: OxlintRuleConfig;
|
|
21
|
+
readonly ecosystemWithTypeAware: OxlintRuleConfig;
|
|
20
22
|
readonly essential: OxlintRuleConfig;
|
|
21
23
|
readonly nuxt: OxlintRuleConfig;
|
|
22
24
|
readonly opinionated: OxlintRuleConfig;
|
package/dist/index.mjs
CHANGED
|
@@ -149,6 +149,8 @@ const PRESET_ALIASES = new Map([
|
|
|
149
149
|
["default", "general-recommended"],
|
|
150
150
|
["recommended", "general-recommended"],
|
|
151
151
|
["essential", "essential"],
|
|
152
|
+
["ecosystem", "ecosystem"],
|
|
153
|
+
["eco", "ecosystem"],
|
|
152
154
|
["incremental", "incremental"],
|
|
153
155
|
["opinionated", "opinionated"],
|
|
154
156
|
["opnionated", "opinionated"],
|
|
@@ -212,6 +214,7 @@ if (import.meta.vitest) {
|
|
|
212
214
|
it("normalizes preset aliases", () => {
|
|
213
215
|
expect(parseVizeSettings({ preset: "recommended" })).toEqual({ preset: "general-recommended" });
|
|
214
216
|
expect(parseVizeSettings({ preset: "incremental" })).toEqual({ preset: "incremental" });
|
|
217
|
+
expect(parseVizeSettings({ preset: "ecosystem" })).toEqual({ preset: "ecosystem" });
|
|
215
218
|
expect(parseVizeSettings({ preset: "strict" })).toEqual({ preset: "opinionated" });
|
|
216
219
|
expect(parseVizeSettings({ preset: "Opnionated" })).toEqual({ preset: "opinionated" });
|
|
217
220
|
});
|
|
@@ -448,6 +451,11 @@ function createVizeRuleConfig(options = {}) {
|
|
|
448
451
|
}
|
|
449
452
|
const configs = {
|
|
450
453
|
all: createVizeRuleConfig({ preset: "all" }),
|
|
454
|
+
ecosystem: createVizeRuleConfig({ preset: "ecosystem" }),
|
|
455
|
+
ecosystemWithTypeAware: createVizeRuleConfig({
|
|
456
|
+
includeTypeAware: true,
|
|
457
|
+
preset: "ecosystem"
|
|
458
|
+
}),
|
|
451
459
|
essential: createVizeRuleConfig({ preset: "essential" }),
|
|
452
460
|
nuxt: createVizeRuleConfig({ preset: "nuxt" }),
|
|
453
461
|
opinionated: createVizeRuleConfig({ preset: "opinionated" }),
|
|
@@ -484,9 +492,12 @@ if (import.meta.vitest) {
|
|
|
484
492
|
expect(configs.opinionated["vize/type/require-typed-props"]).toBeUndefined();
|
|
485
493
|
expect(configs.opinionatedWithTypeAware["vize/type/require-typed-props"]).toBe("warn");
|
|
486
494
|
});
|
|
487
|
-
it("keeps ecosystem rules out of
|
|
495
|
+
it("keeps ecosystem rules out of non-ecosystem presets until explicitly selected", () => {
|
|
488
496
|
expect(configs.recommended["vize/ecosystem/router-link-require-to"]).toBeUndefined();
|
|
489
497
|
expect(configs.nuxt["vize/ecosystem/nuxt-prefer-nuxt-link"]).toBeUndefined();
|
|
498
|
+
expect(configs.ecosystem["vize/ecosystem/router-link-require-to"]).toBe("error");
|
|
499
|
+
expect(configs.ecosystem["vize/ecosystem/vue-i18n-no-missing-key"]).toBe("warn");
|
|
500
|
+
expect(configs.ecosystem["vize/ecosystem/void-link-require-href"]).toBe("error");
|
|
490
501
|
expect(configs.all["vize/ecosystem/router-link-require-to"]).toBe("error");
|
|
491
502
|
});
|
|
492
503
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "oxlint-plugin-vize",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.116.0",
|
|
4
4
|
"description": "Oxlint JS plugin bridge for Vize Patina",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"lint",
|
|
@@ -44,21 +44,21 @@
|
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"@tsdown/css": "0.22.0",
|
|
46
46
|
"@types/node": "25.7.0",
|
|
47
|
-
"@vizejs/native": "0.
|
|
47
|
+
"@vizejs/native": "0.116.0",
|
|
48
48
|
"tsdown": "0.22.0",
|
|
49
49
|
"typescript": "6.0.3",
|
|
50
50
|
"vite": "npm:@voidzero-dev/vite-plus-core@0.1.21",
|
|
51
51
|
"vite-plus": "0.1.21"
|
|
52
52
|
},
|
|
53
53
|
"optionalDependencies": {
|
|
54
|
-
"@vizejs/native-darwin-arm64": "0.
|
|
55
|
-
"@vizejs/native-darwin-x64": "0.
|
|
56
|
-
"@vizejs/native-linux-arm64-gnu": "0.
|
|
57
|
-
"@vizejs/native-linux-arm64-musl": "0.
|
|
58
|
-
"@vizejs/native-linux-x64-gnu": "0.
|
|
59
|
-
"@vizejs/native-linux-x64-musl": "0.
|
|
60
|
-
"@vizejs/native-win32-arm64-msvc": "0.
|
|
61
|
-
"@vizejs/native-win32-x64-msvc": "0.
|
|
54
|
+
"@vizejs/native-darwin-arm64": "0.116.0",
|
|
55
|
+
"@vizejs/native-darwin-x64": "0.116.0",
|
|
56
|
+
"@vizejs/native-linux-arm64-gnu": "0.116.0",
|
|
57
|
+
"@vizejs/native-linux-arm64-musl": "0.116.0",
|
|
58
|
+
"@vizejs/native-linux-x64-gnu": "0.116.0",
|
|
59
|
+
"@vizejs/native-linux-x64-musl": "0.116.0",
|
|
60
|
+
"@vizejs/native-win32-arm64-msvc": "0.116.0",
|
|
61
|
+
"@vizejs/native-win32-x64-msvc": "0.116.0"
|
|
62
62
|
},
|
|
63
63
|
"engines": {
|
|
64
64
|
"node": ">=24"
|