rambda 8.4.0 → 8.5.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/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ 8.5.0
2
+
3
+ - Revert changes in `R.anyPass` introduced in `8.4.0` release. The reason is that the change was breaking the library older than `5.2.0` TypeScript.
4
+
5
+ - Wrong `R.partial` TS definition - [Issue #705](https://github.com/selfrefactor/rambda/issues/705)
6
+
7
+ - Add `R.dropRepeatsBy`
8
+
9
+ - Add `R.empty`
10
+
11
+ - Add `R.eqBy`
12
+
13
+ - Add `R.forEachObjIndexed`
14
+
1
15
  8.4.0
2
16
 
3
17
  - Add `R.dissocPath`
package/README.md CHANGED
@@ -789,7 +789,7 @@ describe('R.any', () => {
789
789
 
790
790
  ```typescript
791
791
 
792
- anyPass<T, U extends T[]>(predicates: { [K in keyof U]: (x: T) => x is U[K]
792
+ anyPass<T>(predicates: ((x: T) => boolean)[]): (input: T) => boolean
793
793
  ```
794
794
 
795
795
  It accepts list of `predicates` and returns a function. This function with its `input` will return `true`, if any of `predicates` returns `true` for this `input`.
@@ -801,7 +801,6 @@ It accepts list of `predicates` and returns a function. This function with its `
801
801
  <summary>All TypeScript definitions</summary>
802
802
 
803
803
  ```typescript
804
- anyPass<T, U extends T[]>(predicates: { [K in keyof U]: (x: T) => x is U[K]; }): (input: T) => input is U[number];
805
804
  anyPass<T>(predicates: ((x: T) => boolean)[]): (input: T) => boolean;
806
805
  anyPass<T>(predicates: ((...inputs: T[]) => boolean)[]): (...inputs: T[]) => boolean;
807
806
  ```
@@ -930,18 +929,18 @@ describe('anyPass', () => {
930
929
  filtered2 // $ExpectType number[]
931
930
  })
932
931
  it('functions as a type guard', () => {
933
- const isString = (x: unknown): x is string => typeof x === 'string';
934
- const isNumber = (x: unknown): x is number => typeof x === 'number';
935
- const isBoolean = (x: unknown): x is boolean => typeof x === 'boolean';
936
-
937
- const isStringNumberOrBoolean = anyPass([isString, isNumber, isBoolean]);
932
+ const isString = (x: unknown): x is string => typeof x === 'string'
933
+ const isNumber = (x: unknown): x is number => typeof x === 'number'
934
+ const isBoolean = (x: unknown): x is boolean => typeof x === 'boolean'
935
+
936
+ const isStringNumberOrBoolean = anyPass([isString, isNumber, isBoolean])
938
937
 
939
- isStringNumberOrBoolean // $ExpectType (input: unknown) => input is string | number | boolean
938
+ isStringNumberOrBoolean // $ExpectType (input: unknown) => boolean
940
939
 
941
- const aValue: unknown = 1;
940
+ const aValue: unknown = 1
942
941
 
943
942
  if (isStringNumberOrBoolean(aValue)) {
944
- aValue // $ExpectType string | number | boolean
943
+ aValue // $ExpectType unknown
945
944
  }
946
945
  })
947
946
  })
@@ -3438,6 +3437,10 @@ describe('R.dropRepeats', () => {
3438
3437
 
3439
3438
  [![---------------](https://raw.githubusercontent.com/selfrefactor/rambda/master/files/separator.png)](#dropRepeats)
3440
3439
 
3440
+ ### dropRepeatsBy
3441
+
3442
+ [![---------------](https://raw.githubusercontent.com/selfrefactor/rambda/master/files/separator.png)](#dropRepeatsBy)
3443
+
3441
3444
  ### dropRepeatsWith
3442
3445
 
3443
3446
  <a title="redirect to Rambda Repl site" href="https://rambda.now.sh?const%20list%20%3D%20%5B%7Ba%3A1%2Cb%3A2%7D%2C%20%7Ba%3A1%2Cb%3A3%7D%2C%20%7Ba%3A2%2C%20b%3A4%7D%5D%0Aconst%20result%20%3D%20R.dropRepeatsWith(R.prop('a')%2C%20list)%0A%0A%2F%2F%20%3D%3E%20%5B%7Ba%3A1%2Cb%3A2%7D%2C%20%7Ba%3A2%2C%20b%3A4%7D%5D">Try this <strong>R.dropRepeatsWith</strong> example in Rambda REPL</a>
@@ -3603,6 +3606,10 @@ describe('R.either', () => {
3603
3606
 
3604
3607
  [![---------------](https://raw.githubusercontent.com/selfrefactor/rambda/master/files/separator.png)](#either)
3605
3608
 
3609
+ ### empty
3610
+
3611
+ [![---------------](https://raw.githubusercontent.com/selfrefactor/rambda/master/files/separator.png)](#empty)
3612
+
3606
3613
  ### endsWith
3607
3614
 
3608
3615
  ```typescript
@@ -3764,6 +3771,10 @@ describe('R.endsWith - string', () => {
3764
3771
 
3765
3772
  [![---------------](https://raw.githubusercontent.com/selfrefactor/rambda/master/files/separator.png)](#endsWith)
3766
3773
 
3774
+ ### eqBy
3775
+
3776
+ [![---------------](https://raw.githubusercontent.com/selfrefactor/rambda/master/files/separator.png)](#eqBy)
3777
+
3767
3778
  ### eqProps
3768
3779
 
3769
3780
  It returns `true` if property `prop` in `obj1` is equal to property `prop` in `obj2` according to `R.equals`.
@@ -5422,36 +5433,46 @@ forEach<T, U>(fn: ObjectIterator<T, void>): (list: Dictionary<T>) => Dictionary<
5422
5433
  import { isArray } from './_internals/isArray.js'
5423
5434
  import { keys } from './_internals/keys.js'
5424
5435
 
5425
- export function forEach(fn, list){
5426
- if (arguments.length === 1) return _list => forEach(fn, _list)
5436
+ export function forEachObjIndexedFn(fn, obj){
5437
+ let index = 0
5438
+ const listKeys = keys(obj)
5439
+ const len = listKeys.length
5427
5440
 
5428
- if (list === undefined){
5429
- return
5441
+ while (index < len){
5442
+ const key = listKeys[ index ]
5443
+ fn(
5444
+ obj[ key ], key, obj
5445
+ )
5446
+ index++
5430
5447
  }
5431
5448
 
5432
- if (isArray(list)){
5433
- let index = 0
5434
- const len = list.length
5449
+ return obj
5450
+ }
5435
5451
 
5436
- while (index < len){
5437
- fn(list[ index ])
5438
- index++
5439
- }
5440
- } else {
5452
+ export function forEachObjIndexed(fn, list){
5453
+ if (arguments.length === 1) return _list => forEachObjIndexed(fn, _list)
5454
+
5455
+ if (list === undefined) return
5456
+
5457
+ return forEachObjIndexedFn(fn, list)
5458
+ }
5459
+
5460
+ export function forEach(fn, iterable){
5461
+ if (arguments.length === 1) return _list => forEach(fn, _list)
5462
+
5463
+ if (iterable === undefined) return
5464
+
5465
+ if (isArray(iterable)){
5441
5466
  let index = 0
5442
- const listKeys = keys(list)
5443
- const len = listKeys.length
5467
+ const len = iterable.length
5444
5468
 
5445
5469
  while (index < len){
5446
- const key = listKeys[ index ]
5447
- fn(
5448
- list[ key ], key, list
5449
- )
5470
+ fn(iterable[ index ])
5450
5471
  index++
5451
5472
  }
5452
- }
5473
+ } else return forEachObjIndexedFn(fn, iterable)
5453
5474
 
5454
- return list
5475
+ return iterable
5455
5476
  }
5456
5477
  ```
5457
5478
 
@@ -5582,6 +5603,10 @@ describe('R.forEach with objects', () => {
5582
5603
 
5583
5604
  [![---------------](https://raw.githubusercontent.com/selfrefactor/rambda/master/files/separator.png)](#forEach)
5584
5605
 
5606
+ ### forEachObjIndexed
5607
+
5608
+ [![---------------](https://raw.githubusercontent.com/selfrefactor/rambda/master/files/separator.png)](#forEachObjIndexed)
5609
+
5585
5610
  ### fromPairs
5586
5611
 
5587
5612
  It transforms a `listOfPairs` to an object.
@@ -8780,7 +8805,7 @@ mergeWith<Output>(fn: (x: any, z: any) => any): <U, V>(a: U, b: V) => Output;
8780
8805
  ```javascript
8781
8806
  import { curry } from './curry.js'
8782
8807
 
8783
- function mergeWithFn(
8808
+ export function mergeWithFn(
8784
8809
  mergeFn, aInput, bInput
8785
8810
  ){
8786
8811
  const a = aInput ?? {}
@@ -8788,21 +8813,15 @@ function mergeWithFn(
8788
8813
  const willReturn = {}
8789
8814
 
8790
8815
  Object.keys(a).forEach(key => {
8791
- if (b[ key ] === undefined){
8792
- willReturn[ key ] = a[ key ]
8793
- } else {
8794
- willReturn[ key ] = mergeFn(a[ key ], b[ key ])
8795
- }
8816
+ if (b[ key ] === undefined) willReturn[ key ] = a[ key ]
8817
+ else willReturn[ key ] = mergeFn(a[ key ], b[ key ])
8796
8818
  })
8797
8819
 
8798
8820
  Object.keys(b).forEach(key => {
8799
8821
  if (willReturn[ key ] !== undefined) return
8800
8822
 
8801
- if (a[ key ] === undefined){
8802
- willReturn[ key ] = b[ key ]
8803
- } else {
8804
- willReturn[ key ] = mergeFn(a[ key ], b[ key ])
8805
- }
8823
+ if (a[ key ] === undefined) willReturn[ key ] = b[ key ]
8824
+ else willReturn[ key ] = mergeFn(a[ key ], b[ key ])
8806
8825
  })
8807
8826
 
8808
8827
  return willReturn
@@ -8819,10 +8838,10 @@ export const mergeWith = curry(mergeWithFn)
8819
8838
 
8820
8839
  ```javascript
8821
8840
  import { concat } from './concat.js'
8822
- import { mergeWith } from './mergeWith.js'
8841
+ import { mergeWithFn } from './mergeWith.js'
8823
8842
 
8824
8843
  test('happy', () => {
8825
- const result = mergeWith(
8844
+ const result = mergeWithFn(
8826
8845
  concat,
8827
8846
  {
8828
8847
  a : true,
@@ -8835,8 +8854,8 @@ test('happy', () => {
8835
8854
  )
8836
8855
  const expected = {
8837
8856
  a : true,
8838
- values : [ 10, 20, 15, 35 ],
8839
8857
  b : true,
8858
+ values : [ 10, 20, 15, 35 ],
8840
8859
  }
8841
8860
  expect(result).toEqual(expected)
8842
8861
  })
@@ -8844,31 +8863,31 @@ test('happy', () => {
8844
8863
  // https://github.com/ramda/ramda/pull/3222/files#diff-d925d9188b478d2f1d4b26012c6dddac374f9e9d7a336604d654b9a113bfc857
8845
8864
  describe('acts as if nil values are simply empty objects', () => {
8846
8865
  it('if the first object is nil and the second empty', () => {
8847
- expect(mergeWith(
8866
+ expect(mergeWithFn(
8848
8867
  concat, undefined, {}
8849
8868
  )).toEqual({})
8850
8869
  })
8851
8870
 
8852
8871
  it('if the first object is empty and the second nil', () => {
8853
- expect(mergeWith(
8872
+ expect(mergeWithFn(
8854
8873
  concat, {}, null
8855
8874
  )).toEqual({})
8856
8875
  })
8857
8876
 
8858
8877
  it('if both objects are nil', () => {
8859
- expect(mergeWith(
8878
+ expect(mergeWithFn(
8860
8879
  concat, undefined, null
8861
8880
  )).toEqual({})
8862
8881
  })
8863
8882
 
8864
8883
  it('if the first object is not empty and the second is nil', () => {
8865
- expect(mergeWith(
8884
+ expect(mergeWithFn(
8866
8885
  concat, { a : 'a' }, null
8867
8886
  )).toEqual({ a : 'a' })
8868
8887
  })
8869
8888
 
8870
8889
  it('if the first object is nil and the second is not empty', () => {
8871
- expect(mergeWith(
8890
+ expect(mergeWithFn(
8872
8891
  concat, undefined, { a : 'a' }
8873
8892
  )).toEqual({ a : 'a' })
8874
8893
  })
@@ -10073,18 +10092,7 @@ test('index lens', () => {
10073
10092
 
10074
10093
  ```typescript
10075
10094
 
10076
- partial<
10077
- Args extends unknown[],
10078
- ArgsGiven extends [...Partial<Args>],
10079
- R
10080
- >(
10081
- fn: (...args: Args) => R,
10082
- ...args: ArgsGiven
10083
- ): Args extends [...{[K in keyof ArgsGiven]: Args[K]}, ...infer ArgsRemaining]
10084
- ? ArgsRemaining extends []
10085
- ? R
10086
- : (...args: ArgsRemaining) => R
10087
- : never
10095
+ partial<V0, V1, T>(fn: (x0: V0, x1: V1) => T, args: [V0]): (x1: V1) => T
10088
10096
  ```
10089
10097
 
10090
10098
  It is very similar to `R.curry`, but you can pass initial arguments when you create the curried function.
@@ -10099,31 +10107,22 @@ The name comes from the fact that you partially inject the inputs.
10099
10107
  <summary>All TypeScript definitions</summary>
10100
10108
 
10101
10109
  ```typescript
10102
- partial<
10103
- Args extends unknown[],
10104
- ArgsGiven extends [...Partial<Args>],
10105
- R
10106
- >(
10107
- fn: (...args: Args) => R,
10108
- ...args: ArgsGiven
10109
- ): Args extends [...{[K in keyof ArgsGiven]: Args[K]}, ...infer ArgsRemaining]
10110
- ? ArgsRemaining extends []
10111
- ? R
10112
- : (...args: ArgsRemaining) => R
10113
- : never;
10114
-
10115
- partial<
10116
- Args extends readonly unknown[],
10117
- ArgsGiven extends [...Partial<Args>],
10118
- R
10119
- >(
10120
- fn: (...args: Args) => R,
10121
- args: ArgsGiven
10122
- ): Args extends [...{[K in keyof ArgsGiven]: Args[K]}, ...infer ArgsRemaining]
10123
- ? ArgsRemaining extends []
10124
- ? R
10125
- : (...args: ArgsRemaining) => R
10126
- : never;
10110
+ partial<V0, V1, T>(fn: (x0: V0, x1: V1) => T, args: [V0]): (x1: V1) => T;
10111
+ partial<V0, V1, V2, T>(fn: (x0: V0, x1: V1, x2: V2) => T, args: [V0, V1]): (x2: V2) => T;
10112
+ partial<V0, V1, V2, T>(fn: (x0: V0, x1: V1, x2: V2) => T, args: [V0]): (x1: V1, x2: V2) => T;
10113
+ partial<V0, V1, V2, V3, T>(
10114
+ fn: (x0: V0, x1: V1, x2: V2, x3: V3) => T,
10115
+ args: [V0, V1, V2],
10116
+ ): (x2: V3) => T;
10117
+ partial<V0, V1, V2, V3, T>(
10118
+ fn: (x0: V0, x1: V1, x2: V2, x3: V3) => T,
10119
+ args: [V0, V1],
10120
+ ): (x2: V2, x3: V3) => T;
10121
+ partial<V0, V1, V2, V3, T>(
10122
+ fn: (x0: V0, x1: V1, x2: V2, x3: V3) => T,
10123
+ args: [V0],
10124
+ ): (x1: V1, x2: V2, x3: V3) => T;
10125
+ partial<T>(fn: (...a: any[]) => T, args: any[]): (...a: any[]) => T;
10127
10126
  ```
10128
10127
 
10129
10128
  </details>
@@ -10240,44 +10239,20 @@ describe('R.partial', () => {
10240
10239
  aBoolean: boolean,
10241
10240
  aNull: null
10242
10241
  ) {
10243
- return { aString, aNumber, aBoolean, aNull }
10242
+ return {aString, aNumber, aBoolean, aNull}
10244
10243
  }
10245
10244
 
10246
10245
  // @ts-expect-error
10247
- partial(fn, 1);
10248
-
10249
- const fn1 = partial(fn, 'a')
10250
-
10251
- // @ts-expect-error
10252
- partial(fn1, 'b');
10253
-
10254
- const fn2 = partial(fn1, 2)
10255
- const result = fn2(true, null)
10256
- result // $ExpectType { aString: string; aNumber: number; aBoolean: boolean; aNull: null; }
10257
- })
10258
-
10259
- it('ramda', () => {
10260
- function fn(
10261
- aString: string,
10262
- aNumber: number,
10263
- aBoolean: boolean,
10264
- aNull: null
10265
- ) {
10266
- return { aString, aNumber, aBoolean, aNull }
10267
- }
10268
-
10269
- // @ts-expect-error
10270
- partial(fn, 1);
10246
+ partial(fn, 1)
10271
10247
 
10272
10248
  const fn1 = partial(fn, ['a'])
10273
-
10274
- // @ts-expect-error
10275
- partial(fn1, ['b']);
10249
+ partial(fn1, ['b'])
10276
10250
 
10277
10251
  const fn2 = partial(fn1, [2])
10278
10252
  const result = fn2(true, null)
10279
10253
  result // $ExpectType { aString: string; aNumber: number; aBoolean: boolean; aNull: null; }
10280
- })})
10254
+ })
10255
+ })
10281
10256
  ```
10282
10257
 
10283
10258
  </details>
@@ -17452,6 +17427,20 @@ describe('R.zipWith', () => {
17452
17427
 
17453
17428
  ## ❯ CHANGELOG
17454
17429
 
17430
+ 8.5.0
17431
+
17432
+ - Revert changes in `R.anyPass` introduced in `8.4.0` release. The reason is that the change was breaking the library older than `5.2.0` TypeScript.
17433
+
17434
+ - Wrong `R.partial` TS definition - [Issue #705](https://github.com/selfrefactor/rambda/issues/705)
17435
+
17436
+ - Add `R.dropRepeatsBy`
17437
+
17438
+ - Add `R.empty`
17439
+
17440
+ - Add `R.eqBy`
17441
+
17442
+ - Add `R.forEachObjIndexed`
17443
+
17455
17444
  8.4.0
17456
17445
 
17457
17446
  - Add `R.dissocPath`
package/dist/rambda.js CHANGED
@@ -1015,6 +1015,21 @@ function dropRepeats(list) {
1015
1015
  return toReturn;
1016
1016
  }
1017
1017
 
1018
+ function dropRepeatsBy(fn, list) {
1019
+ if (arguments.length === 1) return _list => dropRepeatsBy(fn, _list);
1020
+ let lastEvaluated = null;
1021
+ return list.slice().filter(item => {
1022
+ if (lastEvaluated === null) {
1023
+ lastEvaluated = fn(item);
1024
+ return true;
1025
+ }
1026
+ const evaluatedResult = fn(item);
1027
+ if (equals(lastEvaluated, evaluatedResult)) return false;
1028
+ lastEvaluated = evaluatedResult;
1029
+ return true;
1030
+ });
1031
+ }
1032
+
1018
1033
  function dropRepeatsWith(predicate, list) {
1019
1034
  if (arguments.length === 1) {
1020
1035
  return _iterable => dropRepeatsWith(predicate, _iterable);
@@ -1066,6 +1081,19 @@ function either(firstPredicate, secondPredicate) {
1066
1081
  return (...input) => Boolean(firstPredicate(...input) || secondPredicate(...input));
1067
1082
  }
1068
1083
 
1084
+ function empty(list) {
1085
+ if (typeof list === 'string') return '';
1086
+ if (Array.isArray(list)) {
1087
+ const {
1088
+ name
1089
+ } = list.constructor;
1090
+ if (name === 'Uint8Array') return Uint8Array.from('');
1091
+ if (name === 'Float32Array') return new Float32Array([]);
1092
+ return [];
1093
+ }
1094
+ if (type(list) === 'Object') return {};
1095
+ }
1096
+
1069
1097
  function endsWith(target, iterable) {
1070
1098
  if (arguments.length === 1) return _iterable => endsWith(target, _iterable);
1071
1099
  if (typeof iterable === 'string') {
@@ -1083,6 +1111,11 @@ function endsWith(target, iterable) {
1083
1111
  return filtered.length === target.length;
1084
1112
  }
1085
1113
 
1114
+ function eqByFn(fn, a, b) {
1115
+ return equals(fn(a), fn(b));
1116
+ }
1117
+ const eqBy = curry(eqByFn);
1118
+
1086
1119
  function prop(propToFind, obj) {
1087
1120
  if (arguments.length === 1) return _obj => prop(propToFind, _obj);
1088
1121
  if (!obj) return undefined;
@@ -1246,29 +1279,34 @@ function flip(fn) {
1246
1279
  return flipFn(fn);
1247
1280
  }
1248
1281
 
1249
- function forEach(fn, list) {
1250
- if (arguments.length === 1) return _list => forEach(fn, _list);
1251
- if (list === undefined) {
1252
- return;
1282
+ function forEachObjIndexedFn(fn, obj) {
1283
+ let index = 0;
1284
+ const listKeys = keys$1(obj);
1285
+ const len = listKeys.length;
1286
+ while (index < len) {
1287
+ const key = listKeys[index];
1288
+ fn(obj[key], key, obj);
1289
+ index++;
1253
1290
  }
1254
- if (isArray(list)) {
1255
- let index = 0;
1256
- const len = list.length;
1257
- while (index < len) {
1258
- fn(list[index]);
1259
- index++;
1260
- }
1261
- } else {
1291
+ return obj;
1292
+ }
1293
+ function forEachObjIndexed(fn, list) {
1294
+ if (arguments.length === 1) return _list => forEachObjIndexed(fn, _list);
1295
+ if (list === undefined) return;
1296
+ return forEachObjIndexedFn(fn, list);
1297
+ }
1298
+ function forEach(fn, iterable) {
1299
+ if (arguments.length === 1) return _list => forEach(fn, _list);
1300
+ if (iterable === undefined) return;
1301
+ if (isArray(iterable)) {
1262
1302
  let index = 0;
1263
- const listKeys = keys$1(list);
1264
- const len = listKeys.length;
1303
+ const len = iterable.length;
1265
1304
  while (index < len) {
1266
- const key = listKeys[index];
1267
- fn(list[key], key, list);
1305
+ fn(iterable[index]);
1268
1306
  index++;
1269
1307
  }
1270
- }
1271
- return list;
1308
+ } else return forEachObjIndexedFn(fn, iterable);
1309
+ return iterable;
1272
1310
  }
1273
1311
 
1274
1312
  function fromPairs(listOfPairs) {
@@ -1592,19 +1630,11 @@ function mergeWithFn(mergeFn, aInput, bInput) {
1592
1630
  const b = bInput !== null && bInput !== void 0 ? bInput : {};
1593
1631
  const willReturn = {};
1594
1632
  Object.keys(a).forEach(key => {
1595
- if (b[key] === undefined) {
1596
- willReturn[key] = a[key];
1597
- } else {
1598
- willReturn[key] = mergeFn(a[key], b[key]);
1599
- }
1633
+ if (b[key] === undefined) willReturn[key] = a[key];else willReturn[key] = mergeFn(a[key], b[key]);
1600
1634
  });
1601
1635
  Object.keys(b).forEach(key => {
1602
1636
  if (willReturn[key] !== undefined) return;
1603
- if (a[key] === undefined) {
1604
- willReturn[key] = b[key];
1605
- } else {
1606
- willReturn[key] = mergeFn(a[key], b[key]);
1607
- }
1637
+ if (a[key] === undefined) willReturn[key] = b[key];else willReturn[key] = mergeFn(a[key], b[key]);
1608
1638
  });
1609
1639
  return willReturn;
1610
1640
  }
@@ -2381,10 +2411,14 @@ exports.drop = drop;
2381
2411
  exports.dropLast = dropLast;
2382
2412
  exports.dropLastWhile = dropLastWhile;
2383
2413
  exports.dropRepeats = dropRepeats;
2414
+ exports.dropRepeatsBy = dropRepeatsBy;
2384
2415
  exports.dropRepeatsWith = dropRepeatsWith;
2385
2416
  exports.dropWhile = dropWhile;
2386
2417
  exports.either = either;
2418
+ exports.empty = empty;
2387
2419
  exports.endsWith = endsWith;
2420
+ exports.eqBy = eqBy;
2421
+ exports.eqByFn = eqByFn;
2388
2422
  exports.eqProps = eqProps;
2389
2423
  exports.equals = equals;
2390
2424
  exports.evolve = evolve;
@@ -2400,6 +2434,8 @@ exports.findLastIndex = findLastIndex;
2400
2434
  exports.flatten = flatten;
2401
2435
  exports.flip = flip;
2402
2436
  exports.forEach = forEach;
2437
+ exports.forEachObjIndexed = forEachObjIndexed;
2438
+ exports.forEachObjIndexedFn = forEachObjIndexedFn;
2403
2439
  exports.fromPairs = fromPairs;
2404
2440
  exports.groupBy = groupBy;
2405
2441
  exports.groupWith = groupWith;
@@ -2446,6 +2482,7 @@ exports.mergeDeepRight = mergeDeepRight;
2446
2482
  exports.mergeLeft = mergeLeft;
2447
2483
  exports.mergeRight = mergeRight;
2448
2484
  exports.mergeWith = mergeWith;
2485
+ exports.mergeWithFn = mergeWithFn;
2449
2486
  exports.min = min;
2450
2487
  exports.minBy = minBy;
2451
2488
  exports.minByFn = minByFn;
@@ -1 +1 @@
1
- !function(n,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r((n="undefined"!=typeof globalThis?globalThis:n||self).R={})}(this,function(n){"use strict";function a(n,l){switch(n){case 0:return function(){return l.apply(this,arguments)};case 1:return function(n){return l.apply(this,arguments)};case 2:return function(n,r){return l.apply(this,arguments)};case 3:return function(n,r,t){return l.apply(this,arguments)};case 4:return function(n,r,t,e){return l.apply(this,arguments)};case 5:return function(n,r,t,e,u){return l.apply(this,arguments)};case 6:return function(n,r,t,e,u,i){return l.apply(this,arguments)};case 7:return function(n,r,t,e,u,i,o){return l.apply(this,arguments)};case 8:return function(n,r,t,e,u,i,o,f){return l.apply(this,arguments)};case 9:return function(n,r,t,e,u,i,o,f,c){return l.apply(this,arguments)};default:return function(n,r,t,e,u,i,o,f,c,a){return l.apply(this,arguments)}}}function t(r,n){if(1===arguments.length)return function(n){return t(r,n)};if(10<r)throw Error("First argument to _arity must be a non-negative integer no greater than ten");return a(r,function i(o,f,c){return function(){for(var n=0,r=0,t=f.length,e=arguments.length,u=Array(t+e);n<t;)u[n]=f[n],n++;for(;r<e;)u[t+r]=arguments[r],r++;return u.length<o?a(o-u.length,i(o,u,c)):c.apply(this,u)}}(r,[],n))}function B(u){var i=1<arguments.length&&void 0!==arguments[1]?arguments[1]:function(){return 0},o=2<arguments.length&&void 0!==arguments[2]?arguments[2]:function(n){return n+1};return t(u.length,function(){var r=arguments[0],t=arguments[arguments.length-1],e=i(t.length),n=Array.prototype.slice.call(arguments,0);return n[0]=function(){var n=r.apply(this,function(n,r){for(var t=(n=n||[]).length,e=(r=r||[]).length,u=[],i=0;i<t;)u[u.length]=n[i],i+=1;for(i=0;i<e;)u[u.length]=r[i],i+=1;return u}(arguments,[e,t]));return e=o(e),n},u.apply(this,n)})}function l(n){return Array.prototype.slice.call(n)}function C(r,n){var t,e=Object.keys(r);return Object.getOwnPropertySymbols&&(t=Object.getOwnPropertySymbols(r),n&&(t=t.filter(function(n){return Object.getOwnPropertyDescriptor(r,n).enumerable})),e.push.apply(e,t)),e}function o(r){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?C(Object(t),!0).forEach(function(n){f(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):C(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}function h(n){return(h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n})(n)}function U(n,r){if(!(n instanceof r))throw new TypeError("Cannot call a class as a function")}function D(n,r){for(var t=0;t<r.length;t++){var e=r[t];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(n,_(e.key),e)}}function L(n,r,t){return r&&D(n.prototype,r),t&&D(n,t),Object.defineProperty(n,"prototype",{writable:!1}),n}function f(n,r,t){return(r=_(r))in n?Object.defineProperty(n,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[r]=t,n}function i(n,r){return function(n){if(Array.isArray(n))return n}(n)||function(n,r){var t=null==n?null:"undefined"!=typeof Symbol&&n[Symbol.iterator]||n["@@iterator"];if(null!=t){var e,u,i,o,f=[],c=!0,a=!1;try{if(i=(t=t.call(n)).next,0===r){if(Object(t)!==t)return;c=!1}else for(;!(c=(e=i.call(t)).done)&&(f.push(e.value),f.length!==r);c=!0);}catch(n){a=!0,u=n}finally{try{if(!c&&null!=t.return&&(o=t.return(),Object(o)!==o))return}finally{if(a)throw u}}return f}}(n,r)||z(n,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(n){return function(n){if(Array.isArray(n))return e(n)}(n)||function(n){if("undefined"!=typeof Symbol&&null!=n[Symbol.iterator]||null!=n["@@iterator"])return Array.from(n)}(n)||z(n)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function z(n,r){var t;if(n)return"string"==typeof n?e(n,r):"Map"===(t="Object"===(t=Object.prototype.toString.call(n).slice(8,-1))&&n.constructor?n.constructor.name:t)||"Set"===t?Array.from(n):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?e(n,r):void 0}function e(n,r){for(var t=0,e=Array(r=null!=r&&r<=n.length?r:n.length);t<r;t++)e[t]=n[t];return e}function _(n){n=function(n,r){if("object"!=typeof n||null===n)return n;var t=n[Symbol.toPrimitive];if(void 0===t)return("string"===r?String:Number)(n);if("object"!=typeof(t=t.call(n,r||"default")))return t;throw new TypeError("@@toPrimitive must return a primitive value.")}(n,"string");return"symbol"==typeof n?n:""+n}function c(u){var i=1<arguments.length&&void 0!==arguments[1]?arguments[1]:[];return function(){for(var n,r=arguments.length,t=Array(r),e=0;e<r;e++)t[e]=arguments[e];return(n=[].concat(s(i),t)).length<u.length?c(u,n):u.apply(void 0,s(n))}}var M=c(function(n,r,t){var e=n<0?t.length+n:n;return t.length<=n||e<0?t:((n=l(t))[e]=r(n[e]),n)});function H(r){return function(n){return r}}var p=Array.isArray;function g(n){var r,t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:0;for(r in n)!1!=n.hasOwnProperty(r)&&"constructor"!==r&&("object"===h(n[r])&&(t=Math.max(t,g(n[r]))),"function"==typeof n[r])&&(t=Math.max(t,n[r].length));return t}function v(){for(var n=[],r=0,t=arguments.length;r<t&&void 0!==arguments[r];)n[r]=arguments[r],r++;return n}function u(n,r,t,e){return n===r?0:n<r?t:e}function y(n,r,t){return Object.assign({},t,f({},n,r))}var d=c(y);function $(n){return Number.isInteger(+(""+n))}var m=Number.isInteger||function(n){return n<<0===n};function b(n,r){return"string"==typeof n?n.split(1<arguments.length&&void 0!==r?r:".").map(function(n){return m(n)?+(""+n):n}):n}function G(n,r,t){var e,u,n=b(n);return 0===n.length?r:(e=n[0],1<n.length&&(u="object"!==h(t)||null===t||!t.hasOwnProperty(e)?$(n[1])?[]:{}:t[e],r=G(Array.prototype.slice.call(n,1),r,u)),$(e)&&p(t)?((n=l(t))[e]=r,n):y(e,r,t))}var J=c(G);var K=c(function(n,r,t){if(r<n)throw Error("min must not be greater than max in clamp(min, max, value)");return t<n||r<t?r<t?r:t<n?n:void 0:t});function Q(n){var r,t=p(n)?Array(n.length):{};if(n&&n.getTime)return new Date(n.getTime());for(r in n){var e=n[r];t[r]="object"===h(e)&&null!==e?e.getTime?new Date(e.getTime()):Q(e):e}return t}var V=L(function n(r){U(this,n),this.value=r});function X(n,r,t){if(null!=t){if(!p(t))throw new TypeError("reduce: list must be array or iterable");for(var e=0,u=t.length;e<u;){if((r=n(r,t[e],e,t))instanceof V)return r.value;e++}}return r}var w=c(X);function Y(n,r){return function(){return r.call(this,n.apply(this,arguments))}}function Z(){if(0===arguments.length)throw Error("pipe requires at least one argument");return a(arguments[0].length,X(Y,arguments[0],Array.prototype.slice.call(arguments,1,1/0)))}function nn(n){return"string"==typeof n?n[0]||"":n[0]}function rn(n){return n}function tn(n){return"string"==typeof n?n.split("").reverse().join(""):n.slice().reverse()}function j(r,n){return 1===arguments.length?function(n){return j(r,n)}:n.slice(0<r?r:0)}function en(n){return j(1,n)}function un(t,n){var r,e;return 0<n.length?(r=nn(n),e=en(n),a(r.length,function(){return w(function(n,r){return t.call(this,r,n)},r.apply(this,arguments),e)})):rn}function on(r,n){return 1===arguments.length?function(n){return on(r,n)}:"string"==typeof r?"".concat(r).concat(n):[].concat(s(r),s(n))}var fn="Incorrect iterable input",cn=Object.keys;function O(n,r){for(var t=2<arguments.length&&void 0!==arguments[2]&&arguments[2],e=0,u=Array(r.length);e<r.length;)u[e]=t?n(r[e],e):n(r[e]),e++;return u}function E(r,n){if(1===arguments.length)return function(n){return E(r,n)};for(var t=0,e=cn(n),u=e.length,i={};t<u;){var o=e[t];i[o]=r(n[o],o,n),t++}return i}var an=E;function A(r,n){if(1===arguments.length)return function(n){return A(r,n)};if(n)return(p(n)?O:E)(r,n);throw Error(fn)}function ln(r,n){return 1===arguments.length?function(n){return ln(r,n)}:r<n?n:r}function N(r,n){return 1===arguments.length?function(n){return N(r,n)}:null==(t=n)||!0===Number.isNaN(t)?r:n;var t}function x(n){return null===n?"Null":void 0===n?"Undefined":Number.isNaN(n)?"NaN":"AsyncFunction"===(n=Object.prototype.toString.call(n).slice(8,-1))?"Promise":n}function hn(n,r){if(!p(r))throw Error("Cannot read property 'indexOf' of ".concat(r));var t=x(n);if(!["Array","NaN","Object","RegExp"].includes(t))return r.lastIndexOf(n);for(var e=r.length,u=-1;-1<--e&&-1===u;)k(r[e],n)&&(u=e);return u}function P(n,r){if(!p(r))throw Error("Cannot read property 'indexOf' of ".concat(r));var t=x(n);if(!["Array","NaN","Object","RegExp"].includes(t))return r.indexOf(n);for(var e=-1,u=-1,i=r.length;++e<i&&-1===u;)k(r[e],n)&&(u=e);return u}function sn(n){for(var r,t=[];!(r=n.next()).done;)t.push(r.value);return t}function pn(n){return n.toDateString?[!0,n.getTime()]:[!1]}function gn(n){return n.constructor!==RegExp?[!1]:[!0,""+n]}function k(t,e){var n,u,i,r,o,f,c,a;return 1===arguments.length?function(n){return k(t,n)}:(n=x(t))===x(e)&&("Function"===n?void 0!==t.name&&t.name===e.name:!!["NaN","Null","Undefined"].includes(n)||(["BigInt","Number"].includes(n)?Object.is(-0,t)===Object.is(-0,e)&&""+t==""+e:["Boolean","String"].includes(n)?""+t==""+e:"Array"===n?""+(r=Array.from(t))==""+(u=Array.from(e))&&(i=!0,r.forEach(function(n,r){!i||n===u[r]||k(n,u[r])||(i=!1)}),i):(r=gn(t),o=gn(e),r[0]?!!o[0]&&r[1]===o[1]:!o[0]&&(r=pn(t),o=pn(e),r[0]?!!o[0]&&r[1]===o[1]:!o[0]&&(t instanceof Error?e instanceof Error&&(r=t).message===(o=e).message&&r.toString===o.toString&&""+r==""+o:"Set"===n?(o=t).size===(c=e).size&&(o=sn(o.values()),f=sn(c.values()),0===o.filter(function(n){return-1===P(n,f)}).length):"Object"===n&&(c=Object.keys(t)).length===Object.keys(e).length&&(a=!0,c.forEach(function(n){var r;a&&(r=t[n])!==(n=e[n])&&!k(r,n)&&(a=!1)}),a))))))}function S(r,n){if(1===arguments.length)return function(n){return S(r,n)};if("string"==typeof n)return n.includes(r);if(n)return!!p(n)&&-1<P(r,n);throw new TypeError("Cannot read property 'indexOf' of ".concat(n))}var vn=function(){function n(){U(this,n),this.set=new Set,this.items={}}return L(n,[{key:"checkUniqueness",value:function(n){var r=x(n);return["Null","Undefined","NaN"].includes(r)?!(r in this.items)&&(this.items[r]=!0):["Object","Array"].includes(r)?r in this.items?-1===P(n,this.items[r])&&(this.items[r].push(n),!0):(this.items[r]=[n],!0):(r=this.set.size,this.set.add(n),this.set.size!==r)}}]),n}();function yn(n){var r=new vn,t=[];return n.forEach(function(n){r.checkUniqueness(n)&&t.push(n)}),t}function dn(t,n,r){var e=[],r=i(r.length<n.length?[n,r]:[r,n],2),n=r[0],u=r[1];return n.forEach(function(r){u.some(function(n){return t(r,n)})||-1!==P(r,e)||e.push(r)}),e}var mn=c(dn);function bn(r,n){if(1===arguments.length)return function(n){return bn(r,n)};if(null!=n){var t,e=b(r,","),u={};for(t in n)!function(n,r){for(var t=-1,e=r.length;++t<e;)if(""+r[t]==""+n)return 1}(t,e)&&(u[t]=n[t]);return u}}function wn(n,r){for(var t=r,e=0,u=b(n);e<u.length;){if(null==t)return;if(null===t[u[e]])return;t=t[u[e]],e++}return t}function T(r,n){return 1===arguments.length?function(n){return T(r,n)}:null!=n?wn(r,n):void 0}function jn(r,n){return 1===arguments.length?function(n){return jn(r,n)}:0<r?r<n.length-1?[].concat(s(n.slice(0,r)),s(n.slice(r+1))):n.slice(0,n.length-1):n.slice(1)}function On(n,r,t){t=l(t);return-1===n?t.fill(r,n):t.fill(r,n,n+1)}var En=c(On);function F(r,n){return 1===arguments.length?function(n){return F(r,n)}:n?n[r]:void 0}var An=c(function(n,r,t){return k(F(n,r),F(n,t))});function Nn(t,n){return O(function(n,r){return"Function"===x(t[r])?t[r](n):n},n,!0)}function xn(e,n){return E(function(n,r){var t;return"Object"===x(n)?"Function"===(t=x(e[r]))?e[r](n):"Object"===t?Pn(e[r],n):n:"Function"===x(e[r])?e[r](n):n},n)}function Pn(r,n){if(1===arguments.length)return function(n){return Pn(r,n)};var t=x(r),e=x(n);if(e!==t)throw Error("iterableType !== rulesType");if(["Object","Array"].includes(t))return("Object"===e?xn:Nn)(r,n);throw Error("'iterable' and 'rules' are from wrong type ".concat(t))}function kn(n,r){var t,e={};for(t in r)n(r[t],t,r)&&(e[t]=r[t]);return e}function Sn(n,r){for(var t=2<arguments.length&&void 0!==arguments[2]&&arguments[2],e=0,u=r.length,i=[];e<u;)(t?n(r[e],e):n(r[e]))&&i.push(r[e]),e++;return i}function I(r,n){if(1===arguments.length)return function(n){return I(r,n)};if(n)return p(n)?Sn(r,n,!1):kn(r,n);throw Error("Incorrect iterable input")}var Tn=Object.is||function(n,r){return n===r?0!==n||1/n==1/r:n!=n&&r!=r};var Fn=c(function(n,r,t){return function(){return(!0===("boolean"==typeof n?n:n.apply(void 0,arguments))?r:t).apply(void 0,arguments)}});function In(n,r,t){for(var e=-1,u=n.length,i=((t=u<t?u:t)<0&&(t+=u),u=t<r?0:t-r>>>0,r>>>=0,Array(u));++e<u;)i[e]=n[e+r];return i}function Wn(r,n){return 1===arguments.length?function(n){return Wn(r,n)}:null!=n&&n.constructor===r||n instanceof r}function r(t,e){return function(n){return function(r){return n(t(r)).map(function(n){return e(n,r)})}}}function Rn(r,n){var t;return 1===arguments.length?function(n){return Rn(r,n)}:(t=r<0?n.length+r:r,"[object String]"===Object.prototype.toString.call(n)?n[0|t]||"":n[t])}function qn(n,r,t){return n(t)>n(r)?t:r}var Bn=c(qn);function Cn(n){return n.reduce(function(n,r){return n+r},0)}function Un(n){return Cn(n)/n.length}function W(r,n){return 1===arguments.length?function(n){return W(r,n)}:Object.assign({},r||{},n||{})}function R(r,t){var e;return 1===arguments.length?function(n){return R(r,n)}:(e=Q(r),Object.keys(t).forEach(function(n){"Object"===x(t[n])&&"Object"===x(r[n])?e[n]=R(r[n],t[n]):e[n]=t[n]}),e)}var Dn=c(function(r,n,t){var e=null!=n?n:{},u=null!=t?t:{},i={};return Object.keys(e).forEach(function(n){i[n]=void 0===u[n]?e[n]:r(e[n],u[n])}),Object.keys(u).forEach(function(n){void 0===i[n]&&(i[n]=void 0===e[n]?u[n]:r(e[n],u[n]))}),i});function Ln(n,r,t){return n(t)<n(r)?t:r}var zn=c(Ln);var _n=c(function(n,r,t){var e;return!Array.isArray(e=t)&&"Object"!==x(e)||void 0===t[n]?t:p(t)?On(n,r(t[n]),t):o(o({},t),{},f({},n,r(t[n])))});function Mn(n,r,t){n=b(n);return 1===n.length?o(o({},t),{},f({},n[0],r(t[n[0]]))):void 0===T(n,t)||(r=Hn(Array.prototype.slice.call(n,1),r,t[n[0]]))===t[n[0]]?t:d(n[0],r,t)}var Hn=c(Mn);var $n=c(function(n,r,t){if(n<0||r<0)throw Error("Rambda.move does not support negative indexes");var e;return t.length-1<n||t.length-1<r?t:((e=l(t))[n]=t[r],e[r]=t[n],e)});function Gn(r,n){return 1===arguments.length?function(n){return Gn(r,n)}:r*n}function Jn(n,r){var t;return function(){return n&&(t=n.apply(r||this,arguments),n=null),t}}function Kn(r){return{x:r,map:function(n){return Kn(n(r))}}}var Qn=c(function(n,r,t){return n(function(n){return Kn(r(n))})(t).x});function Vn(e){for(var u=e.length,n=arguments.length,r=Array(1<n?n-1:0),t=1;t<n;t++)r[t-1]=arguments[t];var i=1===r.length&&p(r[0])?r[0]:r;return function(){for(var n=arguments.length,r=Array(n),t=0;t<n;t++)r[t]=arguments[t];return i.length+r.length<u?Vn.apply(void 0,[e].concat([].concat(s(i),r))):e.apply(void 0,s(i).concat(r))}}function Xn(t,n){var e={},u={};return Object.entries(n).forEach(function(n){var n=i(n,2),r=n[0],n=n[1];t(n,r)?e[r]=n:u[r]=n}),[e,u]}function Yn(n,r){for(var t=2<arguments.length&&void 0!==arguments[2]&&arguments[2],e=[],u=[],i=-1;i++<r.length-1;)((t?n(r[i],i):n(r[i]))?e:u).push(r[i]);return[e,u]}var Zn=c(function(n,r,t){return k(T(n,t),r)});var nr=c(function(n,r,t){return N(n,T(r,t))});var rr=w(Gn,1);var tr=c(function(n,r,t){return!!t&&k(n,F(r,t))});var er=c(function(n,r,t){return Wn(n,t[r])});var ur=c(function(n,r,t){return t?N(n,t[r]):n});var ir=c(function(n,r,t){return n(F(r,t))});function or(r,n){if(1===arguments.length)return function(n){return or(r,n)};if(Number.isNaN(+(""+r))||Number.isNaN(+(""+n)))throw new TypeError("Both arguments to range must be numbers");if(n<r)return[];for(var t=n-r,e=Array(t),u=0;u<t;u++)e[u]=r+u;return e}var fr=c(function(n,r,t){return t.replace(n,r)});var cr=c(function(n,r,t){return Qn(n,H(r),t)});var ar=c(function(n,r,t){return t.slice(n,r)});function q(r,n){return 1===arguments.length?function(n){return q(r,n)}:r<0?n.slice():"string"==typeof n?n.slice(0,r):In(n,0,r)}function lr(n){return["Promise","Function"].includes(x(n))}function hr(r){return{x:r,map:function(n){return hr(r)}}}var sr=c(function(n,r,t){return n(t)?r(t):t});var pr=c(function(t,n,e){return q((e.length<n.length?e:n).length,n).map(function(n,r){return t(n,e[r])})});n.F=function(){return!1},n.T=function(){return!0},n.__findHighestArity=g,n._indexOf=P,n._lastIndexOf=hn,n._pipe=Y,n.add=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:+(""+t)+ +(""+n)},n.addIndex=B,n.addIndexRight=function(n){return B(n,function(n){return n-1},function(n){return n-1})},n.adjust=M,n.all=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};for(var e=0;e<n.length;e++)if(!t(n[e]))return!1;return!0},n.allPass=function(r){return function(){for(var n=0;n<r.length;){if(!r[n].apply(r,arguments))return!1;n++}return!0}},n.always=H,n.and=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:t&&n},n.any=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};for(var e=0;e<n.length;){if(t(n[e],e))return!0;e++}return!1},n.anyPass=function(r){return function(){for(var n=0;n<r.length;){if(r[n].apply(r,arguments))return!0;n++}return!1}},n.ap=function r(t,e){return 1===arguments.length?function(n){return r(t,n)}:t.reduce(function(n,r){return[].concat(s(n),s(e.map(r)))},[])},n.aperture=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};if(n.length<t)return[];for(var e=0,u=n.length-(t-1),i=Array(u);e<u;)i[e]=n.slice(e,e+t),e+=1;return i},n.append=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:"string"==typeof n?n.split("").concat(t):((n=l(n)).push(t),n)},n.apply=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:t.apply(this,n)},n.applySpec=function(n){var r=g(n);if(0===r)return function(){return{}};for(var t=arguments.length,e=Array(1<t?t-1:0),u=1;u<t;u++)e[u-1]=arguments[u];return function u(i,o,f){var n=o-f.length;if(1==n)return function(n){return u(i,o,v.apply(void 0,s(f).concat([n])))};if(2==n)return function(n,r){return u(i,o,v.apply(void 0,s(f).concat([n,r])))};if(3==n)return function(n,r,t){return u(i,o,v.apply(void 0,s(f).concat([n,r,t])))};if(4==n)return function(n,r,t,e){return u(i,o,v.apply(void 0,s(f).concat([n,r,t,e])))};if(4<n)return function(){for(var n=arguments.length,r=Array(n),t=0;t<n;t++)r[t]=arguments[t];return u(i,o,v.apply(void 0,s(f).concat(r)))};if(p(i)){for(var r=[],t=0,e=i.length;t<e;t++)"object"!==h(i[t])&&!p(i[t])||(r[t]=u(i[t],o,f)),"function"==typeof i[t]&&(r[t]=i[t].apply(i,s(f)));return r}var c,a={};for(c in i)0!=i.hasOwnProperty(c)&&"constructor"!==c&&("object"===h(i[c])?a[c]=u(i[c],o,f):"function"==typeof i[c]&&(a[c]=i[c].apply(i,s(f))));return a}(n,r,e)},n.applyTo=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:n(t)},n.ascend=function t(e,n,r){return 1===arguments.length?function(n,r){return t(e,n,r)}:u(e(n),e(r),-1,1)},n.assoc=d,n.assocFn=y,n.assocPath=J,n.assocPathFn=G,n.binary=function(t){return 2<t.length?function(n,r){return t(n,r)}:t},n.bind=function r(e,u){return 1===arguments.length?function(n){return r(e,n)}:t(e.length,function(){for(var n=arguments.length,r=Array(n),t=0;t<n;t++)r[t]=arguments[t];return e.apply(u,r)})},n.both=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:function(){return t.apply(void 0,arguments)&&n.apply(void 0,arguments)}},n.call=function(n){for(var r=arguments.length,t=Array(1<r?r-1:0),e=1;e<r;e++)t[e-1]=arguments[e];return n.apply(void 0,t)},n.chain=function r(t,n){var e;return 1===arguments.length?function(n){return r(t,n)}:(e=[]).concat.apply(e,s(n.map(t)))},n.clamp=K,n.clone=Q,n.collectBy=function r(e,n){if(1===arguments.length)return function(n){return r(e,n)};var t,u=w(function(n,r){var t=e(r);return void 0===n[t]&&(n[t]=[]),n[t].push(r),n},{},n),i=[];for(t in u)i.push(u[t]);return i},n.comparator=function(t){return function(n,r){return t(n,r)?-1:t(r,n)?1:0}},n.complement=function(n){return function(){return!n.apply(void 0,arguments)}},n.compose=function(){if(0===arguments.length)throw Error("compose requires at least one argument");return Z.apply(this,Array.prototype.slice.call(arguments,0).reverse())},n.composeWith=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:un(t,tn(n))},n.concat=on,n.cond=function(n){return function(t){var e,u=!1;return n.forEach(function(n){var n=i(n,2),r=n[0],n=n[1];!u&&r(t)&&(u=!0,e=n(t))}),e}},n.converge=function r(e,n){return 1===arguments.length?function(n){return r(e,n)}:t(w(function(n,r){return ln(n,r.length)},0,n),function(){var r=arguments,t=this;return e.apply(this,A(function(n){return n.apply(t,r)},n))})},n.count=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:p(n)?n.filter(function(n){return t(n)}).length:0},n.countBy=function r(t,n){var e;return 1===arguments.length?function(n){return r(t,n)}:(e={},n.forEach(function(n){n=t(n),e[n]?e[n]++:e[n]=1}),e)},n.createCompareFunction=u,n.curry=c,n.curryN=t,n.dec=function(n){return n-1},n.defaultTo=N,n.descend=function t(e,n,r){return 1===arguments.length?function(n,r){return t(e,n,r)}:u(e(n),e(r),1,-1)},n.difference=function r(t,e){return 1===arguments.length?function(n){return r(t,n)}:yn(t).filter(function(n){return!S(n,e)})},n.differenceWith=mn,n.differenceWithFn=dn,n.dissoc=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};if(null==n)return{};var e,u={};for(e in n)u[e]=n[e];return delete u[t],u},n.dissocPath=function r(t,n){var e,u,i;return 1===arguments.length?function(n){return r(t,n)}:0===(i=b(t)).length||void 0===T(i,n)?n:(e=i[0],u="object"!==h(n)||null===n||!n.hasOwnProperty(e),1<i.length?(u=u?$(i[1])?[]:{}:n[e],i=r(Array.prototype.slice.call(i,1),u,n),p(n)?En(e,i,n):o(o({},n),{},f({},e,i))):p(n)?jn(e,n):bn([e],n))},n.divide=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:t/n},n.drop=j,n.dropLast=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:0<t?n.slice(0,-t):n.slice()},n.dropLastWhile=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};if(0===n.length)return n;var e=p(n);if("function"!=typeof t)throw Error("'predicate' is from wrong type ".concat(h(t)));if(!e&&"string"!=typeof n)throw Error("'iterable' is from wrong type ".concat(h(n)));for(var u=[],i=n.length;i;){var o=n[--i];if(!t(o)){u.push(o);break}}for(;i;)u.push(n[--i]);return e?u.reverse():u.reverse().join("")},n.dropRepeats=function(n){var t;if(p(n))return t=[],n.reduce(function(n,r){return k(n,r)||t.push(r),r},void 0),t;throw Error("".concat(n," is not a list"))},n.dropRepeatsWith=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};var e;if(p(n))return e=[],n.reduce(function(n,r){return void 0!==n&&t(n,r)||e.push(r),r},void 0),e;throw Error("".concat(n," is not a list"))},n.dropWhile=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};var e=p(n);if(!e&&"string"!=typeof n)throw Error("`iterable` is neither list nor a string");for(var u=[],i=0;i<n.length;){var o=n[i++];if(!t(o)){u.push(o);break}}for(;i<n.length;)u.push(n[i++]);return e?u:u.join("")},n.either=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:function(){return!(!t.apply(void 0,arguments)&&!n.apply(void 0,arguments))}},n.endsWith=function r(t,e){var u,i;return 1===arguments.length?function(n){return r(t,n)}:"string"==typeof e?e.endsWith(t):!!p(t)&&(u=e.length-t.length,i=!0,t.filter(function(n,r){return!!i&&((n=k(n,e[r+u]))||(i=!1),n)}).length===t.length)},n.eqProps=An,n.equals=k,n.evolve=Pn,n.evolveArray=Nn,n.evolveObject=xn,n.filter=I,n.filterArray=Sn,n.filterObject=kn,n.find=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};for(var e=0,u=n.length;e<u;){var i=n[e];if(t(i))return i;e++}},n.findIndex=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};for(var e=n.length,u=-1;++u<e;)if(t(n[u]))return u;return-1},n.findLast=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};for(var e=n.length;0<=--e;)if(t(n[e]))return n[e]},n.findLastIndex=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};for(var e=n.length;0<=--e;)if(t(n[e]))return e;return-1},n.flatten=function n(r,t){for(var e=void 0===t?[]:t,u=0;u<r.length;u++)p(r[u])?n(r[u],e):e.push(r[u]);return e},n.flip=function(n){return e=n,function(){for(var n=arguments.length,r=Array(n),t=0;t<n;t++)r[t]=arguments[t];if(1===r.length)return function(n){return e(n,r[0])};if(2===r.length)return e(r[1],r[0]);if(3===r.length)return e(r[1],r[0],r[2]);if(4===r.length)return e(r[1],r[0],r[2],r[3]);throw Error("R.flip doesn't work with arity > 4")};var e},n.forEach=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};if(void 0!==n){if(p(n))for(var e=0,u=n.length;e<u;)t(n[e]),e++;else for(var i=0,o=cn(n),f=o.length;i<f;){var c=o[i];t(n[c],c,n),i++}return n}},n.fromPairs=function(n){var r={};return n.forEach(function(n){n=i(n,2);return r[n[0]]=n[1]}),r},n.groupBy=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};for(var e={},u=0;u<n.length;u++){var i=n[u],o=t(i);e[o]||(e[o]=[]),e[o].push(i)}return e},n.groupWith=function(i,o){var n,f,c;if(p(o))return n=l(o),1===o.length?[n]:(f=[],c=[],n.reduce(function(n,r,t){var e,u;return 0!==t&&(e=i(n,r),u=0===c.length,t=t===o.length-1,e?(u&&c.push(n),c.push(r),t&&f.push(c)):u?(f.push([n]),t&&f.push([r])):(f.push(c),t&&f.push([r]),c=[])),r},void 0),f);throw new TypeError("list.reduce is not a function")},n.has=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:!!n&&n.hasOwnProperty(t)},n.hasPath=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:void 0!==T(t,n)},n.head=nn,n.identical=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:Tn(t,n)},n.identity=rn,n.ifElse=Fn,n.inc=function(n){return n+1},n.includes=S,n.indexBy=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};if("string"==typeof t){for(var e=t,u=n,i={},o=0;o<u.length;o++){var f=u[o];i[T(e,f)]=f}return i}for(var c={},a=0;a<n.length;a++){var l=n[a];c[t(l)]=l}return c},n.indexOf=function(r,n){return 1===arguments.length?function(n){return P(r,n)}:P(r,n)},n.init=function(n){return"string"==typeof n?n.slice(0,-1):n.length?In(n,0,-1):[]},n.intersection=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:I(function(n){return S(n,t)},n)},n.intersperse=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};for(var e=-1,u=n.length,i=[];++e<u;)e===u-1?i.push(n[e]):i.push(n[e],t);return i},n.is=Wn,n.isEmpty=function(n){var r=x(n);return!(["Undefined","NaN","Number","Null"].includes(r)||n&&("Object"===r?0!==Object.keys(n).length:"Array"!==r||0!==n.length))},n.isNil=function(n){return null==n},n.join=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:n.join(t)},n.juxt=function(e){return function(){for(var n=arguments.length,r=Array(n),t=0;t<n;t++)r[t]=arguments[t];return e.map(function(n){return n.apply(void 0,r)})}},n.keys=function(n){return Object.keys(n)},n.last=function(n){return"string"==typeof n?n[n.length-1]||"":n[n.length-1]},n.lastIndexOf=function(r,n){return 1===arguments.length?function(n){return hn(r,n)}:hn(r,n)},n.length=function(n){return p(n)||"string"==typeof n?n.length:NaN},n.lens=r,n.lensIndex=function(n){return r(Rn(n),En(n))},n.lensPath=function(n){return r(T(n),J(n))},n.lensProp=function(n){return r(F(n),d(n))},n.map=A,n.mapArray=O,n.mapObjIndexed=an,n.mapObject=E,n.match=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:null===(n=n.match(t))?[]:n},n.mathMod=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:m(t)&&m(n)&&1<=n?(t%n+n)%n:NaN},n.max=ln,n.maxBy=Bn,n.maxByFn=qn,n.mean=Un,n.median=function(n){var r,t=n.length;return 0===t?NaN:(r=(t-(t=2-t%2))/2,Un(Array.prototype.slice.call(n,0).sort(function(n,r){return n===r?0:n<r?-1:1}).slice(r,r+t)))},n.merge=W,n.mergeAll=function(n){var r={};return A(function(n){r=W(r,n)},n),r},n.mergeDeepRight=R,n.mergeLeft=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:W(n,t)},n.mergeRight=W,n.mergeWith=Dn,n.min=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:n<t?n:t},n.minBy=zn,n.minByFn=Ln,n.modify=_n,n.modifyPath=Hn,n.modifyPathFn=Mn,n.modulo=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:t%n},n.move=$n,n.multiply=Gn,n.negate=function(n){return-n},n.none=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};for(var e=0;e<n.length;e++)if(t(n[e]))return!1;return!0},n.not=function(n){return!n},n.nth=Rn,n.objOf=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:f({},t,n)},n.of=function(n){return[n]},n.omit=bn,n.on=function t(e,u,r,n){return 3===arguments.length?function(n){return t(e,u,r,n)}:2===arguments.length?function(n,r){return t(e,u,n,r)}:e(u(r),u(n))},n.once=function(n,r){return 1===arguments.length?c(Jn(n,r)):Jn(n,r)},n.or=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:t||n},n.over=Qn,n.partial=Vn,n.partialObject=function(r,t){return function(n){return r(R(n,t))}},n.partition=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:(p(n)?Yn:Xn)(t,n)},n.partitionArray=Yn,n.partitionObject=Xn,n.path=T,n.pathEq=Zn,n.pathFn=wn,n.pathOr=nr,n.paths=function r(t,e){return 1===arguments.length?function(n){return r(t,n)}:t.map(function(n){return T(n,e)})},n.pick=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};if(null!=n){for(var e=b(t,","),u={},i=0;i<e.length;)e[i]in n&&(u[e[i]]=n[e[i]]),i++;return u}},n.pickAll=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};if(null!=n){for(var e=b(t,","),u={},i=0;i<e.length;)u[e[i]]=e[i]in n?n[e[i]]:void 0,i++;return u}},n.pipe=Z,n.pipeWith=un,n.pluck=function r(t,n){var e;return 1===arguments.length?function(n){return r(t,n)}:(e=[],A(function(n){void 0!==n[t]&&e.push(n[t])},n),e)},n.prepend=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:[t].concat("string"==typeof n?n.split(""):n)},n.product=rr,n.prop=F,n.propEq=tr,n.propIs=er,n.propOr=ur,n.propSatisfies=ir,n.props=function r(t,e){if(1===arguments.length)return function(n){return r(t,n)};if(p(t))return O(function(n){return e[n]},t);throw Error("propsToPick is not a list")},n.range=or,n.reduce=w,n.reduceFn=X,n.reduceStopper=function(n){return new V(n)},n.reject=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:I(function(n){return!t(n)},n)},n.removeIndex=jn,n.repeat=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:Array(n).fill(t)},n.replace=fr,n.reverse=tn,n.set=cr,n.slice=ar,n.sort=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:l(n).sort(t)},n.sortBy=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:l(n).sort(function(n,r){return n=t(n),r=t(r),n===r?0:n<r?-1:1})},n.split=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:n.split(t)},n.splitAt=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};var e,u,i;if(n)return p(n)||"string"==typeof n?(u=n.length+t<0?0:n.length+t,u=(e=(i=t)<0)&&"Function"===x(u)?u():u,i=e||"Function"!==x(i)?i:i(),[q(e=e?u:i,n),j(e,n)]):[[],[]];throw new TypeError("Cannot read property 'slice' of ".concat(n))},n.splitEvery=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};if(t<1)throw Error("First argument to splitEvery must be a positive integer");for(var e=[],u=0;u<n.length;)e.push(n.slice(u,u+=t));return e},n.splitWhen=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};if(!n)throw new TypeError("Cannot read property 'length' of ".concat(n));for(var e=[],u=[],i=!1,o=-1;o++<n.length-1;)i?u.push(n[o]):t(n[o])?(u.push(n[o]),i=!0):e.push(n[o]);return[e,u]},n.startsWith=function r(t,e){var u;return 1===arguments.length?function(n){return r(t,n)}:"string"==typeof e?e.startsWith(t):!!p(t)&&(u=!0,t.filter(function(n,r){return!!u&&((n=k(n,e[r]))||(u=!1),n)}).length===t.length)},n.subtract=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:t-n},n.sum=Cn,n.symmetricDifference=function r(t,e){return 1===arguments.length?function(n){return r(t,n)}:on(I(function(n){return!S(n,e)},t),I(function(n){return!S(n,t)},e))},n.tail=en,n.take=q,n.takeLast=function r(t,n){var e,u;return 1===arguments.length?function(n){return r(t,n)}:(e=n.length,t<0?n.slice():(u=e<t?e:t,"string"==typeof n?n.slice(e-u):In(n,u=e-u,e)))},n.takeLastWhile=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};if(0===n.length)return n;for(var e=[],u=n.length;u;){var i=n[--u];if(!t(i))break;e.push(i)}return p(n)?e.reverse():e.reverse().join("")},n.takeWhile=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};var e=p(n);if(!e&&"string"!=typeof n)throw Error("`iterable` is neither list nor a string");for(var u=[],i=0;i<n.length;){var o=n[i++];if(!t(o))break;u.push(o)}return e?u:u.join("")},n.tap=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:(t(n),n)},n.test=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};if("string"==typeof t)throw new TypeError('R.test requires a value of type RegExp as its first argument; received "'.concat(t,'"'));return-1!=n.search(t)},n.times=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};if(!m(n)||n<0)throw new RangeError("n must be an integer");return A(t,or(0,n))},n.toLower=function(n){return n.toLowerCase()},n.toPairs=function(n){return Object.entries(n)},n.toString=function(n){return""+n},n.toUpper=function(n){return n.toUpperCase()},n.transpose=function(n){return n.reduce(function(t,n){return n.forEach(function(n,r){return p(t[r])?t[r].push(n):t.push([n])}),t},[])},n.trim=function(n){return n.trim()},n.tryCatch=function(e,u){var i;if(lr(e))return i=lr(u),function(){for(var n=arguments.length,r=Array(n),t=0;t<n;t++)r[t]=arguments[t];try{return e.apply(void 0,r)}catch(n){return i?u.apply(void 0,[n].concat(r)):u}};throw Error("R.tryCatch | fn '".concat(e,"'"))},n.type=x,n.unapply=function(e){return function(){for(var n=arguments.length,r=Array(n),t=0;t<n;t++)r[t]=arguments[t];return e.call(this,r)}},n.union=function r(t,n){var e;return 1===arguments.length?function(n){return r(t,n)}:(e=l(t),n.forEach(function(n){S(n,t)||e.push(n)}),e)},n.uniq=yn,n.uniqBy=function r(t,n){var e;return 1===arguments.length?function(n){return r(t,n)}:(e=new vn,n.filter(function(n){return e.checkUniqueness(t(n))}))},n.uniqWith=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};for(var e=-1,u=[];++e<n.length;){var i=n[e];!function(n,r,t){for(var e=!1,u=-1;++u<t.length&&!e;)n(r,t[u])&&(e=!0);return e}(t,i,u)&&u.push(i)}return u},n.unless=function r(t,e){return 1===arguments.length?function(n){return r(t,n)}:function(n){return t(n)?n:e(n)}},n.unnest=function(n){return n.reduce(function(n,r){return[].concat(s(n),Array.isArray(r)?s(r):[r])},[])},n.unwind=function r(t,e){return 1===arguments.length?function(n){return r(t,n)}:p(e[t])?O(function(n){return o(o({},e),{},f({},t,n))},e[t]):[e]},n.update=En,n.updateFn=On,n.values=function(n){return"Object"!==x(n)?[]:Object.values(n)},n.view=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:t(hr)(n).x},n.when=sr,n.where=function r(t,n){if(void 0===n)return function(n){return r(t,n)};var e,u,i=!0;for(e in t)i&&(u=t[e](n[e]),i)&&!1===u&&(i=!1);return i},n.whereAny=function r(t,n){if(void 0===n)return function(n){return r(t,n)};for(var e in t)if(t[e](n[e]))return!0;return!1},n.whereEq=function r(t,e){var n;return 1===arguments.length?function(n){return r(t,n)}:(n=I(function(n,r){return k(n,e[r])},t),Object.keys(n).length===Object.keys(t).length)},n.without=function r(t,n){return void 0===n?function(n){return r(t,n)}:w(function(n,r){return-1<P(r,t)?n:n.concat(r)},[],n)},n.xor=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:!!t&&!n||!!n&&!t},n.zip=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};for(var e=[],u=Math.min(t.length,n.length),i=0;i<u;i++)e[i]=[t[i],n[i]];return e},n.zipObj=function r(t,e){return 1===arguments.length?function(n){return r(t,n)}:q(e.length,t).reduce(function(n,r,t){return n[r]=e[t],n},{})},n.zipWith=pr});
1
+ !function(n,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r((n="undefined"!=typeof globalThis?globalThis:n||self).R={})}(this,function(n){"use strict";function a(n,l){switch(n){case 0:return function(){return l.apply(this,arguments)};case 1:return function(n){return l.apply(this,arguments)};case 2:return function(n,r){return l.apply(this,arguments)};case 3:return function(n,r,t){return l.apply(this,arguments)};case 4:return function(n,r,t,e){return l.apply(this,arguments)};case 5:return function(n,r,t,e,u){return l.apply(this,arguments)};case 6:return function(n,r,t,e,u,i){return l.apply(this,arguments)};case 7:return function(n,r,t,e,u,i,o){return l.apply(this,arguments)};case 8:return function(n,r,t,e,u,i,o,f){return l.apply(this,arguments)};case 9:return function(n,r,t,e,u,i,o,f,c){return l.apply(this,arguments)};default:return function(n,r,t,e,u,i,o,f,c,a){return l.apply(this,arguments)}}}function t(r,n){if(1===arguments.length)return function(n){return t(r,n)};if(10<r)throw Error("First argument to _arity must be a non-negative integer no greater than ten");return a(r,function i(o,f,c){return function(){for(var n=0,r=0,t=f.length,e=arguments.length,u=Array(t+e);n<t;)u[n]=f[n],n++;for(;r<e;)u[t+r]=arguments[r],r++;return u.length<o?a(o-u.length,i(o,u,c)):c.apply(this,u)}}(r,[],n))}function R(u){var i=1<arguments.length&&void 0!==arguments[1]?arguments[1]:function(){return 0},o=2<arguments.length&&void 0!==arguments[2]?arguments[2]:function(n){return n+1};return t(u.length,function(){var r=arguments[0],t=arguments[arguments.length-1],e=i(t.length),n=Array.prototype.slice.call(arguments,0);return n[0]=function(){var n=r.apply(this,function(n,r){for(var t=(n=n||[]).length,e=(r=r||[]).length,u=[],i=0;i<t;)u[u.length]=n[i],i+=1;for(i=0;i<e;)u[u.length]=r[i],i+=1;return u}(arguments,[e,t]));return e=o(e),n},u.apply(this,n)})}function l(n){return Array.prototype.slice.call(n)}function C(r,n){var t,e=Object.keys(r);return Object.getOwnPropertySymbols&&(t=Object.getOwnPropertySymbols(r),n&&(t=t.filter(function(n){return Object.getOwnPropertyDescriptor(r,n).enumerable})),e.push.apply(e,t)),e}function o(r){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?C(Object(t),!0).forEach(function(n){f(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):C(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}function h(n){return(h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n})(n)}function U(n,r){if(!(n instanceof r))throw new TypeError("Cannot call a class as a function")}function D(n,r){for(var t=0;t<r.length;t++){var e=r[t];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(n,_(e.key),e)}}function L(n,r,t){return r&&D(n.prototype,r),t&&D(n,t),Object.defineProperty(n,"prototype",{writable:!1}),n}function f(n,r,t){return(r=_(r))in n?Object.defineProperty(n,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[r]=t,n}function i(n,r){return function(n){if(Array.isArray(n))return n}(n)||function(n,r){var t=null==n?null:"undefined"!=typeof Symbol&&n[Symbol.iterator]||n["@@iterator"];if(null!=t){var e,u,i,o,f=[],c=!0,a=!1;try{if(i=(t=t.call(n)).next,0===r){if(Object(t)!==t)return;c=!1}else for(;!(c=(e=i.call(t)).done)&&(f.push(e.value),f.length!==r);c=!0);}catch(n){a=!0,u=n}finally{try{if(!c&&null!=t.return&&(o=t.return(),Object(o)!==o))return}finally{if(a)throw u}}return f}}(n,r)||z(n,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(n){return function(n){if(Array.isArray(n))return e(n)}(n)||function(n){if("undefined"!=typeof Symbol&&null!=n[Symbol.iterator]||null!=n["@@iterator"])return Array.from(n)}(n)||z(n)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function z(n,r){var t;if(n)return"string"==typeof n?e(n,r):"Map"===(t="Object"===(t=Object.prototype.toString.call(n).slice(8,-1))&&n.constructor?n.constructor.name:t)||"Set"===t?Array.from(n):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?e(n,r):void 0}function e(n,r){for(var t=0,e=Array(r=null!=r&&r<=n.length?r:n.length);t<r;t++)e[t]=n[t];return e}function _(n){n=function(n,r){if("object"!=typeof n||null===n)return n;var t=n[Symbol.toPrimitive];if(void 0===t)return("string"===r?String:Number)(n);if("object"!=typeof(t=t.call(n,r||"default")))return t;throw new TypeError("@@toPrimitive must return a primitive value.")}(n,"string");return"symbol"==typeof n?n:""+n}function c(u){var i=1<arguments.length&&void 0!==arguments[1]?arguments[1]:[];return function(){for(var n,r=arguments.length,t=Array(r),e=0;e<r;e++)t[e]=arguments[e];return(n=[].concat(s(i),t)).length<u.length?c(u,n):u.apply(void 0,s(n))}}var M=c(function(n,r,t){var e=n<0?t.length+n:n;return t.length<=n||e<0?t:((n=l(t))[e]=r(n[e]),n)});function H(r){return function(n){return r}}var p=Array.isArray;function g(n){var r,t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:0;for(r in n)!1!=n.hasOwnProperty(r)&&"constructor"!==r&&("object"===h(n[r])&&(t=Math.max(t,g(n[r]))),"function"==typeof n[r])&&(t=Math.max(t,n[r].length));return t}function v(){for(var n=[],r=0,t=arguments.length;r<t&&void 0!==arguments[r];)n[r]=arguments[r],r++;return n}function u(n,r,t,e){return n===r?0:n<r?t:e}function y(n,r,t){return Object.assign({},t,f({},n,r))}var d=c(y);function $(n){return Number.isInteger(+(""+n))}var m=Number.isInteger||function(n){return n<<0===n};function b(n,r){return"string"==typeof n?n.split(1<arguments.length&&void 0!==r?r:".").map(function(n){return m(n)?+(""+n):n}):n}function G(n,r,t){var e,u,n=b(n);return 0===n.length?r:(e=n[0],1<n.length&&(u="object"!==h(t)||null===t||!t.hasOwnProperty(e)?$(n[1])?[]:{}:t[e],r=G(Array.prototype.slice.call(n,1),r,u)),$(e)&&p(t)?((n=l(t))[e]=r,n):y(e,r,t))}var J=c(G);var K=c(function(n,r,t){if(r<n)throw Error("min must not be greater than max in clamp(min, max, value)");return t<n||r<t?r<t?r:t<n?n:void 0:t});function Q(n){var r,t=p(n)?Array(n.length):{};if(n&&n.getTime)return new Date(n.getTime());for(r in n){var e=n[r];t[r]="object"===h(e)&&null!==e?e.getTime?new Date(e.getTime()):Q(e):e}return t}var V=L(function n(r){U(this,n),this.value=r});function X(n,r,t){if(null!=t){if(!p(t))throw new TypeError("reduce: list must be array or iterable");for(var e=0,u=t.length;e<u;){if((r=n(r,t[e],e,t))instanceof V)return r.value;e++}}return r}var j=c(X);function Y(n,r){return function(){return r.call(this,n.apply(this,arguments))}}function Z(){if(0===arguments.length)throw Error("pipe requires at least one argument");return a(arguments[0].length,X(Y,arguments[0],Array.prototype.slice.call(arguments,1,1/0)))}function nn(n){return"string"==typeof n?n[0]||"":n[0]}function rn(n){return n}function tn(n){return"string"==typeof n?n.split("").reverse().join(""):n.slice().reverse()}function O(r,n){return 1===arguments.length?function(n){return O(r,n)}:n.slice(0<r?r:0)}function en(n){return O(1,n)}function un(t,n){var r,e;return 0<n.length?(r=nn(n),e=en(n),a(r.length,function(){return j(function(n,r){return t.call(this,r,n)},r.apply(this,arguments),e)})):rn}function on(r,n){return 1===arguments.length?function(n){return on(r,n)}:"string"==typeof r?"".concat(r).concat(n):[].concat(s(r),s(n))}var fn="Incorrect iterable input",cn=Object.keys;function w(n,r){for(var t=2<arguments.length&&void 0!==arguments[2]&&arguments[2],e=0,u=Array(r.length);e<r.length;)u[e]=t?n(r[e],e):n(r[e]),e++;return u}function A(r,n){if(1===arguments.length)return function(n){return A(r,n)};for(var t=0,e=cn(n),u=e.length,i={};t<u;){var o=e[t];i[o]=r(n[o],o,n),t++}return i}var an=A;function E(r,n){if(1===arguments.length)return function(n){return E(r,n)};if(n)return(p(n)?w:A)(r,n);throw Error(fn)}function ln(r,n){return 1===arguments.length?function(n){return ln(r,n)}:r<n?n:r}function x(r,n){return 1===arguments.length?function(n){return x(r,n)}:null==(t=n)||!0===Number.isNaN(t)?r:n;var t}function N(n){return null===n?"Null":void 0===n?"Undefined":Number.isNaN(n)?"NaN":"AsyncFunction"===(n=Object.prototype.toString.call(n).slice(8,-1))?"Promise":n}function hn(n,r){if(!p(r))throw Error("Cannot read property 'indexOf' of ".concat(r));var t=N(n);if(!["Array","NaN","Object","RegExp"].includes(t))return r.lastIndexOf(n);for(var e=r.length,u=-1;-1<--e&&-1===u;)k(r[e],n)&&(u=e);return u}function P(n,r){if(!p(r))throw Error("Cannot read property 'indexOf' of ".concat(r));var t=N(n);if(!["Array","NaN","Object","RegExp"].includes(t))return r.indexOf(n);for(var e=-1,u=-1,i=r.length;++e<i&&-1===u;)k(r[e],n)&&(u=e);return u}function sn(n){for(var r,t=[];!(r=n.next()).done;)t.push(r.value);return t}function pn(n){return n.toDateString?[!0,n.getTime()]:[!1]}function gn(n){return n.constructor!==RegExp?[!1]:[!0,""+n]}function k(t,e){var n,u,i,r,o,f,c,a;return 1===arguments.length?function(n){return k(t,n)}:(n=N(t))===N(e)&&("Function"===n?void 0!==t.name&&t.name===e.name:!!["NaN","Null","Undefined"].includes(n)||(["BigInt","Number"].includes(n)?Object.is(-0,t)===Object.is(-0,e)&&""+t==""+e:["Boolean","String"].includes(n)?""+t==""+e:"Array"===n?""+(r=Array.from(t))==""+(u=Array.from(e))&&(i=!0,r.forEach(function(n,r){!i||n===u[r]||k(n,u[r])||(i=!1)}),i):(r=gn(t),o=gn(e),r[0]?!!o[0]&&r[1]===o[1]:!o[0]&&(r=pn(t),o=pn(e),r[0]?!!o[0]&&r[1]===o[1]:!o[0]&&(t instanceof Error?e instanceof Error&&(r=t).message===(o=e).message&&r.toString===o.toString&&""+r==""+o:"Set"===n?(o=t).size===(c=e).size&&(o=sn(o.values()),f=sn(c.values()),0===o.filter(function(n){return-1===P(n,f)}).length):"Object"===n&&(c=Object.keys(t)).length===Object.keys(e).length&&(a=!0,c.forEach(function(n){var r;a&&(r=t[n])!==(n=e[n])&&!k(r,n)&&(a=!1)}),a))))))}function S(r,n){if(1===arguments.length)return function(n){return S(r,n)};if("string"==typeof n)return n.includes(r);if(n)return!!p(n)&&-1<P(r,n);throw new TypeError("Cannot read property 'indexOf' of ".concat(n))}var vn=function(){function n(){U(this,n),this.set=new Set,this.items={}}return L(n,[{key:"checkUniqueness",value:function(n){var r=N(n);return["Null","Undefined","NaN"].includes(r)?!(r in this.items)&&(this.items[r]=!0):["Object","Array"].includes(r)?r in this.items?-1===P(n,this.items[r])&&(this.items[r].push(n),!0):(this.items[r]=[n],!0):(r=this.set.size,this.set.add(n),this.set.size!==r)}}]),n}();function yn(n){var r=new vn,t=[];return n.forEach(function(n){r.checkUniqueness(n)&&t.push(n)}),t}function dn(t,n,r){var e=[],r=i(r.length<n.length?[n,r]:[r,n],2),n=r[0],u=r[1];return n.forEach(function(r){u.some(function(n){return t(r,n)})||-1!==P(r,e)||e.push(r)}),e}var mn=c(dn);function bn(r,n){if(1===arguments.length)return function(n){return bn(r,n)};if(null!=n){var t,e=b(r,","),u={};for(t in n)!function(n,r){for(var t=-1,e=r.length;++t<e;)if(""+r[t]==""+n)return 1}(t,e)&&(u[t]=n[t]);return u}}function jn(n,r){for(var t=r,e=0,u=b(n);e<u.length;){if(null==t)return;if(null===t[u[e]])return;t=t[u[e]],e++}return t}function F(r,n){return 1===arguments.length?function(n){return F(r,n)}:null!=n?jn(r,n):void 0}function On(r,n){return 1===arguments.length?function(n){return On(r,n)}:0<r?r<n.length-1?[].concat(s(n.slice(0,r)),s(n.slice(r+1))):n.slice(0,n.length-1):n.slice(1)}function wn(n,r,t){t=l(t);return-1===n?t.fill(r,n):t.fill(r,n,n+1)}var An=c(wn);function En(n,r,t){return k(n(r),n(t))}var xn=c(En);function T(r,n){return 1===arguments.length?function(n){return T(r,n)}:n?n[r]:void 0}var Nn=c(function(n,r,t){return k(T(n,r),T(n,t))});function Pn(t,n){return w(function(n,r){return"Function"===N(t[r])?t[r](n):n},n,!0)}function kn(e,n){return A(function(n,r){var t;return"Object"===N(n)?"Function"===(t=N(e[r]))?e[r](n):"Object"===t?Sn(e[r],n):n:"Function"===N(e[r])?e[r](n):n},n)}function Sn(r,n){if(1===arguments.length)return function(n){return Sn(r,n)};var t=N(r),e=N(n);if(e!==t)throw Error("iterableType !== rulesType");if(["Object","Array"].includes(t))return("Object"===e?kn:Pn)(r,n);throw Error("'iterable' and 'rules' are from wrong type ".concat(t))}function Fn(n,r){var t,e={};for(t in r)n(r[t],t,r)&&(e[t]=r[t]);return e}function Tn(n,r){for(var t=2<arguments.length&&void 0!==arguments[2]&&arguments[2],e=0,u=r.length,i=[];e<u;)(t?n(r[e],e):n(r[e]))&&i.push(r[e]),e++;return i}function I(r,n){if(1===arguments.length)return function(n){return I(r,n)};if(n)return p(n)?Tn(r,n,!1):Fn(r,n);throw Error("Incorrect iterable input")}function In(n,r){for(var t=0,e=cn(r),u=e.length;t<u;){var i=e[t];n(r[i],i,r),t++}return r}var Wn=Object.is||function(n,r){return n===r?0!==n||1/n==1/r:n!=n&&r!=r};var qn=c(function(n,r,t){return function(){return(!0===("boolean"==typeof n?n:n.apply(void 0,arguments))?r:t).apply(void 0,arguments)}});function Bn(n,r,t){for(var e=-1,u=n.length,i=((t=u<t?u:t)<0&&(t+=u),u=t<r?0:t-r>>>0,r>>>=0,Array(u));++e<u;)i[e]=n[e+r];return i}function Rn(r,n){return 1===arguments.length?function(n){return Rn(r,n)}:null!=n&&n.constructor===r||n instanceof r}function r(t,e){return function(n){return function(r){return n(t(r)).map(function(n){return e(n,r)})}}}function Cn(r,n){var t;return 1===arguments.length?function(n){return Cn(r,n)}:(t=r<0?n.length+r:r,"[object String]"===Object.prototype.toString.call(n)?n[0|t]||"":n[t])}function Un(n,r,t){return n(t)>n(r)?t:r}var Dn=c(Un);function Ln(n){return n.reduce(function(n,r){return n+r},0)}function zn(n){return Ln(n)/n.length}function W(r,n){return 1===arguments.length?function(n){return W(r,n)}:Object.assign({},r||{},n||{})}function q(r,t){var e;return 1===arguments.length?function(n){return q(r,n)}:(e=Q(r),Object.keys(t).forEach(function(n){"Object"===N(t[n])&&"Object"===N(r[n])?e[n]=q(r[n],t[n]):e[n]=t[n]}),e)}function _n(r,n,t){var e=null!=n?n:{},u=null!=t?t:{},i={};return Object.keys(e).forEach(function(n){i[n]=void 0===u[n]?e[n]:r(e[n],u[n])}),Object.keys(u).forEach(function(n){void 0===i[n]&&(i[n]=void 0===e[n]?u[n]:r(e[n],u[n]))}),i}var Mn=c(_n);function Hn(n,r,t){return n(t)<n(r)?t:r}var $n=c(Hn);var Gn=c(function(n,r,t){var e;return!Array.isArray(e=t)&&"Object"!==N(e)||void 0===t[n]?t:p(t)?wn(n,r(t[n]),t):o(o({},t),{},f({},n,r(t[n])))});function Jn(n,r,t){n=b(n);return 1===n.length?o(o({},t),{},f({},n[0],r(t[n[0]]))):void 0===F(n,t)||(r=Kn(Array.prototype.slice.call(n,1),r,t[n[0]]))===t[n[0]]?t:d(n[0],r,t)}var Kn=c(Jn);var Qn=c(function(n,r,t){if(n<0||r<0)throw Error("Rambda.move does not support negative indexes");var e;return t.length-1<n||t.length-1<r?t:((e=l(t))[n]=t[r],e[r]=t[n],e)});function Vn(r,n){return 1===arguments.length?function(n){return Vn(r,n)}:r*n}function Xn(n,r){var t;return function(){return n&&(t=n.apply(r||this,arguments),n=null),t}}function Yn(r){return{x:r,map:function(n){return Yn(n(r))}}}var Zn=c(function(n,r,t){return n(function(n){return Yn(r(n))})(t).x});function nr(e){for(var u=e.length,n=arguments.length,r=Array(1<n?n-1:0),t=1;t<n;t++)r[t-1]=arguments[t];var i=1===r.length&&p(r[0])?r[0]:r;return function(){for(var n=arguments.length,r=Array(n),t=0;t<n;t++)r[t]=arguments[t];return i.length+r.length<u?nr.apply(void 0,[e].concat([].concat(s(i),r))):e.apply(void 0,s(i).concat(r))}}function rr(t,n){var e={},u={};return Object.entries(n).forEach(function(n){var n=i(n,2),r=n[0],n=n[1];t(n,r)?e[r]=n:u[r]=n}),[e,u]}function tr(n,r){for(var t=2<arguments.length&&void 0!==arguments[2]&&arguments[2],e=[],u=[],i=-1;i++<r.length-1;)((t?n(r[i],i):n(r[i]))?e:u).push(r[i]);return[e,u]}var er=c(function(n,r,t){return k(F(n,t),r)});var ur=c(function(n,r,t){return x(n,F(r,t))});var ir=j(Vn,1);var or=c(function(n,r,t){return!!t&&k(n,T(r,t))});var fr=c(function(n,r,t){return Rn(n,t[r])});var cr=c(function(n,r,t){return t?x(n,t[r]):n});var ar=c(function(n,r,t){return n(T(r,t))});function lr(r,n){if(1===arguments.length)return function(n){return lr(r,n)};if(Number.isNaN(+(""+r))||Number.isNaN(+(""+n)))throw new TypeError("Both arguments to range must be numbers");if(n<r)return[];for(var t=n-r,e=Array(t),u=0;u<t;u++)e[u]=r+u;return e}var hr=c(function(n,r,t){return t.replace(n,r)});var sr=c(function(n,r,t){return Zn(n,H(r),t)});var pr=c(function(n,r,t){return t.slice(n,r)});function B(r,n){return 1===arguments.length?function(n){return B(r,n)}:r<0?n.slice():"string"==typeof n?n.slice(0,r):Bn(n,0,r)}function gr(n){return["Promise","Function"].includes(N(n))}function vr(r){return{x:r,map:function(n){return vr(r)}}}var yr=c(function(n,r,t){return n(t)?r(t):t});var dr=c(function(t,n,e){return B((e.length<n.length?e:n).length,n).map(function(n,r){return t(n,e[r])})});n.F=function(){return!1},n.T=function(){return!0},n.__findHighestArity=g,n._indexOf=P,n._lastIndexOf=hn,n._pipe=Y,n.add=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:+(""+t)+ +(""+n)},n.addIndex=R,n.addIndexRight=function(n){return R(n,function(n){return n-1},function(n){return n-1})},n.adjust=M,n.all=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};for(var e=0;e<n.length;e++)if(!t(n[e]))return!1;return!0},n.allPass=function(r){return function(){for(var n=0;n<r.length;){if(!r[n].apply(r,arguments))return!1;n++}return!0}},n.always=H,n.and=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:t&&n},n.any=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};for(var e=0;e<n.length;){if(t(n[e],e))return!0;e++}return!1},n.anyPass=function(r){return function(){for(var n=0;n<r.length;){if(r[n].apply(r,arguments))return!0;n++}return!1}},n.ap=function r(t,e){return 1===arguments.length?function(n){return r(t,n)}:t.reduce(function(n,r){return[].concat(s(n),s(e.map(r)))},[])},n.aperture=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};if(n.length<t)return[];for(var e=0,u=n.length-(t-1),i=Array(u);e<u;)i[e]=n.slice(e,e+t),e+=1;return i},n.append=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:"string"==typeof n?n.split("").concat(t):((n=l(n)).push(t),n)},n.apply=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:t.apply(this,n)},n.applySpec=function(n){var r=g(n);if(0===r)return function(){return{}};for(var t=arguments.length,e=Array(1<t?t-1:0),u=1;u<t;u++)e[u-1]=arguments[u];return function u(i,o,f){var n=o-f.length;if(1==n)return function(n){return u(i,o,v.apply(void 0,s(f).concat([n])))};if(2==n)return function(n,r){return u(i,o,v.apply(void 0,s(f).concat([n,r])))};if(3==n)return function(n,r,t){return u(i,o,v.apply(void 0,s(f).concat([n,r,t])))};if(4==n)return function(n,r,t,e){return u(i,o,v.apply(void 0,s(f).concat([n,r,t,e])))};if(4<n)return function(){for(var n=arguments.length,r=Array(n),t=0;t<n;t++)r[t]=arguments[t];return u(i,o,v.apply(void 0,s(f).concat(r)))};if(p(i)){for(var r=[],t=0,e=i.length;t<e;t++)"object"!==h(i[t])&&!p(i[t])||(r[t]=u(i[t],o,f)),"function"==typeof i[t]&&(r[t]=i[t].apply(i,s(f)));return r}var c,a={};for(c in i)0!=i.hasOwnProperty(c)&&"constructor"!==c&&("object"===h(i[c])?a[c]=u(i[c],o,f):"function"==typeof i[c]&&(a[c]=i[c].apply(i,s(f))));return a}(n,r,e)},n.applyTo=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:n(t)},n.ascend=function t(e,n,r){return 1===arguments.length?function(n,r){return t(e,n,r)}:u(e(n),e(r),-1,1)},n.assoc=d,n.assocFn=y,n.assocPath=J,n.assocPathFn=G,n.binary=function(t){return 2<t.length?function(n,r){return t(n,r)}:t},n.bind=function r(e,u){return 1===arguments.length?function(n){return r(e,n)}:t(e.length,function(){for(var n=arguments.length,r=Array(n),t=0;t<n;t++)r[t]=arguments[t];return e.apply(u,r)})},n.both=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:function(){return t.apply(void 0,arguments)&&n.apply(void 0,arguments)}},n.call=function(n){for(var r=arguments.length,t=Array(1<r?r-1:0),e=1;e<r;e++)t[e-1]=arguments[e];return n.apply(void 0,t)},n.chain=function r(t,n){var e;return 1===arguments.length?function(n){return r(t,n)}:(e=[]).concat.apply(e,s(n.map(t)))},n.clamp=K,n.clone=Q,n.collectBy=function r(e,n){if(1===arguments.length)return function(n){return r(e,n)};var t,u=j(function(n,r){var t=e(r);return void 0===n[t]&&(n[t]=[]),n[t].push(r),n},{},n),i=[];for(t in u)i.push(u[t]);return i},n.comparator=function(t){return function(n,r){return t(n,r)?-1:t(r,n)?1:0}},n.complement=function(n){return function(){return!n.apply(void 0,arguments)}},n.compose=function(){if(0===arguments.length)throw Error("compose requires at least one argument");return Z.apply(this,Array.prototype.slice.call(arguments,0).reverse())},n.composeWith=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:un(t,tn(n))},n.concat=on,n.cond=function(n){return function(t){var e,u=!1;return n.forEach(function(n){var n=i(n,2),r=n[0],n=n[1];!u&&r(t)&&(u=!0,e=n(t))}),e}},n.converge=function r(e,n){return 1===arguments.length?function(n){return r(e,n)}:t(j(function(n,r){return ln(n,r.length)},0,n),function(){var r=arguments,t=this;return e.apply(this,E(function(n){return n.apply(t,r)},n))})},n.count=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:p(n)?n.filter(function(n){return t(n)}).length:0},n.countBy=function r(t,n){var e;return 1===arguments.length?function(n){return r(t,n)}:(e={},n.forEach(function(n){n=t(n),e[n]?e[n]++:e[n]=1}),e)},n.createCompareFunction=u,n.curry=c,n.curryN=t,n.dec=function(n){return n-1},n.defaultTo=x,n.descend=function t(e,n,r){return 1===arguments.length?function(n,r){return t(e,n,r)}:u(e(n),e(r),1,-1)},n.difference=function r(t,e){return 1===arguments.length?function(n){return r(t,n)}:yn(t).filter(function(n){return!S(n,e)})},n.differenceWith=mn,n.differenceWithFn=dn,n.dissoc=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};if(null==n)return{};var e,u={};for(e in n)u[e]=n[e];return delete u[t],u},n.dissocPath=function r(t,n){var e,u,i;return 1===arguments.length?function(n){return r(t,n)}:0===(i=b(t)).length||void 0===F(i,n)?n:(e=i[0],u="object"!==h(n)||null===n||!n.hasOwnProperty(e),1<i.length?(u=u?$(i[1])?[]:{}:n[e],i=r(Array.prototype.slice.call(i,1),u,n),p(n)?An(e,i,n):o(o({},n),{},f({},e,i))):p(n)?On(e,n):bn([e],n))},n.divide=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:t/n},n.drop=O,n.dropLast=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:0<t?n.slice(0,-t):n.slice()},n.dropLastWhile=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};if(0===n.length)return n;var e=p(n);if("function"!=typeof t)throw Error("'predicate' is from wrong type ".concat(h(t)));if(!e&&"string"!=typeof n)throw Error("'iterable' is from wrong type ".concat(h(n)));for(var u=[],i=n.length;i;){var o=n[--i];if(!t(o)){u.push(o);break}}for(;i;)u.push(n[--i]);return e?u.reverse():u.reverse().join("")},n.dropRepeats=function(n){var t;if(p(n))return t=[],n.reduce(function(n,r){return k(n,r)||t.push(r),r},void 0),t;throw Error("".concat(n," is not a list"))},n.dropRepeatsBy=function r(t,n){var e;return 1===arguments.length?function(n){return r(t,n)}:(e=null,n.slice().filter(function(n){if(null===e)e=t(n);else{if(n=t(n),k(e,n))return!1;e=n}return!0}))},n.dropRepeatsWith=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};var e;if(p(n))return e=[],n.reduce(function(n,r){return void 0!==n&&t(n,r)||e.push(r),r},void 0),e;throw Error("".concat(n," is not a list"))},n.dropWhile=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};var e=p(n);if(!e&&"string"!=typeof n)throw Error("`iterable` is neither list nor a string");for(var u=[],i=0;i<n.length;){var o=n[i++];if(!t(o)){u.push(o);break}}for(;i<n.length;)u.push(n[i++]);return e?u:u.join("")},n.either=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:function(){return!(!t.apply(void 0,arguments)&&!n.apply(void 0,arguments))}},n.empty=function(n){var r;return"string"==typeof n?"":Array.isArray(n)?"Uint8Array"===(r=n.constructor.name)?Uint8Array.from(""):"Float32Array"===r?new Float32Array([]):[]:"Object"===N(n)?{}:void 0},n.endsWith=function r(t,e){var u,i;return 1===arguments.length?function(n){return r(t,n)}:"string"==typeof e?e.endsWith(t):!!p(t)&&(u=e.length-t.length,i=!0,t.filter(function(n,r){return!!i&&((n=k(n,e[r+u]))||(i=!1),n)}).length===t.length)},n.eqBy=xn,n.eqByFn=En,n.eqProps=Nn,n.equals=k,n.evolve=Sn,n.evolveArray=Pn,n.evolveObject=kn,n.filter=I,n.filterArray=Tn,n.filterObject=Fn,n.find=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};for(var e=0,u=n.length;e<u;){var i=n[e];if(t(i))return i;e++}},n.findIndex=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};for(var e=n.length,u=-1;++u<e;)if(t(n[u]))return u;return-1},n.findLast=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};for(var e=n.length;0<=--e;)if(t(n[e]))return n[e]},n.findLastIndex=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};for(var e=n.length;0<=--e;)if(t(n[e]))return e;return-1},n.flatten=function n(r,t){for(var e=void 0===t?[]:t,u=0;u<r.length;u++)p(r[u])?n(r[u],e):e.push(r[u]);return e},n.flip=function(n){return e=n,function(){for(var n=arguments.length,r=Array(n),t=0;t<n;t++)r[t]=arguments[t];if(1===r.length)return function(n){return e(n,r[0])};if(2===r.length)return e(r[1],r[0]);if(3===r.length)return e(r[1],r[0],r[2]);if(4===r.length)return e(r[1],r[0],r[2],r[3]);throw Error("R.flip doesn't work with arity > 4")};var e},n.forEach=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};if(void 0!==n){if(!p(n))return In(t,n);for(var e=0,u=n.length;e<u;)t(n[e]),e++;return n}},n.forEachObjIndexed=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:void 0!==n?In(t,n):void 0},n.forEachObjIndexedFn=In,n.fromPairs=function(n){var r={};return n.forEach(function(n){n=i(n,2);return r[n[0]]=n[1]}),r},n.groupBy=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};for(var e={},u=0;u<n.length;u++){var i=n[u],o=t(i);e[o]||(e[o]=[]),e[o].push(i)}return e},n.groupWith=function(i,o){var n,f,c;if(p(o))return n=l(o),1===o.length?[n]:(f=[],c=[],n.reduce(function(n,r,t){var e,u;return 0!==t&&(e=i(n,r),u=0===c.length,t=t===o.length-1,e?(u&&c.push(n),c.push(r),t&&f.push(c)):u?(f.push([n]),t&&f.push([r])):(f.push(c),t&&f.push([r]),c=[])),r},void 0),f);throw new TypeError("list.reduce is not a function")},n.has=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:!!n&&n.hasOwnProperty(t)},n.hasPath=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:void 0!==F(t,n)},n.head=nn,n.identical=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:Wn(t,n)},n.identity=rn,n.ifElse=qn,n.inc=function(n){return n+1},n.includes=S,n.indexBy=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};if("string"==typeof t){for(var e=t,u=n,i={},o=0;o<u.length;o++){var f=u[o];i[F(e,f)]=f}return i}for(var c={},a=0;a<n.length;a++){var l=n[a];c[t(l)]=l}return c},n.indexOf=function(r,n){return 1===arguments.length?function(n){return P(r,n)}:P(r,n)},n.init=function(n){return"string"==typeof n?n.slice(0,-1):n.length?Bn(n,0,-1):[]},n.intersection=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:I(function(n){return S(n,t)},n)},n.intersperse=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};for(var e=-1,u=n.length,i=[];++e<u;)e===u-1?i.push(n[e]):i.push(n[e],t);return i},n.is=Rn,n.isEmpty=function(n){var r=N(n);return!(["Undefined","NaN","Number","Null"].includes(r)||n&&("Object"===r?0!==Object.keys(n).length:"Array"!==r||0!==n.length))},n.isNil=function(n){return null==n},n.join=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:n.join(t)},n.juxt=function(e){return function(){for(var n=arguments.length,r=Array(n),t=0;t<n;t++)r[t]=arguments[t];return e.map(function(n){return n.apply(void 0,r)})}},n.keys=function(n){return Object.keys(n)},n.last=function(n){return"string"==typeof n?n[n.length-1]||"":n[n.length-1]},n.lastIndexOf=function(r,n){return 1===arguments.length?function(n){return hn(r,n)}:hn(r,n)},n.length=function(n){return p(n)||"string"==typeof n?n.length:NaN},n.lens=r,n.lensIndex=function(n){return r(Cn(n),An(n))},n.lensPath=function(n){return r(F(n),J(n))},n.lensProp=function(n){return r(T(n),d(n))},n.map=E,n.mapArray=w,n.mapObjIndexed=an,n.mapObject=A,n.match=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:null===(n=n.match(t))?[]:n},n.mathMod=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:m(t)&&m(n)&&1<=n?(t%n+n)%n:NaN},n.max=ln,n.maxBy=Dn,n.maxByFn=Un,n.mean=zn,n.median=function(n){var r,t=n.length;return 0===t?NaN:(r=(t-(t=2-t%2))/2,zn(Array.prototype.slice.call(n,0).sort(function(n,r){return n===r?0:n<r?-1:1}).slice(r,r+t)))},n.merge=W,n.mergeAll=function(n){var r={};return E(function(n){r=W(r,n)},n),r},n.mergeDeepRight=q,n.mergeLeft=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:W(n,t)},n.mergeRight=W,n.mergeWith=Mn,n.mergeWithFn=_n,n.min=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:n<t?n:t},n.minBy=$n,n.minByFn=Hn,n.modify=Gn,n.modifyPath=Kn,n.modifyPathFn=Jn,n.modulo=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:t%n},n.move=Qn,n.multiply=Vn,n.negate=function(n){return-n},n.none=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};for(var e=0;e<n.length;e++)if(t(n[e]))return!1;return!0},n.not=function(n){return!n},n.nth=Cn,n.objOf=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:f({},t,n)},n.of=function(n){return[n]},n.omit=bn,n.on=function t(e,u,r,n){return 3===arguments.length?function(n){return t(e,u,r,n)}:2===arguments.length?function(n,r){return t(e,u,n,r)}:e(u(r),u(n))},n.once=function(n,r){return 1===arguments.length?c(Xn(n,r)):Xn(n,r)},n.or=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:t||n},n.over=Zn,n.partial=nr,n.partialObject=function(r,t){return function(n){return r(q(n,t))}},n.partition=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:(p(n)?tr:rr)(t,n)},n.partitionArray=tr,n.partitionObject=rr,n.path=F,n.pathEq=er,n.pathFn=jn,n.pathOr=ur,n.paths=function r(t,e){return 1===arguments.length?function(n){return r(t,n)}:t.map(function(n){return F(n,e)})},n.pick=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};if(null!=n){for(var e=b(t,","),u={},i=0;i<e.length;)e[i]in n&&(u[e[i]]=n[e[i]]),i++;return u}},n.pickAll=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};if(null!=n){for(var e=b(t,","),u={},i=0;i<e.length;)u[e[i]]=e[i]in n?n[e[i]]:void 0,i++;return u}},n.pipe=Z,n.pipeWith=un,n.pluck=function r(t,n){var e;return 1===arguments.length?function(n){return r(t,n)}:(e=[],E(function(n){void 0!==n[t]&&e.push(n[t])},n),e)},n.prepend=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:[t].concat("string"==typeof n?n.split(""):n)},n.product=ir,n.prop=T,n.propEq=or,n.propIs=fr,n.propOr=cr,n.propSatisfies=ar,n.props=function r(t,e){if(1===arguments.length)return function(n){return r(t,n)};if(p(t))return w(function(n){return e[n]},t);throw Error("propsToPick is not a list")},n.range=lr,n.reduce=j,n.reduceFn=X,n.reduceStopper=function(n){return new V(n)},n.reject=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:I(function(n){return!t(n)},n)},n.removeIndex=On,n.repeat=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:Array(n).fill(t)},n.replace=hr,n.reverse=tn,n.set=sr,n.slice=pr,n.sort=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:l(n).sort(t)},n.sortBy=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:l(n).sort(function(n,r){return n=t(n),r=t(r),n===r?0:n<r?-1:1})},n.split=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:n.split(t)},n.splitAt=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};var e,u,i;if(n)return p(n)||"string"==typeof n?(u=n.length+t<0?0:n.length+t,u=(e=(i=t)<0)&&"Function"===N(u)?u():u,i=e||"Function"!==N(i)?i:i(),[B(e=e?u:i,n),O(e,n)]):[[],[]];throw new TypeError("Cannot read property 'slice' of ".concat(n))},n.splitEvery=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};if(t<1)throw Error("First argument to splitEvery must be a positive integer");for(var e=[],u=0;u<n.length;)e.push(n.slice(u,u+=t));return e},n.splitWhen=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};if(!n)throw new TypeError("Cannot read property 'length' of ".concat(n));for(var e=[],u=[],i=!1,o=-1;o++<n.length-1;)i?u.push(n[o]):t(n[o])?(u.push(n[o]),i=!0):e.push(n[o]);return[e,u]},n.startsWith=function r(t,e){var u;return 1===arguments.length?function(n){return r(t,n)}:"string"==typeof e?e.startsWith(t):!!p(t)&&(u=!0,t.filter(function(n,r){return!!u&&((n=k(n,e[r]))||(u=!1),n)}).length===t.length)},n.subtract=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:t-n},n.sum=Ln,n.symmetricDifference=function r(t,e){return 1===arguments.length?function(n){return r(t,n)}:on(I(function(n){return!S(n,e)},t),I(function(n){return!S(n,t)},e))},n.tail=en,n.take=B,n.takeLast=function r(t,n){var e,u;return 1===arguments.length?function(n){return r(t,n)}:(e=n.length,t<0?n.slice():(u=e<t?e:t,"string"==typeof n?n.slice(e-u):Bn(n,u=e-u,e)))},n.takeLastWhile=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};if(0===n.length)return n;for(var e=[],u=n.length;u;){var i=n[--u];if(!t(i))break;e.push(i)}return p(n)?e.reverse():e.reverse().join("")},n.takeWhile=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};var e=p(n);if(!e&&"string"!=typeof n)throw Error("`iterable` is neither list nor a string");for(var u=[],i=0;i<n.length;){var o=n[i++];if(!t(o))break;u.push(o)}return e?u:u.join("")},n.tap=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:(t(n),n)},n.test=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};if("string"==typeof t)throw new TypeError('R.test requires a value of type RegExp as its first argument; received "'.concat(t,'"'));return-1!=n.search(t)},n.times=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};if(!m(n)||n<0)throw new RangeError("n must be an integer");return E(t,lr(0,n))},n.toLower=function(n){return n.toLowerCase()},n.toPairs=function(n){return Object.entries(n)},n.toString=function(n){return""+n},n.toUpper=function(n){return n.toUpperCase()},n.transpose=function(n){return n.reduce(function(t,n){return n.forEach(function(n,r){return p(t[r])?t[r].push(n):t.push([n])}),t},[])},n.trim=function(n){return n.trim()},n.tryCatch=function(e,u){var i;if(gr(e))return i=gr(u),function(){for(var n=arguments.length,r=Array(n),t=0;t<n;t++)r[t]=arguments[t];try{return e.apply(void 0,r)}catch(n){return i?u.apply(void 0,[n].concat(r)):u}};throw Error("R.tryCatch | fn '".concat(e,"'"))},n.type=N,n.unapply=function(e){return function(){for(var n=arguments.length,r=Array(n),t=0;t<n;t++)r[t]=arguments[t];return e.call(this,r)}},n.union=function r(t,n){var e;return 1===arguments.length?function(n){return r(t,n)}:(e=l(t),n.forEach(function(n){S(n,t)||e.push(n)}),e)},n.uniq=yn,n.uniqBy=function r(t,n){var e;return 1===arguments.length?function(n){return r(t,n)}:(e=new vn,n.filter(function(n){return e.checkUniqueness(t(n))}))},n.uniqWith=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};for(var e=-1,u=[];++e<n.length;){var i=n[e];!function(n,r,t){for(var e=!1,u=-1;++u<t.length&&!e;)n(r,t[u])&&(e=!0);return e}(t,i,u)&&u.push(i)}return u},n.unless=function r(t,e){return 1===arguments.length?function(n){return r(t,n)}:function(n){return t(n)?n:e(n)}},n.unnest=function(n){return n.reduce(function(n,r){return[].concat(s(n),Array.isArray(r)?s(r):[r])},[])},n.unwind=function r(t,e){return 1===arguments.length?function(n){return r(t,n)}:p(e[t])?w(function(n){return o(o({},e),{},f({},t,n))},e[t]):[e]},n.update=An,n.updateFn=wn,n.values=function(n){return"Object"!==N(n)?[]:Object.values(n)},n.view=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:t(vr)(n).x},n.when=yr,n.where=function r(t,n){if(void 0===n)return function(n){return r(t,n)};var e,u,i=!0;for(e in t)i&&(u=t[e](n[e]),i)&&!1===u&&(i=!1);return i},n.whereAny=function r(t,n){if(void 0===n)return function(n){return r(t,n)};for(var e in t)if(t[e](n[e]))return!0;return!1},n.whereEq=function r(t,e){var n;return 1===arguments.length?function(n){return r(t,n)}:(n=I(function(n,r){return k(n,e[r])},t),Object.keys(n).length===Object.keys(t).length)},n.without=function r(t,n){return void 0===n?function(n){return r(t,n)}:j(function(n,r){return-1<P(r,t)?n:n.concat(r)},[],n)},n.xor=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:!!t&&!n||!!n&&!t},n.zip=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};for(var e=[],u=Math.min(t.length,n.length),i=0;i<u;i++)e[i]=[t[i],n[i]];return e},n.zipObj=function r(t,e){return 1===arguments.length?function(n){return r(t,n)}:B(e.length,t).reduce(function(n,r,t){return n[r]=e[t],n},{})},n.zipWith=dr});
package/immutable.d.ts CHANGED
@@ -231,7 +231,6 @@ export function any<T>(predicate: (x: T) => boolean): (list: readonly T[]) => bo
231
231
  /**
232
232
  * It accepts list of `predicates` and returns a function. This function with its `input` will return `true`, if any of `predicates` returns `true` for this `input`.
233
233
  */
234
- export function anyPass<T, U extends readonly T[]>(predicates: { readonly [K in keyof U]: (x: T) => x is U[K]; }): (input: T) => input is U[number];
235
234
  export function anyPass<T>(predicates: readonly ((x: T) => boolean)[]): (input: T) => boolean;
236
235
  export function anyPass<T>(predicates: readonly ((...inputs: readonly T[]) => boolean)[]): (...inputs: readonly T[]) => boolean;
237
236
 
@@ -541,6 +540,12 @@ export function dropLastWhile<T>(predicate: (x: T) => boolean): <T>(iterable: re
541
540
  */
542
541
  export function dropRepeats<T>(list: readonly T[]): readonly T[];
543
542
 
543
+ export function dropRepeatsBy<T, U>(fn: (a: T) => U, list: readonly T[]): readonly T[];
544
+ export function dropRepeatsBy<T, U>(
545
+ fn: (a: T) => U
546
+ ): (list: readonly T[]) => readonly T[];
547
+ export function dropRepeatsBy(fn: any): <T>(list: readonly T[]) => readonly T[];
548
+
544
549
  export function dropRepeatsWith<T>(predicate: (x: T, y: T) => boolean, list: readonly T[]): readonly T[];
545
550
  export function dropRepeatsWith<T>(predicate: (x: T, y: T) => boolean): (list: readonly T[]) => readonly T[];
546
551
 
@@ -559,6 +564,8 @@ export function either<T>(firstPredicate: Predicate<T>, secondPredicate: Predica
559
564
  export function either<T>(firstPredicate: Predicate<T>): (secondPredicate: Predicate<T>) => Predicate<T>;
560
565
  export function either(firstPredicate: Pred): (secondPredicate: Pred) => Pred;
561
566
 
567
+ export function empty<T>(x: T): T;
568
+
562
569
  /**
563
570
  * When iterable is a string, then it behaves as `String.prototype.endsWith`.
564
571
  * When iterable is a list, then it uses R.equals to determine if the target list ends in the same way as the given target.
@@ -568,6 +575,13 @@ export function endsWith<T extends string>(question: T): (str: string) => boolea
568
575
  export function endsWith<T>(question: readonly T[], list: readonly T[]): boolean;
569
576
  export function endsWith<T>(question: readonly T[]): (list: readonly T[]) => boolean;
570
577
 
578
+ export function eqBy<T>(fn: (a: T) => unknown, a: T, b: T): boolean;
579
+ export function eqBy<T>(fn: (a: T) => unknown, a: T): (b: T) => boolean;
580
+ export function eqBy<T>(fn: (a: T) => unknown): {
581
+ (a: T, b: T): boolean;
582
+ (a: T): (b: T) => boolean;
583
+ };
584
+
571
585
  /**
572
586
  * It returns `true` if property `prop` in `obj1` is equal to property `prop` in `obj2` according to `R.equals`.
573
587
  */
@@ -647,6 +661,9 @@ export function forEach<T>(fn: Iterator<T, void>): (list: readonly T[]) => reado
647
661
  export function forEach<T>(fn: ObjectIterator<T, void>, list: Dictionary<T>): Dictionary<T>;
648
662
  export function forEach<T, U>(fn: ObjectIterator<T, void>): (list: Dictionary<T>) => Dictionary<T>;
649
663
 
664
+ export function forEachObjIndexed<T>(fn: (value: T[keyof T], key: keyof T, obj: T) => void, obj: T): T;
665
+ export function forEachObjIndexed<T>(fn: (value: T[keyof T], key: keyof T, obj: T) => void): (obj: T) => T;
666
+
650
667
  /**
651
668
  * It transforms a `listOfPairs` to an object.
652
669
  */
@@ -1096,31 +1113,22 @@ export function over(lens: Lens): <T>(fn: Arity1Fn, value: readonly T[]) => read
1096
1113
  * `R.partial` will keep returning a function until all the arguments that the function `fn` expects are passed.
1097
1114
  * The name comes from the fact that you partially inject the inputs.
1098
1115
  */
1099
- export function partial<
1100
- Args extends readonly unknown[],
1101
- ArgsGiven extends readonly [...Partial<Args>],
1102
- R
1103
- >(
1104
- fn: (...args: Args) => R,
1105
- ...args: ArgsGiven
1106
- ): Args extends readonly [...{ readonly[K in keyof ArgsGiven]: Args[K]}, ...infer ArgsRemaining]
1107
- ? ArgsRemaining extends readonly []
1108
- ? R
1109
- : (...args: ArgsRemaining) => R
1110
- : never;
1111
-
1112
- export function partial<
1113
- Args extends readonly unknown[],
1114
- ArgsGiven extends readonly [...Partial<Args>],
1115
- R
1116
- >(
1117
- fn: (...args: Args) => R,
1118
- args: ArgsGiven
1119
- ): Args extends readonly [...{ readonly[K in keyof ArgsGiven]: Args[K]}, ...infer ArgsRemaining]
1120
- ? ArgsRemaining extends readonly []
1121
- ? R
1122
- : (...args: ArgsRemaining) => R
1123
- : never;
1116
+ export function partial<V0, V1, T>(fn: (x0: V0, x1: V1) => T, args: readonly [V0]): (x1: V1) => T;
1117
+ export function partial<V0, V1, V2, T>(fn: (x0: V0, x1: V1, x2: V2) => T, args: readonly [V0, V1]): (x2: V2) => T;
1118
+ export function partial<V0, V1, V2, T>(fn: (x0: V0, x1: V1, x2: V2) => T, args: readonly [V0]): (x1: V1, x2: V2) => T;
1119
+ export function partial<V0, V1, V2, V3, T>(
1120
+ fn: (x0: V0, x1: V1, x2: V2, x3: V3) => T,
1121
+ args: readonly [V0, V1, V2],
1122
+ ): (x2: V3) => T;
1123
+ export function partial<V0, V1, V2, V3, T>(
1124
+ fn: (x0: V0, x1: V1, x2: V2, x3: V3) => T,
1125
+ args: readonly [V0, V1],
1126
+ ): (x2: V2, x3: V3) => T;
1127
+ export function partial<V0, V1, V2, V3, T>(
1128
+ fn: (x0: V0, x1: V1, x2: V2, x3: V3) => T,
1129
+ args: readonly [V0],
1130
+ ): (x1: V1, x2: V2, x3: V3) => T;
1131
+ export function partial<T>(fn: (...a: readonly any[]) => T, args: readonly any[]): (...a: readonly any[]) => T;
1124
1132
 
1125
1133
  /**
1126
1134
  * `R.partialObject` is a curry helper designed specifically for functions accepting object as a single argument.
package/index.d.ts CHANGED
@@ -231,7 +231,6 @@ export function any<T>(predicate: (x: T) => boolean): (list: T[]) => boolean;
231
231
  /**
232
232
  * It accepts list of `predicates` and returns a function. This function with its `input` will return `true`, if any of `predicates` returns `true` for this `input`.
233
233
  */
234
- export function anyPass<T, U extends T[]>(predicates: { [K in keyof U]: (x: T) => x is U[K]; }): (input: T) => input is U[number];
235
234
  export function anyPass<T>(predicates: ((x: T) => boolean)[]): (input: T) => boolean;
236
235
  export function anyPass<T>(predicates: ((...inputs: T[]) => boolean)[]): (...inputs: T[]) => boolean;
237
236
 
@@ -541,6 +540,12 @@ export function dropLastWhile<T>(predicate: (x: T) => boolean): <T>(iterable: T[
541
540
  */
542
541
  export function dropRepeats<T>(list: T[]): T[];
543
542
 
543
+ export function dropRepeatsBy<T, U>(fn: (a: T) => U, list: T[]): T[];
544
+ export function dropRepeatsBy<T, U>(
545
+ fn: (a: T) => U
546
+ ): (list: T[]) => T[];
547
+ export function dropRepeatsBy(fn: any): <T>(list: T[]) => T[];
548
+
544
549
  export function dropRepeatsWith<T>(predicate: (x: T, y: T) => boolean, list: T[]): T[];
545
550
  export function dropRepeatsWith<T>(predicate: (x: T, y: T) => boolean): (list: T[]) => T[];
546
551
 
@@ -559,6 +564,8 @@ export function either<T>(firstPredicate: Predicate<T>, secondPredicate: Predica
559
564
  export function either<T>(firstPredicate: Predicate<T>): (secondPredicate: Predicate<T>) => Predicate<T>;
560
565
  export function either(firstPredicate: Pred): (secondPredicate: Pred) => Pred;
561
566
 
567
+ export function empty<T>(x: T): T;
568
+
562
569
  /**
563
570
  * When iterable is a string, then it behaves as `String.prototype.endsWith`.
564
571
  * When iterable is a list, then it uses R.equals to determine if the target list ends in the same way as the given target.
@@ -568,6 +575,13 @@ export function endsWith<T extends string>(question: T): (str: string) => boolea
568
575
  export function endsWith<T>(question: T[], list: T[]): boolean;
569
576
  export function endsWith<T>(question: T[]): (list: T[]) => boolean;
570
577
 
578
+ export function eqBy<T>(fn: (a: T) => unknown, a: T, b: T): boolean;
579
+ export function eqBy<T>(fn: (a: T) => unknown, a: T): (b: T) => boolean;
580
+ export function eqBy<T>(fn: (a: T) => unknown): {
581
+ (a: T, b: T): boolean;
582
+ (a: T): (b: T) => boolean;
583
+ };
584
+
571
585
  /**
572
586
  * It returns `true` if property `prop` in `obj1` is equal to property `prop` in `obj2` according to `R.equals`.
573
587
  */
@@ -647,6 +661,9 @@ export function forEach<T>(fn: Iterator<T, void>): (list: T[]) => T[];
647
661
  export function forEach<T>(fn: ObjectIterator<T, void>, list: Dictionary<T>): Dictionary<T>;
648
662
  export function forEach<T, U>(fn: ObjectIterator<T, void>): (list: Dictionary<T>) => Dictionary<T>;
649
663
 
664
+ export function forEachObjIndexed<T>(fn: (value: T[keyof T], key: keyof T, obj: T) => void, obj: T): T;
665
+ export function forEachObjIndexed<T>(fn: (value: T[keyof T], key: keyof T, obj: T) => void): (obj: T) => T;
666
+
650
667
  /**
651
668
  * It transforms a `listOfPairs` to an object.
652
669
  */
@@ -1096,31 +1113,22 @@ export function over(lens: Lens): <T>(fn: Arity1Fn, value: T[]) => T[];
1096
1113
  * `R.partial` will keep returning a function until all the arguments that the function `fn` expects are passed.
1097
1114
  * The name comes from the fact that you partially inject the inputs.
1098
1115
  */
1099
- export function partial<
1100
- Args extends unknown[],
1101
- ArgsGiven extends [...Partial<Args>],
1102
- R
1103
- >(
1104
- fn: (...args: Args) => R,
1105
- ...args: ArgsGiven
1106
- ): Args extends [...{[K in keyof ArgsGiven]: Args[K]}, ...infer ArgsRemaining]
1107
- ? ArgsRemaining extends []
1108
- ? R
1109
- : (...args: ArgsRemaining) => R
1110
- : never;
1111
-
1112
- export function partial<
1113
- Args extends readonly unknown[],
1114
- ArgsGiven extends [...Partial<Args>],
1115
- R
1116
- >(
1117
- fn: (...args: Args) => R,
1118
- args: ArgsGiven
1119
- ): Args extends [...{[K in keyof ArgsGiven]: Args[K]}, ...infer ArgsRemaining]
1120
- ? ArgsRemaining extends []
1121
- ? R
1122
- : (...args: ArgsRemaining) => R
1123
- : never;
1116
+ export function partial<V0, V1, T>(fn: (x0: V0, x1: V1) => T, args: [V0]): (x1: V1) => T;
1117
+ export function partial<V0, V1, V2, T>(fn: (x0: V0, x1: V1, x2: V2) => T, args: [V0, V1]): (x2: V2) => T;
1118
+ export function partial<V0, V1, V2, T>(fn: (x0: V0, x1: V1, x2: V2) => T, args: [V0]): (x1: V1, x2: V2) => T;
1119
+ export function partial<V0, V1, V2, V3, T>(
1120
+ fn: (x0: V0, x1: V1, x2: V2, x3: V3) => T,
1121
+ args: [V0, V1, V2],
1122
+ ): (x2: V3) => T;
1123
+ export function partial<V0, V1, V2, V3, T>(
1124
+ fn: (x0: V0, x1: V1, x2: V2, x3: V3) => T,
1125
+ args: [V0, V1],
1126
+ ): (x2: V2, x3: V3) => T;
1127
+ export function partial<V0, V1, V2, V3, T>(
1128
+ fn: (x0: V0, x1: V1, x2: V2, x3: V3) => T,
1129
+ args: [V0],
1130
+ ): (x1: V1, x2: V2, x3: V3) => T;
1131
+ export function partial<T>(fn: (...a: any[]) => T, args: any[]): (...a: any[]) => T;
1124
1132
 
1125
1133
  /**
1126
1134
  * `R.partialObject` is a curry helper designed specifically for functions accepting object as a single argument.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rambda",
3
- "version": "8.4.0",
3
+ "version": "8.5.0",
4
4
  "scripts": {
5
5
  "benchmark": "cd ../rambda-scripts && RAMBDA_RUN_ALL=ON RAMBDA_RUN_INDEXES=ON yarn benchmark",
6
6
  "benchmark:all": "yarn build:step && cd ../rambda-scripts && yarn benchmark:all",
@@ -32,6 +32,7 @@
32
32
  "test:all": "jest source/*.spec.js -u --bail=false",
33
33
  "test:ci": "jest source/*.spec.js --coverage --no-cache -w 1",
34
34
  "test:typings": "dtslint --localTs ./node_modules/typescript/lib --expectOnly ./source",
35
+ "ts": "yarn test:typings",
35
36
  "usedby": "cd ../rambda-scripts && yarn usedby",
36
37
  "x": "yarn populatedocs:x && yarn populatereadme:x && yarn immutable:x"
37
38
  },
package/rambda.js CHANGED
@@ -51,10 +51,13 @@ export * from './src/drop.js'
51
51
  export * from './src/dropLast.js'
52
52
  export * from './src/dropLastWhile.js'
53
53
  export * from './src/dropRepeats.js'
54
+ export * from './src/dropRepeatsBy.js'
54
55
  export * from './src/dropRepeatsWith.js'
55
56
  export * from './src/dropWhile.js'
56
57
  export * from './src/either.js'
58
+ export * from './src/empty.js'
57
59
  export * from './src/endsWith.js'
60
+ export * from './src/eqBy.js'
58
61
  export * from './src/eqProps.js'
59
62
  export * from './src/equals.js'
60
63
  export * from './src/evolve.js'
@@ -0,0 +1,21 @@
1
+ import { equals } from './equals.js'
2
+
3
+ export function dropRepeatsBy(fn, list){
4
+ if (arguments.length === 1) return _list => dropRepeatsBy(fn, _list)
5
+
6
+ let lastEvaluated = null
7
+
8
+ return list.slice().filter(item => {
9
+ if (lastEvaluated === null){
10
+ lastEvaluated = fn(item)
11
+
12
+ return true
13
+ }
14
+ const evaluatedResult = fn(item)
15
+ if (equals(lastEvaluated, evaluatedResult)) return false
16
+
17
+ lastEvaluated = evaluatedResult
18
+
19
+ return true
20
+ })
21
+ }
package/src/empty.js ADDED
@@ -0,0 +1,15 @@
1
+ import { type } from './type.js'
2
+
3
+ export function empty(list){
4
+ if (typeof list === 'string') return ''
5
+
6
+ if (Array.isArray(list)){
7
+ const { name } = list.constructor
8
+ if (name === 'Uint8Array') return Uint8Array.from('')
9
+
10
+ if (name === 'Float32Array') return new Float32Array([])
11
+
12
+ return []
13
+ }
14
+ if (type(list) === 'Object') return {}
15
+ }
package/src/eqBy.js ADDED
@@ -0,0 +1,10 @@
1
+ import { curry } from './curry.js'
2
+ import { equals } from './equals.js'
3
+
4
+ export function eqByFn(
5
+ fn, a, b
6
+ ){
7
+ return equals(fn(a), fn(b))
8
+ }
9
+
10
+ export const eqBy = curry(eqByFn)
package/src/forEach.js CHANGED
@@ -1,34 +1,44 @@
1
1
  import { isArray } from './_internals/isArray.js'
2
2
  import { keys } from './_internals/keys.js'
3
3
 
4
- export function forEach(fn, list){
5
- if (arguments.length === 1) return _list => forEach(fn, _list)
4
+ export function forEachObjIndexedFn(fn, obj){
5
+ let index = 0
6
+ const listKeys = keys(obj)
7
+ const len = listKeys.length
6
8
 
7
- if (list === undefined){
8
- return
9
+ while (index < len){
10
+ const key = listKeys[ index ]
11
+ fn(
12
+ obj[ key ], key, obj
13
+ )
14
+ index++
9
15
  }
10
16
 
11
- if (isArray(list)){
12
- let index = 0
13
- const len = list.length
17
+ return obj
18
+ }
14
19
 
15
- while (index < len){
16
- fn(list[ index ])
17
- index++
18
- }
19
- } else {
20
+ export function forEachObjIndexed(fn, list){
21
+ if (arguments.length === 1) return _list => forEachObjIndexed(fn, _list)
22
+
23
+ if (list === undefined) return
24
+
25
+ return forEachObjIndexedFn(fn, list)
26
+ }
27
+
28
+ export function forEach(fn, iterable){
29
+ if (arguments.length === 1) return _list => forEach(fn, _list)
30
+
31
+ if (iterable === undefined) return
32
+
33
+ if (isArray(iterable)){
20
34
  let index = 0
21
- const listKeys = keys(list)
22
- const len = listKeys.length
35
+ const len = iterable.length
23
36
 
24
37
  while (index < len){
25
- const key = listKeys[ index ]
26
- fn(
27
- list[ key ], key, list
28
- )
38
+ fn(iterable[ index ])
29
39
  index++
30
40
  }
31
- }
41
+ } else return forEachObjIndexedFn(fn, iterable)
32
42
 
33
- return list
43
+ return iterable
34
44
  }
package/src/mergeWith.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { curry } from './curry.js'
2
2
 
3
- function mergeWithFn(
3
+ export function mergeWithFn(
4
4
  mergeFn, aInput, bInput
5
5
  ){
6
6
  const a = aInput ?? {}
@@ -8,21 +8,15 @@ function mergeWithFn(
8
8
  const willReturn = {}
9
9
 
10
10
  Object.keys(a).forEach(key => {
11
- if (b[ key ] === undefined){
12
- willReturn[ key ] = a[ key ]
13
- } else {
14
- willReturn[ key ] = mergeFn(a[ key ], b[ key ])
15
- }
11
+ if (b[ key ] === undefined) willReturn[ key ] = a[ key ]
12
+ else willReturn[ key ] = mergeFn(a[ key ], b[ key ])
16
13
  })
17
14
 
18
15
  Object.keys(b).forEach(key => {
19
16
  if (willReturn[ key ] !== undefined) return
20
17
 
21
- if (a[ key ] === undefined){
22
- willReturn[ key ] = b[ key ]
23
- } else {
24
- willReturn[ key ] = mergeFn(a[ key ], b[ key ])
25
- }
18
+ if (a[ key ] === undefined) willReturn[ key ] = b[ key ]
19
+ else willReturn[ key ] = mergeFn(a[ key ], b[ key ])
26
20
  })
27
21
 
28
22
  return willReturn