@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.js CHANGED
@@ -41,367 +41,29 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
41
41
  mod
42
42
  ));
43
43
 
44
- // node_modules/@eslint/js/package.json
45
- var require_package = __commonJS({
46
- "node_modules/@eslint/js/package.json"(exports, module) {
44
+ // node_modules/globals/globals.json
45
+ var require_globals = __commonJS({
46
+ "node_modules/globals/globals.json"(exports, module) {
47
47
  module.exports = {
48
- name: "@eslint/js",
49
- version: "9.31.0",
50
- description: "ESLint JavaScript language implementation",
51
- funding: "https://eslint.org/donate",
52
- main: "./src/index.js",
53
- types: "./types/index.d.ts",
54
- scripts: {
55
- "test:types": "tsc -p tests/types/tsconfig.json"
48
+ amd: {
49
+ define: false,
50
+ require: false
56
51
  },
57
- files: [
58
- "LICENSE",
59
- "README.md",
60
- "src",
61
- "types"
62
- ],
63
- publishConfig: {
64
- access: "public"
52
+ applescript: {
53
+ $: false,
54
+ Application: false,
55
+ Automation: false,
56
+ console: false,
57
+ delay: false,
58
+ Library: false,
59
+ ObjC: false,
60
+ ObjectSpecifier: false,
61
+ Path: false,
62
+ Progress: false,
63
+ Ref: false
65
64
  },
66
- repository: {
67
- type: "git",
68
- url: "https://github.com/eslint/eslint.git",
69
- directory: "packages/js"
70
- },
71
- homepage: "https://eslint.org",
72
- bugs: "https://github.com/eslint/eslint/issues/",
73
- keywords: [
74
- "javascript",
75
- "eslint-plugin",
76
- "eslint"
77
- ],
78
- license: "MIT",
79
- engines: {
80
- node: "^18.18.0 || ^20.9.0 || >=21.1.0"
81
- }
82
- };
83
- }
84
- });
85
-
86
- // node_modules/@eslint/js/src/configs/eslint-all.js
87
- var require_eslint_all = __commonJS({
88
- "node_modules/@eslint/js/src/configs/eslint-all.js"(exports, module) {
89
- "use strict";
90
- module.exports = Object.freeze({
91
- "rules": {
92
- "accessor-pairs": "error",
93
- "array-callback-return": "error",
94
- "arrow-body-style": "error",
95
- "block-scoped-var": "error",
96
- "camelcase": "error",
97
- "capitalized-comments": "error",
98
- "class-methods-use-this": "error",
99
- "complexity": "error",
100
- "consistent-return": "error",
101
- "consistent-this": "error",
102
- "constructor-super": "error",
103
- "curly": "error",
104
- "default-case": "error",
105
- "default-case-last": "error",
106
- "default-param-last": "error",
107
- "dot-notation": "error",
108
- "eqeqeq": "error",
109
- "for-direction": "error",
110
- "func-name-matching": "error",
111
- "func-names": "error",
112
- "func-style": "error",
113
- "getter-return": "error",
114
- "grouped-accessor-pairs": "error",
115
- "guard-for-in": "error",
116
- "id-denylist": "error",
117
- "id-length": "error",
118
- "id-match": "error",
119
- "init-declarations": "error",
120
- "logical-assignment-operators": "error",
121
- "max-classes-per-file": "error",
122
- "max-depth": "error",
123
- "max-lines": "error",
124
- "max-lines-per-function": "error",
125
- "max-nested-callbacks": "error",
126
- "max-params": "error",
127
- "max-statements": "error",
128
- "new-cap": "error",
129
- "no-alert": "error",
130
- "no-array-constructor": "error",
131
- "no-async-promise-executor": "error",
132
- "no-await-in-loop": "error",
133
- "no-bitwise": "error",
134
- "no-caller": "error",
135
- "no-case-declarations": "error",
136
- "no-class-assign": "error",
137
- "no-compare-neg-zero": "error",
138
- "no-cond-assign": "error",
139
- "no-console": "error",
140
- "no-const-assign": "error",
141
- "no-constant-binary-expression": "error",
142
- "no-constant-condition": "error",
143
- "no-constructor-return": "error",
144
- "no-continue": "error",
145
- "no-control-regex": "error",
146
- "no-debugger": "error",
147
- "no-delete-var": "error",
148
- "no-div-regex": "error",
149
- "no-dupe-args": "error",
150
- "no-dupe-class-members": "error",
151
- "no-dupe-else-if": "error",
152
- "no-dupe-keys": "error",
153
- "no-duplicate-case": "error",
154
- "no-duplicate-imports": "error",
155
- "no-else-return": "error",
156
- "no-empty": "error",
157
- "no-empty-character-class": "error",
158
- "no-empty-function": "error",
159
- "no-empty-pattern": "error",
160
- "no-empty-static-block": "error",
161
- "no-eq-null": "error",
162
- "no-eval": "error",
163
- "no-ex-assign": "error",
164
- "no-extend-native": "error",
165
- "no-extra-bind": "error",
166
- "no-extra-boolean-cast": "error",
167
- "no-extra-label": "error",
168
- "no-fallthrough": "error",
169
- "no-func-assign": "error",
170
- "no-global-assign": "error",
171
- "no-implicit-coercion": "error",
172
- "no-implicit-globals": "error",
173
- "no-implied-eval": "error",
174
- "no-import-assign": "error",
175
- "no-inline-comments": "error",
176
- "no-inner-declarations": "error",
177
- "no-invalid-regexp": "error",
178
- "no-invalid-this": "error",
179
- "no-irregular-whitespace": "error",
180
- "no-iterator": "error",
181
- "no-label-var": "error",
182
- "no-labels": "error",
183
- "no-lone-blocks": "error",
184
- "no-lonely-if": "error",
185
- "no-loop-func": "error",
186
- "no-loss-of-precision": "error",
187
- "no-magic-numbers": "error",
188
- "no-misleading-character-class": "error",
189
- "no-multi-assign": "error",
190
- "no-multi-str": "error",
191
- "no-negated-condition": "error",
192
- "no-nested-ternary": "error",
193
- "no-new": "error",
194
- "no-new-func": "error",
195
- "no-new-native-nonconstructor": "error",
196
- "no-new-wrappers": "error",
197
- "no-nonoctal-decimal-escape": "error",
198
- "no-obj-calls": "error",
199
- "no-object-constructor": "error",
200
- "no-octal": "error",
201
- "no-octal-escape": "error",
202
- "no-param-reassign": "error",
203
- "no-plusplus": "error",
204
- "no-promise-executor-return": "error",
205
- "no-proto": "error",
206
- "no-prototype-builtins": "error",
207
- "no-redeclare": "error",
208
- "no-regex-spaces": "error",
209
- "no-restricted-exports": "error",
210
- "no-restricted-globals": "error",
211
- "no-restricted-imports": "error",
212
- "no-restricted-properties": "error",
213
- "no-restricted-syntax": "error",
214
- "no-return-assign": "error",
215
- "no-script-url": "error",
216
- "no-self-assign": "error",
217
- "no-self-compare": "error",
218
- "no-sequences": "error",
219
- "no-setter-return": "error",
220
- "no-shadow": "error",
221
- "no-shadow-restricted-names": "error",
222
- "no-sparse-arrays": "error",
223
- "no-template-curly-in-string": "error",
224
- "no-ternary": "error",
225
- "no-this-before-super": "error",
226
- "no-throw-literal": "error",
227
- "no-unassigned-vars": "error",
228
- "no-undef": "error",
229
- "no-undef-init": "error",
230
- "no-undefined": "error",
231
- "no-underscore-dangle": "error",
232
- "no-unexpected-multiline": "error",
233
- "no-unmodified-loop-condition": "error",
234
- "no-unneeded-ternary": "error",
235
- "no-unreachable": "error",
236
- "no-unreachable-loop": "error",
237
- "no-unsafe-finally": "error",
238
- "no-unsafe-negation": "error",
239
- "no-unsafe-optional-chaining": "error",
240
- "no-unused-expressions": "error",
241
- "no-unused-labels": "error",
242
- "no-unused-private-class-members": "error",
243
- "no-unused-vars": "error",
244
- "no-use-before-define": "error",
245
- "no-useless-assignment": "error",
246
- "no-useless-backreference": "error",
247
- "no-useless-call": "error",
248
- "no-useless-catch": "error",
249
- "no-useless-computed-key": "error",
250
- "no-useless-concat": "error",
251
- "no-useless-constructor": "error",
252
- "no-useless-escape": "error",
253
- "no-useless-rename": "error",
254
- "no-useless-return": "error",
255
- "no-var": "error",
256
- "no-void": "error",
257
- "no-warning-comments": "error",
258
- "no-with": "error",
259
- "object-shorthand": "error",
260
- "one-var": "error",
261
- "operator-assignment": "error",
262
- "prefer-arrow-callback": "error",
263
- "prefer-const": "error",
264
- "prefer-destructuring": "error",
265
- "prefer-exponentiation-operator": "error",
266
- "prefer-named-capture-group": "error",
267
- "prefer-numeric-literals": "error",
268
- "prefer-object-has-own": "error",
269
- "prefer-object-spread": "error",
270
- "prefer-promise-reject-errors": "error",
271
- "prefer-regex-literals": "error",
272
- "prefer-rest-params": "error",
273
- "prefer-spread": "error",
274
- "prefer-template": "error",
275
- "radix": "error",
276
- "require-atomic-updates": "error",
277
- "require-await": "error",
278
- "require-unicode-regexp": "error",
279
- "require-yield": "error",
280
- "sort-imports": "error",
281
- "sort-keys": "error",
282
- "sort-vars": "error",
283
- "strict": "error",
284
- "symbol-description": "error",
285
- "unicode-bom": "error",
286
- "use-isnan": "error",
287
- "valid-typeof": "error",
288
- "vars-on-top": "error",
289
- "yoda": "error"
290
- }
291
- });
292
- }
293
- });
294
-
295
- // node_modules/@eslint/js/src/configs/eslint-recommended.js
296
- var require_eslint_recommended = __commonJS({
297
- "node_modules/@eslint/js/src/configs/eslint-recommended.js"(exports, module) {
298
- "use strict";
299
- module.exports = Object.freeze({
300
- rules: Object.freeze({
301
- "constructor-super": "error",
302
- "for-direction": "error",
303
- "getter-return": "error",
304
- "no-async-promise-executor": "error",
305
- "no-case-declarations": "error",
306
- "no-class-assign": "error",
307
- "no-compare-neg-zero": "error",
308
- "no-cond-assign": "error",
309
- "no-const-assign": "error",
310
- "no-constant-binary-expression": "error",
311
- "no-constant-condition": "error",
312
- "no-control-regex": "error",
313
- "no-debugger": "error",
314
- "no-delete-var": "error",
315
- "no-dupe-args": "error",
316
- "no-dupe-class-members": "error",
317
- "no-dupe-else-if": "error",
318
- "no-dupe-keys": "error",
319
- "no-duplicate-case": "error",
320
- "no-empty": "error",
321
- "no-empty-character-class": "error",
322
- "no-empty-pattern": "error",
323
- "no-empty-static-block": "error",
324
- "no-ex-assign": "error",
325
- "no-extra-boolean-cast": "error",
326
- "no-fallthrough": "error",
327
- "no-func-assign": "error",
328
- "no-global-assign": "error",
329
- "no-import-assign": "error",
330
- "no-invalid-regexp": "error",
331
- "no-irregular-whitespace": "error",
332
- "no-loss-of-precision": "error",
333
- "no-misleading-character-class": "error",
334
- "no-new-native-nonconstructor": "error",
335
- "no-nonoctal-decimal-escape": "error",
336
- "no-obj-calls": "error",
337
- "no-octal": "error",
338
- "no-prototype-builtins": "error",
339
- "no-redeclare": "error",
340
- "no-regex-spaces": "error",
341
- "no-self-assign": "error",
342
- "no-setter-return": "error",
343
- "no-shadow-restricted-names": "error",
344
- "no-sparse-arrays": "error",
345
- "no-this-before-super": "error",
346
- "no-undef": "error",
347
- "no-unexpected-multiline": "error",
348
- "no-unreachable": "error",
349
- "no-unsafe-finally": "error",
350
- "no-unsafe-negation": "error",
351
- "no-unsafe-optional-chaining": "error",
352
- "no-unused-labels": "error",
353
- "no-unused-private-class-members": "error",
354
- "no-unused-vars": "error",
355
- "no-useless-backreference": "error",
356
- "no-useless-catch": "error",
357
- "no-useless-escape": "error",
358
- "no-with": "error",
359
- "require-yield": "error",
360
- "use-isnan": "error",
361
- "valid-typeof": "error"
362
- })
363
- });
364
- }
365
- });
366
-
367
- // node_modules/@eslint/js/src/index.js
368
- var require_src = __commonJS({
369
- "node_modules/@eslint/js/src/index.js"(exports, module) {
370
- "use strict";
371
- var { name: name2, version: version2 } = require_package();
372
- module.exports = {
373
- meta: {
374
- name: name2,
375
- version: version2
376
- },
377
- configs: {
378
- all: require_eslint_all(),
379
- recommended: require_eslint_recommended()
380
- }
381
- };
382
- }
383
- });
384
-
385
- // node_modules/globals/globals.json
386
- var require_globals = __commonJS({
387
- "node_modules/globals/globals.json"(exports, module) {
388
- module.exports = {
389
- amd: {
390
- define: false,
391
- require: false
392
- },
393
- applescript: {
394
- $: false,
395
- Application: false,
396
- Automation: false,
397
- console: false,
398
- delay: false,
399
- Library: false,
400
- ObjC: false,
401
- ObjectSpecifier: false,
402
- Path: false,
403
- Progress: false,
404
- Ref: false
65
+ astro: {
66
+ Astro: false
405
67
  },
406
68
  atomtest: {
407
69
  advanceClock: false,
@@ -616,6 +278,7 @@ var require_globals = __commonJS({
616
278
  DeviceOrientationEvent: false,
617
279
  devicePixelRatio: false,
618
280
  DevicePosture: false,
281
+ DigitalCredential: false,
619
282
  dispatchEvent: false,
620
283
  DisposableStack: false,
621
284
  document: false,
@@ -843,6 +506,7 @@ var require_globals = __commonJS({
843
506
  IDBKeyRange: false,
844
507
  IDBObjectStore: false,
845
508
  IDBOpenDBRequest: false,
509
+ IDBRecord: false,
846
510
  IDBRequest: false,
847
511
  IDBTransaction: false,
848
512
  IDBVersionChangeEvent: false,
@@ -868,6 +532,7 @@ var require_globals = __commonJS({
868
532
  InputDeviceInfo: false,
869
533
  InputEvent: false,
870
534
  IntegrityViolationReportBody: false,
535
+ InterestEvent: false,
871
536
  IntersectionObserver: false,
872
537
  IntersectionObserverEntry: false,
873
538
  isSecureContext: false,
@@ -957,6 +622,7 @@ var require_globals = __commonJS({
957
622
  NavigationCurrentEntryChangeEvent: false,
958
623
  NavigationDestination: false,
959
624
  NavigationHistoryEntry: false,
625
+ NavigationPrecommitController: false,
960
626
  NavigationPreloadManager: false,
961
627
  NavigationTransition: false,
962
628
  navigator: false,
@@ -1287,6 +953,7 @@ var require_globals = __commonJS({
1287
953
  SpeechRecognition: false,
1288
954
  SpeechRecognitionErrorEvent: false,
1289
955
  SpeechRecognitionEvent: false,
956
+ SpeechRecognitionPhrase: false,
1290
957
  speechSynthesis: false,
1291
958
  SpeechSynthesis: false,
1292
959
  SpeechSynthesisErrorEvent: false,
@@ -2703,6 +2370,7 @@ var require_globals = __commonJS({
2703
2370
  DecompressionStream: false,
2704
2371
  DisposableStack: false,
2705
2372
  DOMException: false,
2373
+ ErrorEvent: false,
2706
2374
  Event: false,
2707
2375
  EventTarget: false,
2708
2376
  exports: true,
@@ -2711,6 +2379,7 @@ var require_globals = __commonJS({
2711
2379
  FormData: false,
2712
2380
  global: false,
2713
2381
  Headers: false,
2382
+ localStorage: false,
2714
2383
  MessageChannel: false,
2715
2384
  MessageEvent: false,
2716
2385
  MessagePort: false,
@@ -2736,9 +2405,11 @@ var require_globals = __commonJS({
2736
2405
  Request: false,
2737
2406
  require: false,
2738
2407
  Response: false,
2408
+ sessionStorage: false,
2739
2409
  setImmediate: false,
2740
2410
  setInterval: false,
2741
2411
  setTimeout: false,
2412
+ Storage: false,
2742
2413
  structuredClone: false,
2743
2414
  SubtleCrypto: false,
2744
2415
  SuppressedError: false,
@@ -2781,6 +2452,7 @@ var require_globals = __commonJS({
2781
2452
  DecompressionStream: false,
2782
2453
  DisposableStack: false,
2783
2454
  DOMException: false,
2455
+ ErrorEvent: false,
2784
2456
  Event: false,
2785
2457
  EventTarget: false,
2786
2458
  fetch: false,
@@ -2788,6 +2460,7 @@ var require_globals = __commonJS({
2788
2460
  FormData: false,
2789
2461
  global: false,
2790
2462
  Headers: false,
2463
+ localStorage: false,
2791
2464
  MessageChannel: false,
2792
2465
  MessageEvent: false,
2793
2466
  MessagePort: false,
@@ -2811,9 +2484,11 @@ var require_globals = __commonJS({
2811
2484
  ReadableStreamDefaultReader: false,
2812
2485
  Request: false,
2813
2486
  Response: false,
2487
+ sessionStorage: false,
2814
2488
  setImmediate: false,
2815
2489
  setInterval: false,
2816
2490
  setTimeout: false,
2491
+ Storage: false,
2817
2492
  structuredClone: false,
2818
2493
  SubtleCrypto: false,
2819
2494
  SuppressedError: false,
@@ -3061,6 +2736,7 @@ var require_globals = __commonJS({
3061
2736
  IDBKeyRange: false,
3062
2737
  IDBObjectStore: false,
3063
2738
  IDBOpenDBRequest: false,
2739
+ IDBRecord: false,
3064
2740
  IDBRequest: false,
3065
2741
  IDBTransaction: false,
3066
2742
  IDBVersionChangeEvent: false,
@@ -3248,12 +2924,14 @@ var require_globals = __commonJS({
3248
2924
  DecompressionStream: false,
3249
2925
  DisposableStack: false,
3250
2926
  DOMException: false,
2927
+ ErrorEvent: false,
3251
2928
  Event: false,
3252
2929
  EventTarget: false,
3253
2930
  fetch: false,
3254
2931
  File: false,
3255
2932
  FormData: false,
3256
2933
  Headers: false,
2934
+ localStorage: false,
3257
2935
  MessageChannel: false,
3258
2936
  MessageEvent: false,
3259
2937
  MessagePort: false,
@@ -3276,8 +2954,10 @@ var require_globals = __commonJS({
3276
2954
  ReadableStreamDefaultReader: false,
3277
2955
  Request: false,
3278
2956
  Response: false,
2957
+ sessionStorage: false,
3279
2958
  setInterval: false,
3280
2959
  setTimeout: false,
2960
+ Storage: false,
3281
2961
  structuredClone: false,
3282
2962
  SubtleCrypto: false,
3283
2963
  SuppressedError: false,
@@ -3332,6 +3012,15 @@ var require_globals = __commonJS({
3332
3012
  uniq: false,
3333
3013
  which: false
3334
3014
  },
3015
+ svelte: {
3016
+ $bindable: false,
3017
+ $derived: false,
3018
+ $effect: false,
3019
+ $host: false,
3020
+ $inspect: false,
3021
+ $props: false,
3022
+ $state: false
3023
+ },
3335
3024
  vitest: {
3336
3025
  afterAll: false,
3337
3026
  afterEach: false,
@@ -3351,6 +3040,15 @@ var require_globals = __commonJS({
3351
3040
  vi: false,
3352
3041
  vitest: false
3353
3042
  },
3043
+ vue: {
3044
+ defineEmits: false,
3045
+ defineExpose: false,
3046
+ defineModel: false,
3047
+ defineOptions: false,
3048
+ defineProps: false,
3049
+ defineSlots: false,
3050
+ withDefaults: false
3051
+ },
3354
3052
  webextensions: {
3355
3053
  browser: false,
3356
3054
  chrome: false,
@@ -3485,6 +3183,7 @@ var require_globals = __commonJS({
3485
3183
  IDBKeyRange: false,
3486
3184
  IDBObjectStore: false,
3487
3185
  IDBOpenDBRequest: false,
3186
+ IDBRecord: false,
3488
3187
  IDBRequest: false,
3489
3188
  IDBTransaction: false,
3490
3189
  IDBVersionChangeEvent: false,
@@ -3522,6 +3221,7 @@ var require_globals = __commonJS({
3522
3221
  onmessage: true,
3523
3222
  onmessageerror: true,
3524
3223
  onrejectionhandled: true,
3224
+ onrtctransform: true,
3525
3225
  onunhandledrejection: true,
3526
3226
  origin: false,
3527
3227
  Path2D: false,
@@ -3565,6 +3265,8 @@ var require_globals = __commonJS({
3565
3265
  RTCDataChannel: false,
3566
3266
  RTCEncodedAudioFrame: false,
3567
3267
  RTCEncodedVideoFrame: false,
3268
+ RTCRtpScriptTransformer: false,
3269
+ RTCTransformEvent: false,
3568
3270
  scheduler: false,
3569
3271
  Scheduler: false,
3570
3272
  SecurityPolicyViolationEvent: false,
@@ -3690,17 +3392,401 @@ var require_globals = __commonJS({
3690
3392
  }
3691
3393
  });
3692
3394
 
3693
- // node_modules/globals/index.js
3694
- var require_globals2 = __commonJS({
3695
- "node_modules/globals/index.js"(exports, module) {
3395
+ // node_modules/globals/index.js
3396
+ var require_globals2 = __commonJS({
3397
+ "node_modules/globals/index.js"(exports, module) {
3398
+ "use strict";
3399
+ module.exports = require_globals();
3400
+ }
3401
+ });
3402
+
3403
+ // node_modules/@eslint/js/package.json
3404
+ var require_package = __commonJS({
3405
+ "node_modules/@eslint/js/package.json"(exports, module) {
3406
+ module.exports = {
3407
+ name: "@eslint/js",
3408
+ version: "9.31.0",
3409
+ description: "ESLint JavaScript language implementation",
3410
+ funding: "https://eslint.org/donate",
3411
+ main: "./src/index.js",
3412
+ types: "./types/index.d.ts",
3413
+ scripts: {
3414
+ "test:types": "tsc -p tests/types/tsconfig.json"
3415
+ },
3416
+ files: [
3417
+ "LICENSE",
3418
+ "README.md",
3419
+ "src",
3420
+ "types"
3421
+ ],
3422
+ publishConfig: {
3423
+ access: "public"
3424
+ },
3425
+ repository: {
3426
+ type: "git",
3427
+ url: "https://github.com/eslint/eslint.git",
3428
+ directory: "packages/js"
3429
+ },
3430
+ homepage: "https://eslint.org",
3431
+ bugs: "https://github.com/eslint/eslint/issues/",
3432
+ keywords: [
3433
+ "javascript",
3434
+ "eslint-plugin",
3435
+ "eslint"
3436
+ ],
3437
+ license: "MIT",
3438
+ engines: {
3439
+ node: "^18.18.0 || ^20.9.0 || >=21.1.0"
3440
+ }
3441
+ };
3442
+ }
3443
+ });
3444
+
3445
+ // node_modules/@eslint/js/src/configs/eslint-all.js
3446
+ var require_eslint_all = __commonJS({
3447
+ "node_modules/@eslint/js/src/configs/eslint-all.js"(exports, module) {
3448
+ "use strict";
3449
+ module.exports = Object.freeze({
3450
+ "rules": {
3451
+ "accessor-pairs": "error",
3452
+ "array-callback-return": "error",
3453
+ "arrow-body-style": "error",
3454
+ "block-scoped-var": "error",
3455
+ "camelcase": "error",
3456
+ "capitalized-comments": "error",
3457
+ "class-methods-use-this": "error",
3458
+ "complexity": "error",
3459
+ "consistent-return": "error",
3460
+ "consistent-this": "error",
3461
+ "constructor-super": "error",
3462
+ "curly": "error",
3463
+ "default-case": "error",
3464
+ "default-case-last": "error",
3465
+ "default-param-last": "error",
3466
+ "dot-notation": "error",
3467
+ "eqeqeq": "error",
3468
+ "for-direction": "error",
3469
+ "func-name-matching": "error",
3470
+ "func-names": "error",
3471
+ "func-style": "error",
3472
+ "getter-return": "error",
3473
+ "grouped-accessor-pairs": "error",
3474
+ "guard-for-in": "error",
3475
+ "id-denylist": "error",
3476
+ "id-length": "error",
3477
+ "id-match": "error",
3478
+ "init-declarations": "error",
3479
+ "logical-assignment-operators": "error",
3480
+ "max-classes-per-file": "error",
3481
+ "max-depth": "error",
3482
+ "max-lines": "error",
3483
+ "max-lines-per-function": "error",
3484
+ "max-nested-callbacks": "error",
3485
+ "max-params": "error",
3486
+ "max-statements": "error",
3487
+ "new-cap": "error",
3488
+ "no-alert": "error",
3489
+ "no-array-constructor": "error",
3490
+ "no-async-promise-executor": "error",
3491
+ "no-await-in-loop": "error",
3492
+ "no-bitwise": "error",
3493
+ "no-caller": "error",
3494
+ "no-case-declarations": "error",
3495
+ "no-class-assign": "error",
3496
+ "no-compare-neg-zero": "error",
3497
+ "no-cond-assign": "error",
3498
+ "no-console": "error",
3499
+ "no-const-assign": "error",
3500
+ "no-constant-binary-expression": "error",
3501
+ "no-constant-condition": "error",
3502
+ "no-constructor-return": "error",
3503
+ "no-continue": "error",
3504
+ "no-control-regex": "error",
3505
+ "no-debugger": "error",
3506
+ "no-delete-var": "error",
3507
+ "no-div-regex": "error",
3508
+ "no-dupe-args": "error",
3509
+ "no-dupe-class-members": "error",
3510
+ "no-dupe-else-if": "error",
3511
+ "no-dupe-keys": "error",
3512
+ "no-duplicate-case": "error",
3513
+ "no-duplicate-imports": "error",
3514
+ "no-else-return": "error",
3515
+ "no-empty": "error",
3516
+ "no-empty-character-class": "error",
3517
+ "no-empty-function": "error",
3518
+ "no-empty-pattern": "error",
3519
+ "no-empty-static-block": "error",
3520
+ "no-eq-null": "error",
3521
+ "no-eval": "error",
3522
+ "no-ex-assign": "error",
3523
+ "no-extend-native": "error",
3524
+ "no-extra-bind": "error",
3525
+ "no-extra-boolean-cast": "error",
3526
+ "no-extra-label": "error",
3527
+ "no-fallthrough": "error",
3528
+ "no-func-assign": "error",
3529
+ "no-global-assign": "error",
3530
+ "no-implicit-coercion": "error",
3531
+ "no-implicit-globals": "error",
3532
+ "no-implied-eval": "error",
3533
+ "no-import-assign": "error",
3534
+ "no-inline-comments": "error",
3535
+ "no-inner-declarations": "error",
3536
+ "no-invalid-regexp": "error",
3537
+ "no-invalid-this": "error",
3538
+ "no-irregular-whitespace": "error",
3539
+ "no-iterator": "error",
3540
+ "no-label-var": "error",
3541
+ "no-labels": "error",
3542
+ "no-lone-blocks": "error",
3543
+ "no-lonely-if": "error",
3544
+ "no-loop-func": "error",
3545
+ "no-loss-of-precision": "error",
3546
+ "no-magic-numbers": "error",
3547
+ "no-misleading-character-class": "error",
3548
+ "no-multi-assign": "error",
3549
+ "no-multi-str": "error",
3550
+ "no-negated-condition": "error",
3551
+ "no-nested-ternary": "error",
3552
+ "no-new": "error",
3553
+ "no-new-func": "error",
3554
+ "no-new-native-nonconstructor": "error",
3555
+ "no-new-wrappers": "error",
3556
+ "no-nonoctal-decimal-escape": "error",
3557
+ "no-obj-calls": "error",
3558
+ "no-object-constructor": "error",
3559
+ "no-octal": "error",
3560
+ "no-octal-escape": "error",
3561
+ "no-param-reassign": "error",
3562
+ "no-plusplus": "error",
3563
+ "no-promise-executor-return": "error",
3564
+ "no-proto": "error",
3565
+ "no-prototype-builtins": "error",
3566
+ "no-redeclare": "error",
3567
+ "no-regex-spaces": "error",
3568
+ "no-restricted-exports": "error",
3569
+ "no-restricted-globals": "error",
3570
+ "no-restricted-imports": "error",
3571
+ "no-restricted-properties": "error",
3572
+ "no-restricted-syntax": "error",
3573
+ "no-return-assign": "error",
3574
+ "no-script-url": "error",
3575
+ "no-self-assign": "error",
3576
+ "no-self-compare": "error",
3577
+ "no-sequences": "error",
3578
+ "no-setter-return": "error",
3579
+ "no-shadow": "error",
3580
+ "no-shadow-restricted-names": "error",
3581
+ "no-sparse-arrays": "error",
3582
+ "no-template-curly-in-string": "error",
3583
+ "no-ternary": "error",
3584
+ "no-this-before-super": "error",
3585
+ "no-throw-literal": "error",
3586
+ "no-unassigned-vars": "error",
3587
+ "no-undef": "error",
3588
+ "no-undef-init": "error",
3589
+ "no-undefined": "error",
3590
+ "no-underscore-dangle": "error",
3591
+ "no-unexpected-multiline": "error",
3592
+ "no-unmodified-loop-condition": "error",
3593
+ "no-unneeded-ternary": "error",
3594
+ "no-unreachable": "error",
3595
+ "no-unreachable-loop": "error",
3596
+ "no-unsafe-finally": "error",
3597
+ "no-unsafe-negation": "error",
3598
+ "no-unsafe-optional-chaining": "error",
3599
+ "no-unused-expressions": "error",
3600
+ "no-unused-labels": "error",
3601
+ "no-unused-private-class-members": "error",
3602
+ "no-unused-vars": "error",
3603
+ "no-use-before-define": "error",
3604
+ "no-useless-assignment": "error",
3605
+ "no-useless-backreference": "error",
3606
+ "no-useless-call": "error",
3607
+ "no-useless-catch": "error",
3608
+ "no-useless-computed-key": "error",
3609
+ "no-useless-concat": "error",
3610
+ "no-useless-constructor": "error",
3611
+ "no-useless-escape": "error",
3612
+ "no-useless-rename": "error",
3613
+ "no-useless-return": "error",
3614
+ "no-var": "error",
3615
+ "no-void": "error",
3616
+ "no-warning-comments": "error",
3617
+ "no-with": "error",
3618
+ "object-shorthand": "error",
3619
+ "one-var": "error",
3620
+ "operator-assignment": "error",
3621
+ "prefer-arrow-callback": "error",
3622
+ "prefer-const": "error",
3623
+ "prefer-destructuring": "error",
3624
+ "prefer-exponentiation-operator": "error",
3625
+ "prefer-named-capture-group": "error",
3626
+ "prefer-numeric-literals": "error",
3627
+ "prefer-object-has-own": "error",
3628
+ "prefer-object-spread": "error",
3629
+ "prefer-promise-reject-errors": "error",
3630
+ "prefer-regex-literals": "error",
3631
+ "prefer-rest-params": "error",
3632
+ "prefer-spread": "error",
3633
+ "prefer-template": "error",
3634
+ "radix": "error",
3635
+ "require-atomic-updates": "error",
3636
+ "require-await": "error",
3637
+ "require-unicode-regexp": "error",
3638
+ "require-yield": "error",
3639
+ "sort-imports": "error",
3640
+ "sort-keys": "error",
3641
+ "sort-vars": "error",
3642
+ "strict": "error",
3643
+ "symbol-description": "error",
3644
+ "unicode-bom": "error",
3645
+ "use-isnan": "error",
3646
+ "valid-typeof": "error",
3647
+ "vars-on-top": "error",
3648
+ "yoda": "error"
3649
+ }
3650
+ });
3651
+ }
3652
+ });
3653
+
3654
+ // node_modules/@eslint/js/src/configs/eslint-recommended.js
3655
+ var require_eslint_recommended = __commonJS({
3656
+ "node_modules/@eslint/js/src/configs/eslint-recommended.js"(exports, module) {
3657
+ "use strict";
3658
+ module.exports = Object.freeze({
3659
+ rules: Object.freeze({
3660
+ "constructor-super": "error",
3661
+ "for-direction": "error",
3662
+ "getter-return": "error",
3663
+ "no-async-promise-executor": "error",
3664
+ "no-case-declarations": "error",
3665
+ "no-class-assign": "error",
3666
+ "no-compare-neg-zero": "error",
3667
+ "no-cond-assign": "error",
3668
+ "no-const-assign": "error",
3669
+ "no-constant-binary-expression": "error",
3670
+ "no-constant-condition": "error",
3671
+ "no-control-regex": "error",
3672
+ "no-debugger": "error",
3673
+ "no-delete-var": "error",
3674
+ "no-dupe-args": "error",
3675
+ "no-dupe-class-members": "error",
3676
+ "no-dupe-else-if": "error",
3677
+ "no-dupe-keys": "error",
3678
+ "no-duplicate-case": "error",
3679
+ "no-empty": "error",
3680
+ "no-empty-character-class": "error",
3681
+ "no-empty-pattern": "error",
3682
+ "no-empty-static-block": "error",
3683
+ "no-ex-assign": "error",
3684
+ "no-extra-boolean-cast": "error",
3685
+ "no-fallthrough": "error",
3686
+ "no-func-assign": "error",
3687
+ "no-global-assign": "error",
3688
+ "no-import-assign": "error",
3689
+ "no-invalid-regexp": "error",
3690
+ "no-irregular-whitespace": "error",
3691
+ "no-loss-of-precision": "error",
3692
+ "no-misleading-character-class": "error",
3693
+ "no-new-native-nonconstructor": "error",
3694
+ "no-nonoctal-decimal-escape": "error",
3695
+ "no-obj-calls": "error",
3696
+ "no-octal": "error",
3697
+ "no-prototype-builtins": "error",
3698
+ "no-redeclare": "error",
3699
+ "no-regex-spaces": "error",
3700
+ "no-self-assign": "error",
3701
+ "no-setter-return": "error",
3702
+ "no-shadow-restricted-names": "error",
3703
+ "no-sparse-arrays": "error",
3704
+ "no-this-before-super": "error",
3705
+ "no-undef": "error",
3706
+ "no-unexpected-multiline": "error",
3707
+ "no-unreachable": "error",
3708
+ "no-unsafe-finally": "error",
3709
+ "no-unsafe-negation": "error",
3710
+ "no-unsafe-optional-chaining": "error",
3711
+ "no-unused-labels": "error",
3712
+ "no-unused-private-class-members": "error",
3713
+ "no-unused-vars": "error",
3714
+ "no-useless-backreference": "error",
3715
+ "no-useless-catch": "error",
3716
+ "no-useless-escape": "error",
3717
+ "no-with": "error",
3718
+ "require-yield": "error",
3719
+ "use-isnan": "error",
3720
+ "valid-typeof": "error"
3721
+ })
3722
+ });
3723
+ }
3724
+ });
3725
+
3726
+ // node_modules/@eslint/js/src/index.js
3727
+ var require_src = __commonJS({
3728
+ "node_modules/@eslint/js/src/index.js"(exports, module) {
3696
3729
  "use strict";
3697
- module.exports = require_globals();
3730
+ var { name: name2, version: version2 } = require_package();
3731
+ module.exports = {
3732
+ meta: {
3733
+ name: name2,
3734
+ version: version2
3735
+ },
3736
+ configs: {
3737
+ all: require_eslint_all(),
3738
+ recommended: require_eslint_recommended()
3739
+ }
3740
+ };
3698
3741
  }
3699
3742
  });
3700
3743
 
3744
+ // src/alexPlugin.ts
3745
+ import packageJson from "eslint-plugin-package-json";
3746
+
3701
3747
  // package.json
3702
3748
  var name = "@alextheman/eslint-plugin";
3703
- var version = "2.4.1";
3749
+ var version = "2.6.0";
3750
+
3751
+ // src/configs/personal/testsBase.ts
3752
+ var import_globals = __toESM(require_globals2(), 1);
3753
+ var personalTestsBaseConfig = [
3754
+ {
3755
+ files: ["**/*.test.{js,ts}"],
3756
+ languageOptions: {
3757
+ globals: __spreadValues(__spreadValues(__spreadValues({}, import_globals.default.node), import_globals.default.browser), import_globals.default.vitest)
3758
+ },
3759
+ rules: {
3760
+ "no-restricted-globals": [
3761
+ "error",
3762
+ {
3763
+ message: "Do not use global describe function. Import test functions from vitest instead.",
3764
+ name: "describe"
3765
+ },
3766
+ {
3767
+ message: "Do not use global test function. Import test functions from vitest instead.",
3768
+ name: "test"
3769
+ },
3770
+ {
3771
+ message: "Do not use global expect function. Import test functions from vitest instead.",
3772
+ name: "expect"
3773
+ }
3774
+ ],
3775
+ "no-restricted-imports": [
3776
+ "error",
3777
+ {
3778
+ paths: [
3779
+ {
3780
+ message: "Use test functions from vitest instead.",
3781
+ name: "node:test"
3782
+ }
3783
+ ]
3784
+ }
3785
+ ]
3786
+ }
3787
+ }
3788
+ ];
3789
+ var testsBase_default = personalTestsBaseConfig;
3704
3790
 
3705
3791
  // src/configs/plugin/pluginBase.ts
3706
3792
  function createPluginBaseConfig(plugin) {
@@ -3735,70 +3821,31 @@ function createPluginTestsBaseConfig(plugin) {
3735
3821
  }
3736
3822
  ];
3737
3823
  }
3738
- var testsBase_default = createPluginTestsBaseConfig;
3824
+ var testsBase_default2 = createPluginTestsBaseConfig;
3739
3825
 
3740
3826
  // src/configs/combined/testsBase.ts
3741
3827
  function createCombinedTestsBaseConfig(plugin) {
3742
- return [
3743
- ...testsBase_default(plugin),
3744
- {
3745
- files: ["**/*.test.{js,ts}"],
3746
- rules: {
3747
- "no-restricted-globals": [
3748
- "error",
3749
- {
3750
- message: "Do not use global describe function. Import test functions from vitest instead.",
3751
- name: "describe"
3752
- },
3753
- {
3754
- message: "Do not use global test function. Import test functions from vitest instead.",
3755
- name: "test"
3756
- },
3757
- {
3758
- message: "Do not use global expect function. Import test functions from vitest instead.",
3759
- name: "expect"
3760
- }
3761
- ],
3762
- "no-restricted-imports": [
3763
- "error",
3764
- {
3765
- paths: [
3766
- {
3767
- message: "Use test functions from vitest instead.",
3768
- name: "node:test"
3769
- }
3770
- ]
3771
- }
3772
- ]
3773
- }
3774
- }
3775
- ];
3828
+ return [...testsBase_default2(plugin), ...testsBase_default];
3776
3829
  }
3777
- var testsBase_default2 = createCombinedTestsBaseConfig;
3830
+ var testsBase_default3 = createCombinedTestsBaseConfig;
3778
3831
 
3779
3832
  // src/configs/general/javaScriptBase.ts
3780
3833
  var import_js = __toESM(require_src(), 1);
3781
- var import_globals = __toESM(require_globals2(), 1);
3834
+ var import_globals2 = __toESM(require_globals2(), 1);
3782
3835
  import prettierConfig from "eslint-config-prettier";
3783
3836
  import importPlugin from "eslint-plugin-import";
3784
- import packageJson from "eslint-plugin-package-json";
3785
- import perfectionist from "eslint-plugin-perfectionist";
3786
- import prettierPlugin from "eslint-plugin-prettier";
3787
3837
  var javaScriptBase = [
3788
3838
  import_js.default.configs.recommended,
3789
3839
  prettierConfig,
3790
- packageJson.configs.recommended,
3791
3840
  {
3792
- files: ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx", "!package.json"],
3841
+ files: ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx"],
3793
3842
  ignores: ["dist"],
3794
3843
  languageOptions: {
3795
- globals: __spreadValues(__spreadValues({}, import_globals.default.node), import_globals.default.browser)
3844
+ globals: __spreadValues(__spreadValues({}, import_globals2.default.node), import_globals2.default.browser)
3796
3845
  },
3797
3846
  name: "@alextheman/eslint-config-javascript-base",
3798
3847
  plugins: {
3799
- import: importPlugin,
3800
- perfectionist,
3801
- prettier: prettierPlugin
3848
+ import: importPlugin
3802
3849
  },
3803
3850
  rules: {
3804
3851
  eqeqeq: "error",
@@ -3831,37 +3878,7 @@ var javaScriptBase = [
3831
3878
  ],
3832
3879
  "no-useless-rename": "error",
3833
3880
  "no-useless-return": "error",
3834
- "perfectionist/sort-exports": [
3835
- "error",
3836
- {
3837
- customGroups: [],
3838
- fallbackSort: { type: "natural" },
3839
- groups: ["value-export", "type-export"],
3840
- ignoreCase: true,
3841
- newlinesBetween: 1,
3842
- order: "asc",
3843
- partitionByComment: false,
3844
- partitionByNewLine: false,
3845
- specialCharacters: "keep",
3846
- type: "alphabetical"
3847
- }
3848
- ],
3849
- "perfectionist/sort-imports": [
3850
- "error",
3851
- {
3852
- groups: ["type", "builtin", "external", "internal", "object"],
3853
- ignoreCase: true,
3854
- internalPattern: ["^src/.*"],
3855
- newlinesBetween: 1,
3856
- order: "asc",
3857
- partitionByComment: false,
3858
- partitionByNewLine: false,
3859
- specialCharacters: "keep",
3860
- type: "alphabetical"
3861
- }
3862
- ],
3863
- "prefer-const": "error",
3864
- "sort-vars": "error"
3881
+ "prefer-const": "error"
3865
3882
  },
3866
3883
  settings: {
3867
3884
  "import/resolver": {
@@ -3872,12 +3889,18 @@ var javaScriptBase = [
3872
3889
  ];
3873
3890
  var javaScriptBase_default = javaScriptBase;
3874
3891
 
3875
- // src/configs/combined/javaScriptBase.ts
3876
- function createCombinedJavaScriptBaseConfig(plugin) {
3892
+ // src/configs/personal/javaScriptBase.ts
3893
+ import perfectionist from "eslint-plugin-perfectionist";
3894
+ import prettierPlugin from "eslint-plugin-prettier";
3895
+ function createPersonalJavaScriptBaseConfig(plugin) {
3877
3896
  return [
3878
- ...pluginBase_default(plugin),
3879
- ...javaScriptBase_default,
3880
3897
  {
3898
+ files: ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx"],
3899
+ plugins: {
3900
+ "@alextheman": plugin,
3901
+ perfectionist,
3902
+ prettier: prettierPlugin
3903
+ },
3881
3904
  rules: {
3882
3905
  "@alextheman/no-relative-imports": "error",
3883
3906
  "arrow-body-style": ["error", "always"],
@@ -3886,19 +3909,59 @@ function createCombinedJavaScriptBaseConfig(plugin) {
3886
3909
  "no-else-return": "error",
3887
3910
  "no-implicit-coercion": ["error", { allow: ["!!"] }],
3888
3911
  "operator-assignment": ["error", "always"],
3912
+ "perfectionist/sort-exports": [
3913
+ "error",
3914
+ {
3915
+ customGroups: [],
3916
+ fallbackSort: { type: "natural" },
3917
+ groups: ["value-export", "type-export"],
3918
+ ignoreCase: true,
3919
+ newlinesBetween: 1,
3920
+ order: "asc",
3921
+ partitionByComment: false,
3922
+ partitionByNewLine: false,
3923
+ specialCharacters: "keep",
3924
+ type: "alphabetical"
3925
+ }
3926
+ ],
3927
+ "perfectionist/sort-imports": [
3928
+ "error",
3929
+ {
3930
+ groups: ["type", "builtin", "external", "internal", "object"],
3931
+ ignoreCase: true,
3932
+ internalPattern: ["^src/.*"],
3933
+ newlinesBetween: 1,
3934
+ order: "asc",
3935
+ partitionByComment: false,
3936
+ partitionByNewLine: false,
3937
+ specialCharacters: "keep",
3938
+ type: "alphabetical"
3939
+ }
3940
+ ],
3889
3941
  "prefer-arrow-callback": ["error", { allowNamedFunctions: false }],
3890
3942
  "prefer-destructuring": "error",
3891
3943
  "prefer-template": "error",
3892
- "prettier/prettier": ["warn", prettierRules_default]
3944
+ "prettier/prettier": ["warn", prettierRules_default],
3945
+ "sort-vars": "error"
3893
3946
  }
3894
- },
3895
- ...testsBase_default2(plugin)
3947
+ }
3948
+ ];
3949
+ }
3950
+ var javaScriptBase_default2 = createPersonalJavaScriptBaseConfig;
3951
+
3952
+ // src/configs/combined/javaScriptBase.ts
3953
+ function createCombinedJavaScriptBaseConfig(plugin) {
3954
+ return [
3955
+ ...pluginBase_default(plugin),
3956
+ ...javaScriptBase_default,
3957
+ ...javaScriptBase_default2(plugin),
3958
+ ...testsBase_default3(plugin)
3896
3959
  ];
3897
3960
  }
3898
- var javaScriptBase_default2 = createCombinedJavaScriptBaseConfig;
3961
+ var javaScriptBase_default3 = createCombinedJavaScriptBaseConfig;
3899
3962
 
3900
3963
  // src/configs/general/reactBase.ts
3901
- var import_globals2 = __toESM(require_globals2(), 1);
3964
+ var import_globals3 = __toESM(require_globals2(), 1);
3902
3965
  import jsxA11y from "eslint-plugin-jsx-a11y";
3903
3966
  import reactPlugin from "eslint-plugin-react";
3904
3967
  import reactHooks from "eslint-plugin-react-hooks";
@@ -3910,7 +3973,7 @@ var reactBase = [
3910
3973
  {
3911
3974
  languageOptions: {
3912
3975
  ecmaVersion: 2020,
3913
- globals: import_globals2.default.browser,
3976
+ globals: import_globals3.default.browser,
3914
3977
  parserOptions: {
3915
3978
  ecmaFeatures: {
3916
3979
  jsx: true
@@ -3943,32 +4006,51 @@ var reactBase = [
3943
4006
  ];
3944
4007
  var reactBase_default = reactBase;
3945
4008
 
3946
- // src/configs/combined/reactBase.ts
3947
- function createCombinedReactBaseConfig(plugin) {
3948
- return [
3949
- ...pluginBase_default(plugin),
3950
- ...reactBase_default,
3951
- {
3952
- rules: {
3953
- "no-restricted-imports": [
3954
- "error",
3955
- {
3956
- patterns: [
3957
- {
3958
- message: 'Please use `import Component from "@mui/[package]/Component"` instead. See https://mui.com/material-ui/guides/minimizing-bundle-size/ for more information.',
3959
- regex: "^@mui/[^/]+$"
3960
- }
3961
- ]
3962
- }
3963
- ],
3964
- "react-hooks/exhaustive-deps": "off",
3965
- "react-refresh/only-export-components": "off",
3966
- "react/jsx-boolean-value": "error"
4009
+ // src/configs/personal/reactBase.ts
4010
+ var import_globals4 = __toESM(require_globals2(), 1);
4011
+ import reactPlugin2 from "eslint-plugin-react";
4012
+ import reactHooks2 from "eslint-plugin-react-hooks";
4013
+ import reactRefresh2 from "eslint-plugin-react-refresh";
4014
+ var personalReactBaseConfig = [
4015
+ {
4016
+ languageOptions: {
4017
+ ecmaVersion: 2020,
4018
+ globals: import_globals4.default.browser,
4019
+ parserOptions: {
4020
+ ecmaFeatures: {
4021
+ jsx: true
4022
+ }
3967
4023
  }
4024
+ },
4025
+ name: "@alextheman/eslint-config-react-base",
4026
+ plugins: {
4027
+ react: reactPlugin2,
4028
+ "react-hooks": reactHooks2,
4029
+ "react-refresh": reactRefresh2
4030
+ },
4031
+ rules: {
4032
+ "no-restricted-imports": [
4033
+ "error",
4034
+ {
4035
+ patterns: [
4036
+ {
4037
+ message: 'Please use `import Component from "@mui/[package]/Component"` instead. See https://mui.com/material-ui/guides/minimizing-bundle-size/ for more information.',
4038
+ regex: "^@mui/[^/]+$"
4039
+ }
4040
+ ]
4041
+ }
4042
+ ],
4043
+ "react-hooks/exhaustive-deps": "off",
4044
+ "react-refresh/only-export-components": "off",
4045
+ "react/jsx-boolean-value": "error"
3968
4046
  }
3969
- ];
3970
- }
3971
- var reactBase_default2 = createCombinedReactBaseConfig;
4047
+ }
4048
+ ];
4049
+ var reactBase_default2 = personalReactBaseConfig;
4050
+
4051
+ // src/configs/combined/reactBase.ts
4052
+ var combinedReactBaseConfig = [...reactBase_default, ...reactBase_default2];
4053
+ var reactBase_default3 = combinedReactBaseConfig;
3972
4054
 
3973
4055
  // src/configs/general/prettierRules.ts
3974
4056
  var prettierRules = {
@@ -3999,8 +4081,6 @@ var typeScriptBase = [
3999
4081
  "@typescript-eslint/consistent-type-imports": "error",
4000
4082
  "@typescript-eslint/explicit-member-accessibility": "error",
4001
4083
  "@typescript-eslint/no-deprecated": "warn",
4002
- // Explicit any can be helpful sometimes, so it's not worth erroring on every single one.
4003
- "@typescript-eslint/no-explicit-any": "off",
4004
4084
  "@typescript-eslint/no-redeclare": ["error", { ignoreDeclarationMerge: true }],
4005
4085
  "@typescript-eslint/no-unused-vars": [
4006
4086
  "error",
@@ -4027,35 +4107,198 @@ var typeScriptBase = [
4027
4107
  ];
4028
4108
  var typeScriptBase_default = typeScriptBase;
4029
4109
 
4030
- // src/configs/combined/typeScriptBase.ts
4031
- function createCombinedTypeScriptBaseConfig(plugin) {
4110
+ // src/configs/personal/eslintPlugin.ts
4111
+ function createPersonalEslintPluginConfig(plugin) {
4032
4112
  return [
4033
- ...pluginBase_default(plugin),
4034
- ...typeScriptBase_default,
4035
4113
  {
4036
- files: ["**/*.ts", "**/*.tsx", "!package.json"],
4114
+ plugins: {
4115
+ "@alextheman": plugin
4116
+ },
4117
+ rules: {
4118
+ // When we pass the plugin into the config creator functions from the index, there's no guarantee that the configs will already be
4119
+ // 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
4120
+ // another creator function directly from the creator function should you need to refer to another config in the newly added config. */
4121
+ "@alextheman/no-plugin-configs-access-from-src-configs": "error"
4122
+ }
4123
+ },
4124
+ {
4125
+ // 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
4126
+ // as well to make it easier to compare against the file directory.
4127
+ files: ["src/rules/index.ts", "src/configs/**"],
4128
+ rules: {
4129
+ "perfectionist/sort-objects": [
4130
+ "error",
4131
+ {
4132
+ customGroups: [],
4133
+ destructuredObjects: true,
4134
+ fallbackSort: { type: "unsorted" },
4135
+ groups: [],
4136
+ ignoreCase: true,
4137
+ ignorePattern: [],
4138
+ newlinesBetween: "ignore",
4139
+ objectDeclarations: true,
4140
+ order: "asc",
4141
+ partitionByComment: false,
4142
+ partitionByNewLine: false,
4143
+ specialCharacters: "keep",
4144
+ styledComponents: true,
4145
+ type: "alphabetical",
4146
+ useConfigurationIf: {}
4147
+ }
4148
+ ]
4149
+ }
4150
+ }
4151
+ ];
4152
+ }
4153
+ var eslintPlugin_default = createPersonalEslintPluginConfig;
4154
+
4155
+ // src/configs/personal/neurosongsBackEnd.ts
4156
+ var neurosongsBackEndConfig = [
4157
+ {
4158
+ rules: {
4159
+ "no-restricted-imports": [
4160
+ "error",
4161
+ {
4162
+ paths: [
4163
+ {
4164
+ importNames: ["setPrismaClient"],
4165
+ message: "Do not attempt to reset the Prisma Client outside setup files.",
4166
+ // Do not allow manual setting of the current PrismaClient outside of the database files or setup file.
4167
+ name: "src/database/client"
4168
+ },
4169
+ {
4170
+ message: "Do not use the generated Prisma types. Use the types exported from @neurosongs/types instead.",
4171
+ // Do not allow imports from the generated types from PrismaClient. Instead use the processed Zod types from @neurosongs/types
4172
+ name: "@neurosongs/prisma-client/types"
4173
+ },
4174
+ {
4175
+ importNames: ["PrismaClient"],
4176
+ message: "Please use the PrismaClient from @neurosongs/types instead.",
4177
+ // 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.
4178
+ name: "@neurosongs/prisma-client/prisma"
4179
+ }
4180
+ ]
4181
+ }
4182
+ ]
4183
+ }
4184
+ },
4185
+ {
4186
+ files: ["src/database/**/*.ts", "tests/test-utilities/setup.ts"],
4187
+ rules: {
4188
+ // Setup files should be able to set the PrismaClient and use the regular PrismaClient from @neurosongs/prisma-client/prisma.
4189
+ "no-restricted-imports": "off"
4190
+ }
4191
+ },
4192
+ {
4193
+ files: ["src/server/routers/errors.ts", "src/server/validators/**/*.ts"],
4194
+ rules: {
4195
+ /* Function declarations in these files need to be arrow functions so we can type the whole signature
4196
+ using the Express types. */
4197
+ "func-style": ["error", "expression", { allowArrowFunctions: true }]
4198
+ }
4199
+ }
4200
+ ];
4201
+ var neurosongsBackEnd_default = neurosongsBackEndConfig;
4202
+
4203
+ // src/configs/personal/neurosongsFrontEnd.ts
4204
+ var neurosongsFrontEndConfig = [
4205
+ {
4206
+ rules: {
4207
+ "no-restricted-imports": [
4208
+ "error",
4209
+ {
4210
+ paths: [
4211
+ {
4212
+ importNames: ["PrismaClient"],
4213
+ message: "Do not use the Prisma Client directly in the front-end. Query an endpoint from the back-end instead.",
4214
+ // Disable the PrismaClient from @neurosongs/types for the same reason as above.
4215
+ name: "@neurosongs/types"
4216
+ },
4217
+ {
4218
+ importNames: ["LoaderProvider"],
4219
+ message: "Use the internal LoaderProvider from src/components/LoaderProvider instead.",
4220
+ /* Disable use of the LoaderProvider from @alextheman/components since Neurosongs provides its own LoaderProvider that wraps around
4221
+ the LoaderProvider from components, which provides a more suitable default errorComponent for Neurosongs-specific errors. */
4222
+ name: "@alextheman/components"
4223
+ },
4224
+ {
4225
+ importNames: ["Loader"],
4226
+ message: "Use the internal Loader from src/components/Loader instead.",
4227
+ // Disable Loader from @alextheman/components for same reasons as above
4228
+ name: "@alextheman/components"
4229
+ }
4230
+ ],
4231
+ patterns: [
4232
+ {
4233
+ /* Direct database queries from the front-end using the Prisma Client is generally bad practice, since
4234
+ in theory, anyone with a modified version of the front-end, in a version that can query the database directly, can
4235
+ send any sort of query, including ones that mutate data. It's a lot safer to keep database logic purely in the
4236
+ back-end so that we can allow database writes in a controlled way. */
4237
+ group: ["@neurosongs/prisma-client"],
4238
+ message: "Do not use the Prisma Client directly in the front-end. Query an endpoint from the back-end instead."
4239
+ }
4240
+ ]
4241
+ }
4242
+ ]
4243
+ }
4244
+ }
4245
+ ];
4246
+ var neurosongsFrontEnd_default = neurosongsFrontEndConfig;
4247
+
4248
+ // src/configs/personal/typeScriptBase.ts
4249
+ import tsparser2 from "@typescript-eslint/parser";
4250
+ import tseslint2 from "typescript-eslint";
4251
+ function createPersonalTypeScriptBaseConfig(plugin) {
4252
+ return [
4253
+ ...tseslint2.configs.recommended,
4254
+ {
4255
+ files: ["**/*.ts", "**/*.tsx"],
4256
+ languageOptions: {
4257
+ parser: tsparser2,
4258
+ parserOptions: {
4259
+ ecmaVersion: "latest",
4260
+ projectService: true,
4261
+ sourceType: "module",
4262
+ tsconfigRootDir: process.cwd()
4263
+ }
4264
+ },
4265
+ plugins: {
4266
+ "@alextheman": plugin
4267
+ },
4037
4268
  rules: {
4038
4269
  "@alextheman/standardise-error-messages": "error",
4039
4270
  "@typescript-eslint/array-type": ["error", { default: "array" }],
4040
4271
  "@typescript-eslint/consistent-type-assertions": ["error", { assertionStyle: "as" }],
4041
4272
  "@typescript-eslint/consistent-type-definitions": "error",
4042
4273
  "@typescript-eslint/dot-notation": "error",
4043
- "@typescript-eslint/method-signature-style": ["error", "property"]
4274
+ "@typescript-eslint/method-signature-style": ["error", "property"],
4275
+ // Explicit any can be helpful sometimes, so it's not worth erroring on every single one.
4276
+ "@typescript-eslint/no-explicit-any": "off"
4044
4277
  }
4045
4278
  }
4046
4279
  ];
4047
4280
  }
4048
- var typeScriptBase_default2 = createCombinedTypeScriptBaseConfig;
4281
+ var typeScriptBase_default2 = createPersonalTypeScriptBaseConfig;
4282
+
4283
+ // src/configs/combined/typeScriptBase.ts
4284
+ function createCombinedTypeScriptBaseConfig(plugin) {
4285
+ return [
4286
+ ...javaScriptBase_default3(plugin),
4287
+ ...typeScriptBase_default,
4288
+ ...typeScriptBase_default2(plugin)
4289
+ ];
4290
+ }
4291
+ var typeScriptBase_default3 = createCombinedTypeScriptBaseConfig;
4049
4292
 
4050
4293
  // src/configs/combined/typeScriptReactBase.ts
4051
4294
  function createCombinedTypeScriptReactBaseConfig(plugin) {
4052
- return [...typeScriptBase_default2(plugin), ...reactBase_default2(plugin)];
4295
+ return [...typeScriptBase_default3(plugin), ...reactBase_default3];
4053
4296
  }
4054
4297
  var typeScriptReactBase_default = createCombinedTypeScriptReactBaseConfig;
4055
4298
 
4056
4299
  // src/configs/combined/javaScriptReactBase.ts
4057
4300
  function createCombinedJavaScriptReactBaseConfig(plugin) {
4058
- return [...javaScriptBase_default2(plugin), ...reactBase_default2(plugin)];
4301
+ return [...javaScriptBase_default3(plugin), ...reactBase_default3];
4059
4302
  }
4060
4303
  var javaScriptReactBase_default = createCombinedJavaScriptReactBaseConfig;
4061
4304
 
@@ -4683,15 +4926,36 @@ alexPlugin.configs = createPluginConfigs_default({
4683
4926
  },
4684
4927
  plugin: {
4685
4928
  base: pluginBase_default(alexPlugin),
4686
- tests: testsBase_default(alexPlugin)
4929
+ tests: testsBase_default2(alexPlugin)
4687
4930
  },
4688
- combined: {
4931
+ personal: {
4689
4932
  javaScript: javaScriptBase_default2(alexPlugin),
4690
4933
  typeScript: typeScriptBase_default2(alexPlugin),
4691
- react: reactBase_default2(alexPlugin),
4692
- tests: testsBase_default2(alexPlugin),
4693
- typeScriptReact: typeScriptReactBase_default(alexPlugin),
4694
- javaScriptReact: javaScriptReactBase_default(alexPlugin)
4934
+ react: reactBase_default2,
4935
+ tests: testsBase_default,
4936
+ eslintPlugin: eslintPlugin_default(alexPlugin),
4937
+ neurosongsBackEnd: neurosongsBackEnd_default,
4938
+ neursongsFrontEnd: neurosongsFrontEnd_default
4939
+ },
4940
+ combined: {
4941
+ javaScript: [
4942
+ ...javaScriptBase_default3(alexPlugin),
4943
+ packageJson.configs.recommended
4944
+ ],
4945
+ typeScript: [
4946
+ ...typeScriptBase_default3(alexPlugin),
4947
+ packageJson.configs.recommended
4948
+ ],
4949
+ react: [...reactBase_default3, packageJson.configs.recommended],
4950
+ tests: [...testsBase_default3(alexPlugin), packageJson.configs.recommended],
4951
+ typeScriptReact: [
4952
+ ...typeScriptReactBase_default(alexPlugin),
4953
+ packageJson.configs.recommended
4954
+ ],
4955
+ javaScriptReact: [
4956
+ ...javaScriptReactBase_default(alexPlugin),
4957
+ packageJson.configs.recommended
4958
+ ]
4695
4959
  }
4696
4960
  });
4697
4961
  var alexPlugin_default = alexPlugin;