metro 0.63.0 → 0.64.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.
Files changed (90) hide show
  1. package/package.json +22 -22
  2. package/src/Assets.js +8 -2
  3. package/src/Bundler/util.js +17 -10
  4. package/src/Bundler/util.js.flow +13 -12
  5. package/src/Bundler.js +4 -0
  6. package/src/DeltaBundler/DeltaCalculator.js +6 -1
  7. package/src/DeltaBundler/Serializers/baseBytecodeBundle.js +10 -0
  8. package/src/DeltaBundler/Serializers/baseJSBundle.js +5 -0
  9. package/src/DeltaBundler/Serializers/getAllFiles.js +6 -0
  10. package/src/DeltaBundler/Serializers/getAssets.js +4 -0
  11. package/src/DeltaBundler/Serializers/getRamBundleInfo.js +6 -0
  12. package/src/DeltaBundler/Serializers/helpers/bytecode.js +5 -0
  13. package/src/DeltaBundler/Serializers/helpers/getSourceMapInfo.js +5 -0
  14. package/src/DeltaBundler/Serializers/helpers/processBytecodeModules.js +2 -0
  15. package/src/DeltaBundler/Serializers/helpers/processModules.js +2 -0
  16. package/src/DeltaBundler/Serializers/hmrJSBundle.js +8 -2
  17. package/src/DeltaBundler/Serializers/sourceMapGenerator.js +4 -0
  18. package/src/DeltaBundler/Serializers/sourceMapObject.js +4 -0
  19. package/src/DeltaBundler/Transformer.js +16 -0
  20. package/src/DeltaBundler/Worker.js +4 -0
  21. package/src/DeltaBundler/WorkerFarm.js +9 -0
  22. package/src/DeltaBundler/computeDelta.js +5 -0
  23. package/src/DeltaBundler/getTransformCacheKey.js +1 -1
  24. package/src/DeltaBundler/mergeDeltas.js +5 -0
  25. package/src/DeltaBundler/traverseDependencies.js +14 -0
  26. package/src/DeltaBundler.js +6 -1
  27. package/src/HmrServer.js +18 -0
  28. package/src/IncrementalBundler.js +16 -0
  29. package/src/ModuleGraph/node-haste/Package.js +5 -0
  30. package/src/ModuleGraph/node-haste/node-haste.flow.js.flow +0 -2
  31. package/src/ModuleGraph/node-haste/node-haste.js +3 -0
  32. package/src/ModuleGraph/node-haste/node-haste.js.flow +4 -2
  33. package/src/ModuleGraph/output/indexed-ram-bundle.js +10 -0
  34. package/src/ModuleGraph/output/multiple-files-ram-bundle.js +10 -0
  35. package/src/ModuleGraph/output/reverse-dependency-map-references.js +33 -9
  36. package/src/ModuleGraph/output/reverse-dependency-map-references.js.flow +28 -13
  37. package/src/ModuleGraph/output/util.js +59 -25
  38. package/src/ModuleGraph/output/util.js.flow +59 -23
  39. package/src/ModuleGraph/test-helpers.js +74 -2
  40. package/src/ModuleGraph/types.flow.js.flow +13 -8
  41. package/src/ModuleGraph/worker/JsFileWrapping.js +90 -12
  42. package/src/ModuleGraph/worker/JsFileWrapping.js.flow +34 -20
  43. package/src/ModuleGraph/worker/collectDependencies.js +329 -205
  44. package/src/ModuleGraph/worker/collectDependencies.js.flow +397 -209
  45. package/src/ModuleGraph/worker/generate.js.flow +2 -2
  46. package/src/ModuleGraph/worker/generateImportNames.js +2 -1
  47. package/src/ModuleGraph/worker/generateImportNames.js.flow +3 -4
  48. package/src/ModuleGraph/worker/mergeSourceMaps.js +5 -0
  49. package/src/Server/symbolicate.js +14 -0
  50. package/src/Server.js +16 -3
  51. package/src/Server.js.flow +1 -0
  52. package/src/cli-utils.js +4 -0
  53. package/src/cli.js +0 -0
  54. package/src/commands/build.js +10 -0
  55. package/src/commands/build.js.flow +2 -0
  56. package/src/commands/dependencies.js +4 -0
  57. package/src/commands/serve.js +5 -0
  58. package/src/commands/serve.js.flow +2 -0
  59. package/src/index.js +13 -1
  60. package/src/index.js.flow +2 -0
  61. package/src/integration_tests/basic_bundle/import-export/index.js +19 -2
  62. package/src/integration_tests/execBundle.js +2 -2
  63. package/src/integration_tests/metro.config.js +4 -0
  64. package/src/lib/BatchProcessor.js +1 -1
  65. package/src/lib/TerminalReporter.js +10 -0
  66. package/src/lib/attachWebsocketServer.js +5 -1
  67. package/src/lib/bundleToBytecode.js +7 -3
  68. package/src/lib/bundleToString.js +6 -1
  69. package/src/lib/debounceAsyncQueue.js +4 -0
  70. package/src/lib/getAppendScripts.js +2 -0
  71. package/src/lib/getPreludeCode.js +2 -0
  72. package/src/lib/getPrependedScripts.js +11 -0
  73. package/src/lib/logToConsole.js +1 -2
  74. package/src/lib/parseOptionsFromUrl.js +5 -0
  75. package/src/lib/reporting.js +1 -1
  76. package/src/lib/splitBundleOptions.js +1 -1
  77. package/src/lib/transformHelpers.js +19 -3
  78. package/src/lib/transformHelpers.js.flow +4 -4
  79. package/src/node-haste/DependencyGraph/ModuleResolution.js +10 -2
  80. package/src/node-haste/DependencyGraph/ModuleResolution.js.flow +6 -5
  81. package/src/node-haste/DependencyGraph.js +11 -2
  82. package/src/node-haste/DependencyGraph.js.flow +5 -0
  83. package/src/node-haste/Package.js +2 -0
  84. package/src/shared/output/RamBundle/as-assets.js +1 -2
  85. package/src/shared/output/RamBundle/as-indexed-file.js +2 -0
  86. package/src/shared/output/RamBundle/util.js +2 -2
  87. package/src/shared/output/RamBundle.js +9 -0
  88. package/src/shared/output/bundle.js +9 -0
  89. package/src/ModuleGraph/worker/optimizeDependencies.js +0 -122
  90. package/src/ModuleGraph/worker/optimizeDependencies.js.flow +0 -128
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "metro",
3
- "version": "0.63.0",
3
+ "version": "0.64.0",
4
4
  "description": "🚇 The JavaScript bundler for React Native.",
5
5
  "main": "src/index.js",
6
6
  "bin": "src/cli.js",
@@ -29,30 +29,29 @@
29
29
  "debug": "^2.2.0",
30
30
  "denodeify": "^1.2.1",
31
31
  "error-stack-parser": "^2.0.6",
32
- "fbjs": "^1.0.0",
33
32
  "fs-extra": "^1.0.0",
34
33
  "graceful-fs": "^4.1.3",
35
34
  "image-size": "^0.6.0",
36
35
  "invariant": "^2.2.4",
37
- "jest-haste-map": "^26.0.1",
36
+ "jest-haste-map": "^26.5.2",
38
37
  "jest-worker": "^26.0.0",
39
38
  "lodash.throttle": "^4.1.1",
40
- "metro-babel-register": "0.63.0",
41
- "metro-babel-transformer": "0.63.0",
42
- "metro-cache": "0.63.0",
43
- "metro-cache-key": "0.63.0",
44
- "metro-config": "0.63.0",
45
- "metro-core": "0.63.0",
46
- "metro-hermes-compiler": "0.63.0",
47
- "metro-inspector-proxy": "0.63.0",
48
- "metro-minify-uglify": "0.63.0",
49
- "metro-react-native-babel-preset": "0.63.0",
50
- "metro-resolver": "0.63.0",
51
- "metro-runtime": "0.63.0",
52
- "metro-source-map": "0.63.0",
53
- "metro-symbolicate": "0.63.0",
54
- "metro-transform-plugins": "0.63.0",
55
- "metro-transform-worker": "0.63.0",
39
+ "metro-babel-register": "0.64.0",
40
+ "metro-babel-transformer": "0.64.0",
41
+ "metro-cache": "0.64.0",
42
+ "metro-cache-key": "0.64.0",
43
+ "metro-config": "0.64.0",
44
+ "metro-core": "0.64.0",
45
+ "metro-hermes-compiler": "0.64.0",
46
+ "metro-inspector-proxy": "0.64.0",
47
+ "metro-minify-uglify": "0.64.0",
48
+ "metro-react-native-babel-preset": "0.64.0",
49
+ "metro-resolver": "0.64.0",
50
+ "metro-runtime": "0.64.0",
51
+ "metro-source-map": "0.64.0",
52
+ "metro-symbolicate": "0.64.0",
53
+ "metro-transform-plugins": "0.64.0",
54
+ "metro-transform-worker": "0.64.0",
56
55
  "mime-types": "^2.1.27",
57
56
  "mkdirp": "^0.5.1",
58
57
  "node-fetch": "^2.2.0",
@@ -70,9 +69,10 @@
70
69
  "@babel/plugin-transform-flow-strip-types": "^7.0.0",
71
70
  "acorn": "^5.1.2",
72
71
  "dedent": "^0.7.0",
73
- "metro-memory-fs": "0.63.0",
74
- "metro-react-native-babel-preset": "0.63.0",
75
- "metro-react-native-babel-transformer": "0.63.0",
72
+ "jest-snapshot": "^26.5.2",
73
+ "metro-memory-fs": "0.64.0",
74
+ "metro-react-native-babel-preset": "0.64.0",
75
+ "metro-react-native-babel-transformer": "0.64.0",
76
76
  "stack-trace": "^0.0.10"
77
77
  },
78
78
  "license": "MIT"
package/src/Assets.js CHANGED
@@ -55,7 +55,9 @@ function _unsupportedIterableToArray(o, minLen) {
55
55
 
56
56
  function _arrayLikeToArray(arr, len) {
57
57
  if (len == null || len > arr.length) len = arr.length;
58
+
58
59
  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
60
+
59
61
  return arr2;
60
62
  }
61
63
 
@@ -76,6 +78,7 @@ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
76
78
  reject(error);
77
79
  return;
78
80
  }
81
+
79
82
  if (info.done) {
80
83
  resolve(value);
81
84
  } else {
@@ -89,12 +92,15 @@ function _asyncToGenerator(fn) {
89
92
  args = arguments;
90
93
  return new Promise(function(resolve, reject) {
91
94
  var gen = fn.apply(self, args);
95
+
92
96
  function _next(value) {
93
97
  asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
94
98
  }
99
+
95
100
  function _throw(err) {
96
101
  asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
97
102
  }
103
+
98
104
  _next(undefined);
99
105
  });
100
106
  };
@@ -268,10 +274,10 @@ function _getAssetData() {
268
274
  ) {
269
275
  let platform =
270
276
  arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
271
- let publicPath = arguments.length > 4 ? arguments[4] : undefined;
272
- // If the path of the asset is outside of the projectRoot, we don't want to
277
+ let publicPath = arguments.length > 4 ? arguments[4] : undefined; // If the path of the asset is outside of the projectRoot, we don't want to
273
278
  // use `path.join` since this will generate an incorrect URL path. In that
274
279
  // case we just concatenate the publicPath with the relative path.
280
+
275
281
  let assetUrlPath = localPath.startsWith("..")
276
282
  ? publicPath.replace(/\/$/, "") + "/" + path.dirname(localPath)
277
283
  : path.join(publicPath, path.dirname(localPath)); // On Windows, change backslashes to slashes to get proper URL path from file path.
@@ -36,7 +36,9 @@ function _unsupportedIterableToArray(o, minLen) {
36
36
 
37
37
  function _arrayLikeToArray(arr, len) {
38
38
  if (len == null || len > arr.length) len = arr.length;
39
+
39
40
  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
41
+
40
42
  return arr2;
41
43
  }
42
44
 
@@ -47,6 +49,7 @@ function _iterableToArrayLimit(arr, i) {
47
49
  var _n = true;
48
50
  var _d = false;
49
51
  var _e = undefined;
52
+
50
53
  try {
51
54
  for (
52
55
  var _i = arr[Symbol.iterator](), _s;
@@ -54,6 +57,7 @@ function _iterableToArrayLimit(arr, i) {
54
57
  _n = true
55
58
  ) {
56
59
  _arr.push(_s.value);
60
+
57
61
  if (i && _arr.length === i) break;
58
62
  }
59
63
  } catch (err) {
@@ -66,6 +70,7 @@ function _iterableToArrayLimit(arr, i) {
66
70
  if (_d) throw _e;
67
71
  }
68
72
  }
73
+
69
74
  return _arr;
70
75
  }
71
76
 
@@ -73,18 +78,20 @@ function _arrayWithHoles(arr) {
73
78
  if (Array.isArray(arr)) return arr;
74
79
  }
75
80
 
76
- const template = require("@babel/template").default;
77
-
78
81
  const babelTypes = require("@babel/types");
79
82
 
80
83
  const babylon = require("@babel/parser");
81
84
 
82
- const assetPropertyBlacklist = new Set(["files", "fileSystemLocation", "path"]);
85
+ const nullthrows = require("nullthrows");
86
+
87
+ const template = require("@babel/template").default;
88
+
89
+ const assetPropertyBlockList = new Set(["files", "fileSystemLocation", "path"]);
83
90
 
84
91
  function generateAssetCodeFileAst(assetRegistryPath, assetDescriptor) {
85
92
  const properDescriptor = filterObject(
86
93
  assetDescriptor,
87
- assetPropertyBlacklist
94
+ assetPropertyBlockList
88
95
  ); // {...}
89
96
 
90
97
  const descriptorAst = babylon.parseExpression(
@@ -92,7 +99,7 @@ function generateAssetCodeFileAst(assetRegistryPath, assetDescriptor) {
92
99
  );
93
100
  const t = babelTypes; // require('AssetRegistry').registerAsset({...})
94
101
 
95
- const buildRequire = template(`
102
+ const buildRequire = template.statement(`
96
103
  module.exports = require(ASSET_REGISTRY_PATH).registerAsset(DESCRIPTOR_AST)
97
104
  `);
98
105
  return t.file(
@@ -133,9 +140,9 @@ function generateRemoteAssetCodeFileAst(
133
140
 
134
141
  const URI = t.stringLiteral(remoteServer); // Size numbers.
135
142
 
136
- const WIDTH = t.numericLiteral(assetDescriptor.width);
137
- const HEIGHT = t.numericLiteral(assetDescriptor.height);
138
- const buildRequire = template(`
143
+ const WIDTH = t.numericLiteral(nullthrows(assetDescriptor.width));
144
+ const HEIGHT = t.numericLiteral(nullthrows(assetDescriptor.height));
145
+ const buildRequire = template.statement(`
139
146
  module.exports = {
140
147
  "width": WIDTH,
141
148
  "height": HEIGHT,
@@ -170,10 +177,10 @@ function isAssetTypeAnImage(type) {
170
177
  );
171
178
  }
172
179
 
173
- function filterObject(object, blacklist) {
180
+ function filterObject(object, blockList) {
174
181
  const copied = Object.assign({}, object);
175
182
 
176
- for (const key of blacklist) {
183
+ for (const key of blockList) {
177
184
  delete copied[key];
178
185
  }
179
186
 
@@ -10,13 +10,14 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- const template = require('@babel/template').default;
14
13
  const babelTypes = require('@babel/types');
15
14
  const babylon = require('@babel/parser');
15
+ const nullthrows = require('nullthrows');
16
+ const template = require('@babel/template').default;
16
17
 
17
18
  import type {AssetDataFiltered, AssetDataWithoutFiles} from '../Assets';
18
19
  import type {ModuleTransportLike} from '../shared/types.flow';
19
- import type {Ast} from '@babel/core';
20
+ import type {File} from '@babel/types';
20
21
 
21
22
  // Structure of the object: dir.name.scale = asset
22
23
  export type RemoteFileMap = {
@@ -47,15 +48,15 @@ type SubTree<T: ModuleTransportLike> = (
47
48
  moduleTransportsByPath: Map<string, T>,
48
49
  ) => Iterable<number>;
49
50
 
50
- const assetPropertyBlacklist = new Set(['files', 'fileSystemLocation', 'path']);
51
+ const assetPropertyBlockList = new Set(['files', 'fileSystemLocation', 'path']);
51
52
 
52
53
  function generateAssetCodeFileAst(
53
54
  assetRegistryPath: string,
54
55
  assetDescriptor: AssetDataWithoutFiles,
55
- ): Ast {
56
+ ): File {
56
57
  const properDescriptor = filterObject(
57
58
  assetDescriptor,
58
- assetPropertyBlacklist,
59
+ assetPropertyBlockList,
59
60
  );
60
61
 
61
62
  // {...}
@@ -65,7 +66,7 @@ function generateAssetCodeFileAst(
65
66
  const t = babelTypes;
66
67
 
67
68
  // require('AssetRegistry').registerAsset({...})
68
- const buildRequire = template(`
69
+ const buildRequire = template.statement(`
69
70
  module.exports = require(ASSET_REGISTRY_PATH).registerAsset(DESCRIPTOR_AST)
70
71
  `);
71
72
 
@@ -89,7 +90,7 @@ function generateRemoteAssetCodeFileAst(
89
90
  assetDescriptor: AssetDataWithoutFiles,
90
91
  remoteServer: string,
91
92
  remoteFileMap: RemoteFileMap,
92
- ): ?Ast {
93
+ ): ?File {
93
94
  const t = babelTypes;
94
95
 
95
96
  const file = remoteFileMap[assetDescriptor.fileSystemLocation];
@@ -111,10 +112,10 @@ function generateRemoteAssetCodeFileAst(
111
112
  const URI = t.stringLiteral(remoteServer);
112
113
 
113
114
  // Size numbers.
114
- const WIDTH = t.numericLiteral(assetDescriptor.width);
115
- const HEIGHT = t.numericLiteral(assetDescriptor.height);
115
+ const WIDTH = t.numericLiteral(nullthrows(assetDescriptor.width));
116
+ const HEIGHT = t.numericLiteral(nullthrows(assetDescriptor.height));
116
117
 
117
- const buildRequire = template(`
118
+ const buildRequire = template.statement(`
118
119
  module.exports = {
119
120
  "width": WIDTH,
120
121
  "height": HEIGHT,
@@ -153,10 +154,10 @@ function isAssetTypeAnImage(type: string): boolean {
153
154
 
154
155
  function filterObject(
155
156
  object: AssetDataWithoutFiles,
156
- blacklist: Set<string>,
157
+ blockList: Set<string>,
157
158
  ): AssetDataFiltered {
158
159
  const copied = Object.assign({}, object);
159
- for (const key of blacklist) {
160
+ for (const key of blockList) {
160
161
  delete copied[key];
161
162
  }
162
163
  return copied;
package/src/Bundler.js CHANGED
@@ -17,6 +17,7 @@ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
17
17
  reject(error);
18
18
  return;
19
19
  }
20
+
20
21
  if (info.done) {
21
22
  resolve(value);
22
23
  } else {
@@ -30,12 +31,15 @@ function _asyncToGenerator(fn) {
30
31
  args = arguments;
31
32
  return new Promise(function(resolve, reject) {
32
33
  var gen = fn.apply(self, args);
34
+
33
35
  function _next(value) {
34
36
  asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
35
37
  }
38
+
36
39
  function _throw(err) {
37
40
  asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
38
41
  }
42
+
39
43
  _next(undefined);
40
44
  });
41
45
  };
@@ -17,6 +17,7 @@ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
17
17
  reject(error);
18
18
  return;
19
19
  }
20
+
20
21
  if (info.done) {
21
22
  resolve(value);
22
23
  } else {
@@ -30,12 +31,15 @@ function _asyncToGenerator(fn) {
30
31
  args = arguments;
31
32
  return new Promise(function(resolve, reject) {
32
33
  var gen = fn.apply(self, args);
34
+
33
35
  function _next(value) {
34
36
  asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
35
37
  }
38
+
36
39
  function _throw(err) {
37
40
  asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
38
41
  }
42
+
39
43
  _next(undefined);
40
44
  });
41
45
  };
@@ -52,6 +56,7 @@ function _defineProperty(obj, key, value) {
52
56
  } else {
53
57
  obj[key] = value;
54
58
  }
59
+
55
60
  return obj;
56
61
  }
57
62
 
@@ -62,13 +67,13 @@ const _require = require("./traverseDependencies"),
62
67
 
63
68
  const _require2 = require("events"),
64
69
  EventEmitter = _require2.EventEmitter;
65
-
66
70
  /**
67
71
  * This class is in charge of calculating the delta of changed modules that
68
72
  * happen between calls. To do so, it subscribes to file changes, so it can
69
73
  * traverse the files that have been changed between calls and avoid having to
70
74
  * traverse the whole dependency tree for trivial small changes.
71
75
  */
76
+
72
77
  class DeltaCalculator extends EventEmitter {
73
78
  constructor(entryPoints, dependencyGraph, options) {
74
79
  super();
@@ -31,6 +31,7 @@ function _iterableToArrayLimit(arr, i) {
31
31
  var _n = true;
32
32
  var _d = false;
33
33
  var _e = undefined;
34
+
34
35
  try {
35
36
  for (
36
37
  var _i = arr[Symbol.iterator](), _s;
@@ -38,6 +39,7 @@ function _iterableToArrayLimit(arr, i) {
38
39
  _n = true
39
40
  ) {
40
41
  _arr.push(_s.value);
42
+
41
43
  if (i && _arr.length === i) break;
42
44
  }
43
45
  } catch (err) {
@@ -50,6 +52,7 @@ function _iterableToArrayLimit(arr, i) {
50
52
  if (_d) throw _e;
51
53
  }
52
54
  }
55
+
53
56
  return _arr;
54
57
  }
55
58
 
@@ -59,6 +62,7 @@ function _arrayWithHoles(arr) {
59
62
 
60
63
  function ownKeys(object, enumerableOnly) {
61
64
  var keys = Object.keys(object);
65
+
62
66
  if (Object.getOwnPropertySymbols) {
63
67
  var symbols = Object.getOwnPropertySymbols(object);
64
68
  if (enumerableOnly)
@@ -67,12 +71,14 @@ function ownKeys(object, enumerableOnly) {
67
71
  });
68
72
  keys.push.apply(keys, symbols);
69
73
  }
74
+
70
75
  return keys;
71
76
  }
72
77
 
73
78
  function _objectSpread(target) {
74
79
  for (var i = 1; i < arguments.length; i++) {
75
80
  var source = arguments[i] != null ? arguments[i] : {};
81
+
76
82
  if (i % 2) {
77
83
  ownKeys(Object(source), true).forEach(function(key) {
78
84
  _defineProperty(target, key, source[key]);
@@ -89,6 +95,7 @@ function _objectSpread(target) {
89
95
  });
90
96
  }
91
97
  }
98
+
92
99
  return target;
93
100
  }
94
101
 
@@ -103,6 +110,7 @@ function _defineProperty(obj, key, value) {
103
110
  } else {
104
111
  obj[key] = value;
105
112
  }
113
+
106
114
  return obj;
107
115
  }
108
116
 
@@ -142,7 +150,9 @@ function _arrayWithoutHoles(arr) {
142
150
 
143
151
  function _arrayLikeToArray(arr, len) {
144
152
  if (len == null || len > arr.length) len = arr.length;
153
+
145
154
  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
155
+
146
156
  return arr2;
147
157
  }
148
158
 
@@ -60,7 +60,9 @@ function _unsupportedIterableToArray(o, minLen) {
60
60
 
61
61
  function _arrayLikeToArray(arr, len) {
62
62
  if (len == null || len > arr.length) len = arr.length;
63
+
63
64
  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
65
+
64
66
  return arr2;
65
67
  }
66
68
 
@@ -71,6 +73,7 @@ function _iterableToArrayLimit(arr, i) {
71
73
  var _n = true;
72
74
  var _d = false;
73
75
  var _e = undefined;
76
+
74
77
  try {
75
78
  for (
76
79
  var _i = arr[Symbol.iterator](), _s;
@@ -78,6 +81,7 @@ function _iterableToArrayLimit(arr, i) {
78
81
  _n = true
79
82
  ) {
80
83
  _arr.push(_s.value);
84
+
81
85
  if (i && _arr.length === i) break;
82
86
  }
83
87
  } catch (err) {
@@ -90,6 +94,7 @@ function _iterableToArrayLimit(arr, i) {
90
94
  if (_d) throw _e;
91
95
  }
92
96
  }
97
+
93
98
  return _arr;
94
99
  }
95
100
 
@@ -45,7 +45,9 @@ function _arrayWithoutHoles(arr) {
45
45
 
46
46
  function _arrayLikeToArray(arr, len) {
47
47
  if (len == null || len > arr.length) len = arr.length;
48
+
48
49
  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
50
+
49
51
  return arr2;
50
52
  }
51
53
 
@@ -57,6 +59,7 @@ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
57
59
  reject(error);
58
60
  return;
59
61
  }
62
+
60
63
  if (info.done) {
61
64
  resolve(value);
62
65
  } else {
@@ -70,12 +73,15 @@ function _asyncToGenerator(fn) {
70
73
  args = arguments;
71
74
  return new Promise(function(resolve, reject) {
72
75
  var gen = fn.apply(self, args);
76
+
73
77
  function _next(value) {
74
78
  asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
75
79
  }
80
+
76
81
  function _throw(err) {
77
82
  asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
78
83
  }
84
+
79
85
  _next(undefined);
80
86
  });
81
87
  };
@@ -17,6 +17,7 @@ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
17
17
  reject(error);
18
18
  return;
19
19
  }
20
+
20
21
  if (info.done) {
21
22
  resolve(value);
22
23
  } else {
@@ -30,12 +31,15 @@ function _asyncToGenerator(fn) {
30
31
  args = arguments;
31
32
  return new Promise(function(resolve, reject) {
32
33
  var gen = fn.apply(self, args);
34
+
33
35
  function _next(value) {
34
36
  asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
35
37
  }
38
+
36
39
  function _throw(err) {
37
40
  asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
38
41
  }
42
+
39
43
  _next(undefined);
40
44
  });
41
45
  };
@@ -45,7 +45,9 @@ function _arrayWithoutHoles(arr) {
45
45
 
46
46
  function _arrayLikeToArray(arr, len) {
47
47
  if (len == null || len > arr.length) len = arr.length;
48
+
48
49
  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
50
+
49
51
  return arr2;
50
52
  }
51
53
 
@@ -57,6 +59,7 @@ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
57
59
  reject(error);
58
60
  return;
59
61
  }
62
+
60
63
  if (info.done) {
61
64
  resolve(value);
62
65
  } else {
@@ -70,12 +73,15 @@ function _asyncToGenerator(fn) {
70
73
  args = arguments;
71
74
  return new Promise(function(resolve, reject) {
72
75
  var gen = fn.apply(self, args);
76
+
73
77
  function _next(value) {
74
78
  asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
75
79
  }
80
+
76
81
  function _throw(err) {
77
82
  asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
78
83
  }
84
+
79
85
  _next(undefined);
80
86
  });
81
87
  };
@@ -11,6 +11,7 @@
11
11
 
12
12
  function ownKeys(object, enumerableOnly) {
13
13
  var keys = Object.keys(object);
14
+
14
15
  if (Object.getOwnPropertySymbols) {
15
16
  var symbols = Object.getOwnPropertySymbols(object);
16
17
  if (enumerableOnly)
@@ -19,12 +20,14 @@ function ownKeys(object, enumerableOnly) {
19
20
  });
20
21
  keys.push.apply(keys, symbols);
21
22
  }
23
+
22
24
  return keys;
23
25
  }
24
26
 
25
27
  function _objectSpread(target) {
26
28
  for (var i = 1; i < arguments.length; i++) {
27
29
  var source = arguments[i] != null ? arguments[i] : {};
30
+
28
31
  if (i % 2) {
29
32
  ownKeys(Object(source), true).forEach(function(key) {
30
33
  _defineProperty(target, key, source[key]);
@@ -41,6 +44,7 @@ function _objectSpread(target) {
41
44
  });
42
45
  }
43
46
  }
47
+
44
48
  return target;
45
49
  }
46
50
 
@@ -55,6 +59,7 @@ function _defineProperty(obj, key, value) {
55
59
  } else {
56
60
  obj[key] = value;
57
61
  }
62
+
58
63
  return obj;
59
64
  }
60
65
 
@@ -11,6 +11,7 @@
11
11
 
12
12
  function ownKeys(object, enumerableOnly) {
13
13
  var keys = Object.keys(object);
14
+
14
15
  if (Object.getOwnPropertySymbols) {
15
16
  var symbols = Object.getOwnPropertySymbols(object);
16
17
  if (enumerableOnly)
@@ -19,12 +20,14 @@ function ownKeys(object, enumerableOnly) {
19
20
  });
20
21
  keys.push.apply(keys, symbols);
21
22
  }
23
+
22
24
  return keys;
23
25
  }
24
26
 
25
27
  function _objectSpread(target) {
26
28
  for (var i = 1; i < arguments.length; i++) {
27
29
  var source = arguments[i] != null ? arguments[i] : {};
30
+
28
31
  if (i % 2) {
29
32
  ownKeys(Object(source), true).forEach(function(key) {
30
33
  _defineProperty(target, key, source[key]);
@@ -41,6 +44,7 @@ function _objectSpread(target) {
41
44
  });
42
45
  }
43
46
  }
47
+
44
48
  return target;
45
49
  }
46
50
 
@@ -55,6 +59,7 @@ function _defineProperty(obj, key, value) {
55
59
  } else {
56
60
  obj[key] = value;
57
61
  }
62
+
58
63
  return obj;
59
64
  }
60
65
 
@@ -45,7 +45,9 @@ function _arrayWithoutHoles(arr) {
45
45
 
46
46
  function _arrayLikeToArray(arr, len) {
47
47
  if (len == null || len > arr.length) len = arr.length;
48
+
48
49
  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
50
+
49
51
  return arr2;
50
52
  }
51
53
 
@@ -45,7 +45,9 @@ function _arrayWithoutHoles(arr) {
45
45
 
46
46
  function _arrayLikeToArray(arr, len) {
47
47
  if (len == null || len > arr.length) len = arr.length;
48
+
48
49
  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
50
+
49
51
  return arr2;
50
52
  }
51
53