core-js-compat 3.5.0 → 3.6.3

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/external.json ADDED
@@ -0,0 +1,12 @@
1
+ {
2
+ "modules": {
3
+ "chrome": "61",
4
+ "edge": "16",
5
+ "firefox": "60",
6
+ "ios": "10.3",
7
+ "opera": "48",
8
+ "opera_mobile": "45",
9
+ "safari": "10.1",
10
+ "samsung": "8.0"
11
+ }
12
+ }
package/helpers.js CHANGED
@@ -1,5 +1,6 @@
1
1
  'use strict';
2
- const { coerce: semver, cmp } = require('semver');
2
+ const cmp = require('semver/functions/cmp');
3
+ const semver = require('semver/functions/coerce');
3
4
 
4
5
  const has = Function.call.bind({}.hasOwnProperty);
5
6
 
@@ -12,9 +13,17 @@ function intersection(list, order) {
12
13
  return order.filter(name => set.has(name));
13
14
  }
14
15
 
16
+ function sortObjectByKey(object, fn) {
17
+ return Object.keys(object).sort(fn).reduce((memo, key) => {
18
+ memo[key] = object[key];
19
+ return memo;
20
+ }, {});
21
+ }
22
+
15
23
  module.exports = {
16
24
  compare,
17
25
  has,
18
26
  intersection,
19
27
  semver,
28
+ sortObjectByKey,
20
29
  };
@@ -342,5 +342,9 @@
342
342
  "esnext.object.iterate-entries",
343
343
  "esnext.object.iterate-keys",
344
344
  "esnext.object.iterate-values"
345
+ ],
346
+ "3.6": [
347
+ "es.regexp.sticky",
348
+ "es.regexp.test"
345
349
  ]
346
350
  }
package/modules.json CHANGED
@@ -135,6 +135,8 @@
135
135
  "es.regexp.constructor",
136
136
  "es.regexp.exec",
137
137
  "es.regexp.flags",
138
+ "es.regexp.sticky",
139
+ "es.regexp.test",
138
140
  "es.regexp.to-string",
139
141
  "es.set",
140
142
  "es.string.code-point-at",
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.5.0",
4
+ "version": "3.6.3",
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.8.2",
12
- "semver": "^6.3.0"
11
+ "browserslist": "^4.8.3",
12
+ "semver": "7.0.0"
13
13
  },
14
14
  "devDependencies": {
15
15
  "detective": "^5.2.0",
16
- "electron-to-chromium": "^1.3.322",
16
+ "electron-to-chromium": "^1.3.327",
17
17
  "glob": "^7.1.6"
18
18
  },
19
19
  "funding": {
@@ -0,0 +1,72 @@
1
+ 'use strict';
2
+ const browserslist = require('browserslist');
3
+ const { compare, has } = require('./helpers');
4
+ const external = require('./external');
5
+
6
+ const aliases = new Map([
7
+ ['and_chr', 'chrome'],
8
+ ['and_ff', 'firefox'],
9
+ ['ie_mob', 'ie'],
10
+ ['ios_saf', 'ios'],
11
+ ['op_mob', 'opera_mobile'],
12
+ ]);
13
+
14
+ const validTargets = new Set([
15
+ 'android',
16
+ 'chrome',
17
+ 'edge',
18
+ 'electron',
19
+ 'firefox',
20
+ 'ie',
21
+ 'ios',
22
+ 'node',
23
+ 'opera',
24
+ 'opera_mobile',
25
+ 'phantom',
26
+ 'safari',
27
+ 'samsung',
28
+ ]);
29
+
30
+ module.exports = function (targets) {
31
+ if (typeof targets !== 'object' || Array.isArray(targets)) {
32
+ targets = { browsers: targets };
33
+ }
34
+
35
+ const { browsers, esmodules, node, ...rest } = targets;
36
+ const list = Object.entries(rest);
37
+
38
+ if (browsers) {
39
+ list.push(...browserslist(browsers).map(it => it.split(' ')));
40
+ }
41
+ if (esmodules) {
42
+ list.push(...Object.entries(external.modules));
43
+ }
44
+ if (node) {
45
+ list.push(['node', node === 'current' ? process.versions.node : node]);
46
+ }
47
+
48
+ const normalized = list.map(([engine, version]) => {
49
+ if (has(browserslist.aliases, engine)) {
50
+ engine = browserslist.aliases[engine];
51
+ }
52
+ if (aliases.has(engine)) {
53
+ engine = aliases.get(engine);
54
+ } else if (engine === 'android' && compare(version, '>', '4.4.4')) {
55
+ engine = 'chrome';
56
+ }
57
+ return [engine, String(version)];
58
+ }).filter(([engine]) => {
59
+ return validTargets.has(engine);
60
+ }).sort(([a], [b]) => {
61
+ return a < b ? -1 : a > b ? 1 : 0;
62
+ });
63
+
64
+ const reducedByMinVersion = new Map();
65
+ for (const [engine, version] of normalized) {
66
+ if (!reducedByMinVersion.has(engine) || compare(version, '<=', reducedByMinVersion.get(engine))) {
67
+ reducedByMinVersion.set(engine, version);
68
+ }
69
+ }
70
+
71
+ return reducedByMinVersion;
72
+ };