eslint-plugin-remeda 1.0.0 → 1.1.0

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