@isentinel/eslint-config 3.0.0 → 3.1.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/dist/cli.js CHANGED
@@ -11,7 +11,7 @@ import { execSync } from "node:child_process";
11
11
 
12
12
  //#region package.json
13
13
  var name = "@isentinel/eslint-config";
14
- var version = "3.0.0";
14
+ var version = "3.1.0";
15
15
  var description = "iSentinel's ESLint config";
16
16
  var keywords = [
17
17
  "eslint-config",
@@ -35,8 +35,8 @@ var bin = "./bin/index.js";
35
35
  var files = ["bin", "dist"];
36
36
  var scripts = {
37
37
  "build": "nr gen && tsdown --clean --dts",
38
- "build:inspector": "pnpm build && npx @eslint/config-inspector build",
39
- "dev": "npx @eslint/config-inspector --config eslint.config.ts",
38
+ "build:inspector": "pnpm build && npx @eslint/config-inspector build --config eslint-inspector.config.ts",
39
+ "dev": "npx @eslint/config-inspector --config eslint-inspector.config.ts",
40
40
  "gen": "tsx scripts/typegen.ts && tsx scripts/versiongen.ts",
41
41
  "postgen": "echo 'Generation complete!'",
42
42
  "lint": "eslint --cache",
@@ -75,6 +75,7 @@ var dependencies = {
75
75
  "eslint-plugin-arrow-return-style-x": "catalog:prod",
76
76
  "eslint-plugin-better-max-params": "catalog:prod",
77
77
  "eslint-plugin-de-morgan": "catalog:prod",
78
+ "eslint-plugin-flawless": "catalog:prod",
78
79
  "eslint-plugin-format-lua": "catalog:prod",
79
80
  "eslint-plugin-import-lite": "catalog:prod",
80
81
  "eslint-plugin-jsdoc": "catalog:prod",
@@ -500,8 +501,8 @@ async function updateEslintFiles(result) {
500
501
  //#endregion
501
502
  //#region src/cli/constants-generated.ts
502
503
  const versionsMap = {
503
- "@eslint-react/eslint-plugin": "1.52.5",
504
- "eslint": "9.33.0",
504
+ "@eslint-react/eslint-plugin": "1.53.1",
505
+ "eslint": "9.35.0",
505
506
  "eslint-plugin-jest": "29.0.1",
506
507
  "eslint-plugin-react-roblox-hooks": "5.1.0-rbx.1"
507
508
  };
@@ -1,6 +1,6 @@
1
1
  import { createRequire } from "module";
2
2
 
3
- //#region node_modules/.pnpm/eslint-plugin-unused-imports@4.2.0_@typescript-eslint+eslint-plugin@8.39.1_@typescript-_d725b5966c09a4e636f423644baea633/node_modules/eslint-plugin-unused-imports/dist/index.mjs
3
+ //#region node_modules/.pnpm/eslint-plugin-unused-imports@4.2.0_@typescript-eslint+eslint-plugin@8.43.0_@typescript-_39030a8e46c922b9f883f0d0060ced5b/node_modules/eslint-plugin-unused-imports/dist/index.mjs
4
4
  var commaFilter = { filter: (token) => token.value === "," };
5
5
  var includeCommentsFilter = { includeComments: true };
6
6
  function makePredicate(isImport, addFixer) {
package/dist/index.d.ts CHANGED
@@ -481,6 +481,11 @@ interface RuleOptions {
481
481
  * @see https://github.com/eslint-community/eslint-plugin-eslint-plugin/tree/HEAD/docs/rules/test-case-shorthand-strings.md
482
482
  */
483
483
  'eslint-plugin/test-case-shorthand-strings'?: Linter.RuleEntry<EslintPluginTestCaseShorthandStrings>;
484
+ /**
485
+ * Enforce naming conventions for everything across a codebase
486
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v0.1.0/src/rules/naming-convention/documentation.md
487
+ */
488
+ 'flawless/naming-convention'?: Linter.RuleEntry<FlawlessNamingConvention>;
484
489
  /**
485
490
  * Enforce `for` loop update clause moving the counter in the right direction
486
491
  * @see https://eslint.org/docs/latest/rules/for-direction
@@ -648,7 +653,7 @@ interface RuleOptions {
648
653
  * Reports invalid alignment of JSDoc block asterisks.
649
654
  * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-alignment.md#repos-sticky-header
650
655
  */
651
- 'jsdoc/check-alignment'?: Linter.RuleEntry<[]>;
656
+ 'jsdoc/check-alignment'?: Linter.RuleEntry<JsdocCheckAlignment>;
652
657
  /**
653
658
  * Ensures that (JavaScript) examples within JSDoc adhere to ESLint rules.
654
659
  * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-examples.md#repos-sticky-header
@@ -2545,7 +2550,7 @@ interface RuleOptions {
2545
2550
  */
2546
2551
  'package-json/restrict-dependency-ranges'?: Linter.RuleEntry<PackageJsonRestrictDependencyRanges>;
2547
2552
  /**
2548
- * Dependencies, scripts, and configuration values must be declared in alphabetical order.
2553
+ * Selected collections must be in a consistent order (lexicographical for most; lifecycle-aware for scripts).
2549
2554
  * @see https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/blob/HEAD/docs/rules/sort-collections.md
2550
2555
  */
2551
2556
  'package-json/sort-collections'?: Linter.RuleEntry<PackageJsonSortCollections>;
@@ -2594,6 +2599,16 @@ interface RuleOptions {
2594
2599
  * @see https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/blob/HEAD/docs/rules/valid-devDependencies.md
2595
2600
  */
2596
2601
  'package-json/valid-devDependencies'?: Linter.RuleEntry<[]>;
2602
+ /**
2603
+ * Enforce that the `directories` property is valid.
2604
+ * @see https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/blob/HEAD/docs/rules/valid-directories.md
2605
+ */
2606
+ 'package-json/valid-directories'?: Linter.RuleEntry<[]>;
2607
+ /**
2608
+ * Enforce that the `exports` property is valid.
2609
+ * @see https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/blob/HEAD/docs/rules/valid-exports.md
2610
+ */
2611
+ 'package-json/valid-exports'?: Linter.RuleEntry<[]>;
2597
2612
  /**
2598
2613
  * Enforce that the `license` property is valid.
2599
2614
  * @see https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/blob/HEAD/docs/rules/valid-license.md
@@ -2853,6 +2868,11 @@ interface RuleOptions {
2853
2868
  * @see https://eslint.org/docs/latest/rules/prefer-template
2854
2869
  */
2855
2870
  'prefer-template'?: Linter.RuleEntry<[]>;
2871
+ /**
2872
+ * Disallow losing originally caught error when re-throwing custom errors
2873
+ * @see https://eslint.org/docs/latest/rules/preserve-caught-error
2874
+ */
2875
+ 'preserve-caught-error'?: Linter.RuleEntry<PreserveCaughtError>;
2856
2876
  /**
2857
2877
  * Require returning inside each `then()` to create readable and reusable Promise chains.
2858
2878
  * @see https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/always-return.md
@@ -3247,7 +3267,7 @@ interface RuleOptions {
3247
3267
  'react/no-nested-components'?: Linter.RuleEntry<[]>;
3248
3268
  /**
3249
3269
  * Disallow nesting lazy component declarations inside other components.
3250
- * @see https://eslint-react.xyz/docs/rules/no-nested-component-definitions
3270
+ * @see https://eslint-react.xyz/docs/rules/no-nested-lazy-component-declarations
3251
3271
  */
3252
3272
  'react/no-nested-lazy-component-declarations'?: Linter.RuleEntry<[]>;
3253
3273
  /**
@@ -7866,6 +7886,336 @@ type EslintPluginRequireMetaSchema = [] | [{
7866
7886
  type EslintPluginTestCasePropertyOrdering = [] | [unknown[]];
7867
7887
  // ----- eslint-plugin/test-case-shorthand-strings -----
7868
7888
  type EslintPluginTestCaseShorthandStrings = [] | [("as-needed" | "never" | "consistent" | "consistent-as-needed")];
7889
+ // ----- flawless/naming-convention -----
7890
+ type _FlawlessNamingConventionFormatOptionsConfig = (_FlawlessNamingConventionPredefinedFormats[] | null);
7891
+ type _FlawlessNamingConventionPredefinedFormats = ("camelCase" | "strictCamelCase" | "PascalCase" | "StrictPascalCase" | "snake_case" | "UPPER_CASE");
7892
+ type _FlawlessNamingConventionUnderscoreOptions = ("forbid" | "allow" | "require" | "requireDouble" | "allowDouble" | "allowSingleOrDouble");
7893
+ type _FlawlessNamingConvention_PrefixSuffixConfig = string[];
7894
+ type _FlawlessNamingConventionTypeModifiers = ("boolean" | "string" | "number" | "function" | "array");
7895
+ type FlawlessNamingConvention = ({
7896
+ custom?: _FlawlessNamingConvention_MatchRegexConfig;
7897
+ failureMessage?: string;
7898
+ format: _FlawlessNamingConventionFormatOptionsConfig;
7899
+ leadingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
7900
+ prefix?: _FlawlessNamingConvention_PrefixSuffixConfig;
7901
+ suffix?: _FlawlessNamingConvention_PrefixSuffixConfig;
7902
+ trailingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
7903
+ filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
7904
+ modifiers?: ("const" | "readonly" | "static" | "public" | "protected" | "private" | "#private" | "abstract" | "destructured" | "global" | "exported" | "unused" | "requiresQuotes" | "override" | "async" | "default" | "namespace")[];
7905
+ selector: ("default" | "variableLike" | "memberLike" | "typeLike" | "method" | "property" | "accessor" | "variable" | "function" | "parameter" | "objectStyleEnum" | "parameterProperty" | "classicAccessor" | "enumMember" | "classMethod" | "objectLiteralMethod" | "typeMethod" | "classProperty" | "objectLiteralProperty" | "typeProperty" | "autoAccessor" | "class" | "interface" | "typeAlias" | "enum" | "typeParameter" | "import")[];
7906
+ types?: _FlawlessNamingConventionTypeModifiers[];
7907
+ } | {
7908
+ custom?: _FlawlessNamingConvention_MatchRegexConfig;
7909
+ failureMessage?: string;
7910
+ format: _FlawlessNamingConventionFormatOptionsConfig;
7911
+ leadingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
7912
+ prefix?: _FlawlessNamingConvention_PrefixSuffixConfig;
7913
+ suffix?: _FlawlessNamingConvention_PrefixSuffixConfig;
7914
+ trailingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
7915
+ filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
7916
+ selector: "default";
7917
+ modifiers?: ("const" | "readonly" | "static" | "public" | "protected" | "private" | "#private" | "abstract" | "destructured" | "global" | "exported" | "unused" | "requiresQuotes" | "override" | "async" | "default" | "namespace")[];
7918
+ } | {
7919
+ custom?: _FlawlessNamingConvention_MatchRegexConfig;
7920
+ failureMessage?: string;
7921
+ format: _FlawlessNamingConventionFormatOptionsConfig;
7922
+ leadingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
7923
+ prefix?: _FlawlessNamingConvention_PrefixSuffixConfig;
7924
+ suffix?: _FlawlessNamingConvention_PrefixSuffixConfig;
7925
+ trailingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
7926
+ filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
7927
+ selector: "variableLike";
7928
+ modifiers?: ("unused" | "async")[];
7929
+ } | {
7930
+ custom?: _FlawlessNamingConvention_MatchRegexConfig;
7931
+ failureMessage?: string;
7932
+ format: _FlawlessNamingConventionFormatOptionsConfig;
7933
+ leadingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
7934
+ prefix?: _FlawlessNamingConvention_PrefixSuffixConfig;
7935
+ suffix?: _FlawlessNamingConvention_PrefixSuffixConfig;
7936
+ trailingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
7937
+ filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
7938
+ selector: "variable";
7939
+ modifiers?: ("const" | "destructured" | "exported" | "global" | "unused" | "async")[];
7940
+ types?: _FlawlessNamingConventionTypeModifiers[];
7941
+ } | {
7942
+ custom?: _FlawlessNamingConvention_MatchRegexConfig;
7943
+ failureMessage?: string;
7944
+ format: _FlawlessNamingConventionFormatOptionsConfig;
7945
+ leadingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
7946
+ prefix?: _FlawlessNamingConvention_PrefixSuffixConfig;
7947
+ suffix?: _FlawlessNamingConvention_PrefixSuffixConfig;
7948
+ trailingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
7949
+ filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
7950
+ selector: "function";
7951
+ modifiers?: ("exported" | "global" | "unused" | "async")[];
7952
+ } | {
7953
+ custom?: _FlawlessNamingConvention_MatchRegexConfig;
7954
+ failureMessage?: string;
7955
+ format: _FlawlessNamingConventionFormatOptionsConfig;
7956
+ leadingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
7957
+ prefix?: _FlawlessNamingConvention_PrefixSuffixConfig;
7958
+ suffix?: _FlawlessNamingConvention_PrefixSuffixConfig;
7959
+ trailingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
7960
+ filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
7961
+ selector: "parameter";
7962
+ modifiers?: ("destructured" | "unused")[];
7963
+ types?: _FlawlessNamingConventionTypeModifiers[];
7964
+ } | {
7965
+ custom?: _FlawlessNamingConvention_MatchRegexConfig;
7966
+ failureMessage?: string;
7967
+ format: _FlawlessNamingConventionFormatOptionsConfig;
7968
+ leadingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
7969
+ prefix?: _FlawlessNamingConvention_PrefixSuffixConfig;
7970
+ suffix?: _FlawlessNamingConvention_PrefixSuffixConfig;
7971
+ trailingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
7972
+ filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
7973
+ selector: "objectStyleEnum";
7974
+ modifiers?: ("const" | "exported" | "global" | "unused")[];
7975
+ } | {
7976
+ custom?: _FlawlessNamingConvention_MatchRegexConfig;
7977
+ failureMessage?: string;
7978
+ format: _FlawlessNamingConventionFormatOptionsConfig;
7979
+ leadingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
7980
+ prefix?: _FlawlessNamingConvention_PrefixSuffixConfig;
7981
+ suffix?: _FlawlessNamingConvention_PrefixSuffixConfig;
7982
+ trailingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
7983
+ filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
7984
+ selector: "memberLike";
7985
+ modifiers?: ("abstract" | "private" | "#private" | "protected" | "public" | "readonly" | "requiresQuotes" | "static" | "override" | "async")[];
7986
+ } | {
7987
+ custom?: _FlawlessNamingConvention_MatchRegexConfig;
7988
+ failureMessage?: string;
7989
+ format: _FlawlessNamingConventionFormatOptionsConfig;
7990
+ leadingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
7991
+ prefix?: _FlawlessNamingConvention_PrefixSuffixConfig;
7992
+ suffix?: _FlawlessNamingConvention_PrefixSuffixConfig;
7993
+ trailingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
7994
+ filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
7995
+ selector: "classProperty";
7996
+ modifiers?: ("abstract" | "private" | "#private" | "protected" | "public" | "readonly" | "requiresQuotes" | "static" | "override")[];
7997
+ types?: _FlawlessNamingConventionTypeModifiers[];
7998
+ } | {
7999
+ custom?: _FlawlessNamingConvention_MatchRegexConfig;
8000
+ failureMessage?: string;
8001
+ format: _FlawlessNamingConventionFormatOptionsConfig;
8002
+ leadingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
8003
+ prefix?: _FlawlessNamingConvention_PrefixSuffixConfig;
8004
+ suffix?: _FlawlessNamingConvention_PrefixSuffixConfig;
8005
+ trailingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
8006
+ filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
8007
+ selector: "objectLiteralProperty";
8008
+ modifiers?: ("public" | "requiresQuotes")[];
8009
+ types?: _FlawlessNamingConventionTypeModifiers[];
8010
+ } | {
8011
+ custom?: _FlawlessNamingConvention_MatchRegexConfig;
8012
+ failureMessage?: string;
8013
+ format: _FlawlessNamingConventionFormatOptionsConfig;
8014
+ leadingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
8015
+ prefix?: _FlawlessNamingConvention_PrefixSuffixConfig;
8016
+ suffix?: _FlawlessNamingConvention_PrefixSuffixConfig;
8017
+ trailingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
8018
+ filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
8019
+ selector: "typeProperty";
8020
+ modifiers?: ("public" | "readonly" | "requiresQuotes")[];
8021
+ types?: _FlawlessNamingConventionTypeModifiers[];
8022
+ } | {
8023
+ custom?: _FlawlessNamingConvention_MatchRegexConfig;
8024
+ failureMessage?: string;
8025
+ format: _FlawlessNamingConventionFormatOptionsConfig;
8026
+ leadingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
8027
+ prefix?: _FlawlessNamingConvention_PrefixSuffixConfig;
8028
+ suffix?: _FlawlessNamingConvention_PrefixSuffixConfig;
8029
+ trailingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
8030
+ filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
8031
+ selector: "parameterProperty";
8032
+ modifiers?: ("private" | "protected" | "public" | "readonly")[];
8033
+ types?: _FlawlessNamingConventionTypeModifiers[];
8034
+ } | {
8035
+ custom?: _FlawlessNamingConvention_MatchRegexConfig;
8036
+ failureMessage?: string;
8037
+ format: _FlawlessNamingConventionFormatOptionsConfig;
8038
+ leadingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
8039
+ prefix?: _FlawlessNamingConvention_PrefixSuffixConfig;
8040
+ suffix?: _FlawlessNamingConvention_PrefixSuffixConfig;
8041
+ trailingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
8042
+ filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
8043
+ selector: "property";
8044
+ modifiers?: ("abstract" | "private" | "#private" | "protected" | "public" | "readonly" | "requiresQuotes" | "static" | "override" | "async")[];
8045
+ types?: _FlawlessNamingConventionTypeModifiers[];
8046
+ } | {
8047
+ custom?: _FlawlessNamingConvention_MatchRegexConfig;
8048
+ failureMessage?: string;
8049
+ format: _FlawlessNamingConventionFormatOptionsConfig;
8050
+ leadingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
8051
+ prefix?: _FlawlessNamingConvention_PrefixSuffixConfig;
8052
+ suffix?: _FlawlessNamingConvention_PrefixSuffixConfig;
8053
+ trailingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
8054
+ filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
8055
+ selector: "classMethod";
8056
+ modifiers?: ("abstract" | "private" | "#private" | "protected" | "public" | "requiresQuotes" | "static" | "override" | "async")[];
8057
+ } | {
8058
+ custom?: _FlawlessNamingConvention_MatchRegexConfig;
8059
+ failureMessage?: string;
8060
+ format: _FlawlessNamingConventionFormatOptionsConfig;
8061
+ leadingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
8062
+ prefix?: _FlawlessNamingConvention_PrefixSuffixConfig;
8063
+ suffix?: _FlawlessNamingConvention_PrefixSuffixConfig;
8064
+ trailingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
8065
+ filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
8066
+ selector: "objectLiteralMethod";
8067
+ modifiers?: ("public" | "requiresQuotes" | "async")[];
8068
+ } | {
8069
+ custom?: _FlawlessNamingConvention_MatchRegexConfig;
8070
+ failureMessage?: string;
8071
+ format: _FlawlessNamingConventionFormatOptionsConfig;
8072
+ leadingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
8073
+ prefix?: _FlawlessNamingConvention_PrefixSuffixConfig;
8074
+ suffix?: _FlawlessNamingConvention_PrefixSuffixConfig;
8075
+ trailingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
8076
+ filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
8077
+ selector: "typeMethod";
8078
+ modifiers?: ("public" | "requiresQuotes")[];
8079
+ } | {
8080
+ custom?: _FlawlessNamingConvention_MatchRegexConfig;
8081
+ failureMessage?: string;
8082
+ format: _FlawlessNamingConventionFormatOptionsConfig;
8083
+ leadingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
8084
+ prefix?: _FlawlessNamingConvention_PrefixSuffixConfig;
8085
+ suffix?: _FlawlessNamingConvention_PrefixSuffixConfig;
8086
+ trailingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
8087
+ filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
8088
+ selector: "method";
8089
+ modifiers?: ("abstract" | "private" | "#private" | "protected" | "public" | "requiresQuotes" | "static" | "override" | "async")[];
8090
+ } | {
8091
+ custom?: _FlawlessNamingConvention_MatchRegexConfig;
8092
+ failureMessage?: string;
8093
+ format: _FlawlessNamingConventionFormatOptionsConfig;
8094
+ leadingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
8095
+ prefix?: _FlawlessNamingConvention_PrefixSuffixConfig;
8096
+ suffix?: _FlawlessNamingConvention_PrefixSuffixConfig;
8097
+ trailingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
8098
+ filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
8099
+ selector: "classicAccessor";
8100
+ modifiers?: ("abstract" | "private" | "protected" | "public" | "requiresQuotes" | "static" | "override")[];
8101
+ types?: _FlawlessNamingConventionTypeModifiers[];
8102
+ } | {
8103
+ custom?: _FlawlessNamingConvention_MatchRegexConfig;
8104
+ failureMessage?: string;
8105
+ format: _FlawlessNamingConventionFormatOptionsConfig;
8106
+ leadingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
8107
+ prefix?: _FlawlessNamingConvention_PrefixSuffixConfig;
8108
+ suffix?: _FlawlessNamingConvention_PrefixSuffixConfig;
8109
+ trailingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
8110
+ filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
8111
+ selector: "autoAccessor";
8112
+ modifiers?: ("abstract" | "private" | "protected" | "public" | "requiresQuotes" | "static" | "override")[];
8113
+ types?: _FlawlessNamingConventionTypeModifiers[];
8114
+ } | {
8115
+ custom?: _FlawlessNamingConvention_MatchRegexConfig;
8116
+ failureMessage?: string;
8117
+ format: _FlawlessNamingConventionFormatOptionsConfig;
8118
+ leadingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
8119
+ prefix?: _FlawlessNamingConvention_PrefixSuffixConfig;
8120
+ suffix?: _FlawlessNamingConvention_PrefixSuffixConfig;
8121
+ trailingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
8122
+ filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
8123
+ selector: "accessor";
8124
+ modifiers?: ("abstract" | "private" | "protected" | "public" | "requiresQuotes" | "static" | "override")[];
8125
+ types?: _FlawlessNamingConventionTypeModifiers[];
8126
+ } | {
8127
+ custom?: _FlawlessNamingConvention_MatchRegexConfig;
8128
+ failureMessage?: string;
8129
+ format: _FlawlessNamingConventionFormatOptionsConfig;
8130
+ leadingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
8131
+ prefix?: _FlawlessNamingConvention_PrefixSuffixConfig;
8132
+ suffix?: _FlawlessNamingConvention_PrefixSuffixConfig;
8133
+ trailingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
8134
+ filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
8135
+ selector: "enumMember";
8136
+ modifiers?: ("requiresQuotes")[];
8137
+ } | {
8138
+ custom?: _FlawlessNamingConvention_MatchRegexConfig;
8139
+ failureMessage?: string;
8140
+ format: _FlawlessNamingConventionFormatOptionsConfig;
8141
+ leadingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
8142
+ prefix?: _FlawlessNamingConvention_PrefixSuffixConfig;
8143
+ suffix?: _FlawlessNamingConvention_PrefixSuffixConfig;
8144
+ trailingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
8145
+ filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
8146
+ selector: "typeLike";
8147
+ modifiers?: ("abstract" | "exported" | "unused")[];
8148
+ } | {
8149
+ custom?: _FlawlessNamingConvention_MatchRegexConfig;
8150
+ failureMessage?: string;
8151
+ format: _FlawlessNamingConventionFormatOptionsConfig;
8152
+ leadingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
8153
+ prefix?: _FlawlessNamingConvention_PrefixSuffixConfig;
8154
+ suffix?: _FlawlessNamingConvention_PrefixSuffixConfig;
8155
+ trailingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
8156
+ filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
8157
+ selector: "class";
8158
+ modifiers?: ("abstract" | "exported" | "unused")[];
8159
+ } | {
8160
+ custom?: _FlawlessNamingConvention_MatchRegexConfig;
8161
+ failureMessage?: string;
8162
+ format: _FlawlessNamingConventionFormatOptionsConfig;
8163
+ leadingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
8164
+ prefix?: _FlawlessNamingConvention_PrefixSuffixConfig;
8165
+ suffix?: _FlawlessNamingConvention_PrefixSuffixConfig;
8166
+ trailingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
8167
+ filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
8168
+ selector: "interface";
8169
+ modifiers?: ("exported" | "unused")[];
8170
+ } | {
8171
+ custom?: _FlawlessNamingConvention_MatchRegexConfig;
8172
+ failureMessage?: string;
8173
+ format: _FlawlessNamingConventionFormatOptionsConfig;
8174
+ leadingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
8175
+ prefix?: _FlawlessNamingConvention_PrefixSuffixConfig;
8176
+ suffix?: _FlawlessNamingConvention_PrefixSuffixConfig;
8177
+ trailingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
8178
+ filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
8179
+ selector: "typeAlias";
8180
+ modifiers?: ("exported" | "unused")[];
8181
+ } | {
8182
+ custom?: _FlawlessNamingConvention_MatchRegexConfig;
8183
+ failureMessage?: string;
8184
+ format: _FlawlessNamingConventionFormatOptionsConfig;
8185
+ leadingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
8186
+ prefix?: _FlawlessNamingConvention_PrefixSuffixConfig;
8187
+ suffix?: _FlawlessNamingConvention_PrefixSuffixConfig;
8188
+ trailingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
8189
+ filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
8190
+ selector: "enum";
8191
+ modifiers?: ("exported" | "unused")[];
8192
+ } | {
8193
+ custom?: _FlawlessNamingConvention_MatchRegexConfig;
8194
+ failureMessage?: string;
8195
+ format: _FlawlessNamingConventionFormatOptionsConfig;
8196
+ leadingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
8197
+ prefix?: _FlawlessNamingConvention_PrefixSuffixConfig;
8198
+ suffix?: _FlawlessNamingConvention_PrefixSuffixConfig;
8199
+ trailingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
8200
+ filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
8201
+ selector: "typeParameter";
8202
+ modifiers?: ("unused")[];
8203
+ } | {
8204
+ custom?: _FlawlessNamingConvention_MatchRegexConfig;
8205
+ failureMessage?: string;
8206
+ format: _FlawlessNamingConventionFormatOptionsConfig;
8207
+ leadingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
8208
+ prefix?: _FlawlessNamingConvention_PrefixSuffixConfig;
8209
+ suffix?: _FlawlessNamingConvention_PrefixSuffixConfig;
8210
+ trailingUnderscore?: _FlawlessNamingConventionUnderscoreOptions;
8211
+ filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
8212
+ selector: "import";
8213
+ modifiers?: ("default" | "namespace")[];
8214
+ })[];
8215
+ interface _FlawlessNamingConvention_MatchRegexConfig {
8216
+ match: boolean;
8217
+ regex: string;
8218
+ }
7869
8219
  // ----- format-lua/stylua -----
7870
8220
  type FormatLuaStylua = [] | [{
7871
8221
  language?: string;
@@ -8042,6 +8392,10 @@ type IndentLegacy = [] | [("tab" | number)] | [("tab" | number), {
8042
8392
  type InitDeclarations = ([] | ["always"] | [] | ["never"] | ["never", {
8043
8393
  ignoreForLoopInit?: boolean;
8044
8394
  }]);
8395
+ // ----- jsdoc/check-alignment -----
8396
+ type JsdocCheckAlignment = [] | [{
8397
+ innerIndent?: number;
8398
+ }];
8045
8399
  // ----- jsdoc/check-examples -----
8046
8400
  type JsdocCheckExamples = [] | [{
8047
8401
  allowInlineConfig?: boolean;
@@ -8331,6 +8685,7 @@ type JsdocRequireJsdoc = [] | [{
8331
8685
  enableFixer?: boolean;
8332
8686
  exemptEmptyConstructors?: boolean;
8333
8687
  exemptEmptyFunctions?: boolean;
8688
+ exemptOverloadedImplementations?: boolean;
8334
8689
  fixerMessage?: string;
8335
8690
  minLineCount?: number;
8336
8691
  publicOnly?: (boolean | {
@@ -8347,6 +8702,7 @@ type JsdocRequireJsdoc = [] | [{
8347
8702
  FunctionExpression?: boolean;
8348
8703
  MethodDefinition?: boolean;
8349
8704
  };
8705
+ skipInterveningOverloadedDeclarations?: boolean;
8350
8706
  }];
8351
8707
  // ----- jsdoc/require-param -----
8352
8708
  type JsdocRequireParam = [] | [{
@@ -8437,6 +8793,7 @@ type JsdocRequireReturnsType = [] | [{
8437
8793
  }];
8438
8794
  // ----- jsdoc/require-template -----
8439
8795
  type JsdocRequireTemplate = [] | [{
8796
+ exemptedBy?: string[];
8440
8797
  requireSeparateTemplates?: boolean;
8441
8798
  }];
8442
8799
  // ----- jsdoc/require-throws -----
@@ -11976,6 +12333,10 @@ type PreferReflect = [] | [{
11976
12333
  type PreferRegexLiterals = [] | [{
11977
12334
  disallowRedundantWrapping?: boolean;
11978
12335
  }];
12336
+ // ----- preserve-caught-error -----
12337
+ type PreserveCaughtError = [] | [{
12338
+ requireCatchParameter?: boolean;
12339
+ }];
11979
12340
  // ----- promise/always-return -----
11980
12341
  type PromiseAlwaysReturn = [] | [{
11981
12342
  ignoreLastCallback?: boolean;
@@ -12036,8 +12397,6 @@ type ReactHooksRobloxExhaustiveDeps = [] | [{
12036
12397
  // ----- react-naming-convention/component-name -----
12037
12398
  type ReactNamingConventionComponentName = [] | [(("PascalCase" | "CONSTANT_CASE") | {
12038
12399
  allowAllCaps?: boolean;
12039
- allowLeadingUnderscore?: boolean;
12040
- allowNamespace?: boolean;
12041
12400
  excepts?: string[];
12042
12401
  rule?: ("PascalCase" | "CONSTANT_CASE");
12043
12402
  })];
@@ -15114,7 +15473,7 @@ type Yoda = [] | [("always" | "never")] | [("always" | "never"), {
15114
15473
  onlyEquality?: boolean;
15115
15474
  }];
15116
15475
  // Names of all the configs
15117
- type ConfigNames = 'isentinel/eslint/comments' | 'isentinel/eslint/comments/src' | 'isentinel/eslint-plugin/setup' | 'isentinel/eslint-plugin/rules' | 'isentinel/gitignore' | 'isentinel/ignores' | 'isentinel/imports/rules' | 'isentinel/imports/game' | 'isentinel/javascript/setup' | 'isentinel/javascript/rules' | 'isentinel/jsdoc/setup' | 'isentinel/jsdoc' | 'isentinel/jsonc/setup' | 'isentinel/jsonc/rules' | 'isentinel/markdown/setup' | 'isentinel/markdown/processor' | 'isentinel/markdown/parser' | 'isentinel/markdown/disables' | 'isentinel/node/rules' | 'isentinel/package-json/setup' | 'isentinel/package-json' | 'isentinel/perfectionist/setup' | 'isentinel/perfectionist' | 'isentinel/pnpm/setup' | 'isentinel/pnpm/package-json' | 'isentinel/pnpm/pnpm-workspace-yaml' | 'isentinel/prettier/setup' | 'isentinel/prettier/javascript' | 'isentinel/prettier' | 'isentinel/prettier/css' | 'isentinel/prettier/scss' | 'isentinel/prettier/less' | 'isentinel/prettier/html' | 'isentinel/prettier/markdown' | 'isentinel/prettier/graphql' | 'isentinel/prettier/json' | 'isentinel/prettier/yaml' | 'isentinel/promise' | 'isentinel/react/setup' | 'isentinel/react/rules' | 'isentinel/react/type-aware-rules' | 'isentinel/roblox/setup' | 'isentinel/roblox/parser' | 'isentinel/roblox/type-aware-parser' | 'isentinel/roblox' | 'isentinel/roblox/rules-type-aware' | 'isentinel/roblox/format-lua/setup' | 'isentinel/roblox/format-lua' | 'isentinel/shopify' | 'isentinel/sonarjs' | 'isentinel/sort-tsconfig' | 'isentinel/spelling/setup' | 'isentinel/spelling' | 'isentinel/stylistic/setup' | 'isentinel/stylistic' | 'isentinel/stylistic/ts' | 'isentinel/stylistic/js' | 'isentinel/stylistic/markdown-code' | 'isentinel/test/jest/setup' | 'isentinel/test/jest/rules' | 'isentinel/toml/setup' | 'isentinel/toml/rules' | 'isentinel/typescript/setup' | 'isentinel/typescript/parser' | 'isentinel/typescript/type-aware-parser' | 'isentinel/typescript/rules' | 'isentinel/typescript/rules-type-aware' | 'isentinel/unicorn' | 'isentinel/unicorn/root' | 'isentinel/yaml/setup' | 'isentinel/yaml/rules';
15476
+ type ConfigNames = 'isentinel/eslint/comments' | 'isentinel/eslint/comments/src' | 'isentinel/eslint-plugin/setup' | 'isentinel/eslint-plugin/rules' | 'isentinel/flawless/setup' | 'isentinel/flawless/ts/rules-type-aware' | 'isentinel/flawless/tsx/rules-type-aware' | 'isentinel/gitignore' | 'isentinel/ignores' | 'isentinel/imports/rules' | 'isentinel/imports/game' | 'isentinel/javascript/setup' | 'isentinel/javascript/rules' | 'isentinel/jsdoc/setup' | 'isentinel/jsdoc' | 'isentinel/jsonc/setup' | 'isentinel/jsonc/rules' | 'isentinel/markdown/setup' | 'isentinel/markdown/processor' | 'isentinel/markdown/parser' | 'isentinel/markdown/disables' | 'isentinel/node/rules' | 'isentinel/package-json/setup' | 'isentinel/package-json' | 'isentinel/perfectionist/setup' | 'isentinel/perfectionist' | 'isentinel/pnpm/setup' | 'isentinel/pnpm/package-json' | 'isentinel/pnpm/pnpm-workspace-yaml' | 'isentinel/prettier/setup' | 'isentinel/prettier/javascript' | 'isentinel/prettier' | 'isentinel/prettier/css' | 'isentinel/prettier/scss' | 'isentinel/prettier/less' | 'isentinel/prettier/html' | 'isentinel/prettier/markdown' | 'isentinel/prettier/graphql' | 'isentinel/prettier/json' | 'isentinel/prettier/yaml' | 'isentinel/promise' | 'isentinel/react/setup' | 'isentinel/react/rules' | 'isentinel/react/type-aware-rules' | 'isentinel/roblox/setup' | 'isentinel/roblox/parser' | 'isentinel/roblox/type-aware-parser' | 'isentinel/roblox' | 'isentinel/roblox/rules-type-aware' | 'isentinel/roblox/format-lua/setup' | 'isentinel/roblox/format-lua' | 'isentinel/shopify' | 'isentinel/sonarjs' | 'isentinel/sort-tsconfig' | 'isentinel/spelling/setup' | 'isentinel/spelling' | 'isentinel/stylistic/setup' | 'isentinel/stylistic' | 'isentinel/stylistic/ts' | 'isentinel/stylistic/js' | 'isentinel/stylistic/markdown-code' | 'isentinel/test/jest/setup' | 'isentinel/test/jest/rules' | 'isentinel/toml/setup' | 'isentinel/toml/rules' | 'isentinel/typescript/setup' | 'isentinel/typescript/parser' | 'isentinel/typescript/type-aware-parser' | 'isentinel/typescript/rules' | 'isentinel/typescript/rules-type-aware' | 'isentinel/unicorn' | 'isentinel/unicorn/root' | 'isentinel/yaml/setup' | 'isentinel/yaml/rules';
15118
15477
  //#endregion
15119
15478
  //#region src/utils.d.ts
15120
15479
  type ExtractRuleOptions<T> = T extends Linter.RuleEntry<infer U> ? U : never;
@@ -15277,6 +15636,12 @@ interface OptionsConfig extends OptionsComponentExtensions, OptionsProjectType {
15277
15636
  * @requires eslint-plugin-eslint-plugin
15278
15637
  */
15279
15638
  eslintPlugin?: boolean | OptionsOverrides;
15639
+ /**
15640
+ * Enable eslint-plugin-flawless.
15641
+ *
15642
+ * @default false
15643
+ */
15644
+ flawless?: boolean;
15280
15645
  /**
15281
15646
  * Use external formatters to format files.
15282
15647
  *
@@ -15597,6 +15962,9 @@ declare function disables(): Promise<Array<TypedFlatConfigItem>>;
15597
15962
  //#region src/configs/eslint-plugin.d.ts
15598
15963
  declare function eslintPlugin(options?: OptionsFiles & OptionsOverrides): Promise<Array<TypedFlatConfigItem>>;
15599
15964
  //#endregion
15965
+ //#region src/configs/flawless.d.ts
15966
+ declare function flawless(options?: OptionsTypeScriptParserOptions & OptionsTypeScriptWithTypes): Promise<Array<TypedFlatConfigItem>>;
15967
+ //#endregion
15600
15968
  //#region src/configs/gitignore.d.ts
15601
15969
  interface GitignoreOptions {
15602
15970
  config?: boolean | FlatGitignoreOptions;
@@ -15675,6 +16043,14 @@ declare function sonarjs(options: Required<OptionsIsInEditor>): Promise<Array<Ty
15675
16043
  * @returns An array of flat configuration items.
15676
16044
  */
15677
16045
  declare function sortGithubAction(): Array<TypedFlatConfigItem>;
16046
+ /**
16047
+ * Sort Rojo .project.json files.
16048
+ *
16049
+ * Requires `jsonc` config.
16050
+ *
16051
+ * @returns An array of flat configuration items.
16052
+ */
16053
+ declare function sortRojoProject(): Array<TypedFlatConfigItem>;
15678
16054
  /**
15679
16055
  * Sort tsconfig.json.
15680
16056
  *
@@ -15757,4 +16133,4 @@ declare const GLOB_BUILD_TOOLS: string[];
15757
16133
  declare const GLOB_ALL_SRC: string[];
15758
16134
  declare const GLOB_EXCLUDE: string[];
15759
16135
  //#endregion
15760
- export { Awaitable, type ConfigNames, ExtractRuleOptions, 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_LUA, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_POSTCSS, GLOB_ROOT, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_XML, GLOB_YAML, GitignoreOptions, JsDocOptions, OptionsComponentExtensions, OptionsConfig, OptionsFiles, OptionsFormatters, OptionsHasTypeScript, OptionsIsInEditor, OptionsOverrides, OptionsProjectType, OptionsRoblox, OptionsStylistic, OptionsTestFramework, OptionsTypeScriptErasableOnly, OptionsTypeScriptParserOptions, OptionsTypeScriptWithTypes, OptionsTypescript, PerfectionistConfig, type PrettierOptions, PrettierRuleOptions, ReactConfig, ResolvedOptions, Rules, SpellCheckConfig, StylisticConfig, StylisticConfigDefaults, TypedFlatConfigItem, combine, comments, createTsParser, isentinel as default, defaultPluginRenaming, disables, ensurePackages, eslintPlugin, getOverrides, getTsConfig, gitignore, ignores, imports, interopDefault, isInEditorEnvironment, isInGitHooksOrLintStaged, isentinel, javascript, jsdoc, jsonc, markdown, mergePrettierOptions, node, packageJson, parserPlain, perfectionist, pnpm, prettier, promise, react, renamePluginInConfigs, renameRules, require, resolvePrettierConfigOptions, resolveSubOptions, resolveWithDefaults, roblox, shopify, shouldEnableFeature, sonarjs, sortGithubAction, sortTsconfig, spelling, stylistic, toml, typescript, unicorn, yaml };
16136
+ export { Awaitable, type ConfigNames, ExtractRuleOptions, 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_LUA, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_POSTCSS, GLOB_ROOT, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_XML, GLOB_YAML, GitignoreOptions, JsDocOptions, OptionsComponentExtensions, OptionsConfig, OptionsFiles, OptionsFormatters, OptionsHasTypeScript, OptionsIsInEditor, OptionsOverrides, OptionsProjectType, OptionsRoblox, OptionsStylistic, OptionsTestFramework, OptionsTypeScriptErasableOnly, OptionsTypeScriptParserOptions, OptionsTypeScriptWithTypes, OptionsTypescript, PerfectionistConfig, type PrettierOptions, PrettierRuleOptions, ReactConfig, ResolvedOptions, Rules, SpellCheckConfig, StylisticConfig, StylisticConfigDefaults, TypedFlatConfigItem, combine, comments, createTsParser, isentinel as default, defaultPluginRenaming, disables, ensurePackages, eslintPlugin, flawless, getOverrides, getTsConfig, gitignore, ignores, imports, interopDefault, isInEditorEnvironment, isInGitHooksOrLintStaged, isentinel, javascript, jsdoc, jsonc, markdown, mergePrettierOptions, node, packageJson, parserPlain, perfectionist, pnpm, prettier, promise, react, renamePluginInConfigs, renameRules, require, resolvePrettierConfigOptions, resolveSubOptions, resolveWithDefaults, roblox, shopify, shouldEnableFeature, sonarjs, sortGithubAction, sortRojoProject, sortTsconfig, spelling, stylistic, toml, typescript, unicorn, yaml };