@isentinel/eslint-config 6.0.0-beta.13 → 6.0.0-beta.15

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
@@ -308,7 +308,7 @@ Any trailing positional arguments are treated as paths to lint (default `.`).
308
308
  | `--eslint` | Run only ESLint. |
309
309
  | `--oxlint` | Run only oxlint. |
310
310
  | `--fix` | Apply fixes: `oxlint --fix` then `eslint --fix` (sequential). |
311
- | `--agents` | Emit agent-friendly output from both linters. |
311
+ | `--agents`, `--no-agents` | Force agent-friendly output from both linters on or off (default: on in an agent session). |
312
312
  | `--type-aware=off\|only\|full` | Force a single ESLint pass: `off` fast-only, `only` type-aware-only, `full` the whole config in one pass. Cannot mix with `--fix`. |
313
313
  | `--no-oxlint-type-aware` | Skip oxlint's type-aware rules (no `oxlint-tsgolint` needed). |
314
314
  | `--no-cache` | Disable ESLint's on-disk cache. |
@@ -360,6 +360,14 @@ contents rather than timestamps, which are unreliable across fresh checkouts.
360
360
  `@isentinel/eslint-config/formatter-agents`, which the runner resolves and
361
361
  passes to `eslint --format` for you.
362
362
 
363
+ It is on by default whenever an AI coding agent session is detected, so agents
364
+ get agent-shaped output without passing the flag. Detection follows
365
+ [`std-env`](https://github.com/unjs/std-env)'s agent table (Claude Code, Codex,
366
+ Cursor, Gemini CLI, opencode, replit, auggie, goose, junie, devin, kiro, pi),
367
+ plus the `AI_AGENT` variable as an explicit override. Git hook and lint-staged
368
+ runs are excluded — those are human-initiated. Pass `--no-agents` to force human
369
+ output, or set `AI_AGENT` to force detection on.
370
+
363
371
  ### Known limitations
364
372
 
365
373
  The incremental machinery favours speed, and a few edges are deliberately left
@@ -722,6 +730,37 @@ otherwise, you can install them manually:
722
730
  pnpm i -D eslint-plugin-react-x eslint-plugin-react-jsx eslint-plugin-react-naming-convention eslint-plugin-jest
723
731
  ```
724
732
 
733
+ #### Naming Conventions
734
+
735
+ Enable the opinionated `flawless/naming-convention` rules with `naming: true`,
736
+ or pass an object to add new selector entries or override the built-in defaults:
737
+
738
+ ```ts
739
+ // eslint.config.ts
740
+ import isentinel from "@isentinel/eslint-config";
741
+
742
+ export default isentinel({
743
+ naming: {
744
+ selectors: [
745
+ // Override the default variable format
746
+ { format: ["snake_case"], selector: "variable" },
747
+ // Add a new selector not covered by the defaults
748
+ { format: ["PascalCase"], prefix: ["I"], selector: "interface" },
749
+ ],
750
+ // Applied only to .tsx files, before `selectors`
751
+ selectorsTsx: [{ format: ["StrictPascalCase"], selector: "function" }],
752
+ },
753
+ });
754
+ ```
755
+
756
+ Entries in `selectors` apply to both the TS and TSX configs; `selectorsTsx`
757
+ applies to the TSX config only. User entries are prepended before the defaults,
758
+ and the rule applies the first matching entry after sorting by specificity — so
759
+ an entry with the same specificity as a default overrides it, while new
760
+ selectors are simply added. A less specific entry cannot override a more
761
+ specific default. The `overridesTypeAware` escape hatch still replaces the whole
762
+ rule if you need full control.
763
+
725
764
  #### Oxlint
726
765
 
727
766
  The config can run alongside (or be replaced by)
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.13";
12
+ var version = "6.0.0-beta.15";
13
13
  var package_default = {
14
14
  name: "@isentinel/eslint-config",
15
15
  version,
package/dist/index.d.mts CHANGED
@@ -472,9 +472,6 @@ interface JsoncRuleDefaults {
472
472
  "sonar/no-all-duplicated-branches": {
473
473
  "*": "error";
474
474
  };
475
- "sonar/no-async-constructor": {
476
- "*": "error";
477
- };
478
475
  "sonar/no-collapsible-if": {
479
476
  "*": "error";
480
477
  };
@@ -2178,6 +2175,9 @@ interface MainRuleDefaults {
2178
2175
  game_roblox: "error";
2179
2176
  package_roblox: "error";
2180
2177
  };
2178
+ "small-rules/no-async-constructor": {
2179
+ "*": "error";
2180
+ };
2181
2181
  "small-rules/no-commented-code": {
2182
2182
  "*": "error";
2183
2183
  };
@@ -2228,9 +2228,6 @@ interface MainRuleDefaults {
2228
2228
  "sonar/no-all-duplicated-branches": {
2229
2229
  "*": "error";
2230
2230
  };
2231
- "sonar/no-async-constructor": {
2232
- "*": "error";
2233
- };
2234
2231
  "sonar/no-collapsible-if": {
2235
2232
  "*": "error";
2236
2233
  };
@@ -4417,7 +4414,107 @@ interface ReactRuleDefaults {
4417
4414
  }];
4418
4415
  };
4419
4416
  "flawless/naming-convention": {
4420
- "*": ["error", {
4417
+ game_roblox: {
4418
+ "severityOnly": "error";
4419
+ };
4420
+ game_std: ["error", {
4421
+ "format": ["strictCamelCase"];
4422
+ "selector": "default";
4423
+ }, {
4424
+ "format": ["PascalCase", "strictCamelCase"];
4425
+ "selector": ["objectLiteralMethod", "objectLiteralProperty"];
4426
+ }, {
4427
+ "format": ["strictCamelCase", "StrictPascalCase"];
4428
+ "selector": "typeProperty";
4429
+ }, {
4430
+ "format": null;
4431
+ "selector": "import";
4432
+ }, {
4433
+ "format": ["strictCamelCase"];
4434
+ "leadingUnderscore": "allow";
4435
+ "selector": "variable";
4436
+ }, {
4437
+ "custom": {
4438
+ "match": true;
4439
+ "regex": "React";
4440
+ };
4441
+ "format": ["StrictPascalCase"];
4442
+ "leadingUnderscore": "allow";
4443
+ "selector": "variable";
4444
+ }, {
4445
+ "format": null;
4446
+ "modifiers": ["destructured"];
4447
+ "selector": "parameter";
4448
+ }, {
4449
+ "format": ["strictCamelCase"];
4450
+ "leadingUnderscore": "allow";
4451
+ "selector": "parameter";
4452
+ }, {
4453
+ "format": ["StrictPascalCase"];
4454
+ "selector": "enumMember";
4455
+ }, {
4456
+ "format": ["UPPER_CASE"];
4457
+ "leadingUnderscore": "forbid";
4458
+ "modifiers": ["global"];
4459
+ "selector": "variable";
4460
+ "trailingUnderscore": "forbid";
4461
+ "types": ["boolean", "number", "string"];
4462
+ }, {
4463
+ "filter": {
4464
+ "match": false;
4465
+ "regex": "^success$";
4466
+ };
4467
+ "format": ["PascalCase"];
4468
+ "prefix": ["is", "should", "has", "can", "did", "will"];
4469
+ "selector": "variable";
4470
+ "types": ["boolean"];
4471
+ }, {
4472
+ "filter": {
4473
+ "match": false;
4474
+ "regex": "^success$";
4475
+ };
4476
+ "format": ["UPPER_CASE"];
4477
+ "modifiers": ["global"];
4478
+ "prefix": ["IS_", "SHOULD_", "HAS_", "CAN_", "DID_", "WILL_"];
4479
+ "selector": "variable";
4480
+ "types": ["boolean"];
4481
+ }, {
4482
+ "format": ["strictCamelCase", "StrictPascalCase"];
4483
+ "selector": "function";
4484
+ }, {
4485
+ "format": ["strictCamelCase"];
4486
+ "leadingUnderscore": "forbid";
4487
+ "selector": "classProperty";
4488
+ }, {
4489
+ "format": ["UPPER_CASE"];
4490
+ "modifiers": ["static", "readonly"];
4491
+ "selector": "classProperty";
4492
+ }, {
4493
+ "format": null;
4494
+ "selector": "objectLiteralProperty";
4495
+ }, {
4496
+ "format": ["StrictPascalCase"];
4497
+ "selector": "typeLike";
4498
+ }, {
4499
+ "format": ["StrictPascalCase"];
4500
+ "selector": "objectStyleEnum";
4501
+ }, {
4502
+ "format": ["strictCamelCase", "UPPER_CASE", "StrictPascalCase"];
4503
+ "modifiers": ["global"];
4504
+ "selector": "variable";
4505
+ }, {
4506
+ "format": null;
4507
+ "modifiers": ["destructured", "global"];
4508
+ "selector": "variable";
4509
+ }, {
4510
+ "format": null;
4511
+ "modifiers": ["destructured"];
4512
+ "selector": "variable";
4513
+ }];
4514
+ package_roblox: {
4515
+ "severityOnly": "error";
4516
+ };
4517
+ package_std: ["error", {
4421
4518
  "format": ["strictCamelCase"];
4422
4519
  "selector": "default";
4423
4520
  }, {
@@ -5603,9 +5700,6 @@ interface TomlRuleDefaults {
5603
5700
  "sonar/no-all-duplicated-branches": {
5604
5701
  "*": "error";
5605
5702
  };
5606
- "sonar/no-async-constructor": {
5607
- "*": "error";
5608
- };
5609
5703
  "sonar/no-collapsible-if": {
5610
5704
  "*": "error";
5611
5705
  };
@@ -5921,9 +6015,6 @@ interface YamlRuleDefaults {
5921
6015
  "sonar/no-all-duplicated-branches": {
5922
6016
  "*": "error";
5923
6017
  };
5924
- "sonar/no-async-constructor": {
5925
- "*": "error";
5926
- };
5927
6018
  "sonar/no-collapsible-if": {
5928
6019
  "*": "error";
5929
6020
  };
@@ -6840,82 +6931,82 @@ interface RuleOptions {
6840
6931
  'eslint-plugin/unique-test-case-names'?: Linter.RuleEntry<[]>;
6841
6932
  /**
6842
6933
  * Enforce arrow function return style based on line length
6843
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.0.0/src/rules/arrow-return-style/documentation.md
6934
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.1.0/src/rules/arrow-return-style/documentation.md
6844
6935
  */
6845
6936
  'flawless/arrow-return-style'?: Linter.RuleEntry<FlawlessArrowReturnStyle>;
6846
6937
  /**
6847
6938
  * Disallow shorthand boolean JSX attributes
6848
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.0.0/src/rules/jsx-shorthand-boolean/documentation.md
6939
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.1.0/src/rules/jsx-shorthand-boolean/documentation.md
6849
6940
  */
6850
6941
  'flawless/jsx-shorthand-boolean'?: Linter.RuleEntry<[]>;
6851
6942
  /**
6852
6943
  * Enforce a consistent fragment form: the shorthand `<>...</>` or a named fragment
6853
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.0.0/src/rules/jsx-shorthand-fragment/documentation.md
6944
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.1.0/src/rules/jsx-shorthand-fragment/documentation.md
6854
6945
  */
6855
6946
  'flawless/jsx-shorthand-fragment'?: Linter.RuleEntry<FlawlessJsxShorthandFragment>;
6856
6947
  /**
6857
6948
  * Enforce a maximum number of lines of code in a function
6858
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.0.0/src/rules/max-lines-per-function/documentation.md
6949
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.1.0/src/rules/max-lines-per-function/documentation.md
6859
6950
  */
6860
6951
  'flawless/max-lines-per-function'?: Linter.RuleEntry<FlawlessMaxLinesPerFunction>;
6861
6952
  /**
6862
6953
  * Enforce naming conventions for everything across a codebase
6863
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.0.0/src/rules/naming-convention/documentation.md
6954
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.1.0/src/rules/naming-convention/documentation.md
6864
6955
  */
6865
6956
  'flawless/naming-convention'?: Linter.RuleEntry<FlawlessNamingConvention>;
6866
6957
  /**
6867
6958
  * Disallow anonymous arrow functions as export default declarations
6868
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.0.0/src/rules/no-export-default-arrow/documentation.md
6959
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.1.0/src/rules/no-export-default-arrow/documentation.md
6869
6960
  */
6870
6961
  'flawless/no-export-default-arrow'?: Linter.RuleEntry<[]>;
6871
6962
  /**
6872
6963
  * Disallow tsconfig options that redundantly re-set a value already provided by an extended config
6873
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.0.0/src/rules/no-redundant-tsconfig-options/documentation.md
6964
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.1.0/src/rules/no-redundant-tsconfig-options/documentation.md
6874
6965
  */
6875
6966
  'flawless/no-redundant-tsconfig-options'?: Linter.RuleEntry<[]>;
6876
6967
  /**
6877
6968
  * Disallow unnecessary usage of 'useCallback'
6878
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.0.0/src/rules/no-unnecessary-use-callback/documentation.md
6969
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.1.0/src/rules/no-unnecessary-use-callback/documentation.md
6879
6970
  */
6880
6971
  'flawless/no-unnecessary-use-callback'?: Linter.RuleEntry<[]>;
6881
6972
  /**
6882
6973
  * Disallow unnecessary usage of 'useMemo'
6883
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.0.0/src/rules/no-unnecessary-use-memo/documentation.md
6974
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.1.0/src/rules/no-unnecessary-use-memo/documentation.md
6884
6975
  */
6885
6976
  'flawless/no-unnecessary-use-memo'?: Linter.RuleEntry<[]>;
6886
6977
  /**
6887
6978
  * Enforce a blank line after `expect.assertions` and `expect.hasAssertions`
6888
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.0.0/src/rules/padding-after-expect-assertions/documentation.md
6979
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.1.0/src/rules/padding-after-expect-assertions/documentation.md
6889
6980
  */
6890
6981
  'flawless/padding-after-expect-assertions'?: Linter.RuleEntry<[]>;
6891
6982
  /**
6892
6983
  * Enforce destructuring assignment for component props
6893
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.0.0/src/rules/prefer-destructuring-assignment/documentation.md
6984
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.1.0/src/rules/prefer-destructuring-assignment/documentation.md
6894
6985
  */
6895
6986
  'flawless/prefer-destructuring-assignment'?: Linter.RuleEntry<[]>;
6896
6987
  /**
6897
6988
  * Enforce destructuring parameters in the function signature
6898
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.0.0/src/rules/prefer-parameter-destructuring/documentation.md
6989
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.1.0/src/rules/prefer-parameter-destructuring/documentation.md
6899
6990
  */
6900
6991
  'flawless/prefer-parameter-destructuring'?: Linter.RuleEntry<FlawlessPreferParameterDestructuring>;
6901
6992
  /**
6902
6993
  * Enforce that function component props are read-only
6903
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.0.0/src/rules/prefer-read-only-props/documentation.md
6994
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.1.0/src/rules/prefer-read-only-props/documentation.md
6904
6995
  */
6905
6996
  'flawless/prefer-read-only-props'?: Linter.RuleEntry<FlawlessPreferReadOnlyProps>;
6906
6997
  /**
6907
6998
  * Disallow impure calls such as `math.random` or `os.clock` during render
6908
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.0.0/src/rules/purity/documentation.md
6999
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.1.0/src/rules/purity/documentation.md
6909
7000
  */
6910
7001
  'flawless/purity'?: Linter.RuleEntry<FlawlessPurity>;
6911
7002
  /**
6912
7003
  * Enforce a configured sort order for TOML keys and tables
6913
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.0.0/src/rules/toml-sort-keys/documentation.md
7004
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.1.0/src/rules/toml-sort-keys/documentation.md
6914
7005
  */
6915
7006
  'flawless/toml-sort-keys'?: Linter.RuleEntry<FlawlessTomlSortKeys>;
6916
7007
  /**
6917
7008
  * Enforce blank lines around top-level YAML block collection keys
6918
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.0.0/src/rules/yaml-block-key-blank-lines/documentation.md
7009
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.1.0/src/rules/yaml-block-key-blank-lines/documentation.md
6919
7010
  */
6920
7011
  'flawless/yaml-block-key-blank-lines'?: Linter.RuleEntry<[]>;
6921
7012
  /**
@@ -16478,7 +16569,30 @@ type _FlawlessNamingConventionFormatOptionsConfig = (_FlawlessNamingConventionPr
16478
16569
  type _FlawlessNamingConventionPredefinedFormats = ("camelCase" | "strictCamelCase" | "PascalCase" | "StrictPascalCase" | "snake_case" | "UPPER_CASE");
16479
16570
  type _FlawlessNamingConventionUnderscoreOptions = ("forbid" | "allow" | "require" | "requireDouble" | "allowDouble" | "allowSingleOrDouble");
16480
16571
  type _FlawlessNamingConvention_PrefixSuffixConfig = string[];
16481
- type _FlawlessNamingConventionTypeModifiers = ("boolean" | "string" | "number" | "function" | "array");
16572
+ type _FlawlessNamingConventionTypeMatcher = (("boolean" | "string" | "number" | "function" | "array") | _FlawlessNamingConvention_TypeReferenceMatcher);
16573
+ type _FlawlessNamingConvention_TypeReferenceMatcher = (_FlawlessNamingConventionTypeReferenceMatcher & {
16574
+ name?: string;
16575
+ from?: string;
16576
+ returns?: _FlawlessNamingConvention_TypeReferenceMatcher;
16577
+ });
16578
+ type _FlawlessNamingConventionTypeReferenceMatcher = ({
16579
+ [k: string]: unknown | undefined;
16580
+ } | {
16581
+ [k: string]: unknown | undefined;
16582
+ });
16583
+ type _FlawlessNamingConvention_TypeReferenceMatcher = (({
16584
+ [k: string]: unknown | undefined;
16585
+ } | {
16586
+ [k: string]: unknown | undefined;
16587
+ }) & {
16588
+ name?: string;
16589
+ from?: string;
16590
+ returns?: ({
16591
+ [k: string]: unknown | undefined;
16592
+ } | {
16593
+ [k: string]: unknown | undefined;
16594
+ });
16595
+ });
16482
16596
  type FlawlessNamingConvention = ({
16483
16597
  custom?: _FlawlessNamingConvention_MatchRegexConfig;
16484
16598
  failureMessage?: string;
@@ -16490,7 +16604,7 @@ type FlawlessNamingConvention = ({
16490
16604
  filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
16491
16605
  modifiers?: ("const" | "readonly" | "static" | "public" | "protected" | "private" | "#private" | "abstract" | "destructured" | "global" | "exported" | "unused" | "requiresQuotes" | "override" | "async" | "default" | "namespace")[];
16492
16606
  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")[];
16493
- types?: _FlawlessNamingConventionTypeModifiers[];
16607
+ types?: _FlawlessNamingConventionTypeMatcher[];
16494
16608
  } | {
16495
16609
  custom?: _FlawlessNamingConvention_MatchRegexConfig;
16496
16610
  failureMessage?: string;
@@ -16524,7 +16638,7 @@ type FlawlessNamingConvention = ({
16524
16638
  filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
16525
16639
  selector: "variable";
16526
16640
  modifiers?: ("const" | "destructured" | "exported" | "global" | "unused" | "async")[];
16527
- types?: _FlawlessNamingConventionTypeModifiers[];
16641
+ types?: _FlawlessNamingConventionTypeMatcher[];
16528
16642
  } | {
16529
16643
  custom?: _FlawlessNamingConvention_MatchRegexConfig;
16530
16644
  failureMessage?: string;
@@ -16536,6 +16650,7 @@ type FlawlessNamingConvention = ({
16536
16650
  filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
16537
16651
  selector: "function";
16538
16652
  modifiers?: ("exported" | "global" | "unused" | "async")[];
16653
+ types?: _FlawlessNamingConventionTypeMatcher[];
16539
16654
  } | {
16540
16655
  custom?: _FlawlessNamingConvention_MatchRegexConfig;
16541
16656
  failureMessage?: string;
@@ -16547,7 +16662,7 @@ type FlawlessNamingConvention = ({
16547
16662
  filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
16548
16663
  selector: "parameter";
16549
16664
  modifiers?: ("destructured" | "unused")[];
16550
- types?: _FlawlessNamingConventionTypeModifiers[];
16665
+ types?: _FlawlessNamingConventionTypeMatcher[];
16551
16666
  } | {
16552
16667
  custom?: _FlawlessNamingConvention_MatchRegexConfig;
16553
16668
  failureMessage?: string;
@@ -16581,7 +16696,7 @@ type FlawlessNamingConvention = ({
16581
16696
  filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
16582
16697
  selector: "classProperty";
16583
16698
  modifiers?: ("abstract" | "private" | "#private" | "protected" | "public" | "readonly" | "requiresQuotes" | "static" | "override")[];
16584
- types?: _FlawlessNamingConventionTypeModifiers[];
16699
+ types?: _FlawlessNamingConventionTypeMatcher[];
16585
16700
  } | {
16586
16701
  custom?: _FlawlessNamingConvention_MatchRegexConfig;
16587
16702
  failureMessage?: string;
@@ -16593,7 +16708,7 @@ type FlawlessNamingConvention = ({
16593
16708
  filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
16594
16709
  selector: "objectLiteralProperty";
16595
16710
  modifiers?: ("public" | "requiresQuotes")[];
16596
- types?: _FlawlessNamingConventionTypeModifiers[];
16711
+ types?: _FlawlessNamingConventionTypeMatcher[];
16597
16712
  } | {
16598
16713
  custom?: _FlawlessNamingConvention_MatchRegexConfig;
16599
16714
  failureMessage?: string;
@@ -16605,7 +16720,7 @@ type FlawlessNamingConvention = ({
16605
16720
  filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
16606
16721
  selector: "typeProperty";
16607
16722
  modifiers?: ("public" | "readonly" | "requiresQuotes")[];
16608
- types?: _FlawlessNamingConventionTypeModifiers[];
16723
+ types?: _FlawlessNamingConventionTypeMatcher[];
16609
16724
  } | {
16610
16725
  custom?: _FlawlessNamingConvention_MatchRegexConfig;
16611
16726
  failureMessage?: string;
@@ -16617,7 +16732,7 @@ type FlawlessNamingConvention = ({
16617
16732
  filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
16618
16733
  selector: "parameterProperty";
16619
16734
  modifiers?: ("private" | "protected" | "public" | "readonly")[];
16620
- types?: _FlawlessNamingConventionTypeModifiers[];
16735
+ types?: _FlawlessNamingConventionTypeMatcher[];
16621
16736
  } | {
16622
16737
  custom?: _FlawlessNamingConvention_MatchRegexConfig;
16623
16738
  failureMessage?: string;
@@ -16629,7 +16744,7 @@ type FlawlessNamingConvention = ({
16629
16744
  filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
16630
16745
  selector: "property";
16631
16746
  modifiers?: ("abstract" | "private" | "#private" | "protected" | "public" | "readonly" | "requiresQuotes" | "static" | "override" | "async")[];
16632
- types?: _FlawlessNamingConventionTypeModifiers[];
16747
+ types?: _FlawlessNamingConventionTypeMatcher[];
16633
16748
  } | {
16634
16749
  custom?: _FlawlessNamingConvention_MatchRegexConfig;
16635
16750
  failureMessage?: string;
@@ -16641,6 +16756,7 @@ type FlawlessNamingConvention = ({
16641
16756
  filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
16642
16757
  selector: "classMethod";
16643
16758
  modifiers?: ("abstract" | "private" | "#private" | "protected" | "public" | "requiresQuotes" | "static" | "override" | "async")[];
16759
+ types?: _FlawlessNamingConventionTypeMatcher[];
16644
16760
  } | {
16645
16761
  custom?: _FlawlessNamingConvention_MatchRegexConfig;
16646
16762
  failureMessage?: string;
@@ -16652,6 +16768,7 @@ type FlawlessNamingConvention = ({
16652
16768
  filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
16653
16769
  selector: "objectLiteralMethod";
16654
16770
  modifiers?: ("public" | "requiresQuotes" | "async")[];
16771
+ types?: _FlawlessNamingConventionTypeMatcher[];
16655
16772
  } | {
16656
16773
  custom?: _FlawlessNamingConvention_MatchRegexConfig;
16657
16774
  failureMessage?: string;
@@ -16663,6 +16780,7 @@ type FlawlessNamingConvention = ({
16663
16780
  filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
16664
16781
  selector: "typeMethod";
16665
16782
  modifiers?: ("public" | "requiresQuotes")[];
16783
+ types?: _FlawlessNamingConventionTypeMatcher[];
16666
16784
  } | {
16667
16785
  custom?: _FlawlessNamingConvention_MatchRegexConfig;
16668
16786
  failureMessage?: string;
@@ -16674,6 +16792,7 @@ type FlawlessNamingConvention = ({
16674
16792
  filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
16675
16793
  selector: "method";
16676
16794
  modifiers?: ("abstract" | "private" | "#private" | "protected" | "public" | "requiresQuotes" | "static" | "override" | "async")[];
16795
+ types?: _FlawlessNamingConventionTypeMatcher[];
16677
16796
  } | {
16678
16797
  custom?: _FlawlessNamingConvention_MatchRegexConfig;
16679
16798
  failureMessage?: string;
@@ -16685,7 +16804,7 @@ type FlawlessNamingConvention = ({
16685
16804
  filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
16686
16805
  selector: "classicAccessor";
16687
16806
  modifiers?: ("abstract" | "private" | "protected" | "public" | "requiresQuotes" | "static" | "override")[];
16688
- types?: _FlawlessNamingConventionTypeModifiers[];
16807
+ types?: _FlawlessNamingConventionTypeMatcher[];
16689
16808
  } | {
16690
16809
  custom?: _FlawlessNamingConvention_MatchRegexConfig;
16691
16810
  failureMessage?: string;
@@ -16697,7 +16816,7 @@ type FlawlessNamingConvention = ({
16697
16816
  filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
16698
16817
  selector: "autoAccessor";
16699
16818
  modifiers?: ("abstract" | "private" | "protected" | "public" | "requiresQuotes" | "static" | "override")[];
16700
- types?: _FlawlessNamingConventionTypeModifiers[];
16819
+ types?: _FlawlessNamingConventionTypeMatcher[];
16701
16820
  } | {
16702
16821
  custom?: _FlawlessNamingConvention_MatchRegexConfig;
16703
16822
  failureMessage?: string;
@@ -16709,7 +16828,7 @@ type FlawlessNamingConvention = ({
16709
16828
  filter?: (string | _FlawlessNamingConvention_MatchRegexConfig);
16710
16829
  selector: "accessor";
16711
16830
  modifiers?: ("abstract" | "private" | "protected" | "public" | "requiresQuotes" | "static" | "override")[];
16712
- types?: _FlawlessNamingConventionTypeModifiers[];
16831
+ types?: _FlawlessNamingConventionTypeMatcher[];
16713
16832
  } | {
16714
16833
  custom?: _FlawlessNamingConvention_MatchRegexConfig;
16715
16834
  failureMessage?: string;
@@ -26244,11 +26363,24 @@ type Yoda = [] | [("always" | "never")] | [("always" | "never"), {
26244
26363
  onlyEquality?: boolean;
26245
26364
  }];
26246
26365
  // Names of all the configs
26247
- type ConfigNames = 'isentinel/eslint/comments' | 'isentinel/eslint/comments/src' | 'isentinel/e18e/rules' | 'isentinel/eslint-plugin/setup' | 'isentinel/eslint-plugin/rules' | 'isentinel/flawless/setup' | 'isentinel/flawless/rules' | 'isentinel/flawless/markdown-code' | 'isentinel/flawless/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/jsonc/tsconfig' | 'isentinel/markdown/setup' | 'isentinel/markdown/processor' | 'isentinel/markdown/parser' | 'isentinel/markdown/disables' | 'isentinel/naming/setup' | 'isentinel/naming/ts/rules-type-aware' | 'isentinel/naming/tsx/rules-type-aware' | 'isentinel/node/rules' | 'isentinel/oxfmt/setup' | 'isentinel/oxfmt/javascript' | 'isentinel/oxfmt/typescript' | 'isentinel/oxfmt/css' | 'isentinel/oxfmt/scss' | 'isentinel/oxfmt/less' | 'isentinel/oxfmt/html' | 'isentinel/oxfmt/markdown' | 'isentinel/oxfmt/graphql' | 'isentinel/oxfmt/json' | 'isentinel/oxfmt/yaml' | 'isentinel/package-json/setup' | 'isentinel/package-json' | 'isentinel/package-json/root' | 'isentinel/perfectionist/setup' | 'isentinel/perfectionist' | 'isentinel/perfectionist/jsx' | 'isentinel/pnpm/setup' | 'isentinel/pnpm/package-json' | 'isentinel/pnpm/pnpm-workspace-yaml' | 'isentinel/promise' | 'isentinel/react/setup' | 'isentinel/react/setup/naming' | '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/small-rules/setup' | 'isentinel/small-rules' | 'isentinel/sonarjs' | 'isentinel/spelling/setup' | 'isentinel/spelling' | 'isentinel/stylistic/setup' | 'isentinel/stylistic' | 'isentinel/test/jest/setup' | 'isentinel/test/jest/rules' | 'isentinel/test/vitest/setup' | 'isentinel/test/vitest/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/typescript/erasable-syntax-only' | 'isentinel/unicorn/setup' | 'isentinel/unicorn/rules' | 'isentinel/unicorn/root' | 'isentinel/yaml/setup' | 'isentinel/yaml/rules';
26366
+ type ConfigNames = 'isentinel/eslint/comments' | 'isentinel/eslint/comments/src' | 'isentinel/e18e/rules' | 'isentinel/eslint-plugin/setup' | 'isentinel/eslint-plugin/rules' | 'isentinel/flawless/setup' | 'isentinel/flawless/rules' | 'isentinel/flawless/markdown-code' | 'isentinel/flawless/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/jsonc/tsconfig' | 'isentinel/markdown/setup' | 'isentinel/markdown/processor' | 'isentinel/markdown/parser' | 'isentinel/markdown/disables' | 'isentinel/naming/setup' | 'isentinel/naming/ts/rules-type-aware' | 'isentinel/naming/tsx/rules-type-aware' | 'isentinel/node/rules' | 'isentinel/oxfmt/setup' | 'isentinel/oxfmt/javascript' | 'isentinel/oxfmt/typescript' | 'isentinel/oxfmt/css' | 'isentinel/oxfmt/scss' | 'isentinel/oxfmt/less' | 'isentinel/oxfmt/html' | 'isentinel/oxfmt/markdown' | 'isentinel/oxfmt/graphql' | 'isentinel/oxfmt/json' | 'isentinel/oxfmt/yaml' | 'isentinel/package-json/setup' | 'isentinel/package-json' | 'isentinel/package-json/root' | 'isentinel/perfectionist/setup' | 'isentinel/perfectionist' | 'isentinel/perfectionist/jsx' | 'isentinel/pnpm/setup' | 'isentinel/pnpm/package-json' | 'isentinel/pnpm/pnpm-workspace-yaml' | 'isentinel/promise' | 'isentinel/react/setup' | 'isentinel/react/setup/naming' | '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/small-rules/setup' | 'isentinel/small-rules' | 'isentinel/sonarjs' | 'isentinel/spelling/setup' | 'isentinel/spelling' | 'isentinel/stylistic/setup' | 'isentinel/stylistic' | 'isentinel/test/jest/setup' | 'isentinel/test/jest/rules' | 'isentinel/test/jest/type-tests' | 'isentinel/test/vitest/setup' | 'isentinel/test/vitest/rules' | 'isentinel/test/vitest/type-tests' | '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/typescript/erasable-syntax-only' | 'isentinel/unicorn/setup' | 'isentinel/unicorn/rules' | 'isentinel/unicorn/root' | 'isentinel/yaml/setup' | 'isentinel/yaml/rules';
26248
26367
  //#endregion
26249
26368
  //#region src/utils.d.ts
26250
26369
  type ExtractRuleOptions<T> = T extends Linter.RuleEntry<infer U> ? U : never;
26251
26370
  declare function isInGitHooksOrLintStaged(environment?: NodeJS.ProcessEnv): boolean;
26371
+ /**
26372
+ * Whether the process runs inside an AI coding agent session.
26373
+ *
26374
+ * `AI_AGENT` forces detection on, matching std-env's explicit override. Git
26375
+ * hook and lint-staged runs are excluded even under an agent: those are
26376
+ * human-initiated commits whose output a person reads.
26377
+ *
26378
+ * Not a pure function of `environment` — the kiro check also consults
26379
+ * `process.stdout.isTTY` (see {@link environmentMatcher}).
26380
+ *
26381
+ * @param environment - The environment variables to inspect.
26382
+ * @returns Whether an agent session was detected.
26383
+ */
26252
26384
  declare function isInAgentSession(environment?: NodeJS.ProcessEnv): boolean;
26253
26385
  declare function isInEditorEnvironment(environment?: NodeJS.ProcessEnv): boolean;
26254
26386
  /**
@@ -26498,9 +26630,35 @@ interface OptionsFilesTypeAware extends OptionsFiles {
26498
26630
  * a name for better debugging and tooling support.
26499
26631
  */
26500
26632
  type NamedFlatConfigItem = SetRequired<TypedFlatConfigItem, "name">;
26633
+ type NamingSelector = ExtractRuleOptions<NonNullable<RuleOptions["flawless/naming-convention"]>>[number];
26501
26634
  interface OptionsOverridesTypeAware extends OptionsOverrides {
26502
26635
  overridesTypeAware?: NonNullable<TypedFlatConfigItem["rules"]>;
26503
26636
  }
26637
+ interface NamingConfig extends OptionsOverridesTypeAware {
26638
+ /**
26639
+ * Whether the project targets Roblox. Enables `@rbxts/react`
26640
+ * type-reference matchers in the TSX config so React components and
26641
+ * contexts may use PascalCase without inline disables.
26642
+ *
26643
+ * @default true
26644
+ */
26645
+ roblox?: boolean;
26646
+ /**
26647
+ * Extra `flawless/naming-convention` selector entries, prepended before the
26648
+ * built-in defaults in both the TS and TSX configs.
26649
+ *
26650
+ * The rule applies the first matching entry after specificity sorting, so
26651
+ * an entry with the same specificity as a default overrides it, while new
26652
+ * selectors are simply added. A less specific entry cannot override a more
26653
+ * specific default.
26654
+ */
26655
+ selectors?: Array<NamingSelector>;
26656
+ /**
26657
+ * TSX-only selector entries, prepended before `selectors` in the TSX
26658
+ * config only.
26659
+ */
26660
+ selectorsTsx?: Array<NamingSelector>;
26661
+ }
26504
26662
  interface OptionsTypeScriptParserOptions {
26505
26663
  /**
26506
26664
  * Glob patterns for files that should be type aware.
@@ -26748,7 +26906,7 @@ interface OptionsConfig extends OptionsComponentExtensions, OptionsProjectType {
26748
26906
  *
26749
26907
  * @default false
26750
26908
  */
26751
- naming?: boolean | OptionsOverridesTypeAware;
26909
+ naming?: boolean | NamingConfig;
26752
26910
  /**
26753
26911
  * Run ESLint alongside oxlint (hybrid mode).
26754
26912
  *
@@ -26761,9 +26919,14 @@ interface OptionsConfig extends OptionsComponentExtensions, OptionsProjectType {
26761
26919
  * Requires installing the optional peer dependencies `oxlint` and
26762
26920
  * `oxlint-tsgolint`.
26763
26921
  *
26922
+ * `"native"` narrows the hand-off to the rules oxlint implements in Rust
26923
+ * (native rules plus the tsgolint type-aware ones): rules that would run in
26924
+ * oxlint as jsPlugins — and formatting — stay in ESLint. Pair it with
26925
+ * `jsPlugins: false` in the oxlint factory, or both engines run them.
26926
+ *
26764
26927
  * @default false
26765
26928
  */
26766
- oxlint?: boolean;
26929
+ oxlint?: "native" | boolean;
26767
26930
  /**
26768
26931
  * Warn at config-build time when a user config references a rule that
26769
26932
  * oxlint owns in hybrid mode (`oxlint: true`), where the ESLint entry has
@@ -27094,6 +27257,11 @@ declare const GLOB_MISE: Array<string>;
27094
27257
  declare const GLOB_HTML = "**/*.htm{,l}";
27095
27258
  declare const GLOB_XML = "**/*.xml";
27096
27259
  declare const GLOB_GRAPHQL = "**/*.{g,graph}ql";
27260
+ /**
27261
+ * Type tests (`expectTypeOf` / `assertType`), run by Vitest's `typecheck`
27262
+ * mode. They are test files, but assert nothing at runtime.
27263
+ */
27264
+ declare const GLOB_TYPE_TESTS = "**/*.test-d.{,c,m}[jt]s{,x}";
27097
27265
  declare const GLOB_TESTS: Array<string>;
27098
27266
  declare const GLOB_BUILD_TOOLS: Array<string>;
27099
27267
  declare const GLOB_ALL_SRC: string[];
@@ -27161,7 +27329,7 @@ declare function jsonc({ files, overrides, stylistic }?: OptionsFiles & OptionsO
27161
27329
  declare function markdown({ componentExts: componentExtensions, files, overrides, type }?: OptionsComponentExtensions & OptionsFiles & OptionsOverrides & OptionsProjectType): Promise<Array<TypedFlatConfigItem>>;
27162
27330
  //#endregion
27163
27331
  //#region src/eslint/configs/naming.d.ts
27164
- declare function naming(options?: OptionsOverridesTypeAware & OptionsTypeScriptParserOptions & OptionsTypeScriptWithTypes): Promise<Array<TypedFlatConfigItem>>;
27332
+ declare function naming(options?: NamingConfig & OptionsTypeScriptParserOptions & OptionsTypeScriptWithTypes): Promise<Array<TypedFlatConfigItem>>;
27165
27333
  //#endregion
27166
27334
  //#region src/eslint/configs/node.d.ts
27167
27335
  declare function node({ files, ignores }?: OptionsFiles & {
@@ -27282,4 +27450,4 @@ declare function unicorn({ complementIgnores, nameReplacements, roblox, root: cu
27282
27450
  //#region src/eslint/configs/yaml.d.ts
27283
27451
  declare function yaml({ files, overrides, stylistic }?: OptionsFiles & OptionsOverrides & OptionsStylistic): Promise<Array<TypedFlatConfigItem>>;
27284
27452
  //#endregion
27285
- 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_XML, GLOB_YAML, GitignoreOptions, JsdocOptions, NamedFlatConfigItem, NamedOptionsConfig, 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 };
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 };