@isentinel/eslint-config 6.0.0-beta.15 → 6.0.0-beta.16
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 +10 -0
- package/dist/cli.mjs +8 -4
- package/dist/index.d.mts +42 -6
- package/dist/index.mjs +34 -11
- package/dist/lint-cli.mjs +1548 -1534
- package/dist/lint-ignored.mjs +1 -1
- package/dist/oxlint.d.mts +89 -8
- package/dist/oxlint.mjs +120 -33
- package/package.json +13 -9
package/README.md
CHANGED
|
@@ -38,6 +38,16 @@ import isentinel from "@isentinel/eslint-config";
|
|
|
38
38
|
export default isentinel();
|
|
39
39
|
```
|
|
40
40
|
|
|
41
|
+
`@isentinel/eslint-config/eslint` is an explicit alias of the root export, for
|
|
42
|
+
symmetry with `@isentinel/eslint-config/oxlint`:
|
|
43
|
+
|
|
44
|
+
```ts
|
|
45
|
+
// eslint.config.ts
|
|
46
|
+
import { isentinel } from "@isentinel/eslint-config/eslint";
|
|
47
|
+
|
|
48
|
+
export default isentinel();
|
|
49
|
+
```
|
|
50
|
+
|
|
41
51
|
#### Optional: TypeScript Config Support
|
|
42
52
|
|
|
43
53
|
If you want to use `eslint.config.ts` instead of `.js`, install `jiti` v2.0.0 or
|
package/dist/cli.mjs
CHANGED
|
@@ -9,7 +9,7 @@ import path from "node:path";
|
|
|
9
9
|
import { existsSync, readFileSync } from "fs";
|
|
10
10
|
import { execSync } from "node:child_process";
|
|
11
11
|
//#region package.json
|
|
12
|
-
var version = "6.0.0-beta.
|
|
12
|
+
var version = "6.0.0-beta.16";
|
|
13
13
|
var package_default = {
|
|
14
14
|
name: "@isentinel/eslint-config",
|
|
15
15
|
version,
|
|
@@ -38,6 +38,10 @@ var package_default = {
|
|
|
38
38
|
exports: {
|
|
39
39
|
".": "./dist/index.mjs",
|
|
40
40
|
"./cli": "./dist/cli.mjs",
|
|
41
|
+
"./eslint": {
|
|
42
|
+
"types": "./dist/index.d.mts",
|
|
43
|
+
"default": "./dist/index.mjs"
|
|
44
|
+
},
|
|
41
45
|
"./formatter-agents": "./dist/formatter-agents.mjs",
|
|
42
46
|
"./oxlint": {
|
|
43
47
|
"types": "./dist/oxlint.d.mts",
|
|
@@ -511,9 +515,9 @@ async function updateEslintFiles(result) {
|
|
|
511
515
|
const versionsMap = {
|
|
512
516
|
"eslint": "10.7.0",
|
|
513
517
|
"eslint-plugin-jest": "29.15.4",
|
|
514
|
-
"eslint-plugin-react-jsx": "5.17.
|
|
515
|
-
"eslint-plugin-react-naming-convention": "5.17.
|
|
516
|
-
"eslint-plugin-react-x": "5.17.
|
|
518
|
+
"eslint-plugin-react-jsx": "5.17.2",
|
|
519
|
+
"eslint-plugin-react-naming-convention": "5.17.2",
|
|
520
|
+
"eslint-plugin-react-x": "5.17.2"
|
|
517
521
|
};
|
|
518
522
|
//#endregion
|
|
519
523
|
//#region src/cli/stages/update-package-json.ts
|
package/dist/index.d.mts
CHANGED
|
@@ -1019,6 +1019,9 @@ interface MainRuleDefaults {
|
|
|
1019
1019
|
"jsdoc/no-undefined-types": {
|
|
1020
1020
|
"*": "error";
|
|
1021
1021
|
};
|
|
1022
|
+
"jsdoc/normalize-see-links": {
|
|
1023
|
+
"*": "warn";
|
|
1024
|
+
};
|
|
1022
1025
|
"jsdoc/require-asterisk-prefix": {
|
|
1023
1026
|
"*": "warn";
|
|
1024
1027
|
};
|
|
@@ -3293,7 +3296,20 @@ interface MainRuleDefaults {
|
|
|
3293
3296
|
"*": "error";
|
|
3294
3297
|
};
|
|
3295
3298
|
"ts/no-floating-promises": {
|
|
3296
|
-
|
|
3299
|
+
game_roblox: ["error", {
|
|
3300
|
+
"checkThenables": true;
|
|
3301
|
+
"ignoreVoid": true;
|
|
3302
|
+
}];
|
|
3303
|
+
game_std: ["error", {
|
|
3304
|
+
"checkThenables": false;
|
|
3305
|
+
"ignoreVoid": true;
|
|
3306
|
+
}];
|
|
3307
|
+
package_roblox: ["error", {
|
|
3308
|
+
"checkThenables": true;
|
|
3309
|
+
"ignoreVoid": true;
|
|
3310
|
+
}];
|
|
3311
|
+
package_std: ["error", {
|
|
3312
|
+
"checkThenables": false;
|
|
3297
3313
|
"ignoreVoid": true;
|
|
3298
3314
|
}];
|
|
3299
3315
|
};
|
|
@@ -5184,7 +5200,9 @@ interface TestRuleDefaults {
|
|
|
5184
5200
|
"*": "warn";
|
|
5185
5201
|
};
|
|
5186
5202
|
"jest/prefer-ending-with-an-expect": {
|
|
5187
|
-
"*": "warn"
|
|
5203
|
+
"*": ["warn", {
|
|
5204
|
+
"assertFunctionNames": ["expect", "expectTypeOf", "assertType"];
|
|
5205
|
+
}];
|
|
5188
5206
|
};
|
|
5189
5207
|
"jest/prefer-equality-matcher": {
|
|
5190
5208
|
"*": "warn";
|
|
@@ -7683,6 +7701,11 @@ interface RuleOptions {
|
|
|
7683
7701
|
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-undefined-types.md#repos-sticky-header
|
|
7684
7702
|
*/
|
|
7685
7703
|
'jsdoc/no-undefined-types'?: Linter.RuleEntry<JsdocNoUndefinedTypes>;
|
|
7704
|
+
/**
|
|
7705
|
+
* Normalizes labeled links in `@see` tags to a canonical `{@link}` form.
|
|
7706
|
+
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/normalize-see-links.md#repos-sticky-header
|
|
7707
|
+
*/
|
|
7708
|
+
'jsdoc/normalize-see-links'?: Linter.RuleEntry<JsdocNormalizeSeeLinks>;
|
|
7686
7709
|
/**
|
|
7687
7710
|
* Prefer `@import` tags to inline `import()` statements.
|
|
7688
7711
|
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/prefer-import-tag.md#repos-sticky-header
|
|
@@ -17455,6 +17478,11 @@ type JsdocNoUndefinedTypes = [] | [{
|
|
|
17455
17478
|
disableReporting?: boolean;
|
|
17456
17479
|
markVariablesAsUsed?: boolean;
|
|
17457
17480
|
}];
|
|
17481
|
+
// ----- jsdoc/normalize-see-links -----
|
|
17482
|
+
type JsdocNormalizeSeeLinks = [] | [{
|
|
17483
|
+
canonicalForm?: ("pipe" | "prefix");
|
|
17484
|
+
enableFixer?: boolean;
|
|
17485
|
+
}];
|
|
17458
17486
|
// ----- jsdoc/prefer-import-tag -----
|
|
17459
17487
|
type JsdocPreferImportTag = [] | [{
|
|
17460
17488
|
enableFixer?: boolean;
|
|
@@ -26418,7 +26446,7 @@ type TypedFlatConfigItem = Omit<Linter.Config<Linter.RulesRecord & Rules>, "plug
|
|
|
26418
26446
|
* object are resolved against. Defaults to the location ESLint derives the
|
|
26419
26447
|
* config from. Added in ESLint 9.30.
|
|
26420
26448
|
*
|
|
26421
|
-
* @see
|
|
26449
|
+
* @see {@link https://eslint.org/docs/latest/use/configure/configuration-files#specifying-basepath|basePath}
|
|
26422
26450
|
*/
|
|
26423
26451
|
basePath?: string;
|
|
26424
26452
|
/**
|
|
@@ -26426,7 +26454,7 @@ type TypedFlatConfigItem = Omit<Linter.Config<Linter.RulesRecord & Rules>, "plug
|
|
|
26426
26454
|
* objects. When `files` is specified, these plugins are only available to
|
|
26427
26455
|
* the matching files.
|
|
26428
26456
|
*
|
|
26429
|
-
* @see
|
|
26457
|
+
* @see {@link https://eslint.org/docs/latest/user-guide/configuring/configuration-files-new#using-plugins-in-your-configuration|Using plugins in your configuration}
|
|
26430
26458
|
*/
|
|
26431
26459
|
plugins?: Record<string, any>;
|
|
26432
26460
|
/**
|
|
@@ -27231,6 +27259,7 @@ declare const GLOB_JSX = "**/*.{,c,m}jsx";
|
|
|
27231
27259
|
declare const GLOB_TS = "**/*.{,c,m}ts";
|
|
27232
27260
|
declare const GLOB_TSX = "**/*.{,c,m}tsx";
|
|
27233
27261
|
declare const GLOB_DTS = "**/*.d.{,c,m}ts";
|
|
27262
|
+
declare const GLOB_BIN: Array<string>;
|
|
27234
27263
|
declare const GLOB_STYLE = "**/*.{c,le,sc}ss";
|
|
27235
27264
|
declare const GLOB_CSS = "**/*.css";
|
|
27236
27265
|
declare const GLOB_POSTCSS = "**/*.{p,post}css";
|
|
@@ -27434,7 +27463,14 @@ declare function test({ files, isInEditor, jest, overrides, roblox: isRoblox, st
|
|
|
27434
27463
|
declare function toml({ files, overrides, stylistic }?: OptionsFiles & OptionsOverrides & OptionsStylistic): Promise<Array<TypedFlatConfigItem>>;
|
|
27435
27464
|
//#endregion
|
|
27436
27465
|
//#region src/eslint/configs/typescript.d.ts
|
|
27437
|
-
declare function typescript(options?: OptionsComponentExtensions & OptionsFiles & OptionsOverridesTypeAware & OptionsStylistic & OptionsTypeScriptErasableOnly & OptionsTypeScriptParserOptions & OptionsTypeScriptWithTypes
|
|
27466
|
+
declare function typescript(options?: OptionsComponentExtensions & OptionsFiles & OptionsHasRoblox & OptionsOverridesTypeAware & OptionsStylistic & OptionsTypeScriptErasableOnly & OptionsTypeScriptParserOptions & OptionsTypeScriptWithTypes & {
|
|
27467
|
+
/**
|
|
27468
|
+
* When set, re-apply the non-roblox type-aware rules to every
|
|
27469
|
+
* type-aware file except these globs (the roblox scope), so the
|
|
27470
|
+
* complement is linted as standard-TS/Node land.
|
|
27471
|
+
*/
|
|
27472
|
+
complementIgnores?: Array<string>;
|
|
27473
|
+
}): Promise<Array<TypedFlatConfigItem>>;
|
|
27438
27474
|
//#endregion
|
|
27439
27475
|
//#region src/eslint/configs/unicorn.d.ts
|
|
27440
27476
|
declare function unicorn({ complementIgnores, nameReplacements, roblox, root: customRootGlobs, stylistic }?: OptionsHasRoblox & OptionsStylistic & OptionsUnicorn & {
|
|
@@ -27450,4 +27486,4 @@ declare function unicorn({ complementIgnores, nameReplacements, roblox, root: cu
|
|
|
27450
27486
|
//#region src/eslint/configs/yaml.d.ts
|
|
27451
27487
|
declare function yaml({ files, overrides, stylistic }?: OptionsFiles & OptionsOverrides & OptionsStylistic): Promise<Array<TypedFlatConfigItem>>;
|
|
27452
27488
|
//#endregion
|
|
27453
|
-
export { Awaitable, type ConfigNames, type FlatConfigComposer, GLOB_ALL_JSON, GLOB_ALL_SRC, GLOB_BUILD_TOOLS, GLOB_CSS, GLOB_DTS, GLOB_EXCLUDE, GLOB_GRAPHQL, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_LINTABLE_EXTENSIONS, GLOB_LUA, GLOB_MARKDOWN, GLOB_MARKDOWN_BLOCKS, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_MISE, GLOB_PACKAGE_JSON, GLOB_PACKAGE_JSON_ROOT, GLOB_POSTCSS, GLOB_ROOT, GLOB_ROOT_SRC, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_SRC_EXTENSIONS, GLOB_STYLE, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSCONFIG, GLOB_TSX, GLOB_TYPE_TESTS, GLOB_XML, GLOB_YAML, GitignoreOptions, JsdocOptions, NamedFlatConfigItem, NamedOptionsConfig, NamingConfig, NamingSelector, OptionsComponentExtensions, OptionsConfig, OptionsE18e, OptionsFiles, OptionsFilesTypeAware, OptionsFormatters, OptionsHasRoblox, OptionsHasTypeScript, OptionsIsInEditor, OptionsJest, OptionsOverrides, OptionsOverridesTypeAware, OptionsPnpm, OptionsProjectType, OptionsStylistic, OptionsTestFramework, OptionsTypeScriptErasableOnly, OptionsTypeScriptParserOptions, OptionsTypeScriptWithTypes, OptionsTypescript, OptionsUnicorn, OptionsVitest, type OxfmtOptions, PerfectionistConfig, type PrettierOptions, ReactConfig, Rules, SpellCheckConfig, StylisticConfig, StylisticConfigDefaults, TypedFlatConfigItem, comments, isentinel as default, isentinel, defaultPluginRenaming, disables, e18e, eslintPlugin, flawless, gitignore, ignores$1 as ignores, imports, isInAgentSession, isInEditorEnvironment, isInGitHooksOrLintStaged, javascript, jsdoc, jsonc, loadSmallRulesPlugin, markdown, naming, node, oxfmt, packageJson, perfectionist, pnpm, promise, react, roblox$1 as roblox, smallRules, sonarjs, sortCspell, sortGithubAction, sortMiseToml, sortPnpmWorkspace, sortRojoProject, sortTsconfig, spelling, stylistic$1 as stylistic, test, toml, typescript, unicorn, yaml };
|
|
27489
|
+
export { Awaitable, type ConfigNames, type FlatConfigComposer, GLOB_ALL_JSON, GLOB_ALL_SRC, GLOB_BIN, GLOB_BUILD_TOOLS, GLOB_CSS, GLOB_DTS, GLOB_EXCLUDE, GLOB_GRAPHQL, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_LINTABLE_EXTENSIONS, GLOB_LUA, GLOB_MARKDOWN, GLOB_MARKDOWN_BLOCKS, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_MISE, GLOB_PACKAGE_JSON, GLOB_PACKAGE_JSON_ROOT, GLOB_POSTCSS, GLOB_ROOT, GLOB_ROOT_SRC, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_SRC_EXTENSIONS, GLOB_STYLE, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSCONFIG, GLOB_TSX, GLOB_TYPE_TESTS, GLOB_XML, GLOB_YAML, GitignoreOptions, JsdocOptions, NamedFlatConfigItem, NamedOptionsConfig, NamingConfig, NamingSelector, OptionsComponentExtensions, OptionsConfig, OptionsE18e, OptionsFiles, OptionsFilesTypeAware, OptionsFormatters, OptionsHasRoblox, OptionsHasTypeScript, OptionsIsInEditor, OptionsJest, OptionsOverrides, OptionsOverridesTypeAware, OptionsPnpm, OptionsProjectType, OptionsStylistic, OptionsTestFramework, OptionsTypeScriptErasableOnly, OptionsTypeScriptParserOptions, OptionsTypeScriptWithTypes, OptionsTypescript, OptionsUnicorn, OptionsVitest, type OxfmtOptions, PerfectionistConfig, type PrettierOptions, ReactConfig, Rules, SpellCheckConfig, StylisticConfig, StylisticConfigDefaults, TypedFlatConfigItem, comments, isentinel as default, isentinel, defaultPluginRenaming, disables, e18e, eslintPlugin, flawless, gitignore, ignores$1 as ignores, imports, isInAgentSession, isInEditorEnvironment, isInGitHooksOrLintStaged, javascript, jsdoc, jsonc, loadSmallRulesPlugin, markdown, naming, node, oxfmt, packageJson, perfectionist, pnpm, promise, react, roblox$1 as roblox, smallRules, sonarjs, sortCspell, sortGithubAction, sortMiseToml, sortPnpmWorkspace, sortRojoProject, sortTsconfig, spelling, stylistic$1 as stylistic, test, toml, typescript, unicorn, yaml };
|
package/dist/index.mjs
CHANGED
|
@@ -115,6 +115,7 @@ const GLOB_JSX = "**/*.{,c,m}jsx";
|
|
|
115
115
|
const GLOB_TS = "**/*.{,c,m}ts";
|
|
116
116
|
const GLOB_TSX = "**/*.{,c,m}tsx";
|
|
117
117
|
const GLOB_DTS = "**/*.d.{,c,m}ts";
|
|
118
|
+
const GLOB_BIN = ["**/bin/**/*", `**/bin.${GLOB_SRC_EXT}`];
|
|
118
119
|
const GLOB_STYLE = "**/*.{c,le,sc}ss";
|
|
119
120
|
const GLOB_CSS = "**/*.css";
|
|
120
121
|
const GLOB_POSTCSS = "**/*.{p,post}css";
|
|
@@ -194,6 +195,7 @@ const GLOB_EXCLUDE = [
|
|
|
194
195
|
"**/package-lock.json",
|
|
195
196
|
"**/pnpm-lock.yaml",
|
|
196
197
|
"**/yarn.lock",
|
|
198
|
+
"**/skills-lock.json",
|
|
197
199
|
"**/.cache",
|
|
198
200
|
"**/.changeset",
|
|
199
201
|
"**/.agents",
|
|
@@ -230,7 +232,7 @@ const GLOB_EXCLUDE = [
|
|
|
230
232
|
"**/roblox.yml"
|
|
231
233
|
];
|
|
232
234
|
//#endregion
|
|
233
|
-
//#region src/lint-cli/state.ts
|
|
235
|
+
//#region src/lint-cli/lib/state.ts
|
|
234
236
|
/**
|
|
235
237
|
* Directory (relative to the project root) where the CLI keeps its persisted
|
|
236
238
|
* state. Lives under `node_modules/.cache` so it is discarded with the
|
|
@@ -353,7 +355,7 @@ function parseState(raw) {
|
|
|
353
355
|
return envelope.version === 2 ? envelope.data : void 0;
|
|
354
356
|
}
|
|
355
357
|
//#endregion
|
|
356
|
-
//#region src/
|
|
358
|
+
//#region src/hybrid-status.ts
|
|
357
359
|
/**
|
|
358
360
|
* Absolute path to the hybrid-status file for a project root.
|
|
359
361
|
*
|
|
@@ -1197,7 +1199,7 @@ async function disables({ root }) {
|
|
|
1197
1199
|
},
|
|
1198
1200
|
{
|
|
1199
1201
|
name: "isentinel/disables/bin",
|
|
1200
|
-
files:
|
|
1202
|
+
files: GLOB_BIN,
|
|
1201
1203
|
rules: {
|
|
1202
1204
|
"antfu/no-import-dist": "off",
|
|
1203
1205
|
"antfu/no-import-node-modules-by-path": "off",
|
|
@@ -2091,6 +2093,7 @@ function jsdocRules({ full = false, stylistic = true, type = "game" } = {}) {
|
|
|
2091
2093
|
"jsdoc/no-blank-block-descriptions": "warn",
|
|
2092
2094
|
"jsdoc/no-blank-blocks": "warn",
|
|
2093
2095
|
"jsdoc/no-multi-asterisks": "warn",
|
|
2096
|
+
"jsdoc/normalize-see-links": "warn",
|
|
2094
2097
|
"jsdoc/require-asterisk-prefix": "warn",
|
|
2095
2098
|
"jsdoc/require-hyphen-before-param-description": "warn"
|
|
2096
2099
|
} : {}
|
|
@@ -4796,7 +4799,11 @@ function jestRules({ extended = false, isInEditor = false, roblox: isRoblox = tr
|
|
|
4796
4799
|
"jest/prefer-called-with": "warn",
|
|
4797
4800
|
"jest/prefer-comparison-matcher": "warn",
|
|
4798
4801
|
"jest/prefer-each": "warn",
|
|
4799
|
-
"jest/prefer-ending-with-an-expect": "warn",
|
|
4802
|
+
"jest/prefer-ending-with-an-expect": ["warn", { assertFunctionNames: [
|
|
4803
|
+
"expect",
|
|
4804
|
+
"expectTypeOf",
|
|
4805
|
+
"assertType"
|
|
4806
|
+
] }],
|
|
4800
4807
|
"jest/prefer-equality-matcher": "warn",
|
|
4801
4808
|
"jest/prefer-expect-assertions": "error",
|
|
4802
4809
|
"jest/prefer-hooks-in-order": "warn",
|
|
@@ -5143,9 +5150,10 @@ function typescriptRules({ stylistic = true } = {}) {
|
|
|
5143
5150
|
* In hybrid mode these are executed by oxlint-tsgolint (`oxlint
|
|
5144
5151
|
* --type-aware`).
|
|
5145
5152
|
*
|
|
5153
|
+
* @param options - Shared rule options.
|
|
5146
5154
|
* @returns The rule map.
|
|
5147
5155
|
*/
|
|
5148
|
-
function typescriptTypeAwareRules() {
|
|
5156
|
+
function typescriptTypeAwareRules({ roblox = true } = {}) {
|
|
5149
5157
|
return {
|
|
5150
5158
|
"dot-notation": "off",
|
|
5151
5159
|
"no-implied-eval": "off",
|
|
@@ -5161,7 +5169,10 @@ function typescriptTypeAwareRules() {
|
|
|
5161
5169
|
"ts/no-deprecated": "error",
|
|
5162
5170
|
"ts/no-duplicate-type-constituents": "error",
|
|
5163
5171
|
"ts/no-empty-object-type": "error",
|
|
5164
|
-
"ts/no-floating-promises": ["error", {
|
|
5172
|
+
"ts/no-floating-promises": ["error", {
|
|
5173
|
+
checkThenables: roblox,
|
|
5174
|
+
ignoreVoid: true
|
|
5175
|
+
}],
|
|
5165
5176
|
"ts/no-for-in-array": "error",
|
|
5166
5177
|
"ts/no-implied-eval": "error",
|
|
5167
5178
|
"ts/no-meaningless-void-operator": "error",
|
|
@@ -5230,7 +5241,7 @@ function erasableSyntaxOnlyRules() {
|
|
|
5230
5241
|
//#endregion
|
|
5231
5242
|
//#region src/eslint/configs/typescript.ts
|
|
5232
5243
|
async function typescript(options = {}) {
|
|
5233
|
-
const { componentExts: componentExtensions = [], erasableOnly = false, outOfProjectFiles, overrides = {}, overridesTypeAware = {}, parserOptions = {}, parserOptionsNonTypeAware = {}, parserOptionsTypeAware = {}, stylistic = true, typeAware = true } = options;
|
|
5244
|
+
const { complementIgnores, componentExts: componentExtensions = [], erasableOnly = false, outOfProjectFiles, overrides = {}, overridesTypeAware = {}, parserOptions = {}, parserOptionsNonTypeAware = {}, parserOptionsTypeAware = {}, roblox = true, stylistic = true, typeAware = true } = options;
|
|
5234
5245
|
const files = options.files ?? [
|
|
5235
5246
|
"**/*.{,c,m}ts",
|
|
5236
5247
|
"**/*.{,c,m}tsx",
|
|
@@ -5240,7 +5251,7 @@ async function typescript(options = {}) {
|
|
|
5240
5251
|
const ignoresTypeAware = options.ignoresTypeAware ?? [`**/*.md/**`];
|
|
5241
5252
|
const tsconfigPath = typeAware ? getTsConfig(options.tsconfigPath) : void 0;
|
|
5242
5253
|
const isTypeAware = tsconfigPath !== void 0;
|
|
5243
|
-
const typeAwareRules = typescriptTypeAwareRules();
|
|
5254
|
+
const typeAwareRules = typescriptTypeAwareRules({ roblox });
|
|
5244
5255
|
const [parserTs, pluginTs, pluginAntfu] = await Promise.all([
|
|
5245
5256
|
interopDefault(import("@typescript-eslint/parser")),
|
|
5246
5257
|
interopDefault(import("@typescript-eslint/eslint-plugin")),
|
|
@@ -5294,6 +5305,15 @@ async function typescript(options = {}) {
|
|
|
5294
5305
|
...overridesTypeAware
|
|
5295
5306
|
}
|
|
5296
5307
|
}] : [],
|
|
5308
|
+
...isTypeAware && complementIgnores ? [{
|
|
5309
|
+
name: "isentinel/typescript/rules-type-aware/complement",
|
|
5310
|
+
files: filesTypeAware,
|
|
5311
|
+
ignores: [...ignoresTypeAware, ...complementIgnores],
|
|
5312
|
+
rules: {
|
|
5313
|
+
...typescriptTypeAwareRules({ roblox: false }),
|
|
5314
|
+
...overridesTypeAware
|
|
5315
|
+
}
|
|
5316
|
+
}] : [],
|
|
5297
5317
|
...erasableOnly ? [{
|
|
5298
5318
|
name: "isentinel/typescript/erasable-syntax-only",
|
|
5299
5319
|
plugins: { "erasable-syntax-only": erasablePlugin },
|
|
@@ -14986,7 +15006,6 @@ const oxlintRuleMapping = {
|
|
|
14986
15006
|
"unicorn/no-unreadable-new-expression": "js-plugin",
|
|
14987
15007
|
"unicorn/no-unsafe-property-key": "js-plugin",
|
|
14988
15008
|
"unicorn/no-unused-properties": "js-plugin",
|
|
14989
|
-
"unicorn/no-useless-coercion": "js-plugin",
|
|
14990
15009
|
"unicorn/no-useless-compound-assignment": "js-plugin",
|
|
14991
15010
|
"unicorn/no-useless-concat": "js-plugin",
|
|
14992
15011
|
"unicorn/no-useless-delete-check": "js-plugin",
|
|
@@ -15058,6 +15077,7 @@ const oxlintRuleMapping = {
|
|
|
15058
15077
|
"jsdoc/no-multi-asterisks": "js-plugin",
|
|
15059
15078
|
"jsdoc/no-types": "js-plugin",
|
|
15060
15079
|
"jsdoc/no-undefined-types": "js-plugin",
|
|
15080
|
+
"jsdoc/normalize-see-links": "js-plugin",
|
|
15061
15081
|
"jsdoc/require-asterisk-prefix": "js-plugin",
|
|
15062
15082
|
"jsdoc/require-description": "js-plugin",
|
|
15063
15083
|
"jsdoc/require-description-complete-sentence": "js-plugin",
|
|
@@ -15467,7 +15487,8 @@ const optionallyTypeAwareRules = /* @__PURE__ */ new Set([
|
|
|
15467
15487
|
"e18e/prefer-array-at",
|
|
15468
15488
|
"e18e/prefer-array-to-reversed",
|
|
15469
15489
|
"e18e/prefer-array-to-sorted",
|
|
15470
|
-
"e18e/prefer-spread-syntax"
|
|
15490
|
+
"e18e/prefer-spread-syntax",
|
|
15491
|
+
"unicorn/no-useless-coercion"
|
|
15471
15492
|
]);
|
|
15472
15493
|
/**
|
|
15473
15494
|
* ESLint rules covered on the oxlint side by a differently-named native oxc
|
|
@@ -15874,7 +15895,9 @@ async function isentinel(options, ...userConfigs) {
|
|
|
15874
15895
|
}), typescript({
|
|
15875
15896
|
...resolveSubOptions(options, "typescript"),
|
|
15876
15897
|
...getOverrides(options, "typescript"),
|
|
15898
|
+
...needsComplementOverlay ? { complementIgnores: robloxScopedFiles } : {},
|
|
15877
15899
|
componentExts: componentExtensions,
|
|
15900
|
+
roblox: enableRoblox,
|
|
15878
15901
|
stylistic: stylisticOptions
|
|
15879
15902
|
}), unicorn({
|
|
15880
15903
|
...resolveSubOptions(options, "unicorn"),
|
|
@@ -16036,4 +16059,4 @@ async function isentinel(options, ...userConfigs) {
|
|
|
16036
16059
|
return composer;
|
|
16037
16060
|
}
|
|
16038
16061
|
//#endregion
|
|
16039
|
-
export { GLOB_ALL_JSON, GLOB_ALL_SRC, GLOB_BUILD_TOOLS, GLOB_CSS, GLOB_DTS, GLOB_EXCLUDE, GLOB_GRAPHQL, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_LINTABLE_EXTENSIONS, GLOB_LUA, GLOB_MARKDOWN, GLOB_MARKDOWN_BLOCKS, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_MISE, GLOB_PACKAGE_JSON, GLOB_PACKAGE_JSON_ROOT, GLOB_POSTCSS, GLOB_ROOT, GLOB_ROOT_SRC, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_SRC_EXTENSIONS, GLOB_STYLE, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSCONFIG, GLOB_TSX, GLOB_TYPE_TESTS, GLOB_XML, GLOB_YAML, StylisticConfigDefaults, comments, isentinel as default, isentinel, defaultPluginRenaming, disables, e18e, eslintPlugin, flawless, gitignore, ignores, imports, isInAgentSession, isInEditorEnvironment, isInGitHooksOrLintStaged, javascript, jsdoc, jsonc, loadSmallRulesPlugin, markdown, naming, node, oxfmt, packageJson, perfectionist, pnpm, promise, react, roblox, smallRules, sonarjs, sortCspell, sortGithubAction, sortMiseToml, sortPnpmWorkspace, sortRojoProject, sortTsconfig, spelling, stylistic, test, toml, typescript, unicorn, yaml };
|
|
16062
|
+
export { GLOB_ALL_JSON, GLOB_ALL_SRC, GLOB_BIN, GLOB_BUILD_TOOLS, GLOB_CSS, GLOB_DTS, GLOB_EXCLUDE, GLOB_GRAPHQL, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_LINTABLE_EXTENSIONS, GLOB_LUA, GLOB_MARKDOWN, GLOB_MARKDOWN_BLOCKS, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_MISE, GLOB_PACKAGE_JSON, GLOB_PACKAGE_JSON_ROOT, GLOB_POSTCSS, GLOB_ROOT, GLOB_ROOT_SRC, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_SRC_EXTENSIONS, GLOB_STYLE, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSCONFIG, GLOB_TSX, GLOB_TYPE_TESTS, GLOB_XML, GLOB_YAML, StylisticConfigDefaults, comments, isentinel as default, isentinel, defaultPluginRenaming, disables, e18e, eslintPlugin, flawless, gitignore, ignores, imports, isInAgentSession, isInEditorEnvironment, isInGitHooksOrLintStaged, javascript, jsdoc, jsonc, loadSmallRulesPlugin, markdown, naming, node, oxfmt, packageJson, perfectionist, pnpm, promise, react, roblox, smallRules, sonarjs, sortCspell, sortGithubAction, sortMiseToml, sortPnpmWorkspace, sortRojoProject, sortTsconfig, spelling, stylistic, test, toml, typescript, unicorn, yaml };
|