@alextheman/eslint-plugin 2.5.0 → 2.6.0

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