@jsse/eslint-config 0.0.4 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -2388,6 +2388,7 @@ __export(src_exports, {
2388
2388
  prettier: () => prettier,
2389
2389
  react: () => react,
2390
2390
  reactHooks: () => reactHooks,
2391
+ reactRules: () => reactRules,
2391
2392
  renameRules: () => renameRules,
2392
2393
  sortPackageJson: () => sortPackageJson,
2393
2394
  sortTsconfig: () => sortTsconfig,
@@ -2462,7 +2463,15 @@ var GLOB_TESTS = [
2462
2463
  `**/*.bench.${GLOB_SRC_EXT}`,
2463
2464
  `**/*.benchmark.${GLOB_SRC_EXT}`
2464
2465
  ];
2465
- var GLOB_ALL_SRC = [GLOB_SRC, GLOB_STYLE, GLOB_JSON, GLOB_JSON5, GLOB_MARKDOWN, GLOB_YAML, GLOB_HTML];
2466
+ var GLOB_ALL_SRC = [
2467
+ GLOB_SRC,
2468
+ GLOB_STYLE,
2469
+ GLOB_JSON,
2470
+ GLOB_JSON5,
2471
+ GLOB_MARKDOWN,
2472
+ GLOB_YAML,
2473
+ GLOB_HTML
2474
+ ];
2466
2475
  var GLOB_EXCLUDE = [
2467
2476
  "**/node_modules",
2468
2477
  "**/dist",
@@ -2522,7 +2531,10 @@ function imports(options = {}) {
2522
2531
  "import/no-webpack-loader-syntax": "error",
2523
2532
  "import/order": "error",
2524
2533
  ...stylistic2 ? {
2525
- "import/newline-after-import": ["error", { considerComments: true, count: 1 }]
2534
+ "import/newline-after-import": [
2535
+ "error",
2536
+ { considerComments: true, count: 1 }
2537
+ ]
2526
2538
  } : {}
2527
2539
  }
2528
2540
  }
@@ -2565,7 +2577,10 @@ function javascript(options = {}) {
2565
2577
  },
2566
2578
  rules: {
2567
2579
  ...import_js.default.configs.recommended.rules,
2568
- "accessor-pairs": ["error", { enforceForClassMembers: true, setWithoutGet: true }],
2580
+ "accessor-pairs": [
2581
+ "error",
2582
+ { enforceForClassMembers: true, setWithoutGet: true }
2583
+ ],
2569
2584
  "array-callback-return": "error",
2570
2585
  "arrow-parens": ["error", "as-needed", { requireForBlockBody: true }],
2571
2586
  "block-scoped-var": "error",
@@ -2573,7 +2588,10 @@ function javascript(options = {}) {
2573
2588
  "default-case-last": "error",
2574
2589
  "dot-notation": ["error", { allowKeywords: true }],
2575
2590
  eqeqeq: ["error", "smart"],
2576
- "new-cap": ["error", { capIsNew: false, newIsCap: true, properties: true }],
2591
+ "new-cap": [
2592
+ "error",
2593
+ { capIsNew: false, newIsCap: true, properties: true }
2594
+ ],
2577
2595
  "no-alert": "error",
2578
2596
  "no-array-constructor": "error",
2579
2597
  "no-async-promise-executor": "error",
@@ -2696,7 +2714,10 @@ function javascript(options = {}) {
2696
2714
  vars: "all"
2697
2715
  }
2698
2716
  ],
2699
- "no-use-before-define": ["error", { classes: false, functions: false, variables: true }],
2717
+ "no-use-before-define": [
2718
+ "error",
2719
+ { classes: false, functions: false, variables: true }
2720
+ ],
2700
2721
  "no-useless-backreference": "error",
2701
2722
  "no-useless-call": "error",
2702
2723
  "no-useless-catch": "error",
@@ -2758,7 +2779,10 @@ function javascript(options = {}) {
2758
2779
  varsIgnorePattern: "^_"
2759
2780
  }
2760
2781
  ],
2761
- "use-isnan": ["error", { enforceForIndexOf: true, enforceForSwitchCase: true }],
2782
+ "use-isnan": [
2783
+ "error",
2784
+ { enforceForIndexOf: true, enforceForSwitchCase: true }
2785
+ ],
2762
2786
  "valid-typeof": ["error", { requireStringLiterals: true }],
2763
2787
  "vars-on-top": "error",
2764
2788
  yoda: ["error", "never"],
@@ -2860,10 +2884,19 @@ function jsonc(options = {}) {
2860
2884
  "jsonc/comma-dangle": ["error", "never"],
2861
2885
  "jsonc/comma-style": ["error", "last"],
2862
2886
  "jsonc/indent": ["error", indent],
2863
- "jsonc/key-spacing": ["error", { afterColon: true, beforeColon: false }],
2864
- "jsonc/object-curly-newline": ["error", { consistent: true, multiline: true }],
2887
+ "jsonc/key-spacing": [
2888
+ "error",
2889
+ { afterColon: true, beforeColon: false }
2890
+ ],
2891
+ "jsonc/object-curly-newline": [
2892
+ "error",
2893
+ { consistent: true, multiline: true }
2894
+ ],
2865
2895
  "jsonc/object-curly-spacing": ["error", "always"],
2866
- "jsonc/object-property-newline": ["error", { allowMultiplePropertiesPerLine: true }],
2896
+ "jsonc/object-property-newline": [
2897
+ "error",
2898
+ { allowMultiplePropertiesPerLine: true }
2899
+ ],
2867
2900
  "jsonc/quote-props": "error",
2868
2901
  "jsonc/quotes": "error"
2869
2902
  } : {},
@@ -3065,171 +3098,176 @@ function typescriptLanguageOptions(options) {
3065
3098
  }
3066
3099
 
3067
3100
  // src/configs/react.ts
3068
- var reactRules = {
3069
- "react-hooks/exhaustive-deps": "error",
3070
- "react-hooks/rules-of-hooks": "error",
3071
- "react/boolean-prop-naming": [
3072
- "error",
3073
- {
3074
- rule: ["^(is|has)[A-Z]([A-Za-z0-9]?)+", "|^(debug|disabled|hidden|required|selected|highlight)$"].join(""),
3075
- validateNested: true
3076
- }
3077
- ],
3078
- "react/button-has-type": "error",
3079
- "react/function-component-definition": [
3080
- "error",
3081
- {
3082
- namedComponents: "function-declaration",
3083
- unnamedComponents: "arrow-function"
3084
- }
3085
- ],
3086
- "react/hook-use-state": "error",
3087
- "react/iframe-missing-sandbox": "error",
3088
- "react/jsx-boolean-value": "error",
3089
- "react/jsx-child-element-spacing": "error",
3090
- "react/jsx-closing-bracket-location": [
3091
- "error",
3092
- {
3093
- nonEmpty: "tag-aligned",
3094
- selfClosing: false
3095
- }
3096
- ],
3097
- "react/jsx-closing-tag-location": "error",
3098
- "react/jsx-curly-brace-presence": [
3099
- "error",
3100
- {
3101
- children: "never",
3102
- propElementValues: "always",
3103
- props: "never"
3104
- }
3105
- ],
3106
- "react/jsx-curly-newline": [
3107
- "error",
3108
- {
3109
- multiline: "consistent",
3110
- singleline: "forbid"
3111
- }
3112
- ],
3113
- "react/jsx-curly-spacing": ["error", "never"],
3114
- "react/jsx-equals-spacing": ["error", "never"],
3115
- "react/jsx-first-prop-new-line": "error",
3116
- "react/jsx-fragments": ["error", "syntax"],
3117
- "react/jsx-indent": ["error", 2],
3118
- "react/jsx-indent-props": ["error", 2],
3119
- "react/jsx-key": "warn",
3120
- "react/jsx-max-props-per-line": [
3121
- "error",
3122
- {
3123
- maximum: 3,
3124
- when: "multiline"
3125
- }
3126
- ],
3127
- "react/jsx-no-bind": [
3128
- "error",
3129
- {
3130
- allowArrowFunctions: true
3131
- }
3132
- ],
3133
- "react/jsx-no-comment-textnodes": "error",
3134
- "react/jsx-no-constructed-context-values": "error",
3135
- "react/jsx-no-duplicate-props": [
3136
- "error",
3137
- {
3138
- ignoreCase: true
3139
- }
3140
- ],
3141
- "react/jsx-no-script-url": "error",
3142
- "react/jsx-no-target-blank": [
3143
- "error",
3144
- {
3145
- forms: true,
3146
- warnOnSpreadAttributes: true
3147
- }
3148
- ],
3149
- "react/jsx-no-undef": "error",
3150
- "react/jsx-no-useless-fragment": "error",
3151
- "react/jsx-pascal-case": "error",
3152
- "react/jsx-props-no-multi-spaces": "error",
3153
- "react/jsx-sort-props": [
3154
- "error",
3155
- {
3156
- callbacksLast: true,
3157
- noSortAlphabetically: true,
3158
- reservedFirst: true,
3159
- shorthandFirst: true
3160
- }
3161
- ],
3162
- "react/jsx-tag-spacing": [
3163
- "error",
3164
- {
3165
- afterOpening: "never",
3166
- beforeClosing: "never",
3167
- beforeSelfClosing: "never",
3168
- closingSlash: "never"
3169
- }
3170
- ],
3171
- "react/jsx-uses-react": "error",
3172
- "react/jsx-uses-vars": "error",
3173
- "react/jsx-wrap-multilines": [
3174
- "error",
3175
- {
3176
- arrow: "parens-new-line",
3177
- assignment: "parens-new-line",
3178
- condition: "ignore",
3179
- declaration: "parens-new-line",
3180
- logical: "ignore",
3181
- prop: "ignore",
3182
- return: "parens-new-line"
3183
- }
3184
- ],
3185
- "react/no-access-state-in-setstate": "error",
3186
- "react/no-array-index-key": "error",
3187
- "react/no-arrow-function-lifecycle": "error",
3188
- "react/no-children-prop": "error",
3189
- "react/no-danger": "error",
3190
- "react/no-danger-with-children": "error",
3191
- "react/no-deprecated": "error",
3192
- "react/no-did-update-set-state": "error",
3193
- "react/no-direct-mutation-state": "error",
3194
- "react/no-find-dom-node": "error",
3195
- "react/no-invalid-html-attribute": "error",
3196
- "react/no-is-mounted": "error",
3197
- "react/no-namespace": "error",
3198
- "react/no-redundant-should-component-update": "error",
3199
- "react/no-render-return-value": "error",
3200
- "react/no-string-refs": [
3201
- "error",
3202
- {
3203
- noTemplateLiterals: true
3204
- }
3205
- ],
3206
- "react/no-this-in-sfc": "error",
3207
- "react/no-typos": "error",
3208
- "react/no-unescaped-entities": "error",
3209
- "react/no-unsafe": "error",
3210
- // "react/no-unused-prop-types": "error",
3211
- "react/no-unused-state": "error",
3212
- "react/prefer-read-only-props": "error",
3213
- // "react/prop-types": "error",
3214
- "react/react-in-jsx-scope": "off",
3215
- "react/require-default-props": [
3216
- "error",
3217
- {
3218
- forbidDefaultForRequired: true,
3219
- ignoreFunctionalComponents: true
3220
- }
3221
- ],
3222
- "react/self-closing-comp": "error",
3223
- "react/state-in-constructor": ["error", "never"],
3224
- "react/static-property-placement": "error",
3225
- "react/style-prop-object": [
3226
- "error",
3227
- {
3228
- allow: ["FormattedNumber"]
3229
- }
3230
- ],
3231
- "react/void-dom-elements-no-children": "error"
3232
- };
3101
+ function reactRules() {
3102
+ return {
3103
+ "react-hooks/exhaustive-deps": "error",
3104
+ "react-hooks/rules-of-hooks": "error",
3105
+ "react/boolean-prop-naming": [
3106
+ "error",
3107
+ {
3108
+ rule: [
3109
+ "^(is|has)[A-Z]([A-Za-z0-9]?)+",
3110
+ "|^(debug|disabled|hidden|required|selected|highlight)$"
3111
+ ].join(""),
3112
+ validateNested: true
3113
+ }
3114
+ ],
3115
+ "react/button-has-type": "error",
3116
+ "react/function-component-definition": [
3117
+ "error",
3118
+ {
3119
+ namedComponents: "function-declaration",
3120
+ unnamedComponents: "arrow-function"
3121
+ }
3122
+ ],
3123
+ "react/hook-use-state": "error",
3124
+ "react/iframe-missing-sandbox": "error",
3125
+ "react/jsx-boolean-value": "error",
3126
+ "react/jsx-child-element-spacing": "error",
3127
+ "react/jsx-closing-bracket-location": [
3128
+ "error",
3129
+ {
3130
+ nonEmpty: "tag-aligned",
3131
+ selfClosing: false
3132
+ }
3133
+ ],
3134
+ "react/jsx-closing-tag-location": "error",
3135
+ "react/jsx-curly-brace-presence": [
3136
+ "error",
3137
+ {
3138
+ children: "never",
3139
+ propElementValues: "always",
3140
+ props: "never"
3141
+ }
3142
+ ],
3143
+ "react/jsx-curly-newline": [
3144
+ "error",
3145
+ {
3146
+ multiline: "consistent",
3147
+ singleline: "forbid"
3148
+ }
3149
+ ],
3150
+ "react/jsx-curly-spacing": ["error", "never"],
3151
+ "react/jsx-equals-spacing": ["error", "never"],
3152
+ "react/jsx-first-prop-new-line": "error",
3153
+ "react/jsx-fragments": ["error", "syntax"],
3154
+ "react/jsx-indent": ["error", 2],
3155
+ "react/jsx-indent-props": ["error", 2],
3156
+ "react/jsx-key": "warn",
3157
+ "react/jsx-max-props-per-line": [
3158
+ "error",
3159
+ {
3160
+ maximum: 3,
3161
+ when: "multiline"
3162
+ }
3163
+ ],
3164
+ "react/jsx-no-bind": [
3165
+ "error",
3166
+ {
3167
+ allowArrowFunctions: true
3168
+ }
3169
+ ],
3170
+ "react/jsx-no-comment-textnodes": "error",
3171
+ "react/jsx-no-constructed-context-values": "error",
3172
+ "react/jsx-no-duplicate-props": [
3173
+ "error",
3174
+ {
3175
+ ignoreCase: true
3176
+ }
3177
+ ],
3178
+ "react/jsx-no-script-url": "error",
3179
+ "react/jsx-no-target-blank": [
3180
+ "error",
3181
+ {
3182
+ forms: true,
3183
+ warnOnSpreadAttributes: true
3184
+ }
3185
+ ],
3186
+ "react/jsx-no-undef": "error",
3187
+ "react/jsx-no-useless-fragment": "error",
3188
+ "react/jsx-pascal-case": "error",
3189
+ "react/jsx-props-no-multi-spaces": "error",
3190
+ "react/jsx-sort-props": [
3191
+ "error",
3192
+ {
3193
+ callbacksLast: true,
3194
+ noSortAlphabetically: true,
3195
+ reservedFirst: true,
3196
+ shorthandFirst: true
3197
+ }
3198
+ ],
3199
+ "react/jsx-tag-spacing": [
3200
+ "error",
3201
+ {
3202
+ afterOpening: "never",
3203
+ beforeClosing: "never",
3204
+ beforeSelfClosing: "never",
3205
+ closingSlash: "never"
3206
+ }
3207
+ ],
3208
+ "react/jsx-uses-react": "error",
3209
+ "react/jsx-uses-vars": "error",
3210
+ "react/jsx-wrap-multilines": [
3211
+ "error",
3212
+ {
3213
+ arrow: "parens-new-line",
3214
+ assignment: "parens-new-line",
3215
+ condition: "ignore",
3216
+ declaration: "parens-new-line",
3217
+ logical: "ignore",
3218
+ prop: "ignore",
3219
+ return: "parens-new-line"
3220
+ }
3221
+ ],
3222
+ "react/no-access-state-in-setstate": "error",
3223
+ "react/no-array-index-key": "error",
3224
+ "react/no-arrow-function-lifecycle": "error",
3225
+ "react/no-children-prop": "error",
3226
+ "react/no-danger": "error",
3227
+ "react/no-danger-with-children": "error",
3228
+ "react/no-deprecated": "error",
3229
+ "react/no-did-update-set-state": "error",
3230
+ "react/no-direct-mutation-state": "error",
3231
+ "react/no-find-dom-node": "error",
3232
+ "react/no-invalid-html-attribute": "error",
3233
+ "react/no-is-mounted": "error",
3234
+ "react/no-namespace": "error",
3235
+ "react/no-redundant-should-component-update": "error",
3236
+ "react/no-render-return-value": "error",
3237
+ "react/no-string-refs": [
3238
+ "error",
3239
+ {
3240
+ noTemplateLiterals: true
3241
+ }
3242
+ ],
3243
+ "react/no-this-in-sfc": "error",
3244
+ "react/no-typos": "error",
3245
+ "react/no-unescaped-entities": "error",
3246
+ "react/no-unsafe": "error",
3247
+ // "react/no-unused-prop-types": "error",
3248
+ "react/no-unused-state": "error",
3249
+ "react/prefer-read-only-props": "error",
3250
+ // "react/prop-types": "error",
3251
+ "react/react-in-jsx-scope": "off",
3252
+ "react/require-default-props": [
3253
+ "error",
3254
+ {
3255
+ forbidDefaultForRequired: true,
3256
+ ignoreFunctionalComponents: true
3257
+ }
3258
+ ],
3259
+ "react/self-closing-comp": "error",
3260
+ "react/state-in-constructor": ["error", "never"],
3261
+ "react/static-property-placement": "error",
3262
+ "react/style-prop-object": [
3263
+ "error",
3264
+ {
3265
+ allow: ["FormattedNumber"]
3266
+ }
3267
+ ],
3268
+ "react/void-dom-elements-no-children": "error"
3269
+ };
3270
+ }
3233
3271
  function reactHooks() {
3234
3272
  return [
3235
3273
  {
@@ -3291,7 +3329,12 @@ function reactRecomendedRules() {
3291
3329
  };
3292
3330
  }
3293
3331
  function react(options) {
3294
- const { parserOptions = {}, tsconfigPath, react: react2, reactRefresh } = options ?? {};
3332
+ const {
3333
+ parserOptions = {},
3334
+ tsconfigPath,
3335
+ react: react2,
3336
+ reactRefresh
3337
+ } = options ?? {};
3295
3338
  const config = [
3296
3339
  {
3297
3340
  files: [GLOB_SRC],
@@ -3310,16 +3353,12 @@ function react(options) {
3310
3353
  },
3311
3354
  {
3312
3355
  files: [GLOB_SRC],
3313
- plugins: {
3314
- // react: pluginReact,
3315
- // },
3316
- },
3317
3356
  // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
3318
3357
  rules: {
3319
3358
  ...reactRecomendedRules(),
3320
3359
  // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
3321
3360
  ...import_eslint_plugin_react.default.configs["jsx-runtime"].rules,
3322
- ...reactRules
3361
+ ...reactRules()
3323
3362
  },
3324
3363
  settings: {
3325
3364
  react: {
@@ -3428,7 +3467,14 @@ function sortTsconfig() {
3428
3467
  "jsonc/sort-keys": [
3429
3468
  "error",
3430
3469
  {
3431
- order: ["extends", "compilerOptions", "references", "files", "include", "exclude"],
3470
+ order: [
3471
+ "extends",
3472
+ "compilerOptions",
3473
+ "references",
3474
+ "files",
3475
+ "include",
3476
+ "exclude"
3477
+ ],
3432
3478
  pathPattern: "^$"
3433
3479
  },
3434
3480
  {
@@ -3541,7 +3587,9 @@ function sortTsconfig() {
3541
3587
  // src/utils.ts
3542
3588
  var import_node_process2 = __toESM(require("process"), 1);
3543
3589
  function combine(...configs) {
3544
- return configs.flatMap((config) => Array.isArray(config) ? config : [config]);
3590
+ return configs.flatMap(
3591
+ (config) => Array.isArray(config) ? config : [config]
3592
+ );
3545
3593
  }
3546
3594
  function renameRules(rules, from, to) {
3547
3595
  if (from === to) {
@@ -3586,7 +3634,10 @@ function test(options = {}) {
3586
3634
  files: GLOB_TESTS,
3587
3635
  name: "jsse:test:rules",
3588
3636
  rules: {
3589
- "test/consistent-test-it": ["error", { fn: "it", withinDescribe: "it" }],
3637
+ "test/consistent-test-it": [
3638
+ "error",
3639
+ { fn: "it", withinDescribe: "it" }
3640
+ ],
3590
3641
  "test/no-identical-title": "error",
3591
3642
  "test/no-only-tests": isInEditor2 ? "off" : isCI() ? "error" : "warn",
3592
3643
  "test/prefer-hooks-in-order": "error",
@@ -3844,7 +3895,7 @@ function typescriptRulesTypeOblivious() {
3844
3895
  "@typescript-eslint/no-use-before-define": [
3845
3896
  "error",
3846
3897
  {
3847
- functions: false,
3898
+ functions: true,
3848
3899
  classes: true,
3849
3900
  variables: true,
3850
3901
  enums: true,
@@ -3987,7 +4038,16 @@ function typescriptRulesTypeOblivious() {
3987
4038
  "@typescript-eslint/no-restricted-imports": [
3988
4039
  "error",
3989
4040
  {
3990
- paths: ["error", "domain", "freelist", "smalloc", "punycode", "sys", "querystring", "colors"]
4041
+ paths: [
4042
+ "error",
4043
+ "domain",
4044
+ "freelist",
4045
+ "smalloc",
4046
+ "punycode",
4047
+ "sys",
4048
+ "querystring",
4049
+ "colors"
4050
+ ]
3991
4051
  }
3992
4052
  ],
3993
4053
  "padding-line-between-statements": "off",
@@ -4006,11 +4066,16 @@ function typescriptRulesTypeOblivious() {
4006
4066
  "no-duplicate-imports": "off"
4007
4067
  };
4008
4068
  }
4009
- function typescriptRules({ typeAware }) {
4010
- return {
4011
- ...typescriptRulesTypeOblivious(),
4012
- ...typeAware ? typescriptRulesTypeAware() : {}
4013
- };
4069
+ function typescriptRules({
4070
+ typeAware
4071
+ }) {
4072
+ if (typeAware) {
4073
+ return {
4074
+ ...typescriptRulesTypeOblivious(),
4075
+ ...typescriptRulesTypeAware()
4076
+ };
4077
+ }
4078
+ return typescriptRulesTypeOblivious();
4014
4079
  }
4015
4080
 
4016
4081
  // src/configs/ts/typescript.ts
@@ -4032,7 +4097,9 @@ function typescript(options) {
4032
4097
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
4033
4098
  ...import_eslint_plugin2.default.configs.strict.rules,
4034
4099
  "no-invalid-this": "off",
4035
- ...typescriptRules(typeAware !== false && tsconfigPath ? { typeAware: true } : { typeAware: false }),
4100
+ ...typescriptRules(
4101
+ typeAware !== false && tsconfigPath ? { typeAware: true } : { typeAware: false }
4102
+ ),
4036
4103
  ...overrides
4037
4104
  };
4038
4105
  return [
@@ -11017,6 +11084,22 @@ function tailwind() {
11017
11084
  }
11018
11085
 
11019
11086
  // src/configs/stylistic.ts
11087
+ function jsxStylistic({
11088
+ indent
11089
+ }) {
11090
+ return {
11091
+ "@stylistic/jsx-curly-brace-presence": [
11092
+ "error",
11093
+ { propElementValues: "always" }
11094
+ ],
11095
+ "@stylistic/jsx-indent": [
11096
+ "error",
11097
+ indent,
11098
+ { checkAttributes: true, indentLogicalExpressions: true }
11099
+ ],
11100
+ "@stylistic/jsx-quotes": "error"
11101
+ };
11102
+ }
11020
11103
  function stylistic(options = {}) {
11021
11104
  const { indent = 2, quotes = "double", jsx = true } = options;
11022
11105
  return [
@@ -11028,8 +11111,12 @@ function stylistic(options = {}) {
11028
11111
  },
11029
11112
  rules: {
11030
11113
  "@stylistic/quote-props": ["error", "as-needed"],
11031
- "@stylistic/quotes": ["error", quotes, { allowTemplateLiterals: false, avoidEscape: true }],
11032
- ...jsx && false ? jsxStylistic({ indent }) : {}
11114
+ "@stylistic/quotes": [
11115
+ "error",
11116
+ quotes,
11117
+ { allowTemplateLiterals: false, avoidEscape: true }
11118
+ ],
11119
+ ...jsx ? jsxStylistic({ indent }) : {}
11033
11120
  }
11034
11121
  }
11035
11122
  ];
@@ -11075,7 +11162,12 @@ function defaultOptions2() {
11075
11162
  };
11076
11163
  }
11077
11164
  function normalizeOptions(options = {}) {
11078
- const off = [.../* @__PURE__ */ new Set([...options.off ?? [], ...options.fast ? [...slowRules] : []])].sort(
11165
+ const off = [
11166
+ .../* @__PURE__ */ new Set([
11167
+ ...options.off ?? [],
11168
+ ...options.fast ? [...slowRules] : []
11169
+ ])
11170
+ ].sort(
11079
11171
  (a, b) => a.localeCompare(b, void 0, { numeric: true, sensitivity: "base" })
11080
11172
  );
11081
11173
  const stylisticOptions = options.stylistic === false ? false : typeof options.stylistic === "object" ? options.stylistic : {};
@@ -11273,6 +11365,7 @@ function jsseReact() {
11273
11365
  prettier,
11274
11366
  react,
11275
11367
  reactHooks,
11368
+ reactRules,
11276
11369
  renameRules,
11277
11370
  sortPackageJson,
11278
11371
  sortTsconfig,