@alextheman/eslint-plugin 2.5.0 → 2.6.1

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,21 +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.5.0";
3749
+ var version = "2.6.1";
3704
3750
 
3705
- // src/configs/combined/javaScriptBase.ts
3706
- import perfectionist from "eslint-plugin-perfectionist";
3707
- import prettierPlugin from "eslint-plugin-prettier";
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;
3708
3790
 
3709
3791
  // src/configs/plugin/pluginBase.ts
3710
3792
  function createPluginBaseConfig(plugin) {
@@ -3739,62 +3821,27 @@ function createPluginTestsBaseConfig(plugin) {
3739
3821
  }
3740
3822
  ];
3741
3823
  }
3742
- var testsBase_default = createPluginTestsBaseConfig;
3824
+ var testsBase_default2 = createPluginTestsBaseConfig;
3743
3825
 
3744
3826
  // src/configs/combined/testsBase.ts
3745
3827
  function createCombinedTestsBaseConfig(plugin) {
3746
- return [
3747
- ...testsBase_default(plugin),
3748
- {
3749
- files: ["**/*.test.{js,ts}"],
3750
- rules: {
3751
- "no-restricted-globals": [
3752
- "error",
3753
- {
3754
- message: "Do not use global describe function. Import test functions from vitest instead.",
3755
- name: "describe"
3756
- },
3757
- {
3758
- message: "Do not use global test function. Import test functions from vitest instead.",
3759
- name: "test"
3760
- },
3761
- {
3762
- message: "Do not use global expect function. Import test functions from vitest instead.",
3763
- name: "expect"
3764
- }
3765
- ],
3766
- "no-restricted-imports": [
3767
- "error",
3768
- {
3769
- paths: [
3770
- {
3771
- message: "Use test functions from vitest instead.",
3772
- name: "node:test"
3773
- }
3774
- ]
3775
- }
3776
- ]
3777
- }
3778
- }
3779
- ];
3828
+ return [...testsBase_default2(plugin), ...testsBase_default];
3780
3829
  }
3781
- var testsBase_default2 = createCombinedTestsBaseConfig;
3830
+ var testsBase_default3 = createCombinedTestsBaseConfig;
3782
3831
 
3783
3832
  // src/configs/general/javaScriptBase.ts
3784
3833
  var import_js = __toESM(require_src(), 1);
3785
- var import_globals = __toESM(require_globals2(), 1);
3834
+ var import_globals2 = __toESM(require_globals2(), 1);
3786
3835
  import prettierConfig from "eslint-config-prettier";
3787
3836
  import importPlugin from "eslint-plugin-import";
3788
- import packageJson from "eslint-plugin-package-json";
3789
3837
  var javaScriptBase = [
3790
3838
  import_js.default.configs.recommended,
3791
3839
  prettierConfig,
3792
- packageJson.configs.recommended,
3793
3840
  {
3794
- files: ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx", "!package.json"],
3841
+ files: ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx"],
3795
3842
  ignores: ["dist"],
3796
3843
  languageOptions: {
3797
- globals: __spreadValues(__spreadValues({}, import_globals.default.node), import_globals.default.browser)
3844
+ globals: __spreadValues(__spreadValues({}, import_globals2.default.node), import_globals2.default.browser)
3798
3845
  },
3799
3846
  name: "@alextheman/eslint-config-javascript-base",
3800
3847
  plugins: {
@@ -3842,13 +3889,15 @@ var javaScriptBase = [
3842
3889
  ];
3843
3890
  var javaScriptBase_default = javaScriptBase;
3844
3891
 
3845
- // src/configs/combined/javaScriptBase.ts
3846
- 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) {
3847
3896
  return [
3848
- ...pluginBase_default(plugin),
3849
- ...javaScriptBase_default,
3850
3897
  {
3898
+ files: ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx"],
3851
3899
  plugins: {
3900
+ "@alextheman": plugin,
3852
3901
  perfectionist,
3853
3902
  prettier: prettierPlugin
3854
3903
  },
@@ -3895,14 +3944,24 @@ function createCombinedJavaScriptBaseConfig(plugin) {
3895
3944
  "prettier/prettier": ["warn", prettierRules_default],
3896
3945
  "sort-vars": "error"
3897
3946
  }
3898
- },
3899
- ...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)
3900
3959
  ];
3901
3960
  }
3902
- var javaScriptBase_default2 = createCombinedJavaScriptBaseConfig;
3961
+ var javaScriptBase_default3 = createCombinedJavaScriptBaseConfig;
3903
3962
 
3904
3963
  // src/configs/general/reactBase.ts
3905
- var import_globals2 = __toESM(require_globals2(), 1);
3964
+ var import_globals3 = __toESM(require_globals2(), 1);
3906
3965
  import jsxA11y from "eslint-plugin-jsx-a11y";
3907
3966
  import reactPlugin from "eslint-plugin-react";
3908
3967
  import reactHooks from "eslint-plugin-react-hooks";
@@ -3914,7 +3973,7 @@ var reactBase = [
3914
3973
  {
3915
3974
  languageOptions: {
3916
3975
  ecmaVersion: 2020,
3917
- globals: import_globals2.default.browser,
3976
+ globals: import_globals3.default.browser,
3918
3977
  parserOptions: {
3919
3978
  ecmaFeatures: {
3920
3979
  jsx: true
@@ -3947,32 +4006,51 @@ var reactBase = [
3947
4006
  ];
3948
4007
  var reactBase_default = reactBase;
3949
4008
 
3950
- // src/configs/combined/reactBase.ts
3951
- function createCombinedReactBaseConfig(plugin) {
3952
- return [
3953
- ...pluginBase_default(plugin),
3954
- ...reactBase_default,
3955
- {
3956
- rules: {
3957
- "no-restricted-imports": [
3958
- "error",
3959
- {
3960
- patterns: [
3961
- {
3962
- message: 'Please use `import Component from "@mui/[package]/Component"` instead. See https://mui.com/material-ui/guides/minimizing-bundle-size/ for more information.',
3963
- regex: "^@mui/[^/]+$"
3964
- }
3965
- ]
3966
- }
3967
- ],
3968
- "react-hooks/exhaustive-deps": "off",
3969
- "react-refresh/only-export-components": "off",
3970
- "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
+ }
3971
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"
3972
4046
  }
3973
- ];
3974
- }
3975
- 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;
3976
4054
 
3977
4055
  // src/configs/general/prettierRules.ts
3978
4056
  var prettierRules = {
@@ -4003,8 +4081,6 @@ var typeScriptBase = [
4003
4081
  "@typescript-eslint/consistent-type-imports": "error",
4004
4082
  "@typescript-eslint/explicit-member-accessibility": "error",
4005
4083
  "@typescript-eslint/no-deprecated": "warn",
4006
- // Explicit any can be helpful sometimes, so it's not worth erroring on every single one.
4007
- "@typescript-eslint/no-explicit-any": "off",
4008
4084
  "@typescript-eslint/no-redeclare": ["error", { ignoreDeclarationMerge: true }],
4009
4085
  "@typescript-eslint/no-unused-vars": [
4010
4086
  "error",
@@ -4031,36 +4107,198 @@ var typeScriptBase = [
4031
4107
  ];
4032
4108
  var typeScriptBase_default = typeScriptBase;
4033
4109
 
4034
- // src/configs/combined/typeScriptBase.ts
4035
- function createCombinedTypeScriptBaseConfig(plugin) {
4110
+ // src/configs/personal/eslintPlugin.ts
4111
+ function createPersonalEslintPluginConfig(plugin) {
4036
4112
  return [
4037
- ...pluginBase_default(plugin),
4038
- ...javaScriptBase_default2(plugin),
4039
- ...typeScriptBase_default,
4040
4113
  {
4041
- 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
+ },
4042
4268
  rules: {
4043
4269
  "@alextheman/standardise-error-messages": "error",
4044
4270
  "@typescript-eslint/array-type": ["error", { default: "array" }],
4045
4271
  "@typescript-eslint/consistent-type-assertions": ["error", { assertionStyle: "as" }],
4046
4272
  "@typescript-eslint/consistent-type-definitions": "error",
4047
4273
  "@typescript-eslint/dot-notation": "error",
4048
- "@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"
4049
4277
  }
4050
4278
  }
4051
4279
  ];
4052
4280
  }
4053
- 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;
4054
4292
 
4055
4293
  // src/configs/combined/typeScriptReactBase.ts
4056
4294
  function createCombinedTypeScriptReactBaseConfig(plugin) {
4057
- return [...typeScriptBase_default2(plugin), ...reactBase_default2(plugin)];
4295
+ return [...typeScriptBase_default3(plugin), ...reactBase_default3];
4058
4296
  }
4059
4297
  var typeScriptReactBase_default = createCombinedTypeScriptReactBaseConfig;
4060
4298
 
4061
4299
  // src/configs/combined/javaScriptReactBase.ts
4062
4300
  function createCombinedJavaScriptReactBaseConfig(plugin) {
4063
- return [...javaScriptBase_default2(plugin), ...reactBase_default2(plugin)];
4301
+ return [...javaScriptBase_default3(plugin), ...reactBase_default3];
4064
4302
  }
4065
4303
  var javaScriptReactBase_default = createCombinedJavaScriptReactBaseConfig;
4066
4304
 
@@ -4688,15 +4926,36 @@ alexPlugin.configs = createPluginConfigs_default({
4688
4926
  },
4689
4927
  plugin: {
4690
4928
  base: pluginBase_default(alexPlugin),
4691
- tests: testsBase_default(alexPlugin)
4929
+ tests: testsBase_default2(alexPlugin)
4692
4930
  },
4693
- combined: {
4931
+ personal: {
4694
4932
  javaScript: javaScriptBase_default2(alexPlugin),
4695
4933
  typeScript: typeScriptBase_default2(alexPlugin),
4696
- react: reactBase_default2(alexPlugin),
4697
- tests: testsBase_default2(alexPlugin),
4698
- typeScriptReact: typeScriptReactBase_default(alexPlugin),
4699
- javaScriptReact: javaScriptReactBase_default(alexPlugin)
4934
+ react: reactBase_default2,
4935
+ tests: testsBase_default,
4936
+ eslintPlugin: eslintPlugin_default(alexPlugin),
4937
+ neurosongsBackEnd: neurosongsBackEnd_default,
4938
+ neurosongsFrontEnd: 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
+ ]
4700
4959
  }
4701
4960
  });
4702
4961
  var alexPlugin_default = alexPlugin;