@vinicunca/eslint-config 2.6.2 → 2.7.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
@@ -64,6 +64,7 @@ __export(src_exports, {
64
64
  javascript: () => javascript,
65
65
  jsdoc: () => jsdoc,
66
66
  jsonc: () => jsonc,
67
+ jsx: () => jsx,
67
68
  markdown: () => markdown,
68
69
  node: () => node,
69
70
  parserPlain: () => parserPlain,
@@ -95,763 +96,17 @@ __export(src_exports, {
95
96
  });
96
97
  module.exports = __toCommonJS(src_exports);
97
98
 
98
- // ../node_modules/.pnpm/@vinicunca+perkakas@0.5.4/node_modules/@vinicunca/perkakas/dist/index.mjs
99
- function purry(fn, args, lazyFactory) {
100
- const callArgs = Array.from(args);
101
- const diff = fn.length - args.length;
102
- if (diff === 0) {
103
- return fn(...callArgs);
104
- }
105
- if (diff === 1) {
106
- const ret = (data) => fn(data, ...callArgs);
107
- const lazy = lazyFactory ?? fn.lazy;
108
- return lazy === void 0 ? ret : Object.assign(ret, { lazy, lazyArgs: args });
109
- }
110
- throw new Error("Wrong number of arguments");
111
- }
112
- function purryOn(isArg, implementation, args) {
113
- const callArgs = Array.from(args);
114
- return isArg(args[0]) ? (data) => implementation(data, ...callArgs) : implementation(...callArgs);
115
- }
116
- function conditional(...args) {
117
- return purryOn(isCase, conditionalImplementation, args);
118
- }
119
- function conditionalImplementation(data, ...cases) {
120
- for (const [when, then] of cases) {
121
- if (when(data)) {
122
- return then(data);
123
- }
124
- }
125
- throw new Error("conditional: data failed for all cases");
126
- }
127
- function isCase(maybeCase) {
128
- if (!Array.isArray(maybeCase)) {
129
- return false;
130
- }
131
- const [when, then, ...rest] = maybeCase;
132
- return typeof when === "function" && when.length <= 1 && typeof then === "function" && then.length <= 1 && rest.length === 0;
133
- }
134
- var trivialDefaultCase = () => void 0;
135
- ((conditional2) => {
136
- function defaultCase(then = trivialDefaultCase) {
137
- return [() => true, then];
138
- }
139
- conditional2.defaultCase = defaultCase;
140
- })(conditional || (conditional = {}));
141
- function _reduceLazy(array, lazy, isIndexed = false) {
142
- const out = [];
143
- for (let index = 0; index < array.length; index++) {
144
- const item = array[index];
145
- const result = isIndexed ? lazy(item, index, array) : lazy(item);
146
- if (result.hasMany === true) {
147
- out.push(...result.next);
148
- } else if (result.hasNext) {
149
- out.push(result.next);
150
- }
151
- if (result.done) {
152
- break;
153
- }
154
- }
155
- return out;
156
- }
157
- function differenceWith(...args) {
158
- return purry(differenceWith_, args, differenceWith.lazy);
159
- }
160
- function differenceWith_(array, other, isEquals) {
161
- const lazy = differenceWith.lazy(other, isEquals);
162
- return _reduceLazy(array, lazy);
163
- }
164
- ((differenceWith2) => {
165
- function lazy(other, isEquals) {
166
- return (value) => other.every((otherValue) => !isEquals(value, otherValue)) ? { done: false, hasNext: true, next: value } : { done: false, hasNext: false };
167
- }
168
- differenceWith2.lazy = lazy;
169
- })(differenceWith || (differenceWith = {}));
170
- var COMPARATORS = {
171
- asc: (x, y) => x > y,
172
- desc: (x, y) => x < y
173
- };
174
- function purryOrderRules(func, inputArgs) {
175
- const [dataOrRule, ...rules] = Array.isArray(inputArgs) ? inputArgs : Array.from(inputArgs);
176
- if (!isOrderRule(dataOrRule)) {
177
- const compareFn2 = orderRuleComparer(...rules);
178
- return func(dataOrRule, compareFn2);
179
- }
180
- const compareFn = orderRuleComparer(dataOrRule, ...rules);
181
- return (data) => func(data, compareFn);
182
- }
183
- function orderRuleComparer(primaryRule, secondaryRule, ...otherRules) {
184
- const projector = typeof primaryRule === "function" ? primaryRule : primaryRule[0];
185
- const direction = typeof primaryRule === "function" ? "asc" : primaryRule[1];
186
- const { [direction]: comparator } = COMPARATORS;
187
- const nextComparer = secondaryRule === void 0 ? void 0 : orderRuleComparer(secondaryRule, ...otherRules);
188
- return (a, b) => {
189
- const projectedA = projector(a);
190
- const projectedB = projector(b);
191
- if (comparator(projectedA, projectedB)) {
192
- return 1;
193
- }
194
- if (comparator(projectedB, projectedA)) {
195
- return -1;
196
- }
197
- return (nextComparer == null ? void 0 : nextComparer(a, b)) ?? 0;
198
- };
199
- }
200
- function isOrderRule(x) {
201
- if (isProjection(x)) {
202
- return true;
203
- }
204
- if (typeof x !== "object" || !Array.isArray(x)) {
205
- return false;
206
- }
207
- const [maybeProjection, maybeDirection, ...rest] = x;
208
- return isProjection(maybeProjection) && maybeDirection in COMPARATORS && rest.length === 0;
209
- }
210
- function isProjection(x) {
211
- return typeof x === "function" && x.length === 1;
99
+ // ../node_modules/.pnpm/@vinicunca+perkakas@1.0.3/node_modules/@vinicunca/perkakas/dist/chunk-HLL46USD.js
100
+ function r(e2) {
101
+ if (typeof e2 != "object" || e2 === null) return false;
102
+ let o = Object.getPrototypeOf(e2);
103
+ return o === null || o === Object.prototype;
212
104
  }
213
- function drop(...args) {
214
- return purry(drop_, args, drop.lazy);
215
- }
216
- function drop_(array, n) {
217
- return _reduceLazy(array, drop.lazy(n));
218
- }
219
- ((drop2) => {
220
- function lazy(n) {
221
- let left = n;
222
- return (value) => {
223
- if (left > 0) {
224
- left -= 1;
225
- return { done: false, hasNext: false };
226
- }
227
- return { done: false, hasNext: true, next: value };
228
- };
229
- }
230
- drop2.lazy = lazy;
231
- })(drop || (drop = {}));
232
- function entries(...args) {
233
- return purry(Object.entries, args);
234
- }
235
- ((entries2) => {
236
- entries2.strict = entries2;
237
- })(entries || (entries = {}));
238
- function _toLazyIndexed(fn) {
239
- return Object.assign(fn, { indexed: true });
240
- }
241
- function filter(...args) {
242
- return purry(filter_(false), args, filter.lazy);
243
- }
244
- function filter_(indexed) {
245
- return (array, fn) => {
246
- return _reduceLazy(
247
- array,
248
- indexed ? filter.lazyIndexed(fn) : filter.lazy(fn),
249
- indexed
250
- );
251
- };
252
- }
253
- function lazy_$5(indexed) {
254
- return (fn) => (value, index, array) => (indexed ? fn(value, index, array) : fn(value)) ? { done: false, hasNext: true, next: value } : { done: false, hasNext: false };
255
- }
256
- ((filter2) => {
257
- function indexed(...args) {
258
- return purry(filter_(true), args, filter2.lazyIndexed);
259
- }
260
- filter2.indexed = indexed;
261
- filter2.lazy = lazy_$5(false);
262
- filter2.lazyIndexed = _toLazyIndexed(lazy_$5(true));
263
- })(filter || (filter = {}));
264
- function _toSingle(fn) {
265
- return Object.assign(fn, { single: true });
266
- }
267
- function findIndex(...args) {
268
- return purry(findIndex_(false), args, findIndex.lazy);
269
- }
270
- function findIndex_(indexed) {
271
- return (array, fn) => array.findIndex((item, index, input) => indexed ? fn(item, index, input) : fn(item));
272
- }
273
- function lazy_$4(indexed) {
274
- return (fn) => {
275
- let actualIndex = 0;
276
- return (value, index, array) => {
277
- if (indexed ? fn(value, index, array) : fn(value)) {
278
- return { done: true, hasNext: true, next: actualIndex };
279
- }
280
- actualIndex += 1;
281
- return { done: false, hasNext: false };
282
- };
283
- };
284
- }
285
- ((findIndex2) => {
286
- function indexed(...args) {
287
- return purry(findIndex_(true), args, findIndex2.lazyIndexed);
288
- }
289
- findIndex2.indexed = indexed;
290
- findIndex2.lazy = _toSingle(lazy_$4(false));
291
- findIndex2.lazyIndexed = _toSingle(_toLazyIndexed(lazy_$4(true)));
292
- })(findIndex || (findIndex = {}));
293
- function findLastIndex(...args) {
294
- return purry(findLastIndex_(false), args);
295
- }
296
- function findLastIndex_(indexed) {
297
- return (array, fn) => {
298
- for (let i = array.length - 1; i >= 0; i--) {
299
- if (indexed ? fn(array[i], i, array) : fn(array[i])) {
300
- return i;
301
- }
302
- }
303
- return -1;
304
- };
305
- }
306
- ((findLastIndex2) => {
307
- function indexed(...args) {
308
- return purry(findLastIndex_(true), args);
309
- }
310
- findLastIndex2.indexed = indexed;
311
- })(findLastIndex || (findLastIndex = {}));
312
- function findLast(...args) {
313
- return purry(findLast_(false), args);
314
- }
315
- function findLast_(indexed) {
316
- return (array, fn) => {
317
- for (let i = array.length - 1; i >= 0; i--) {
318
- if (indexed ? fn(array[i], i, array) : fn(array[i])) {
319
- return array[i];
320
- }
321
- }
322
- return void 0;
323
- };
324
- }
325
- ((findLast2) => {
326
- function indexed(...args) {
327
- return purry(findLast_(true), args);
328
- }
329
- findLast2.indexed = indexed;
330
- })(findLast || (findLast = {}));
331
- function find(...args) {
332
- return purry(find_(false), args, find.lazy);
333
- }
334
- function find_(indexed) {
335
- return (array, fn) => array.find((item, index, input) => indexed ? fn(item, index, input) : fn(item));
336
- }
337
- function lazy_$3(indexed) {
338
- return (fn) => (value, index, array) => (indexed ? fn(value, index, array) : fn(value)) ? { done: true, hasNext: true, next: value } : { done: false, hasNext: false };
339
- }
340
- ((find2) => {
341
- function indexed(...args) {
342
- return purry(find_(true), args, find2.lazyIndexed);
343
- }
344
- find2.indexed = indexed;
345
- find2.lazy = _toSingle(lazy_$3(false));
346
- find2.lazyIndexed = _toSingle(_toLazyIndexed(lazy_$3(true)));
347
- })(find || (find = {}));
348
- function first(...args) {
349
- return purry(first_, args, first.lazy);
350
- }
351
- function first_([item]) {
352
- return item;
353
- }
354
- ((first2) => {
355
- function lazy() {
356
- return (value) => ({ done: true, hasNext: true, next: value });
357
- }
358
- first2.lazy = lazy;
359
- ((lazy2) => {
360
- lazy2.single = true;
361
- })(lazy = first2.lazy || (first2.lazy = {}));
362
- })(first || (first = {}));
363
- function flatten(...args) {
364
- return purry(flatten_, args, flatten.lazy);
365
- }
366
- function flatten_(items) {
367
- return _reduceLazy(items, flatten.lazy());
368
- }
369
- ((flatten2) => {
370
- function lazy() {
371
- return (item) => (
372
- // @ts-expect-error [ts2322] - We need to make LazyMany better so it accommodate the typing here...
373
- Array.isArray(item) ? { done: false, hasMany: true, hasNext: true, next: item } : { done: false, hasNext: true, next: item }
374
- );
375
- }
376
- flatten2.lazy = lazy;
377
- })(flatten || (flatten = {}));
378
- function flatMap(...args) {
379
- return purry(flatMap_, args, flatMap.lazy);
380
- }
381
- function flatMap_(array, fn) {
382
- return flatten(array.map((item) => fn(item)));
383
- }
384
- ((flatMap2) => {
385
- function lazy(fn) {
386
- return (value) => {
387
- const next = fn(value);
388
- return Array.isArray(next) ? { done: false, hasMany: true, hasNext: true, next } : { done: false, hasNext: true, next };
389
- };
390
- }
391
- flatMap2.lazy = lazy;
392
- })(flatMap || (flatMap = {}));
393
- function flattenDeep(...args) {
394
- return purry(flattenDeep_, args, flattenDeep.lazy);
395
- }
396
- function flattenDeep_(items) {
397
- return _reduceLazy(items, flattenDeep.lazy());
398
- }
399
- function flattenDeepValue_(value) {
400
- if (!Array.isArray(value)) {
401
- return value;
402
- }
403
- const ret = [];
404
- for (const item of value) {
405
- if (Array.isArray(item)) {
406
- ret.push(...flattenDeep(item));
407
- } else {
408
- ret.push(item);
409
- }
410
- }
411
- return ret;
412
- }
413
- ((flattenDeep2) => {
414
- function lazy() {
415
- return (value) => {
416
- const next = flattenDeepValue_(value);
417
- return Array.isArray(next) ? { done: false, hasMany: true, hasNext: true, next } : { done: false, hasNext: true, next };
418
- };
419
- }
420
- flattenDeep2.lazy = lazy;
421
- })(flattenDeep || (flattenDeep = {}));
422
- function forEachObj(...args) {
423
- return purry(forEachObj_(false), args);
424
- }
425
- function forEachObj_(indexed) {
426
- return (data, fn) => {
427
- for (const key in data) {
428
- if (Object.prototype.hasOwnProperty.call(data, key)) {
429
- const { [key]: val } = data;
430
- if (indexed) {
431
- fn(val, key, data);
432
- } else {
433
- fn(val);
434
- }
435
- }
436
- }
437
- return data;
438
- };
439
- }
440
- ((forEachObj2) => {
441
- function indexed(...args) {
442
- return purry(forEachObj_(true), args);
443
- }
444
- forEachObj2.indexed = indexed;
445
- })(forEachObj || (forEachObj = {}));
446
- function forEach(...args) {
447
- return purry(forEach_(false), args, forEach.lazy);
448
- }
449
- function forEach_(indexed) {
450
- return (array, fn) => _reduceLazy(
451
- array,
452
- indexed ? forEach.lazyIndexed(fn) : forEach.lazy(fn),
453
- indexed
454
- );
455
- }
456
- function lazy_$2(indexed) {
457
- return (fn) => (value, index, array) => {
458
- if (indexed) {
459
- fn(value, index, array);
460
- } else {
461
- fn(value);
462
- }
463
- return {
464
- done: false,
465
- hasNext: true,
466
- next: value
467
- };
468
- };
469
- }
470
- ((forEach2) => {
471
- function indexed(...args) {
472
- return purry(forEach_(true), args, forEach2.lazyIndexed);
473
- }
474
- forEach2.indexed = indexed;
475
- forEach2.lazy = lazy_$2(false);
476
- forEach2.lazyIndexed = _toLazyIndexed(lazy_$2(true));
477
- })(forEach || (forEach = {}));
478
- function fromEntries(...args) {
479
- return purry(fromEntriesImplementation, args);
480
- }
481
- function fromEntriesImplementation(entries2) {
482
- const out = {};
483
- for (const [key, value] of entries2) {
484
- out[key] = value;
485
- }
486
- return out;
487
- }
488
- ((fromEntries2) => {
489
- fromEntries2.strict = fromEntries2;
490
- })(fromEntries || (fromEntries = {}));
491
- function groupBy(...args) {
492
- return purry(groupBy_(false), args);
493
- }
494
- function groupBy_(indexed) {
495
- return (array, fn) => {
496
- const ret = {};
497
- for (const [index, item] of array.entries()) {
498
- const key = indexed ? fn(item, index, array) : fn(item);
499
- if (key !== void 0) {
500
- const actualKey = String(key);
501
- let items = ret[actualKey];
502
- if (items === void 0) {
503
- items = [];
504
- ret[actualKey] = items;
505
- }
506
- items.push(item);
507
- }
508
- }
509
- return ret;
510
- };
511
- }
512
- ((groupBy2) => {
513
- function indexed(...args) {
514
- return purry(groupBy_(true), args);
515
- }
516
- groupBy2.indexed = indexed;
517
- groupBy2.strict = groupBy2;
518
- })(groupBy || (groupBy = {}));
519
- function indexBy(...args) {
520
- return purry(indexBy_(false), args);
521
- }
522
- function indexBy_(indexed) {
523
- return (array, fn) => {
524
- const out = {};
525
- for (const [index, item] of array.entries()) {
526
- const value = indexed ? fn(item, index, array) : fn(item);
527
- const key = String(value);
528
- out[key] = item;
529
- }
530
- return out;
531
- };
532
- }
533
- function indexByStrict(...args) {
534
- return purry(indexByStrict_, args);
535
- }
536
- function indexByStrict_(array, fn) {
537
- const out = {};
538
- for (const item of array) {
539
- const key = fn(item);
540
- out[key] = item;
541
- }
542
- return out;
543
- }
544
- ((indexBy2) => {
545
- function indexed(...args) {
546
- return purry(indexBy_(true), args);
547
- }
548
- indexBy2.indexed = indexed;
549
- indexBy2.strict = indexByStrict;
550
- })(indexBy || (indexBy = {}));
551
- function intersectionWith(...args) {
552
- return purry(intersectionWith_, args, intersectionWith.lazy);
553
- }
554
- function intersectionWith_(array, other, comparator) {
555
- const lazy = intersectionWith.lazy(other, comparator);
556
- return _reduceLazy(array, lazy);
557
- }
558
- ((intersectionWith2) => {
559
- function lazy(other, comparator) {
560
- return (value) => other.some((otherValue) => comparator(value, otherValue)) ? { done: false, hasNext: true, next: value } : { done: false, hasNext: false };
561
- }
562
- intersectionWith2.lazy = lazy;
563
- })(intersectionWith || (intersectionWith = {}));
564
- function isBoolean(data) {
565
- return typeof data === "boolean";
566
- }
567
- function isDefined(data) {
568
- return data !== void 0 && data !== null;
569
- }
570
- ((isDefined2) => {
571
- function strict(data) {
572
- return data !== void 0;
573
- }
574
- isDefined2.strict = strict;
575
- })(isDefined || (isDefined = {}));
576
- function isObject(data) {
577
- if (typeof data !== "object" || data === null) {
578
- return false;
579
- }
580
- const proto = Object.getPrototypeOf(data);
581
- return proto === null || proto === Object.prototype;
582
- }
583
- function keys(...args) {
584
- return purry(Object.keys, args);
585
- }
586
- ((keys2) => {
587
- keys2.strict = keys2;
588
- })(keys || (keys = {}));
589
- function mapToObj(...args) {
590
- return purry(mapToObj_(false), args);
591
- }
592
- function mapToObj_(indexed) {
593
- return (array, fn) => {
594
- const out = {};
595
- for (const [index, element] of array.entries()) {
596
- const [key, value] = indexed ? fn(element, index, array) : fn(element);
597
- out[key] = value;
598
- }
599
- return out;
600
- };
601
- }
602
- ((mapToObj2) => {
603
- function indexed(...args) {
604
- return purry(mapToObj_(true), args);
605
- }
606
- mapToObj2.indexed = indexed;
607
- })(mapToObj || (mapToObj = {}));
608
- function map(...args) {
609
- return purry(map_(false), args, map.lazy);
610
- }
611
- function map_(indexed) {
612
- return (array, fn) => {
613
- return _reduceLazy(
614
- array,
615
- indexed ? map.lazyIndexed(fn) : map.lazy(fn),
616
- indexed
617
- );
618
- };
619
- }
620
- function lazy_$1(indexed) {
621
- return (fn) => (value, index, array) => ({
622
- done: false,
623
- hasNext: true,
624
- next: indexed ? fn(value, index, array) : fn(value)
625
- });
626
- }
627
- ((map2) => {
628
- function indexed(...args) {
629
- return purry(map_(true), args, map2.lazyIndexed);
630
- }
631
- map2.indexed = indexed;
632
- map2.lazy = lazy_$1(false);
633
- map2.lazyIndexed = _toLazyIndexed(lazy_$1(true));
634
- map2.strict = map2;
635
- })(map || (map = {}));
636
- function meanBy_(indexed) {
637
- return (array, fn) => {
638
- if (array.length === 0) {
639
- return Number.NaN;
640
- }
641
- let sum = 0;
642
- for (const [index, item] of array.entries()) {
643
- sum += indexed ? fn(item, index, array) : fn(item);
644
- }
645
- return sum / array.length;
646
- };
647
- }
648
- function meanBy(...args) {
649
- return purry(meanBy_(false), args);
650
- }
651
- ((meanBy2) => {
652
- function indexed(...args) {
653
- return purry(meanBy_(true), args);
654
- }
655
- meanBy2.indexed = indexed;
656
- })(meanBy || (meanBy = {}));
657
- function partition(...args) {
658
- return purry(partition_(false), args);
659
- }
660
- function partition_(indexed) {
661
- return (array, fn) => {
662
- const ret = [[], []];
663
- for (const [index, item] of array.entries()) {
664
- const matches = indexed ? fn(item, index, array) : fn(item);
665
- ret[matches ? 0 : 1].push(item);
666
- }
667
- return ret;
668
- };
669
- }
670
- ((partition2) => {
671
- function indexed(...args) {
672
- return purry(partition_(true), args);
673
- }
674
- partition2.indexed = indexed;
675
- })(partition || (partition = {}));
676
- function reduce(...args) {
677
- return purry(reduce_(false), args);
678
- }
679
- function reduce_(indexed) {
680
- return (items, fn, initialValue) => {
681
- return items.reduce(
682
- (acc, item, index) => indexed ? fn(acc, item, index, items) : fn(acc, item),
683
- initialValue
684
- );
685
- };
686
- }
687
- ((reduce2) => {
688
- function indexed(...args) {
689
- return purry(reduce_(true), args);
690
- }
691
- reduce2.indexed = indexed;
692
- })(reduce || (reduce = {}));
693
- function sortBy(...args) {
694
- return purryOrderRules(_sortBy, args);
695
- }
696
- function _sortBy(data, compareFn) {
697
- return data.slice().sort(compareFn);
698
- }
699
- ((sortBy2) => {
700
- sortBy2.strict = sortBy2;
701
- })(sortBy || (sortBy = {}));
702
- function sort(...args) {
703
- return purry(sort_, args);
704
- }
705
- function sort_(items, cmp) {
706
- const ret = items.slice();
707
- ret.sort(cmp);
708
- return ret;
709
- }
710
- ((sort2) => {
711
- sort2.strict = sort2;
712
- })(sort || (sort = {}));
713
- function _binarySearchCutoffIndex(array, predicate) {
714
- let lowIndex = 0;
715
- let highIndex = array.length;
716
- while (lowIndex < highIndex) {
717
- const pivotIndex = lowIndex + highIndex >>> 1;
718
- const pivot = array[pivotIndex];
719
- if (predicate(pivot, pivotIndex)) {
720
- lowIndex = pivotIndex + 1;
721
- } else {
722
- highIndex = pivotIndex;
723
- }
724
- }
725
- return highIndex;
726
- }
727
- function sortedIndexBy(...args) {
728
- return purry(sortedIndexByImplementation, args);
729
- }
730
- ((sortedIndexBy2) => {
731
- function indexed(...args) {
732
- return purry(sortedIndexByImplementation, args);
733
- }
734
- sortedIndexBy2.indexed = indexed;
735
- })(sortedIndexBy || (sortedIndexBy = {}));
736
- function sortedIndexByImplementation(array, item, valueFunction) {
737
- const value = valueFunction(item);
738
- return _binarySearchCutoffIndex(
739
- array,
740
- (pivot, index) => valueFunction(pivot, index) < value
741
- );
742
- }
743
- function sortedIndexWith(...args) {
744
- return purry(_binarySearchCutoffIndex, args);
745
- }
746
- ((sortedIndexWith2) => {
747
- function indexed(...args) {
748
- return purry(_binarySearchCutoffIndex, args);
749
- }
750
- sortedIndexWith2.indexed = indexed;
751
- })(sortedIndexWith || (sortedIndexWith = {}));
752
- function sortedLastIndexBy(...args) {
753
- return purry(sortedLastIndexByImplementation, args);
754
- }
755
- ((sortedLastIndexBy2) => {
756
- function indexed(...args) {
757
- return purry(sortedLastIndexByImplementation, args);
758
- }
759
- sortedLastIndexBy2.indexed = indexed;
760
- })(sortedLastIndexBy || (sortedLastIndexBy = {}));
761
- function sortedLastIndexByImplementation(array, item, valueFunction) {
762
- const value = valueFunction(item);
763
- return _binarySearchCutoffIndex(
764
- array,
765
- // The only difference between the regular implementation and the "last"
766
- // variation is that we consider the pivot with equality too, so that we
767
- // skip all equal values in addition to the lower ones.
768
- (pivot, index) => valueFunction(pivot, index) <= value
769
- );
770
- }
771
- function sumBy_(indexed) {
772
- return (array, fn) => {
773
- let sum = 0;
774
- for (const [index, item] of array.entries()) {
775
- const summand = indexed ? fn(item, index, array) : fn(item);
776
- sum += summand;
777
- }
778
- return sum;
779
- };
780
- }
781
- function sumBy(...args) {
782
- return purry(sumBy_(false), args);
783
- }
784
- ((sumBy2) => {
785
- function indexed(...args) {
786
- return purry(sumBy_(true), args);
787
- }
788
- sumBy2.indexed = indexed;
789
- })(sumBy || (sumBy = {}));
790
- function take(...args) {
791
- return purry(take_, args, take.lazy);
792
- }
793
- function take_(array, n) {
794
- return _reduceLazy(array, take.lazy(n));
795
- }
796
- ((take2) => {
797
- function lazy(n) {
798
- if (n <= 0) {
799
- return () => ({ done: true, hasNext: false });
800
- }
801
- let remaining = n;
802
- return (value) => {
803
- remaining -= 1;
804
- return { done: remaining <= 0, hasNext: true, next: value };
805
- };
806
- }
807
- take2.lazy = lazy;
808
- })(take || (take = {}));
809
- function uniqueWith(...args) {
810
- return purry(uniqueWithImplementation, args, uniqueWith.lazy);
811
- }
812
- function uniqueWithImplementation(array, isEquals) {
813
- const lazy = uniqueWith.lazy(isEquals);
814
- return _reduceLazy(array, lazy, true);
815
- }
816
- function lazy_(isEquals) {
817
- return (value, index, array) => array !== void 0 && array.findIndex((otherValue) => isEquals(value, otherValue)) === index ? { done: false, hasNext: true, next: value } : { done: false, hasNext: false };
818
- }
819
- ((uniqueWith2) => {
820
- uniqueWith2.lazy = _toLazyIndexed(lazy_);
821
- })(uniqueWith || (uniqueWith = {}));
822
- function unique(...args) {
823
- return purry(uniqueImplementation, args, unique.lazy);
824
- }
825
- function uniqueImplementation(array) {
826
- return _reduceLazy(array, unique.lazy());
827
- }
828
- ((unique2) => {
829
- function lazy() {
830
- const set = /* @__PURE__ */ new Set();
831
- return (value) => {
832
- if (set.has(value)) {
833
- return { done: false, hasNext: false };
834
- }
835
- set.add(value);
836
- return { done: false, hasNext: true, next: value };
837
- };
838
- }
839
- unique2.lazy = lazy;
840
- })(unique || (unique = {}));
841
- function zip(...args) {
842
- return purry(zip_, args);
843
- }
844
- function zip_(first2, second) {
845
- const resultLength = first2.length > second.length ? second.length : first2.length;
846
- const result = [];
847
- for (let i = 0; i < resultLength; i++) {
848
- result.push([first2[i], second[i]]);
849
- }
850
- return result;
105
+
106
+ // ../node_modules/.pnpm/@vinicunca+perkakas@1.0.3/node_modules/@vinicunca/perkakas/dist/chunk-AZUJCNUP.js
107
+ function e(o) {
108
+ return typeof o == "boolean";
851
109
  }
852
- ((zip2) => {
853
- zip2.strict = zip2;
854
- })(zip || (zip = {}));
855
110
 
856
111
  // src/base.ts
857
112
  var import_eslint_flat_config_utils = require("eslint-flat-config-utils");
@@ -956,6 +211,8 @@ var GLOB_EXCLUDE = [
956
211
  "**/.cache",
957
212
  "**/.output",
958
213
  "**/.vite-inspect",
214
+ "**/.yarn",
215
+ "**/vite.config.*.timestamp-*",
959
216
  "**/CHANGELOG*.md",
960
217
  "**/*.min.*",
961
218
  "**/LICENSE*",
@@ -969,10 +226,10 @@ async function combineConfigs(...configs2) {
969
226
  const resolved = await Promise.all(configs2);
970
227
  return resolved.flat();
971
228
  }
972
- function renameRules(rules, map2) {
229
+ function renameRules(rules, map) {
973
230
  return Object.fromEntries(
974
231
  Object.entries(rules).map(([key, value]) => {
975
- for (const [from, to] of Object.entries(map2)) {
232
+ for (const [from, to] of Object.entries(map)) {
976
233
  if (key.startsWith(`${from}/`)) {
977
234
  return [to + key.slice(from.length), value];
978
235
  }
@@ -981,17 +238,17 @@ function renameRules(rules, map2) {
981
238
  })
982
239
  );
983
240
  }
984
- function renamePluginInConfigs(configs2, map2) {
241
+ function renamePluginInConfigs(configs2, map) {
985
242
  return configs2.map((i) => {
986
243
  const clone = { ...i };
987
244
  if (clone.rules) {
988
- clone.rules = renameRules(clone.rules, map2);
245
+ clone.rules = renameRules(clone.rules, map);
989
246
  }
990
247
  if (clone.plugins) {
991
248
  clone.plugins = Object.fromEntries(
992
249
  Object.entries(clone.plugins).map(([key, value]) => {
993
- if (key in map2) {
994
- return [map2[key], value];
250
+ if (key in map) {
251
+ return [map[key], value];
995
252
  }
996
253
  return [key, value];
997
254
  })
@@ -1039,7 +296,7 @@ var STYLISTIC_CONFIG_DEFAULTS = {
1039
296
  async function stylistic(options = {}) {
1040
297
  const {
1041
298
  indent,
1042
- jsx,
299
+ jsx: jsx2,
1043
300
  overrides = {},
1044
301
  quotes,
1045
302
  semi
@@ -1051,7 +308,7 @@ async function stylistic(options = {}) {
1051
308
  const config = pluginStylistic.configs.customize({
1052
309
  flat: true,
1053
310
  indent,
1054
- jsx,
311
+ jsx: jsx2,
1055
312
  pluginName: "style",
1056
313
  quotes,
1057
314
  semi
@@ -1360,6 +617,9 @@ async function javascript(options = {}) {
1360
617
  linterOptions: {
1361
618
  reportUnusedDisableDirectives: true
1362
619
  },
620
+ name: "vinicunca/javascript/setup"
621
+ },
622
+ {
1363
623
  name: "vinicunca/javascript/rules",
1364
624
  plugins: {
1365
625
  "antfu": import_eslint_plugin_antfu.default,
@@ -1645,7 +905,7 @@ async function jsonc(options = {}) {
1645
905
  } = options;
1646
906
  const {
1647
907
  indent = 2
1648
- } = isBoolean(stylistic2) ? {} : stylistic2;
908
+ } = e(stylistic2) ? {} : stylistic2;
1649
909
  const [
1650
910
  pluginJsonc,
1651
911
  parserJsonc
@@ -1711,6 +971,23 @@ async function jsonc(options = {}) {
1711
971
  ];
1712
972
  }
1713
973
 
974
+ // src/configs/jsx.ts
975
+ async function jsx() {
976
+ return [
977
+ {
978
+ files: [GLOB_JSX, GLOB_TSX],
979
+ languageOptions: {
980
+ parserOptions: {
981
+ ecmaFeatures: {
982
+ jsx: true
983
+ }
984
+ }
985
+ },
986
+ name: "vinicunca/jsx/setup"
987
+ }
988
+ ];
989
+ }
990
+
1714
991
  // src/configs/markdown.ts
1715
992
  var import_eslint_merge_processors = require("eslint-merge-processors");
1716
993
  async function markdown(options = {}) {
@@ -1781,25 +1058,6 @@ async function markdown(options = {}) {
1781
1058
  "unicode-bom": OFF,
1782
1059
  "unused-imports/no-unused-imports": OFF,
1783
1060
  "unused-imports/no-unused-vars": OFF,
1784
- // Type aware rules
1785
- ...{
1786
- "ts/await-thenable": OFF,
1787
- "ts/dot-notation": OFF,
1788
- "ts/no-floating-promises": OFF,
1789
- "ts/no-for-in-array": OFF,
1790
- "ts/no-implied-eval": OFF,
1791
- "ts/no-misused-promises": OFF,
1792
- "ts/no-throw-literal": OFF,
1793
- "ts/no-unnecessary-type-assertion": OFF,
1794
- "ts/no-unsafe-argument": OFF,
1795
- "ts/no-unsafe-assignment": OFF,
1796
- "ts/no-unsafe-call": OFF,
1797
- "ts/no-unsafe-member-access": OFF,
1798
- "ts/no-unsafe-return": OFF,
1799
- "ts/restrict-plus-operands": OFF,
1800
- "ts/restrict-template-expressions": OFF,
1801
- "ts/unbound-method": OFF
1802
- },
1803
1061
  ...overrides
1804
1062
  }
1805
1063
  }
@@ -1870,7 +1128,7 @@ async function perfectionist() {
1870
1128
  // src/configs/react.ts
1871
1129
  async function react(options = {}) {
1872
1130
  const {
1873
- files = [GLOB_JS, GLOB_JSX, GLOB_TS, GLOB_TSX],
1131
+ files = [GLOB_SRC],
1874
1132
  overrides = {}
1875
1133
  } = options;
1876
1134
  const [
@@ -2006,6 +1264,7 @@ async function sortPackageJson() {
2006
1264
  "packageManager",
2007
1265
  "description",
2008
1266
  "author",
1267
+ "contributors",
2009
1268
  "license",
2010
1269
  "funding",
2011
1270
  "homepage",
@@ -2271,12 +1530,14 @@ async function typescript(options = {}) {
2271
1530
  ...componentExts.map((ext) => `**/*.${ext}`)
2272
1531
  ];
2273
1532
  const filesTypeAware = options.filesTypeAware ?? [GLOB_TS, GLOB_TSX];
1533
+ const ignoresTypeAware = options.ignoresTypeAware ?? [
1534
+ `${GLOB_MARKDOWN}/**`
1535
+ ];
2274
1536
  const tsconfigPath = options?.tsconfigPath ? toArray(options.tsconfigPath) : void 0;
2275
1537
  const isTypeAware = !!tsconfigPath;
2276
1538
  const typeAwareRules = {
2277
1539
  "dot-notation": OFF,
2278
1540
  "no-implied-eval": OFF,
2279
- "no-throw-literal": OFF,
2280
1541
  "ts/await-thenable": ERROR,
2281
1542
  "ts/dot-notation": [ERROR, { allowKeywords: true }],
2282
1543
  "ts/no-floating-promises": ERROR,
@@ -2284,16 +1545,18 @@ async function typescript(options = {}) {
2284
1545
  "ts/no-implied-eval": ERROR,
2285
1546
  // Temporary turning it off due to performance
2286
1547
  "ts/no-misused-promises": OFF,
2287
- "ts/no-throw-literal": ERROR,
2288
1548
  "ts/no-unnecessary-type-assertion": ERROR,
2289
1549
  "ts/no-unsafe-argument": ERROR,
2290
1550
  "ts/no-unsafe-assignment": ERROR,
2291
1551
  "ts/no-unsafe-call": ERROR,
2292
1552
  "ts/no-unsafe-member-access": ERROR,
2293
1553
  "ts/no-unsafe-return": ERROR,
1554
+ "ts/promise-function-async": "error",
2294
1555
  "ts/restrict-plus-operands": ERROR,
2295
1556
  "ts/restrict-template-expressions": ERROR,
2296
- "ts/strict-boolean-expressions": ERROR,
1557
+ "ts/return-await": [ERROR, "in-try-catch"],
1558
+ "ts/strict-boolean-expressions": [ERROR, { allowNullableBoolean: true, allowNullableObject: true }],
1559
+ "ts/switch-exhaustiveness-check": ERROR,
2297
1560
  "ts/unbound-method": ERROR
2298
1561
  };
2299
1562
  const [
@@ -2313,7 +1576,10 @@ async function typescript(options = {}) {
2313
1576
  extraFileExtensions: componentExts.map((ext) => `.${ext}`),
2314
1577
  sourceType: "module",
2315
1578
  ...typeAware ? {
2316
- project: tsconfigPath,
1579
+ projectService: {
1580
+ allowDefaultProject: ["./*.js"],
1581
+ defaultProject: tsconfigPath
1582
+ },
2317
1583
  tsconfigRootDir: import_node_process.default.cwd()
2318
1584
  } : {},
2319
1585
  ...parserOptions
@@ -2333,9 +1599,11 @@ async function typescript(options = {}) {
2333
1599
  },
2334
1600
  // assign type-aware parser for type-aware files and type-unaware parser for the rest
2335
1601
  ...isTypeAware ? [
2336
- makeParser({ files: filesTypeAware, typeAware: true }),
1602
+ makeParser({ files: filesTypeAware, ignores: ignoresTypeAware, typeAware: true }),
2337
1603
  makeParser({ files, ignores: filesTypeAware, typeAware: false })
2338
- ] : [makeParser({ files, typeAware: false })],
1604
+ ] : [
1605
+ makeParser({ files, typeAware: false })
1606
+ ],
2339
1607
  {
2340
1608
  files,
2341
1609
  name: "vinicunca/typescript/rules",
@@ -2356,8 +1624,7 @@ async function typescript(options = {}) {
2356
1624
  "no-use-before-define": OFF,
2357
1625
  "no-useless-constructor": OFF,
2358
1626
  "ts/array-type": [ERROR, { default: "generic" }],
2359
- "ts/ban-ts-comment": [ERROR, { "ts-ignore": "allow-with-description" }],
2360
- "ts/ban-types": [ERROR, { types: { Function: false } }],
1627
+ "ts/ban-ts-comment": ["error", { "ts-expect-error": "allow-with-description" }],
2361
1628
  "ts/consistent-type-definitions": [ERROR, "interface"],
2362
1629
  "ts/consistent-type-imports": [ERROR, { disallowTypeAnnotations: false, prefer: "type-imports" }],
2363
1630
  "ts/explicit-function-return-type": OFF,
@@ -2369,6 +1636,7 @@ async function typescript(options = {}) {
2369
1636
  "ts/no-dupe-class-members": ERROR,
2370
1637
  "ts/no-empty-function": OFF,
2371
1638
  "ts/no-empty-interface": OFF,
1639
+ "ts/no-empty-object-type": ["error", { allowInterfaces: "always" }],
2372
1640
  "ts/no-explicit-any": OFF,
2373
1641
  "ts/no-import-type-side-effects": ERROR,
2374
1642
  "ts/no-invalid-this": ERROR,
@@ -2398,8 +1666,14 @@ async function typescript(options = {}) {
2398
1666
  ...overrides
2399
1667
  }
2400
1668
  },
1669
+ ...isTypeAware ? [{
1670
+ files: filesTypeAware,
1671
+ ignores: ignoresTypeAware,
1672
+ name: "vinicunca/typescript/rules-type-aware",
1673
+ rules: typeAwareRules
1674
+ }] : [],
2401
1675
  {
2402
- files: ["**/*.d.ts"],
1676
+ files: ["**/*.d.?([cm])ts"],
2403
1677
  name: "vinicunca/typescript/disables/dts",
2404
1678
  rules: {
2405
1679
  "eslint-comments/no-unlimited-disable": OFF,
@@ -2494,7 +1768,7 @@ async function vue(options = {}) {
2494
1768
  const sfcBlocks = options.sfcBlocks === true ? {} : options.sfcBlocks ?? {};
2495
1769
  const {
2496
1770
  indent = 2
2497
- } = isBoolean(stylistic2) ? {} : stylistic2;
1771
+ } = e(stylistic2) ? {} : stylistic2;
2498
1772
  const [
2499
1773
  pluginVue,
2500
1774
  parserVue,
@@ -2645,7 +1919,7 @@ async function yaml(options = {}) {
2645
1919
  const {
2646
1920
  indent = 2,
2647
1921
  quotes = "single"
2648
- } = isBoolean(stylistic2) ? {} : stylistic2;
1922
+ } = e(stylistic2) ? {} : stylistic2;
2649
1923
  const [
2650
1924
  pluginYaml,
2651
1925
  parserYaml
@@ -2726,7 +2000,8 @@ function vinicuncaESLint(options = {}, ...userConfigs) {
2726
2000
  autoRenamePlugins = true,
2727
2001
  componentExts = [],
2728
2002
  gitignore: enableGitignore = true,
2729
- isInEditor = !!((import_node_process2.default.env.VSCODE_PID || import_node_process2.default.env.JETBRAINS_IDE || import_node_process2.default.env.VIM) && !import_node_process2.default.env.CI),
2003
+ isInEditor = !!((import_node_process2.default.env.VSCODE_PID || import_node_process2.default.env.VSCODE_CWD || import_node_process2.default.env.JETBRAINS_IDE || import_node_process2.default.env.VIM || import_node_process2.default.env.NVIM) && !import_node_process2.default.env.CI),
2004
+ jsx: enableJsx = true,
2730
2005
  react: enableReact = false,
2731
2006
  regexp: enableRegexp = true,
2732
2007
  typescript: enableTypeScript = (0, import_local_pkg.isPackageExists)("typescript"),
@@ -2736,19 +2011,22 @@ function vinicuncaESLint(options = {}, ...userConfigs) {
2736
2011
  let stylisticOptions = {};
2737
2012
  if (options.stylistic === false) {
2738
2013
  stylisticOptions = false;
2739
- } else if (isObject(options.stylistic)) {
2014
+ } else if (r(options.stylistic)) {
2740
2015
  stylisticOptions = {
2741
2016
  ...options.stylistic,
2742
2017
  jsx: options.jsx ?? true
2743
2018
  };
2744
2019
  }
2020
+ if (stylisticOptions && !("jsx" in stylisticOptions)) {
2021
+ stylisticOptions.jsx = enableJsx;
2022
+ }
2745
2023
  const configs2 = [];
2746
2024
  if (enableGitignore) {
2747
2025
  if (typeof enableGitignore !== "boolean") {
2748
- configs2.push(interopDefault(import("eslint-config-flat-gitignore")).then((r) => [r(enableGitignore)]));
2026
+ configs2.push(interopDefault(import("eslint-config-flat-gitignore")).then((r2) => [r2(enableGitignore)]));
2749
2027
  } else {
2750
2028
  if (import_node_fs.default.existsSync(".gitignore")) {
2751
- configs2.push(interopDefault(import("eslint-config-flat-gitignore")).then((r) => [r()]));
2029
+ configs2.push(interopDefault(import("eslint-config-flat-gitignore")).then((r2) => [r2()]));
2752
2030
  }
2753
2031
  }
2754
2032
  }
@@ -2773,6 +2051,9 @@ function vinicuncaESLint(options = {}, ...userConfigs) {
2773
2051
  if (enableVue) {
2774
2052
  componentExts.push("vue");
2775
2053
  }
2054
+ if (enableJsx) {
2055
+ configs2.push(jsx());
2056
+ }
2776
2057
  if (enableTypeScript) {
2777
2058
  configs2.push(typescript({
2778
2059
  ...typescriptOptions,
@@ -2875,7 +2156,7 @@ function getOverrides(options, key) {
2875
2156
  };
2876
2157
  }
2877
2158
  function resolveSubOptions(options, key) {
2878
- return isBoolean(options[key]) ? {} : options[key] || {};
2159
+ return e(options[key]) ? {} : options[key] || {};
2879
2160
  }
2880
2161
  // Annotate the CommonJS export names for ESM import in node:
2881
2162
  0 && (module.exports = {
@@ -2913,6 +2194,7 @@ function resolveSubOptions(options, key) {
2913
2194
  javascript,
2914
2195
  jsdoc,
2915
2196
  jsonc,
2197
+ jsx,
2916
2198
  markdown,
2917
2199
  node,
2918
2200
  parserPlain,