@oxlint/migrate 1.73.0 → 1.76.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 CHANGED
@@ -116,10 +116,10 @@ The JS Plugins API supports almost all ESLint v9+ plugins for linting JS/TS/JSX/
116
116
 
117
117
  For example, if you currently use `eslint-plugin-svelte`, only some of its rules will work via JS Plugin, as Oxlint does not yet fully support custom file formats like `.svelte`. This means that Oxlint will only be able to lint the script blocks in your `.svelte` files, and not the template blocks where many of the `eslint-plugin-svelte` rules apply.
118
118
 
119
- ## ❤ Who's [Sponsoring Oxc](https://github.com/sponsors/Boshen)?
119
+ # [Sponsored By](https://oxc.rs/sponsor)
120
120
 
121
121
  <p align="center">
122
- <a href="https://github.com/sponsors/Boshen">
123
- <img src="https://raw.githubusercontent.com/Boshen/sponsors/main/sponsors.svg" alt="Our sponsors" />
122
+ <a href="https://oxc.rs/sponsor">
123
+ <img src="https://raw.githubusercontent.com/oxc-project/sponsors/main/sponsors.svg" alt="Our sponsors" />
124
124
  </a>
125
125
  </p>
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { a as nurseryRules, i as buildUnsupportedRuleExplanations, n as preFixForJsPlugins, o as rules_exports, r as isOffValue, s as normalizeRuleToCanonical, t as main } from "../src-aj7n0D2s.mjs";
2
+ import { a as nurseryRules, i as buildUnsupportedRuleExplanations, n as preFixForJsPlugins, o as rules_exports, r as isOffValue, s as normalizeRuleToCanonical, t as main } from "../src-CMaVigSj.mjs";
3
3
  import { program } from "commander";
4
4
  import { existsSync, readFileSync, renameSync, writeFileSync } from "node:fs";
5
5
  import path from "node:path";
@@ -30,7 +30,7 @@ const loadESLintConfig = async (filePath) => {
30
30
  };
31
31
  //#endregion
32
32
  //#region package.json
33
- var version = "1.73.0";
33
+ var version = "1.76.0";
34
34
  //#endregion
35
35
  //#region src/walker/comments/replaceRuleDirectiveComment.ts
36
36
  const allRulesSet = new Set(Object.values(rules_exports).flat());
@@ -425,7 +425,8 @@ const stripJsoncFeatures = (text) => text.replace(/\/\/.*$/gm, "").replace(/\/\*
425
425
  * type-aware linting.
426
426
  */
427
427
  const warnIfTsconfigHasBaseUrl = (reporter) => {
428
- const content = getFileContent(path.join(cwd, "tsconfig.json"));
428
+ const tsconfigPath = path.join(cwd, "tsconfig.json");
429
+ const content = getFileContent(tsconfigPath);
429
430
  if (content === void 0) return;
430
431
  try {
431
432
  const tsconfig = JSON.parse(stripJsoncFeatures(content));
@@ -4,7 +4,13 @@
4
4
  /**
5
5
  * What to enforce for `/// <reference types="..." />` references.
6
6
  */
7
- //#region node_modules/.pnpm/oxlint@1.73.0_oxlint-tsgolint@0.24.0/node_modules/oxlint/dist/index.d.ts
7
+ /**
8
+ * What to enforce for `/// <reference path="..." />` references.
9
+ */
10
+ /**
11
+ * What to enforce for `/// <reference types="..." />` references.
12
+ */
13
+ //#region node_modules/.pnpm/oxlint@1.76.0_oxlint-tsgolint@0.24.0/node_modules/oxlint/dist/index.d.ts
8
14
  //#region src-js/package/config.generated.d.ts
9
15
  type AllowWarnDeny = ("allow" | "off" | "warn" | "error" | "deny") | number;
10
16
  type GlobalValue = ("readonly" | "writable" | "off") | undefined;
@@ -70,7 +76,7 @@ type FuncNamesConfigType = "always" | "as-needed" | "never";
70
76
  type Style = "expression" | "declaration";
71
77
  type NamedExports = "ignore" | "expression" | "declaration";
72
78
  type PairOrder = "anyOrder" | "getBeforeSet" | "setBeforeGet";
73
- type Mode = "prefer-top-level" | "prefer-inline";
79
+ type Mode = "prefer-top-level" | "prefer-inline" | "prefer-top-level-if-only-type-imports";
74
80
  /**
75
81
  * Extension rule configuration; Copy to avoid extra indirection.
76
82
  */
@@ -89,8 +95,8 @@ type MaxDependenciesConfigJson = number | MaxDependenciesConfig;
89
95
  type Target = "single" | "any";
90
96
  type TestCaseName = "it" | "test";
91
97
  type JestFnType = "hook" | "describe" | "test" | "expect" | "jest" | "unknown";
92
- type DummyRule = AllowWarnDeny | [AllowWarnDeny, ...unknown[]];
93
98
  type SnapshotHintMode = "always" | "multi";
99
+ type DummyRule = AllowWarnDeny | [AllowWarnDeny, ...unknown[]];
94
100
  type AltTextElements = "img" | "object" | "area" | 'input[type="image"]';
95
101
  type AnchorIsValidAspect = "noHref" | "invalidHref" | "preferButton";
96
102
  type Assert = "htmlFor" | "nesting" | "both" | "either";
@@ -115,7 +121,10 @@ type AllowKind = "functions" | "arrowFunctions" | "generatorFunctions" | "method
115
121
  */
116
122
  type NoInnerDeclarationsConfig = "functions" | "both";
117
123
  type BlockScopedFunctions = "allow" | "disallow";
124
+ type Namespaces = "allow" | "disallow";
118
125
  type NoMagicNumbersNumber = number | string;
126
+ type NoRestrictedGlobalsConfigEnum = string | RestrictedGlobal | NoRestrictedGlobalsObjectConfig;
127
+ type GlobalNameOrObject = string | RestrictedGlobal;
119
128
  type NoRestrictedImportsConfigEnum = string | RestrictedPath | NoRestrictedImportsConfig;
120
129
  type PossiblePaths = string | RestrictedPath;
121
130
  type PossiblePatterns = string | RestrictedPattern;
@@ -138,6 +147,7 @@ type Location = "start" | "anywhere";
138
147
  * The rule takes a single option - an array of possible callback names - which may include object methods. The default callback names are `callback`, `cb`, `next`.
139
148
  */
140
149
  type CallbackReturn = string[];
150
+ type ExportsStyleMode = "module.exports" | "exports";
141
151
  /**
142
152
  * The rule takes a single string option: the name of the error parameter.
143
153
  *
@@ -180,6 +190,10 @@ type ForbidItem2 = string | {
180
190
  */
181
191
  message?: string;
182
192
  };
193
+ type NamedComponents = NamedComponentStyle | NamedComponentStyle[];
194
+ type NamedComponentStyle = "function-declaration" | "arrow-function" | "function-expression";
195
+ type UnnamedComponents = UnnamedComponentStyle | UnnamedComponentStyle[];
196
+ type UnnamedComponentStyle = "arrow-function" | "function-expression";
183
197
  type EnforceBooleanAttribute = "always" | "never";
184
198
  type JsxCurlyBracePresenceConfig = JsxCurlyBracePresenceMode | JsxCurlyBracePresence;
185
199
  type JsxCurlyBracePresenceMode = "always" | "never" | "ignore";
@@ -472,9 +486,23 @@ interface Oxlintrc$1 {
472
486
  */
473
487
  env?: OxlintEnv;
474
488
  /**
475
- * Paths of configuration files that this configuration file extends (inherits from). The files
476
- * are resolved relative to the location of the configuration file that contains the `extends`
477
- * property. The configuration files are merged from the first to the last, with the last file
489
+ * Configurations that this configuration file extends (inherits from).
490
+ *
491
+ * In `.oxlintrc.json`, `extends` has type `string[]`. Each string is a path to a configuration
492
+ * file, resolved relative to the location of the configuration file that contains the
493
+ * `extends` property.
494
+ *
495
+ * In `oxlint.config.ts`, `extends` has type `OxlintConfig[]`. Import each configuration and
496
+ * pass the configuration object directly:
497
+ *
498
+ * ```ts
499
+ * import { defineConfig } from "oxlint";
500
+ * import baseConfig from "./base-config.ts";
501
+ *
502
+ * export default defineConfig({ extends: [baseConfig] });
503
+ * ```
504
+ *
505
+ * Configurations are merged from the first to the last, with the last configuration
478
506
  * overriding the previous ones.
479
507
  */
480
508
  extends?: string[];
@@ -483,7 +511,10 @@ interface Oxlintrc$1 {
483
511
  */
484
512
  globals?: OxlintGlobals;
485
513
  /**
486
- * Globs to ignore during linting. These are resolved from the configuration file path.
514
+ * Globs to ignore during linting. Patterns use gitignore-style matching,
515
+ * rooted at the directory containing the configuration file.
516
+ * Files outside that directory cannot be matched; patterns containing `..`
517
+ * are rejected as a configuration error.
487
518
  */
488
519
  ignorePatterns?: string[];
489
520
  /**
@@ -822,6 +853,7 @@ interface DummyRuleMap {
822
853
  "getter-return"?: RuleNoConfig | [AllowWarnDeny, GetterReturn];
823
854
  "grouped-accessor-pairs"?: RuleNoConfig | [AllowWarnDeny, PairOrder] | [AllowWarnDeny, PairOrder, GroupedAccessorPairsConfig];
824
855
  "guard-for-in"?: RuleNoConfig;
856
+ "id-denylist"?: RuleNoConfig | [AllowWarnDeny, string, ...string[]];
825
857
  "id-length"?: RuleNoConfig | [AllowWarnDeny, IdLengthConfig];
826
858
  "id-match"?: RuleNoConfig | [AllowWarnDeny, string] | [AllowWarnDeny, string, IdMatchOptions];
827
859
  "import/consistent-type-specifier-style"?: RuleNoConfig | [AllowWarnDeny, Mode];
@@ -899,7 +931,7 @@ interface DummyRuleMap {
899
931
  "jest/prefer-hooks-on-top"?: RuleNoConfig;
900
932
  "jest/prefer-importing-jest-globals"?: RuleNoConfig | [AllowWarnDeny, PreferImportingJestGlobalsConfig];
901
933
  "jest/prefer-jest-mocked"?: RuleNoConfig;
902
- "jest/prefer-lowercase-title"?: DummyRule;
934
+ "jest/prefer-lowercase-title"?: RuleNoConfig | [AllowWarnDeny, PreferLowercaseTitleConfig];
903
935
  "jest/prefer-mock-promise-shorthand"?: RuleNoConfig;
904
936
  "jest/prefer-mock-return-shorthand"?: RuleNoConfig;
905
937
  "jest/prefer-snapshot-hint"?: RuleNoConfig | [AllowWarnDeny, SnapshotHintMode];
@@ -924,7 +956,7 @@ interface DummyRuleMap {
924
956
  "jsdoc/empty-tags"?: RuleNoConfig | [AllowWarnDeny, EmptyTagsConfig];
925
957
  "jsdoc/implements-on-classes"?: RuleNoConfig;
926
958
  "jsdoc/no-defaults"?: RuleNoConfig | [AllowWarnDeny, NoDefaultsConfig];
927
- "jsdoc/require-param"?: DummyRule;
959
+ "jsdoc/require-param"?: RuleNoConfig | [AllowWarnDeny, RequireParamConfig];
928
960
  "jsdoc/require-param-description"?: RuleNoConfig | [AllowWarnDeny, RequireParamDescriptionConfig];
929
961
  "jsdoc/require-param-name"?: RuleNoConfig;
930
962
  "jsdoc/require-param-type"?: RuleNoConfig | [AllowWarnDeny, RequireParamTypeConfig];
@@ -1083,7 +1115,7 @@ interface DummyRuleMap {
1083
1115
  "no-redeclare"?: RuleNoConfig | [AllowWarnDeny, NoRedeclare];
1084
1116
  "no-regex-spaces"?: RuleNoConfig;
1085
1117
  "no-restricted-exports"?: RuleNoConfig | [AllowWarnDeny, NoRestrictedExportsConfig];
1086
- "no-restricted-globals"?: DummyRule;
1118
+ "no-restricted-globals"?: RuleNoConfig | [AllowWarnDeny, NoRestrictedGlobalsConfigEnum, ...NoRestrictedGlobalsConfigEnum[]];
1087
1119
  "no-restricted-imports"?: RuleNoConfig | [AllowWarnDeny, NoRestrictedImportsConfigEnum, ...NoRestrictedImportsConfigEnum[]];
1088
1120
  "no-restricted-properties"?: RuleNoConfig | [AllowWarnDeny, PropertyDetails, ...PropertyDetails[]];
1089
1121
  "no-return-assign"?: RuleNoConfig | [AllowWarnDeny, NoReturnAssignMode];
@@ -1131,6 +1163,7 @@ interface DummyRuleMap {
1131
1163
  "no-warning-comments"?: RuleNoConfig | [AllowWarnDeny, NoWarningCommentsConfigJson];
1132
1164
  "no-with"?: RuleNoConfig;
1133
1165
  "node/callback-return"?: RuleNoConfig | [AllowWarnDeny, CallbackReturn];
1166
+ "node/exports-style"?: RuleNoConfig | [AllowWarnDeny, ExportsStyleMode] | [AllowWarnDeny, ExportsStyleMode, ExportsStyleOptions];
1134
1167
  "node/global-require"?: RuleNoConfig;
1135
1168
  "node/handle-callback-err"?: RuleNoConfig | [AllowWarnDeny, HandleCallbackErrConfig];
1136
1169
  "node/no-exports-assign"?: RuleNoConfig;
@@ -1139,6 +1172,7 @@ interface DummyRuleMap {
1139
1172
  "node/no-path-concat"?: RuleNoConfig;
1140
1173
  "node/no-process-env"?: RuleNoConfig | [AllowWarnDeny, NoProcessEnvConfig];
1141
1174
  "node/no-sync"?: RuleNoConfig | [AllowWarnDeny, NoSyncConfig];
1175
+ "node/no-top-level-await"?: RuleNoConfig | [AllowWarnDeny, NoTopLevelAwaitConfig];
1142
1176
  "object-shorthand"?: RuleNoConfig | [AllowWarnDeny, ShorthandType] | [AllowWarnDeny, ShorthandType, ObjectShorthandOptions];
1143
1177
  "operator-assignment"?: RuleNoConfig | [AllowWarnDeny, AlwaysNever];
1144
1178
  "oxc/approx-constant"?: RuleNoConfig;
@@ -1146,6 +1180,7 @@ interface DummyRuleMap {
1146
1180
  "oxc/bad-bitwise-operator"?: RuleNoConfig;
1147
1181
  "oxc/bad-char-at-comparison"?: RuleNoConfig;
1148
1182
  "oxc/bad-comparison-sequence"?: RuleNoConfig;
1183
+ "oxc/bad-match-all-arg"?: RuleNoConfig;
1149
1184
  "oxc/bad-min-max-func"?: RuleNoConfig;
1150
1185
  "oxc/bad-object-literal-comparison"?: RuleNoConfig;
1151
1186
  "oxc/bad-replace-all-arg"?: RuleNoConfig;
@@ -1169,7 +1204,7 @@ interface DummyRuleMap {
1169
1204
  "oxc/uninvoked-array-callback"?: RuleNoConfig;
1170
1205
  "prefer-arrow-callback"?: RuleNoConfig | [AllowWarnDeny, PreferArrowCallbackConfig];
1171
1206
  "prefer-const"?: RuleNoConfig | [AllowWarnDeny, PreferConstConfig];
1172
- "prefer-destructuring"?: RuleNoConfig | [AllowWarnDeny, PreferDestructuringOption] | [AllowWarnDeny, PreferDestructuringOption, PreferDestructuringRenamedPropertiesConfig];
1207
+ "prefer-destructuring"?: RuleNoConfig | [AllowWarnDeny, PreferDestructuringOption] | [AllowWarnDeny, PreferDestructuringOption, PreferDestructuringEnforcementConfig];
1173
1208
  "prefer-exponentiation-operator"?: RuleNoConfig;
1174
1209
  "prefer-named-capture-group"?: RuleNoConfig;
1175
1210
  "prefer-numeric-literals"?: RuleNoConfig;
@@ -1210,6 +1245,7 @@ interface DummyRuleMap {
1210
1245
  "react/forbid-dom-props"?: RuleNoConfig | [AllowWarnDeny, ForbidDomPropsConfig];
1211
1246
  "react/forbid-elements"?: RuleNoConfig | [AllowWarnDeny, ForbidElementsConfig];
1212
1247
  "react/forward-ref-uses-ref"?: RuleNoConfig;
1248
+ "react/function-component-definition"?: RuleNoConfig | [AllowWarnDeny, FunctionComponentDefinitionConfig];
1213
1249
  "react/hook-use-state"?: RuleNoConfig | [AllowWarnDeny, HookUseStateConfig];
1214
1250
  "react/iframe-missing-sandbox"?: RuleNoConfig;
1215
1251
  "react/jsx-boolean-value"?: RuleNoConfig | [AllowWarnDeny, EnforceBooleanAttribute] | [AllowWarnDeny, EnforceBooleanAttribute, JsxBooleanValueOptions];
@@ -1554,6 +1590,7 @@ interface DummyRuleMap {
1554
1590
  "vitest/no-test-return-statement"?: RuleNoConfig;
1555
1591
  "vitest/no-unneeded-async-expect-function"?: RuleNoConfig;
1556
1592
  "vitest/padding-around-after-all-blocks"?: RuleNoConfig;
1593
+ "vitest/padding-around-test-blocks"?: RuleNoConfig;
1557
1594
  "vitest/prefer-called-exactly-once-with"?: RuleNoConfig;
1558
1595
  "vitest/prefer-called-once"?: RuleNoConfig;
1559
1596
  "vitest/prefer-called-times"?: RuleNoConfig;
@@ -1569,7 +1606,7 @@ interface DummyRuleMap {
1569
1606
  "vitest/prefer-hooks-on-top"?: RuleNoConfig;
1570
1607
  "vitest/prefer-import-in-mock"?: RuleNoConfig | [AllowWarnDeny, PreferImportInMockConfig];
1571
1608
  "vitest/prefer-importing-vitest-globals"?: RuleNoConfig;
1572
- "vitest/prefer-lowercase-title"?: DummyRule;
1609
+ "vitest/prefer-lowercase-title"?: RuleNoConfig | [AllowWarnDeny, PreferLowercaseTitleConfig];
1573
1610
  "vitest/prefer-mock-promise-shorthand"?: RuleNoConfig;
1574
1611
  "vitest/prefer-mock-return-shorthand"?: RuleNoConfig;
1575
1612
  "vitest/prefer-snapshot-hint"?: RuleNoConfig | [AllowWarnDeny, SnapshotHintMode];
@@ -2289,6 +2326,96 @@ interface PreferImportingJestGlobalsConfig {
2289
2326
  */
2290
2327
  types?: JestFnType[];
2291
2328
  }
2329
+ interface PreferLowercaseTitleConfig {
2330
+ /**
2331
+ * This array option allows specifying prefixes, which contain capitals that titles
2332
+ * can start with. This can be useful when writing tests for API endpoints, where
2333
+ * you'd like to prefix with the HTTP method.
2334
+ * By default, nothing is allowed (the equivalent of `{ "allowedPrefixes": [] }`).
2335
+ *
2336
+ * Example of **correct** code for the `{ "allowedPrefixes": ["GET"] }` option:
2337
+ * ```js
2338
+ * /* jest/prefer-lowercase-title: ["error", { "allowedPrefixes": ["GET"] }] * /
2339
+ * describe('GET /live');
2340
+ * ```
2341
+ */
2342
+ allowedPrefixes?: string[];
2343
+ /**
2344
+ * This array option controls which Jest or Vitest functions are checked by this rule. There
2345
+ * are four possible values:
2346
+ * - `"describe"`
2347
+ * - `"test"`
2348
+ * - `"it"`
2349
+ * - `"bench"`
2350
+ *
2351
+ * By default, none of these options are enabled (the equivalent of
2352
+ * `{ "ignore": [] }`).
2353
+ *
2354
+ * Example of **correct** code for the `{ "ignore": ["describe"] }` option:
2355
+ * ```js
2356
+ * /* jest/prefer-lowercase-title: ["error", { "ignore": ["describe"] }] * /
2357
+ * describe('Uppercase description');
2358
+ * ```
2359
+ *
2360
+ * Example of **correct** code for the `{ "ignore": ["test"] }` option:
2361
+ * ```js
2362
+ * /* jest/prefer-lowercase-title: ["error", { "ignore": ["test"] }] * /
2363
+ * test('Uppercase description');
2364
+ * ```
2365
+ *
2366
+ * Example of **correct** code for the `{ "ignore": ["it"] }` option:
2367
+ * ```js
2368
+ * /* jest/prefer-lowercase-title: ["error", { "ignore": ["it"] }] * /
2369
+ * it('Uppercase description');
2370
+ * ```
2371
+ */
2372
+ ignore?: string[];
2373
+ /**
2374
+ * This option can be set to allow only the top-level `describe` blocks to have a
2375
+ * title starting with an upper-case letter.
2376
+ *
2377
+ * Example of **correct** code for the `{ "ignoreTopLevelDescribe": true }` option:
2378
+ * ```js
2379
+ * /* jest/prefer-lowercase-title: ["error", { "ignoreTopLevelDescribe": true }] * /
2380
+ * describe('MyClass', () => {
2381
+ * describe('#myMethod', () => {
2382
+ * it('does things', () => {
2383
+ * //
2384
+ * });
2385
+ * });
2386
+ * });
2387
+ * ```
2388
+ */
2389
+ ignoreTopLevelDescribe?: boolean;
2390
+ /**
2391
+ * This option can be set to only validate that the first character of a test name is lowercased.
2392
+ *
2393
+ * Example of **correct** code for the `{ "lowercaseFirstCharacterOnly": true }` option:
2394
+ * ```js
2395
+ * /* vitest/prefer-lowercase-title: ["error", { "lowercaseFirstCharacterOnly": true }] * /
2396
+ * describe('myClass', () => {
2397
+ * describe('myMethod', () => {
2398
+ * it('does things', () => {
2399
+ * //
2400
+ * });
2401
+ * });
2402
+ * });
2403
+ * ```
2404
+ *
2405
+ * Example of **incorrect** code for the `{ "lowercaseFirstCharacterOnly": true }` option:
2406
+ * ```js
2407
+ * /* vitest/prefer-lowercase-title: ["error", { "lowercaseFirstCharacterOnly": true }] * /
2408
+ * describe('MyClass', () => {
2409
+ * describe('MyMethod', () => {
2410
+ * it('does things', () => {
2411
+ * //
2412
+ * });
2413
+ * });
2414
+ * });
2415
+ * ```
2416
+ */
2417
+ lowercaseFirstCharacterOnly?: boolean;
2418
+ }
2292
2419
  interface RequireHookConfig {
2293
2420
  /**
2294
2421
  * An array of function names that are allowed to be called outside of hooks.
@@ -2349,6 +2476,56 @@ interface NoDefaultsConfig {
2349
2476
  */
2350
2477
  noOptionalParamNames?: boolean;
2351
2478
  }
2479
+ interface RequireParamConfig {
2480
+ /**
2481
+ * Whether to check constructor methods.
2482
+ */
2483
+ checkConstructors?: boolean;
2484
+ /**
2485
+ * Whether to check destructured parameters.
2486
+ */
2487
+ checkDestructured?: boolean;
2488
+ /**
2489
+ * Whether to check destructured parameters when you have code like
2490
+ * `function doSomething({ a, b }) { ... }`. Because there is no named
2491
+ * parameter in this example, when this option is `true` you must
2492
+ * have a `@param` tag that corresponds to `{a, b}`.
2493
+ */
2494
+ checkDestructuredRoots?: boolean;
2495
+ /**
2496
+ * Whether to check getter methods.
2497
+ */
2498
+ checkGetters?: boolean;
2499
+ /**
2500
+ * Whether to check rest properties.
2501
+ */
2502
+ checkRestProperty?: boolean;
2503
+ /**
2504
+ * Whether to check setter methods.
2505
+ */
2506
+ checkSetters?: boolean;
2507
+ /**
2508
+ * Regex pattern to match types that exempt parameters from checking.
2509
+ */
2510
+ checkTypesPattern?: string;
2511
+ /**
2512
+ * List of JSDoc tags that exempt functions from `@param` checking.
2513
+ */
2514
+ exemptedBy?: string[];
2515
+ /**
2516
+ * Set to `true` to ignore reporting when all params are missing. Defaults to `false`.
2517
+ */
2518
+ ignoreWhenAllParamsMissing?: boolean;
2519
+ /**
2520
+ * Set if you wish TypeScript interfaces to exempt checks for the existence of `@param`'s.
2521
+ * Will check for a type defining the function itself (on a variable declaration) or if there is a single destructured object with a type. Defaults to `false`.
2522
+ */
2523
+ interfaceExemptsParamsCheck?: boolean;
2524
+ /**
2525
+ * Set to `true` if you wish to expect documentation of properties on objects supplied as default values. Defaults to `false`.
2526
+ */
2527
+ useDefaultObjectProperties?: boolean;
2528
+ }
2352
2529
  interface RequireParamDescriptionConfig {
2353
2530
  /**
2354
2531
  * The description string to set by default for destructured roots. Defaults to "The root object".
@@ -3028,6 +3205,10 @@ interface NoInnerDeclarationsOptions {
3028
3205
  * Controls whether function declarations in nested blocks are allowed in strict mode (ES6+ behavior).
3029
3206
  */
3030
3207
  blockScopedFunctions?: BlockScopedFunctions;
3208
+ /**
3209
+ * Controls whether declarations directly inside TypeScript namespace or module bodies are allowed.
3210
+ */
3211
+ namespaces?: Namespaces;
3031
3212
  }
3032
3213
  interface NoInvalidRegexpConfig {
3033
3214
  /**
@@ -3318,6 +3499,38 @@ interface RestrictDefaultExports {
3318
3499
  */
3319
3500
  namespaceFrom?: boolean;
3320
3501
  }
3502
+ /**
3503
+ * A restricted global with an optional custom message.
3504
+ */
3505
+ interface RestrictedGlobal {
3506
+ /**
3507
+ * A custom message shown when the restricted global is used.
3508
+ */
3509
+ message?: string;
3510
+ /**
3511
+ * The name of the restricted global.
3512
+ */
3513
+ name: string;
3514
+ }
3515
+ /**
3516
+ * Object form of the configuration, which additionally allows detecting
3517
+ * restricted globals accessed via global objects.
3518
+ */
3519
+ interface NoRestrictedGlobalsObjectConfig {
3520
+ /**
3521
+ * Whether to also detect restricted globals accessed via global objects. Default is `false`.
3522
+ */
3523
+ checkGlobalObject?: boolean;
3524
+ /**
3525
+ * Additional global object names to check when `checkGlobalObject` is enabled.
3526
+ * By default, the rule checks these global objects: `globalThis`, `self`, and `window`.
3527
+ */
3528
+ globalObjects?: string[];
3529
+ /**
3530
+ * The restricted globals, as names or `{ "name", "message" }` objects.
3531
+ */
3532
+ globals: GlobalNameOrObject[];
3533
+ }
3321
3534
  interface RestrictedPath {
3322
3535
  allowImportNames?: string[];
3323
3536
  allowTypeImports?: boolean;
@@ -3861,6 +4074,12 @@ interface NoWarningCommentsConfigJson {
3861
4074
  location?: Location;
3862
4075
  terms?: string[];
3863
4076
  }
4077
+ interface ExportsStyleOptions {
4078
+ /**
4079
+ * If this option is set to `true`, `module.exports = exports = obj` are allowed.
4080
+ */
4081
+ allowBatchAssign?: boolean;
4082
+ }
3864
4083
  interface NoMixedRequiresOptions {
3865
4084
  allowCall?: boolean;
3866
4085
  grouping?: boolean;
@@ -3881,6 +4100,14 @@ interface NoSyncConfig {
3881
4100
  */
3882
4101
  ignores?: string[];
3883
4102
  }
4103
+ interface NoTopLevelAwaitConfig {
4104
+ /**
4105
+ * If `true`, top-level `await` is allowed in files that start with a
4106
+ * hashbang (`#!`), which marks them as executable scripts rather than
4107
+ * importable modules.
4108
+ */
4109
+ ignoreBin?: boolean;
4110
+ }
3884
4111
  interface ObjectShorthandOptions {
3885
4112
  avoidExplicitReturnArrows?: boolean;
3886
4113
  avoidQuotes?: boolean;
@@ -3983,7 +4210,8 @@ interface PreferDestructuringAssignmentConfig {
3983
4210
  AssignmentExpression?: PreferDestructuringTargetOption;
3984
4211
  VariableDeclarator?: PreferDestructuringTargetOption;
3985
4212
  }
3986
- interface PreferDestructuringRenamedPropertiesConfig {
4213
+ interface PreferDestructuringEnforcementConfig {
4214
+ enforceForDeclarationWithTypeAnnotation?: boolean;
3987
4215
  enforceForRenamedProperties?: boolean;
3988
4216
  }
3989
4217
  interface PreferPromiseRejectErrors {
@@ -4349,6 +4577,10 @@ interface ForbidElementsConfig {
4349
4577
  */
4350
4578
  forbid?: ForbidItem2[];
4351
4579
  }
4580
+ interface FunctionComponentDefinitionConfig {
4581
+ namedComponents?: NamedComponents;
4582
+ unnamedComponents?: UnnamedComponents;
4583
+ }
4352
4584
  interface HookUseStateConfig {
4353
4585
  /**
4354
4586
  * When true the rule will ignore the name of the destructured value.
@@ -5795,7 +6027,13 @@ interface TripleSlashReferenceConfig {
5795
6027
  * What to enforce for `/// <reference lib="..." />` references.
5796
6028
  */
5797
6029
  lib?: AlwaysNever;
6030
+ /**
6031
+ * What to enforce for `/// <reference path="..." />` references.
6032
+ */
5798
6033
  path?: PathOption;
6034
+ /**
6035
+ * What to enforce for `/// <reference types="..." />` references.
6036
+ */
5799
6037
  types?: TypesOption;
5800
6038
  }
5801
6039
  interface UnboundMethodConfig {
@@ -6331,6 +6569,9 @@ interface NoReservedPropsConfig {
6331
6569
  vueVersion?: number;
6332
6570
  }
6333
6571
  interface Options$1 {
6572
+ /**
6573
+ * Prop names to ignore, as regular expression patterns.
6574
+ */
6334
6575
  ignoreProps?: string[];
6335
6576
  }
6336
6577
  interface RequireDirectExport {
@@ -6649,18 +6890,18 @@ interface VitestPluginSettings {
6649
6890
  */
6650
6891
  typecheck?: boolean;
6651
6892
  [k: string]: unknown | undefined;
6652
- } //#endregion
6893
+ }
6894
+ //#endregion
6653
6895
  //#region src-js/package/config.d.ts
6654
6896
  type Oxlintrc = Omit<Oxlintrc$1, "$schema" | "extends">;
6655
6897
  interface OxlintConfig$1 extends Oxlintrc {
6898
+ /**
6899
+ * Configuration objects to extend.
6900
+ *
6901
+ * Import configurations and pass them directly instead of using file paths.
6902
+ */
6656
6903
  extends?: OxlintConfig$1[];
6657
6904
  }
6658
- /**
6659
- * Define an Oxlint configuration with type inference.
6660
- *
6661
- * @param config - Oxlint configuration
6662
- * @returns Config unchanged
6663
- */
6664
6905
  //#endregion
6665
6906
  //#region src/types.d.ts
6666
6907
  /**
@@ -6733,7 +6974,9 @@ declare namespace ESLint {
6733
6974
  ignores?: string[];
6734
6975
  /** Language options including globals, parser, etc */
6735
6976
  languageOptions?: {
6736
- /** Global variables */globals?: GlobalsConfig; /** Parser options */
6977
+ /** Global variables */
6978
+ globals?: GlobalsConfig;
6979
+ /** Parser options */
6737
6980
  parserOptions?: Record<string, unknown>;
6738
6981
  [key: string]: unknown;
6739
6982
  };
@@ -1,2 +1,2 @@
1
- import { t as main } from "../src-aj7n0D2s.mjs";
1
+ import { t as main } from "../src-CMaVigSj.mjs";
2
2
  export { main as default };
@@ -389,7 +389,8 @@ const cleanUpUnusedJsPlugins = (config) => {
389
389
  if (config.jsPlugins === void 0 || config.jsPlugins === null || config.jsPlugins.length === 0) return;
390
390
  const ruleNames = Object.keys(config.rules ?? {});
391
391
  config.jsPlugins = config.jsPlugins.filter((entry) => {
392
- return hasRulesForPlugin(ruleNames, typeof entry === "string" ? entry : entry.specifier);
392
+ const packageName = typeof entry === "string" ? entry : entry.specifier;
393
+ return hasRulesForPlugin(ruleNames, packageName);
393
394
  });
394
395
  if (config.jsPlugins.length === 0) delete config.jsPlugins;
395
396
  };
@@ -545,6 +546,7 @@ const styleRules = [
545
546
  "func-style",
546
547
  "grouped-accessor-pairs",
547
548
  "guard-for-in",
549
+ "id-denylist",
548
550
  "id-length",
549
551
  "id-match",
550
552
  "init-declarations",
@@ -650,6 +652,7 @@ const styleRules = [
650
652
  "jsdoc/require-throws-description",
651
653
  "jsdoc/require-yields-description",
652
654
  "node/callback-return",
655
+ "node/exports-style",
653
656
  "node/global-require",
654
657
  "node/no-exports-assign",
655
658
  "node/no-mixed-requires",
@@ -661,6 +664,7 @@ const styleRules = [
661
664
  "promise/prefer-await-to-callbacks",
662
665
  "promise/prefer-await-to-then",
663
666
  "promise/prefer-catch",
667
+ "react/function-component-definition",
664
668
  "react/hook-use-state",
665
669
  "react/jsx-boolean-value",
666
670
  "react/jsx-curly-brace-presence",
@@ -769,6 +773,7 @@ const styleRules = [
769
773
  "vitest/no-test-return-statement",
770
774
  "vitest/no-unneeded-async-expect-function",
771
775
  "vitest/padding-around-after-all-blocks",
776
+ "vitest/padding-around-test-blocks",
772
777
  "vitest/prefer-called-exactly-once-with",
773
778
  "vitest/prefer-called-once",
774
779
  "vitest/prefer-called-times",
@@ -915,6 +920,7 @@ const restrictionRules = [
915
920
  "node/no-new-require",
916
921
  "node/no-path-concat",
917
922
  "node/no-process-env",
923
+ "node/no-top-level-await",
918
924
  "promise/catch-or-return",
919
925
  "promise/spec-only",
920
926
  "react/button-has-type",
@@ -1323,6 +1329,25 @@ var unsupportedRules = {
1323
1329
  "import/no-unresolved": "Will always contain false positives due to module resolution complexity.",
1324
1330
  "promise/no-native": "Handled by `eslint/no-undef`.",
1325
1331
  "unicorn/no-for-loop": "This rule suggests using `Array.prototype.entries` which is slow https://github.com/oxc-project/oxc/issues/11311, furthermore, `typescript/prefer-for-of` covers most cases.",
1332
+ "unicorn/no-useless-coercion": "No need to implement, already implemented by `typescript/no-unnecessary-type-conversion` via tsgolint.",
1333
+ "unicorn/no-unnecessary-boolean-comparison": "No need to implement, already implemented by `typescript/no-unnecessary-boolean-literal-compare` via tsgolint.",
1334
+ "unicorn/no-nonstandard-builtin-properties": "No need to implement, TypeScript type checking reports non-standard properties and invalid calls or constructions on built-ins.",
1335
+ "unicorn/no-boolean-sort-comparator": "No need to implement, TypeScript type checking requires array sort comparators to return numbers.",
1336
+ "unicorn/no-invalid-argument-count": "No need to implement, TypeScript type checking reports invalid argument counts for functions, constructors, and built-in APIs.",
1337
+ "unicorn/no-useless-template-literals": "No need to implement. `typescript/no-unnecessary-template-expression` covers static and already-string expressions, while `eslint/no-implicit-coercion` with `disallowTemplateShorthand` covers expression-only string coercions.",
1338
+ "unicorn/prefer-explicit-viewport-units": "Not currently possible, as full support requires parsing standalone CSS files.",
1339
+ "unicorn/require-frontmatter-fields": "Not currently possible, as it requires parsing YAML frontmatter in Markdown files.",
1340
+ "unicorn/no-missing-local-resource": "Not currently possible, as it requires parsing standalone Markdown, HTML, and CSS files and resolving their local resources.",
1341
+ "unicorn/no-transition-all": "Not currently possible, as full support requires parsing standalone CSS files.",
1342
+ "unicorn/no-shorthand-property-overrides": "Not currently possible, as it requires parsing standalone CSS files.",
1343
+ "unicorn/require-proxy-trap-boolean-return": "No need to implement, TypeScript type checking enforces boolean return types for the relevant `ProxyHandler` traps.",
1344
+ "unicorn/consistent-class-member-order": "Use `typescript/member-ordering` instead, which can be configured with the same class member group order and will be supported in Oxlint.",
1345
+ "unicorn/no-collection-bracket-access": "No need to implement, TypeScript type checking reports invalid bracket access on `Map`, `Set`, `WeakMap`, and `WeakSet` values.",
1346
+ "unicorn/no-accidental-bitwise-operator": "No need to implement, already covered by `oxc/bad-bitwise-operator`.",
1347
+ "unicorn/no-misrefactored-assignment": "No need to implement, already covered by `oxc/misrefactored-assign-op`.",
1348
+ "unicorn/no-constant-zero-expression": "No need to implement, already covered by `oxc/erasing-op`.",
1349
+ "unicorn/prefer-math-constants": "No need to implement, already covered by `oxc/approx-constant`.",
1350
+ "unicorn/require-array-sort-compare": "No need to implement, already implemented by `typescript/require-array-sort-compare` via tsgolint.",
1326
1351
  "eslint/no-negated-in-lhs": "Replaced by `eslint/no-unsafe-negation`, which we support.",
1327
1352
  "eslint/no-catch-shadow": "Replaced by `eslint/no-shadow`.",
1328
1353
  "eslint/id-blacklist": "Replaced by `eslint/id-denylist`.",
@@ -1363,8 +1388,13 @@ var unsupportedRules = {
1363
1388
  "n/prefer-global/timers": "No need to implement, the same policy can be enforced with generic restriction rules such as `no-restricted-imports` and `no-restricted-globals`.",
1364
1389
  "n/prefer-global/url": "No need to implement, the same policy can be enforced with generic restriction rules such as `no-restricted-imports` and `no-restricted-globals`.",
1365
1390
  "n/prefer-global/url-search-params": "No need to implement, the same policy can be enforced with generic restriction rules such as `no-restricted-imports` and `no-restricted-globals`.",
1391
+ "n/no-unpublished-bin": "No support for this rule in Oxlint, as it requires knowledge of the package.json file and its `bin` field.",
1366
1392
  "import/order": "Not implementing this in Oxlint as its behavior is covered very well by [Oxfmt's import sorting](https://oxc.rs/docs/guide/usage/formatter/sorting.html).",
1367
1393
  "unicorn/template-indent": "Stylistic rule.",
1394
+ "unicorn/no-non-function-verb-prefix": "Requires type information. Not currently possible to implement in oxlint.",
1395
+ "unicorn/prefer-json-parse-buffer": "Deprecated.",
1396
+ "unicorn/prevent-abbreviations": "Deprecated.",
1397
+ "unicorn/better-regex": "Deprecated.",
1368
1398
  "jsdoc/type-formatting": "Experimental rule in the original plugin, may reconsider once stable.",
1369
1399
  "jsdoc/convert-to-jsdoc-comments": "Experimental rule in the original plugin, may reconsider once stable.",
1370
1400
  "jsdoc/check-examples": "Deprecated.",
@@ -1403,35 +1433,35 @@ var unsupportedRules = {
1403
1433
  "react/jsx-sort-props": "Stylistic rule from eslint-plugin-react. Should use Oxfmt for stylistic rules, or use JS Plugins to enable this rule.",
1404
1434
  "react/no-adjacent-inline-elements": "Stylistic rule from eslint-plugin-react. Should use Oxfmt for stylistic rules, or use JS Plugins to enable this rule.",
1405
1435
  "react/no-deprecated": "No need to implement, already implemented by `typescript/no-deprecated` via tsgolint.",
1406
- "react/config": "React Compiler rules will not be implemented in oxlint for now, as they require integration with the react compiler itself. These rules can be used via JS Plugins if desired.",
1407
- "react/error-boundaries": "React Compiler rules will not be implemented in oxlint for now, as they require integration with the react compiler itself. These rules can be used via JS Plugins if desired.",
1408
- "react/component-hook-factories": "React Compiler rules will not be implemented in oxlint for now, as they require integration with the react compiler itself. These rules can be used via JS Plugins if desired.",
1409
- "react/gating": "React Compiler rules will not be implemented in oxlint for now, as they require integration with the react compiler itself. These rules can be used via JS Plugins if desired.",
1410
- "react/globals": "React Compiler rules will not be implemented in oxlint for now, as they require integration with the react compiler itself. These rules can be used via JS Plugins if desired.",
1411
- "react/immutability": "React Compiler rules will not be implemented in oxlint for now, as they require integration with the react compiler itself. These rules can be used via JS Plugins if desired.",
1412
- "react/preserve-manual-memoization": "React Compiler rules will not be implemented in oxlint for now, as they require integration with the react compiler itself. These rules can be used via JS Plugins if desired.",
1413
- "react/purity": "React Compiler rules will not be implemented in oxlint for now, as they require integration with the react compiler itself. These rules can be used via JS Plugins if desired.",
1414
- "react/refs": "React Compiler rules will not be implemented in oxlint for now, as they require integration with the react compiler itself. These rules can be used via JS Plugins if desired.",
1415
- "react/set-state-in-effect": "React Compiler rules will not be implemented in oxlint for now, as they require integration with the react compiler itself. These rules can be used via JS Plugins if desired.",
1416
- "react/set-state-in-render": "React Compiler rules will not be implemented in oxlint for now, as they require integration with the react compiler itself. These rules can be used via JS Plugins if desired.",
1417
- "react/static-components": "React Compiler rules will not be implemented in oxlint for now, as they require integration with the react compiler itself. These rules can be used via JS Plugins if desired.",
1418
- "react/unsupported-syntax": "React Compiler rules will not be implemented in oxlint for now, as they require integration with the react compiler itself. These rules can be used via JS Plugins if desired.",
1419
- "react/use-memo": "React Compiler rules will not be implemented in oxlint for now, as they require integration with the react compiler itself. These rules can be used via JS Plugins if desired.",
1420
- "react/incompatible-library": "React Compiler rules will not be implemented in oxlint for now, as they require integration with the react compiler itself. These rules can be used via JS Plugins if desired.",
1421
- "react/automatic-effect-dependencies": "React Compiler rules will not be implemented in oxlint for now, as they require integration with the react compiler itself. These rules can be used via JS Plugins if desired.",
1422
- "react/memo-dependencies": "React Compiler rules will not be implemented in oxlint for now, as they require integration with the react compiler itself. These rules can be used via JS Plugins if desired.",
1423
- "react/exhaustive-effect-dependencies": "React Compiler rules will not be implemented in oxlint for now, as they require integration with the react compiler itself. These rules can be used via JS Plugins if desired.",
1424
- "react/capitalized-calls": "React Compiler rules will not be implemented in oxlint for now, as they require integration with the react compiler itself. These rules can be used via JS Plugins if desired.",
1425
- "react/fbt": "React Compiler rules will not be implemented in oxlint for now, as they require integration with the react compiler itself. These rules can be used via JS Plugins if desired.",
1426
- "react/fire": "React Compiler rules will not be implemented in oxlint for now, as they require integration with the react compiler itself. These rules can be used via JS Plugins if desired.",
1427
- "react/invariant": "React Compiler rules will not be implemented in oxlint for now, as they require integration with the react compiler itself. These rules can be used via JS Plugins if desired.",
1428
- "react/hooks": "React Compiler rules will not be implemented in oxlint for now, as they require integration with the react compiler itself. These rules can be used via JS Plugins if desired.",
1429
- "react/memoized-effect-dependencies": "React Compiler rules will not be implemented in oxlint for now, as they require integration with the react compiler itself. These rules can be used via JS Plugins if desired.",
1430
- "react/no-deriving-state-in-effects": "React Compiler rules will not be implemented in oxlint for now, as they require integration with the react compiler itself. These rules can be used via JS Plugins if desired.",
1431
- "react/rule-suppression": "React Compiler rules will not be implemented in oxlint for now, as they require integration with the react compiler itself. These rules can be used via JS Plugins if desired.",
1432
- "react/syntax": "React Compiler rules will not be implemented in oxlint for now, as they require integration with the react compiler itself. These rules can be used via JS Plugins if desired.",
1433
- "react/todo": "React Compiler rules will not be implemented in oxlint for now, as they require integration with the react compiler itself. These rules can be used via JS Plugins if desired.",
1434
- "react/void-use-memo": "React Compiler rules will not be implemented in oxlint for now, as they require integration with the react compiler itself. These rules can be used via JS Plugins if desired.",
1436
+ "react/config": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
1437
+ "react/error-boundaries": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
1438
+ "react/component-hook-factories": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
1439
+ "react/gating": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
1440
+ "react/globals": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
1441
+ "react/immutability": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
1442
+ "react/preserve-manual-memoization": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
1443
+ "react/purity": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
1444
+ "react/refs": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
1445
+ "react/set-state-in-effect": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
1446
+ "react/set-state-in-render": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
1447
+ "react/static-components": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
1448
+ "react/unsupported-syntax": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
1449
+ "react/use-memo": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
1450
+ "react/incompatible-library": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
1451
+ "react/automatic-effect-dependencies": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
1452
+ "react/memo-dependencies": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
1453
+ "react/exhaustive-effect-dependencies": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
1454
+ "react/capitalized-calls": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
1455
+ "react/fbt": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
1456
+ "react/fire": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
1457
+ "react/invariant": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
1458
+ "react/hooks": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
1459
+ "react/memoized-effect-dependencies": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
1460
+ "react/no-deriving-state-in-effects": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
1461
+ "react/rule-suppression": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
1462
+ "react/syntax": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
1463
+ "react/todo": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
1464
+ "react/void-use-memo": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
1435
1465
  "react/default-props-match-prop-types": "This rule only applies to legacy class components, which are not widely used in modern React. Also stylistic.",
1436
1466
  "react/forbid-foreign-prop-types": "PropTypes are ignored in React 19, and this rule is only relevant for very specific use-cases involving it.",
1437
1467
  "react/forbid-prop-types": "PropTypes are ignored in React 19, and this rule is only relevant if you use the PropTypes package.",
@@ -1655,6 +1685,7 @@ var unsupportedRules = {
1655
1685
  "vue/prefer-separate-static-class": "Not currently possible, as it requires Vue template parsing.",
1656
1686
  "vue/prefer-template": "Not currently possible, as it requires Vue template parsing.",
1657
1687
  "vue/prefer-true-attribute-shorthand": "Not currently possible, as it requires Vue template parsing.",
1688
+ "vue/prefer-v-model": "Not currently possible, as it requires Vue template parsing.",
1658
1689
  "vue/quote-props": "Stylistic rule.",
1659
1690
  "vue/require-component-is": "Not currently possible, as it requires Vue template parsing.",
1660
1691
  "vue/require-explicit-emits": "Not currently possible, as it requires Vue template parsing.",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxlint/migrate",
3
- "version": "1.73.0",
3
+ "version": "1.76.0",
4
4
  "description": "Generates a `.oxlintrc.json` from a existing eslint flat config",
5
5
  "keywords": [
6
6
  "eslint",
@@ -26,21 +26,10 @@
26
26
  "types": "./dist/src/index.d.mts",
27
27
  "import": "./dist/src/index.mjs"
28
28
  },
29
- "scripts": {
30
- "prepare": "husky",
31
- "generate": "node --import @oxc-node/core/register ./scripts/generate.ts",
32
- "generate:unsupported": "node --import @oxc-node/core/register ./scripts/fetch-unsupported-rules.ts",
33
- "generate:all": "pnpm generate && pnpm generate:unsupported && pnpm format",
34
- "format": "oxfmt",
35
- "lint": "oxlint",
36
- "test": "vitest",
37
- "build": "tsdown",
38
- "manual-test": "pnpm build; chmod +x dist/bin/oxlint-migrate.mjs; npx ."
39
- },
40
29
  "dependencies": {
41
30
  "commander": "^15.0.0",
42
31
  "globals": "^17.0.0",
43
- "oxc-parser": "^0.138.0",
32
+ "oxc-parser": "^0.139.0",
44
33
  "tinyglobby": "^0.2.14"
45
34
  },
46
35
  "devDependencies": {
@@ -83,8 +72,8 @@
83
72
  "husky": "^9.1.7",
84
73
  "lint-staged": "^17.0.0",
85
74
  "next": "^16.0.0",
86
- "oxfmt": "^0.57.0",
87
- "oxlint": "^1.73.0",
75
+ "oxfmt": "^0.58.0",
76
+ "oxlint": "^1.76.0",
88
77
  "oxlint-tsgolint": "^0.24.0",
89
78
  "tsdown": "^0.22.0",
90
79
  "typescript": "^6.0.0",
@@ -94,5 +83,14 @@
94
83
  "lint-staged": {
95
84
  "*": "oxfmt --no-error-on-unmatched-pattern"
96
85
  },
97
- "packageManager": "pnpm@11.9.0"
98
- }
86
+ "scripts": {
87
+ "generate": "node --import @oxc-node/core/register ./scripts/generate.ts",
88
+ "generate:unsupported": "node --import @oxc-node/core/register ./scripts/fetch-unsupported-rules.ts",
89
+ "generate:all": "pnpm generate && pnpm generate:unsupported && pnpm format",
90
+ "format": "oxfmt",
91
+ "lint": "oxlint",
92
+ "test": "vitest",
93
+ "build": "tsdown",
94
+ "manual-test": "pnpm build; chmod +x dist/bin/oxlint-migrate.mjs; npx ."
95
+ }
96
+ }