@alextheman/eslint-plugin 2.4.1 → 2.6.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/index.cjs CHANGED
@@ -47,367 +47,29 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
47
47
  ));
48
48
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
49
49
 
50
- // node_modules/@eslint/js/package.json
51
- var require_package = __commonJS({
52
- "node_modules/@eslint/js/package.json"(exports2, module2) {
50
+ // node_modules/globals/globals.json
51
+ var require_globals = __commonJS({
52
+ "node_modules/globals/globals.json"(exports2, module2) {
53
53
  module2.exports = {
54
- name: "@eslint/js",
55
- version: "9.31.0",
56
- description: "ESLint JavaScript language implementation",
57
- funding: "https://eslint.org/donate",
58
- main: "./src/index.js",
59
- types: "./types/index.d.ts",
60
- scripts: {
61
- "test:types": "tsc -p tests/types/tsconfig.json"
54
+ amd: {
55
+ define: false,
56
+ require: false
62
57
  },
63
- files: [
64
- "LICENSE",
65
- "README.md",
66
- "src",
67
- "types"
68
- ],
69
- publishConfig: {
70
- access: "public"
58
+ applescript: {
59
+ $: false,
60
+ Application: false,
61
+ Automation: false,
62
+ console: false,
63
+ delay: false,
64
+ Library: false,
65
+ ObjC: false,
66
+ ObjectSpecifier: false,
67
+ Path: false,
68
+ Progress: false,
69
+ Ref: false
71
70
  },
72
- repository: {
73
- type: "git",
74
- url: "https://github.com/eslint/eslint.git",
75
- directory: "packages/js"
76
- },
77
- homepage: "https://eslint.org",
78
- bugs: "https://github.com/eslint/eslint/issues/",
79
- keywords: [
80
- "javascript",
81
- "eslint-plugin",
82
- "eslint"
83
- ],
84
- license: "MIT",
85
- engines: {
86
- node: "^18.18.0 || ^20.9.0 || >=21.1.0"
87
- }
88
- };
89
- }
90
- });
91
-
92
- // node_modules/@eslint/js/src/configs/eslint-all.js
93
- var require_eslint_all = __commonJS({
94
- "node_modules/@eslint/js/src/configs/eslint-all.js"(exports2, module2) {
95
- "use strict";
96
- module2.exports = Object.freeze({
97
- "rules": {
98
- "accessor-pairs": "error",
99
- "array-callback-return": "error",
100
- "arrow-body-style": "error",
101
- "block-scoped-var": "error",
102
- "camelcase": "error",
103
- "capitalized-comments": "error",
104
- "class-methods-use-this": "error",
105
- "complexity": "error",
106
- "consistent-return": "error",
107
- "consistent-this": "error",
108
- "constructor-super": "error",
109
- "curly": "error",
110
- "default-case": "error",
111
- "default-case-last": "error",
112
- "default-param-last": "error",
113
- "dot-notation": "error",
114
- "eqeqeq": "error",
115
- "for-direction": "error",
116
- "func-name-matching": "error",
117
- "func-names": "error",
118
- "func-style": "error",
119
- "getter-return": "error",
120
- "grouped-accessor-pairs": "error",
121
- "guard-for-in": "error",
122
- "id-denylist": "error",
123
- "id-length": "error",
124
- "id-match": "error",
125
- "init-declarations": "error",
126
- "logical-assignment-operators": "error",
127
- "max-classes-per-file": "error",
128
- "max-depth": "error",
129
- "max-lines": "error",
130
- "max-lines-per-function": "error",
131
- "max-nested-callbacks": "error",
132
- "max-params": "error",
133
- "max-statements": "error",
134
- "new-cap": "error",
135
- "no-alert": "error",
136
- "no-array-constructor": "error",
137
- "no-async-promise-executor": "error",
138
- "no-await-in-loop": "error",
139
- "no-bitwise": "error",
140
- "no-caller": "error",
141
- "no-case-declarations": "error",
142
- "no-class-assign": "error",
143
- "no-compare-neg-zero": "error",
144
- "no-cond-assign": "error",
145
- "no-console": "error",
146
- "no-const-assign": "error",
147
- "no-constant-binary-expression": "error",
148
- "no-constant-condition": "error",
149
- "no-constructor-return": "error",
150
- "no-continue": "error",
151
- "no-control-regex": "error",
152
- "no-debugger": "error",
153
- "no-delete-var": "error",
154
- "no-div-regex": "error",
155
- "no-dupe-args": "error",
156
- "no-dupe-class-members": "error",
157
- "no-dupe-else-if": "error",
158
- "no-dupe-keys": "error",
159
- "no-duplicate-case": "error",
160
- "no-duplicate-imports": "error",
161
- "no-else-return": "error",
162
- "no-empty": "error",
163
- "no-empty-character-class": "error",
164
- "no-empty-function": "error",
165
- "no-empty-pattern": "error",
166
- "no-empty-static-block": "error",
167
- "no-eq-null": "error",
168
- "no-eval": "error",
169
- "no-ex-assign": "error",
170
- "no-extend-native": "error",
171
- "no-extra-bind": "error",
172
- "no-extra-boolean-cast": "error",
173
- "no-extra-label": "error",
174
- "no-fallthrough": "error",
175
- "no-func-assign": "error",
176
- "no-global-assign": "error",
177
- "no-implicit-coercion": "error",
178
- "no-implicit-globals": "error",
179
- "no-implied-eval": "error",
180
- "no-import-assign": "error",
181
- "no-inline-comments": "error",
182
- "no-inner-declarations": "error",
183
- "no-invalid-regexp": "error",
184
- "no-invalid-this": "error",
185
- "no-irregular-whitespace": "error",
186
- "no-iterator": "error",
187
- "no-label-var": "error",
188
- "no-labels": "error",
189
- "no-lone-blocks": "error",
190
- "no-lonely-if": "error",
191
- "no-loop-func": "error",
192
- "no-loss-of-precision": "error",
193
- "no-magic-numbers": "error",
194
- "no-misleading-character-class": "error",
195
- "no-multi-assign": "error",
196
- "no-multi-str": "error",
197
- "no-negated-condition": "error",
198
- "no-nested-ternary": "error",
199
- "no-new": "error",
200
- "no-new-func": "error",
201
- "no-new-native-nonconstructor": "error",
202
- "no-new-wrappers": "error",
203
- "no-nonoctal-decimal-escape": "error",
204
- "no-obj-calls": "error",
205
- "no-object-constructor": "error",
206
- "no-octal": "error",
207
- "no-octal-escape": "error",
208
- "no-param-reassign": "error",
209
- "no-plusplus": "error",
210
- "no-promise-executor-return": "error",
211
- "no-proto": "error",
212
- "no-prototype-builtins": "error",
213
- "no-redeclare": "error",
214
- "no-regex-spaces": "error",
215
- "no-restricted-exports": "error",
216
- "no-restricted-globals": "error",
217
- "no-restricted-imports": "error",
218
- "no-restricted-properties": "error",
219
- "no-restricted-syntax": "error",
220
- "no-return-assign": "error",
221
- "no-script-url": "error",
222
- "no-self-assign": "error",
223
- "no-self-compare": "error",
224
- "no-sequences": "error",
225
- "no-setter-return": "error",
226
- "no-shadow": "error",
227
- "no-shadow-restricted-names": "error",
228
- "no-sparse-arrays": "error",
229
- "no-template-curly-in-string": "error",
230
- "no-ternary": "error",
231
- "no-this-before-super": "error",
232
- "no-throw-literal": "error",
233
- "no-unassigned-vars": "error",
234
- "no-undef": "error",
235
- "no-undef-init": "error",
236
- "no-undefined": "error",
237
- "no-underscore-dangle": "error",
238
- "no-unexpected-multiline": "error",
239
- "no-unmodified-loop-condition": "error",
240
- "no-unneeded-ternary": "error",
241
- "no-unreachable": "error",
242
- "no-unreachable-loop": "error",
243
- "no-unsafe-finally": "error",
244
- "no-unsafe-negation": "error",
245
- "no-unsafe-optional-chaining": "error",
246
- "no-unused-expressions": "error",
247
- "no-unused-labels": "error",
248
- "no-unused-private-class-members": "error",
249
- "no-unused-vars": "error",
250
- "no-use-before-define": "error",
251
- "no-useless-assignment": "error",
252
- "no-useless-backreference": "error",
253
- "no-useless-call": "error",
254
- "no-useless-catch": "error",
255
- "no-useless-computed-key": "error",
256
- "no-useless-concat": "error",
257
- "no-useless-constructor": "error",
258
- "no-useless-escape": "error",
259
- "no-useless-rename": "error",
260
- "no-useless-return": "error",
261
- "no-var": "error",
262
- "no-void": "error",
263
- "no-warning-comments": "error",
264
- "no-with": "error",
265
- "object-shorthand": "error",
266
- "one-var": "error",
267
- "operator-assignment": "error",
268
- "prefer-arrow-callback": "error",
269
- "prefer-const": "error",
270
- "prefer-destructuring": "error",
271
- "prefer-exponentiation-operator": "error",
272
- "prefer-named-capture-group": "error",
273
- "prefer-numeric-literals": "error",
274
- "prefer-object-has-own": "error",
275
- "prefer-object-spread": "error",
276
- "prefer-promise-reject-errors": "error",
277
- "prefer-regex-literals": "error",
278
- "prefer-rest-params": "error",
279
- "prefer-spread": "error",
280
- "prefer-template": "error",
281
- "radix": "error",
282
- "require-atomic-updates": "error",
283
- "require-await": "error",
284
- "require-unicode-regexp": "error",
285
- "require-yield": "error",
286
- "sort-imports": "error",
287
- "sort-keys": "error",
288
- "sort-vars": "error",
289
- "strict": "error",
290
- "symbol-description": "error",
291
- "unicode-bom": "error",
292
- "use-isnan": "error",
293
- "valid-typeof": "error",
294
- "vars-on-top": "error",
295
- "yoda": "error"
296
- }
297
- });
298
- }
299
- });
300
-
301
- // node_modules/@eslint/js/src/configs/eslint-recommended.js
302
- var require_eslint_recommended = __commonJS({
303
- "node_modules/@eslint/js/src/configs/eslint-recommended.js"(exports2, module2) {
304
- "use strict";
305
- module2.exports = Object.freeze({
306
- rules: Object.freeze({
307
- "constructor-super": "error",
308
- "for-direction": "error",
309
- "getter-return": "error",
310
- "no-async-promise-executor": "error",
311
- "no-case-declarations": "error",
312
- "no-class-assign": "error",
313
- "no-compare-neg-zero": "error",
314
- "no-cond-assign": "error",
315
- "no-const-assign": "error",
316
- "no-constant-binary-expression": "error",
317
- "no-constant-condition": "error",
318
- "no-control-regex": "error",
319
- "no-debugger": "error",
320
- "no-delete-var": "error",
321
- "no-dupe-args": "error",
322
- "no-dupe-class-members": "error",
323
- "no-dupe-else-if": "error",
324
- "no-dupe-keys": "error",
325
- "no-duplicate-case": "error",
326
- "no-empty": "error",
327
- "no-empty-character-class": "error",
328
- "no-empty-pattern": "error",
329
- "no-empty-static-block": "error",
330
- "no-ex-assign": "error",
331
- "no-extra-boolean-cast": "error",
332
- "no-fallthrough": "error",
333
- "no-func-assign": "error",
334
- "no-global-assign": "error",
335
- "no-import-assign": "error",
336
- "no-invalid-regexp": "error",
337
- "no-irregular-whitespace": "error",
338
- "no-loss-of-precision": "error",
339
- "no-misleading-character-class": "error",
340
- "no-new-native-nonconstructor": "error",
341
- "no-nonoctal-decimal-escape": "error",
342
- "no-obj-calls": "error",
343
- "no-octal": "error",
344
- "no-prototype-builtins": "error",
345
- "no-redeclare": "error",
346
- "no-regex-spaces": "error",
347
- "no-self-assign": "error",
348
- "no-setter-return": "error",
349
- "no-shadow-restricted-names": "error",
350
- "no-sparse-arrays": "error",
351
- "no-this-before-super": "error",
352
- "no-undef": "error",
353
- "no-unexpected-multiline": "error",
354
- "no-unreachable": "error",
355
- "no-unsafe-finally": "error",
356
- "no-unsafe-negation": "error",
357
- "no-unsafe-optional-chaining": "error",
358
- "no-unused-labels": "error",
359
- "no-unused-private-class-members": "error",
360
- "no-unused-vars": "error",
361
- "no-useless-backreference": "error",
362
- "no-useless-catch": "error",
363
- "no-useless-escape": "error",
364
- "no-with": "error",
365
- "require-yield": "error",
366
- "use-isnan": "error",
367
- "valid-typeof": "error"
368
- })
369
- });
370
- }
371
- });
372
-
373
- // node_modules/@eslint/js/src/index.js
374
- var require_src = __commonJS({
375
- "node_modules/@eslint/js/src/index.js"(exports2, module2) {
376
- "use strict";
377
- var { name: name2, version: version2 } = require_package();
378
- module2.exports = {
379
- meta: {
380
- name: name2,
381
- version: version2
382
- },
383
- configs: {
384
- all: require_eslint_all(),
385
- recommended: require_eslint_recommended()
386
- }
387
- };
388
- }
389
- });
390
-
391
- // node_modules/globals/globals.json
392
- var require_globals = __commonJS({
393
- "node_modules/globals/globals.json"(exports2, module2) {
394
- module2.exports = {
395
- amd: {
396
- define: false,
397
- require: false
398
- },
399
- applescript: {
400
- $: false,
401
- Application: false,
402
- Automation: false,
403
- console: false,
404
- delay: false,
405
- Library: false,
406
- ObjC: false,
407
- ObjectSpecifier: false,
408
- Path: false,
409
- Progress: false,
410
- Ref: false
71
+ astro: {
72
+ Astro: false
411
73
  },
412
74
  atomtest: {
413
75
  advanceClock: false,
@@ -622,6 +284,7 @@ var require_globals = __commonJS({
622
284
  DeviceOrientationEvent: false,
623
285
  devicePixelRatio: false,
624
286
  DevicePosture: false,
287
+ DigitalCredential: false,
625
288
  dispatchEvent: false,
626
289
  DisposableStack: false,
627
290
  document: false,
@@ -849,6 +512,7 @@ var require_globals = __commonJS({
849
512
  IDBKeyRange: false,
850
513
  IDBObjectStore: false,
851
514
  IDBOpenDBRequest: false,
515
+ IDBRecord: false,
852
516
  IDBRequest: false,
853
517
  IDBTransaction: false,
854
518
  IDBVersionChangeEvent: false,
@@ -874,6 +538,7 @@ var require_globals = __commonJS({
874
538
  InputDeviceInfo: false,
875
539
  InputEvent: false,
876
540
  IntegrityViolationReportBody: false,
541
+ InterestEvent: false,
877
542
  IntersectionObserver: false,
878
543
  IntersectionObserverEntry: false,
879
544
  isSecureContext: false,
@@ -963,6 +628,7 @@ var require_globals = __commonJS({
963
628
  NavigationCurrentEntryChangeEvent: false,
964
629
  NavigationDestination: false,
965
630
  NavigationHistoryEntry: false,
631
+ NavigationPrecommitController: false,
966
632
  NavigationPreloadManager: false,
967
633
  NavigationTransition: false,
968
634
  navigator: false,
@@ -1293,6 +959,7 @@ var require_globals = __commonJS({
1293
959
  SpeechRecognition: false,
1294
960
  SpeechRecognitionErrorEvent: false,
1295
961
  SpeechRecognitionEvent: false,
962
+ SpeechRecognitionPhrase: false,
1296
963
  speechSynthesis: false,
1297
964
  SpeechSynthesis: false,
1298
965
  SpeechSynthesisErrorEvent: false,
@@ -2709,6 +2376,7 @@ var require_globals = __commonJS({
2709
2376
  DecompressionStream: false,
2710
2377
  DisposableStack: false,
2711
2378
  DOMException: false,
2379
+ ErrorEvent: false,
2712
2380
  Event: false,
2713
2381
  EventTarget: false,
2714
2382
  exports: true,
@@ -2717,6 +2385,7 @@ var require_globals = __commonJS({
2717
2385
  FormData: false,
2718
2386
  global: false,
2719
2387
  Headers: false,
2388
+ localStorage: false,
2720
2389
  MessageChannel: false,
2721
2390
  MessageEvent: false,
2722
2391
  MessagePort: false,
@@ -2742,9 +2411,11 @@ var require_globals = __commonJS({
2742
2411
  Request: false,
2743
2412
  require: false,
2744
2413
  Response: false,
2414
+ sessionStorage: false,
2745
2415
  setImmediate: false,
2746
2416
  setInterval: false,
2747
2417
  setTimeout: false,
2418
+ Storage: false,
2748
2419
  structuredClone: false,
2749
2420
  SubtleCrypto: false,
2750
2421
  SuppressedError: false,
@@ -2787,6 +2458,7 @@ var require_globals = __commonJS({
2787
2458
  DecompressionStream: false,
2788
2459
  DisposableStack: false,
2789
2460
  DOMException: false,
2461
+ ErrorEvent: false,
2790
2462
  Event: false,
2791
2463
  EventTarget: false,
2792
2464
  fetch: false,
@@ -2794,6 +2466,7 @@ var require_globals = __commonJS({
2794
2466
  FormData: false,
2795
2467
  global: false,
2796
2468
  Headers: false,
2469
+ localStorage: false,
2797
2470
  MessageChannel: false,
2798
2471
  MessageEvent: false,
2799
2472
  MessagePort: false,
@@ -2817,9 +2490,11 @@ var require_globals = __commonJS({
2817
2490
  ReadableStreamDefaultReader: false,
2818
2491
  Request: false,
2819
2492
  Response: false,
2493
+ sessionStorage: false,
2820
2494
  setImmediate: false,
2821
2495
  setInterval: false,
2822
2496
  setTimeout: false,
2497
+ Storage: false,
2823
2498
  structuredClone: false,
2824
2499
  SubtleCrypto: false,
2825
2500
  SuppressedError: false,
@@ -3067,6 +2742,7 @@ var require_globals = __commonJS({
3067
2742
  IDBKeyRange: false,
3068
2743
  IDBObjectStore: false,
3069
2744
  IDBOpenDBRequest: false,
2745
+ IDBRecord: false,
3070
2746
  IDBRequest: false,
3071
2747
  IDBTransaction: false,
3072
2748
  IDBVersionChangeEvent: false,
@@ -3254,12 +2930,14 @@ var require_globals = __commonJS({
3254
2930
  DecompressionStream: false,
3255
2931
  DisposableStack: false,
3256
2932
  DOMException: false,
2933
+ ErrorEvent: false,
3257
2934
  Event: false,
3258
2935
  EventTarget: false,
3259
2936
  fetch: false,
3260
2937
  File: false,
3261
2938
  FormData: false,
3262
2939
  Headers: false,
2940
+ localStorage: false,
3263
2941
  MessageChannel: false,
3264
2942
  MessageEvent: false,
3265
2943
  MessagePort: false,
@@ -3282,8 +2960,10 @@ var require_globals = __commonJS({
3282
2960
  ReadableStreamDefaultReader: false,
3283
2961
  Request: false,
3284
2962
  Response: false,
2963
+ sessionStorage: false,
3285
2964
  setInterval: false,
3286
2965
  setTimeout: false,
2966
+ Storage: false,
3287
2967
  structuredClone: false,
3288
2968
  SubtleCrypto: false,
3289
2969
  SuppressedError: false,
@@ -3338,6 +3018,15 @@ var require_globals = __commonJS({
3338
3018
  uniq: false,
3339
3019
  which: false
3340
3020
  },
3021
+ svelte: {
3022
+ $bindable: false,
3023
+ $derived: false,
3024
+ $effect: false,
3025
+ $host: false,
3026
+ $inspect: false,
3027
+ $props: false,
3028
+ $state: false
3029
+ },
3341
3030
  vitest: {
3342
3031
  afterAll: false,
3343
3032
  afterEach: false,
@@ -3357,6 +3046,15 @@ var require_globals = __commonJS({
3357
3046
  vi: false,
3358
3047
  vitest: false
3359
3048
  },
3049
+ vue: {
3050
+ defineEmits: false,
3051
+ defineExpose: false,
3052
+ defineModel: false,
3053
+ defineOptions: false,
3054
+ defineProps: false,
3055
+ defineSlots: false,
3056
+ withDefaults: false
3057
+ },
3360
3058
  webextensions: {
3361
3059
  browser: false,
3362
3060
  chrome: false,
@@ -3491,6 +3189,7 @@ var require_globals = __commonJS({
3491
3189
  IDBKeyRange: false,
3492
3190
  IDBObjectStore: false,
3493
3191
  IDBOpenDBRequest: false,
3192
+ IDBRecord: false,
3494
3193
  IDBRequest: false,
3495
3194
  IDBTransaction: false,
3496
3195
  IDBVersionChangeEvent: false,
@@ -3528,6 +3227,7 @@ var require_globals = __commonJS({
3528
3227
  onmessage: true,
3529
3228
  onmessageerror: true,
3530
3229
  onrejectionhandled: true,
3230
+ onrtctransform: true,
3531
3231
  onunhandledrejection: true,
3532
3232
  origin: false,
3533
3233
  Path2D: false,
@@ -3571,6 +3271,8 @@ var require_globals = __commonJS({
3571
3271
  RTCDataChannel: false,
3572
3272
  RTCEncodedAudioFrame: false,
3573
3273
  RTCEncodedVideoFrame: false,
3274
+ RTCRtpScriptTransformer: false,
3275
+ RTCTransformEvent: false,
3574
3276
  scheduler: false,
3575
3277
  Scheduler: false,
3576
3278
  SecurityPolicyViolationEvent: false,
@@ -3696,11 +3398,352 @@ var require_globals = __commonJS({
3696
3398
  }
3697
3399
  });
3698
3400
 
3699
- // node_modules/globals/index.js
3700
- var require_globals2 = __commonJS({
3701
- "node_modules/globals/index.js"(exports2, module2) {
3401
+ // node_modules/globals/index.js
3402
+ var require_globals2 = __commonJS({
3403
+ "node_modules/globals/index.js"(exports2, module2) {
3404
+ "use strict";
3405
+ module2.exports = require_globals();
3406
+ }
3407
+ });
3408
+
3409
+ // node_modules/@eslint/js/package.json
3410
+ var require_package = __commonJS({
3411
+ "node_modules/@eslint/js/package.json"(exports2, module2) {
3412
+ module2.exports = {
3413
+ name: "@eslint/js",
3414
+ version: "9.31.0",
3415
+ description: "ESLint JavaScript language implementation",
3416
+ funding: "https://eslint.org/donate",
3417
+ main: "./src/index.js",
3418
+ types: "./types/index.d.ts",
3419
+ scripts: {
3420
+ "test:types": "tsc -p tests/types/tsconfig.json"
3421
+ },
3422
+ files: [
3423
+ "LICENSE",
3424
+ "README.md",
3425
+ "src",
3426
+ "types"
3427
+ ],
3428
+ publishConfig: {
3429
+ access: "public"
3430
+ },
3431
+ repository: {
3432
+ type: "git",
3433
+ url: "https://github.com/eslint/eslint.git",
3434
+ directory: "packages/js"
3435
+ },
3436
+ homepage: "https://eslint.org",
3437
+ bugs: "https://github.com/eslint/eslint/issues/",
3438
+ keywords: [
3439
+ "javascript",
3440
+ "eslint-plugin",
3441
+ "eslint"
3442
+ ],
3443
+ license: "MIT",
3444
+ engines: {
3445
+ node: "^18.18.0 || ^20.9.0 || >=21.1.0"
3446
+ }
3447
+ };
3448
+ }
3449
+ });
3450
+
3451
+ // node_modules/@eslint/js/src/configs/eslint-all.js
3452
+ var require_eslint_all = __commonJS({
3453
+ "node_modules/@eslint/js/src/configs/eslint-all.js"(exports2, module2) {
3454
+ "use strict";
3455
+ module2.exports = Object.freeze({
3456
+ "rules": {
3457
+ "accessor-pairs": "error",
3458
+ "array-callback-return": "error",
3459
+ "arrow-body-style": "error",
3460
+ "block-scoped-var": "error",
3461
+ "camelcase": "error",
3462
+ "capitalized-comments": "error",
3463
+ "class-methods-use-this": "error",
3464
+ "complexity": "error",
3465
+ "consistent-return": "error",
3466
+ "consistent-this": "error",
3467
+ "constructor-super": "error",
3468
+ "curly": "error",
3469
+ "default-case": "error",
3470
+ "default-case-last": "error",
3471
+ "default-param-last": "error",
3472
+ "dot-notation": "error",
3473
+ "eqeqeq": "error",
3474
+ "for-direction": "error",
3475
+ "func-name-matching": "error",
3476
+ "func-names": "error",
3477
+ "func-style": "error",
3478
+ "getter-return": "error",
3479
+ "grouped-accessor-pairs": "error",
3480
+ "guard-for-in": "error",
3481
+ "id-denylist": "error",
3482
+ "id-length": "error",
3483
+ "id-match": "error",
3484
+ "init-declarations": "error",
3485
+ "logical-assignment-operators": "error",
3486
+ "max-classes-per-file": "error",
3487
+ "max-depth": "error",
3488
+ "max-lines": "error",
3489
+ "max-lines-per-function": "error",
3490
+ "max-nested-callbacks": "error",
3491
+ "max-params": "error",
3492
+ "max-statements": "error",
3493
+ "new-cap": "error",
3494
+ "no-alert": "error",
3495
+ "no-array-constructor": "error",
3496
+ "no-async-promise-executor": "error",
3497
+ "no-await-in-loop": "error",
3498
+ "no-bitwise": "error",
3499
+ "no-caller": "error",
3500
+ "no-case-declarations": "error",
3501
+ "no-class-assign": "error",
3502
+ "no-compare-neg-zero": "error",
3503
+ "no-cond-assign": "error",
3504
+ "no-console": "error",
3505
+ "no-const-assign": "error",
3506
+ "no-constant-binary-expression": "error",
3507
+ "no-constant-condition": "error",
3508
+ "no-constructor-return": "error",
3509
+ "no-continue": "error",
3510
+ "no-control-regex": "error",
3511
+ "no-debugger": "error",
3512
+ "no-delete-var": "error",
3513
+ "no-div-regex": "error",
3514
+ "no-dupe-args": "error",
3515
+ "no-dupe-class-members": "error",
3516
+ "no-dupe-else-if": "error",
3517
+ "no-dupe-keys": "error",
3518
+ "no-duplicate-case": "error",
3519
+ "no-duplicate-imports": "error",
3520
+ "no-else-return": "error",
3521
+ "no-empty": "error",
3522
+ "no-empty-character-class": "error",
3523
+ "no-empty-function": "error",
3524
+ "no-empty-pattern": "error",
3525
+ "no-empty-static-block": "error",
3526
+ "no-eq-null": "error",
3527
+ "no-eval": "error",
3528
+ "no-ex-assign": "error",
3529
+ "no-extend-native": "error",
3530
+ "no-extra-bind": "error",
3531
+ "no-extra-boolean-cast": "error",
3532
+ "no-extra-label": "error",
3533
+ "no-fallthrough": "error",
3534
+ "no-func-assign": "error",
3535
+ "no-global-assign": "error",
3536
+ "no-implicit-coercion": "error",
3537
+ "no-implicit-globals": "error",
3538
+ "no-implied-eval": "error",
3539
+ "no-import-assign": "error",
3540
+ "no-inline-comments": "error",
3541
+ "no-inner-declarations": "error",
3542
+ "no-invalid-regexp": "error",
3543
+ "no-invalid-this": "error",
3544
+ "no-irregular-whitespace": "error",
3545
+ "no-iterator": "error",
3546
+ "no-label-var": "error",
3547
+ "no-labels": "error",
3548
+ "no-lone-blocks": "error",
3549
+ "no-lonely-if": "error",
3550
+ "no-loop-func": "error",
3551
+ "no-loss-of-precision": "error",
3552
+ "no-magic-numbers": "error",
3553
+ "no-misleading-character-class": "error",
3554
+ "no-multi-assign": "error",
3555
+ "no-multi-str": "error",
3556
+ "no-negated-condition": "error",
3557
+ "no-nested-ternary": "error",
3558
+ "no-new": "error",
3559
+ "no-new-func": "error",
3560
+ "no-new-native-nonconstructor": "error",
3561
+ "no-new-wrappers": "error",
3562
+ "no-nonoctal-decimal-escape": "error",
3563
+ "no-obj-calls": "error",
3564
+ "no-object-constructor": "error",
3565
+ "no-octal": "error",
3566
+ "no-octal-escape": "error",
3567
+ "no-param-reassign": "error",
3568
+ "no-plusplus": "error",
3569
+ "no-promise-executor-return": "error",
3570
+ "no-proto": "error",
3571
+ "no-prototype-builtins": "error",
3572
+ "no-redeclare": "error",
3573
+ "no-regex-spaces": "error",
3574
+ "no-restricted-exports": "error",
3575
+ "no-restricted-globals": "error",
3576
+ "no-restricted-imports": "error",
3577
+ "no-restricted-properties": "error",
3578
+ "no-restricted-syntax": "error",
3579
+ "no-return-assign": "error",
3580
+ "no-script-url": "error",
3581
+ "no-self-assign": "error",
3582
+ "no-self-compare": "error",
3583
+ "no-sequences": "error",
3584
+ "no-setter-return": "error",
3585
+ "no-shadow": "error",
3586
+ "no-shadow-restricted-names": "error",
3587
+ "no-sparse-arrays": "error",
3588
+ "no-template-curly-in-string": "error",
3589
+ "no-ternary": "error",
3590
+ "no-this-before-super": "error",
3591
+ "no-throw-literal": "error",
3592
+ "no-unassigned-vars": "error",
3593
+ "no-undef": "error",
3594
+ "no-undef-init": "error",
3595
+ "no-undefined": "error",
3596
+ "no-underscore-dangle": "error",
3597
+ "no-unexpected-multiline": "error",
3598
+ "no-unmodified-loop-condition": "error",
3599
+ "no-unneeded-ternary": "error",
3600
+ "no-unreachable": "error",
3601
+ "no-unreachable-loop": "error",
3602
+ "no-unsafe-finally": "error",
3603
+ "no-unsafe-negation": "error",
3604
+ "no-unsafe-optional-chaining": "error",
3605
+ "no-unused-expressions": "error",
3606
+ "no-unused-labels": "error",
3607
+ "no-unused-private-class-members": "error",
3608
+ "no-unused-vars": "error",
3609
+ "no-use-before-define": "error",
3610
+ "no-useless-assignment": "error",
3611
+ "no-useless-backreference": "error",
3612
+ "no-useless-call": "error",
3613
+ "no-useless-catch": "error",
3614
+ "no-useless-computed-key": "error",
3615
+ "no-useless-concat": "error",
3616
+ "no-useless-constructor": "error",
3617
+ "no-useless-escape": "error",
3618
+ "no-useless-rename": "error",
3619
+ "no-useless-return": "error",
3620
+ "no-var": "error",
3621
+ "no-void": "error",
3622
+ "no-warning-comments": "error",
3623
+ "no-with": "error",
3624
+ "object-shorthand": "error",
3625
+ "one-var": "error",
3626
+ "operator-assignment": "error",
3627
+ "prefer-arrow-callback": "error",
3628
+ "prefer-const": "error",
3629
+ "prefer-destructuring": "error",
3630
+ "prefer-exponentiation-operator": "error",
3631
+ "prefer-named-capture-group": "error",
3632
+ "prefer-numeric-literals": "error",
3633
+ "prefer-object-has-own": "error",
3634
+ "prefer-object-spread": "error",
3635
+ "prefer-promise-reject-errors": "error",
3636
+ "prefer-regex-literals": "error",
3637
+ "prefer-rest-params": "error",
3638
+ "prefer-spread": "error",
3639
+ "prefer-template": "error",
3640
+ "radix": "error",
3641
+ "require-atomic-updates": "error",
3642
+ "require-await": "error",
3643
+ "require-unicode-regexp": "error",
3644
+ "require-yield": "error",
3645
+ "sort-imports": "error",
3646
+ "sort-keys": "error",
3647
+ "sort-vars": "error",
3648
+ "strict": "error",
3649
+ "symbol-description": "error",
3650
+ "unicode-bom": "error",
3651
+ "use-isnan": "error",
3652
+ "valid-typeof": "error",
3653
+ "vars-on-top": "error",
3654
+ "yoda": "error"
3655
+ }
3656
+ });
3657
+ }
3658
+ });
3659
+
3660
+ // node_modules/@eslint/js/src/configs/eslint-recommended.js
3661
+ var require_eslint_recommended = __commonJS({
3662
+ "node_modules/@eslint/js/src/configs/eslint-recommended.js"(exports2, module2) {
3663
+ "use strict";
3664
+ module2.exports = Object.freeze({
3665
+ rules: Object.freeze({
3666
+ "constructor-super": "error",
3667
+ "for-direction": "error",
3668
+ "getter-return": "error",
3669
+ "no-async-promise-executor": "error",
3670
+ "no-case-declarations": "error",
3671
+ "no-class-assign": "error",
3672
+ "no-compare-neg-zero": "error",
3673
+ "no-cond-assign": "error",
3674
+ "no-const-assign": "error",
3675
+ "no-constant-binary-expression": "error",
3676
+ "no-constant-condition": "error",
3677
+ "no-control-regex": "error",
3678
+ "no-debugger": "error",
3679
+ "no-delete-var": "error",
3680
+ "no-dupe-args": "error",
3681
+ "no-dupe-class-members": "error",
3682
+ "no-dupe-else-if": "error",
3683
+ "no-dupe-keys": "error",
3684
+ "no-duplicate-case": "error",
3685
+ "no-empty": "error",
3686
+ "no-empty-character-class": "error",
3687
+ "no-empty-pattern": "error",
3688
+ "no-empty-static-block": "error",
3689
+ "no-ex-assign": "error",
3690
+ "no-extra-boolean-cast": "error",
3691
+ "no-fallthrough": "error",
3692
+ "no-func-assign": "error",
3693
+ "no-global-assign": "error",
3694
+ "no-import-assign": "error",
3695
+ "no-invalid-regexp": "error",
3696
+ "no-irregular-whitespace": "error",
3697
+ "no-loss-of-precision": "error",
3698
+ "no-misleading-character-class": "error",
3699
+ "no-new-native-nonconstructor": "error",
3700
+ "no-nonoctal-decimal-escape": "error",
3701
+ "no-obj-calls": "error",
3702
+ "no-octal": "error",
3703
+ "no-prototype-builtins": "error",
3704
+ "no-redeclare": "error",
3705
+ "no-regex-spaces": "error",
3706
+ "no-self-assign": "error",
3707
+ "no-setter-return": "error",
3708
+ "no-shadow-restricted-names": "error",
3709
+ "no-sparse-arrays": "error",
3710
+ "no-this-before-super": "error",
3711
+ "no-undef": "error",
3712
+ "no-unexpected-multiline": "error",
3713
+ "no-unreachable": "error",
3714
+ "no-unsafe-finally": "error",
3715
+ "no-unsafe-negation": "error",
3716
+ "no-unsafe-optional-chaining": "error",
3717
+ "no-unused-labels": "error",
3718
+ "no-unused-private-class-members": "error",
3719
+ "no-unused-vars": "error",
3720
+ "no-useless-backreference": "error",
3721
+ "no-useless-catch": "error",
3722
+ "no-useless-escape": "error",
3723
+ "no-with": "error",
3724
+ "require-yield": "error",
3725
+ "use-isnan": "error",
3726
+ "valid-typeof": "error"
3727
+ })
3728
+ });
3729
+ }
3730
+ });
3731
+
3732
+ // node_modules/@eslint/js/src/index.js
3733
+ var require_src = __commonJS({
3734
+ "node_modules/@eslint/js/src/index.js"(exports2, module2) {
3702
3735
  "use strict";
3703
- module2.exports = require_globals();
3736
+ var { name: name2, version: version2 } = require_package();
3737
+ module2.exports = {
3738
+ meta: {
3739
+ name: name2,
3740
+ version: version2
3741
+ },
3742
+ configs: {
3743
+ all: require_eslint_all(),
3744
+ recommended: require_eslint_recommended()
3745
+ }
3746
+ };
3704
3747
  }
3705
3748
  });
3706
3749
 
@@ -3713,9 +3756,52 @@ __export(index_exports, {
3713
3756
  });
3714
3757
  module.exports = __toCommonJS(index_exports);
3715
3758
 
3759
+ // src/alexPlugin.ts
3760
+ var import_eslint_plugin_package_json = __toESM(require("eslint-plugin-package-json"), 1);
3761
+
3716
3762
  // package.json
3717
3763
  var name = "@alextheman/eslint-plugin";
3718
- var version = "2.4.1";
3764
+ var version = "2.6.0";
3765
+
3766
+ // src/configs/personal/testsBase.ts
3767
+ var import_globals = __toESM(require_globals2(), 1);
3768
+ var personalTestsBaseConfig = [
3769
+ {
3770
+ files: ["**/*.test.{js,ts}"],
3771
+ languageOptions: {
3772
+ globals: __spreadValues(__spreadValues(__spreadValues({}, import_globals.default.node), import_globals.default.browser), import_globals.default.vitest)
3773
+ },
3774
+ rules: {
3775
+ "no-restricted-globals": [
3776
+ "error",
3777
+ {
3778
+ message: "Do not use global describe function. Import test functions from vitest instead.",
3779
+ name: "describe"
3780
+ },
3781
+ {
3782
+ message: "Do not use global test function. Import test functions from vitest instead.",
3783
+ name: "test"
3784
+ },
3785
+ {
3786
+ message: "Do not use global expect function. Import test functions from vitest instead.",
3787
+ name: "expect"
3788
+ }
3789
+ ],
3790
+ "no-restricted-imports": [
3791
+ "error",
3792
+ {
3793
+ paths: [
3794
+ {
3795
+ message: "Use test functions from vitest instead.",
3796
+ name: "node:test"
3797
+ }
3798
+ ]
3799
+ }
3800
+ ]
3801
+ }
3802
+ }
3803
+ ];
3804
+ var testsBase_default = personalTestsBaseConfig;
3719
3805
 
3720
3806
  // src/configs/plugin/pluginBase.ts
3721
3807
  function createPluginBaseConfig(plugin) {
@@ -3750,70 +3836,31 @@ function createPluginTestsBaseConfig(plugin) {
3750
3836
  }
3751
3837
  ];
3752
3838
  }
3753
- var testsBase_default = createPluginTestsBaseConfig;
3839
+ var testsBase_default2 = createPluginTestsBaseConfig;
3754
3840
 
3755
3841
  // src/configs/combined/testsBase.ts
3756
3842
  function createCombinedTestsBaseConfig(plugin) {
3757
- return [
3758
- ...testsBase_default(plugin),
3759
- {
3760
- files: ["**/*.test.{js,ts}"],
3761
- rules: {
3762
- "no-restricted-globals": [
3763
- "error",
3764
- {
3765
- message: "Do not use global describe function. Import test functions from vitest instead.",
3766
- name: "describe"
3767
- },
3768
- {
3769
- message: "Do not use global test function. Import test functions from vitest instead.",
3770
- name: "test"
3771
- },
3772
- {
3773
- message: "Do not use global expect function. Import test functions from vitest instead.",
3774
- name: "expect"
3775
- }
3776
- ],
3777
- "no-restricted-imports": [
3778
- "error",
3779
- {
3780
- paths: [
3781
- {
3782
- message: "Use test functions from vitest instead.",
3783
- name: "node:test"
3784
- }
3785
- ]
3786
- }
3787
- ]
3788
- }
3789
- }
3790
- ];
3843
+ return [...testsBase_default2(plugin), ...testsBase_default];
3791
3844
  }
3792
- var testsBase_default2 = createCombinedTestsBaseConfig;
3845
+ var testsBase_default3 = createCombinedTestsBaseConfig;
3793
3846
 
3794
3847
  // src/configs/general/javaScriptBase.ts
3795
3848
  var import_js = __toESM(require_src(), 1);
3796
3849
  var import_eslint_config_prettier = __toESM(require("eslint-config-prettier"), 1);
3797
3850
  var import_eslint_plugin_import = __toESM(require("eslint-plugin-import"), 1);
3798
- var import_eslint_plugin_package_json = __toESM(require("eslint-plugin-package-json"), 1);
3799
- var import_eslint_plugin_perfectionist = __toESM(require("eslint-plugin-perfectionist"), 1);
3800
- var import_eslint_plugin_prettier = __toESM(require("eslint-plugin-prettier"), 1);
3801
- var import_globals = __toESM(require_globals2(), 1);
3851
+ var import_globals2 = __toESM(require_globals2(), 1);
3802
3852
  var javaScriptBase = [
3803
3853
  import_js.default.configs.recommended,
3804
3854
  import_eslint_config_prettier.default,
3805
- import_eslint_plugin_package_json.default.configs.recommended,
3806
3855
  {
3807
- files: ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx", "!package.json"],
3856
+ files: ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx"],
3808
3857
  ignores: ["dist"],
3809
3858
  languageOptions: {
3810
- globals: __spreadValues(__spreadValues({}, import_globals.default.node), import_globals.default.browser)
3859
+ globals: __spreadValues(__spreadValues({}, import_globals2.default.node), import_globals2.default.browser)
3811
3860
  },
3812
3861
  name: "@alextheman/eslint-config-javascript-base",
3813
3862
  plugins: {
3814
- import: import_eslint_plugin_import.default,
3815
- perfectionist: import_eslint_plugin_perfectionist.default,
3816
- prettier: import_eslint_plugin_prettier.default
3863
+ import: import_eslint_plugin_import.default
3817
3864
  },
3818
3865
  rules: {
3819
3866
  eqeqeq: "error",
@@ -3846,37 +3893,7 @@ var javaScriptBase = [
3846
3893
  ],
3847
3894
  "no-useless-rename": "error",
3848
3895
  "no-useless-return": "error",
3849
- "perfectionist/sort-exports": [
3850
- "error",
3851
- {
3852
- customGroups: [],
3853
- fallbackSort: { type: "natural" },
3854
- groups: ["value-export", "type-export"],
3855
- ignoreCase: true,
3856
- newlinesBetween: 1,
3857
- order: "asc",
3858
- partitionByComment: false,
3859
- partitionByNewLine: false,
3860
- specialCharacters: "keep",
3861
- type: "alphabetical"
3862
- }
3863
- ],
3864
- "perfectionist/sort-imports": [
3865
- "error",
3866
- {
3867
- groups: ["type", "builtin", "external", "internal", "object"],
3868
- ignoreCase: true,
3869
- internalPattern: ["^src/.*"],
3870
- newlinesBetween: 1,
3871
- order: "asc",
3872
- partitionByComment: false,
3873
- partitionByNewLine: false,
3874
- specialCharacters: "keep",
3875
- type: "alphabetical"
3876
- }
3877
- ],
3878
- "prefer-const": "error",
3879
- "sort-vars": "error"
3896
+ "prefer-const": "error"
3880
3897
  },
3881
3898
  settings: {
3882
3899
  "import/resolver": {
@@ -3887,12 +3904,18 @@ var javaScriptBase = [
3887
3904
  ];
3888
3905
  var javaScriptBase_default = javaScriptBase;
3889
3906
 
3890
- // src/configs/combined/javaScriptBase.ts
3891
- function createCombinedJavaScriptBaseConfig(plugin) {
3907
+ // src/configs/personal/javaScriptBase.ts
3908
+ var import_eslint_plugin_perfectionist = __toESM(require("eslint-plugin-perfectionist"), 1);
3909
+ var import_eslint_plugin_prettier = __toESM(require("eslint-plugin-prettier"), 1);
3910
+ function createPersonalJavaScriptBaseConfig(plugin) {
3892
3911
  return [
3893
- ...pluginBase_default(plugin),
3894
- ...javaScriptBase_default,
3895
3912
  {
3913
+ files: ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx"],
3914
+ plugins: {
3915
+ "@alextheman": plugin,
3916
+ perfectionist: import_eslint_plugin_perfectionist.default,
3917
+ prettier: import_eslint_plugin_prettier.default
3918
+ },
3896
3919
  rules: {
3897
3920
  "@alextheman/no-relative-imports": "error",
3898
3921
  "arrow-body-style": ["error", "always"],
@@ -3901,23 +3924,63 @@ function createCombinedJavaScriptBaseConfig(plugin) {
3901
3924
  "no-else-return": "error",
3902
3925
  "no-implicit-coercion": ["error", { allow: ["!!"] }],
3903
3926
  "operator-assignment": ["error", "always"],
3927
+ "perfectionist/sort-exports": [
3928
+ "error",
3929
+ {
3930
+ customGroups: [],
3931
+ fallbackSort: { type: "natural" },
3932
+ groups: ["value-export", "type-export"],
3933
+ ignoreCase: true,
3934
+ newlinesBetween: 1,
3935
+ order: "asc",
3936
+ partitionByComment: false,
3937
+ partitionByNewLine: false,
3938
+ specialCharacters: "keep",
3939
+ type: "alphabetical"
3940
+ }
3941
+ ],
3942
+ "perfectionist/sort-imports": [
3943
+ "error",
3944
+ {
3945
+ groups: ["type", "builtin", "external", "internal", "object"],
3946
+ ignoreCase: true,
3947
+ internalPattern: ["^src/.*"],
3948
+ newlinesBetween: 1,
3949
+ order: "asc",
3950
+ partitionByComment: false,
3951
+ partitionByNewLine: false,
3952
+ specialCharacters: "keep",
3953
+ type: "alphabetical"
3954
+ }
3955
+ ],
3904
3956
  "prefer-arrow-callback": ["error", { allowNamedFunctions: false }],
3905
3957
  "prefer-destructuring": "error",
3906
3958
  "prefer-template": "error",
3907
- "prettier/prettier": ["warn", prettierRules_default]
3959
+ "prettier/prettier": ["warn", prettierRules_default],
3960
+ "sort-vars": "error"
3908
3961
  }
3909
- },
3910
- ...testsBase_default2(plugin)
3962
+ }
3963
+ ];
3964
+ }
3965
+ var javaScriptBase_default2 = createPersonalJavaScriptBaseConfig;
3966
+
3967
+ // src/configs/combined/javaScriptBase.ts
3968
+ function createCombinedJavaScriptBaseConfig(plugin) {
3969
+ return [
3970
+ ...pluginBase_default(plugin),
3971
+ ...javaScriptBase_default,
3972
+ ...javaScriptBase_default2(plugin),
3973
+ ...testsBase_default3(plugin)
3911
3974
  ];
3912
3975
  }
3913
- var javaScriptBase_default2 = createCombinedJavaScriptBaseConfig;
3976
+ var javaScriptBase_default3 = createCombinedJavaScriptBaseConfig;
3914
3977
 
3915
3978
  // src/configs/general/reactBase.ts
3916
3979
  var import_eslint_plugin_jsx_a11y = __toESM(require("eslint-plugin-jsx-a11y"), 1);
3917
3980
  var import_eslint_plugin_react = __toESM(require("eslint-plugin-react"), 1);
3918
3981
  var import_eslint_plugin_react_hooks = __toESM(require("eslint-plugin-react-hooks"), 1);
3919
3982
  var import_eslint_plugin_react_refresh = __toESM(require("eslint-plugin-react-refresh"), 1);
3920
- var import_globals2 = __toESM(require_globals2(), 1);
3983
+ var import_globals3 = __toESM(require_globals2(), 1);
3921
3984
  var reactBase = [
3922
3985
  import_eslint_plugin_react.default.configs.flat.recommended,
3923
3986
  import_eslint_plugin_react.default.configs.flat["jsx-runtime"],
@@ -3925,7 +3988,7 @@ var reactBase = [
3925
3988
  {
3926
3989
  languageOptions: {
3927
3990
  ecmaVersion: 2020,
3928
- globals: import_globals2.default.browser,
3991
+ globals: import_globals3.default.browser,
3929
3992
  parserOptions: {
3930
3993
  ecmaFeatures: {
3931
3994
  jsx: true
@@ -3958,32 +4021,51 @@ var reactBase = [
3958
4021
  ];
3959
4022
  var reactBase_default = reactBase;
3960
4023
 
3961
- // src/configs/combined/reactBase.ts
3962
- function createCombinedReactBaseConfig(plugin) {
3963
- return [
3964
- ...pluginBase_default(plugin),
3965
- ...reactBase_default,
3966
- {
3967
- rules: {
3968
- "no-restricted-imports": [
3969
- "error",
3970
- {
3971
- patterns: [
3972
- {
3973
- message: 'Please use `import Component from "@mui/[package]/Component"` instead. See https://mui.com/material-ui/guides/minimizing-bundle-size/ for more information.',
3974
- regex: "^@mui/[^/]+$"
3975
- }
3976
- ]
3977
- }
3978
- ],
3979
- "react-hooks/exhaustive-deps": "off",
3980
- "react-refresh/only-export-components": "off",
3981
- "react/jsx-boolean-value": "error"
4024
+ // src/configs/personal/reactBase.ts
4025
+ var import_eslint_plugin_react2 = __toESM(require("eslint-plugin-react"), 1);
4026
+ var import_eslint_plugin_react_hooks2 = __toESM(require("eslint-plugin-react-hooks"), 1);
4027
+ var import_eslint_plugin_react_refresh2 = __toESM(require("eslint-plugin-react-refresh"), 1);
4028
+ var import_globals4 = __toESM(require_globals2(), 1);
4029
+ var personalReactBaseConfig = [
4030
+ {
4031
+ languageOptions: {
4032
+ ecmaVersion: 2020,
4033
+ globals: import_globals4.default.browser,
4034
+ parserOptions: {
4035
+ ecmaFeatures: {
4036
+ jsx: true
4037
+ }
3982
4038
  }
4039
+ },
4040
+ name: "@alextheman/eslint-config-react-base",
4041
+ plugins: {
4042
+ react: import_eslint_plugin_react2.default,
4043
+ "react-hooks": import_eslint_plugin_react_hooks2.default,
4044
+ "react-refresh": import_eslint_plugin_react_refresh2.default
4045
+ },
4046
+ rules: {
4047
+ "no-restricted-imports": [
4048
+ "error",
4049
+ {
4050
+ patterns: [
4051
+ {
4052
+ message: 'Please use `import Component from "@mui/[package]/Component"` instead. See https://mui.com/material-ui/guides/minimizing-bundle-size/ for more information.',
4053
+ regex: "^@mui/[^/]+$"
4054
+ }
4055
+ ]
4056
+ }
4057
+ ],
4058
+ "react-hooks/exhaustive-deps": "off",
4059
+ "react-refresh/only-export-components": "off",
4060
+ "react/jsx-boolean-value": "error"
3983
4061
  }
3984
- ];
3985
- }
3986
- var reactBase_default2 = createCombinedReactBaseConfig;
4062
+ }
4063
+ ];
4064
+ var reactBase_default2 = personalReactBaseConfig;
4065
+
4066
+ // src/configs/combined/reactBase.ts
4067
+ var combinedReactBaseConfig = [...reactBase_default, ...reactBase_default2];
4068
+ var reactBase_default3 = combinedReactBaseConfig;
3987
4069
 
3988
4070
  // src/configs/general/prettierRules.ts
3989
4071
  var prettierRules = {
@@ -4014,8 +4096,6 @@ var typeScriptBase = [
4014
4096
  "@typescript-eslint/consistent-type-imports": "error",
4015
4097
  "@typescript-eslint/explicit-member-accessibility": "error",
4016
4098
  "@typescript-eslint/no-deprecated": "warn",
4017
- // Explicit any can be helpful sometimes, so it's not worth erroring on every single one.
4018
- "@typescript-eslint/no-explicit-any": "off",
4019
4099
  "@typescript-eslint/no-redeclare": ["error", { ignoreDeclarationMerge: true }],
4020
4100
  "@typescript-eslint/no-unused-vars": [
4021
4101
  "error",
@@ -4042,35 +4122,198 @@ var typeScriptBase = [
4042
4122
  ];
4043
4123
  var typeScriptBase_default = typeScriptBase;
4044
4124
 
4045
- // src/configs/combined/typeScriptBase.ts
4046
- function createCombinedTypeScriptBaseConfig(plugin) {
4125
+ // src/configs/personal/eslintPlugin.ts
4126
+ function createPersonalEslintPluginConfig(plugin) {
4047
4127
  return [
4048
- ...pluginBase_default(plugin),
4049
- ...typeScriptBase_default,
4050
4128
  {
4051
- files: ["**/*.ts", "**/*.tsx", "!package.json"],
4129
+ plugins: {
4130
+ "@alextheman": plugin
4131
+ },
4132
+ rules: {
4133
+ // When we pass the plugin into the config creator functions from the index, there's no guarantee that the configs will already be
4134
+ // on the plugin when you access them from src/configs, since they're in the process of being created. It is generally better to import
4135
+ // another creator function directly from the creator function should you need to refer to another config in the newly added config. */
4136
+ "@alextheman/no-plugin-configs-access-from-src-configs": "error"
4137
+ }
4138
+ },
4139
+ {
4140
+ // Since the object exported in the rules index serves the same function as the exports in other projects, it's best to sort them in alphabetical order
4141
+ // as well to make it easier to compare against the file directory.
4142
+ files: ["src/rules/index.ts", "src/configs/**"],
4143
+ rules: {
4144
+ "perfectionist/sort-objects": [
4145
+ "error",
4146
+ {
4147
+ customGroups: [],
4148
+ destructuredObjects: true,
4149
+ fallbackSort: { type: "unsorted" },
4150
+ groups: [],
4151
+ ignoreCase: true,
4152
+ ignorePattern: [],
4153
+ newlinesBetween: "ignore",
4154
+ objectDeclarations: true,
4155
+ order: "asc",
4156
+ partitionByComment: false,
4157
+ partitionByNewLine: false,
4158
+ specialCharacters: "keep",
4159
+ styledComponents: true,
4160
+ type: "alphabetical",
4161
+ useConfigurationIf: {}
4162
+ }
4163
+ ]
4164
+ }
4165
+ }
4166
+ ];
4167
+ }
4168
+ var eslintPlugin_default = createPersonalEslintPluginConfig;
4169
+
4170
+ // src/configs/personal/neurosongsBackEnd.ts
4171
+ var neurosongsBackEndConfig = [
4172
+ {
4173
+ rules: {
4174
+ "no-restricted-imports": [
4175
+ "error",
4176
+ {
4177
+ paths: [
4178
+ {
4179
+ importNames: ["setPrismaClient"],
4180
+ message: "Do not attempt to reset the Prisma Client outside setup files.",
4181
+ // Do not allow manual setting of the current PrismaClient outside of the database files or setup file.
4182
+ name: "src/database/client"
4183
+ },
4184
+ {
4185
+ message: "Do not use the generated Prisma types. Use the types exported from @neurosongs/types instead.",
4186
+ // Do not allow imports from the generated types from PrismaClient. Instead use the processed Zod types from @neurosongs/types
4187
+ name: "@neurosongs/prisma-client/types"
4188
+ },
4189
+ {
4190
+ importNames: ["PrismaClient"],
4191
+ message: "Please use the PrismaClient from @neurosongs/types instead.",
4192
+ // The PrismaClient from @neurosongs/types is generally better to use as a type annotation as it can be either a transaction client or a main client.
4193
+ name: "@neurosongs/prisma-client/prisma"
4194
+ }
4195
+ ]
4196
+ }
4197
+ ]
4198
+ }
4199
+ },
4200
+ {
4201
+ files: ["src/database/**/*.ts", "tests/test-utilities/setup.ts"],
4202
+ rules: {
4203
+ // Setup files should be able to set the PrismaClient and use the regular PrismaClient from @neurosongs/prisma-client/prisma.
4204
+ "no-restricted-imports": "off"
4205
+ }
4206
+ },
4207
+ {
4208
+ files: ["src/server/routers/errors.ts", "src/server/validators/**/*.ts"],
4209
+ rules: {
4210
+ /* Function declarations in these files need to be arrow functions so we can type the whole signature
4211
+ using the Express types. */
4212
+ "func-style": ["error", "expression", { allowArrowFunctions: true }]
4213
+ }
4214
+ }
4215
+ ];
4216
+ var neurosongsBackEnd_default = neurosongsBackEndConfig;
4217
+
4218
+ // src/configs/personal/neurosongsFrontEnd.ts
4219
+ var neurosongsFrontEndConfig = [
4220
+ {
4221
+ rules: {
4222
+ "no-restricted-imports": [
4223
+ "error",
4224
+ {
4225
+ paths: [
4226
+ {
4227
+ importNames: ["PrismaClient"],
4228
+ message: "Do not use the Prisma Client directly in the front-end. Query an endpoint from the back-end instead.",
4229
+ // Disable the PrismaClient from @neurosongs/types for the same reason as above.
4230
+ name: "@neurosongs/types"
4231
+ },
4232
+ {
4233
+ importNames: ["LoaderProvider"],
4234
+ message: "Use the internal LoaderProvider from src/components/LoaderProvider instead.",
4235
+ /* Disable use of the LoaderProvider from @alextheman/components since Neurosongs provides its own LoaderProvider that wraps around
4236
+ the LoaderProvider from components, which provides a more suitable default errorComponent for Neurosongs-specific errors. */
4237
+ name: "@alextheman/components"
4238
+ },
4239
+ {
4240
+ importNames: ["Loader"],
4241
+ message: "Use the internal Loader from src/components/Loader instead.",
4242
+ // Disable Loader from @alextheman/components for same reasons as above
4243
+ name: "@alextheman/components"
4244
+ }
4245
+ ],
4246
+ patterns: [
4247
+ {
4248
+ /* Direct database queries from the front-end using the Prisma Client is generally bad practice, since
4249
+ in theory, anyone with a modified version of the front-end, in a version that can query the database directly, can
4250
+ send any sort of query, including ones that mutate data. It's a lot safer to keep database logic purely in the
4251
+ back-end so that we can allow database writes in a controlled way. */
4252
+ group: ["@neurosongs/prisma-client"],
4253
+ message: "Do not use the Prisma Client directly in the front-end. Query an endpoint from the back-end instead."
4254
+ }
4255
+ ]
4256
+ }
4257
+ ]
4258
+ }
4259
+ }
4260
+ ];
4261
+ var neurosongsFrontEnd_default = neurosongsFrontEndConfig;
4262
+
4263
+ // src/configs/personal/typeScriptBase.ts
4264
+ var import_parser2 = __toESM(require("@typescript-eslint/parser"), 1);
4265
+ var import_typescript_eslint2 = __toESM(require("typescript-eslint"), 1);
4266
+ function createPersonalTypeScriptBaseConfig(plugin) {
4267
+ return [
4268
+ ...import_typescript_eslint2.default.configs.recommended,
4269
+ {
4270
+ files: ["**/*.ts", "**/*.tsx"],
4271
+ languageOptions: {
4272
+ parser: import_parser2.default,
4273
+ parserOptions: {
4274
+ ecmaVersion: "latest",
4275
+ projectService: true,
4276
+ sourceType: "module",
4277
+ tsconfigRootDir: process.cwd()
4278
+ }
4279
+ },
4280
+ plugins: {
4281
+ "@alextheman": plugin
4282
+ },
4052
4283
  rules: {
4053
4284
  "@alextheman/standardise-error-messages": "error",
4054
4285
  "@typescript-eslint/array-type": ["error", { default: "array" }],
4055
4286
  "@typescript-eslint/consistent-type-assertions": ["error", { assertionStyle: "as" }],
4056
4287
  "@typescript-eslint/consistent-type-definitions": "error",
4057
4288
  "@typescript-eslint/dot-notation": "error",
4058
- "@typescript-eslint/method-signature-style": ["error", "property"]
4289
+ "@typescript-eslint/method-signature-style": ["error", "property"],
4290
+ // Explicit any can be helpful sometimes, so it's not worth erroring on every single one.
4291
+ "@typescript-eslint/no-explicit-any": "off"
4059
4292
  }
4060
4293
  }
4061
4294
  ];
4062
4295
  }
4063
- var typeScriptBase_default2 = createCombinedTypeScriptBaseConfig;
4296
+ var typeScriptBase_default2 = createPersonalTypeScriptBaseConfig;
4297
+
4298
+ // src/configs/combined/typeScriptBase.ts
4299
+ function createCombinedTypeScriptBaseConfig(plugin) {
4300
+ return [
4301
+ ...javaScriptBase_default3(plugin),
4302
+ ...typeScriptBase_default,
4303
+ ...typeScriptBase_default2(plugin)
4304
+ ];
4305
+ }
4306
+ var typeScriptBase_default3 = createCombinedTypeScriptBaseConfig;
4064
4307
 
4065
4308
  // src/configs/combined/typeScriptReactBase.ts
4066
4309
  function createCombinedTypeScriptReactBaseConfig(plugin) {
4067
- return [...typeScriptBase_default2(plugin), ...reactBase_default2(plugin)];
4310
+ return [...typeScriptBase_default3(plugin), ...reactBase_default3];
4068
4311
  }
4069
4312
  var typeScriptReactBase_default = createCombinedTypeScriptReactBaseConfig;
4070
4313
 
4071
4314
  // src/configs/combined/javaScriptReactBase.ts
4072
4315
  function createCombinedJavaScriptReactBaseConfig(plugin) {
4073
- return [...javaScriptBase_default2(plugin), ...reactBase_default2(plugin)];
4316
+ return [...javaScriptBase_default3(plugin), ...reactBase_default3];
4074
4317
  }
4075
4318
  var javaScriptReactBase_default = createCombinedJavaScriptReactBaseConfig;
4076
4319
 
@@ -4698,15 +4941,36 @@ alexPlugin.configs = createPluginConfigs_default({
4698
4941
  },
4699
4942
  plugin: {
4700
4943
  base: pluginBase_default(alexPlugin),
4701
- tests: testsBase_default(alexPlugin)
4944
+ tests: testsBase_default2(alexPlugin)
4702
4945
  },
4703
- combined: {
4946
+ personal: {
4704
4947
  javaScript: javaScriptBase_default2(alexPlugin),
4705
4948
  typeScript: typeScriptBase_default2(alexPlugin),
4706
- react: reactBase_default2(alexPlugin),
4707
- tests: testsBase_default2(alexPlugin),
4708
- typeScriptReact: typeScriptReactBase_default(alexPlugin),
4709
- javaScriptReact: javaScriptReactBase_default(alexPlugin)
4949
+ react: reactBase_default2,
4950
+ tests: testsBase_default,
4951
+ eslintPlugin: eslintPlugin_default(alexPlugin),
4952
+ neurosongsBackEnd: neurosongsBackEnd_default,
4953
+ neursongsFrontEnd: neurosongsFrontEnd_default
4954
+ },
4955
+ combined: {
4956
+ javaScript: [
4957
+ ...javaScriptBase_default3(alexPlugin),
4958
+ import_eslint_plugin_package_json.default.configs.recommended
4959
+ ],
4960
+ typeScript: [
4961
+ ...typeScriptBase_default3(alexPlugin),
4962
+ import_eslint_plugin_package_json.default.configs.recommended
4963
+ ],
4964
+ react: [...reactBase_default3, import_eslint_plugin_package_json.default.configs.recommended],
4965
+ tests: [...testsBase_default3(alexPlugin), import_eslint_plugin_package_json.default.configs.recommended],
4966
+ typeScriptReact: [
4967
+ ...typeScriptReactBase_default(alexPlugin),
4968
+ import_eslint_plugin_package_json.default.configs.recommended
4969
+ ],
4970
+ javaScriptReact: [
4971
+ ...javaScriptReactBase_default(alexPlugin),
4972
+ import_eslint_plugin_package_json.default.configs.recommended
4973
+ ]
4710
4974
  }
4711
4975
  });
4712
4976
  var alexPlugin_default = alexPlugin;