eslint-plugin-remeda 1.0.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js ADDED
@@ -0,0 +1,3755 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __export = (target, all) => {
3
+ for (var name in all)
4
+ __defProp(target, name, { get: all[name], enumerable: true });
5
+ };
6
+
7
+ // src/index.ts
8
+ import _2 from "lodash";
9
+
10
+ // package.json
11
+ var version = "0.0.0-development";
12
+ var package_default = {
13
+ name: "eslint-plugin-remeda",
14
+ version,
15
+ author: "Andrea Pontrandolfo <andrea.pontra@gmail.com>",
16
+ description: "ESLint plugin for Remeda library.",
17
+ type: "module",
18
+ main: "dist/index.js",
19
+ scripts: {
20
+ build: "tsup",
21
+ typecheck: "tsc",
22
+ knip: "knip",
23
+ publint: "publint",
24
+ "test:watch": "vitest --ui",
25
+ test: "vitest run",
26
+ attw: "attw --pack .",
27
+ qa: "pnpm typecheck && pnpm test && pnpm knip && pnpm publint && attw",
28
+ "semantic-release": "pnpm build && semantic-release"
29
+ },
30
+ files: [
31
+ "README.md",
32
+ "dist",
33
+ "docs"
34
+ ],
35
+ exports: {
36
+ "./package.json": "./package.json",
37
+ ".": {
38
+ import: "./dist/index.js",
39
+ default: "./dist/index.cjs"
40
+ }
41
+ },
42
+ repository: {
43
+ type: "git",
44
+ url: "git+https://github.com/AndreaPontrandolfo/eslint-plugin-remeda.git"
45
+ },
46
+ homepage: "https://github.com/AndreaPontrandolfo/eslint-plugin-remeda",
47
+ bugs: "https://github.com/AndreaPontrandolfo/eslint-plugin-remeda/issues",
48
+ peerDependencies: {
49
+ eslint: ">=9.0.0"
50
+ },
51
+ devDependencies: {
52
+ "@arethetypeswrong/cli": "^0.15.4",
53
+ "@types/lodash": "^4.17.7",
54
+ "@types/node": "^20.14.9",
55
+ "@vitest/coverage-v8": "^2.0.3",
56
+ "@vitest/ui": "^2.0.3",
57
+ eslint: "^9.7.0",
58
+ "eslint-plugin-eslint-plugin": "^4.2.0",
59
+ "eslint-vitest-rule-tester": "^0.3.3",
60
+ knip: "^5.29.1",
61
+ prettier: "^3.3.2",
62
+ publint: "^0.2.10",
63
+ "semantic-release": "^24.0.0",
64
+ tsup: "^8.2.4",
65
+ typescript: "^5.5.2",
66
+ vitest: "^2.0.3"
67
+ },
68
+ engines: {
69
+ node: ">=20"
70
+ },
71
+ packageManager: "pnpm@9.7.1",
72
+ publishConfig: {
73
+ access: "public"
74
+ },
75
+ keywords: [
76
+ "eslint",
77
+ "eslint-plugin",
78
+ "eslint plugin",
79
+ "eslintplugin",
80
+ "remeda",
81
+ "functional",
82
+ "fp"
83
+ ],
84
+ license: "MIT",
85
+ dependencies: {
86
+ lodash: "^4.17.21"
87
+ }
88
+ };
89
+
90
+ // src/util/getDocsUrl.ts
91
+ var REPO_URL = "https://github.com/AndreaPontrandolfo/eslint-plugin-remeda";
92
+ function getDocsUrl(ruleName) {
93
+ return `${REPO_URL}/blob/v${version}/docs/rules/${ruleName}.md`;
94
+ }
95
+
96
+ // src/util/remedaUtil.ts
97
+ import { includes as includes4, capitalize as capitalize2 } from "lodash";
98
+
99
+ // src/util/methodDataUtil.ts
100
+ import { includes as includes2, get as get2, isObject as isObject2, has as has2 } from "lodash";
101
+
102
+ // src/util/methodData.ts
103
+ var methodData_exports = {};
104
+ __export(methodData_exports, {
105
+ add: () => add,
106
+ after: () => after,
107
+ ary: () => ary,
108
+ assign: () => assign,
109
+ assignIn: () => assignIn,
110
+ assignInWith: () => assignInWith,
111
+ assignWith: () => assignWith,
112
+ at: () => at,
113
+ attempt: () => attempt,
114
+ before: () => before,
115
+ bind: () => bind,
116
+ bindAll: () => bindAll,
117
+ bindKey: () => bindKey,
118
+ camelCase: () => camelCase,
119
+ capitalize: () => capitalize,
120
+ castArray: () => castArray,
121
+ ceil: () => ceil,
122
+ chain: () => chain,
123
+ chunk: () => chunk,
124
+ clamp: () => clamp,
125
+ clone: () => clone,
126
+ cloneDeep: () => cloneDeep,
127
+ cloneDeepWith: () => cloneDeepWith,
128
+ cloneWith: () => cloneWith,
129
+ commit: () => commit,
130
+ concat: () => concat,
131
+ cond: () => cond,
132
+ conforms: () => conforms,
133
+ conformsTo: () => conformsTo,
134
+ constant: () => constant,
135
+ countBy: () => countBy,
136
+ create: () => create,
137
+ curry: () => curry,
138
+ curryRight: () => curryRight,
139
+ debounce: () => debounce,
140
+ deburr: () => deburr,
141
+ defaultTo: () => defaultTo,
142
+ defaults: () => defaults,
143
+ defaultsDeep: () => defaultsDeep,
144
+ defer: () => defer,
145
+ delay: () => delay,
146
+ difference: () => difference,
147
+ differenceBy: () => differenceBy,
148
+ differenceWith: () => differenceWith,
149
+ divide: () => divide,
150
+ drop: () => drop,
151
+ dropRight: () => dropRight,
152
+ dropRightWhile: () => dropRightWhile,
153
+ dropWhile: () => dropWhile,
154
+ endsWith: () => endsWith,
155
+ eq: () => eq,
156
+ escape: () => escape,
157
+ escapeRegExp: () => escapeRegExp,
158
+ every: () => every,
159
+ fill: () => fill,
160
+ filter: () => filter,
161
+ find: () => find,
162
+ findIndex: () => findIndex,
163
+ findKey: () => findKey,
164
+ findLast: () => findLast,
165
+ findLastIndex: () => findLastIndex,
166
+ findLastKey: () => findLastKey,
167
+ first: () => first,
168
+ flatMap: () => flatMap,
169
+ flatMapDeep: () => flatMapDeep,
170
+ flatMapDepth: () => flatMapDepth,
171
+ flatten: () => flatten,
172
+ flattenDeep: () => flattenDeep,
173
+ flattenDepth: () => flattenDepth,
174
+ flip: () => flip,
175
+ floor: () => floor,
176
+ flow: () => flow,
177
+ flowRight: () => flowRight,
178
+ forEach: () => forEach,
179
+ forEachRight: () => forEachRight,
180
+ forIn: () => forIn,
181
+ forInRight: () => forInRight,
182
+ forOwn: () => forOwn,
183
+ forOwnRight: () => forOwnRight,
184
+ fromPairs: () => fromPairs,
185
+ functions: () => functions,
186
+ functionsIn: () => functionsIn,
187
+ get: () => get,
188
+ groupBy: () => groupBy,
189
+ gt: () => gt,
190
+ gte: () => gte,
191
+ has: () => has,
192
+ hasIn: () => hasIn,
193
+ head: () => head,
194
+ identity: () => identity,
195
+ inRange: () => inRange,
196
+ includes: () => includes,
197
+ indexBy: () => indexBy,
198
+ indexOf: () => indexOf,
199
+ initial: () => initial,
200
+ intersection: () => intersection,
201
+ intersectionBy: () => intersectionBy,
202
+ intersectionWith: () => intersectionWith,
203
+ invert: () => invert,
204
+ invertBy: () => invertBy,
205
+ invoke: () => invoke,
206
+ invokeMap: () => invokeMap,
207
+ isArguments: () => isArguments,
208
+ isArray: () => isArray,
209
+ isArrayBuffer: () => isArrayBuffer,
210
+ isArrayLike: () => isArrayLike,
211
+ isArrayLikeObject: () => isArrayLikeObject,
212
+ isBoolean: () => isBoolean,
213
+ isBuffer: () => isBuffer,
214
+ isDate: () => isDate,
215
+ isElement: () => isElement,
216
+ isEmpty: () => isEmpty,
217
+ isEqual: () => isEqual,
218
+ isEqualWith: () => isEqualWith,
219
+ isError: () => isError,
220
+ isFinite: () => isFinite,
221
+ isFunction: () => isFunction,
222
+ isInteger: () => isInteger,
223
+ isLength: () => isLength,
224
+ isMap: () => isMap,
225
+ isMatch: () => isMatch,
226
+ isMatchWith: () => isMatchWith,
227
+ isNaN: () => isNaN,
228
+ isNative: () => isNative,
229
+ isNil: () => isNil,
230
+ isNull: () => isNull,
231
+ isNumber: () => isNumber,
232
+ isObject: () => isObject,
233
+ isObjectLike: () => isObjectLike,
234
+ isPlainObject: () => isPlainObject,
235
+ isRegExp: () => isRegExp,
236
+ isSafeInteger: () => isSafeInteger,
237
+ isSet: () => isSet,
238
+ isString: () => isString,
239
+ isSymbol: () => isSymbol,
240
+ isTypedArray: () => isTypedArray,
241
+ isUndefined: () => isUndefined,
242
+ isWeakMap: () => isWeakMap,
243
+ isWeakSet: () => isWeakSet,
244
+ iteratee: () => iteratee,
245
+ join: () => join,
246
+ kebabCase: () => kebabCase,
247
+ keyBy: () => keyBy,
248
+ keys: () => keys,
249
+ keysIn: () => keysIn,
250
+ last: () => last,
251
+ lastIndexOf: () => lastIndexOf,
252
+ lowerCase: () => lowerCase,
253
+ lowerFirst: () => lowerFirst,
254
+ lt: () => lt,
255
+ lte: () => lte,
256
+ map: () => map,
257
+ mapKeys: () => mapKeys,
258
+ mapValues: () => mapValues,
259
+ matches: () => matches,
260
+ matchesProperty: () => matchesProperty,
261
+ max: () => max,
262
+ maxBy: () => maxBy,
263
+ mean: () => mean,
264
+ meanBy: () => meanBy,
265
+ memoize: () => memoize,
266
+ merge: () => merge,
267
+ mergeWith: () => mergeWith,
268
+ method: () => method,
269
+ methodOf: () => methodOf,
270
+ min: () => min,
271
+ minBy: () => minBy,
272
+ mixin: () => mixin,
273
+ multiply: () => multiply,
274
+ negate: () => negate,
275
+ next: () => next,
276
+ noConflict: () => noConflict,
277
+ noop: () => noop,
278
+ now: () => now,
279
+ nth: () => nth,
280
+ nthArg: () => nthArg,
281
+ omit: () => omit,
282
+ omitBy: () => omitBy,
283
+ once: () => once,
284
+ orderBy: () => orderBy,
285
+ over: () => over,
286
+ overArgs: () => overArgs,
287
+ overEvery: () => overEvery,
288
+ overSome: () => overSome,
289
+ pad: () => pad,
290
+ padEnd: () => padEnd,
291
+ padStart: () => padStart,
292
+ parseInt: () => parseInt2,
293
+ partial: () => partial,
294
+ partialRight: () => partialRight,
295
+ partition: () => partition,
296
+ pick: () => pick,
297
+ pickBy: () => pickBy,
298
+ plant: () => plant,
299
+ pop: () => pop,
300
+ property: () => property,
301
+ propertyOf: () => propertyOf,
302
+ pull: () => pull,
303
+ pullAll: () => pullAll,
304
+ pullAllBy: () => pullAllBy,
305
+ pullAllWith: () => pullAllWith,
306
+ pullAt: () => pullAt,
307
+ push: () => push,
308
+ random: () => random,
309
+ range: () => range,
310
+ rangeRight: () => rangeRight,
311
+ rearg: () => rearg,
312
+ reduce: () => reduce,
313
+ reduceRight: () => reduceRight,
314
+ reject: () => reject,
315
+ remove: () => remove,
316
+ repeat: () => repeat,
317
+ replace: () => replace,
318
+ rest: () => rest,
319
+ result: () => result,
320
+ reverse: () => reverse,
321
+ round: () => round,
322
+ runInContext: () => runInContext,
323
+ sample: () => sample,
324
+ sampleSize: () => sampleSize,
325
+ set: () => set,
326
+ setWith: () => setWith,
327
+ shift: () => shift,
328
+ shuffle: () => shuffle,
329
+ size: () => size,
330
+ slice: () => slice,
331
+ snakeCase: () => snakeCase,
332
+ some: () => some,
333
+ sort: () => sort,
334
+ sortBy: () => sortBy,
335
+ sortedIndex: () => sortedIndex,
336
+ sortedIndexBy: () => sortedIndexBy,
337
+ sortedIndexOf: () => sortedIndexOf,
338
+ sortedLastIndex: () => sortedLastIndex,
339
+ sortedLastIndexBy: () => sortedLastIndexBy,
340
+ sortedLastIndexOf: () => sortedLastIndexOf,
341
+ sortedUniq: () => sortedUniq,
342
+ sortedUniqBy: () => sortedUniqBy,
343
+ splice: () => splice,
344
+ split: () => split,
345
+ spread: () => spread,
346
+ startCase: () => startCase,
347
+ startsWith: () => startsWith,
348
+ stubArray: () => stubArray,
349
+ stubFalse: () => stubFalse,
350
+ stubObject: () => stubObject,
351
+ stubString: () => stubString,
352
+ stubTrue: () => stubTrue,
353
+ subtract: () => subtract,
354
+ sum: () => sum,
355
+ sumBy: () => sumBy,
356
+ tail: () => tail,
357
+ take: () => take,
358
+ takeRight: () => takeRight,
359
+ takeRightWhile: () => takeRightWhile,
360
+ takeWhile: () => takeWhile,
361
+ tap: () => tap,
362
+ template: () => template,
363
+ throttle: () => throttle,
364
+ thru: () => thru,
365
+ times: () => times,
366
+ toArray: () => toArray,
367
+ toFinite: () => toFinite,
368
+ toInteger: () => toInteger,
369
+ toLength: () => toLength,
370
+ toLower: () => toLower,
371
+ toNumber: () => toNumber,
372
+ toPairs: () => toPairs,
373
+ toPairsIn: () => toPairsIn,
374
+ toPath: () => toPath,
375
+ toPlainObject: () => toPlainObject,
376
+ toSafeInteger: () => toSafeInteger,
377
+ toString: () => toString,
378
+ toUpper: () => toUpper,
379
+ transform: () => transform,
380
+ trim: () => trim,
381
+ trimEnd: () => trimEnd,
382
+ trimStart: () => trimStart,
383
+ truncate: () => truncate,
384
+ unary: () => unary,
385
+ unescape: () => unescape,
386
+ union: () => union,
387
+ unionBy: () => unionBy,
388
+ unionWith: () => unionWith,
389
+ uniq: () => uniq,
390
+ uniqBy: () => uniqBy,
391
+ uniqWith: () => uniqWith,
392
+ uniqueId: () => uniqueId,
393
+ unset: () => unset,
394
+ unshift: () => unshift,
395
+ unzip: () => unzip,
396
+ unzipWith: () => unzipWith,
397
+ update: () => update,
398
+ updateWith: () => updateWith,
399
+ upperCase: () => upperCase,
400
+ upperFirst: () => upperFirst,
401
+ value: () => value,
402
+ values: () => values,
403
+ valuesIn: () => valuesIn,
404
+ without: () => without,
405
+ words: () => words,
406
+ wrap: () => wrap,
407
+ xor: () => xor,
408
+ xorBy: () => xorBy,
409
+ xorWith: () => xorWith,
410
+ zip: () => zip,
411
+ zipObject: () => zipObject,
412
+ zipObjectDeep: () => zipObjectDeep,
413
+ zipWith: () => zipWith
414
+ });
415
+ var add = {
416
+ wrapper: false,
417
+ shorthand: false,
418
+ chainable: false,
419
+ iteratee: false,
420
+ args: 2
421
+ };
422
+ var after = {
423
+ wrapper: false,
424
+ shorthand: false,
425
+ chainable: true,
426
+ iteratee: false,
427
+ args: 2
428
+ };
429
+ var ary = {
430
+ wrapper: false,
431
+ shorthand: false,
432
+ chainable: true,
433
+ iteratee: false,
434
+ args: 2
435
+ };
436
+ var assign = {
437
+ wrapper: false,
438
+ shorthand: false,
439
+ chainable: true,
440
+ iteratee: false
441
+ };
442
+ var assignIn = {
443
+ wrapper: false,
444
+ shorthand: false,
445
+ chainable: true,
446
+ iteratee: false
447
+ };
448
+ var assignInWith = {
449
+ wrapper: false,
450
+ shorthand: false,
451
+ chainable: true,
452
+ iteratee: false
453
+ };
454
+ var assignWith = {
455
+ wrapper: false,
456
+ shorthand: false,
457
+ chainable: true,
458
+ iteratee: false
459
+ };
460
+ var at = {
461
+ wrapper: false,
462
+ shorthand: false,
463
+ chainable: true,
464
+ iteratee: false
465
+ };
466
+ var attempt = {
467
+ wrapper: false,
468
+ shorthand: false,
469
+ chainable: false,
470
+ iteratee: false
471
+ };
472
+ var before = {
473
+ wrapper: false,
474
+ shorthand: false,
475
+ chainable: true,
476
+ iteratee: false,
477
+ args: 2
478
+ };
479
+ var bind = {
480
+ wrapper: false,
481
+ shorthand: false,
482
+ chainable: true,
483
+ iteratee: false
484
+ };
485
+ var bindAll = {
486
+ wrapper: false,
487
+ shorthand: false,
488
+ chainable: true,
489
+ iteratee: false
490
+ };
491
+ var bindKey = {
492
+ wrapper: false,
493
+ shorthand: false,
494
+ chainable: true,
495
+ iteratee: false
496
+ };
497
+ var camelCase = {
498
+ wrapper: false,
499
+ shorthand: false,
500
+ chainable: false,
501
+ iteratee: false,
502
+ args: 1
503
+ };
504
+ var capitalize = {
505
+ wrapper: false,
506
+ shorthand: false,
507
+ chainable: false,
508
+ iteratee: false,
509
+ args: 1
510
+ };
511
+ var castArray = {
512
+ wrapper: false,
513
+ shorthand: false,
514
+ chainable: true,
515
+ iteratee: false,
516
+ args: 1
517
+ };
518
+ var ceil = {
519
+ wrapper: false,
520
+ shorthand: false,
521
+ chainable: false,
522
+ iteratee: false,
523
+ args: 2
524
+ };
525
+ var chain = {
526
+ wrapper: false,
527
+ shorthand: false,
528
+ chainable: true,
529
+ iteratee: false,
530
+ args: 1
531
+ };
532
+ var chunk = {
533
+ wrapper: false,
534
+ shorthand: false,
535
+ chainable: true,
536
+ iteratee: false,
537
+ args: 2
538
+ };
539
+ var clamp = {
540
+ wrapper: false,
541
+ shorthand: false,
542
+ chainable: false,
543
+ iteratee: false,
544
+ args: 3
545
+ };
546
+ var clone = {
547
+ wrapper: false,
548
+ shorthand: false,
549
+ chainable: false,
550
+ iteratee: false,
551
+ args: 1
552
+ };
553
+ var cloneDeep = {
554
+ wrapper: false,
555
+ shorthand: false,
556
+ chainable: false,
557
+ iteratee: false,
558
+ args: 1
559
+ };
560
+ var cloneDeepWith = {
561
+ wrapper: false,
562
+ shorthand: false,
563
+ chainable: false,
564
+ iteratee: true,
565
+ args: 2
566
+ };
567
+ var cloneWith = {
568
+ wrapper: false,
569
+ shorthand: false,
570
+ chainable: false,
571
+ iteratee: true,
572
+ args: 2
573
+ };
574
+ var commit = {
575
+ wrapper: false,
576
+ shorthand: false,
577
+ chainable: true,
578
+ iteratee: false
579
+ };
580
+ var concat = {
581
+ wrapper: true,
582
+ shorthand: false,
583
+ chainable: true,
584
+ iteratee: false
585
+ };
586
+ var cond = {
587
+ wrapper: false,
588
+ shorthand: false,
589
+ chainable: false,
590
+ iteratee: false,
591
+ args: 1
592
+ };
593
+ var conforms = {
594
+ wrapper: false,
595
+ shorthand: false,
596
+ chainable: true,
597
+ iteratee: false,
598
+ args: 1
599
+ };
600
+ var conformsTo = {
601
+ wrapper: false,
602
+ shorthand: false,
603
+ chainable: false,
604
+ iteratee: false,
605
+ args: 2
606
+ };
607
+ var constant = {
608
+ wrapper: false,
609
+ shorthand: false,
610
+ chainable: true,
611
+ iteratee: false,
612
+ args: 1
613
+ };
614
+ var countBy = {
615
+ wrapper: false,
616
+ shorthand: true,
617
+ chainable: true,
618
+ iteratee: true,
619
+ args: 2
620
+ };
621
+ var create = {
622
+ wrapper: false,
623
+ shorthand: false,
624
+ chainable: true,
625
+ iteratee: false,
626
+ args: 2
627
+ };
628
+ var curry = {
629
+ wrapper: false,
630
+ shorthand: false,
631
+ chainable: true,
632
+ iteratee: false,
633
+ args: 2
634
+ };
635
+ var curryRight = {
636
+ wrapper: false,
637
+ shorthand: false,
638
+ chainable: false,
639
+ iteratee: false,
640
+ args: 2
641
+ };
642
+ var debounce = {
643
+ wrapper: false,
644
+ shorthand: false,
645
+ chainable: true,
646
+ iteratee: false,
647
+ args: 3
648
+ };
649
+ var deburr = {
650
+ wrapper: false,
651
+ shorthand: false,
652
+ chainable: false,
653
+ iteratee: false,
654
+ args: 1
655
+ };
656
+ var defaultTo = {
657
+ wrapper: false,
658
+ shorthand: false,
659
+ chainable: false,
660
+ iteratee: false,
661
+ args: 2
662
+ };
663
+ var defaults = {
664
+ wrapper: false,
665
+ shorthand: false,
666
+ chainable: true,
667
+ iteratee: false
668
+ };
669
+ var defaultsDeep = {
670
+ wrapper: false,
671
+ shorthand: false,
672
+ chainable: true,
673
+ iteratee: false
674
+ };
675
+ var defer = {
676
+ wrapper: false,
677
+ shorthand: false,
678
+ chainable: true,
679
+ iteratee: false
680
+ };
681
+ var delay = {
682
+ wrapper: false,
683
+ shorthand: false,
684
+ chainable: true,
685
+ iteratee: false
686
+ };
687
+ var difference = {
688
+ wrapper: false,
689
+ shorthand: false,
690
+ chainable: true,
691
+ iteratee: false
692
+ };
693
+ var differenceBy = {
694
+ wrapper: false,
695
+ shorthand: true,
696
+ chainable: true,
697
+ iteratee: true
698
+ };
699
+ var differenceWith = {
700
+ wrapper: false,
701
+ shorthand: false,
702
+ chainable: true,
703
+ iteratee: false
704
+ };
705
+ var divide = {
706
+ wrapper: false,
707
+ shorthand: false,
708
+ chainable: false,
709
+ iteratee: false,
710
+ args: 2
711
+ };
712
+ var drop = {
713
+ wrapper: false,
714
+ shorthand: false,
715
+ chainable: true,
716
+ iteratee: false,
717
+ args: 2
718
+ };
719
+ var dropRight = {
720
+ wrapper: false,
721
+ shorthand: false,
722
+ chainable: true,
723
+ iteratee: false,
724
+ args: 2
725
+ };
726
+ var dropRightWhile = {
727
+ wrapper: false,
728
+ shorthand: true,
729
+ chainable: true,
730
+ iteratee: true,
731
+ args: 3
732
+ };
733
+ var dropWhile = {
734
+ wrapper: false,
735
+ shorthand: true,
736
+ chainable: true,
737
+ iteratee: true,
738
+ args: 3
739
+ };
740
+ var endsWith = {
741
+ wrapper: false,
742
+ shorthand: false,
743
+ chainable: false,
744
+ iteratee: false,
745
+ args: 3
746
+ };
747
+ var eq = {
748
+ wrapper: false,
749
+ shorthand: false,
750
+ chainable: false,
751
+ iteratee: false,
752
+ args: 2
753
+ };
754
+ var escape = {
755
+ wrapper: false,
756
+ shorthand: false,
757
+ chainable: false,
758
+ iteratee: false,
759
+ args: 1
760
+ };
761
+ var escapeRegExp = {
762
+ wrapper: false,
763
+ shorthand: false,
764
+ chainable: false,
765
+ iteratee: false,
766
+ args: 1
767
+ };
768
+ var every = {
769
+ wrapper: false,
770
+ shorthand: true,
771
+ chainable: false,
772
+ iteratee: true,
773
+ args: 2
774
+ };
775
+ var fill = {
776
+ wrapper: false,
777
+ shorthand: false,
778
+ chainable: true,
779
+ iteratee: false,
780
+ args: 4
781
+ };
782
+ var filter = {
783
+ wrapper: false,
784
+ shorthand: true,
785
+ chainable: true,
786
+ iteratee: true,
787
+ args: 2
788
+ };
789
+ var find = {
790
+ wrapper: false,
791
+ shorthand: true,
792
+ chainable: false,
793
+ iteratee: true,
794
+ args: 3
795
+ };
796
+ var findIndex = {
797
+ wrapper: false,
798
+ shorthand: true,
799
+ chainable: false,
800
+ iteratee: true,
801
+ args: 3
802
+ };
803
+ var findKey = {
804
+ wrapper: false,
805
+ shorthand: true,
806
+ chainable: false,
807
+ iteratee: true,
808
+ args: 2
809
+ };
810
+ var findLast = {
811
+ wrapper: false,
812
+ shorthand: true,
813
+ chainable: false,
814
+ iteratee: true,
815
+ args: 3
816
+ };
817
+ var findLastIndex = {
818
+ wrapper: false,
819
+ shorthand: true,
820
+ chainable: false,
821
+ iteratee: true,
822
+ args: 3
823
+ };
824
+ var findLastKey = {
825
+ wrapper: false,
826
+ shorthand: true,
827
+ chainable: false,
828
+ iteratee: true,
829
+ args: 2
830
+ };
831
+ var flatMap = {
832
+ wrapper: false,
833
+ shorthand: true,
834
+ chainable: true,
835
+ iteratee: true,
836
+ args: 2
837
+ };
838
+ var flatMapDeep = {
839
+ wrapper: false,
840
+ shorthand: true,
841
+ chainable: true,
842
+ iteratee: true,
843
+ args: 2
844
+ };
845
+ var flatMapDepth = {
846
+ wrapper: false,
847
+ shorthand: true,
848
+ chainable: true,
849
+ iteratee: true,
850
+ args: 3
851
+ };
852
+ var flatten = {
853
+ wrapper: false,
854
+ shorthand: false,
855
+ chainable: true,
856
+ iteratee: false,
857
+ args: 1
858
+ };
859
+ var flattenDeep = {
860
+ wrapper: false,
861
+ shorthand: false,
862
+ chainable: true,
863
+ iteratee: false,
864
+ args: 1
865
+ };
866
+ var flattenDepth = {
867
+ wrapper: false,
868
+ shorthand: false,
869
+ chainable: true,
870
+ iteratee: false,
871
+ args: 2
872
+ };
873
+ var flip = {
874
+ wrapper: false,
875
+ shorthand: false,
876
+ chainable: true,
877
+ iteratee: false,
878
+ args: 1
879
+ };
880
+ var floor = {
881
+ wrapper: false,
882
+ shorthand: false,
883
+ chainable: false,
884
+ iteratee: false,
885
+ args: 2
886
+ };
887
+ var flow = {
888
+ wrapper: false,
889
+ shorthand: false,
890
+ chainable: true,
891
+ iteratee: false
892
+ };
893
+ var flowRight = {
894
+ wrapper: false,
895
+ shorthand: false,
896
+ chainable: true,
897
+ iteratee: false
898
+ };
899
+ var forEach = {
900
+ wrapper: false,
901
+ shorthand: false,
902
+ chainable: false,
903
+ iteratee: true,
904
+ args: 2
905
+ };
906
+ var forEachRight = {
907
+ wrapper: false,
908
+ shorthand: false,
909
+ chainable: false,
910
+ iteratee: true,
911
+ args: 2
912
+ };
913
+ var forIn = {
914
+ wrapper: false,
915
+ shorthand: false,
916
+ chainable: false,
917
+ iteratee: true,
918
+ args: 2
919
+ };
920
+ var forInRight = {
921
+ wrapper: false,
922
+ shorthand: false,
923
+ chainable: false,
924
+ iteratee: true,
925
+ args: 2
926
+ };
927
+ var forOwn = {
928
+ wrapper: false,
929
+ shorthand: false,
930
+ chainable: false,
931
+ iteratee: true,
932
+ args: 2
933
+ };
934
+ var forOwnRight = {
935
+ wrapper: false,
936
+ shorthand: false,
937
+ chainable: false,
938
+ iteratee: true,
939
+ args: 2
940
+ };
941
+ var fromPairs = {
942
+ wrapper: false,
943
+ shorthand: false,
944
+ chainable: true,
945
+ iteratee: false,
946
+ args: 1
947
+ };
948
+ var functions = {
949
+ wrapper: false,
950
+ shorthand: false,
951
+ chainable: true,
952
+ iteratee: false,
953
+ args: 1
954
+ };
955
+ var functionsIn = {
956
+ wrapper: false,
957
+ shorthand: false,
958
+ chainable: true,
959
+ iteratee: false,
960
+ args: 1
961
+ };
962
+ var get = {
963
+ wrapper: false,
964
+ shorthand: false,
965
+ chainable: false,
966
+ iteratee: false,
967
+ args: 3
968
+ };
969
+ var groupBy = {
970
+ wrapper: false,
971
+ shorthand: true,
972
+ chainable: true,
973
+ iteratee: true,
974
+ args: 2
975
+ };
976
+ var gt = {
977
+ wrapper: false,
978
+ shorthand: false,
979
+ chainable: false,
980
+ iteratee: false,
981
+ args: 2
982
+ };
983
+ var gte = {
984
+ wrapper: false,
985
+ shorthand: false,
986
+ chainable: false,
987
+ iteratee: false,
988
+ args: 2
989
+ };
990
+ var has = {
991
+ wrapper: false,
992
+ shorthand: false,
993
+ chainable: false,
994
+ iteratee: false,
995
+ args: 2
996
+ };
997
+ var hasIn = {
998
+ wrapper: false,
999
+ shorthand: false,
1000
+ chainable: false,
1001
+ iteratee: false,
1002
+ args: 2
1003
+ };
1004
+ var head = {
1005
+ wrapper: false,
1006
+ shorthand: false,
1007
+ chainable: false,
1008
+ iteratee: false,
1009
+ args: 1
1010
+ };
1011
+ var first = {
1012
+ wrapper: false,
1013
+ shorthand: false,
1014
+ chainable: false,
1015
+ iteratee: false,
1016
+ args: 1
1017
+ };
1018
+ var identity = {
1019
+ wrapper: false,
1020
+ shorthand: false,
1021
+ chainable: false,
1022
+ iteratee: false,
1023
+ args: 1
1024
+ };
1025
+ var inRange = {
1026
+ wrapper: false,
1027
+ shorthand: false,
1028
+ chainable: false,
1029
+ iteratee: false,
1030
+ args: 3
1031
+ };
1032
+ var includes = {
1033
+ wrapper: false,
1034
+ shorthand: false,
1035
+ chainable: false,
1036
+ iteratee: false,
1037
+ args: 3
1038
+ };
1039
+ var indexBy = {
1040
+ wrapper: false,
1041
+ shorthand: false,
1042
+ chainable: false,
1043
+ iteratee: true
1044
+ };
1045
+ var indexOf = {
1046
+ wrapper: false,
1047
+ shorthand: false,
1048
+ chainable: false,
1049
+ iteratee: false,
1050
+ args: 3
1051
+ };
1052
+ var initial = {
1053
+ wrapper: false,
1054
+ shorthand: false,
1055
+ chainable: true,
1056
+ iteratee: false,
1057
+ args: 1
1058
+ };
1059
+ var intersection = {
1060
+ wrapper: false,
1061
+ shorthand: false,
1062
+ chainable: true,
1063
+ iteratee: false
1064
+ };
1065
+ var intersectionBy = {
1066
+ wrapper: false,
1067
+ shorthand: true,
1068
+ chainable: true,
1069
+ iteratee: true
1070
+ };
1071
+ var intersectionWith = {
1072
+ wrapper: false,
1073
+ shorthand: false,
1074
+ chainable: true,
1075
+ iteratee: false
1076
+ };
1077
+ var invert = {
1078
+ wrapper: false,
1079
+ shorthand: false,
1080
+ chainable: true,
1081
+ iteratee: false,
1082
+ args: 1
1083
+ };
1084
+ var invertBy = {
1085
+ wrapper: false,
1086
+ shorthand: true,
1087
+ chainable: true,
1088
+ iteratee: true,
1089
+ args: 2
1090
+ };
1091
+ var invoke = {
1092
+ wrapper: false,
1093
+ shorthand: false,
1094
+ chainable: false,
1095
+ iteratee: false
1096
+ };
1097
+ var invokeMap = {
1098
+ wrapper: false,
1099
+ shorthand: false,
1100
+ chainable: true,
1101
+ iteratee: false
1102
+ };
1103
+ var isArguments = {
1104
+ wrapper: false,
1105
+ shorthand: false,
1106
+ chainable: false,
1107
+ iteratee: false,
1108
+ args: 1
1109
+ };
1110
+ var isArray = {
1111
+ wrapper: false,
1112
+ shorthand: false,
1113
+ chainable: false,
1114
+ iteratee: false,
1115
+ args: 1
1116
+ };
1117
+ var isArrayBuffer = {
1118
+ wrapper: false,
1119
+ shorthand: false,
1120
+ chainable: false,
1121
+ iteratee: false,
1122
+ args: 1
1123
+ };
1124
+ var isArrayLike = {
1125
+ wrapper: false,
1126
+ shorthand: false,
1127
+ chainable: false,
1128
+ iteratee: false,
1129
+ args: 1
1130
+ };
1131
+ var isArrayLikeObject = {
1132
+ wrapper: false,
1133
+ shorthand: false,
1134
+ chainable: false,
1135
+ iteratee: false,
1136
+ args: 1
1137
+ };
1138
+ var isBoolean = {
1139
+ wrapper: false,
1140
+ shorthand: false,
1141
+ chainable: false,
1142
+ iteratee: false,
1143
+ args: 1
1144
+ };
1145
+ var isBuffer = {
1146
+ wrapper: false,
1147
+ shorthand: false,
1148
+ chainable: false,
1149
+ iteratee: false,
1150
+ args: 1
1151
+ };
1152
+ var isDate = {
1153
+ wrapper: false,
1154
+ shorthand: false,
1155
+ chainable: false,
1156
+ iteratee: false,
1157
+ args: 1
1158
+ };
1159
+ var isElement = {
1160
+ wrapper: false,
1161
+ shorthand: false,
1162
+ chainable: false,
1163
+ iteratee: false,
1164
+ args: 1
1165
+ };
1166
+ var isEmpty = {
1167
+ wrapper: false,
1168
+ shorthand: false,
1169
+ chainable: false,
1170
+ iteratee: false,
1171
+ args: 1
1172
+ };
1173
+ var isEqual = {
1174
+ wrapper: false,
1175
+ shorthand: false,
1176
+ chainable: false,
1177
+ iteratee: false,
1178
+ args: 2
1179
+ };
1180
+ var isEqualWith = {
1181
+ wrapper: false,
1182
+ shorthand: false,
1183
+ chainable: false,
1184
+ iteratee: false,
1185
+ args: 3
1186
+ };
1187
+ var isError = {
1188
+ wrapper: false,
1189
+ shorthand: false,
1190
+ chainable: false,
1191
+ iteratee: false,
1192
+ args: 1
1193
+ };
1194
+ var isFinite = {
1195
+ wrapper: false,
1196
+ shorthand: false,
1197
+ chainable: false,
1198
+ iteratee: false,
1199
+ args: 1
1200
+ };
1201
+ var isFunction = {
1202
+ wrapper: false,
1203
+ shorthand: false,
1204
+ chainable: false,
1205
+ iteratee: false,
1206
+ args: 1
1207
+ };
1208
+ var isInteger = {
1209
+ wrapper: false,
1210
+ shorthand: false,
1211
+ chainable: false,
1212
+ iteratee: false,
1213
+ args: 1
1214
+ };
1215
+ var isLength = {
1216
+ wrapper: false,
1217
+ shorthand: false,
1218
+ chainable: false,
1219
+ iteratee: false,
1220
+ args: 1
1221
+ };
1222
+ var isMap = {
1223
+ wrapper: false,
1224
+ shorthand: false,
1225
+ chainable: false,
1226
+ iteratee: false,
1227
+ args: 1
1228
+ };
1229
+ var isMatch = {
1230
+ wrapper: false,
1231
+ shorthand: false,
1232
+ chainable: false,
1233
+ iteratee: false,
1234
+ args: 2
1235
+ };
1236
+ var isMatchWith = {
1237
+ wrapper: false,
1238
+ shorthand: false,
1239
+ chainable: false,
1240
+ iteratee: false,
1241
+ args: 3
1242
+ };
1243
+ var isNaN = {
1244
+ wrapper: false,
1245
+ shorthand: false,
1246
+ chainable: false,
1247
+ iteratee: false,
1248
+ args: 1
1249
+ };
1250
+ var isNative = {
1251
+ wrapper: false,
1252
+ shorthand: false,
1253
+ chainable: false,
1254
+ iteratee: false,
1255
+ args: 1
1256
+ };
1257
+ var isNil = {
1258
+ wrapper: false,
1259
+ shorthand: false,
1260
+ chainable: false,
1261
+ iteratee: false,
1262
+ args: 1
1263
+ };
1264
+ var isNull = {
1265
+ wrapper: false,
1266
+ shorthand: false,
1267
+ chainable: false,
1268
+ iteratee: false,
1269
+ args: 1
1270
+ };
1271
+ var isNumber = {
1272
+ wrapper: false,
1273
+ shorthand: false,
1274
+ chainable: false,
1275
+ iteratee: false,
1276
+ args: 1
1277
+ };
1278
+ var isObject = {
1279
+ wrapper: false,
1280
+ shorthand: false,
1281
+ chainable: false,
1282
+ iteratee: false,
1283
+ args: 1
1284
+ };
1285
+ var isObjectLike = {
1286
+ wrapper: false,
1287
+ shorthand: false,
1288
+ chainable: false,
1289
+ iteratee: false,
1290
+ args: 1
1291
+ };
1292
+ var isPlainObject = {
1293
+ wrapper: false,
1294
+ shorthand: false,
1295
+ chainable: false,
1296
+ iteratee: false,
1297
+ args: 1
1298
+ };
1299
+ var isRegExp = {
1300
+ wrapper: false,
1301
+ shorthand: false,
1302
+ chainable: false,
1303
+ iteratee: false,
1304
+ args: 1
1305
+ };
1306
+ var isSafeInteger = {
1307
+ wrapper: false,
1308
+ shorthand: false,
1309
+ chainable: false,
1310
+ iteratee: false,
1311
+ args: 1
1312
+ };
1313
+ var isSet = {
1314
+ wrapper: false,
1315
+ shorthand: false,
1316
+ chainable: false,
1317
+ iteratee: false,
1318
+ args: 1
1319
+ };
1320
+ var isString = {
1321
+ wrapper: false,
1322
+ shorthand: false,
1323
+ chainable: false,
1324
+ iteratee: false,
1325
+ args: 1
1326
+ };
1327
+ var isSymbol = {
1328
+ wrapper: false,
1329
+ shorthand: false,
1330
+ chainable: false,
1331
+ iteratee: false,
1332
+ args: 1
1333
+ };
1334
+ var isTypedArray = {
1335
+ wrapper: false,
1336
+ shorthand: false,
1337
+ chainable: false,
1338
+ iteratee: false,
1339
+ args: 1
1340
+ };
1341
+ var isUndefined = {
1342
+ wrapper: false,
1343
+ shorthand: false,
1344
+ chainable: false,
1345
+ iteratee: false,
1346
+ args: 1
1347
+ };
1348
+ var isWeakMap = {
1349
+ wrapper: false,
1350
+ shorthand: false,
1351
+ chainable: false,
1352
+ iteratee: false,
1353
+ args: 1
1354
+ };
1355
+ var isWeakSet = {
1356
+ wrapper: false,
1357
+ shorthand: false,
1358
+ chainable: false,
1359
+ iteratee: false,
1360
+ args: 1
1361
+ };
1362
+ var iteratee = {
1363
+ wrapper: false,
1364
+ shorthand: false,
1365
+ chainable: true,
1366
+ iteratee: false
1367
+ };
1368
+ var join = {
1369
+ wrapper: true,
1370
+ shorthand: false,
1371
+ chainable: false,
1372
+ iteratee: false,
1373
+ args: 2
1374
+ };
1375
+ var kebabCase = {
1376
+ wrapper: false,
1377
+ shorthand: false,
1378
+ chainable: false,
1379
+ iteratee: false,
1380
+ args: 1
1381
+ };
1382
+ var keyBy = {
1383
+ wrapper: false,
1384
+ shorthand: false,
1385
+ chainable: true,
1386
+ iteratee: true,
1387
+ args: 2
1388
+ };
1389
+ var keys = {
1390
+ wrapper: false,
1391
+ shorthand: false,
1392
+ chainable: true,
1393
+ iteratee: false,
1394
+ args: 1
1395
+ };
1396
+ var keysIn = {
1397
+ wrapper: false,
1398
+ shorthand: false,
1399
+ chainable: true,
1400
+ iteratee: false,
1401
+ args: 1
1402
+ };
1403
+ var last = {
1404
+ wrapper: false,
1405
+ shorthand: false,
1406
+ chainable: false,
1407
+ iteratee: false,
1408
+ args: 1
1409
+ };
1410
+ var lastIndexOf = {
1411
+ wrapper: false,
1412
+ shorthand: false,
1413
+ chainable: false,
1414
+ iteratee: false,
1415
+ args: 3
1416
+ };
1417
+ var lowerCase = {
1418
+ wrapper: false,
1419
+ shorthand: false,
1420
+ chainable: false,
1421
+ iteratee: false,
1422
+ args: 1
1423
+ };
1424
+ var lowerFirst = {
1425
+ wrapper: false,
1426
+ shorthand: false,
1427
+ chainable: false,
1428
+ iteratee: false,
1429
+ args: 1
1430
+ };
1431
+ var lt = {
1432
+ wrapper: false,
1433
+ shorthand: false,
1434
+ chainable: false,
1435
+ iteratee: false,
1436
+ args: 2
1437
+ };
1438
+ var lte = {
1439
+ wrapper: false,
1440
+ shorthand: false,
1441
+ chainable: false,
1442
+ iteratee: false,
1443
+ args: 2
1444
+ };
1445
+ var map = {
1446
+ wrapper: false,
1447
+ shorthand: true,
1448
+ chainable: true,
1449
+ iteratee: true,
1450
+ args: 2
1451
+ };
1452
+ var mapKeys = {
1453
+ wrapper: false,
1454
+ shorthand: false,
1455
+ chainable: true,
1456
+ iteratee: true,
1457
+ args: 2
1458
+ };
1459
+ var mapValues = {
1460
+ wrapper: false,
1461
+ shorthand: true,
1462
+ chainable: true,
1463
+ iteratee: true,
1464
+ args: 2
1465
+ };
1466
+ var matches = {
1467
+ wrapper: false,
1468
+ shorthand: false,
1469
+ chainable: true,
1470
+ iteratee: false,
1471
+ args: 1
1472
+ };
1473
+ var matchesProperty = {
1474
+ wrapper: false,
1475
+ shorthand: false,
1476
+ chainable: true,
1477
+ iteratee: false,
1478
+ args: 2
1479
+ };
1480
+ var max = {
1481
+ wrapper: false,
1482
+ shorthand: false,
1483
+ chainable: false,
1484
+ iteratee: false,
1485
+ args: 1
1486
+ };
1487
+ var maxBy = {
1488
+ wrapper: false,
1489
+ shorthand: true,
1490
+ chainable: false,
1491
+ iteratee: true,
1492
+ args: 2
1493
+ };
1494
+ var mean = {
1495
+ wrapper: false,
1496
+ shorthand: false,
1497
+ chainable: false,
1498
+ iteratee: false,
1499
+ args: 1
1500
+ };
1501
+ var meanBy = {
1502
+ wrapper: false,
1503
+ shorthand: false,
1504
+ chainable: false,
1505
+ iteratee: true,
1506
+ args: 2
1507
+ };
1508
+ var memoize = {
1509
+ wrapper: false,
1510
+ shorthand: false,
1511
+ chainable: true,
1512
+ iteratee: false,
1513
+ args: 2
1514
+ };
1515
+ var merge = {
1516
+ wrapper: false,
1517
+ shorthand: false,
1518
+ chainable: true,
1519
+ iteratee: false
1520
+ };
1521
+ var mergeWith = {
1522
+ wrapper: false,
1523
+ shorthand: false,
1524
+ chainable: true,
1525
+ iteratee: false
1526
+ };
1527
+ var method = {
1528
+ wrapper: false,
1529
+ shorthand: false,
1530
+ chainable: true,
1531
+ iteratee: false
1532
+ };
1533
+ var methodOf = {
1534
+ wrapper: false,
1535
+ shorthand: false,
1536
+ chainable: true,
1537
+ iteratee: false
1538
+ };
1539
+ var min = {
1540
+ wrapper: false,
1541
+ shorthand: false,
1542
+ chainable: false,
1543
+ iteratee: false,
1544
+ args: 1
1545
+ };
1546
+ var minBy = {
1547
+ wrapper: false,
1548
+ shorthand: true,
1549
+ chainable: false,
1550
+ iteratee: true,
1551
+ args: 2
1552
+ };
1553
+ var mixin = {
1554
+ wrapper: false,
1555
+ shorthand: false,
1556
+ chainable: true,
1557
+ iteratee: false,
1558
+ args: 3
1559
+ };
1560
+ var multiply = {
1561
+ wrapper: false,
1562
+ shorthand: false,
1563
+ chainable: false,
1564
+ iteratee: false,
1565
+ args: 2
1566
+ };
1567
+ var negate = {
1568
+ wrapper: false,
1569
+ shorthand: false,
1570
+ chainable: true,
1571
+ iteratee: false,
1572
+ args: 1
1573
+ };
1574
+ var next = {
1575
+ wrapper: true,
1576
+ shorthand: false,
1577
+ chainable: true,
1578
+ iteratee: false,
1579
+ args: 0
1580
+ };
1581
+ var noConflict = {
1582
+ wrapper: false,
1583
+ shorthand: false,
1584
+ chainable: false,
1585
+ iteratee: false,
1586
+ args: 0
1587
+ };
1588
+ var noop = {
1589
+ wrapper: false,
1590
+ shorthand: false,
1591
+ chainable: false,
1592
+ iteratee: false,
1593
+ args: 0
1594
+ };
1595
+ var now = {
1596
+ wrapper: false,
1597
+ shorthand: false,
1598
+ chainable: false,
1599
+ iteratee: false,
1600
+ args: 0
1601
+ };
1602
+ var nth = {
1603
+ wrapper: false,
1604
+ shorthand: false,
1605
+ chainable: false,
1606
+ iteratee: false,
1607
+ args: 2
1608
+ };
1609
+ var nthArg = {
1610
+ wrapper: false,
1611
+ shorthand: false,
1612
+ chainable: true,
1613
+ iteratee: false,
1614
+ args: 1
1615
+ };
1616
+ var omit = {
1617
+ wrapper: false,
1618
+ shorthand: false,
1619
+ chainable: true,
1620
+ iteratee: false
1621
+ };
1622
+ var omitBy = {
1623
+ wrapper: false,
1624
+ shorthand: true,
1625
+ chainable: true,
1626
+ iteratee: true
1627
+ };
1628
+ var once = {
1629
+ wrapper: false,
1630
+ shorthand: false,
1631
+ chainable: true,
1632
+ iteratee: false,
1633
+ args: 1
1634
+ };
1635
+ var orderBy = {
1636
+ wrapper: false,
1637
+ shorthand: false,
1638
+ chainable: true,
1639
+ iteratee: false,
1640
+ args: 3
1641
+ };
1642
+ var over = {
1643
+ wrapper: false,
1644
+ shorthand: false,
1645
+ chainable: true,
1646
+ iteratee: false
1647
+ };
1648
+ var overArgs = {
1649
+ wrapper: false,
1650
+ shorthand: false,
1651
+ chainable: true,
1652
+ iteratee: false
1653
+ };
1654
+ var overEvery = {
1655
+ wrapper: false,
1656
+ shorthand: true,
1657
+ chainable: true,
1658
+ iteratee: true
1659
+ };
1660
+ var overSome = {
1661
+ wrapper: false,
1662
+ shorthand: true,
1663
+ chainable: true,
1664
+ iteratee: true
1665
+ };
1666
+ var pad = {
1667
+ wrapper: false,
1668
+ shorthand: false,
1669
+ chainable: false,
1670
+ iteratee: false,
1671
+ args: 3
1672
+ };
1673
+ var padEnd = {
1674
+ wrapper: false,
1675
+ shorthand: false,
1676
+ chainable: false,
1677
+ iteratee: false,
1678
+ args: 3
1679
+ };
1680
+ var padStart = {
1681
+ wrapper: false,
1682
+ shorthand: false,
1683
+ chainable: false,
1684
+ iteratee: false,
1685
+ args: 3
1686
+ };
1687
+ var parseInt2 = {
1688
+ wrapper: false,
1689
+ shorthand: false,
1690
+ chainable: false,
1691
+ iteratee: false,
1692
+ args: 2
1693
+ };
1694
+ var partial = {
1695
+ wrapper: false,
1696
+ shorthand: false,
1697
+ chainable: true,
1698
+ iteratee: false
1699
+ };
1700
+ var partialRight = {
1701
+ wrapper: false,
1702
+ shorthand: false,
1703
+ chainable: true,
1704
+ iteratee: false
1705
+ };
1706
+ var partition = {
1707
+ wrapper: false,
1708
+ shorthand: true,
1709
+ chainable: true,
1710
+ iteratee: true,
1711
+ args: 2
1712
+ };
1713
+ var pick = {
1714
+ wrapper: false,
1715
+ shorthand: false,
1716
+ chainable: true,
1717
+ iteratee: false
1718
+ };
1719
+ var pickBy = {
1720
+ wrapper: false,
1721
+ shorthand: true,
1722
+ chainable: true,
1723
+ iteratee: true
1724
+ };
1725
+ var plant = {
1726
+ wrapper: false,
1727
+ shorthand: false,
1728
+ chainable: true,
1729
+ iteratee: false
1730
+ };
1731
+ var pop = {
1732
+ wrapper: true,
1733
+ shorthand: false,
1734
+ chainable: false,
1735
+ iteratee: false
1736
+ };
1737
+ var property = {
1738
+ wrapper: false,
1739
+ shorthand: false,
1740
+ chainable: true,
1741
+ iteratee: false,
1742
+ args: 1
1743
+ };
1744
+ var propertyOf = {
1745
+ wrapper: false,
1746
+ shorthand: false,
1747
+ chainable: true,
1748
+ iteratee: false,
1749
+ args: 1
1750
+ };
1751
+ var pull = {
1752
+ wrapper: false,
1753
+ shorthand: false,
1754
+ chainable: true,
1755
+ iteratee: false
1756
+ };
1757
+ var pullAll = {
1758
+ wrapper: false,
1759
+ shorthand: false,
1760
+ chainable: true,
1761
+ iteratee: false,
1762
+ args: 2
1763
+ };
1764
+ var pullAllBy = {
1765
+ wrapper: false,
1766
+ shorthand: true,
1767
+ chainable: true,
1768
+ iteratee: false,
1769
+ iterateeIndex: 2,
1770
+ args: 3
1771
+ };
1772
+ var pullAllWith = {
1773
+ wrapper: false,
1774
+ shorthand: false,
1775
+ chainable: true,
1776
+ iteratee: false,
1777
+ args: 3
1778
+ };
1779
+ var pullAt = {
1780
+ wrapper: false,
1781
+ shorthand: false,
1782
+ chainable: true,
1783
+ iteratee: false
1784
+ };
1785
+ var push = {
1786
+ wrapper: true,
1787
+ shorthand: false,
1788
+ chainable: true,
1789
+ iteratee: false
1790
+ };
1791
+ var random = {
1792
+ wrapper: false,
1793
+ shorthand: false,
1794
+ chainable: false,
1795
+ iteratee: false,
1796
+ args: 3
1797
+ };
1798
+ var range = {
1799
+ wrapper: false,
1800
+ shorthand: false,
1801
+ chainable: true,
1802
+ iteratee: false,
1803
+ args: 3
1804
+ };
1805
+ var rangeRight = {
1806
+ wrapper: false,
1807
+ shorthand: false,
1808
+ chainable: true,
1809
+ iteratee: false,
1810
+ args: 3
1811
+ };
1812
+ var rearg = {
1813
+ wrapper: false,
1814
+ shorthand: false,
1815
+ chainable: true,
1816
+ iteratee: false
1817
+ };
1818
+ var reduce = {
1819
+ wrapper: false,
1820
+ shorthand: false,
1821
+ chainable: false,
1822
+ iteratee: true,
1823
+ args: 3
1824
+ };
1825
+ var reduceRight = {
1826
+ wrapper: false,
1827
+ shorthand: false,
1828
+ chainable: false,
1829
+ iteratee: true,
1830
+ args: 3
1831
+ };
1832
+ var reject = {
1833
+ wrapper: false,
1834
+ shorthand: true,
1835
+ chainable: true,
1836
+ iteratee: true,
1837
+ args: 2
1838
+ };
1839
+ var remove = {
1840
+ wrapper: false,
1841
+ shorthand: true,
1842
+ chainable: true,
1843
+ iteratee: true,
1844
+ args: 2
1845
+ };
1846
+ var repeat = {
1847
+ wrapper: false,
1848
+ shorthand: false,
1849
+ chainable: false,
1850
+ iteratee: false,
1851
+ args: 2
1852
+ };
1853
+ var replace = {
1854
+ wrapper: true,
1855
+ shorthand: false,
1856
+ chainable: false,
1857
+ iteratee: false
1858
+ };
1859
+ var rest = {
1860
+ wrapper: false,
1861
+ shorthand: false,
1862
+ chainable: true,
1863
+ iteratee: false,
1864
+ args: 2
1865
+ };
1866
+ var result = {
1867
+ wrapper: false,
1868
+ shorthand: false,
1869
+ chainable: false,
1870
+ iteratee: false,
1871
+ args: 3
1872
+ };
1873
+ var reverse = {
1874
+ wrapper: false,
1875
+ shorthand: false,
1876
+ chainable: true,
1877
+ iteratee: false,
1878
+ args: 1
1879
+ };
1880
+ var round = {
1881
+ wrapper: false,
1882
+ shorthand: false,
1883
+ chainable: false,
1884
+ iteratee: false,
1885
+ args: 2
1886
+ };
1887
+ var runInContext = {
1888
+ wrapper: false,
1889
+ shorthand: false,
1890
+ chainable: false,
1891
+ iteratee: false,
1892
+ args: 1
1893
+ };
1894
+ var sample = {
1895
+ wrapper: false,
1896
+ shorthand: false,
1897
+ chainable: false,
1898
+ iteratee: false,
1899
+ args: 1
1900
+ };
1901
+ var sampleSize = {
1902
+ wrapper: false,
1903
+ shorthand: false,
1904
+ chainable: true,
1905
+ iteratee: false,
1906
+ args: 2
1907
+ };
1908
+ var set = {
1909
+ wrapper: false,
1910
+ shorthand: false,
1911
+ chainable: true,
1912
+ iteratee: false,
1913
+ args: 3
1914
+ };
1915
+ var setWith = {
1916
+ wrapper: false,
1917
+ shorthand: false,
1918
+ chainable: true,
1919
+ iteratee: false,
1920
+ args: 4
1921
+ };
1922
+ var shift = {
1923
+ wrapper: true,
1924
+ shorthand: false,
1925
+ chainable: false,
1926
+ iteratee: false
1927
+ };
1928
+ var shuffle = {
1929
+ wrapper: false,
1930
+ shorthand: false,
1931
+ chainable: true,
1932
+ iteratee: false,
1933
+ args: 1
1934
+ };
1935
+ var size = {
1936
+ wrapper: false,
1937
+ shorthand: false,
1938
+ chainable: false,
1939
+ iteratee: false,
1940
+ args: 1
1941
+ };
1942
+ var slice = {
1943
+ wrapper: false,
1944
+ shorthand: false,
1945
+ chainable: true,
1946
+ iteratee: false,
1947
+ args: 3
1948
+ };
1949
+ var snakeCase = {
1950
+ wrapper: false,
1951
+ shorthand: false,
1952
+ chainable: false,
1953
+ iteratee: false,
1954
+ args: 1
1955
+ };
1956
+ var some = {
1957
+ wrapper: false,
1958
+ shorthand: true,
1959
+ chainable: false,
1960
+ iteratee: true,
1961
+ args: 2
1962
+ };
1963
+ var sort = {
1964
+ wrapper: true,
1965
+ shorthand: false,
1966
+ chainable: true,
1967
+ iteratee: false
1968
+ };
1969
+ var sortBy = {
1970
+ wrapper: false,
1971
+ shorthand: {
1972
+ prop: true
1973
+ },
1974
+ chainable: true,
1975
+ iteratee: true
1976
+ };
1977
+ var sortedIndex = {
1978
+ wrapper: false,
1979
+ shorthand: false,
1980
+ chainable: false,
1981
+ iteratee: false,
1982
+ args: 2
1983
+ };
1984
+ var sortedIndexBy = {
1985
+ wrapper: false,
1986
+ shorthand: true,
1987
+ chainable: false,
1988
+ iteratee: false,
1989
+ iterateeIndex: 2,
1990
+ args: 3
1991
+ };
1992
+ var sortedIndexOf = {
1993
+ wrapper: false,
1994
+ shorthand: false,
1995
+ chainable: false,
1996
+ iteratee: false,
1997
+ args: 2
1998
+ };
1999
+ var sortedLastIndex = {
2000
+ wrapper: false,
2001
+ shorthand: false,
2002
+ chainable: false,
2003
+ iteratee: false,
2004
+ args: 2
2005
+ };
2006
+ var sortedLastIndexBy = {
2007
+ wrapper: false,
2008
+ shorthand: true,
2009
+ chainable: false,
2010
+ iteratee: false,
2011
+ iterateeIndex: 2,
2012
+ args: 3
2013
+ };
2014
+ var sortedLastIndexOf = {
2015
+ wrapper: false,
2016
+ shorthand: false,
2017
+ chainable: false,
2018
+ iteratee: false,
2019
+ args: 2
2020
+ };
2021
+ var sortedUniq = {
2022
+ wrapper: false,
2023
+ shorthand: false,
2024
+ chainable: true,
2025
+ iteratee: false,
2026
+ args: 1
2027
+ };
2028
+ var sortedUniqBy = {
2029
+ wrapper: false,
2030
+ shorthand: true,
2031
+ chainable: true,
2032
+ iteratee: true,
2033
+ args: 2
2034
+ };
2035
+ var splice = {
2036
+ wrapper: true,
2037
+ shorthand: false,
2038
+ chainable: true,
2039
+ iteratee: false
2040
+ };
2041
+ var split = {
2042
+ wrapper: true,
2043
+ shorthand: false,
2044
+ chainable: false,
2045
+ iteratee: false,
2046
+ args: 3
2047
+ };
2048
+ var spread = {
2049
+ wrapper: false,
2050
+ shorthand: false,
2051
+ chainable: true,
2052
+ iteratee: false,
2053
+ args: 2
2054
+ };
2055
+ var startCase = {
2056
+ wrapper: false,
2057
+ shorthand: false,
2058
+ chainable: false,
2059
+ iteratee: false,
2060
+ args: 1
2061
+ };
2062
+ var startsWith = {
2063
+ wrapper: false,
2064
+ shorthand: false,
2065
+ chainable: false,
2066
+ iteratee: false,
2067
+ args: 3
2068
+ };
2069
+ var stubArray = {
2070
+ wrapper: false,
2071
+ shorthand: false,
2072
+ chainable: false,
2073
+ iteratee: false,
2074
+ args: 0
2075
+ };
2076
+ var stubFalse = {
2077
+ wrapper: false,
2078
+ shorthand: false,
2079
+ chainable: false,
2080
+ iteratee: false,
2081
+ args: 0
2082
+ };
2083
+ var stubObject = {
2084
+ wrapper: false,
2085
+ shorthand: false,
2086
+ chainable: false,
2087
+ iteratee: false,
2088
+ args: 0
2089
+ };
2090
+ var stubString = {
2091
+ wrapper: false,
2092
+ shorthand: false,
2093
+ chainable: false,
2094
+ iteratee: false,
2095
+ args: 0
2096
+ };
2097
+ var stubTrue = {
2098
+ wrapper: false,
2099
+ shorthand: false,
2100
+ chainable: false,
2101
+ iteratee: false,
2102
+ args: 0
2103
+ };
2104
+ var subtract = {
2105
+ wrapper: false,
2106
+ shorthand: false,
2107
+ chainable: false,
2108
+ iteratee: false,
2109
+ args: 2
2110
+ };
2111
+ var sum = {
2112
+ wrapper: false,
2113
+ shorthand: false,
2114
+ chainable: false,
2115
+ iteratee: false,
2116
+ args: 1
2117
+ };
2118
+ var sumBy = {
2119
+ wrapper: false,
2120
+ shorthand: true,
2121
+ chainable: false,
2122
+ iteratee: true,
2123
+ args: 2
2124
+ };
2125
+ var tail = {
2126
+ wrapper: false,
2127
+ shorthand: false,
2128
+ chainable: true,
2129
+ iteratee: false,
2130
+ args: 1
2131
+ };
2132
+ var take = {
2133
+ wrapper: false,
2134
+ shorthand: false,
2135
+ chainable: true,
2136
+ iteratee: false,
2137
+ args: 2
2138
+ };
2139
+ var takeRight = {
2140
+ wrapper: false,
2141
+ shorthand: false,
2142
+ chainable: true,
2143
+ iteratee: false,
2144
+ args: 2
2145
+ };
2146
+ var takeRightWhile = {
2147
+ wrapper: false,
2148
+ shorthand: true,
2149
+ chainable: true,
2150
+ iteratee: true,
2151
+ args: 2
2152
+ };
2153
+ var takeWhile = {
2154
+ wrapper: false,
2155
+ shorthand: true,
2156
+ chainable: true,
2157
+ iteratee: true,
2158
+ args: 2
2159
+ };
2160
+ var tap = {
2161
+ wrapper: false,
2162
+ shorthand: false,
2163
+ chainable: true,
2164
+ iteratee: true,
2165
+ args: 2
2166
+ };
2167
+ var template = {
2168
+ wrapper: false,
2169
+ shorthand: false,
2170
+ chainable: false,
2171
+ iteratee: false,
2172
+ args: 2
2173
+ };
2174
+ var throttle = {
2175
+ wrapper: false,
2176
+ shorthand: false,
2177
+ chainable: true,
2178
+ iteratee: false,
2179
+ args: 3
2180
+ };
2181
+ var thru = {
2182
+ wrapper: false,
2183
+ shorthand: false,
2184
+ chainable: true,
2185
+ iteratee: true,
2186
+ args: 2
2187
+ };
2188
+ var times = {
2189
+ wrapper: false,
2190
+ shorthand: false,
2191
+ chainable: false,
2192
+ iteratee: true,
2193
+ args: 2
2194
+ };
2195
+ var toArray = {
2196
+ wrapper: false,
2197
+ shorthand: false,
2198
+ chainable: true,
2199
+ iteratee: false,
2200
+ args: 1
2201
+ };
2202
+ var toFinite = {
2203
+ wrapper: false,
2204
+ shorthand: false,
2205
+ chainable: false,
2206
+ iteratee: false,
2207
+ args: 1
2208
+ };
2209
+ var toInteger = {
2210
+ wrapper: false,
2211
+ shorthand: false,
2212
+ chainable: false,
2213
+ iteratee: false,
2214
+ args: 1
2215
+ };
2216
+ var toLength = {
2217
+ wrapper: false,
2218
+ shorthand: false,
2219
+ chainable: false,
2220
+ iteratee: false,
2221
+ args: 1
2222
+ };
2223
+ var toLower = {
2224
+ wrapper: false,
2225
+ shorthand: false,
2226
+ chainable: false,
2227
+ iteratee: false,
2228
+ args: 1
2229
+ };
2230
+ var toNumber = {
2231
+ wrapper: false,
2232
+ shorthand: false,
2233
+ chainable: false,
2234
+ iteratee: false,
2235
+ args: 1
2236
+ };
2237
+ var toPairs = {
2238
+ wrapper: false,
2239
+ shorthand: false,
2240
+ chainable: true,
2241
+ iteratee: false,
2242
+ args: 1
2243
+ };
2244
+ var toPairsIn = {
2245
+ wrapper: false,
2246
+ shorthand: false,
2247
+ chainable: true,
2248
+ iteratee: false,
2249
+ args: 1
2250
+ };
2251
+ var toPath = {
2252
+ wrapper: false,
2253
+ shorthand: false,
2254
+ chainable: true,
2255
+ iteratee: false,
2256
+ args: 1
2257
+ };
2258
+ var toPlainObject = {
2259
+ wrapper: false,
2260
+ shorthand: false,
2261
+ chainable: true,
2262
+ iteratee: false,
2263
+ args: 1
2264
+ };
2265
+ var toSafeInteger = {
2266
+ wrapper: false,
2267
+ shorthand: false,
2268
+ chainable: false,
2269
+ iteratee: false,
2270
+ args: 1
2271
+ };
2272
+ var toString = {
2273
+ wrapper: false,
2274
+ shorthand: false,
2275
+ chainable: false,
2276
+ iteratee: false,
2277
+ args: 1
2278
+ };
2279
+ var toUpper = {
2280
+ wrapper: false,
2281
+ shorthand: false,
2282
+ chainable: false,
2283
+ iteratee: false,
2284
+ args: 1
2285
+ };
2286
+ var transform = {
2287
+ wrapper: false,
2288
+ shorthand: false,
2289
+ chainable: true,
2290
+ iteratee: true,
2291
+ args: 3
2292
+ };
2293
+ var trim = {
2294
+ wrapper: false,
2295
+ shorthand: false,
2296
+ chainable: false,
2297
+ iteratee: false,
2298
+ args: 2
2299
+ };
2300
+ var trimEnd = {
2301
+ wrapper: false,
2302
+ shorthand: false,
2303
+ chainable: false,
2304
+ iteratee: false,
2305
+ args: 2
2306
+ };
2307
+ var trimStart = {
2308
+ wrapper: false,
2309
+ shorthand: false,
2310
+ chainable: false,
2311
+ iteratee: false,
2312
+ args: 2
2313
+ };
2314
+ var truncate = {
2315
+ wrapper: false,
2316
+ shorthand: false,
2317
+ chainable: false,
2318
+ iteratee: false,
2319
+ args: 3
2320
+ };
2321
+ var unary = {
2322
+ wrapper: false,
2323
+ shorthand: false,
2324
+ chainable: true,
2325
+ iteratee: false,
2326
+ args: 1
2327
+ };
2328
+ var unescape = {
2329
+ wrapper: false,
2330
+ shorthand: false,
2331
+ chainable: false,
2332
+ iteratee: false,
2333
+ args: 1
2334
+ };
2335
+ var union = {
2336
+ wrapper: false,
2337
+ shorthand: false,
2338
+ chainable: true,
2339
+ iteratee: false
2340
+ };
2341
+ var unionBy = {
2342
+ wrapper: false,
2343
+ shorthand: true,
2344
+ chainable: true,
2345
+ iteratee: true
2346
+ };
2347
+ var unionWith = {
2348
+ wrapper: false,
2349
+ shorthand: false,
2350
+ chainable: true,
2351
+ iteratee: false
2352
+ };
2353
+ var uniq = {
2354
+ wrapper: false,
2355
+ shorthand: false,
2356
+ chainable: true,
2357
+ iteratee: false,
2358
+ args: 1
2359
+ };
2360
+ var uniqBy = {
2361
+ wrapper: false,
2362
+ shorthand: true,
2363
+ chainable: true,
2364
+ iteratee: true,
2365
+ args: 2
2366
+ };
2367
+ var uniqWith = {
2368
+ wrapper: false,
2369
+ shorthand: false,
2370
+ chainable: true,
2371
+ iteratee: false,
2372
+ args: 2
2373
+ };
2374
+ var uniqueId = {
2375
+ wrapper: false,
2376
+ shorthand: false,
2377
+ chainable: false,
2378
+ iteratee: false,
2379
+ args: 1
2380
+ };
2381
+ var unset = {
2382
+ wrapper: false,
2383
+ shorthand: false,
2384
+ chainable: true,
2385
+ iteratee: false,
2386
+ args: 2
2387
+ };
2388
+ var unshift = {
2389
+ wrapper: true,
2390
+ shorthand: false,
2391
+ chainable: true,
2392
+ iteratee: false
2393
+ };
2394
+ var unzip = {
2395
+ wrapper: false,
2396
+ shorthand: false,
2397
+ chainable: true,
2398
+ iteratee: false,
2399
+ args: 1
2400
+ };
2401
+ var unzipWith = {
2402
+ wrapper: false,
2403
+ shorthand: false,
2404
+ chainable: true,
2405
+ iteratee: true,
2406
+ args: 2
2407
+ };
2408
+ var update = {
2409
+ wrapper: false,
2410
+ shorthand: false,
2411
+ chainable: true,
2412
+ iteratee: false,
2413
+ args: 3
2414
+ };
2415
+ var updateWith = {
2416
+ wrapper: false,
2417
+ shorthand: false,
2418
+ chainable: true,
2419
+ iteratee: false,
2420
+ args: 4
2421
+ };
2422
+ var upperCase = {
2423
+ wrapper: false,
2424
+ shorthand: false,
2425
+ chainable: false,
2426
+ iteratee: false,
2427
+ args: 1
2428
+ };
2429
+ var upperFirst = {
2430
+ wrapper: false,
2431
+ shorthand: false,
2432
+ chainable: false,
2433
+ iteratee: false,
2434
+ args: 1
2435
+ };
2436
+ var value = {
2437
+ wrapper: true,
2438
+ shorthand: false,
2439
+ chainable: false,
2440
+ iteratee: false,
2441
+ args: 0
2442
+ };
2443
+ var values = {
2444
+ wrapper: false,
2445
+ shorthand: false,
2446
+ chainable: true,
2447
+ iteratee: false,
2448
+ args: 1
2449
+ };
2450
+ var valuesIn = {
2451
+ wrapper: false,
2452
+ shorthand: false,
2453
+ chainable: true,
2454
+ iteratee: false,
2455
+ args: 1
2456
+ };
2457
+ var without = {
2458
+ wrapper: false,
2459
+ shorthand: false,
2460
+ chainable: true,
2461
+ iteratee: false
2462
+ };
2463
+ var words = {
2464
+ wrapper: false,
2465
+ shorthand: false,
2466
+ chainable: false,
2467
+ iteratee: false,
2468
+ args: 2
2469
+ };
2470
+ var wrap = {
2471
+ wrapper: false,
2472
+ shorthand: false,
2473
+ chainable: true,
2474
+ iteratee: false,
2475
+ args: 2
2476
+ };
2477
+ var xor = {
2478
+ wrapper: false,
2479
+ shorthand: false,
2480
+ chainable: true,
2481
+ iteratee: false
2482
+ };
2483
+ var xorBy = {
2484
+ wrapper: false,
2485
+ shorthand: true,
2486
+ chainable: true,
2487
+ iteratee: true
2488
+ };
2489
+ var xorWith = {
2490
+ wrapper: false,
2491
+ shorthand: false,
2492
+ chainable: true,
2493
+ iteratee: false
2494
+ };
2495
+ var zip = {
2496
+ wrapper: false,
2497
+ shorthand: false,
2498
+ chainable: true,
2499
+ iteratee: false
2500
+ };
2501
+ var zipObject = {
2502
+ wrapper: false,
2503
+ shorthand: false,
2504
+ chainable: true,
2505
+ iteratee: false,
2506
+ args: 2
2507
+ };
2508
+ var zipObjectDeep = {
2509
+ wrapper: false,
2510
+ shorthand: false,
2511
+ chainable: true,
2512
+ iteratee: false,
2513
+ args: 2
2514
+ };
2515
+ var zipWith = {
2516
+ wrapper: false,
2517
+ shorthand: false,
2518
+ chainable: true,
2519
+ iteratee: false
2520
+ };
2521
+
2522
+ // src/util/methodDataUtil.ts
2523
+ function isCollectionMethod(method2) {
2524
+ return methodSupportsShorthand(method2) || includes2(["reduce", "reduceRight"], method2);
2525
+ }
2526
+ function methodSupportsShorthand(method2, shorthandType) {
2527
+ const methodShorthandData = get2(methodData_exports, [method2, "shorthand"]);
2528
+ return isObject2(methodShorthandData) ? Boolean(shorthandType && methodShorthandData[shorthandType]) : Boolean(methodShorthandData);
2529
+ }
2530
+ function getIterateeIndex(method2) {
2531
+ const methodData = methodData_exports[method2];
2532
+ if (has2(methodData, "iterateeIndex")) {
2533
+ return methodData.iterateeIndex;
2534
+ }
2535
+ if (methodData?.iteratee) {
2536
+ return 1;
2537
+ }
2538
+ return -1;
2539
+ }
2540
+ var sideEffectIterationMethods = [
2541
+ "forEach",
2542
+ "forEachRight",
2543
+ "forIn",
2544
+ "forInRight",
2545
+ "forOwn",
2546
+ "forOwnRight"
2547
+ ];
2548
+ function getSideEffectIterationMethods() {
2549
+ return sideEffectIterationMethods;
2550
+ }
2551
+
2552
+ // src/util/astUtil.ts
2553
+ import {
2554
+ property as property2,
2555
+ matches as matches2,
2556
+ overSome as overSome2,
2557
+ matchesProperty as matchesProperty2,
2558
+ cond as cond2,
2559
+ get as get3,
2560
+ isMatch as isMatch2,
2561
+ isEqualWith as isEqualWith2,
2562
+ includes as includes3,
2563
+ overEvery as overEvery2,
2564
+ flatMap as flatMap2
2565
+ } from "lodash";
2566
+ var getCaller = property2(["callee", "object"]);
2567
+ var getMethodName = property2(["callee", "property", "name"]);
2568
+ var isMethodCall = matches2({
2569
+ type: "CallExpression",
2570
+ callee: { type: "MemberExpression" }
2571
+ });
2572
+ var isFunctionExpression = overSome2(
2573
+ matchesProperty2("type", "FunctionExpression"),
2574
+ matchesProperty2("type", "FunctionDeclaration")
2575
+ );
2576
+ var isFunctionDefinitionWithBlock = overSome2(
2577
+ isFunctionExpression,
2578
+ matches2({
2579
+ type: "ArrowFunctionExpression",
2580
+ body: { type: "BlockStatement" }
2581
+ })
2582
+ );
2583
+ var getFirstFunctionLine = cond2([
2584
+ [isFunctionDefinitionWithBlock, property2(["body", "body", 0])],
2585
+ [matches2({ type: "ArrowFunctionExpression" }), property2("body")]
2586
+ ]);
2587
+ var isPropAccess = overSome2(
2588
+ matches2({ computed: false }),
2589
+ matchesProperty2(["property", "type"], "Literal")
2590
+ );
2591
+ function isMemberExpOf(node, objectName, { maxLength = Number.MAX_VALUE, allowComputed } = {}) {
2592
+ if (objectName) {
2593
+ let curr = node;
2594
+ let depth = maxLength;
2595
+ while (curr && depth) {
2596
+ if (allowComputed || isPropAccess(curr)) {
2597
+ if (curr.type === "MemberExpression" && curr.object.name === objectName) {
2598
+ return true;
2599
+ }
2600
+ curr = curr.object;
2601
+ depth--;
2602
+ } else {
2603
+ return false;
2604
+ }
2605
+ }
2606
+ }
2607
+ }
2608
+ var getFirstParamName = property2(["params", 0, "name"]);
2609
+ var isReturnStatement = matchesProperty2("type", "ReturnStatement");
2610
+ function hasOnlyOneStatement(func) {
2611
+ if (isFunctionDefinitionWithBlock(func)) {
2612
+ return get3(func, "body.body.length") === 1;
2613
+ }
2614
+ if (func.type === "ArrowFunctionExpression") {
2615
+ return !get3(func, "body.body");
2616
+ }
2617
+ }
2618
+ function isObjectOfMethodCall(node) {
2619
+ return get3(node, "parent.object") === node && get3(node, "parent.parent.type") === "CallExpression";
2620
+ }
2621
+ function isLiteral(node) {
2622
+ return node.type === "Literal";
2623
+ }
2624
+ function isBinaryExpWithMemberOf(operator, exp, objectName, {
2625
+ maxLength,
2626
+ allowComputed,
2627
+ onlyLiterals
2628
+ } = {}) {
2629
+ if (!isMatch2(exp, { type: "BinaryExpression", operator })) {
2630
+ return false;
2631
+ }
2632
+ const [left, right] = [exp.left, exp.right].map(
2633
+ (side) => isMemberExpOf(side, objectName, { maxLength, allowComputed })
2634
+ );
2635
+ return left === !right && (!onlyLiterals || isLiteral(exp.left) || isLiteral(exp.right));
2636
+ }
2637
+ var isNegationExpression = matches2({
2638
+ type: "UnaryExpression",
2639
+ operator: "!"
2640
+ });
2641
+ function isNegationOfMemberOf(exp, objectName, { maxLength } = {}) {
2642
+ return isNegationExpression(exp) && isMemberExpOf(exp.argument, objectName, { maxLength, allowComputed: false });
2643
+ }
2644
+ function isIdentifierWithName(exp, paramName) {
2645
+ return exp && paramName && exp.type === "Identifier" && exp.name === paramName;
2646
+ }
2647
+ function getValueReturnedInFirstStatement(func) {
2648
+ const firstLine = getFirstFunctionLine(func);
2649
+ if (func) {
2650
+ if (isFunctionDefinitionWithBlock(func)) {
2651
+ return isReturnStatement(firstLine) ? firstLine.argument : void 0;
2652
+ }
2653
+ if (func.type === "ArrowFunctionExpression") {
2654
+ return firstLine;
2655
+ }
2656
+ }
2657
+ }
2658
+ function isCallFromObject(node, objName) {
2659
+ return node && objName && node.type === "CallExpression" && get3(node, "callee.object.name") === objName;
2660
+ }
2661
+ function isComputed(node) {
2662
+ return get3(node, "computed") && node.property.type !== "Literal";
2663
+ }
2664
+ function isEquivalentMemberExp(a, b) {
2665
+ return isEqualWith2(a, b, (left, right, key) => {
2666
+ if (includes3(["loc", "range", "computed", "start", "end", "parent"], key)) {
2667
+ return true;
2668
+ }
2669
+ if (isComputed(left) || isComputed(right)) {
2670
+ return false;
2671
+ }
2672
+ if (key === "property") {
2673
+ const leftValue = left.name || left.value;
2674
+ const rightValue = right.name || right.value;
2675
+ return leftValue === rightValue;
2676
+ }
2677
+ });
2678
+ }
2679
+ var isEqEqEq = matches2({ type: "BinaryExpression", operator: "===" });
2680
+ var isMinus = (node) => node.type === "UnaryExpression" && node.operator === "-";
2681
+ var comparisonType = {
2682
+ exact: 0,
2683
+ over: 1,
2684
+ under: 2,
2685
+ any: 3
2686
+ };
2687
+ var comparisonOperators = ["==", "!=", "===", "!=="];
2688
+ function getIsValue(value2) {
2689
+ return value2 < 0 ? overEvery2(isMinus, matches2({ argument: { value: -value2 } })) : matches2({ value: value2 });
2690
+ }
2691
+ function getExpressionComparedToInt(node, value2, checkOver) {
2692
+ const isValue = getIsValue(value2);
2693
+ if (includes3(comparisonOperators, node.operator)) {
2694
+ if (isValue(node.right)) {
2695
+ return node.left;
2696
+ }
2697
+ if (isValue(node.left)) {
2698
+ return node.right;
2699
+ }
2700
+ }
2701
+ if (checkOver) {
2702
+ if (node.operator === ">" && isValue(node.right)) {
2703
+ return node.left;
2704
+ }
2705
+ if (node.operator === "<" && isValue(node.left)) {
2706
+ return node.right;
2707
+ }
2708
+ const isNext = getIsValue(value2 + 1);
2709
+ if ((node.operator === ">=" || node.operator === "<") && isNext(node.right)) {
2710
+ return node.left;
2711
+ }
2712
+ if ((node.operator === "<=" || node.operator === ">") && isNext(node.left)) {
2713
+ return node.right;
2714
+ }
2715
+ }
2716
+ }
2717
+ var isIndexOfCall = (node) => isMethodCall(node) && getMethodName(node) === "indexOf";
2718
+ var isFindIndexCall = (node) => isMethodCall(node) && getMethodName(node) === "findIndex";
2719
+ function collectParameterValues(node) {
2720
+ switch (node && node.type) {
2721
+ case "Identifier":
2722
+ return [node.name];
2723
+ case "ObjectPattern":
2724
+ return flatMap2(
2725
+ node.properties,
2726
+ (prop) => collectParameterValues(prop.value)
2727
+ );
2728
+ case "ArrayPattern":
2729
+ return flatMap2(node.elements, collectParameterValues);
2730
+ default:
2731
+ return [];
2732
+ }
2733
+ }
2734
+ var astUtil_default = {
2735
+ getCaller,
2736
+ getMethodName,
2737
+ isMethodCall,
2738
+ getFirstFunctionLine,
2739
+ isMemberExpOf,
2740
+ getFirstParamName,
2741
+ hasOnlyOneStatement,
2742
+ isObjectOfMethodCall,
2743
+ isEqEqEqToMemberOf: isBinaryExpWithMemberOf.bind(null, "==="),
2744
+ isNotEqEqToMemberOf: isBinaryExpWithMemberOf.bind(null, "!=="),
2745
+ isNegationOfMemberOf,
2746
+ isIdentifierWithName,
2747
+ isNegationExpression,
2748
+ getValueReturnedInFirstStatement,
2749
+ isCallFromObject,
2750
+ isComputed,
2751
+ isEquivalentMemberExp,
2752
+ isEqEqEq,
2753
+ comparisonType,
2754
+ getExpressionComparedToInt,
2755
+ isIndexOfCall,
2756
+ isFindIndexCall,
2757
+ isFunctionExpression,
2758
+ isFunctionDefinitionWithBlock,
2759
+ collectParameterValues
2760
+ };
2761
+
2762
+ // src/util/settingsUtil.ts
2763
+ import { chain as chain2, get as get4 } from "lodash";
2764
+ function getSettings(context) {
2765
+ return chain2(context).get(["settings", "remeda"]).clone().defaults({
2766
+ version: 4
2767
+ }).value();
2768
+ }
2769
+
2770
+ // src/util/importUtil.ts
2771
+ import get5 from "lodash/get";
2772
+ function getNameFromCjsRequire(init) {
2773
+ if (get5(init, "callee.name") === "require" && get5(init, "arguments.length") === 1 && init.arguments[0].type === "Literal") {
2774
+ return init.arguments[0].value;
2775
+ }
2776
+ }
2777
+ var isFullRemedaImport = (str) => /^remeda?(\/)?$/.test(str);
2778
+ var getMethodImportFromName = (str) => {
2779
+ const match = /^remeda([./])(\w+)$/.exec(str);
2780
+ return match && match[2];
2781
+ };
2782
+
2783
+ // src/util/RemedaContext.ts
2784
+ var { isMethodCall: isMethodCall2, isCallFromObject: isCallFromObject2, getCaller: getCaller2 } = astUtil_default;
2785
+ var RemedaContext_default = class {
2786
+ context;
2787
+ general;
2788
+ methods;
2789
+ _pragma;
2790
+ /**
2791
+ * Create a Remeda context wrapper from a file's RuleContext
2792
+ * @param {RuleContext} context
2793
+ */
2794
+ constructor(context) {
2795
+ this.context = context;
2796
+ this.general = /* @__PURE__ */ Object.create(null);
2797
+ this.methods = /* @__PURE__ */ Object.create(null);
2798
+ }
2799
+ /**
2800
+ * Gets visitors to collect Remeda declarations in the context
2801
+ * @returns {Object} visitors for everywhere Remeda can be declared
2802
+ */
2803
+ getImportVisitors() {
2804
+ const self = this;
2805
+ return {
2806
+ ImportDeclaration({ source, specifiers }) {
2807
+ if (isFullRemedaImport(source.value)) {
2808
+ specifiers.forEach((spec) => {
2809
+ switch (spec.type) {
2810
+ case "ImportNamespaceSpecifier":
2811
+ case "ImportDefaultSpecifier":
2812
+ self.general[spec.local.name] = true;
2813
+ break;
2814
+ case "ImportSpecifier":
2815
+ self.methods[spec.local.name] = spec.imported.name;
2816
+ if (spec.imported.name === "chain") {
2817
+ self.general[spec.local.name] = true;
2818
+ }
2819
+ break;
2820
+ }
2821
+ });
2822
+ } else {
2823
+ const method2 = getMethodImportFromName(source.value);
2824
+ if (method2) {
2825
+ self.methods[specifiers[0].local.name] = method2;
2826
+ }
2827
+ }
2828
+ },
2829
+ VariableDeclarator({ init, id }) {
2830
+ const required = getNameFromCjsRequire(init);
2831
+ if (isFullRemedaImport(required)) {
2832
+ if (id.type === "Identifier") {
2833
+ self.general[id.name] = true;
2834
+ } else if (id.type === "ObjectPattern") {
2835
+ id.properties.forEach((prop) => {
2836
+ self.methods[prop.value.name] = prop.key.name;
2837
+ if (prop.value.name === "chain") {
2838
+ self.general[prop.value.name] = true;
2839
+ }
2840
+ });
2841
+ }
2842
+ } else if (required) {
2843
+ const method2 = getMethodImportFromName(required);
2844
+ if (method2) {
2845
+ self.methods[id.name] = method2;
2846
+ }
2847
+ }
2848
+ }
2849
+ };
2850
+ }
2851
+ /**
2852
+ * Returns whether the node is an imported Remeda in this context
2853
+ * @param node
2854
+ * @returns {boolean|undefined}
2855
+ */
2856
+ isImportedRemeda(node) {
2857
+ if (node && node.type === "Identifier") {
2858
+ return this.general[node.name];
2859
+ }
2860
+ }
2861
+ /**
2862
+ * Returns the name of the Remeda method for this node, if any
2863
+ * @param node
2864
+ * @returns {string|undefined}
2865
+ */
2866
+ getImportedRemedaMethod(node) {
2867
+ if (node && node.type === "CallExpression" && !isMethodCall2(node)) {
2868
+ return this.methods[node.callee.name];
2869
+ }
2870
+ }
2871
+ /**
2872
+ * Returns whether the node is a call from a Remeda object
2873
+ * @param node
2874
+ * @returns {boolean|undefined}
2875
+ */
2876
+ isRemedaCall(node) {
2877
+ return this.pragma && isCallFromObject2(node, this.pragma) || this.isImportedRemeda(getCaller2(node));
2878
+ }
2879
+ /**
2880
+ *
2881
+ * @returns {string|undefined} the current Remeda pragma
2882
+ */
2883
+ get pragma() {
2884
+ if (!this._pragma) {
2885
+ const { pragma } = getSettings(this.context);
2886
+ this._pragma = pragma;
2887
+ }
2888
+ return this._pragma;
2889
+ }
2890
+ };
2891
+
2892
+ // src/util/remedaUtil.ts
2893
+ function isCallToMethod(node, method2) {
2894
+ return method2 === astUtil_default.getMethodName(node);
2895
+ }
2896
+ function getIsTypeMethod(name) {
2897
+ const types = [
2898
+ "number",
2899
+ "boolean",
2900
+ "function",
2901
+ "Function",
2902
+ "string",
2903
+ // "object",
2904
+ // "undefined",
2905
+ "Date",
2906
+ "Array",
2907
+ "Error"
2908
+ // "Element",
2909
+ ];
2910
+ return includes4(types, name) ? `is${capitalize2(name)}` : null;
2911
+ }
2912
+ function getRemedaMethodCallExpVisitor(remedaContext, reporter) {
2913
+ return function(node) {
2914
+ let iterateeIndex;
2915
+ if (remedaContext.isRemedaCall(node)) {
2916
+ const method2 = astUtil_default.getMethodName(node);
2917
+ iterateeIndex = getIterateeIndex(method2);
2918
+ reporter(node, node.arguments[iterateeIndex], {
2919
+ callType: "method",
2920
+ method: method2,
2921
+ remedaContext
2922
+ });
2923
+ } else {
2924
+ const method2 = remedaContext.getImportedRemedaMethod(node);
2925
+ if (method2) {
2926
+ iterateeIndex = getIterateeIndex(method2);
2927
+ reporter(node, node.arguments[iterateeIndex], {
2928
+ method: method2,
2929
+ callType: "single",
2930
+ remedaContext
2931
+ });
2932
+ }
2933
+ }
2934
+ };
2935
+ }
2936
+ function isRemedaCallToMethod(node, method2, remedaContext) {
2937
+ return remedaContext.isRemedaCall(node) && isCallToMethod(node, method2);
2938
+ }
2939
+ function isCallToRemedaMethod(node, method2, remedaContext) {
2940
+ if (!node || node.type !== "CallExpression") {
2941
+ return false;
2942
+ }
2943
+ return isRemedaCallToMethod(node, method2, remedaContext) || method2 === remedaContext.getImportedRemedaMethod(node);
2944
+ }
2945
+ function getRemedaMethodVisitors(context, remedaCallExpVisitor) {
2946
+ const remedaContext = new RemedaContext_default(context);
2947
+ const visitors = remedaContext.getImportVisitors();
2948
+ visitors.CallExpression = getRemedaMethodCallExpVisitor(
2949
+ remedaContext,
2950
+ remedaCallExpVisitor
2951
+ );
2952
+ return visitors;
2953
+ }
2954
+ function getRemedaContext(context) {
2955
+ return new RemedaContext_default(context);
2956
+ }
2957
+
2958
+ // src/rules/collection-method-value.ts
2959
+ import includes5 from "lodash/includes";
2960
+ var { getMethodName: getMethodName2 } = astUtil_default;
2961
+ var meta = {
2962
+ type: "problem",
2963
+ schema: [],
2964
+ docs: {
2965
+ url: getDocsUrl("collection-method-value")
2966
+ }
2967
+ };
2968
+ function create2(context) {
2969
+ function parentUsesValue(node) {
2970
+ return node.parent.type !== "ExpressionStatement";
2971
+ }
2972
+ function isSideEffectIterationMethod(method2) {
2973
+ return includes5(getSideEffectIterationMethods(), method2);
2974
+ }
2975
+ function isParentCommit(node, callType) {
2976
+ return callType === "chained" && isCallToMethod(node.parent.parent, "commit");
2977
+ }
2978
+ return getRemedaMethodVisitors(
2979
+ context,
2980
+ (node, iteratee2, { method: method2, callType }) => {
2981
+ if (isCollectionMethod(method2) && !parentUsesValue(node)) {
2982
+ context.report({
2983
+ node,
2984
+ message: `Use value returned from R.${method2}`
2985
+ });
2986
+ } else if (isSideEffectIterationMethod(method2) && parentUsesValue(node) && !isParentCommit(node, callType)) {
2987
+ context.report({
2988
+ node,
2989
+ message: `Do not use value returned from R.${getMethodName2(node)}`
2990
+ });
2991
+ }
2992
+ }
2993
+ );
2994
+ }
2995
+ var rule = {
2996
+ create: create2,
2997
+ meta
2998
+ };
2999
+ var RULE_NAME = "collection-method-value";
3000
+ var collection_method_value_default = rule;
3001
+
3002
+ // src/rules/collection-return.ts
3003
+ import assign2 from "lodash/assign";
3004
+ var meta2 = {
3005
+ type: "problem",
3006
+ schema: [],
3007
+ docs: {
3008
+ url: getDocsUrl("collection-return")
3009
+ }
3010
+ };
3011
+ function create3(context) {
3012
+ const funcInfos = /* @__PURE__ */ new Map();
3013
+ let currFuncInfo;
3014
+ const remedaContext = getRemedaContext(context);
3015
+ return assign2(
3016
+ {
3017
+ "CallExpression:exit": getRemedaMethodCallExpVisitor(
3018
+ remedaContext,
3019
+ (node, iteratee2, { method: method2 }) => {
3020
+ if (isCollectionMethod(method2) && funcInfos.has(iteratee2)) {
3021
+ const { hasReturn } = funcInfos.get(iteratee2);
3022
+ if (astUtil_default.isFunctionDefinitionWithBlock(iteratee2) && !hasReturn && !iteratee2.async && !iteratee2.generator) {
3023
+ context.report({
3024
+ node,
3025
+ message: `Do not use R.${method2} without returning a value`
3026
+ });
3027
+ }
3028
+ }
3029
+ }
3030
+ ),
3031
+ ReturnStatement() {
3032
+ currFuncInfo.hasReturn = true;
3033
+ },
3034
+ onCodePathStart(codePath, node) {
3035
+ currFuncInfo = {
3036
+ upper: currFuncInfo,
3037
+ codePath,
3038
+ hasReturn: false
3039
+ };
3040
+ funcInfos.set(node, currFuncInfo);
3041
+ },
3042
+ onCodePathEnd() {
3043
+ currFuncInfo = currFuncInfo.upper;
3044
+ }
3045
+ },
3046
+ remedaContext.getImportVisitors()
3047
+ );
3048
+ }
3049
+ var rule2 = {
3050
+ create: create3,
3051
+ meta: meta2
3052
+ };
3053
+ var RULE_NAME2 = "collection-return";
3054
+ var collection_return_default = rule2;
3055
+
3056
+ // src/rules/prefer-constant.ts
3057
+ var { getValueReturnedInFirstStatement: getValueReturnedInFirstStatement2 } = astUtil_default;
3058
+ var meta3 = {
3059
+ type: "problem",
3060
+ docs: {
3061
+ url: getDocsUrl("prefer-constant")
3062
+ },
3063
+ schema: [
3064
+ {
3065
+ type: "boolean"
3066
+ },
3067
+ {
3068
+ type: "boolean"
3069
+ }
3070
+ ]
3071
+ };
3072
+ function create4(context) {
3073
+ const shouldCheckArrowFunctions = context.options[0] !== void 0 ? context.options[0] : true;
3074
+ const shouldCheckFunctionDeclarations = context.options[1] !== void 0 ? context.options[1] : false;
3075
+ function isCompletelyLiteral(node) {
3076
+ switch (node.type) {
3077
+ case "Literal":
3078
+ return true;
3079
+ case "BinaryExpression":
3080
+ return isCompletelyLiteral(node.left) && isCompletelyLiteral(node.right);
3081
+ case "UnaryExpression":
3082
+ return isCompletelyLiteral(node.argument);
3083
+ case "ConditionalExpression":
3084
+ return isCompletelyLiteral(node.test) && isCompletelyLiteral(node.consequent) && isCompletelyLiteral(node.alternate);
3085
+ default:
3086
+ return false;
3087
+ }
3088
+ }
3089
+ function reportIfLikeConstant(func, node) {
3090
+ const valueReturnedInFirstLine = func(node);
3091
+ if (valueReturnedInFirstLine && isCompletelyLiteral(valueReturnedInFirstLine)) {
3092
+ context.report({
3093
+ node,
3094
+ message: "Prefer R.constant over a function returning a literal"
3095
+ });
3096
+ }
3097
+ }
3098
+ function handleFunctionDefinition(node) {
3099
+ reportIfLikeConstant(getValueReturnedInFirstStatement2, node);
3100
+ }
3101
+ return {
3102
+ FunctionExpression: handleFunctionDefinition,
3103
+ FunctionDeclaration(node) {
3104
+ if (shouldCheckFunctionDeclarations) {
3105
+ handleFunctionDefinition(node);
3106
+ }
3107
+ },
3108
+ ArrowFunctionExpression(node) {
3109
+ if (shouldCheckArrowFunctions) {
3110
+ handleFunctionDefinition(node);
3111
+ }
3112
+ }
3113
+ };
3114
+ }
3115
+ var rule3 = {
3116
+ create: create4,
3117
+ meta: meta3
3118
+ };
3119
+ var RULE_NAME3 = "prefer-constant";
3120
+ var prefer_constant_default = rule3;
3121
+
3122
+ // src/rules/prefer-do-nothing.ts
3123
+ var { getFirstFunctionLine: getFirstFunctionLine2 } = astUtil_default;
3124
+ var meta4 = {
3125
+ type: "problem",
3126
+ schema: [],
3127
+ docs: {
3128
+ url: getDocsUrl("prefer-do-nothing")
3129
+ }
3130
+ };
3131
+ function create5(context) {
3132
+ function reportIfEmptyFunction(node) {
3133
+ if (!getFirstFunctionLine2(node) && node.parent.type !== "MethodDefinition" && !node.generator && !node.async) {
3134
+ context.report({
3135
+ node,
3136
+ message: "Prefer R.doNothing() or R.constant(undefined) over an empty function"
3137
+ });
3138
+ }
3139
+ }
3140
+ return {
3141
+ FunctionExpression: reportIfEmptyFunction,
3142
+ ArrowFunctionExpression: reportIfEmptyFunction
3143
+ };
3144
+ }
3145
+ var rule4 = {
3146
+ create: create5,
3147
+ meta: meta4
3148
+ };
3149
+ var RULE_NAME4 = "prefer-do-nothing";
3150
+ var prefer_do_nothing_default = rule4;
3151
+
3152
+ // src/rules/prefer-filter.ts
3153
+ var {
3154
+ isIdentifierWithName: isIdentifierWithName2,
3155
+ isMemberExpOf: isMemberExpOf2,
3156
+ isNegationOfMemberOf: isNegationOfMemberOf2,
3157
+ isEqEqEqToMemberOf,
3158
+ isNotEqEqToMemberOf,
3159
+ getFirstFunctionLine: getFirstFunctionLine3,
3160
+ hasOnlyOneStatement: hasOnlyOneStatement2,
3161
+ getFirstParamName: getFirstParamName2
3162
+ } = astUtil_default;
3163
+ var meta5 = {
3164
+ type: "problem",
3165
+ docs: {
3166
+ url: getDocsUrl("prefer-filter")
3167
+ },
3168
+ schema: [
3169
+ {
3170
+ type: "integer"
3171
+ }
3172
+ ]
3173
+ };
3174
+ function create6(context) {
3175
+ const DEFAULT_MAX_PROPERTY_PATH_LENGTH = 3;
3176
+ const maxLength = parseInt(context.options[0], 10) || DEFAULT_MAX_PROPERTY_PATH_LENGTH;
3177
+ function isIfWithoutElse(statement) {
3178
+ return statement && statement.type === "IfStatement" && !statement.alternate;
3179
+ }
3180
+ function canBeShorthand(exp, paramName) {
3181
+ return isIdentifierWithName2(exp, paramName) || isMemberExpOf2(exp, paramName, { maxLength }) || isNegationOfMemberOf2(exp, paramName, { maxLength }) || isEqEqEqToMemberOf(exp, paramName, { maxLength }) || isNotEqEqToMemberOf(exp, paramName, { maxLength });
3182
+ }
3183
+ function onlyHasSimplifiableIf(func) {
3184
+ const firstLine = getFirstFunctionLine3(func);
3185
+ return func && hasOnlyOneStatement2(func) && func.params.length === 1 && isIfWithoutElse(firstLine) && canBeShorthand(firstLine.test, getFirstParamName2(func));
3186
+ }
3187
+ return getRemedaMethodVisitors(context, (node, iteratee2, { method: method2 }) => {
3188
+ if (method2 === "forEach" && onlyHasSimplifiableIf(iteratee2)) {
3189
+ context.report({
3190
+ node,
3191
+ message: "Prefer R.filter or R.some over an if statement inside a R.forEach"
3192
+ });
3193
+ }
3194
+ });
3195
+ }
3196
+ var rule5 = {
3197
+ create: create6,
3198
+ meta: meta5
3199
+ };
3200
+ var RULE_NAME5 = "prefer-filter";
3201
+ var prefer_filter_default = rule5;
3202
+
3203
+ // src/rules/prefer-find.ts
3204
+ var meta6 = {
3205
+ type: "problem",
3206
+ schema: [],
3207
+ docs: {
3208
+ url: getDocsUrl("prefer-find")
3209
+ }
3210
+ };
3211
+ function create7(context) {
3212
+ function isZeroIndexAccess(node) {
3213
+ return node.type === "MemberExpression" && node.property.value === 0;
3214
+ }
3215
+ function isChainedBeforeMethod(callType, node, method2) {
3216
+ return callType === "chained" && isCallToMethod(node.parent.parent, method2);
3217
+ }
3218
+ return getRemedaMethodVisitors(
3219
+ context,
3220
+ (node, iteratee2, { method: method2, callType, remedaContext }) => {
3221
+ if (method2 === "filter") {
3222
+ if (isZeroIndexAccess(node.parent) || isCallToRemedaMethod(node.parent, "first", remedaContext) || isChainedBeforeMethod(callType, node, "first")) {
3223
+ context.report({
3224
+ node,
3225
+ message: "Prefer using `R.find` over selecting the first item of a filtered result"
3226
+ });
3227
+ }
3228
+ if (isCallToRemedaMethod(node.parent, "last", remedaContext) || isChainedBeforeMethod(callType, node, "last")) {
3229
+ context.report({
3230
+ node,
3231
+ message: "Prefer using `R.findLast` over selecting the last item of a filtered result"
3232
+ });
3233
+ }
3234
+ }
3235
+ }
3236
+ );
3237
+ }
3238
+ var rule6 = {
3239
+ create: create7,
3240
+ meta: meta6
3241
+ };
3242
+ var RULE_NAME6 = "prefer-find";
3243
+ var prefer_find_default = rule6;
3244
+
3245
+ // src/rules/prefer-flat-map.ts
3246
+ var { getCaller: getCaller3 } = astUtil_default;
3247
+ var meta7 = {
3248
+ type: "problem",
3249
+ schema: [],
3250
+ docs: {
3251
+ url: getDocsUrl("prefer-flat-map")
3252
+ }
3253
+ };
3254
+ function create8(context) {
3255
+ function isChainedMapFlatten(node) {
3256
+ return isCallToMethod(getCaller3(node), "map");
3257
+ }
3258
+ return getRemedaMethodVisitors(
3259
+ context,
3260
+ (node, iteratee2, { method: method2, remedaContext }) => {
3261
+ if (method2 === "flat" && (isChainedMapFlatten(node) || isCallToRemedaMethod(node.arguments[0], "map", remedaContext))) {
3262
+ context.report({
3263
+ node,
3264
+ message: "Prefer R.flatMap over consecutive R.map and R.flat."
3265
+ });
3266
+ }
3267
+ }
3268
+ );
3269
+ }
3270
+ var rule7 = {
3271
+ create: create8,
3272
+ meta: meta7
3273
+ };
3274
+ var RULE_NAME7 = "prefer-flat-map";
3275
+ var prefer_flat_map_default = rule7;
3276
+
3277
+ // src/rules/prefer-is-empty.ts
3278
+ var meta8 = {
3279
+ type: "problem",
3280
+ schema: [],
3281
+ docs: {
3282
+ url: getDocsUrl("prefer-is-empty")
3283
+ },
3284
+ fixable: "code"
3285
+ };
3286
+ function create9(context) {
3287
+ const remedaContext = getRemedaContext(context);
3288
+ function getTextOfNode(node) {
3289
+ if (node) {
3290
+ if (node.type === "Identifier") {
3291
+ return node.name;
3292
+ }
3293
+ return context.getSourceCode().getText(node);
3294
+ }
3295
+ }
3296
+ const visitors = remedaContext.getImportVisitors();
3297
+ visitors.BinaryExpression = function(node) {
3298
+ if (node.operator === "===") {
3299
+ if (node.left) {
3300
+ if (node.left.property && node.right) {
3301
+ const leftExpressionMember = node.left.property.name;
3302
+ const rightExpressionMember = node.right.value;
3303
+ if (leftExpressionMember === "length" && rightExpressionMember === 0) {
3304
+ const subjectObject = node.left.object;
3305
+ context.report({
3306
+ node,
3307
+ message: "Prefer isEmpty over manually checking for length value.",
3308
+ fix(fixer) {
3309
+ return fixer.replaceText(
3310
+ node,
3311
+ `isEmpty(${getTextOfNode(subjectObject)})`
3312
+ );
3313
+ }
3314
+ });
3315
+ }
3316
+ } else if (node.left.expression && node.right && node.left.expression.property) {
3317
+ const leftExpressionMember = node.left.expression.property.name;
3318
+ const rightExpressionMember = node.right.value;
3319
+ if (leftExpressionMember === "length" && rightExpressionMember === 0) {
3320
+ const subjectObject = node.left.expression.object;
3321
+ context.report({
3322
+ node,
3323
+ message: "Prefer isEmpty over manually checking for length value.",
3324
+ fix(fixer) {
3325
+ return fixer.replaceText(
3326
+ node,
3327
+ `isEmpty(${getTextOfNode(subjectObject)})`
3328
+ );
3329
+ }
3330
+ });
3331
+ }
3332
+ }
3333
+ }
3334
+ }
3335
+ if (node.operator === ">") {
3336
+ if (node.left) {
3337
+ if (node.left.property && node.right) {
3338
+ const leftExpressionMember = node.left.property.name;
3339
+ const rightExpressionMember = node.right.value;
3340
+ if (leftExpressionMember === "length" && rightExpressionMember === 0) {
3341
+ const subjectObject = node.left.object;
3342
+ context.report({
3343
+ node,
3344
+ message: "Prefer isEmpty over manually checking for length value.",
3345
+ fix(fixer) {
3346
+ return fixer.replaceText(
3347
+ node,
3348
+ `!isEmpty(${getTextOfNode(subjectObject)})`
3349
+ );
3350
+ }
3351
+ });
3352
+ }
3353
+ } else if (node.left.expression && node.right) {
3354
+ const leftExpressionMember = node.left.expression.property.name;
3355
+ const rightExpressionMember = node.right.value;
3356
+ if (leftExpressionMember === "length" && rightExpressionMember === 0) {
3357
+ const subjectObject = node.left.expression.object;
3358
+ context.report({
3359
+ node,
3360
+ message: "Prefer isEmpty over manually checking for length value.",
3361
+ fix(fixer) {
3362
+ return fixer.replaceText(
3363
+ node,
3364
+ `!isEmpty(${getTextOfNode(subjectObject)})`
3365
+ );
3366
+ }
3367
+ });
3368
+ }
3369
+ }
3370
+ }
3371
+ }
3372
+ };
3373
+ return visitors;
3374
+ }
3375
+ var rule8 = {
3376
+ create: create9,
3377
+ meta: meta8
3378
+ };
3379
+ var RULE_NAME8 = "prefer-is-empty";
3380
+ var prefer_is_empty_default = rule8;
3381
+
3382
+ // src/rules/prefer-is-nil.ts
3383
+ import _, { matches as matches3, cond as cond3, property as property3 } from "lodash";
3384
+ var { isNegationExpression: isNegationExpression2, isEquivalentMemberExp: isEquivalentMemberExp2 } = astUtil_default;
3385
+ var meta9 = {
3386
+ type: "problem",
3387
+ schema: [],
3388
+ docs: {
3389
+ url: getDocsUrl("prefer-is-nil")
3390
+ }
3391
+ };
3392
+ function create10(context) {
3393
+ const remedaContext = getRemedaContext(context);
3394
+ const nilChecks = {
3395
+ null: {
3396
+ isValue: matches3({ type: "Literal", value: null }),
3397
+ expressionChecks: [
3398
+ getRemedaTypeCheckedBy("isNull"),
3399
+ getValueComparedTo("null")
3400
+ ]
3401
+ },
3402
+ undefined: {
3403
+ isValue: matches3({ type: "Identifier", name: "undefined" }),
3404
+ expressionChecks: [
3405
+ getRemedaTypeCheckedBy("isUndefined"),
3406
+ getValueComparedTo("undefined"),
3407
+ getValueWithTypeofUndefinedComparison
3408
+ ]
3409
+ }
3410
+ };
3411
+ function getRemedaTypeCheckedBy(typecheck) {
3412
+ return function(node) {
3413
+ return isCallToRemedaMethod(node, typecheck, remedaContext) && node.arguments[0];
3414
+ };
3415
+ }
3416
+ function getValueComparedTo(nil) {
3417
+ return function(node, operator) {
3418
+ return node.type === "BinaryExpression" && node.operator === operator && (nilChecks[nil].isValue(node.right) && node.left || nilChecks[nil].isValue(node.left) && node.right);
3419
+ };
3420
+ }
3421
+ const getTypeofArgument = cond3([
3422
+ [
3423
+ matches3({ type: "UnaryExpression", operator: "typeof" }),
3424
+ property3("argument")
3425
+ ]
3426
+ ]);
3427
+ const isUndefinedString = matches3({
3428
+ type: "Literal",
3429
+ value: "undefined"
3430
+ });
3431
+ function getValueWithTypeofUndefinedComparison(node, operator) {
3432
+ return node.type === "BinaryExpression" && node.operator === operator && (isUndefinedString(node.right) && getTypeofArgument(node.left) || isUndefinedString(node.left) && getTypeofArgument(node.right));
3433
+ }
3434
+ function checkExpression(nil, operator, node) {
3435
+ return _(nilChecks[nil].expressionChecks).map((check) => check(node, operator)).find();
3436
+ }
3437
+ function checkNegatedExpression(nil, node) {
3438
+ return isNegationExpression2(node) && checkExpression(nil, "===", node.argument) || checkExpression(nil, "!==", node);
3439
+ }
3440
+ function isEquivalentExistingExpression(node, leftNil, rightNil) {
3441
+ const leftExp = checkExpression(leftNil, "===", node.left);
3442
+ return leftExp && isEquivalentMemberExp2(
3443
+ leftExp,
3444
+ checkExpression(rightNil, "===", node.right)
3445
+ );
3446
+ }
3447
+ function isEquivalentExistingNegation(node, leftNil, rightNil) {
3448
+ const leftExp = checkNegatedExpression(leftNil, node.left);
3449
+ return leftExp && isEquivalentMemberExp2(
3450
+ leftExp,
3451
+ checkNegatedExpression(rightNil, node.right)
3452
+ );
3453
+ }
3454
+ const visitors = remedaContext.getImportVisitors();
3455
+ visitors.LogicalExpression = function(node) {
3456
+ if (node.operator === "||") {
3457
+ if (isEquivalentExistingExpression(node, "undefined", "null") || isEquivalentExistingExpression(node, "null", "undefined")) {
3458
+ context.report({
3459
+ node,
3460
+ message: "Prefer isNil over checking for undefined or null."
3461
+ });
3462
+ }
3463
+ } else if (isEquivalentExistingNegation(node, "undefined", "null") || isEquivalentExistingNegation(node, "null", "undefined")) {
3464
+ context.report({
3465
+ node,
3466
+ message: "Prefer isNil over checking for undefined or null."
3467
+ });
3468
+ }
3469
+ };
3470
+ return visitors;
3471
+ }
3472
+ var rule9 = {
3473
+ create: create10,
3474
+ meta: meta9
3475
+ };
3476
+ var RULE_NAME9 = "prefer-is-nil";
3477
+ var prefer_is_nil_default = rule9;
3478
+
3479
+ // src/rules/prefer-map.ts
3480
+ import get6 from "lodash/get";
3481
+ import includes6 from "lodash/includes";
3482
+ var {
3483
+ getFirstFunctionLine: getFirstFunctionLine4,
3484
+ hasOnlyOneStatement: hasOnlyOneStatement3,
3485
+ getMethodName: getMethodName3,
3486
+ isFunctionDefinitionWithBlock: isFunctionDefinitionWithBlock2,
3487
+ collectParameterValues: collectParameterValues2
3488
+ } = astUtil_default;
3489
+ var meta10 = {
3490
+ type: "problem",
3491
+ schema: [],
3492
+ docs: {
3493
+ url: getDocsUrl("prefer-map")
3494
+ }
3495
+ };
3496
+ function create11(context) {
3497
+ function onlyHasPush(func) {
3498
+ const firstLine = getFirstFunctionLine4(func);
3499
+ const firstParam = get6(func, "params[0]");
3500
+ const exp = func && !isFunctionDefinitionWithBlock2(func) ? firstLine : (
3501
+ //@ts-expect-error
3502
+ firstLine?.expression
3503
+ );
3504
+ return func && hasOnlyOneStatement3(func) && getMethodName3(exp) === "push" && !includes6(
3505
+ collectParameterValues2(firstParam),
3506
+ get6(exp, "callee.object.name")
3507
+ );
3508
+ }
3509
+ return getRemedaMethodVisitors(context, (node, iteratee2, { method: method2 }) => {
3510
+ if (method2 === "forEach" && onlyHasPush(iteratee2)) {
3511
+ context.report({
3512
+ node,
3513
+ message: "Prefer R.map over a R.forEach with a push to an array inside"
3514
+ });
3515
+ }
3516
+ });
3517
+ }
3518
+ var rule10 = {
3519
+ create: create11,
3520
+ meta: meta10
3521
+ };
3522
+ var RULE_NAME10 = "prefer-map";
3523
+ var prefer_map_default = rule10;
3524
+
3525
+ // src/rules/prefer-nullish-coalescing.ts
3526
+ var meta11 = {
3527
+ type: "problem",
3528
+ schema: [],
3529
+ docs: {
3530
+ url: getDocsUrl("prefer-nullish-coalescing")
3531
+ },
3532
+ fixable: "code"
3533
+ };
3534
+ function create12(context) {
3535
+ const remedaContext = getRemedaContext(context);
3536
+ function getTextOfNode(node) {
3537
+ if (node) {
3538
+ if (node.type === "Identifier") {
3539
+ return node.name;
3540
+ }
3541
+ return context.getSourceCode().getText(node);
3542
+ }
3543
+ }
3544
+ const visitors = remedaContext.getImportVisitors();
3545
+ visitors.ConditionalExpression = function(node) {
3546
+ const statement = node.test;
3547
+ if (statement.operator === "!") {
3548
+ if (statement.argument && statement.argument.callee && statement.argument.callee.name && statement.argument.callee.name === "isNullish") {
3549
+ const argument = getTextOfNode(statement.argument.arguments[0]);
3550
+ const consequent = getTextOfNode(node.consequent);
3551
+ const alternate = getTextOfNode(node.alternate);
3552
+ if (argument === consequent) {
3553
+ context.report({
3554
+ node,
3555
+ message: "Prefer nullish coalescing over checking a ternary with !isNullish.",
3556
+ fix(fixer) {
3557
+ return fixer.replaceText(node, `${argument} ?? ${alternate}`);
3558
+ }
3559
+ });
3560
+ }
3561
+ }
3562
+ }
3563
+ };
3564
+ return visitors;
3565
+ }
3566
+ var rule11 = {
3567
+ create: create12,
3568
+ meta: meta11
3569
+ };
3570
+ var RULE_NAME11 = "prefer-nullish-coalescing";
3571
+ var prefer_nullish_coalescing_default = rule11;
3572
+
3573
+ // src/rules/prefer-remeda-typecheck.ts
3574
+ import some2 from "lodash/some";
3575
+ var meta12 = {
3576
+ type: "problem",
3577
+ schema: [],
3578
+ docs: {
3579
+ url: getDocsUrl("prefer-remeda-typecheck")
3580
+ }
3581
+ };
3582
+ function create13(context) {
3583
+ const otherSides = {
3584
+ left: "right",
3585
+ right: "left"
3586
+ };
3587
+ function isTypeOf(node) {
3588
+ return node && node.type === "UnaryExpression" && node.operator === "typeof";
3589
+ }
3590
+ function isStrictComparison(node) {
3591
+ return node.operator === "===" || node.operator === "!==";
3592
+ }
3593
+ function isDeclaredVariable(node) {
3594
+ const sourceCode = context.sourceCode ?? context.getSourceCode();
3595
+ const scope = sourceCode?.getScope?.(node);
3596
+ const definedVariables = scope.variables;
3597
+ return some2(definedVariables, { name: node.name });
3598
+ }
3599
+ function getValueForSide(node, side) {
3600
+ const otherSide = otherSides[side];
3601
+ if (isTypeOf(node[side]) && (node[otherSide].value !== "undefined" || node[side].argument.type !== "Identifier" || isDeclaredVariable(node[side].argument))) {
3602
+ return node[otherSide].value;
3603
+ }
3604
+ }
3605
+ function getTypeofCompareType(node) {
3606
+ if (isStrictComparison(node)) {
3607
+ return getValueForSide(node, "left") || getValueForSide(node, "right");
3608
+ }
3609
+ }
3610
+ const REPORT_MESSAGE = "Prefer 'R.{{method}}' over {{actual}}.";
3611
+ return {
3612
+ BinaryExpression(node) {
3613
+ const typeofCompareType = getTypeofCompareType(node);
3614
+ if (typeofCompareType) {
3615
+ context.report({
3616
+ node,
3617
+ message: REPORT_MESSAGE,
3618
+ data: {
3619
+ method: getIsTypeMethod(typeofCompareType),
3620
+ actual: "'typeof' comparison"
3621
+ }
3622
+ });
3623
+ } else if (node.operator === "instanceof") {
3624
+ const remedaEquivalent = getIsTypeMethod(node.right.name);
3625
+ if (node.right.type === "Identifier" && remedaEquivalent) {
3626
+ context.report({
3627
+ node,
3628
+ message: REPORT_MESSAGE,
3629
+ data: {
3630
+ method: remedaEquivalent,
3631
+ actual: `'instanceof ${node.right.name}'`
3632
+ }
3633
+ });
3634
+ }
3635
+ }
3636
+ }
3637
+ };
3638
+ }
3639
+ var rule12 = {
3640
+ create: create13,
3641
+ meta: meta12
3642
+ };
3643
+ var RULE_NAME12 = "prefer-remeda-typecheck";
3644
+ var prefer_remeda_typecheck_default = rule12;
3645
+
3646
+ // src/rules/prefer-some.ts
3647
+ var { getExpressionComparedToInt: getExpressionComparedToInt2 } = astUtil_default;
3648
+ var meta13 = {
3649
+ type: "problem",
3650
+ docs: {
3651
+ url: getDocsUrl("prefer-some")
3652
+ },
3653
+ schema: []
3654
+ };
3655
+ function create14(context) {
3656
+ const visitors = getRemedaMethodVisitors(
3657
+ context,
3658
+ (node, iteratee2, { method: method2 }) => {
3659
+ if (method2 === "findIndex" && node === getExpressionComparedToInt2(node.parent, -1, true)) {
3660
+ context.report({
3661
+ node,
3662
+ message: "Prefer R.some over findIndex comparison to -1"
3663
+ });
3664
+ }
3665
+ }
3666
+ );
3667
+ return visitors;
3668
+ }
3669
+ var rule13 = {
3670
+ create: create14,
3671
+ meta: meta13
3672
+ };
3673
+ var RULE_NAME13 = "prefer-some";
3674
+ var prefer_some_default = rule13;
3675
+
3676
+ // src/rules/prefer-times.ts
3677
+ import { get as get7 } from "lodash";
3678
+ var meta14 = {
3679
+ type: "problem",
3680
+ schema: [],
3681
+ docs: {
3682
+ url: getDocsUrl("prefer-times")
3683
+ }
3684
+ };
3685
+ function create15(context) {
3686
+ return getRemedaMethodVisitors(context, (node, iteratee2, { method: method2 }) => {
3687
+ if (method2 === "map" && get7(iteratee2, "params.length") === 0) {
3688
+ context.report({
3689
+ node,
3690
+ message: "Prefer R.times over R.map without using arguments"
3691
+ });
3692
+ }
3693
+ });
3694
+ }
3695
+ var rule14 = {
3696
+ create: create15,
3697
+ meta: meta14
3698
+ };
3699
+ var RULE_NAME14 = "prefer-times";
3700
+ var prefer_times_default = rule14;
3701
+
3702
+ // src/rules/index.ts
3703
+ var rules = {
3704
+ [RULE_NAME]: collection_method_value_default,
3705
+ [RULE_NAME2]: collection_return_default,
3706
+ [RULE_NAME3]: prefer_constant_default,
3707
+ [RULE_NAME4]: prefer_do_nothing_default,
3708
+ [RULE_NAME5]: prefer_filter_default,
3709
+ [RULE_NAME6]: prefer_find_default,
3710
+ [RULE_NAME7]: prefer_flat_map_default,
3711
+ [RULE_NAME8]: prefer_is_empty_default,
3712
+ [RULE_NAME9]: prefer_is_nil_default,
3713
+ [RULE_NAME10]: prefer_map_default,
3714
+ [RULE_NAME11]: prefer_nullish_coalescing_default,
3715
+ [RULE_NAME12]: prefer_remeda_typecheck_default,
3716
+ [RULE_NAME13]: prefer_some_default,
3717
+ [RULE_NAME14]: prefer_times_default
3718
+ };
3719
+
3720
+ // src/index.ts
3721
+ var plugin = {
3722
+ meta: { name: package_default.name, version: package_default.version },
3723
+ // @ts-expect-error
3724
+ rules,
3725
+ configs: {},
3726
+ processors: {}
3727
+ };
3728
+ var pluginShortName = _2.last(plugin.meta.name.split("-"));
3729
+ Object.assign(plugin.configs, {
3730
+ recommended: {
3731
+ plugins: {
3732
+ [pluginShortName]: plugin
3733
+ },
3734
+ rules: {
3735
+ [`${pluginShortName}/prefer-is-empty`]: 2,
3736
+ [`${pluginShortName}/prefer-is-nil`]: 2,
3737
+ [`${pluginShortName}/prefer-times`]: 2,
3738
+ [`${pluginShortName}/prefer-constant`]: 2,
3739
+ [`${pluginShortName}/prefer-remeda-typecheck`]: 2,
3740
+ [`${pluginShortName}/prefer-nullish-coalescing`]: 2,
3741
+ [`${pluginShortName}/prefer-filter`]: [2, 3],
3742
+ [`${pluginShortName}/collection-method-value`]: 2,
3743
+ [`${pluginShortName}/collection-return`]: 2,
3744
+ [`${pluginShortName}/prefer-map`]: 2,
3745
+ [`${pluginShortName}/prefer-find`]: 2,
3746
+ [`${pluginShortName}/prefer-some`]: 2,
3747
+ [`${pluginShortName}/prefer-flat-map`]: 2,
3748
+ [`${pluginShortName}/prefer-do-nothing`]: 2
3749
+ }
3750
+ }
3751
+ });
3752
+ var src_default = plugin;
3753
+ export {
3754
+ src_default as default
3755
+ };