core-js-compat 3.4.2 → 3.4.7

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/README.md CHANGED
@@ -2,34 +2,40 @@
2
2
 
3
3
  ```js
4
4
  const {
5
- list, // array of required modules
6
- targets, // object with targets for each module
5
+ list, // array of required modules
6
+ targets, // object with targets for each module
7
7
  } = require('core-js-compat')({
8
- targets: '> 2.5%', // browserslist query
9
- filter: 'es.', // optional filter - string-prefix, regexp or list of modules
8
+ targets: '> 2.5%', // browserslist query
9
+ filter: /^(es|web)\./, // optional filter - string-prefix, regexp or list of modules
10
10
  });
11
11
 
12
12
  console.log(targets);
13
13
  /* =>
14
14
  {
15
- 'es.symbol.description': { ios: '12.0-12.1' },
16
- 'es.array.reverse': { ios: '12.0-12.1' },
17
- 'es.string.replace': { firefox: '63', ios: '12.0-12.1' },
18
- 'es.string.trim': { ios: '12.0-12.1' },
19
- 'es.promise': { firefox: '63' },
20
- 'es.promise.finally': { firefox: '63' },
21
- 'es.array-buffer.slice': { ios: '12.0-12.1' },
22
- 'es.typed-array.int8-array': { ios: '12.0-12.1' },
23
- 'es.typed-array.uint8-array': { ios: '12.0-12.1' },
24
- 'es.typed-array.uint8-clamped-array': { ios: '12.0-12.1' },
25
- 'es.typed-array.int16-array': { ios: '12.0-12.1' },
26
- 'es.typed-array.uint16-array': { ios: '12.0-12.1' },
27
- 'es.typed-array.int32-array': { ios: '12.0-12.1' },
28
- 'es.typed-array.uint32-array': { ios: '12.0-12.1' },
29
- 'es.typed-array.float32-array': { ios: '12.0-12.1' },
30
- 'es.typed-array.float64-array': { ios: '12.0-12.1' },
31
- 'es.typed-array.from': { ios: '12.0-12.1' },
32
- 'es.typed-array.of': { ios: '12.0-12.1' }
15
+ 'es.symbol.match-all': { ios: '12.2-12.4' },
16
+ 'es.array.unscopables.flat': { ios: '12.2-12.4' },
17
+ 'es.array.unscopables.flat-map': { ios: '12.2-12.4' },
18
+ 'es.math.hypot': { chrome: '77' },
19
+ 'es.promise.all-settled': { firefox: '69', ios: '12.2-12.4' },
20
+ 'es.promise.finally': { ios: '12.2-12.4' },
21
+ 'es.string.match-all': { chrome: '77', firefox: '69', ios: '12.2-12.4' },
22
+ 'es.string.replace': { firefox: '69', ios: '12.2-12.4' },
23
+ 'es.typed-array.float32-array': { ios: '12.2-12.4' },
24
+ 'es.typed-array.float64-array': { ios: '12.2-12.4' },
25
+ 'es.typed-array.int8-array': { ios: '12.2-12.4' },
26
+ 'es.typed-array.int16-array': { ios: '12.2-12.4' },
27
+ 'es.typed-array.int32-array': { ios: '12.2-12.4' },
28
+ 'es.typed-array.uint8-array': { ios: '12.2-12.4' },
29
+ 'es.typed-array.uint8-clamped-array': { ios: '12.2-12.4' },
30
+ 'es.typed-array.uint16-array': { ios: '12.2-12.4' },
31
+ 'es.typed-array.uint32-array': { ios: '12.2-12.4' },
32
+ 'es.typed-array.from': { ios: '12.2-12.4' },
33
+ 'es.typed-array.of': { ios: '12.2-12.4' },
34
+ 'web.dom-collections.iterator': { ios: '12.2-12.4' },
35
+ 'web.immediate': { chrome: '77', firefox: '69', ios: '12.2-12.4' },
36
+ 'web.url': { ios: '12.2-12.4' },
37
+ 'web.url.to-json': { ios: '12.2-12.4' },
38
+ 'web.url-search-params': { ios: '12.2-12.4' }
33
39
  }
34
40
  */
35
41
  ```
package/data.json CHANGED
@@ -19,7 +19,7 @@
19
19
  "node": "11.0",
20
20
  "samsung": "10.2",
21
21
  "electron": "5.0",
22
- "ios": "13.0"
22
+ "ios": "12.2"
23
23
  },
24
24
  "es.symbol.async-iterator": {
25
25
  "chrome": "63",
@@ -210,7 +210,7 @@
210
210
  "ios": "9.0"
211
211
  },
212
212
  "es.array.filter": {
213
- "edge": "13",
213
+ "edge": "15",
214
214
  "chrome": "51",
215
215
  "firefox": "48",
216
216
  "safari": "10.0",
@@ -363,7 +363,7 @@
363
363
  "es.array.map": {
364
364
  "edge": "13",
365
365
  "chrome": "51",
366
- "firefox": "48",
366
+ "firefox": "50",
367
367
  "safari": "10.0",
368
368
  "opera": "38",
369
369
  "node": "6.5",
@@ -419,7 +419,7 @@
419
419
  "samsung": "2.1",
420
420
  "android": "4.4",
421
421
  "electron": "0.20",
422
- "ios": "13.0"
422
+ "ios": "12.2"
423
423
  },
424
424
  "es.array.slice": {
425
425
  "edge": "13",
@@ -535,7 +535,7 @@
535
535
  "samsung": "2.1",
536
536
  "android": "4.4.3",
537
537
  "electron": "0.20",
538
- "ios": "13.0"
538
+ "ios": "12.2"
539
539
  },
540
540
  "es.data-view": {
541
541
  "ie": "10",
@@ -660,7 +660,7 @@
660
660
  "node": "12.0",
661
661
  "samsung": "10.2",
662
662
  "electron": "5.0",
663
- "ios": "13.0"
663
+ "ios": "12.2"
664
664
  },
665
665
  "es.json.stringify": {
666
666
  "chrome": "72",
@@ -670,7 +670,7 @@
670
670
  "opera": "59",
671
671
  "node": "12.0",
672
672
  "electron": "5.0",
673
- "ios": "13.0"
673
+ "ios": "12.2"
674
674
  },
675
675
  "es.json.to-string-tag": {
676
676
  "edge": "15",
@@ -1030,10 +1030,10 @@
1030
1030
  "ios": "9.0"
1031
1031
  },
1032
1032
  "es.object.assign": {
1033
- "edge": "13",
1034
1033
  "chrome": "49",
1035
1034
  "firefox": "36",
1036
1035
  "safari": "9.0",
1036
+ "edge": "74",
1037
1037
  "opera": "36",
1038
1038
  "node": "6.0",
1039
1039
  "samsung": "5.0",
@@ -1132,7 +1132,7 @@
1132
1132
  "opera": "60",
1133
1133
  "node": "12.0",
1134
1134
  "electron": "5.0",
1135
- "ios": "13.0"
1135
+ "ios": "12.2"
1136
1136
  },
1137
1137
  "es.object.get-own-property-descriptor": {
1138
1138
  "edge": "13",
@@ -1360,13 +1360,13 @@
1360
1360
  "es.promise.finally": {
1361
1361
  "chrome": "67",
1362
1362
  "firefox": "69",
1363
- "safari": "12.0",
1363
+ "safari": "13.0.3",
1364
+ "ios": "13.2.3",
1364
1365
  "edge": "74",
1365
1366
  "opera": "54",
1366
1367
  "node": "10.4",
1367
1368
  "samsung": "9.2",
1368
- "electron": "4.0",
1369
- "ios": "12.0"
1369
+ "electron": "4.0"
1370
1370
  },
1371
1371
  "es.reflect.apply": {
1372
1372
  "edge": "15",
@@ -1490,10 +1490,10 @@
1490
1490
  "ios": "10.0"
1491
1491
  },
1492
1492
  "es.reflect.set": {
1493
- "edge": "12",
1494
1493
  "chrome": "49",
1495
1494
  "firefox": "42",
1496
1495
  "safari": "10.0",
1496
+ "edge": "74",
1497
1497
  "opera": "36",
1498
1498
  "node": "6.0",
1499
1499
  "samsung": "5.0",
@@ -1636,6 +1636,7 @@
1636
1636
  },
1637
1637
  "es.string.match-all": {
1638
1638
  "chrome": "80",
1639
+ "safari": "13.1",
1639
1640
  "edge": "80",
1640
1641
  "opera": "67",
1641
1642
  "electron": "8.0"
@@ -1734,7 +1735,7 @@
1734
1735
  "node": "8.3",
1735
1736
  "samsung": "7.2",
1736
1737
  "electron": "1.8",
1737
- "ios": "13.0"
1738
+ "ios": "12.2"
1738
1739
  },
1739
1740
  "es.string.trim-end": {
1740
1741
  "chrome": "66",
@@ -1745,7 +1746,7 @@
1745
1746
  "node": "10.0",
1746
1747
  "samsung": "9.2",
1747
1748
  "electron": "3.0",
1748
- "ios": "13.0"
1749
+ "ios": "12.2"
1749
1750
  },
1750
1751
  "es.string.trim-start": {
1751
1752
  "chrome": "66",
@@ -2319,7 +2320,7 @@
2319
2320
  "node": "12.0",
2320
2321
  "samsung": "10.2",
2321
2322
  "electron": "5.0",
2322
- "ios": "13.0"
2323
+ "ios": "12.2"
2323
2324
  },
2324
2325
  "esnext.iterator.constructor": {},
2325
2326
  "esnext.iterator.as-indexed-pairs": {},
@@ -2412,6 +2413,7 @@
2412
2413
  "esnext.string.code-points": {},
2413
2414
  "esnext.string.match-all": {
2414
2415
  "chrome": "80",
2416
+ "safari": "13.1",
2415
2417
  "edge": "80",
2416
2418
  "opera": "67",
2417
2419
  "electron": "8.0"
@@ -2445,6 +2447,7 @@
2445
2447
  "chrome": "66",
2446
2448
  "node": "0.10",
2447
2449
  "firefox": "60",
2450
+ "safari": "13.1",
2448
2451
  "edge": "74",
2449
2452
  "opera": "53",
2450
2453
  "samsung": "9.2",
@@ -2463,7 +2466,7 @@
2463
2466
  "opera": "58",
2464
2467
  "samsung": "10.2",
2465
2468
  "electron": "5.0",
2466
- "ios": "13.0"
2469
+ "ios": "12.2"
2467
2470
  },
2468
2471
  "web.timers": {
2469
2472
  "ie": "10",
package/entries.json CHANGED
@@ -57,6 +57,7 @@
57
57
  "es.function.has-instance",
58
58
  "es.function.name",
59
59
  "es.global-this",
60
+ "es.json.stringify",
60
61
  "es.json.to-string-tag",
61
62
  "es.map",
62
63
  "es.math.acosh",
@@ -209,10 +210,17 @@
209
210
  "esnext.array.last-index",
210
211
  "esnext.array.last-item",
211
212
  "esnext.async-iterator.constructor",
213
+ "esnext.async-iterator.as-indexed-pairs",
212
214
  "esnext.async-iterator.drop",
215
+ "esnext.async-iterator.every",
213
216
  "esnext.async-iterator.filter",
217
+ "esnext.async-iterator.find",
218
+ "esnext.async-iterator.flat-map",
219
+ "esnext.async-iterator.for-each",
214
220
  "esnext.async-iterator.from",
215
221
  "esnext.async-iterator.map",
222
+ "esnext.async-iterator.reduce",
223
+ "esnext.async-iterator.some",
216
224
  "esnext.async-iterator.take",
217
225
  "esnext.async-iterator.to-array",
218
226
  "esnext.composite-key",
@@ -224,6 +232,7 @@
224
232
  "esnext.iterator.every",
225
233
  "esnext.iterator.filter",
226
234
  "esnext.iterator.find",
235
+ "esnext.iterator.flat-map",
227
236
  "esnext.iterator.for-each",
228
237
  "esnext.iterator.from",
229
238
  "esnext.iterator.map",
@@ -675,6 +684,7 @@
675
684
  "es.function.has-instance",
676
685
  "es.function.name",
677
686
  "es.global-this",
687
+ "es.json.stringify",
678
688
  "es.json.to-string-tag",
679
689
  "es.map",
680
690
  "es.math.acosh",
@@ -941,6 +951,7 @@
941
951
  "es.array.iterator"
942
952
  ],
943
953
  "core-js/es/json": [
954
+ "es.json.stringify",
944
955
  "es.json.to-string-tag"
945
956
  ],
946
957
  "core-js/es/json/stringify": [
@@ -2583,6 +2594,7 @@
2583
2594
  "es.function.has-instance",
2584
2595
  "es.function.name",
2585
2596
  "es.global-this",
2597
+ "es.json.stringify",
2586
2598
  "es.json.to-string-tag",
2587
2599
  "es.map",
2588
2600
  "es.math.acosh",
@@ -2735,10 +2747,17 @@
2735
2747
  "esnext.array.last-index",
2736
2748
  "esnext.array.last-item",
2737
2749
  "esnext.async-iterator.constructor",
2750
+ "esnext.async-iterator.as-indexed-pairs",
2738
2751
  "esnext.async-iterator.drop",
2752
+ "esnext.async-iterator.every",
2739
2753
  "esnext.async-iterator.filter",
2754
+ "esnext.async-iterator.find",
2755
+ "esnext.async-iterator.flat-map",
2756
+ "esnext.async-iterator.for-each",
2740
2757
  "esnext.async-iterator.from",
2741
2758
  "esnext.async-iterator.map",
2759
+ "esnext.async-iterator.reduce",
2760
+ "esnext.async-iterator.some",
2742
2761
  "esnext.async-iterator.take",
2743
2762
  "esnext.async-iterator.to-array",
2744
2763
  "esnext.composite-key",
@@ -2750,6 +2769,7 @@
2750
2769
  "esnext.iterator.every",
2751
2770
  "esnext.iterator.filter",
2752
2771
  "esnext.iterator.find",
2772
+ "esnext.iterator.flat-map",
2753
2773
  "esnext.iterator.for-each",
2754
2774
  "esnext.iterator.from",
2755
2775
  "esnext.iterator.map",
@@ -3092,6 +3112,7 @@
3092
3112
  "web.dom-collections.iterator"
3093
3113
  ],
3094
3114
  "core-js/features/json": [
3115
+ "es.json.stringify",
3095
3116
  "es.json.to-string-tag"
3096
3117
  ],
3097
3118
  "core-js/features/json/stringify": [
@@ -3862,6 +3883,7 @@
3862
3883
  "es.string.sub",
3863
3884
  "es.string.sup",
3864
3885
  "esnext.string.at",
3886
+ "esnext.string.code-points",
3865
3887
  "esnext.string.match-all",
3866
3888
  "esnext.string.replace-all"
3867
3889
  ],
@@ -4002,6 +4024,7 @@
4002
4024
  "es.string.sub",
4003
4025
  "es.string.sup",
4004
4026
  "esnext.string.at",
4027
+ "esnext.string.code-points",
4005
4028
  "esnext.string.match-all",
4006
4029
  "esnext.string.replace-all"
4007
4030
  ],
@@ -4673,10 +4696,17 @@
4673
4696
  "esnext.array.last-index",
4674
4697
  "esnext.array.last-item",
4675
4698
  "esnext.async-iterator.constructor",
4699
+ "esnext.async-iterator.as-indexed-pairs",
4676
4700
  "esnext.async-iterator.drop",
4701
+ "esnext.async-iterator.every",
4677
4702
  "esnext.async-iterator.filter",
4703
+ "esnext.async-iterator.find",
4704
+ "esnext.async-iterator.flat-map",
4705
+ "esnext.async-iterator.for-each",
4678
4706
  "esnext.async-iterator.from",
4679
4707
  "esnext.async-iterator.map",
4708
+ "esnext.async-iterator.reduce",
4709
+ "esnext.async-iterator.some",
4680
4710
  "esnext.async-iterator.take",
4681
4711
  "esnext.async-iterator.to-array",
4682
4712
  "esnext.composite-key",
@@ -4688,6 +4718,7 @@
4688
4718
  "esnext.iterator.every",
4689
4719
  "esnext.iterator.filter",
4690
4720
  "esnext.iterator.find",
4721
+ "esnext.iterator.flat-map",
4691
4722
  "esnext.iterator.for-each",
4692
4723
  "esnext.iterator.from",
4693
4724
  "esnext.iterator.map",
@@ -4782,10 +4813,17 @@
4782
4813
  ],
4783
4814
  "core-js/proposals/iterator-helpers": [
4784
4815
  "esnext.async-iterator.constructor",
4816
+ "esnext.async-iterator.as-indexed-pairs",
4785
4817
  "esnext.async-iterator.drop",
4818
+ "esnext.async-iterator.every",
4786
4819
  "esnext.async-iterator.filter",
4820
+ "esnext.async-iterator.find",
4821
+ "esnext.async-iterator.flat-map",
4822
+ "esnext.async-iterator.for-each",
4787
4823
  "esnext.async-iterator.from",
4788
4824
  "esnext.async-iterator.map",
4825
+ "esnext.async-iterator.reduce",
4826
+ "esnext.async-iterator.some",
4789
4827
  "esnext.async-iterator.take",
4790
4828
  "esnext.async-iterator.to-array",
4791
4829
  "esnext.iterator.constructor",
@@ -4794,6 +4832,7 @@
4794
4832
  "esnext.iterator.every",
4795
4833
  "esnext.iterator.filter",
4796
4834
  "esnext.iterator.find",
4835
+ "esnext.iterator.flat-map",
4797
4836
  "esnext.iterator.for-each",
4798
4837
  "esnext.iterator.from",
4799
4838
  "esnext.iterator.map",
@@ -5261,6 +5300,7 @@
5261
5300
  "es.function.has-instance",
5262
5301
  "es.function.name",
5263
5302
  "es.global-this",
5303
+ "es.json.stringify",
5264
5304
  "es.json.to-string-tag",
5265
5305
  "es.map",
5266
5306
  "es.math.acosh",
@@ -5539,6 +5579,7 @@
5539
5579
  "web.dom-collections.iterator"
5540
5580
  ],
5541
5581
  "core-js/stable/json": [
5582
+ "es.json.stringify",
5542
5583
  "es.json.to-string-tag"
5543
5584
  ],
5544
5585
  "core-js/stable/json/stringify": [
@@ -6657,10 +6698,17 @@
6657
6698
  "esnext.array.last-index",
6658
6699
  "esnext.array.last-item",
6659
6700
  "esnext.async-iterator.constructor",
6701
+ "esnext.async-iterator.as-indexed-pairs",
6660
6702
  "esnext.async-iterator.drop",
6703
+ "esnext.async-iterator.every",
6661
6704
  "esnext.async-iterator.filter",
6705
+ "esnext.async-iterator.find",
6706
+ "esnext.async-iterator.flat-map",
6707
+ "esnext.async-iterator.for-each",
6662
6708
  "esnext.async-iterator.from",
6663
6709
  "esnext.async-iterator.map",
6710
+ "esnext.async-iterator.reduce",
6711
+ "esnext.async-iterator.some",
6664
6712
  "esnext.async-iterator.take",
6665
6713
  "esnext.async-iterator.to-array",
6666
6714
  "esnext.composite-key",
@@ -6672,6 +6720,7 @@
6672
6720
  "esnext.iterator.every",
6673
6721
  "esnext.iterator.filter",
6674
6722
  "esnext.iterator.find",
6723
+ "esnext.iterator.flat-map",
6675
6724
  "esnext.iterator.for-each",
6676
6725
  "esnext.iterator.from",
6677
6726
  "esnext.iterator.map",
@@ -6761,10 +6810,17 @@
6761
6810
  "esnext.array.last-index",
6762
6811
  "esnext.array.last-item",
6763
6812
  "esnext.async-iterator.constructor",
6813
+ "esnext.async-iterator.as-indexed-pairs",
6764
6814
  "esnext.async-iterator.drop",
6815
+ "esnext.async-iterator.every",
6765
6816
  "esnext.async-iterator.filter",
6817
+ "esnext.async-iterator.find",
6818
+ "esnext.async-iterator.flat-map",
6819
+ "esnext.async-iterator.for-each",
6766
6820
  "esnext.async-iterator.from",
6767
6821
  "esnext.async-iterator.map",
6822
+ "esnext.async-iterator.reduce",
6823
+ "esnext.async-iterator.some",
6768
6824
  "esnext.async-iterator.take",
6769
6825
  "esnext.async-iterator.to-array",
6770
6826
  "esnext.composite-key",
@@ -6776,6 +6832,7 @@
6776
6832
  "esnext.iterator.every",
6777
6833
  "esnext.iterator.filter",
6778
6834
  "esnext.iterator.find",
6835
+ "esnext.iterator.flat-map",
6779
6836
  "esnext.iterator.for-each",
6780
6837
  "esnext.iterator.from",
6781
6838
  "esnext.iterator.map",
@@ -6855,10 +6912,17 @@
6855
6912
  "esnext.aggregate-error",
6856
6913
  "esnext.array.is-template-object",
6857
6914
  "esnext.async-iterator.constructor",
6915
+ "esnext.async-iterator.as-indexed-pairs",
6858
6916
  "esnext.async-iterator.drop",
6917
+ "esnext.async-iterator.every",
6859
6918
  "esnext.async-iterator.filter",
6919
+ "esnext.async-iterator.find",
6920
+ "esnext.async-iterator.flat-map",
6921
+ "esnext.async-iterator.for-each",
6860
6922
  "esnext.async-iterator.from",
6861
6923
  "esnext.async-iterator.map",
6924
+ "esnext.async-iterator.reduce",
6925
+ "esnext.async-iterator.some",
6862
6926
  "esnext.async-iterator.take",
6863
6927
  "esnext.async-iterator.to-array",
6864
6928
  "esnext.global-this",
@@ -6868,6 +6932,7 @@
6868
6932
  "esnext.iterator.every",
6869
6933
  "esnext.iterator.filter",
6870
6934
  "esnext.iterator.find",
6935
+ "esnext.iterator.flat-map",
6871
6936
  "esnext.iterator.for-each",
6872
6937
  "esnext.iterator.from",
6873
6938
  "esnext.iterator.map",
@@ -6913,10 +6978,17 @@
6913
6978
  "esnext.array.last-index",
6914
6979
  "esnext.array.last-item",
6915
6980
  "esnext.async-iterator.constructor",
6981
+ "esnext.async-iterator.as-indexed-pairs",
6916
6982
  "esnext.async-iterator.drop",
6983
+ "esnext.async-iterator.every",
6917
6984
  "esnext.async-iterator.filter",
6985
+ "esnext.async-iterator.find",
6986
+ "esnext.async-iterator.flat-map",
6987
+ "esnext.async-iterator.for-each",
6918
6988
  "esnext.async-iterator.from",
6919
6989
  "esnext.async-iterator.map",
6990
+ "esnext.async-iterator.reduce",
6991
+ "esnext.async-iterator.some",
6920
6992
  "esnext.async-iterator.take",
6921
6993
  "esnext.async-iterator.to-array",
6922
6994
  "esnext.composite-key",
@@ -6928,6 +7000,7 @@
6928
7000
  "esnext.iterator.every",
6929
7001
  "esnext.iterator.filter",
6930
7002
  "esnext.iterator.find",
7003
+ "esnext.iterator.flat-map",
6931
7004
  "esnext.iterator.for-each",
6932
7005
  "esnext.iterator.from",
6933
7006
  "esnext.iterator.map",
@@ -7026,10 +7099,17 @@
7026
7099
  "esnext.array.last-index",
7027
7100
  "esnext.array.last-item",
7028
7101
  "esnext.async-iterator.constructor",
7102
+ "esnext.async-iterator.as-indexed-pairs",
7029
7103
  "esnext.async-iterator.drop",
7104
+ "esnext.async-iterator.every",
7030
7105
  "esnext.async-iterator.filter",
7106
+ "esnext.async-iterator.find",
7107
+ "esnext.async-iterator.flat-map",
7108
+ "esnext.async-iterator.for-each",
7031
7109
  "esnext.async-iterator.from",
7032
7110
  "esnext.async-iterator.map",
7111
+ "esnext.async-iterator.reduce",
7112
+ "esnext.async-iterator.some",
7033
7113
  "esnext.async-iterator.take",
7034
7114
  "esnext.async-iterator.to-array",
7035
7115
  "esnext.composite-key",
@@ -7041,6 +7121,7 @@
7041
7121
  "esnext.iterator.every",
7042
7122
  "esnext.iterator.filter",
7043
7123
  "esnext.iterator.find",
7124
+ "esnext.iterator.flat-map",
7044
7125
  "esnext.iterator.for-each",
7045
7126
  "esnext.iterator.from",
7046
7127
  "esnext.iterator.map",
@@ -1,17 +1,17 @@
1
1
  'use strict';
2
- const { coerce, lte } = require('semver');
2
+ const { compare, normalizeModulesList, semver } = require('./helpers');
3
3
  const modulesByVersions = require('./modules-by-versions');
4
4
 
5
5
  module.exports = function (raw) {
6
- const corejs = coerce(String(raw));
6
+ const corejs = semver(raw);
7
7
  if (corejs.major !== 3) {
8
8
  throw RangeError('This version of `core-js-compat` works only with `core-js@3`.');
9
9
  }
10
10
  const result = [];
11
11
  for (const version of Object.keys(modulesByVersions)) {
12
- if (lte(coerce(version), corejs)) {
12
+ if (compare(version, '<=', corejs)) {
13
13
  result.push(...modulesByVersions[version]);
14
14
  }
15
15
  }
16
- return result;
16
+ return normalizeModulesList(result);
17
17
  };
package/helpers.js ADDED
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+ const { coerce: semver, cmp } = require('semver');
3
+ const data = require('./data');
4
+
5
+ const modules = Object.keys(data);
6
+
7
+ function compare(a, operator, b) {
8
+ return cmp(semver(a), operator, semver(b));
9
+ }
10
+
11
+ function normalizeModulesList(list, order) {
12
+ const set = new Set(list);
13
+ return (Array.isArray(order) ? order : modules).filter(name => set.has(name));
14
+ }
15
+
16
+ module.exports = {
17
+ compare,
18
+ normalizeModulesList,
19
+ semver,
20
+ };
package/index.js CHANGED
@@ -1,14 +1,15 @@
1
1
  'use strict';
2
- const { coerce, lt, lte } = require('semver');
3
2
  const browserslist = require('browserslist');
3
+ const { compare, normalizeModulesList } = require('./helpers');
4
4
  const data = require('./data');
5
5
  const getModulesListForTargetVersion = require('./get-modules-list-for-target-version');
6
6
  const has = Function.call.bind({}.hasOwnProperty);
7
7
 
8
8
  const mapping = new Map([
9
- ['ios_saf', 'ios'],
10
9
  ['and_chr', 'chrome'],
11
10
  ['and_ff', 'firefox'],
11
+ ['ie_mob', 'ie'],
12
+ ['ios_saf', 'ios'],
12
13
  ]);
13
14
 
14
15
  const validTargets = new Set([
@@ -26,19 +27,11 @@ const validTargets = new Set([
26
27
  'samsung',
27
28
  ]);
28
29
 
29
- function coercedLte(a, b) {
30
- return lte(coerce(a), coerce(b));
31
- }
32
-
33
- function coercedLt(a, b) {
34
- return lt(coerce(a), coerce(b));
35
- }
36
-
37
30
  function normalizeBrowsersList(list) {
38
31
  return list.map(it => {
39
32
  let [engine, version] = it.split(' ');
40
33
  if (mapping.has(engine)) engine = mapping.get(engine);
41
- else if (engine === 'android' && !coercedLte(version, '4.4.4')) engine = 'chrome';
34
+ else if (engine === 'android' && compare(version, '>', '4.4.4')) engine = 'chrome';
42
35
  return [engine, version];
43
36
  }).filter(([engine]) => validTargets.has(engine));
44
37
  }
@@ -46,7 +39,7 @@ function normalizeBrowsersList(list) {
46
39
  function reduceByMinVersion(list) {
47
40
  const targets = new Map();
48
41
  for (const [engine, version] of list) {
49
- if (!targets.has(engine) || coercedLte(version, targets.get(engine))) {
42
+ if (!targets.has(engine) || compare(version, '<=', targets.get(engine))) {
50
43
  targets.set(engine, version);
51
44
  }
52
45
  }
@@ -61,7 +54,7 @@ function checkModule(name, targets) {
61
54
  targets: {},
62
55
  };
63
56
  for (const [engine, version] of targets) {
64
- if (!has(requirements, engine) || coercedLt(version, requirements[engine])) {
57
+ if (!has(requirements, engine) || compare(version, '<', requirements[engine])) {
65
58
  result.required = true;
66
59
  result.targets[engine] = version;
67
60
  }
@@ -85,8 +78,7 @@ function compat({ targets, filter, version }) {
85
78
  else if (typeof filter == 'string') modules = modules.filter(it => it.startsWith(filter));
86
79
 
87
80
  if (version) {
88
- const availableModules = new Set(getModulesListForTargetVersion(version));
89
- modules = modules.filter(name => availableModules.has(name));
81
+ modules = normalizeModulesList(modules, getModulesListForTargetVersion(version));
90
82
  }
91
83
 
92
84
  modules.forEach(key => {
package/package.json CHANGED
@@ -1,19 +1,19 @@
1
1
  {
2
2
  "name": "core-js-compat",
3
3
  "description": "core-js compat",
4
- "version": "3.4.2",
4
+ "version": "3.4.7",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/zloirock/core-js.git"
8
8
  },
9
9
  "main": "index.js",
10
10
  "dependencies": {
11
- "browserslist": "^4.7.3",
11
+ "browserslist": "^4.8.0",
12
12
  "semver": "^6.3.0"
13
13
  },
14
14
  "devDependencies": {
15
15
  "detective": "^5.2.0",
16
- "electron-to-chromium": "^1.3.308",
16
+ "electron-to-chromium": "^1.3.321",
17
17
  "glob": "^7.1.6"
18
18
  },
19
19
  "funding": {