@wistia/oxlint-config 1.12.4 → 1.12.6
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/CHANGELOG.md +43 -0
- package/package.json +17 -17
- package/rules/playwright.mjs +35 -0
- package/rules/react.mjs +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,48 @@
|
|
|
1
1
|
# @wistia/oxlint-config
|
|
2
2
|
|
|
3
|
+
## 1.12.6
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#193](https://github.com/wistia/oxlint-config/pull/193) [`4746be3`](https://github.com/wistia/oxlint-config/commit/4746be3493821df5119ebb23121a83209e998010) Thanks [@okize](https://github.com/okize)! - build(deps): patch & minor upgrades to dependencies
|
|
8
|
+
|
|
9
|
+
- Bump peer minimums: `eslint` to `>= 10.11.0`, `oxfmt` to `>= 0.70.0`, `oxlint-tsgolint` to `>= 7.0.2002`
|
|
10
|
+
- `eslint-plugin-playwright` v2.11.0 → v2.12.0 adds eight rules:
|
|
11
|
+
- New at `error`: `no-identical-title`, `no-test-return-statement`, `no-export`, `no-magic-timeouts`, `require-annotation-reason`. Consumers may see new errors
|
|
12
|
+
- New at `off`: `no-template-literal-title` (dynamic titles are allowed, matching `vitest/valid-title` `allowArguments`), `prefer-ending-with-an-expect` (page-object assertion helpers need project-specific options), `no-action-timeout` (per-call timeouts are a documented option; inline literals are covered by `no-magic-timeouts`)
|
|
13
|
+
- `no-skipped-test` now detects `testInfo` annotations. The rule is `off`, no effect
|
|
14
|
+
- `@eslint-react/eslint-plugin` v5.18.6 → v5.20.5. No new, renamed, or removed rules. Changes to rules already set to `error`, no config change required:
|
|
15
|
+
- `@eslint-react/dom-no-flush-sync` tracks `react-dom` imports, so aliased and namespace calls are reported and same-named functions from other packages are not
|
|
16
|
+
- `@eslint-react/dom-no-unsafe-iframe-sandbox` checks polymorphic components written as member expressions
|
|
17
|
+
- `@eslint-react/web-api-no-leaked-event-listener` reports listeners added only in effect cleanup
|
|
18
|
+
- `@eslint-react/web-api-no-leaked-fetch` no longer reports `abort` calls nested in a callback inside cleanup
|
|
19
|
+
- `immutability` and `set-state-in-effect` changed upstream. Their jsPlugin names are `off` (handled by native rules), no effect
|
|
20
|
+
- `eslint-plugin-storybook` v10.5.10 → v10.6.0. No rule changes
|
|
21
|
+
- `oxlint-tsgolint` v7.0.2001 → v7.0.2002. No new rules. Clearer diagnostics and false-positive fixes in type-aware rules already set to `error`, including `no-misused-promises`, `no-unnecessary-condition`, `no-unnecessary-type-assertion`, `prefer-optional-chain`, `require-array-sort-compare`, and `no-unnecessary-boolean-literal-compare`
|
|
22
|
+
- `oxfmt` v0.67.0 → v0.70.0. No config option changes. Adds a Markdown formatter (v0.69.0)
|
|
23
|
+
|
|
24
|
+
## 1.12.5
|
|
25
|
+
|
|
26
|
+
### Patch Changes
|
|
27
|
+
|
|
28
|
+
- [#191](https://github.com/wistia/oxlint-config/pull/191) [`f7a55a0`](https://github.com/wistia/oxlint-config/commit/f7a55a02874ca9f266427f5fc0f44b763728a7ee) Thanks [@okize](https://github.com/okize)! - build(deps): upgrade `oxlint` to v1.83.0
|
|
29
|
+
|
|
30
|
+
- Bump `oxlint` peer minimum to `>= 1.83.0`
|
|
31
|
+
- No new, renamed, or removed rules in v1.83.0
|
|
32
|
+
- `@eslint-react/jsx-no-useless-fragment` set to `off`. The native `react/jsx-no-useless-fragment` rule covers the same cases and was already `error`, so every useless fragment was reported twice
|
|
33
|
+
- React 19.3 support, rules already set to `error`, no config change required:
|
|
34
|
+
- `react/no-unknown-property` accepts the new DOM props `onFullscreenChange`, `onFullscreenError`, `onFullscreenChangeCapture`, `onFullscreenErrorCapture`, `credentialless` on `<iframe>`, and `maskType` on `<mask>`
|
|
35
|
+
- `react/jsx-no-useless-fragment` no longer reports `<Fragment ref={...}>`, matching the existing `key` exemption
|
|
36
|
+
- Changes to rules already set to `error`, no config change required. Consumers may see new errors from the first four:
|
|
37
|
+
- `unicorn/prefer-array-flat-map` now reports `.filter().flatMap()` chains with simple untyped arrow callbacks
|
|
38
|
+
- `unicorn/prefer-at` now reports single-character `substring(i, i + 1)` calls
|
|
39
|
+
- `unicorn/prefer-default-parameters` now reports `value ??= x` and `value ||= x`
|
|
40
|
+
- `typescript/prefer-for-of` now reports loops over computed collections such as `this.values[key]`
|
|
41
|
+
- `unicorn/prefer-array-flat` no longer reports `[].concat(value)` or `Array.prototype.concat.call([], value)` without a spread argument
|
|
42
|
+
- `eslint/no-unused-vars` with `args: 'after-used'` no longer flags parameters before a used rest parameter, and no longer reports implicitly exported declarations in ambient modules that also contain an `export`-modified declaration (the rule is off in the typescript config)
|
|
43
|
+
- Rules set to `off`, no effect: `unicorn/prefer-global-this` (no longer reports references to window event methods that are not calls)
|
|
44
|
+
- `typescript/no-unnecessary-type-parameters` and `typescript/prefer-find` are now marked as offering suggestions. Metadata only, no behavior change
|
|
45
|
+
|
|
3
46
|
## 1.12.4
|
|
4
47
|
|
|
5
48
|
### Patch Changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wistia/oxlint-config",
|
|
3
|
-
"version": "1.12.
|
|
3
|
+
"version": "1.12.6",
|
|
4
4
|
"description": "Wistia's Oxlint configurations",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"linter",
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
"validate": "vitest run --project validate"
|
|
77
77
|
},
|
|
78
78
|
"dependencies": {
|
|
79
|
-
"@eslint-react/eslint-plugin": "^5.
|
|
79
|
+
"@eslint-react/eslint-plugin": "^5.20.5",
|
|
80
80
|
"@vitest/eslint-plugin": "^1.6.27",
|
|
81
81
|
"confusing-browser-globals": "^1.0.11",
|
|
82
82
|
"eslint-plugin-barrel-files": "^3.0.1",
|
|
@@ -84,29 +84,29 @@
|
|
|
84
84
|
"eslint-plugin-jest-dom": "^5.10.1",
|
|
85
85
|
"eslint-plugin-n": "^18.3.0",
|
|
86
86
|
"eslint-plugin-no-only-tests": "^3.4.0",
|
|
87
|
-
"eslint-plugin-playwright": "^2.
|
|
88
|
-
"eslint-plugin-storybook": "^10.
|
|
87
|
+
"eslint-plugin-playwright": "^2.12.0",
|
|
88
|
+
"eslint-plugin-storybook": "^10.6.0",
|
|
89
89
|
"eslint-plugin-styled-components": "^0.0.0",
|
|
90
90
|
"eslint-plugin-styled-components-a11y": "^2.2.1",
|
|
91
91
|
"eslint-plugin-testing-library": "^7.16.2",
|
|
92
92
|
"typescript": "^6.0.3"
|
|
93
93
|
},
|
|
94
94
|
"devDependencies": {
|
|
95
|
-
"@changesets/changelog-github": "^1.0.
|
|
96
|
-
"@changesets/cli": "^3.0.
|
|
97
|
-
"eslint": "^10.
|
|
98
|
-
"oxfmt": "^0.
|
|
99
|
-
"oxlint": "
|
|
100
|
-
"oxlint-tsgolint": "^7.0.
|
|
101
|
-
"storybook": "^10.
|
|
102
|
-
"vite": "^8.
|
|
103
|
-
"vitest": "^5.0.
|
|
95
|
+
"@changesets/changelog-github": "^1.0.1",
|
|
96
|
+
"@changesets/cli": "^3.0.3",
|
|
97
|
+
"eslint": "^10.11.0",
|
|
98
|
+
"oxfmt": "^0.70.0",
|
|
99
|
+
"oxlint": "1.83.0",
|
|
100
|
+
"oxlint-tsgolint": "^7.0.2002",
|
|
101
|
+
"storybook": "^10.6.0",
|
|
102
|
+
"vite": "^8.3.0",
|
|
103
|
+
"vitest": "^5.0.1"
|
|
104
104
|
},
|
|
105
105
|
"peerDependencies": {
|
|
106
|
-
"eslint": ">= 10.
|
|
107
|
-
"oxfmt": ">= 0.
|
|
108
|
-
"oxlint": ">= 1.
|
|
109
|
-
"oxlint-tsgolint": ">= 7.0.
|
|
106
|
+
"eslint": ">= 10.11.0",
|
|
107
|
+
"oxfmt": ">= 0.70.0",
|
|
108
|
+
"oxlint": ">= 1.83.0",
|
|
109
|
+
"oxlint-tsgolint": ">= 7.0.2002"
|
|
110
110
|
},
|
|
111
111
|
"peerDependenciesMeta": {
|
|
112
112
|
"oxfmt": {
|
package/rules/playwright.mjs
CHANGED
|
@@ -200,6 +200,26 @@ export const playwrightRules = {
|
|
|
200
200
|
// https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/no-unnecessary-assertions.md
|
|
201
201
|
'eslint-plugin-playwright/no-unnecessary-assertions': 'error',
|
|
202
202
|
|
|
203
|
+
// Disallow identical test and describe titles
|
|
204
|
+
// https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/no-identical-title.md
|
|
205
|
+
'eslint-plugin-playwright/no-identical-title': 'error',
|
|
206
|
+
|
|
207
|
+
// Disallow returning from a test body
|
|
208
|
+
// https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/no-test-return-statement.md
|
|
209
|
+
'eslint-plugin-playwright/no-test-return-statement': 'error',
|
|
210
|
+
|
|
211
|
+
// Disallow exports in files containing tests
|
|
212
|
+
// https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/no-export.md
|
|
213
|
+
'eslint-plugin-playwright/no-export': 'error',
|
|
214
|
+
|
|
215
|
+
// Disallow inline numeric timeout values
|
|
216
|
+
// https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/no-magic-timeouts.md
|
|
217
|
+
'eslint-plugin-playwright/no-magic-timeouts': 'error',
|
|
218
|
+
|
|
219
|
+
// Require a reason on conditional skip and fixme annotations
|
|
220
|
+
// https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/require-annotation-reason.md
|
|
221
|
+
'eslint-plugin-playwright/require-annotation-reason': 'error',
|
|
222
|
+
|
|
203
223
|
// Enforce blank lines between test blocks
|
|
204
224
|
// https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/consistent-spacing-between-blocks.md
|
|
205
225
|
// Decision: style preference, left to a formatter
|
|
@@ -249,5 +269,20 @@ export const playwrightRules = {
|
|
|
249
269
|
// https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/require-to-pass-timeout.md
|
|
250
270
|
// Decision: too strict for general use, matching vitest/require-test-timeout
|
|
251
271
|
'eslint-plugin-playwright/require-to-pass-timeout': 'off',
|
|
272
|
+
|
|
273
|
+
// Disallow the timeout option on actions
|
|
274
|
+
// https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/no-action-timeout.md
|
|
275
|
+
// Decision: per-call timeouts are a documented Playwright option; inline literals are covered by no-magic-timeouts
|
|
276
|
+
'eslint-plugin-playwright/no-action-timeout': 'off',
|
|
277
|
+
|
|
278
|
+
// Disallow template literals in titles
|
|
279
|
+
// https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/no-template-literal-title.md
|
|
280
|
+
// Decision: dynamic titles are allowed, matching vitest/valid-title allowArguments
|
|
281
|
+
'eslint-plugin-playwright/no-template-literal-title': 'off',
|
|
282
|
+
|
|
283
|
+
// Require tests to end with an assertion
|
|
284
|
+
// https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/prefer-ending-with-an-expect.md
|
|
285
|
+
// Decision: page-object assertion helpers are not recognized without project-specific options
|
|
286
|
+
'eslint-plugin-playwright/prefer-ending-with-an-expect': 'off',
|
|
252
287
|
},
|
|
253
288
|
};
|
package/rules/react.mjs
CHANGED
|
@@ -429,7 +429,8 @@ export const reactRules = {
|
|
|
429
429
|
|
|
430
430
|
// Disallow unnecessary fragments
|
|
431
431
|
// https://eslint-react.xyz/docs/rules/jsx-no-useless-fragment
|
|
432
|
-
|
|
432
|
+
// Decision: handled by native react/jsx-no-useless-fragment
|
|
433
|
+
'@eslint-react/jsx-no-useless-fragment': 'off',
|
|
433
434
|
|
|
434
435
|
// Prevent leaked semicolons in JSX
|
|
435
436
|
// https://eslint-react.xyz/docs/rules/jsx-no-leaked-semicolon
|