Fixture: Legacy JSX Runtimes (#20012)
* Fixture: Legacy JSX Runtimes * Add more comments
Dan Abramov committed
Oct 14, 2020 at 18:28 UTC
6d50a9d090a2a672fc3dea5ce77a3a05332a6caa
43 files changed
+15740
-1
fixtures/legacy-jsx-runtimes/README.md
new
+12
@@ -0,0 +1,12 @@
1
+# Legacy JSX Runtimes
2
+
3
+This is an internal testing fixture for the special JSX runtime versions released for 0.14, 15, and 16.
4
+
5
+They are checked into the corresponding `react-*/cjs/*` folders.
6
+
7
+Run the full regression suite:
8
+
9
+```
10
+yarn
11
+yarn test
12
+```
fixtures/legacy-jsx-runtimes/babel.config.js
new
+12
@@ -0,0 +1,12 @@
1
+module.exports = {
2
+ presets: [
3
+ [
4
+ '@babel/react',
5
+ {
6
+ runtime: 'automatic',
7
+ development: process.env.BABEL_ENV === 'development',
8
+ },
9
+ ],
10
+ ],
11
+ plugins: ['@babel/plugin-transform-modules-commonjs'],
12
+};
fixtures/legacy-jsx-runtimes/lint-runtimes.js
new
+63
@@ -0,0 +1,63 @@
1
+/**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @emails react-core
8
+ */
9
+
10
+'use strict';
11
+
12
+const path = require('path');
13
+
14
+const {ESLint} = require('eslint');
15
+
16
+function getESLintInstance(format) {
17
+ return new ESLint({
18
+ useEslintrc: false,
19
+ overrideConfigFile:
20
+ __dirname + `../../../scripts/rollup/validate/eslintrc.${format}.js`,
21
+ ignore: false,
22
+ });
23
+}
24
+
25
+const esLints = {
26
+ cjs: getESLintInstance('cjs'),
27
+};
28
+
29
+// Performs sanity checks on bundles *built* by Rollup.
30
+// Helps catch Rollup regressions.
31
+async function lint(folder) {
32
+ console.log(`Linting ` + folder);
33
+ const eslint = esLints.cjs;
34
+
35
+ const results = await eslint.lintFiles([
36
+ __dirname + '/' + folder + '/cjs/react-jsx-dev-runtime.development.js',
37
+ __dirname + '/' + folder + '/cjs/react-jsx-dev-runtime.production.min.js',
38
+ __dirname + '/' + folder + '/cjs/react-jsx-runtime.development.js',
39
+ __dirname + '/' + folder + '/cjs/react-jsx-runtime.production.min.js',
40
+ ]);
41
+ if (
42
+ results.some(result => result.errorCount > 0 || result.warningCount > 0)
43
+ ) {
44
+ process.exitCode = 1;
45
+ console.log(`Failed`);
46
+ const formatter = await eslint.loadFormatter('stylish');
47
+ const resultText = formatter.format(results);
48
+ console.log(resultText);
49
+ }
50
+}
51
+
52
+async function lintEverything() {
53
+ console.log(`Linting known bundles...`);
54
+ await lint('react-14');
55
+ await lint('react-15');
56
+ await lint('react-16');
57
+ await lint('react-17');
58
+}
59
+
60
+lintEverything().catch(error => {
61
+ process.exitCode = 1;
62
+ console.error(error);
63
+});
fixtures/legacy-jsx-runtimes/package.json
new
+19
@@ -0,0 +1,19 @@
1
+{
2
+ "dependencies": {
3
+ "@babel/plugin-transform-modules-commonjs": "^7.10.4",
4
+ "@babel/preset-react": "^7.10.4",
5
+ "jest": "^26.5.3"
6
+ },
7
+ "jest": {
8
+ "setupFilesAfterEnv": ["./setupTests.js"]
9
+ },
10
+ "scripts": {
11
+ "install-all": "cd react-14 && yarn && cd ../react-15 && yarn && cd ../react-16 && yarn && cd ../react-17 && yarn && cd ..",
12
+ "lint": "node lint-runtimes.js",
13
+ "pretest": "yarn install-all && yarn lint",
14
+ "test-jsxdev-dev": "BABEL_ENV=development NODE_ENV=development jest",
15
+ "test-jsx-dev": "BABEL_ENV=production NODE_ENV=development jest",
16
+ "test-jsx-prod": "BABEL_ENV=production NODE_ENV=production jest",
17
+ "test": "yarn test-jsxdev-dev && yarn test-jsx-dev && yarn test-jsx-prod"
18
+ }
19
+}
fixtures/legacy-jsx-runtimes/react-14/cjs/react-jsx-dev-runtime.development.js
new
+861
@@ -0,0 +1,861 @@
1
+/** @license React v0.14.10
2
+ * react-jsx-dev-runtime.development.js
3
+ *
4
+ * Copyright (c) Facebook, Inc. and its affiliates.
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */
9
+
10
+'use strict';
11
+
12
+if (process.env.NODE_ENV !== "production") {
13
+ (function() {
14
+'use strict';
15
+
16
+var React = require('react');
17
+
18
+// ATTENTION
19
+// When adding new symbols to this file,
20
+// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'
21
+// The Symbol used to tag the ReactElement-like types. If there is no native Symbol
22
+// nor polyfill, then a plain number is used for performance.
23
+var REACT_ELEMENT_TYPE = 0xeac7;
24
+var REACT_PORTAL_TYPE = 0xeaca;
25
+exports.Fragment = 0xeacb;
26
+var REACT_STRICT_MODE_TYPE = 0xeacc;
27
+var REACT_PROFILER_TYPE = 0xead2;
28
+var REACT_PROVIDER_TYPE = 0xeacd;
29
+var REACT_CONTEXT_TYPE = 0xeace;
30
+var REACT_FORWARD_REF_TYPE = 0xead0;
31
+var REACT_SUSPENSE_TYPE = 0xead1;
32
+var REACT_SUSPENSE_LIST_TYPE = 0xead8;
33
+var REACT_MEMO_TYPE = 0xead3;
34
+var REACT_LAZY_TYPE = 0xead4;
35
+var REACT_BLOCK_TYPE = 0xead9;
36
+var REACT_SERVER_BLOCK_TYPE = 0xeada;
37
+var REACT_FUNDAMENTAL_TYPE = 0xead5;
38
+var REACT_SCOPE_TYPE = 0xead7;
39
+var REACT_OPAQUE_ID_TYPE = 0xeae0;
40
+var REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;
41
+var REACT_OFFSCREEN_TYPE = 0xeae2;
42
+var REACT_LEGACY_HIDDEN_TYPE = 0xeae3;
43
+
44
+if (typeof Symbol === 'function' && Symbol.for) {
45
+ var symbolFor = Symbol.for;
46
+ REACT_ELEMENT_TYPE = symbolFor('react.element');
47
+ REACT_PORTAL_TYPE = symbolFor('react.portal');
48
+ exports.Fragment = symbolFor('react.fragment');
49
+ REACT_STRICT_MODE_TYPE = symbolFor('react.strict_mode');
50
+ REACT_PROFILER_TYPE = symbolFor('react.profiler');
51
+ REACT_PROVIDER_TYPE = symbolFor('react.provider');
52
+ REACT_CONTEXT_TYPE = symbolFor('react.context');
53
+ REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');
54
+ REACT_SUSPENSE_TYPE = symbolFor('react.suspense');
55
+ REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');
56
+ REACT_MEMO_TYPE = symbolFor('react.memo');
57
+ REACT_LAZY_TYPE = symbolFor('react.lazy');
58
+ REACT_BLOCK_TYPE = symbolFor('react.block');
59
+ REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block');
60
+ REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental');
61
+ REACT_SCOPE_TYPE = symbolFor('react.scope');
62
+ REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id');
63
+ REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');
64
+ REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');
65
+ REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');
66
+}
67
+
68
+var MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
69
+var FAUX_ITERATOR_SYMBOL = '@@iterator';
70
+function getIteratorFn(maybeIterable) {
71
+ if (maybeIterable === null || typeof maybeIterable !== 'object') {
72
+ return null;
73
+ }
74
+
75
+ var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];
76
+
77
+ if (typeof maybeIterator === 'function') {
78
+ return maybeIterator;
79
+ }
80
+
81
+ return null;
82
+}
83
+
84
+function error(format) {
85
+ {
86
+ for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
87
+ args[_key2 - 1] = arguments[_key2];
88
+ }
89
+
90
+ printWarning('error', format, args);
91
+ }
92
+}
93
+
94
+function printWarning(level, format, args) {
95
+ // When changing this logic, you might want to also
96
+ // update consoleWithStackDev.www.js as well.
97
+ {
98
+ var stack = '';
99
+
100
+
101
+ if (stack !== '') {
102
+ format += '%s';
103
+ args = args.concat([stack]);
104
+ }
105
+
106
+ var argsWithFormat = args.map(function (item) {
107
+ return '' + item;
108
+ }); // Careful: RN currently depends on this prefix
109
+
110
+ argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it
111
+ // breaks IE9: https://github.com/facebook/react/issues/13610
112
+ // eslint-disable-next-line react-internal/no-production-logging
113
+
114
+ Function.prototype.apply.call(console[level], console, argsWithFormat);
115
+ }
116
+}
117
+
118
+// Filter certain DOM attributes (e.g. src, href) if their values are empty strings.
119
+
120
+var enableScopeAPI = false; // Experimental Create Event Handle API.
121
+
122
+function isValidElementType(type) {
123
+ if (typeof type === 'string' || typeof type === 'function') {
124
+ return true;
125
+ } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).
126
+
127
+
128
+ if (type === exports.Fragment || type === REACT_PROFILER_TYPE || type === REACT_DEBUG_TRACING_MODE_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI ) {
129
+ return true;
130
+ }
131
+
132
+ if (typeof type === 'object' && type !== null) {
133
+ if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_BLOCK_TYPE || type[0] === REACT_SERVER_BLOCK_TYPE) {
134
+ return true;
135
+ }
136
+ }
137
+
138
+ return false;
139
+}
140
+var BEFORE_SLASH_RE = /^(.*)[\\\/]/;
141
+function describeComponentFrame (name, source, ownerName) {
142
+ var sourceInfo = '';
143
+
144
+ if (source) {
145
+ var path = source.fileName;
146
+ var fileName = path.replace(BEFORE_SLASH_RE, '');
147
+
148
+ {
149
+ // In DEV, include code for a common special case:
150
+ // prefer "folder/index.js" instead of just "index.js".
151
+ if (/^index\./.test(fileName)) {
152
+ var match = path.match(BEFORE_SLASH_RE);
153
+
154
+ if (match) {
155
+ var pathBeforeSlash = match[1];
156
+
157
+ if (pathBeforeSlash) {
158
+ var folderName = pathBeforeSlash.replace(BEFORE_SLASH_RE, '');
159
+ fileName = folderName + '/' + fileName;
160
+ }
161
+ }
162
+ }
163
+ }
164
+
165
+ sourceInfo = ' (at ' + fileName + ':' + source.lineNumber + ')';
166
+ } else if (ownerName) {
167
+ sourceInfo = ' (created by ' + ownerName + ')';
168
+ }
169
+
170
+ return '\n in ' + (name || 'Unknown') + sourceInfo;
171
+}
172
+
173
+var Resolved = 1;
174
+function refineResolvedLazyComponent(lazyComponent) {
175
+ return lazyComponent._status === Resolved ? lazyComponent._result : null;
176
+}
177
+
178
+function getWrappedName(outerType, innerType, wrapperName) {
179
+ var functionName = innerType.displayName || innerType.name || '';
180
+ return outerType.displayName || (functionName !== '' ? wrapperName + "(" + functionName + ")" : wrapperName);
181
+}
182
+
183
+function getComponentName(type) {
184
+ if (type == null) {
185
+ // Host root, text node or just invalid type.
186
+ return null;
187
+ }
188
+
189
+ {
190
+ if (typeof type.tag === 'number') {
191
+ error('Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');
192
+ }
193
+ }
194
+
195
+ if (typeof type === 'function') {
196
+ return type.displayName || type.name || null;
197
+ }
198
+
199
+ if (typeof type === 'string') {
200
+ return type;
201
+ }
202
+
203
+ switch (type) {
204
+ case exports.Fragment:
205
+ return 'Fragment';
206
+
207
+ case REACT_PORTAL_TYPE:
208
+ return 'Portal';
209
+
210
+ case REACT_PROFILER_TYPE:
211
+ return "Profiler";
212
+
213
+ case REACT_STRICT_MODE_TYPE:
214
+ return 'StrictMode';
215
+
216
+ case REACT_SUSPENSE_TYPE:
217
+ return 'Suspense';
218
+
219
+ case REACT_SUSPENSE_LIST_TYPE:
220
+ return 'SuspenseList';
221
+ }
222
+
223
+ if (typeof type === 'object') {
224
+ switch (type.$$typeof) {
225
+ case REACT_CONTEXT_TYPE:
226
+ return 'Context.Consumer';
227
+
228
+ case REACT_PROVIDER_TYPE:
229
+ return 'Context.Provider';
230
+
231
+ case REACT_FORWARD_REF_TYPE:
232
+ return getWrappedName(type, type.render, 'ForwardRef');
233
+
234
+ case REACT_MEMO_TYPE:
235
+ return getComponentName(type.type);
236
+
237
+ case REACT_BLOCK_TYPE:
238
+ return getComponentName(type.render);
239
+
240
+ case REACT_LAZY_TYPE:
241
+ {
242
+ var thenable = type;
243
+ var resolvedThenable = refineResolvedLazyComponent(thenable);
244
+
245
+ if (resolvedThenable) {
246
+ return getComponentName(resolvedThenable);
247
+ }
248
+
249
+ break;
250
+ }
251
+ }
252
+ }
253
+
254
+ return null;
255
+}
256
+var loggedTypeFailures = {};
257
+var currentlyValidatingElement = null;
258
+
259
+function setCurrentlyValidatingElement(element) {
260
+ currentlyValidatingElement = element;
261
+}
262
+
263
+function checkPropTypes(typeSpecs, values, location, componentName, element) {
264
+ {
265
+ // $FlowFixMe This is okay but Flow doesn't know it.
266
+ var has = Function.call.bind(Object.prototype.hasOwnProperty);
267
+
268
+ for (var typeSpecName in typeSpecs) {
269
+ if (has(typeSpecs, typeSpecName)) {
270
+ var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to
271
+ // fail the render phase where it didn't fail before. So we log it.
272
+ // After these have been cleaned up, we'll let them throw.
273
+
274
+ try {
275
+ // This is intentionally an invariant that gets caught. It's the same
276
+ // behavior as without this statement except with a better message.
277
+ if (typeof typeSpecs[typeSpecName] !== 'function') {
278
+ var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');
279
+ err.name = 'Invariant Violation';
280
+ throw err;
281
+ }
282
+
283
+ error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');
284
+ } catch (ex) {
285
+ error$1 = ex;
286
+ }
287
+
288
+ if (error$1 && !(error$1 instanceof Error)) {
289
+ setCurrentlyValidatingElement(element);
290
+
291
+ error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);
292
+
293
+ setCurrentlyValidatingElement(null);
294
+ }
295
+
296
+ if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {
297
+ // Only monitor this failure once because there tends to be a lot of the
298
+ // same error.
299
+ loggedTypeFailures[error$1.message] = true;
300
+ setCurrentlyValidatingElement(element);
301
+
302
+ error('Failed %s type: %s', location, error$1.message);
303
+
304
+ setCurrentlyValidatingElement(null);
305
+ }
306
+ }
307
+ }
308
+ }
309
+}
310
+
311
+var ReactCurrentOwner = require('react/lib/ReactCurrentOwner');
312
+var hasOwnProperty = Object.prototype.hasOwnProperty;
313
+var RESERVED_PROPS = {
314
+ key: true,
315
+ ref: true,
316
+ __self: true,
317
+ __source: true
318
+};
319
+var specialPropKeyWarningShown;
320
+var specialPropRefWarningShown;
321
+var didWarnAboutStringRefs;
322
+
323
+{
324
+ didWarnAboutStringRefs = {};
325
+}
326
+
327
+function hasValidRef(config) {
328
+ {
329
+ if (hasOwnProperty.call(config, 'ref')) {
330
+ var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;
331
+
332
+ if (getter && getter.isReactWarning) {
333
+ return false;
334
+ }
335
+ }
336
+ }
337
+
338
+ return config.ref !== undefined;
339
+}
340
+
341
+function hasValidKey(config) {
342
+ {
343
+ if (hasOwnProperty.call(config, 'key')) {
344
+ var getter = Object.getOwnPropertyDescriptor(config, 'key').get;
345
+
346
+ if (getter && getter.isReactWarning) {
347
+ return false;
348
+ }
349
+ }
350
+ }
351
+
352
+ return config.key !== undefined;
353
+}
354
+
355
+function defineKeyPropWarningGetter(props, displayName) {
356
+ {
357
+ var warnAboutAccessingKey = function () {
358
+ if (!specialPropKeyWarningShown) {
359
+ specialPropKeyWarningShown = true;
360
+
361
+ error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);
362
+ }
363
+ };
364
+
365
+ warnAboutAccessingKey.isReactWarning = true;
366
+ Object.defineProperty(props, 'key', {
367
+ get: warnAboutAccessingKey,
368
+ configurable: true
369
+ });
370
+ }
371
+}
372
+
373
+function defineRefPropWarningGetter(props, displayName) {
374
+ {
375
+ var warnAboutAccessingRef = function () {
376
+ if (!specialPropRefWarningShown) {
377
+ specialPropRefWarningShown = true;
378
+
379
+ error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);
380
+ }
381
+ };
382
+
383
+ warnAboutAccessingRef.isReactWarning = true;
384
+ Object.defineProperty(props, 'ref', {
385
+ get: warnAboutAccessingRef,
386
+ configurable: true
387
+ });
388
+ }
389
+}
390
+/**
391
+ * Factory method to create a new React element. This no longer adheres to
392
+ * the class pattern, so do not use new to call it. Also, instanceof check
393
+ * will not work. Instead test $$typeof field against Symbol.for('react.element') to check
394
+ * if something is a React Element.
395
+ *
396
+ * @param {*} type
397
+ * @param {*} props
398
+ * @param {*} key
399
+ * @param {string|object} ref
400
+ * @param {*} owner
401
+ * @param {*} self A *temporary* helper to detect places where `this` is
402
+ * different from the `owner` when React.createElement is called, so that we
403
+ * can warn. We want to get rid of owner and replace string `ref`s with arrow
404
+ * functions, and as long as `this` and owner are the same, there will be no
405
+ * change in behavior.
406
+ * @param {*} source An annotation object (added by a transpiler or otherwise)
407
+ * indicating filename, line number, and/or other information.
408
+ * @internal
409
+ */
410
+
411
+
412
+var ReactElement = function (type, key, ref, self, source, owner, props) {
413
+ var element = {
414
+ // This tag allows us to uniquely identify this as a React Element
415
+ $$typeof: REACT_ELEMENT_TYPE,
416
+ // Built-in properties that belong on the element
417
+ type: type,
418
+ key: key,
419
+ ref: ref,
420
+ props: props,
421
+ // Record the component responsible for creating this element.
422
+ _owner: owner
423
+ };
424
+
425
+ {
426
+ // The validation flag is currently mutative. We put it on
427
+ // an external backing store so that we can freeze the whole object.
428
+ // This can be replaced with a WeakMap once they are implemented in
429
+ // commonly used development environments.
430
+ element._store = {}; // To make comparing ReactElements easier for testing purposes, we make
431
+ // the validation flag non-enumerable (where possible, which should
432
+ // include every environment we run tests in), so the test framework
433
+ // ignores it.
434
+
435
+ Object.defineProperty(element._store, 'validated', {
436
+ configurable: false,
437
+ enumerable: false,
438
+ writable: true,
439
+ value: false
440
+ }); // self and source are DEV only properties.
441
+
442
+ Object.defineProperty(element, '_self', {
443
+ configurable: false,
444
+ enumerable: false,
445
+ writable: false,
446
+ value: self
447
+ }); // Two elements created in two different places should be considered
448
+ // equal for testing purposes and therefore we hide it from enumeration.
449
+
450
+ Object.defineProperty(element, '_source', {
451
+ configurable: false,
452
+ enumerable: false,
453
+ writable: false,
454
+ value: source
455
+ });
456
+
457
+ if (Object.freeze) {
458
+ Object.freeze(element.props);
459
+ Object.freeze(element);
460
+ }
461
+ }
462
+
463
+ return element;
464
+};
465
+/**
466
+ * https://github.com/reactjs/rfcs/pull/107
467
+ * @param {*} type
468
+ * @param {object} props
469
+ * @param {string} key
470
+ */
471
+
472
+function jsxDEV(type, config, maybeKey, source, self) {
473
+ {
474
+ var propName; // Reserved names are extracted
475
+
476
+ var props = {};
477
+ var key = null;
478
+ var ref = null; // Currently, key can be spread in as a prop. This causes a potential
479
+ // issue if key is also explicitly declared (ie. <div {...props} key="Hi" />
480
+ // or <div key="Hi" {...props} /> ). We want to deprecate key spread,
481
+ // but as an intermediary step, we will use jsxDEV for everything except
482
+ // <div {...props} key="Hi" />, because we aren't currently able to tell if
483
+ // key is explicitly declared to be undefined or not.
484
+
485
+ if (maybeKey !== undefined) {
486
+ key = '' + maybeKey;
487
+ }
488
+
489
+ if (hasValidKey(config)) {
490
+ key = '' + config.key;
491
+ }
492
+
493
+ if (hasValidRef(config)) {
494
+ ref = config.ref;
495
+ } // Remaining properties are added to a new props object
496
+
497
+
498
+ for (propName in config) {
499
+ if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {
500
+ props[propName] = config[propName];
501
+ }
502
+ } // Resolve default props
503
+
504
+
505
+ if (type && type.defaultProps) {
506
+ var defaultProps = type.defaultProps;
507
+
508
+ for (propName in defaultProps) {
509
+ if (props[propName] === undefined) {
510
+ props[propName] = defaultProps[propName];
511
+ }
512
+ }
513
+ }
514
+
515
+ if (key || ref) {
516
+ var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;
517
+
518
+ if (key) {
519
+ defineKeyPropWarningGetter(props, displayName);
520
+ }
521
+
522
+ if (ref) {
523
+ defineRefPropWarningGetter(props, displayName);
524
+ }
525
+ }
526
+
527
+ return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);
528
+ }
529
+}
530
+
531
+var ReactCurrentOwner$1 = require('react/lib/ReactCurrentOwner');
532
+
533
+function setCurrentlyValidatingElement$1(element) {
534
+ currentlyValidatingElement = element;
535
+}
536
+
537
+var propTypesMisspellWarningShown;
538
+
539
+{
540
+ propTypesMisspellWarningShown = false;
541
+}
542
+/**
543
+ * Verifies the object is a ReactElement.
544
+ * See https://reactjs.org/docs/react-api.html#isvalidelement
545
+ * @param {?object} object
546
+ * @return {boolean} True if `object` is a ReactElement.
547
+ * @final
548
+ */
549
+
550
+function isValidElement(object) {
551
+ {
552
+ return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
553
+ }
554
+}
555
+
556
+function getDeclarationErrorAddendum() {
557
+ {
558
+ if (ReactCurrentOwner$1.current) {
559
+ var name = ReactCurrentOwner$1.current.getName();
560
+
561
+ if (name) {
562
+ return '\n\nCheck the render method of `' + name + '`.';
563
+ }
564
+ }
565
+
566
+ return '';
567
+ }
568
+}
569
+
570
+function getSourceInfoErrorAddendum(source) {
571
+ {
572
+ if (source !== undefined) {
573
+ var fileName = source.fileName.replace(/^.*[\\\/]/, '');
574
+ var lineNumber = source.lineNumber;
575
+ return '\n\nCheck your code at ' + fileName + ':' + lineNumber + '.';
576
+ }
577
+
578
+ return '';
579
+ }
580
+}
581
+/**
582
+ * Warn if there's no key explicitly set on dynamic arrays of children or
583
+ * object keys are not valid. This allows us to keep track of children between
584
+ * updates.
585
+ */
586
+
587
+
588
+var ownerHasKeyUseWarning = {};
589
+
590
+function getCurrentComponentErrorInfo(parentType) {
591
+ {
592
+ var info = getDeclarationErrorAddendum();
593
+
594
+ if (!info) {
595
+ var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;
596
+
597
+ if (parentName) {
598
+ info = "\n\nCheck the top-level render call using <" + parentName + ">.";
599
+ }
600
+ }
601
+
602
+ return info;
603
+ }
604
+}
605
+/**
606
+ * Warn if the element doesn't have an explicit key assigned to it.
607
+ * This element is in an array. The array could grow and shrink or be
608
+ * reordered. All children that haven't already been validated are required to
609
+ * have a "key" property assigned to it. Error statuses are cached so a warning
610
+ * will only be shown once.
611
+ *
612
+ * @internal
613
+ * @param {ReactElement} element Element that requires a key.
614
+ * @param {*} parentType element's parent's type.
615
+ */
616
+
617
+
618
+function validateExplicitKey(element, parentType) {
619
+ {
620
+ if (!element._store || element._store.validated || element.key != null) {
621
+ return;
622
+ }
623
+
624
+ element._store.validated = true;
625
+ var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);
626
+
627
+ if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {
628
+ return;
629
+ }
630
+
631
+ ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a
632
+ // property, it may be the creator of the child that's responsible for
633
+ // assigning it a key.
634
+
635
+ var childOwner = '';
636
+
637
+ if (element && element._owner && element._owner !== ReactCurrentOwner$1.current) {
638
+ // Give the component that originally created this child.
639
+ childOwner = " It was passed a child from " + element._owner.getName() + ".";
640
+ }
641
+
642
+ setCurrentlyValidatingElement$1(element);
643
+
644
+ error('Each child in a list should have a unique "key" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);
645
+
646
+ setCurrentlyValidatingElement$1(null);
647
+ }
648
+}
649
+/**
650
+ * Ensure that every element either is passed in a static location, in an
651
+ * array with an explicit keys property defined, or in an object literal
652
+ * with valid key property.
653
+ *
654
+ * @internal
655
+ * @param {ReactNode} node Statically passed child of any type.
656
+ * @param {*} parentType node's parent's type.
657
+ */
658
+
659
+
660
+function validateChildKeys(node, parentType) {
661
+ {
662
+ if (typeof node !== 'object') {
663
+ return;
664
+ }
665
+
666
+ if (Array.isArray(node)) {
667
+ for (var i = 0; i < node.length; i++) {
668
+ var child = node[i];
669
+
670
+ if (isValidElement(child)) {
671
+ validateExplicitKey(child, parentType);
672
+ }
673
+ }
674
+ } else if (isValidElement(node)) {
675
+ // This element was passed in a valid location.
676
+ if (node._store) {
677
+ node._store.validated = true;
678
+ }
679
+ } else if (node) {
680
+ var iteratorFn = getIteratorFn(node);
681
+
682
+ if (typeof iteratorFn === 'function') {
683
+ // Entry iterators used to provide implicit keys,
684
+ // but now we print a separate warning for them later.
685
+ if (iteratorFn !== node.entries) {
686
+ var iterator = iteratorFn.call(node);
687
+ var step;
688
+
689
+ while (!(step = iterator.next()).done) {
690
+ if (isValidElement(step.value)) {
691
+ validateExplicitKey(step.value, parentType);
692
+ }
693
+ }
694
+ }
695
+ }
696
+ }
697
+ }
698
+}
699
+/**
700
+ * Given an element, validate that its props follow the propTypes definition,
701
+ * provided by the type.
702
+ *
703
+ * @param {ReactElement} element
704
+ */
705
+
706
+
707
+function validatePropTypes(element) {
708
+ {
709
+ var type = element.type;
710
+
711
+ if (type === null || type === undefined || typeof type === 'string') {
712
+ return;
713
+ }
714
+
715
+ var propTypes;
716
+
717
+ if (typeof type === 'function') {
718
+ propTypes = type.propTypes;
719
+ } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.
720
+ // Inner props are checked in the reconciler.
721
+ type.$$typeof === REACT_MEMO_TYPE)) {
722
+ propTypes = type.propTypes;
723
+ } else {
724
+ return;
725
+ }
726
+
727
+ if (propTypes) {
728
+ // Intentionally inside to avoid triggering lazy initializers:
729
+ var name = getComponentName(type);
730
+ checkPropTypes(propTypes, element.props, 'prop', name, element);
731
+ } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {
732
+ propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:
733
+
734
+ var _name = getComponentName(type);
735
+
736
+ error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');
737
+ }
738
+
739
+ if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {
740
+ error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');
741
+ }
742
+ }
743
+}
744
+/**
745
+ * Given a fragment, validate that it can only be provided with fragment props
746
+ * @param {ReactElement} fragment
747
+ */
748
+
749
+
750
+function validateFragmentProps(fragment) {
751
+ {
752
+ var keys = Object.keys(fragment.props);
753
+
754
+ for (var i = 0; i < keys.length; i++) {
755
+ var key = keys[i];
756
+
757
+ if (key !== 'children' && key !== 'key') {
758
+ setCurrentlyValidatingElement$1(fragment);
759
+
760
+ error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);
761
+
762
+ setCurrentlyValidatingElement$1(null);
763
+ break;
764
+ }
765
+ }
766
+
767
+ if (fragment.ref !== null) {
768
+ setCurrentlyValidatingElement$1(fragment);
769
+
770
+ error('Invalid attribute `ref` supplied to `React.Fragment`.');
771
+
772
+ setCurrentlyValidatingElement$1(null);
773
+ }
774
+ }
775
+}
776
+
777
+function jsxWithValidation(type, props, key, isStaticChildren, source, self) {
778
+ {
779
+ var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to
780
+ // succeed and there will likely be errors in render.
781
+
782
+ if (!validType) {
783
+ var info = '';
784
+
785
+ if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {
786
+ info += ' You likely forgot to export your component from the file ' + "it's defined in, or you might have mixed up default and named imports.";
787
+ }
788
+
789
+ var sourceInfo = getSourceInfoErrorAddendum(source);
790
+
791
+ if (sourceInfo) {
792
+ info += sourceInfo;
793
+ } else {
794
+ info += getDeclarationErrorAddendum();
795
+ }
796
+
797
+ var typeString;
798
+
799
+ if (type === null) {
800
+ typeString = 'null';
801
+ } else if (Array.isArray(type)) {
802
+ typeString = 'array';
803
+ } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {
804
+ typeString = "<" + (getComponentName(type.type) || 'Unknown') + " />";
805
+ info = ' Did you accidentally export a JSX literal instead of a component?';
806
+ } else {
807
+ typeString = typeof type;
808
+ }
809
+
810
+ error('React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);
811
+ }
812
+
813
+ var element = jsxDEV(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.
814
+ // TODO: Drop this when these are no longer allowed as the type argument.
815
+
816
+ if (element == null) {
817
+ return element;
818
+ } // Skip key warning if the type isn't valid since our key validation logic
819
+ // doesn't expect a non-string/function type and can throw confusing errors.
820
+ // We don't want exception behavior to differ between dev and prod.
821
+ // (Rendering will throw with a helpful message and as soon as the type is
822
+ // fixed, the key warnings will appear.)
823
+
824
+
825
+ if (validType) {
826
+ var children = props.children;
827
+
828
+ if (children !== undefined) {
829
+ if (isStaticChildren) {
830
+ if (Array.isArray(children)) {
831
+ for (var i = 0; i < children.length; i++) {
832
+ validateChildKeys(children[i], type);
833
+ }
834
+
835
+ if (Object.freeze) {
836
+ Object.freeze(children);
837
+ }
838
+ } else {
839
+ error('React.jsx: Static children should always be an array. ' + 'You are likely explicitly calling React.jsxs or React.jsxDEV. ' + 'Use the Babel transform instead.');
840
+ }
841
+ } else {
842
+ validateChildKeys(children, type);
843
+ }
844
+ }
845
+ }
846
+
847
+ if (type === exports.Fragment) {
848
+ validateFragmentProps(element);
849
+ } else {
850
+ validatePropTypes(element);
851
+ }
852
+
853
+ return element;
854
+ }
855
+} // These two functions exist to still get child warnings in dev
856
+
857
+var jsxDEV$1 = jsxWithValidation ;
858
+
859
+exports.jsxDEV = jsxDEV$1;
860
+ })();
861
+}
fixtures/legacy-jsx-runtimes/react-14/cjs/react-jsx-dev-runtime.production.min.js
new
+9
@@ -0,0 +1,9 @@
1
+/** @license React v0.14.10
2
+ * react-jsx-dev-runtime.production.min.js
3
+ *
4
+ * Copyright (c) Facebook, Inc. and its affiliates.
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */
9
+'use strict';require("react");exports.Fragment=60107;if("function"===typeof Symbol&&Symbol.for){var a=Symbol.for;exports.Fragment=a("react.fragment")}exports.jsxDEV=void 0;
fixtures/legacy-jsx-runtimes/react-14/cjs/react-jsx-runtime.development.js
new
+883
@@ -0,0 +1,883 @@
1
+/** @license React v0.14.10
2
+ * react-jsx-runtime.development.js
3
+ *
4
+ * Copyright (c) Facebook, Inc. and its affiliates.
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */
9
+
10
+'use strict';
11
+
12
+if (process.env.NODE_ENV !== "production") {
13
+ (function() {
14
+'use strict';
15
+
16
+var React = require('react');
17
+
18
+// ATTENTION
19
+// When adding new symbols to this file,
20
+// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'
21
+// The Symbol used to tag the ReactElement-like types. If there is no native Symbol
22
+// nor polyfill, then a plain number is used for performance.
23
+var REACT_ELEMENT_TYPE = 0xeac7;
24
+var REACT_PORTAL_TYPE = 0xeaca;
25
+exports.Fragment = 0xeacb;
26
+var REACT_STRICT_MODE_TYPE = 0xeacc;
27
+var REACT_PROFILER_TYPE = 0xead2;
28
+var REACT_PROVIDER_TYPE = 0xeacd;
29
+var REACT_CONTEXT_TYPE = 0xeace;
30
+var REACT_FORWARD_REF_TYPE = 0xead0;
31
+var REACT_SUSPENSE_TYPE = 0xead1;
32
+var REACT_SUSPENSE_LIST_TYPE = 0xead8;
33
+var REACT_MEMO_TYPE = 0xead3;
34
+var REACT_LAZY_TYPE = 0xead4;
35
+var REACT_BLOCK_TYPE = 0xead9;
36
+var REACT_SERVER_BLOCK_TYPE = 0xeada;
37
+var REACT_FUNDAMENTAL_TYPE = 0xead5;
38
+var REACT_SCOPE_TYPE = 0xead7;
39
+var REACT_OPAQUE_ID_TYPE = 0xeae0;
40
+var REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;
41
+var REACT_OFFSCREEN_TYPE = 0xeae2;
42
+var REACT_LEGACY_HIDDEN_TYPE = 0xeae3;
43
+
44
+if (typeof Symbol === 'function' && Symbol.for) {
45
+ var symbolFor = Symbol.for;
46
+ REACT_ELEMENT_TYPE = symbolFor('react.element');
47
+ REACT_PORTAL_TYPE = symbolFor('react.portal');
48
+ exports.Fragment = symbolFor('react.fragment');
49
+ REACT_STRICT_MODE_TYPE = symbolFor('react.strict_mode');
50
+ REACT_PROFILER_TYPE = symbolFor('react.profiler');
51
+ REACT_PROVIDER_TYPE = symbolFor('react.provider');
52
+ REACT_CONTEXT_TYPE = symbolFor('react.context');
53
+ REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');
54
+ REACT_SUSPENSE_TYPE = symbolFor('react.suspense');
55
+ REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');
56
+ REACT_MEMO_TYPE = symbolFor('react.memo');
57
+ REACT_LAZY_TYPE = symbolFor('react.lazy');
58
+ REACT_BLOCK_TYPE = symbolFor('react.block');
59
+ REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block');
60
+ REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental');
61
+ REACT_SCOPE_TYPE = symbolFor('react.scope');
62
+ REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id');
63
+ REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');
64
+ REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');
65
+ REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');
66
+}
67
+
68
+var MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
69
+var FAUX_ITERATOR_SYMBOL = '@@iterator';
70
+function getIteratorFn(maybeIterable) {
71
+ if (maybeIterable === null || typeof maybeIterable !== 'object') {
72
+ return null;
73
+ }
74
+
75
+ var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];
76
+
77
+ if (typeof maybeIterator === 'function') {
78
+ return maybeIterator;
79
+ }
80
+
81
+ return null;
82
+}
83
+
84
+function error(format) {
85
+ {
86
+ for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
87
+ args[_key2 - 1] = arguments[_key2];
88
+ }
89
+
90
+ printWarning('error', format, args);
91
+ }
92
+}
93
+
94
+function printWarning(level, format, args) {
95
+ // When changing this logic, you might want to also
96
+ // update consoleWithStackDev.www.js as well.
97
+ {
98
+ var stack = '';
99
+
100
+ if (stack !== '') {
101
+ format += '%s';
102
+ args = args.concat([stack]);
103
+ }
104
+
105
+ var argsWithFormat = args.map(function (item) {
106
+ return '' + item;
107
+ }); // Careful: RN currently depends on this prefix
108
+
109
+ argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it
110
+ // breaks IE9: https://github.com/facebook/react/issues/13610
111
+ // eslint-disable-next-line react-internal/no-production-logging
112
+
113
+ Function.prototype.apply.call(console[level], console, argsWithFormat);
114
+ }
115
+}
116
+
117
+// Filter certain DOM attributes (e.g. src, href) if their values are empty strings.
118
+
119
+var enableScopeAPI = false; // Experimental Create Event Handle API.
120
+
121
+function isValidElementType(type) {
122
+ if (typeof type === 'string' || typeof type === 'function') {
123
+ return true;
124
+ } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).
125
+
126
+
127
+ if (type === exports.Fragment || type === REACT_PROFILER_TYPE || type === REACT_DEBUG_TRACING_MODE_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI ) {
128
+ return true;
129
+ }
130
+
131
+ if (typeof type === 'object' && type !== null) {
132
+ if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_BLOCK_TYPE || type[0] === REACT_SERVER_BLOCK_TYPE) {
133
+ return true;
134
+ }
135
+ }
136
+
137
+ return false;
138
+}
139
+
140
+
141
+var BEFORE_SLASH_RE = /^(.*)[\\\/]/;
142
+function describeComponentFrame (name, source, ownerName) {
143
+ var sourceInfo = '';
144
+
145
+ if (source) {
146
+ var path = source.fileName;
147
+ var fileName = path.replace(BEFORE_SLASH_RE, '');
148
+
149
+ {
150
+ // In DEV, include code for a common special case:
151
+ // prefer "folder/index.js" instead of just "index.js".
152
+ if (/^index\./.test(fileName)) {
153
+ var match = path.match(BEFORE_SLASH_RE);
154
+
155
+ if (match) {
156
+ var pathBeforeSlash = match[1];
157
+
158
+ if (pathBeforeSlash) {
159
+ var folderName = pathBeforeSlash.replace(BEFORE_SLASH_RE, '');
160
+ fileName = folderName + '/' + fileName;
161
+ }
162
+ }
163
+ }
164
+ }
165
+
166
+ sourceInfo = ' (at ' + fileName + ':' + source.lineNumber + ')';
167
+ } else if (ownerName) {
168
+ sourceInfo = ' (created by ' + ownerName + ')';
169
+ }
170
+
171
+ return '\n in ' + (name || 'Unknown') + sourceInfo;
172
+}
173
+
174
+var Resolved = 1;
175
+function refineResolvedLazyComponent(lazyComponent) {
176
+ return lazyComponent._status === Resolved ? lazyComponent._result : null;
177
+}
178
+
179
+function getWrappedName(outerType, innerType, wrapperName) {
180
+ var functionName = innerType.displayName || innerType.name || '';
181
+ return outerType.displayName || (functionName !== '' ? wrapperName + "(" + functionName + ")" : wrapperName);
182
+}
183
+
184
+function getComponentName(type) {
185
+ if (type == null) {
186
+ // Host root, text node or just invalid type.
187
+ return null;
188
+ }
189
+
190
+ {
191
+ if (typeof type.tag === 'number') {
192
+ error('Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');
193
+ }
194
+ }
195
+
196
+ if (typeof type === 'function') {
197
+ return type.displayName || type.name || null;
198
+ }
199
+
200
+ if (typeof type === 'string') {
201
+ return type;
202
+ }
203
+
204
+ switch (type) {
205
+ case exports.Fragment:
206
+ return 'Fragment';
207
+
208
+ case REACT_PORTAL_TYPE:
209
+ return 'Portal';
210
+
211
+ case REACT_PROFILER_TYPE:
212
+ return "Profiler";
213
+
214
+ case REACT_STRICT_MODE_TYPE:
215
+ return 'StrictMode';
216
+
217
+ case REACT_SUSPENSE_TYPE:
218
+ return 'Suspense';
219
+
220
+ case REACT_SUSPENSE_LIST_TYPE:
221
+ return 'SuspenseList';
222
+ }
223
+
224
+ if (typeof type === 'object') {
225
+ switch (type.$$typeof) {
226
+ case REACT_CONTEXT_TYPE:
227
+ return 'Context.Consumer';
228
+
229
+ case REACT_PROVIDER_TYPE:
230
+ return 'Context.Provider';
231
+
232
+ case REACT_FORWARD_REF_TYPE:
233
+ return getWrappedName(type, type.render, 'ForwardRef');
234
+
235
+ case REACT_MEMO_TYPE:
236
+ return getComponentName(type.type);
237
+
238
+ case REACT_BLOCK_TYPE:
239
+ return getComponentName(type.render);
240
+
241
+ case REACT_LAZY_TYPE:
242
+ {
243
+ var thenable = type;
244
+ var resolvedThenable = refineResolvedLazyComponent(thenable);
245
+
246
+ if (resolvedThenable) {
247
+ return getComponentName(resolvedThenable);
248
+ }
249
+
250
+ break;
251
+ }
252
+ }
253
+ }
254
+
255
+ return null;
256
+}
257
+
258
+var loggedTypeFailures = {};
259
+var currentlyValidatingElement = null;
260
+
261
+function setCurrentlyValidatingElement(element) {
262
+ {
263
+ currentlyValidatingElement = element;
264
+ }
265
+}
266
+
267
+function checkPropTypes(typeSpecs, values, location, componentName, element) {
268
+ {
269
+ // $FlowFixMe This is okay but Flow doesn't know it.
270
+ var has = Function.call.bind(Object.prototype.hasOwnProperty);
271
+
272
+ for (var typeSpecName in typeSpecs) {
273
+ if (has(typeSpecs, typeSpecName)) {
274
+ var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to
275
+ // fail the render phase where it didn't fail before. So we log it.
276
+ // After these have been cleaned up, we'll let them throw.
277
+
278
+ try {
279
+ // This is intentionally an invariant that gets caught. It's the same
280
+ // behavior as without this statement except with a better message.
281
+ if (typeof typeSpecs[typeSpecName] !== 'function') {
282
+ var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');
283
+ err.name = 'Invariant Violation';
284
+ throw err;
285
+ }
286
+
287
+ error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');
288
+ } catch (ex) {
289
+ error$1 = ex;
290
+ }
291
+
292
+ if (error$1 && !(error$1 instanceof Error)) {
293
+ setCurrentlyValidatingElement(element);
294
+
295
+ error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);
296
+
297
+ setCurrentlyValidatingElement(null);
298
+ }
299
+
300
+ if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {
301
+ // Only monitor this failure once because there tends to be a lot of the
302
+ // same error.
303
+ loggedTypeFailures[error$1.message] = true;
304
+ setCurrentlyValidatingElement(element);
305
+
306
+ error('Failed %s type: %s', location, error$1.message);
307
+
308
+ setCurrentlyValidatingElement(null);
309
+ }
310
+ }
311
+ }
312
+ }
313
+}
314
+
315
+var ReactCurrentOwner = require('react/lib/ReactCurrentOwner');
316
+var hasOwnProperty = Object.prototype.hasOwnProperty;
317
+var RESERVED_PROPS = {
318
+ key: true,
319
+ ref: true,
320
+ __self: true,
321
+ __source: true
322
+};
323
+var specialPropKeyWarningShown;
324
+var specialPropRefWarningShown;
325
+var didWarnAboutStringRefs;
326
+
327
+{
328
+ didWarnAboutStringRefs = {};
329
+}
330
+
331
+function hasValidRef(config) {
332
+ {
333
+ if (hasOwnProperty.call(config, 'ref')) {
334
+ var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;
335
+
336
+ if (getter && getter.isReactWarning) {
337
+ return false;
338
+ }
339
+ }
340
+ }
341
+
342
+ return config.ref !== undefined;
343
+}
344
+
345
+function hasValidKey(config) {
346
+ {
347
+ if (hasOwnProperty.call(config, 'key')) {
348
+ var getter = Object.getOwnPropertyDescriptor(config, 'key').get;
349
+
350
+ if (getter && getter.isReactWarning) {
351
+ return false;
352
+ }
353
+ }
354
+ }
355
+
356
+ return config.key !== undefined;
357
+}
358
+
359
+function defineKeyPropWarningGetter(props, displayName) {
360
+ {
361
+ var warnAboutAccessingKey = function () {
362
+ if (!specialPropKeyWarningShown) {
363
+ specialPropKeyWarningShown = true;
364
+
365
+ error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);
366
+ }
367
+ };
368
+
369
+ warnAboutAccessingKey.isReactWarning = true;
370
+ Object.defineProperty(props, 'key', {
371
+ get: warnAboutAccessingKey,
372
+ configurable: true
373
+ });
374
+ }
375
+}
376
+
377
+function defineRefPropWarningGetter(props, displayName) {
378
+ {
379
+ var warnAboutAccessingRef = function () {
380
+ if (!specialPropRefWarningShown) {
381
+ specialPropRefWarningShown = true;
382
+
383
+ error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);
384
+ }
385
+ };
386
+
387
+ warnAboutAccessingRef.isReactWarning = true;
388
+ Object.defineProperty(props, 'ref', {
389
+ get: warnAboutAccessingRef,
390
+ configurable: true
391
+ });
392
+ }
393
+}
394
+/**
395
+ * Factory method to create a new React element. This no longer adheres to
396
+ * the class pattern, so do not use new to call it. Also, instanceof check
397
+ * will not work. Instead test $$typeof field against Symbol.for('react.element') to check
398
+ * if something is a React Element.
399
+ *
400
+ * @param {*} type
401
+ * @param {*} props
402
+ * @param {*} key
403
+ * @param {string|object} ref
404
+ * @param {*} owner
405
+ * @param {*} self A *temporary* helper to detect places where `this` is
406
+ * different from the `owner` when React.createElement is called, so that we
407
+ * can warn. We want to get rid of owner and replace string `ref`s with arrow
408
+ * functions, and as long as `this` and owner are the same, there will be no
409
+ * change in behavior.
410
+ * @param {*} source An annotation object (added by a transpiler or otherwise)
411
+ * indicating filename, line number, and/or other information.
412
+ * @internal
413
+ */
414
+
415
+
416
+var ReactElement = function (type, key, ref, self, source, owner, props) {
417
+ var element = {
418
+ // This tag allows us to uniquely identify this as a React Element
419
+ $$typeof: REACT_ELEMENT_TYPE,
420
+ // Built-in properties that belong on the element
421
+ type: type,
422
+ key: key,
423
+ ref: ref,
424
+ props: props,
425
+ // Record the component responsible for creating this element.
426
+ _owner: owner
427
+ };
428
+
429
+ {
430
+ // The validation flag is currently mutative. We put it on
431
+ // an external backing store so that we can freeze the whole object.
432
+ // This can be replaced with a WeakMap once they are implemented in
433
+ // commonly used development environments.
434
+ element._store = {}; // To make comparing ReactElements easier for testing purposes, we make
435
+ // the validation flag non-enumerable (where possible, which should
436
+ // include every environment we run tests in), so the test framework
437
+ // ignores it.
438
+
439
+ Object.defineProperty(element._store, 'validated', {
440
+ configurable: false,
441
+ enumerable: false,
442
+ writable: true,
443
+ value: false
444
+ }); // self and source are DEV only properties.
445
+
446
+ Object.defineProperty(element, '_self', {
447
+ configurable: false,
448
+ enumerable: false,
449
+ writable: false,
450
+ value: self
451
+ }); // Two elements created in two different places should be considered
452
+ // equal for testing purposes and therefore we hide it from enumeration.
453
+
454
+ Object.defineProperty(element, '_source', {
455
+ configurable: false,
456
+ enumerable: false,
457
+ writable: false,
458
+ value: source
459
+ });
460
+
461
+ if (Object.freeze) {
462
+ Object.freeze(element.props);
463
+ Object.freeze(element);
464
+ }
465
+ }
466
+
467
+ return element;
468
+};
469
+/**
470
+ * https://github.com/reactjs/rfcs/pull/107
471
+ * @param {*} type
472
+ * @param {object} props
473
+ * @param {string} key
474
+ */
475
+
476
+function jsxDEV(type, config, maybeKey, source, self) {
477
+ {
478
+ var propName; // Reserved names are extracted
479
+
480
+ var props = {};
481
+ var key = null;
482
+ var ref = null; // Currently, key can be spread in as a prop. This causes a potential
483
+ // issue if key is also explicitly declared (ie. <div {...props} key="Hi" />
484
+ // or <div key="Hi" {...props} /> ). We want to deprecate key spread,
485
+ // but as an intermediary step, we will use jsxDEV for everything except
486
+ // <div {...props} key="Hi" />, because we aren't currently able to tell if
487
+ // key is explicitly declared to be undefined or not.
488
+
489
+ if (maybeKey !== undefined) {
490
+ key = '' + maybeKey;
491
+ }
492
+
493
+ if (hasValidKey(config)) {
494
+ key = '' + config.key;
495
+ }
496
+
497
+ if (hasValidRef(config)) {
498
+ ref = config.ref;
499
+ } // Remaining properties are added to a new props object
500
+
501
+
502
+ for (propName in config) {
503
+ if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {
504
+ props[propName] = config[propName];
505
+ }
506
+ } // Resolve default props
507
+
508
+
509
+ if (type && type.defaultProps) {
510
+ var defaultProps = type.defaultProps;
511
+
512
+ for (propName in defaultProps) {
513
+ if (props[propName] === undefined) {
514
+ props[propName] = defaultProps[propName];
515
+ }
516
+ }
517
+ }
518
+
519
+ if (key || ref) {
520
+ var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;
521
+
522
+ if (key) {
523
+ defineKeyPropWarningGetter(props, displayName);
524
+ }
525
+
526
+ if (ref) {
527
+ defineRefPropWarningGetter(props, displayName);
528
+ }
529
+ }
530
+
531
+ return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);
532
+ }
533
+}
534
+
535
+var ReactCurrentOwner$1 = require('react/lib/ReactCurrentOwner');
536
+
537
+function setCurrentlyValidatingElement$1(element) {
538
+ currentlyValidatingElement = element;
539
+}
540
+
541
+var propTypesMisspellWarningShown;
542
+
543
+{
544
+ propTypesMisspellWarningShown = false;
545
+}
546
+/**
547
+ * Verifies the object is a ReactElement.
548
+ * See https://reactjs.org/docs/react-api.html#isvalidelement
549
+ * @param {?object} object
550
+ * @return {boolean} True if `object` is a ReactElement.
551
+ * @final
552
+ */
553
+
554
+function isValidElement(object) {
555
+ {
556
+ return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
557
+ }
558
+}
559
+
560
+function getDeclarationErrorAddendum() {
561
+ {
562
+ if (ReactCurrentOwner$1.current) {
563
+ var name = ReactCurrentOwner$1.current.getName();
564
+
565
+ if (name) {
566
+ return '\n\nCheck the render method of `' + name + '`.';
567
+ }
568
+ }
569
+
570
+ return '';
571
+ }
572
+}
573
+
574
+function getSourceInfoErrorAddendum(source) {
575
+ {
576
+ if (source !== undefined) {
577
+ var fileName = source.fileName.replace(/^.*[\\\/]/, '');
578
+ var lineNumber = source.lineNumber;
579
+ return '\n\nCheck your code at ' + fileName + ':' + lineNumber + '.';
580
+ }
581
+
582
+ return '';
583
+ }
584
+}
585
+/**
586
+ * Warn if there's no key explicitly set on dynamic arrays of children or
587
+ * object keys are not valid. This allows us to keep track of children between
588
+ * updates.
589
+ */
590
+
591
+
592
+var ownerHasKeyUseWarning = {};
593
+
594
+function getCurrentComponentErrorInfo(parentType) {
595
+ {
596
+ var info = getDeclarationErrorAddendum();
597
+
598
+ if (!info) {
599
+ var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;
600
+
601
+ if (parentName) {
602
+ info = "\n\nCheck the top-level render call using <" + parentName + ">.";
603
+ }
604
+ }
605
+
606
+ return info;
607
+ }
608
+}
609
+/**
610
+ * Warn if the element doesn't have an explicit key assigned to it.
611
+ * This element is in an array. The array could grow and shrink or be
612
+ * reordered. All children that haven't already been validated are required to
613
+ * have a "key" property assigned to it. Error statuses are cached so a warning
614
+ * will only be shown once.
615
+ *
616
+ * @internal
617
+ * @param {ReactElement} element Element that requires a key.
618
+ * @param {*} parentType element's parent's type.
619
+ */
620
+
621
+
622
+function validateExplicitKey(element, parentType) {
623
+ {
624
+ if (!element._store || element._store.validated || element.key != null) {
625
+ return;
626
+ }
627
+
628
+ element._store.validated = true;
629
+ var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);
630
+
631
+ if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {
632
+ return;
633
+ }
634
+
635
+ ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a
636
+ // property, it may be the creator of the child that's responsible for
637
+ // assigning it a key.
638
+
639
+ var childOwner = '';
640
+
641
+ if (element && element._owner && element._owner !== ReactCurrentOwner$1.current) {
642
+ // Give the component that originally created this child.
643
+ childOwner = " It was passed a child from " + element._owner.getName() + ".";
644
+ }
645
+
646
+ setCurrentlyValidatingElement$1(element);
647
+
648
+ error('Each child in a list should have a unique "key" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);
649
+
650
+ setCurrentlyValidatingElement$1(null);
651
+ }
652
+}
653
+/**
654
+ * Ensure that every element either is passed in a static location, in an
655
+ * array with an explicit keys property defined, or in an object literal
656
+ * with valid key property.
657
+ *
658
+ * @internal
659
+ * @param {ReactNode} node Statically passed child of any type.
660
+ * @param {*} parentType node's parent's type.
661
+ */
662
+
663
+
664
+function validateChildKeys(node, parentType) {
665
+ {
666
+ if (typeof node !== 'object') {
667
+ return;
668
+ }
669
+
670
+ if (Array.isArray(node)) {
671
+ for (var i = 0; i < node.length; i++) {
672
+ var child = node[i];
673
+
674
+ if (isValidElement(child)) {
675
+ validateExplicitKey(child, parentType);
676
+ }
677
+ }
678
+ } else if (isValidElement(node)) {
679
+ // This element was passed in a valid location.
680
+ if (node._store) {
681
+ node._store.validated = true;
682
+ }
683
+ } else if (node) {
684
+ var iteratorFn = getIteratorFn(node);
685
+
686
+ if (typeof iteratorFn === 'function') {
687
+ // Entry iterators used to provide implicit keys,
688
+ // but now we print a separate warning for them later.
689
+ if (iteratorFn !== node.entries) {
690
+ var iterator = iteratorFn.call(node);
691
+ var step;
692
+
693
+ while (!(step = iterator.next()).done) {
694
+ if (isValidElement(step.value)) {
695
+ validateExplicitKey(step.value, parentType);
696
+ }
697
+ }
698
+ }
699
+ }
700
+ }
701
+ }
702
+}
703
+/**
704
+ * Given an element, validate that its props follow the propTypes definition,
705
+ * provided by the type.
706
+ *
707
+ * @param {ReactElement} element
708
+ */
709
+
710
+
711
+function validatePropTypes(element) {
712
+ {
713
+ var type = element.type;
714
+
715
+ if (type === null || type === undefined || typeof type === 'string') {
716
+ return;
717
+ }
718
+
719
+ var propTypes;
720
+
721
+ if (typeof type === 'function') {
722
+ propTypes = type.propTypes;
723
+ } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.
724
+ // Inner props are checked in the reconciler.
725
+ type.$$typeof === REACT_MEMO_TYPE)) {
726
+ propTypes = type.propTypes;
727
+ } else {
728
+ return;
729
+ }
730
+
731
+ if (propTypes) {
732
+ // Intentionally inside to avoid triggering lazy initializers:
733
+ var name = getComponentName(type);
734
+ checkPropTypes(propTypes, element.props, 'prop', name, element);
735
+ } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {
736
+ propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:
737
+
738
+ var _name = getComponentName(type);
739
+
740
+ error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');
741
+ }
742
+
743
+ if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {
744
+ error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');
745
+ }
746
+ }
747
+}
748
+/**
749
+ * Given a fragment, validate that it can only be provided with fragment props
750
+ * @param {ReactElement} fragment
751
+ */
752
+
753
+
754
+function validateFragmentProps(fragment) {
755
+ {
756
+ var keys = Object.keys(fragment.props);
757
+
758
+ for (var i = 0; i < keys.length; i++) {
759
+ var key = keys[i];
760
+
761
+ if (key !== 'children' && key !== 'key') {
762
+ setCurrentlyValidatingElement$1(fragment);
763
+
764
+ error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);
765
+
766
+ setCurrentlyValidatingElement$1(null);
767
+ break;
768
+ }
769
+ }
770
+
771
+ if (fragment.ref !== null) {
772
+ setCurrentlyValidatingElement$1(fragment);
773
+
774
+ error('Invalid attribute `ref` supplied to `React.Fragment`.');
775
+
776
+ setCurrentlyValidatingElement$1(null);
777
+ }
778
+ }
779
+}
780
+
781
+function jsxWithValidation(type, props, key, isStaticChildren, source, self) {
782
+ {
783
+ var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to
784
+ // succeed and there will likely be errors in render.
785
+
786
+ if (!validType) {
787
+ var info = '';
788
+
789
+ if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {
790
+ info += ' You likely forgot to export your component from the file ' + "it's defined in, or you might have mixed up default and named imports.";
791
+ }
792
+
793
+ var sourceInfo = getSourceInfoErrorAddendum(source);
794
+
795
+ if (sourceInfo) {
796
+ info += sourceInfo;
797
+ } else {
798
+ info += getDeclarationErrorAddendum();
799
+ }
800
+
801
+ var typeString;
802
+
803
+ if (type === null) {
804
+ typeString = 'null';
805
+ } else if (Array.isArray(type)) {
806
+ typeString = 'array';
807
+ } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {
808
+ typeString = "<" + (getComponentName(type.type) || 'Unknown') + " />";
809
+ info = ' Did you accidentally export a JSX literal instead of a component?';
810
+ } else {
811
+ typeString = typeof type;
812
+ }
813
+
814
+ error('React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);
815
+ }
816
+
817
+ var element = jsxDEV(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.
818
+ // TODO: Drop this when these are no longer allowed as the type argument.
819
+
820
+ if (element == null) {
821
+ return element;
822
+ } // Skip key warning if the type isn't valid since our key validation logic
823
+ // doesn't expect a non-string/function type and can throw confusing errors.
824
+ // We don't want exception behavior to differ between dev and prod.
825
+ // (Rendering will throw with a helpful message and as soon as the type is
826
+ // fixed, the key warnings will appear.)
827
+
828
+
829
+ if (validType) {
830
+ var children = props.children;
831
+
832
+ if (children !== undefined) {
833
+ if (isStaticChildren) {
834
+ if (Array.isArray(children)) {
835
+ for (var i = 0; i < children.length; i++) {
836
+ validateChildKeys(children[i], type);
837
+ }
838
+
839
+ if (Object.freeze) {
840
+ Object.freeze(children);
841
+ }
842
+ } else {
843
+ error('React.jsx: Static children should always be an array. ' + 'You are likely explicitly calling React.jsxs or React.jsxDEV. ' + 'Use the Babel transform instead.');
844
+ }
845
+ } else {
846
+ validateChildKeys(children, type);
847
+ }
848
+ }
849
+ }
850
+
851
+ if (type === exports.Fragment) {
852
+ validateFragmentProps(element);
853
+ } else {
854
+ validatePropTypes(element);
855
+ }
856
+
857
+ return element;
858
+ }
859
+} // These two functions exist to still get child warnings in dev
860
+// even with the prod transform. This means that jsxDEV is purely
861
+// opt-in behavior for better messages but that we won't stop
862
+// giving you warnings if you use production apis.
863
+
864
+function jsxWithValidationStatic(type, props, key) {
865
+ {
866
+ return jsxWithValidation(type, props, key, true);
867
+ }
868
+}
869
+function jsxWithValidationDynamic(type, props, key) {
870
+ {
871
+ return jsxWithValidation(type, props, key, false);
872
+ }
873
+}
874
+
875
+var jsx = jsxWithValidationDynamic ; // we may want to special case jsxs internally to take advantage of static children.
876
+// for now we can ship identical prod functions
877
+
878
+var jsxs = jsxWithValidationStatic ;
879
+
880
+exports.jsx = jsx;
881
+exports.jsxs = jsxs;
882
+ })();
883
+}
fixtures/legacy-jsx-runtimes/react-14/cjs/react-jsx-runtime.production.min.js
new
+10
@@ -0,0 +1,10 @@
1
+/** @license React v0.14.10
2
+ * react-jsx-runtime.production.min.js
3
+ *
4
+ * Copyright (c) Facebook, Inc. and its affiliates.
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */
9
+'use strict';var f=require("react"),g=60103;exports.Fragment=60107;if("function"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h("react.element");exports.Fragment=h("react.fragment")}var m=require("react/lib/ReactCurrentOwner"),n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};
10
+function q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=""+k);void 0!==a.key&&(e=""+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;
fixtures/legacy-jsx-runtimes/react-14/jsx-dev-runtime.js
new
+7
@@ -0,0 +1,7 @@
1
+'use strict';
2
+
3
+if (process.env.NODE_ENV === 'production') {
4
+ module.exports = require('./cjs/react-jsx-dev-runtime.production.min.js');
5
+} else {
6
+ module.exports = require('./cjs/react-jsx-dev-runtime.development.js');
7
+}
fixtures/legacy-jsx-runtimes/react-14/jsx-runtime.js
new
+7
@@ -0,0 +1,7 @@
1
+'use strict';
2
+
3
+if (process.env.NODE_ENV === 'production') {
4
+ module.exports = require('./cjs/react-jsx-runtime.production.min.js');
5
+} else {
6
+ module.exports = require('./cjs/react-jsx-runtime.development.js');
7
+}
fixtures/legacy-jsx-runtimes/react-14/package.json
new
+6
@@ -0,0 +1,6 @@
1
+{
2
+ "dependencies": {
3
+ "react": "0.14",
4
+ "react-dom": "0.14"
5
+ }
6
+}
fixtures/legacy-jsx-runtimes/react-14/react-14.test.js
new
+780
@@ -0,0 +1,780 @@
1
+/**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @emails react-core
8
+ */
9
+
10
+// These tests are based on ReactJSXElement-test,
11
+// ReactJSXElementValidator-test, ReactComponent-test,
12
+// and ReactElementJSX-test.
13
+
14
+jest.mock('react/jsx-runtime', () => require('./jsx-runtime'), {virtual: true});
15
+jest.mock('react/jsx-dev-runtime', () => require('./jsx-dev-runtime'), {
16
+ virtual: true,
17
+});
18
+
19
+let React = require('react');
20
+let ReactDOM = require('react-dom');
21
+let ReactTestUtils = {
22
+ renderIntoDocument(el) {
23
+ const container = document.createElement('div');
24
+ return ReactDOM.render(el, container);
25
+ },
26
+};
27
+let PropTypes = React.PropTypes;
28
+let Component = class Component extends React.Component {
29
+ render() {
30
+ return <div />;
31
+ }
32
+};
33
+let RequiredPropComponent = class extends React.Component {
34
+ render() {
35
+ return <span>{this.props.prop}</span>;
36
+ }
37
+};
38
+RequiredPropComponent.displayName = 'RequiredPropComponent';
39
+RequiredPropComponent.propTypes = {prop: PropTypes.string.isRequired};
40
+
41
+it('works', () => {
42
+ const container = document.createElement('div');
43
+ ReactDOM.render(<h1>hello</h1>, container);
44
+ expect(container.textContent).toBe('hello');
45
+});
46
+
47
+it('returns a complete element according to spec', () => {
48
+ const element = <Component />;
49
+ expect(element.type).toBe(Component);
50
+ expect(element.key).toBe(null);
51
+ expect(element.ref).toBe(null);
52
+ const expectation = {};
53
+ Object.freeze(expectation);
54
+ expect(element.props).toEqual(expectation);
55
+});
56
+
57
+it('allows a lower-case to be passed as the string type', () => {
58
+ const element = <div />;
59
+ expect(element.type).toBe('div');
60
+ expect(element.key).toBe(null);
61
+ expect(element.ref).toBe(null);
62
+ const expectation = {};
63
+ Object.freeze(expectation);
64
+ expect(element.props).toEqual(expectation);
65
+});
66
+
67
+it('allows a string to be passed as the type', () => {
68
+ const TagName = 'div';
69
+ const element = <TagName />;
70
+ expect(element.type).toBe('div');
71
+ expect(element.key).toBe(null);
72
+ expect(element.ref).toBe(null);
73
+ const expectation = {};
74
+ Object.freeze(expectation);
75
+ expect(element.props).toEqual(expectation);
76
+});
77
+
78
+it('returns an immutable element', () => {
79
+ const element = <Component />;
80
+ if (process.env.NODE_ENV === 'development') {
81
+ expect(() => (element.type = 'div')).toThrow();
82
+ } else {
83
+ expect(() => (element.type = 'div')).not.toThrow();
84
+ }
85
+});
86
+
87
+it('does not reuse the object that is spread into props', () => {
88
+ const config = {foo: 1};
89
+ const element = <Component {...config} />;
90
+ expect(element.props.foo).toBe(1);
91
+ config.foo = 2;
92
+ expect(element.props.foo).toBe(1);
93
+});
94
+
95
+it('extracts key and ref from the rest of the props', () => {
96
+ const element = <Component key="12" ref="34" foo="56" />;
97
+ expect(element.type).toBe(Component);
98
+ expect(element.key).toBe('12');
99
+ expect(element.ref).toBe('34');
100
+ const expectation = {foo: '56'};
101
+ Object.freeze(expectation);
102
+ expect(element.props).toEqual(expectation);
103
+});
104
+
105
+it('coerces the key to a string', () => {
106
+ const element = <Component key={12} foo="56" />;
107
+ expect(element.type).toBe(Component);
108
+ expect(element.key).toBe('12');
109
+ expect(element.ref).toBe(null);
110
+ const expectation = {foo: '56'};
111
+ Object.freeze(expectation);
112
+ expect(element.props).toEqual(expectation);
113
+});
114
+
115
+it('merges JSX children onto the children prop', () => {
116
+ const a = 1;
117
+ const element = <Component children="text">{a}</Component>;
118
+ expect(element.props.children).toBe(a);
119
+});
120
+
121
+it('does not override children if no JSX children are provided', () => {
122
+ const element = <Component children="text" />;
123
+ expect(element.props.children).toBe('text');
124
+});
125
+
126
+it('overrides children if null is provided as a JSX child', () => {
127
+ const element = <Component children="text">{null}</Component>;
128
+ expect(element.props.children).toBe(null);
129
+});
130
+
131
+it('overrides children if undefined is provided as an argument', () => {
132
+ const element = <Component children="text">{undefined}</Component>;
133
+ expect(element.props.children).toBe(undefined);
134
+
135
+ const element2 = React.cloneElement(
136
+ <Component children="text" />,
137
+ {},
138
+ undefined
139
+ );
140
+ expect(element2.props.children).toBe(undefined);
141
+});
142
+
143
+it('merges JSX children onto the children prop in an array', () => {
144
+ const a = 1;
145
+ const b = 2;
146
+ const c = 3;
147
+ const element = (
148
+ <Component>
149
+ {a}
150
+ {b}
151
+ {c}
152
+ </Component>
153
+ );
154
+ expect(element.props.children).toEqual([1, 2, 3]);
155
+});
156
+
157
+it('allows static methods to be called using the type property', () => {
158
+ class StaticMethodComponent {
159
+ static someStaticMethod() {
160
+ return 'someReturnValue';
161
+ }
162
+ render() {
163
+ return <div />;
164
+ }
165
+ }
166
+
167
+ const element = <StaticMethodComponent />;
168
+ expect(element.type.someStaticMethod()).toBe('someReturnValue');
169
+});
170
+
171
+it('identifies valid elements', () => {
172
+ expect(React.isValidElement(<div />)).toEqual(true);
173
+ expect(React.isValidElement(<Component />)).toEqual(true);
174
+
175
+ expect(React.isValidElement(null)).toEqual(false);
176
+ expect(React.isValidElement(true)).toEqual(false);
177
+ expect(React.isValidElement({})).toEqual(false);
178
+ expect(React.isValidElement('string')).toEqual(false);
179
+ expect(React.isValidElement(Component)).toEqual(false);
180
+ expect(React.isValidElement({type: 'div', props: {}})).toEqual(false);
181
+});
182
+
183
+it('is indistinguishable from a plain object', () => {
184
+ const element = <div className="foo" />;
185
+ const object = {};
186
+ expect(element.constructor).toBe(object.constructor);
187
+});
188
+
189
+it('should use default prop value when removing a prop', () => {
190
+ Component.defaultProps = {fruit: 'persimmon'};
191
+
192
+ const container = document.createElement('div');
193
+ const instance = ReactDOM.render(<Component fruit="mango" />, container);
194
+ expect(instance.props.fruit).toBe('mango');
195
+
196
+ ReactDOM.render(<Component />, container);
197
+ expect(instance.props.fruit).toBe('persimmon');
198
+});
199
+
200
+it('should normalize props with default values', () => {
201
+ class NormalizingComponent extends React.Component {
202
+ render() {
203
+ return <span>{this.props.prop}</span>;
204
+ }
205
+ }
206
+ NormalizingComponent.defaultProps = {prop: 'testKey'};
207
+
208
+ const container = document.createElement('div');
209
+ const instance = ReactDOM.render(<NormalizingComponent />, container);
210
+ expect(instance.props.prop).toBe('testKey');
211
+
212
+ const inst2 = ReactDOM.render(
213
+ <NormalizingComponent prop={null} />,
214
+ container
215
+ );
216
+ expect(inst2.props.prop).toBe(null);
217
+});
218
+
219
+it('warns for keys for arrays of elements in children position', () => {
220
+ expect(() =>
221
+ ReactTestUtils.renderIntoDocument(
222
+ <Component>{[<Component />, <Component />]}</Component>
223
+ )
224
+ ).toErrorDev('Each child in a list should have a unique "key" prop.', {
225
+ withoutStack: true,
226
+ });
227
+});
228
+
229
+it('warns for keys for arrays of elements with owner info', () => {
230
+ class InnerComponent extends React.Component {
231
+ render() {
232
+ return <Component>{this.props.childSet}</Component>;
233
+ }
234
+ }
235
+
236
+ class ComponentWrapper extends React.Component {
237
+ render() {
238
+ return <InnerComponent childSet={[<Component />, <Component />]} />;
239
+ }
240
+ }
241
+
242
+ expect(() =>
243
+ ReactTestUtils.renderIntoDocument(<ComponentWrapper />)
244
+ ).toErrorDev(
245
+ 'Each child in a list should have a unique "key" prop.' +
246
+ '\n\nCheck the render method of `InnerComponent`. ' +
247
+ 'It was passed a child from ComponentWrapper. ',
248
+ {withoutStack: true}
249
+ );
250
+});
251
+
252
+it('does not warn for arrays of elements with keys', () => {
253
+ ReactTestUtils.renderIntoDocument(
254
+ <Component>{[<Component key="#1" />, <Component key="#2" />]}</Component>
255
+ );
256
+});
257
+
258
+it('does not warn for iterable elements with keys', () => {
259
+ const iterable = {
260
+ '@@iterator': function() {
261
+ let i = 0;
262
+ return {
263
+ next: function() {
264
+ const done = ++i > 2;
265
+ return {
266
+ value: done ? undefined : <Component key={'#' + i} />,
267
+ done: done,
268
+ };
269
+ },
270
+ };
271
+ },
272
+ };
273
+
274
+ ReactTestUtils.renderIntoDocument(<Component>{iterable}</Component>);
275
+});
276
+
277
+it('does not warn for numeric keys in entry iterable as a child', () => {
278
+ const iterable = {
279
+ '@@iterator': function() {
280
+ let i = 0;
281
+ return {
282
+ next: function() {
283
+ const done = ++i > 2;
284
+ return {value: done ? undefined : [i, <Component />], done: done};
285
+ },
286
+ };
287
+ },
288
+ };
289
+ iterable.entries = iterable['@@iterator'];
290
+
291
+ ReactTestUtils.renderIntoDocument(<Component>{iterable}</Component>);
292
+});
293
+
294
+it('does not warn when the element is directly as children', () => {
295
+ ReactTestUtils.renderIntoDocument(
296
+ <Component>
297
+ <Component />
298
+ <Component />
299
+ </Component>
300
+ );
301
+});
302
+
303
+it('does not warn when the child array contains non-elements', () => {
304
+ void (<Component>{[{}, {}]}</Component>);
305
+});
306
+
307
+it('should give context for PropType errors in nested components.', () => {
308
+ // In this test, we're making sure that if a proptype error is found in a
309
+ // component, we give a small hint as to which parent instantiated that
310
+ // component as per warnings about key usage in ReactElementValidator.
311
+ function MyComp({color}) {
312
+ return <div>My color is {color}</div>;
313
+ }
314
+ MyComp.propTypes = {
315
+ color: PropTypes.string,
316
+ };
317
+ class ParentComp extends React.Component {
318
+ render() {
319
+ return <MyComp color={123} />;
320
+ }
321
+ }
322
+ expect(() =>
323
+ ReactTestUtils.renderIntoDocument(<ParentComp />)
324
+ ).toErrorDev(
325
+ 'Warning: Failed prop type: ' +
326
+ 'Invalid prop `color` of type `number` supplied to `MyComp`, ' +
327
+ 'expected `string`.',
328
+ {withoutStack: true}
329
+ );
330
+});
331
+
332
+it('gives a helpful error when passing null, undefined, or boolean', () => {
333
+ const Undefined = undefined;
334
+ const Null = null;
335
+ const True = true;
336
+ const Div = 'div';
337
+ expect(
338
+ () => void (<Undefined />)
339
+ ).toErrorDev(
340
+ 'Warning: React.jsx: type is invalid -- expected a string ' +
341
+ '(for built-in components) or a class/function (for composite ' +
342
+ 'components) but got: undefined. You likely forgot to export your ' +
343
+ "component from the file it's defined in, or you might have mixed up " +
344
+ 'default and named imports.' +
345
+ (process.env.BABEL_ENV === 'development'
346
+ ? '\n\nCheck your code at **.'
347
+ : ''),
348
+ {withoutStack: true}
349
+ );
350
+ expect(
351
+ () => void (<Null />)
352
+ ).toErrorDev(
353
+ 'Warning: React.jsx: type is invalid -- expected a string ' +
354
+ '(for built-in components) or a class/function (for composite ' +
355
+ 'components) but got: null.' +
356
+ (process.env.BABEL_ENV === 'development'
357
+ ? '\n\nCheck your code at **.'
358
+ : ''),
359
+ {withoutStack: true}
360
+ );
361
+ expect(
362
+ () => void (<True />)
363
+ ).toErrorDev(
364
+ 'Warning: React.jsx: type is invalid -- expected a string ' +
365
+ '(for built-in components) or a class/function (for composite ' +
366
+ 'components) but got: boolean.' +
367
+ (process.env.BABEL_ENV === 'development'
368
+ ? '\n\nCheck your code at **.'
369
+ : ''),
370
+ {withoutStack: true}
371
+ );
372
+ // No error expected
373
+ void (<Div />);
374
+});
375
+
376
+it('should check default prop values', () => {
377
+ RequiredPropComponent.defaultProps = {prop: null};
378
+
379
+ expect(() =>
380
+ ReactTestUtils.renderIntoDocument(<RequiredPropComponent />)
381
+ ).toErrorDev(
382
+ 'Warning: Failed prop type: Required prop `prop` was not specified in ' +
383
+ '`RequiredPropComponent`.',
384
+ {withoutStack: true}
385
+ );
386
+});
387
+
388
+it('should warn on invalid prop types', () => {
389
+ // Since there is no prevalidation step for ES6 classes, there is no hook
390
+ // for us to issue a warning earlier than element creation when the error
391
+ // actually occurs. Since this step is skipped in production, we should just
392
+ // warn instead of throwing for this case.
393
+ class NullPropTypeComponent extends React.Component {
394
+ render() {
395
+ return <span>{this.props.prop}</span>;
396
+ }
397
+ }
398
+ NullPropTypeComponent.propTypes = {
399
+ prop: null,
400
+ };
401
+ expect(() =>
402
+ ReactTestUtils.renderIntoDocument(<NullPropTypeComponent />)
403
+ ).toErrorDev(
404
+ 'NullPropTypeComponent: prop type `prop` is invalid; it must be a ' +
405
+ 'function, usually from the `prop-types` package,',
406
+ {withoutStack: true}
407
+ );
408
+});
409
+
410
+xit('should warn on invalid context types', () => {
411
+ class NullContextTypeComponent extends React.Component {
412
+ render() {
413
+ return <span>{this.props.prop}</span>;
414
+ }
415
+ }
416
+ NullContextTypeComponent.contextTypes = {
417
+ prop: null,
418
+ };
419
+ expect(() =>
420
+ ReactTestUtils.renderIntoDocument(<NullContextTypeComponent />)
421
+ ).toErrorDev(
422
+ 'NullContextTypeComponent: type `prop` is invalid; it must ' +
423
+ 'be a function, usually from the `prop-types` package,'
424
+ );
425
+});
426
+
427
+it('should warn if getDefaultProps is specified on the class', () => {
428
+ class GetDefaultPropsComponent extends React.Component {
429
+ render() {
430
+ return <span>{this.props.prop}</span>;
431
+ }
432
+ }
433
+ GetDefaultPropsComponent.getDefaultProps = () => ({
434
+ prop: 'foo',
435
+ });
436
+ expect(() =>
437
+ ReactTestUtils.renderIntoDocument(<GetDefaultPropsComponent />)
438
+ ).toErrorDev(
439
+ 'getDefaultProps is only used on classic React.createClass definitions.' +
440
+ ' Use a static property named `defaultProps` instead.',
441
+ {withoutStack: true}
442
+ );
443
+});
444
+
445
+it('should warn if component declares PropTypes instead of propTypes', () => {
446
+ class MisspelledPropTypesComponent extends React.Component {
447
+ render() {
448
+ return <span>{this.props.prop}</span>;
449
+ }
450
+ }
451
+ MisspelledPropTypesComponent.PropTypes = {
452
+ prop: PropTypes.string,
453
+ };
454
+ expect(() =>
455
+ ReactTestUtils.renderIntoDocument(
456
+ <MisspelledPropTypesComponent prop="hi" />
457
+ )
458
+ ).toErrorDev(
459
+ 'Warning: Component MisspelledPropTypesComponent declared `PropTypes` ' +
460
+ 'instead of `propTypes`. Did you misspell the property assignment?',
461
+ {withoutStack: true}
462
+ );
463
+});
464
+
465
+// Not supported.
466
+xit('warns for fragments with illegal attributes', () => {
467
+ class Foo extends React.Component {
468
+ render() {
469
+ return <React.Fragment a={1}>hello</React.Fragment>;
470
+ }
471
+ }
472
+
473
+ expect(() => ReactTestUtils.renderIntoDocument(<Foo />)).toErrorDev(
474
+ 'Invalid prop `a` supplied to `React.Fragment`. React.Fragment ' +
475
+ 'can only have `key` and `children` props.'
476
+ );
477
+});
478
+
479
+// Not supported.
480
+xit('warns for fragments with refs', () => {
481
+ class Foo extends React.Component {
482
+ render() {
483
+ return (
484
+ <React.Fragment
485
+ ref={bar => {
486
+ this.foo = bar;
487
+ }}>
488
+ hello
489
+ </React.Fragment>
490
+ );
491
+ }
492
+ }
493
+
494
+ expect(() => ReactTestUtils.renderIntoDocument(<Foo />)).toErrorDev(
495
+ 'Invalid attribute `ref` supplied to `React.Fragment`.'
496
+ );
497
+});
498
+
499
+// Not supported.
500
+xit('does not warn for fragments of multiple elements without keys', () => {
501
+ ReactTestUtils.renderIntoDocument(
502
+ <>
503
+ <span>1</span>
504
+ <span>2</span>
505
+ </>
506
+ );
507
+});
508
+
509
+// Not supported.
510
+xit('warns for fragments of multiple elements with same key', () => {
511
+ expect(() =>
512
+ ReactTestUtils.renderIntoDocument(
513
+ <>
514
+ <span key="a">1</span>
515
+ <span key="a">2</span>
516
+ <span key="b">3</span>
517
+ </>
518
+ )
519
+ ).toErrorDev('Encountered two children with the same key, `a`.', {
520
+ withoutStack: true,
521
+ });
522
+});
523
+
524
+// Not supported.
525
+xit('does not call lazy initializers eagerly', () => {
526
+ let didCall = false;
527
+ const Lazy = React.lazy(() => {
528
+ didCall = true;
529
+ return {then() {}};
530
+ });
531
+ <Lazy />;
532
+ expect(didCall).toBe(false);
533
+});
534
+
535
+it('supports classic refs', () => {
536
+ class Foo extends React.Component {
537
+ render() {
538
+ return <div className="foo" ref="inner" />;
539
+ }
540
+ }
541
+ const container = document.createElement('div');
542
+ const instance = ReactDOM.render(<Foo />, container);
543
+ expect(instance.refs.inner.className).toBe('foo');
544
+});
545
+
546
+it('should support refs on owned components', () => {
547
+ const innerObj = {};
548
+ const outerObj = {};
549
+
550
+ class Wrapper extends React.Component {
551
+ getObject = () => {
552
+ return this.props.object;
553
+ };
554
+
555
+ render() {
556
+ return <div>{this.props.children}</div>;
557
+ }
558
+ }
559
+
560
+ class Component extends React.Component {
561
+ render() {
562
+ const inner = <Wrapper object={innerObj} ref="inner" />;
563
+ const outer = (
564
+ <Wrapper object={outerObj} ref="outer">
565
+ {inner}
566
+ </Wrapper>
567
+ );
568
+ return outer;
569
+ }
570
+
571
+ componentDidMount() {
572
+ expect(this.refs.inner.getObject()).toEqual(innerObj);
573
+ expect(this.refs.outer.getObject()).toEqual(outerObj);
574
+ }
575
+ }
576
+
577
+ ReactTestUtils.renderIntoDocument(<Component />);
578
+});
579
+
580
+it('should support callback-style refs', () => {
581
+ const innerObj = {};
582
+ const outerObj = {};
583
+
584
+ class Wrapper extends React.Component {
585
+ getObject = () => {
586
+ return this.props.object;
587
+ };
588
+
589
+ render() {
590
+ return <div>{this.props.children}</div>;
591
+ }
592
+ }
593
+
594
+ let mounted = false;
595
+
596
+ class Component extends React.Component {
597
+ render() {
598
+ const inner = (
599
+ <Wrapper object={innerObj} ref={c => (this.innerRef = c)} />
600
+ );
601
+ const outer = (
602
+ <Wrapper object={outerObj} ref={c => (this.outerRef = c)}>
603
+ {inner}
604
+ </Wrapper>
605
+ );
606
+ return outer;
607
+ }
608
+
609
+ componentDidMount() {
610
+ expect(this.innerRef.getObject()).toEqual(innerObj);
611
+ expect(this.outerRef.getObject()).toEqual(outerObj);
612
+ mounted = true;
613
+ }
614
+ }
615
+
616
+ ReactTestUtils.renderIntoDocument(<Component />);
617
+ expect(mounted).toBe(true);
618
+});
619
+
620
+// Not supported.
621
+xit('should support object-style refs', () => {
622
+ const innerObj = {};
623
+ const outerObj = {};
624
+
625
+ class Wrapper extends React.Component {
626
+ getObject = () => {
627
+ return this.props.object;
628
+ };
629
+
630
+ render() {
631
+ return <div>{this.props.children}</div>;
632
+ }
633
+ }
634
+
635
+ let mounted = false;
636
+
637
+ class Component extends React.Component {
638
+ constructor() {
639
+ super();
640
+ this.innerRef = React.createRef();
641
+ this.outerRef = React.createRef();
642
+ }
643
+ render() {
644
+ const inner = <Wrapper object={innerObj} ref={this.innerRef} />;
645
+ const outer = (
646
+ <Wrapper object={outerObj} ref={this.outerRef}>
647
+ {inner}
648
+ </Wrapper>
649
+ );
650
+ return outer;
651
+ }
652
+
653
+ componentDidMount() {
654
+ expect(this.innerRef.current.getObject()).toEqual(innerObj);
655
+ expect(this.outerRef.current.getObject()).toEqual(outerObj);
656
+ mounted = true;
657
+ }
658
+ }
659
+
660
+ ReactTestUtils.renderIntoDocument(<Component />);
661
+ expect(mounted).toBe(true);
662
+});
663
+
664
+it('should support new-style refs with mixed-up owners', () => {
665
+ class Wrapper extends React.Component {
666
+ getTitle = () => {
667
+ return this.props.title;
668
+ };
669
+
670
+ render() {
671
+ return this.props.getContent();
672
+ }
673
+ }
674
+
675
+ let mounted = false;
676
+
677
+ class Component extends React.Component {
678
+ getInner = () => {
679
+ // (With old-style refs, it's impossible to get a ref to this div
680
+ // because Wrapper is the current owner when this function is called.)
681
+ return <div className="inner" ref={c => (this.innerRef = c)} />;
682
+ };
683
+
684
+ render() {
685
+ return (
686
+ <Wrapper
687
+ title="wrapper"
688
+ ref={c => (this.wrapperRef = c)}
689
+ getContent={this.getInner}
690
+ />
691
+ );
692
+ }
693
+
694
+ componentDidMount() {
695
+ // Check .props.title to make sure we got the right elements back
696
+ expect(this.wrapperRef.getTitle()).toBe('wrapper');
697
+ expect(this.innerRef.className).toBe('inner');
698
+ mounted = true;
699
+ }
700
+ }
701
+
702
+ ReactTestUtils.renderIntoDocument(<Component />);
703
+ expect(mounted).toBe(true);
704
+});
705
+
706
+it('should warn when `key` is being accessed on composite element', () => {
707
+ const container = document.createElement('div');
708
+ class Child extends React.Component {
709
+ render() {
710
+ return <div> {this.props.key} </div>;
711
+ }
712
+ }
713
+ class Parent extends React.Component {
714
+ render() {
715
+ return (
716
+ <div>
717
+ <Child key="0" />
718
+ <Child key="1" />
719
+ <Child key="2" />
720
+ </div>
721
+ );
722
+ }
723
+ }
724
+ expect(() =>
725
+ ReactDOM.render(<Parent />, container)
726
+ ).toErrorDev(
727
+ 'Child: `key` is not a prop. Trying to access it will result ' +
728
+ 'in `undefined` being returned. If you need to access the same ' +
729
+ 'value within the child component, you should pass it as a different ' +
730
+ 'prop. (https://reactjs.org/link/special-props)',
731
+ {withoutStack: true}
732
+ );
733
+});
734
+
735
+it('should warn when `ref` is being accessed', () => {
736
+ const container = document.createElement('div');
737
+ class Child extends React.Component {
738
+ render() {
739
+ return <div> {this.props.ref} </div>;
740
+ }
741
+ }
742
+ class Parent extends React.Component {
743
+ render() {
744
+ return (
745
+ <div>
746
+ <Child ref="childElement" />
747
+ </div>
748
+ );
749
+ }
750
+ }
751
+ expect(() =>
752
+ ReactDOM.render(<Parent />, container)
753
+ ).toErrorDev(
754
+ 'Child: `ref` is not a prop. Trying to access it will result ' +
755
+ 'in `undefined` being returned. If you need to access the same ' +
756
+ 'value within the child component, you should pass it as a different ' +
757
+ 'prop. (https://reactjs.org/link/special-props)',
758
+ {withoutStack: true}
759
+ );
760
+});
761
+
762
+// Note: no warning before 16.
763
+it('should NOT warn when owner and self are different for string refs', () => {
764
+ class ClassWithRenderProp extends React.Component {
765
+ render() {
766
+ return this.props.children();
767
+ }
768
+ }
769
+
770
+ class ClassParent extends React.Component {
771
+ render() {
772
+ return (
773
+ <ClassWithRenderProp>{() => <div ref="myRef" />}</ClassWithRenderProp>
774
+ );
775
+ }
776
+ }
777
+
778
+ const container = document.createElement('div');
779
+ ReactDOM.render(<ClassParent />, container);
780
+});
fixtures/legacy-jsx-runtimes/react-14/yarn.lock
new
+285
@@ -0,0 +1,285 @@
1
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2
+# yarn lockfile v1
3
+
4
+
5
+acorn@^5.2.1:
6
+ version "5.7.4"
7
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e"
8
+ integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==
9
+
10
+amdefine@>=0.0.4:
11
+ version "1.0.1"
12
+ resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
13
+ integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=
14
+
15
+asap@~2.0.3:
16
+ version "2.0.6"
17
+ resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
18
+ integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=
19
+
20
+ast-types@0.9.6:
21
+ version "0.9.6"
22
+ resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.6.tgz#102c9e9e9005d3e7e3829bf0c4fa24ee862ee9b9"
23
+ integrity sha1-ECyenpAF0+fjgpvwxPok7oYu6bk=
24
+
25
+balanced-match@^1.0.0:
26
+ version "1.0.0"
27
+ resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
28
+ integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
29
+
30
+base62@^1.1.0:
31
+ version "1.2.8"
32
+ resolved "https://registry.yarnpkg.com/base62/-/base62-1.2.8.tgz#1264cb0fb848d875792877479dbe8bae6bae3428"
33
+ integrity sha512-V6YHUbjLxN1ymqNLb1DPHoU1CpfdL7d2YTIp5W3U4hhoG4hhxNmsFDs66M9EXxBiSEke5Bt5dwdfMwwZF70iLA==
34
+
35
+brace-expansion@^1.1.7:
36
+ version "1.1.11"
37
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
38
+ integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
39
+ dependencies:
40
+ balanced-match "^1.0.0"
41
+ concat-map "0.0.1"
42
+
43
+commander@^2.5.0:
44
+ version "2.20.3"
45
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
46
+ integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
47
+
48
+commoner@^0.10.1:
49
+ version "0.10.8"
50
+ resolved "https://registry.yarnpkg.com/commoner/-/commoner-0.10.8.tgz#34fc3672cd24393e8bb47e70caa0293811f4f2c5"
51
+ integrity sha1-NPw2cs0kOT6LtH5wyqApOBH08sU=
52
+ dependencies:
53
+ commander "^2.5.0"
54
+ detective "^4.3.1"
55
+ glob "^5.0.15"
56
+ graceful-fs "^4.1.2"
57
+ iconv-lite "^0.4.5"
58
+ mkdirp "^0.5.0"
59
+ private "^0.1.6"
60
+ q "^1.1.2"
61
+ recast "^0.11.17"
62
+
63
+concat-map@0.0.1:
64
+ version "0.0.1"
65
+ resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
66
+ integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
67
+
68
+core-js@^1.0.0:
69
+ version "1.2.7"
70
+ resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
71
+ integrity sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=
72
+
73
+defined@^1.0.0:
74
+ version "1.0.0"
75
+ resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693"
76
+ integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=
77
+
78
+detective@^4.3.1:
79
+ version "4.7.1"
80
+ resolved "https://registry.yarnpkg.com/detective/-/detective-4.7.1.tgz#0eca7314338442febb6d65da54c10bb1c82b246e"
81
+ integrity sha512-H6PmeeUcZloWtdt4DAkFyzFL94arpHr3NOwwmVILFiy+9Qd4JTxxXrzfyGk/lmct2qVGBwTSwSXagqu2BxmWig==
82
+ dependencies:
83
+ acorn "^5.2.1"
84
+ defined "^1.0.0"
85
+
86
+envify@^3.0.0:
87
+ version "3.4.1"
88
+ resolved "https://registry.yarnpkg.com/envify/-/envify-3.4.1.tgz#d7122329e8df1688ba771b12501917c9ce5cbce8"
89
+ integrity sha1-1xIjKejfFoi6dxsSUBkXyc5cvOg=
90
+ dependencies:
91
+ jstransform "^11.0.3"
92
+ through "~2.3.4"
93
+
94
+esprima-fb@^15001.1.0-dev-harmony-fb:
95
+ version "15001.1.0-dev-harmony-fb"
96
+ resolved "https://registry.yarnpkg.com/esprima-fb/-/esprima-fb-15001.1.0-dev-harmony-fb.tgz#30a947303c6b8d5e955bee2b99b1d233206a6901"
97
+ integrity sha1-MKlHMDxrjV6VW+4rmbHSMyBqaQE=
98
+
99
+esprima@~3.1.0:
100
+ version "3.1.3"
101
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
102
+ integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=
103
+
104
+fbjs@^0.6.1:
105
+ version "0.6.1"
106
+ resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.6.1.tgz#9636b7705f5ba9684d44b72f78321254afc860f7"
107
+ integrity sha1-lja3cF9bqWhNRLcveDISVK/IYPc=
108
+ dependencies:
109
+ core-js "^1.0.0"
110
+ loose-envify "^1.0.0"
111
+ promise "^7.0.3"
112
+ ua-parser-js "^0.7.9"
113
+ whatwg-fetch "^0.9.0"
114
+
115
+glob@^5.0.15:
116
+ version "5.0.15"
117
+ resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1"
118
+ integrity sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=
119
+ dependencies:
120
+ inflight "^1.0.4"
121
+ inherits "2"
122
+ minimatch "2 || 3"
123
+ once "^1.3.0"
124
+ path-is-absolute "^1.0.0"
125
+
126
+graceful-fs@^4.1.2:
127
+ version "4.2.4"
128
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb"
129
+ integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==
130
+
131
+iconv-lite@^0.4.5:
132
+ version "0.4.24"
133
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
134
+ integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
135
+ dependencies:
136
+ safer-buffer ">= 2.1.2 < 3"
137
+
138
+inflight@^1.0.4:
139
+ version "1.0.6"
140
+ resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
141
+ integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
142
+ dependencies:
143
+ once "^1.3.0"
144
+ wrappy "1"
145
+
146
+inherits@2:
147
+ version "2.0.4"
148
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
149
+ integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
150
+
151
+"js-tokens@^3.0.0 || ^4.0.0":
152
+ version "4.0.0"
153
+ resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
154
+ integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
155
+
156
+jstransform@^11.0.3:
157
+ version "11.0.3"
158
+ resolved "https://registry.yarnpkg.com/jstransform/-/jstransform-11.0.3.tgz#09a78993e0ae4d4ef4487f6155a91f6190cb4223"
159
+ integrity sha1-CaeJk+CuTU70SH9hVakfYZDLQiM=
160
+ dependencies:
161
+ base62 "^1.1.0"
162
+ commoner "^0.10.1"
163
+ esprima-fb "^15001.1.0-dev-harmony-fb"
164
+ object-assign "^2.0.0"
165
+ source-map "^0.4.2"
166
+
167
+loose-envify@^1.0.0:
168
+ version "1.4.0"
169
+ resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
170
+ integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
171
+ dependencies:
172
+ js-tokens "^3.0.0 || ^4.0.0"
173
+
174
+"minimatch@2 || 3":
175
+ version "3.0.4"
176
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
177
+ integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
178
+ dependencies:
179
+ brace-expansion "^1.1.7"
180
+
181
+minimist@^1.2.5:
182
+ version "1.2.5"
183
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
184
+ integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
185
+
186
+mkdirp@^0.5.0:
187
+ version "0.5.5"
188
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
189
+ integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
190
+ dependencies:
191
+ minimist "^1.2.5"
192
+
193
+object-assign@^2.0.0:
194
+ version "2.1.1"
195
+ resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-2.1.1.tgz#43c36e5d569ff8e4816c4efa8be02d26967c18aa"
196
+ integrity sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=
197
+
198
+once@^1.3.0:
199
+ version "1.4.0"
200
+ resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
201
+ integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
202
+ dependencies:
203
+ wrappy "1"
204
+
205
+path-is-absolute@^1.0.0:
206
+ version "1.0.1"
207
+ resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
208
+ integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
209
+
210
+private@^0.1.6, private@~0.1.5:
211
+ version "0.1.8"
212
+ resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff"
213
+ integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==
214
+
215
+promise@^7.0.3:
216
+ version "7.3.1"
217
+ resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
218
+ integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==
219
+ dependencies:
220
+ asap "~2.0.3"
221
+
222
+q@^1.1.2:
223
+ version "1.5.1"
224
+ resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
225
+ integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=
226
+
227
+react-dom@0.14:
228
+ version "0.14.9"
229
+ resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-0.14.9.tgz#05064a3dcf0fb1880a3b2bfc9d58c55d8d9f6293"
230
+ integrity sha1-BQZKPc8PsYgKOyv8nVjFXY2fYpM=
231
+
232
+react@0.14:
233
+ version "0.14.9"
234
+ resolved "https://registry.yarnpkg.com/react/-/react-0.14.9.tgz#9110a6497c49d44ba1c0edd317aec29c2e0d91d1"
235
+ integrity sha1-kRCmSXxJ1EuhwO3TF67CnC4NkdE=
236
+ dependencies:
237
+ envify "^3.0.0"
238
+ fbjs "^0.6.1"
239
+
240
+recast@^0.11.17:
241
+ version "0.11.23"
242
+ resolved "https://registry.yarnpkg.com/recast/-/recast-0.11.23.tgz#451fd3004ab1e4df9b4e4b66376b2a21912462d3"
243
+ integrity sha1-RR/TAEqx5N+bTktmN2sqIZEkYtM=
244
+ dependencies:
245
+ ast-types "0.9.6"
246
+ esprima "~3.1.0"
247
+ private "~0.1.5"
248
+ source-map "~0.5.0"
249
+
250
+"safer-buffer@>= 2.1.2 < 3":
251
+ version "2.1.2"
252
+ resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
253
+ integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
254
+
255
+source-map@^0.4.2:
256
+ version "0.4.4"
257
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b"
258
+ integrity sha1-66T12pwNyZneaAMti092FzZSA2s=
259
+ dependencies:
260
+ amdefine ">=0.0.4"
261
+
262
+source-map@~0.5.0:
263
+ version "0.5.7"
264
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
265
+ integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
266
+
267
+through@~2.3.4:
268
+ version "2.3.8"
269
+ resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
270
+ integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
271
+
272
+ua-parser-js@^0.7.9:
273
+ version "0.7.22"
274
+ resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.22.tgz#960df60a5f911ea8f1c818f3747b99c6e177eae3"
275
+ integrity sha512-YUxzMjJ5T71w6a8WWVcMGM6YWOTX27rCoIQgLXiWaxqXSx9D7DNjiGWn1aJIRSQ5qr0xuhra77bSIh6voR/46Q==
276
+
277
+whatwg-fetch@^0.9.0:
278
+ version "0.9.0"
279
+ resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-0.9.0.tgz#0e3684c6cb9995b43efc9df03e4c365d95fd9cc0"
280
+ integrity sha1-DjaExsuZlbQ+/J3wPkw2XZX9nMA=
281
+
282
+wrappy@1:
283
+ version "1.0.2"
284
+ resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
285
+ integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
fixtures/legacy-jsx-runtimes/react-15/cjs/react-jsx-dev-runtime.development.js
new
+866
@@ -0,0 +1,866 @@
1
+/** @license React v15.7.0
2
+ * react-jsx-dev-runtime.development.js
3
+ *
4
+ * Copyright (c) Facebook, Inc. and its affiliates.
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */
9
+
10
+'use strict';
11
+
12
+if (process.env.NODE_ENV !== "production") {
13
+ (function() {
14
+'use strict';
15
+
16
+var React = require('react');
17
+var ReactComponentTreeHook = require('react/lib/ReactComponentTreeHook');
18
+
19
+// ATTENTION
20
+// When adding new symbols to this file,
21
+// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'
22
+// The Symbol used to tag the ReactElement-like types. If there is no native Symbol
23
+// nor polyfill, then a plain number is used for performance.
24
+var REACT_ELEMENT_TYPE = 0xeac7;
25
+var REACT_PORTAL_TYPE = 0xeaca;
26
+exports.Fragment = 0xeacb;
27
+var REACT_STRICT_MODE_TYPE = 0xeacc;
28
+var REACT_PROFILER_TYPE = 0xead2;
29
+var REACT_PROVIDER_TYPE = 0xeacd;
30
+var REACT_CONTEXT_TYPE = 0xeace;
31
+var REACT_FORWARD_REF_TYPE = 0xead0;
32
+var REACT_SUSPENSE_TYPE = 0xead1;
33
+var REACT_SUSPENSE_LIST_TYPE = 0xead8;
34
+var REACT_MEMO_TYPE = 0xead3;
35
+var REACT_LAZY_TYPE = 0xead4;
36
+var REACT_BLOCK_TYPE = 0xead9;
37
+var REACT_SERVER_BLOCK_TYPE = 0xeada;
38
+var REACT_FUNDAMENTAL_TYPE = 0xead5;
39
+var REACT_SCOPE_TYPE = 0xead7;
40
+var REACT_OPAQUE_ID_TYPE = 0xeae0;
41
+var REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;
42
+var REACT_OFFSCREEN_TYPE = 0xeae2;
43
+var REACT_LEGACY_HIDDEN_TYPE = 0xeae3;
44
+
45
+if (typeof Symbol === 'function' && Symbol.for) {
46
+ var symbolFor = Symbol.for;
47
+ REACT_ELEMENT_TYPE = symbolFor('react.element');
48
+ REACT_PORTAL_TYPE = symbolFor('react.portal');
49
+ exports.Fragment = symbolFor('react.fragment');
50
+ REACT_STRICT_MODE_TYPE = symbolFor('react.strict_mode');
51
+ REACT_PROFILER_TYPE = symbolFor('react.profiler');
52
+ REACT_PROVIDER_TYPE = symbolFor('react.provider');
53
+ REACT_CONTEXT_TYPE = symbolFor('react.context');
54
+ REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');
55
+ REACT_SUSPENSE_TYPE = symbolFor('react.suspense');
56
+ REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');
57
+ REACT_MEMO_TYPE = symbolFor('react.memo');
58
+ REACT_LAZY_TYPE = symbolFor('react.lazy');
59
+ REACT_BLOCK_TYPE = symbolFor('react.block');
60
+ REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block');
61
+ REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental');
62
+ REACT_SCOPE_TYPE = symbolFor('react.scope');
63
+ REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id');
64
+ REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');
65
+ REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');
66
+ REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');
67
+}
68
+
69
+var MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
70
+var FAUX_ITERATOR_SYMBOL = '@@iterator';
71
+function getIteratorFn(maybeIterable) {
72
+ if (maybeIterable === null || typeof maybeIterable !== 'object') {
73
+ return null;
74
+ }
75
+
76
+ var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];
77
+
78
+ if (typeof maybeIterator === 'function') {
79
+ return maybeIterator;
80
+ }
81
+
82
+ return null;
83
+}
84
+
85
+function error(format) {
86
+ {
87
+ for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
88
+ args[_key2 - 1] = arguments[_key2];
89
+ }
90
+
91
+ printWarning('error', format, args);
92
+ }
93
+}
94
+
95
+function printWarning(level, format, args) {
96
+ // When changing this logic, you might want to also
97
+ // update consoleWithStackDev.www.js as well.
98
+ {
99
+ var stack = '';
100
+
101
+ if (currentlyValidatingElement) {
102
+ stack += ReactComponentTreeHook.getCurrentStackAddendum(currentlyValidatingElement)
103
+ }
104
+
105
+
106
+ if (stack !== '') {
107
+ format += '%s';
108
+ args = args.concat([stack]);
109
+ }
110
+
111
+ var argsWithFormat = args.map(function (item) {
112
+ return '' + item;
113
+ }); // Careful: RN currently depends on this prefix
114
+
115
+ argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it
116
+ // breaks IE9: https://github.com/facebook/react/issues/13610
117
+ // eslint-disable-next-line react-internal/no-production-logging
118
+
119
+ Function.prototype.apply.call(console[level], console, argsWithFormat);
120
+ }
121
+}
122
+
123
+// Filter certain DOM attributes (e.g. src, href) if their values are empty strings.
124
+
125
+var enableScopeAPI = false; // Experimental Create Event Handle API.
126
+
127
+function isValidElementType(type) {
128
+ if (typeof type === 'string' || typeof type === 'function') {
129
+ return true;
130
+ } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).
131
+
132
+
133
+ if (type === exports.Fragment || type === REACT_PROFILER_TYPE || type === REACT_DEBUG_TRACING_MODE_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI ) {
134
+ return true;
135
+ }
136
+
137
+ if (typeof type === 'object' && type !== null) {
138
+ if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_BLOCK_TYPE || type[0] === REACT_SERVER_BLOCK_TYPE) {
139
+ return true;
140
+ }
141
+ }
142
+
143
+ return false;
144
+}
145
+var BEFORE_SLASH_RE = /^(.*)[\\\/]/;
146
+function describeComponentFrame (name, source, ownerName) {
147
+ var sourceInfo = '';
148
+
149
+ if (source) {
150
+ var path = source.fileName;
151
+ var fileName = path.replace(BEFORE_SLASH_RE, '');
152
+
153
+ {
154
+ // In DEV, include code for a common special case:
155
+ // prefer "folder/index.js" instead of just "index.js".
156
+ if (/^index\./.test(fileName)) {
157
+ var match = path.match(BEFORE_SLASH_RE);
158
+
159
+ if (match) {
160
+ var pathBeforeSlash = match[1];
161
+
162
+ if (pathBeforeSlash) {
163
+ var folderName = pathBeforeSlash.replace(BEFORE_SLASH_RE, '');
164
+ fileName = folderName + '/' + fileName;
165
+ }
166
+ }
167
+ }
168
+ }
169
+
170
+ sourceInfo = ' (at ' + fileName + ':' + source.lineNumber + ')';
171
+ } else if (ownerName) {
172
+ sourceInfo = ' (created by ' + ownerName + ')';
173
+ }
174
+
175
+ return '\n in ' + (name || 'Unknown') + sourceInfo;
176
+}
177
+
178
+var Resolved = 1;
179
+function refineResolvedLazyComponent(lazyComponent) {
180
+ return lazyComponent._status === Resolved ? lazyComponent._result : null;
181
+}
182
+
183
+function getWrappedName(outerType, innerType, wrapperName) {
184
+ var functionName = innerType.displayName || innerType.name || '';
185
+ return outerType.displayName || (functionName !== '' ? wrapperName + "(" + functionName + ")" : wrapperName);
186
+}
187
+
188
+function getComponentName(type) {
189
+ if (type == null) {
190
+ // Host root, text node or just invalid type.
191
+ return null;
192
+ }
193
+
194
+ {
195
+ if (typeof type.tag === 'number') {
196
+ error('Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');
197
+ }
198
+ }
199
+
200
+ if (typeof type === 'function') {
201
+ return type.displayName || type.name || null;
202
+ }
203
+
204
+ if (typeof type === 'string') {
205
+ return type;
206
+ }
207
+
208
+ switch (type) {
209
+ case exports.Fragment:
210
+ return 'Fragment';
211
+
212
+ case REACT_PORTAL_TYPE:
213
+ return 'Portal';
214
+
215
+ case REACT_PROFILER_TYPE:
216
+ return "Profiler";
217
+
218
+ case REACT_STRICT_MODE_TYPE:
219
+ return 'StrictMode';
220
+
221
+ case REACT_SUSPENSE_TYPE:
222
+ return 'Suspense';
223
+
224
+ case REACT_SUSPENSE_LIST_TYPE:
225
+ return 'SuspenseList';
226
+ }
227
+
228
+ if (typeof type === 'object') {
229
+ switch (type.$$typeof) {
230
+ case REACT_CONTEXT_TYPE:
231
+ return 'Context.Consumer';
232
+
233
+ case REACT_PROVIDER_TYPE:
234
+ return 'Context.Provider';
235
+
236
+ case REACT_FORWARD_REF_TYPE:
237
+ return getWrappedName(type, type.render, 'ForwardRef');
238
+
239
+ case REACT_MEMO_TYPE:
240
+ return getComponentName(type.type);
241
+
242
+ case REACT_BLOCK_TYPE:
243
+ return getComponentName(type.render);
244
+
245
+ case REACT_LAZY_TYPE:
246
+ {
247
+ var thenable = type;
248
+ var resolvedThenable = refineResolvedLazyComponent(thenable);
249
+
250
+ if (resolvedThenable) {
251
+ return getComponentName(resolvedThenable);
252
+ }
253
+
254
+ break;
255
+ }
256
+ }
257
+ }
258
+
259
+ return null;
260
+}
261
+var loggedTypeFailures = {};
262
+var currentlyValidatingElement = null;
263
+
264
+function setCurrentlyValidatingElement(element) {
265
+ currentlyValidatingElement = element;
266
+}
267
+
268
+function checkPropTypes(typeSpecs, values, location, componentName, element) {
269
+ {
270
+ // $FlowFixMe This is okay but Flow doesn't know it.
271
+ var has = Function.call.bind(Object.prototype.hasOwnProperty);
272
+
273
+ for (var typeSpecName in typeSpecs) {
274
+ if (has(typeSpecs, typeSpecName)) {
275
+ var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to
276
+ // fail the render phase where it didn't fail before. So we log it.
277
+ // After these have been cleaned up, we'll let them throw.
278
+
279
+ try {
280
+ // This is intentionally an invariant that gets caught. It's the same
281
+ // behavior as without this statement except with a better message.
282
+ if (typeof typeSpecs[typeSpecName] !== 'function') {
283
+ var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');
284
+ err.name = 'Invariant Violation';
285
+ throw err;
286
+ }
287
+
288
+ error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');
289
+ } catch (ex) {
290
+ error$1 = ex;
291
+ }
292
+
293
+ if (error$1 && !(error$1 instanceof Error)) {
294
+ setCurrentlyValidatingElement(element);
295
+
296
+ error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);
297
+
298
+ setCurrentlyValidatingElement(null);
299
+ }
300
+
301
+ if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {
302
+ // Only monitor this failure once because there tends to be a lot of the
303
+ // same error.
304
+ loggedTypeFailures[error$1.message] = true;
305
+ setCurrentlyValidatingElement(element);
306
+
307
+ error('Failed %s type: %s', location, error$1.message);
308
+
309
+ setCurrentlyValidatingElement(null);
310
+ }
311
+ }
312
+ }
313
+ }
314
+}
315
+
316
+var ReactCurrentOwner = require('react/lib/ReactCurrentOwner');
317
+var hasOwnProperty = Object.prototype.hasOwnProperty;
318
+var RESERVED_PROPS = {
319
+ key: true,
320
+ ref: true,
321
+ __self: true,
322
+ __source: true
323
+};
324
+var specialPropKeyWarningShown;
325
+var specialPropRefWarningShown;
326
+var didWarnAboutStringRefs;
327
+
328
+{
329
+ didWarnAboutStringRefs = {};
330
+}
331
+
332
+function hasValidRef(config) {
333
+ {
334
+ if (hasOwnProperty.call(config, 'ref')) {
335
+ var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;
336
+
337
+ if (getter && getter.isReactWarning) {
338
+ return false;
339
+ }
340
+ }
341
+ }
342
+
343
+ return config.ref !== undefined;
344
+}
345
+
346
+function hasValidKey(config) {
347
+ {
348
+ if (hasOwnProperty.call(config, 'key')) {
349
+ var getter = Object.getOwnPropertyDescriptor(config, 'key').get;
350
+
351
+ if (getter && getter.isReactWarning) {
352
+ return false;
353
+ }
354
+ }
355
+ }
356
+
357
+ return config.key !== undefined;
358
+}
359
+
360
+function defineKeyPropWarningGetter(props, displayName) {
361
+ {
362
+ var warnAboutAccessingKey = function () {
363
+ if (!specialPropKeyWarningShown) {
364
+ specialPropKeyWarningShown = true;
365
+
366
+ error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);
367
+ }
368
+ };
369
+
370
+ warnAboutAccessingKey.isReactWarning = true;
371
+ Object.defineProperty(props, 'key', {
372
+ get: warnAboutAccessingKey,
373
+ configurable: true
374
+ });
375
+ }
376
+}
377
+
378
+function defineRefPropWarningGetter(props, displayName) {
379
+ {
380
+ var warnAboutAccessingRef = function () {
381
+ if (!specialPropRefWarningShown) {
382
+ specialPropRefWarningShown = true;
383
+
384
+ error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);
385
+ }
386
+ };
387
+
388
+ warnAboutAccessingRef.isReactWarning = true;
389
+ Object.defineProperty(props, 'ref', {
390
+ get: warnAboutAccessingRef,
391
+ configurable: true
392
+ });
393
+ }
394
+}
395
+/**
396
+ * Factory method to create a new React element. This no longer adheres to
397
+ * the class pattern, so do not use new to call it. Also, instanceof check
398
+ * will not work. Instead test $$typeof field against Symbol.for('react.element') to check
399
+ * if something is a React Element.
400
+ *
401
+ * @param {*} type
402
+ * @param {*} props
403
+ * @param {*} key
404
+ * @param {string|object} ref
405
+ * @param {*} owner
406
+ * @param {*} self A *temporary* helper to detect places where `this` is
407
+ * different from the `owner` when React.createElement is called, so that we
408
+ * can warn. We want to get rid of owner and replace string `ref`s with arrow
409
+ * functions, and as long as `this` and owner are the same, there will be no
410
+ * change in behavior.
411
+ * @param {*} source An annotation object (added by a transpiler or otherwise)
412
+ * indicating filename, line number, and/or other information.
413
+ * @internal
414
+ */
415
+
416
+
417
+var ReactElement = function (type, key, ref, self, source, owner, props) {
418
+ var element = {
419
+ // This tag allows us to uniquely identify this as a React Element
420
+ $$typeof: REACT_ELEMENT_TYPE,
421
+ // Built-in properties that belong on the element
422
+ type: type,
423
+ key: key,
424
+ ref: ref,
425
+ props: props,
426
+ // Record the component responsible for creating this element.
427
+ _owner: owner
428
+ };
429
+
430
+ {
431
+ // The validation flag is currently mutative. We put it on
432
+ // an external backing store so that we can freeze the whole object.
433
+ // This can be replaced with a WeakMap once they are implemented in
434
+ // commonly used development environments.
435
+ element._store = {}; // To make comparing ReactElements easier for testing purposes, we make
436
+ // the validation flag non-enumerable (where possible, which should
437
+ // include every environment we run tests in), so the test framework
438
+ // ignores it.
439
+
440
+ Object.defineProperty(element._store, 'validated', {
441
+ configurable: false,
442
+ enumerable: false,
443
+ writable: true,
444
+ value: false
445
+ }); // self and source are DEV only properties.
446
+
447
+ Object.defineProperty(element, '_self', {
448
+ configurable: false,
449
+ enumerable: false,
450
+ writable: false,
451
+ value: self
452
+ }); // Two elements created in two different places should be considered
453
+ // equal for testing purposes and therefore we hide it from enumeration.
454
+
455
+ Object.defineProperty(element, '_source', {
456
+ configurable: false,
457
+ enumerable: false,
458
+ writable: false,
459
+ value: source
460
+ });
461
+
462
+ if (Object.freeze) {
463
+ Object.freeze(element.props);
464
+ Object.freeze(element);
465
+ }
466
+ }
467
+
468
+ return element;
469
+};
470
+/**
471
+ * https://github.com/reactjs/rfcs/pull/107
472
+ * @param {*} type
473
+ * @param {object} props
474
+ * @param {string} key
475
+ */
476
+
477
+function jsxDEV(type, config, maybeKey, source, self) {
478
+ {
479
+ var propName; // Reserved names are extracted
480
+
481
+ var props = {};
482
+ var key = null;
483
+ var ref = null; // Currently, key can be spread in as a prop. This causes a potential
484
+ // issue if key is also explicitly declared (ie. <div {...props} key="Hi" />
485
+ // or <div key="Hi" {...props} /> ). We want to deprecate key spread,
486
+ // but as an intermediary step, we will use jsxDEV for everything except
487
+ // <div {...props} key="Hi" />, because we aren't currently able to tell if
488
+ // key is explicitly declared to be undefined or not.
489
+
490
+ if (maybeKey !== undefined) {
491
+ key = '' + maybeKey;
492
+ }
493
+
494
+ if (hasValidKey(config)) {
495
+ key = '' + config.key;
496
+ }
497
+
498
+ if (hasValidRef(config)) {
499
+ ref = config.ref;
500
+ } // Remaining properties are added to a new props object
501
+
502
+
503
+ for (propName in config) {
504
+ if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {
505
+ props[propName] = config[propName];
506
+ }
507
+ } // Resolve default props
508
+
509
+
510
+ if (type && type.defaultProps) {
511
+ var defaultProps = type.defaultProps;
512
+
513
+ for (propName in defaultProps) {
514
+ if (props[propName] === undefined) {
515
+ props[propName] = defaultProps[propName];
516
+ }
517
+ }
518
+ }
519
+
520
+ if (key || ref) {
521
+ var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;
522
+
523
+ if (key) {
524
+ defineKeyPropWarningGetter(props, displayName);
525
+ }
526
+
527
+ if (ref) {
528
+ defineRefPropWarningGetter(props, displayName);
529
+ }
530
+ }
531
+
532
+ return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);
533
+ }
534
+}
535
+
536
+var ReactCurrentOwner$1 = require('react/lib/ReactCurrentOwner');
537
+
538
+function setCurrentlyValidatingElement$1(element) {
539
+ currentlyValidatingElement = element;
540
+}
541
+
542
+var propTypesMisspellWarningShown;
543
+
544
+{
545
+ propTypesMisspellWarningShown = false;
546
+}
547
+/**
548
+ * Verifies the object is a ReactElement.
549
+ * See https://reactjs.org/docs/react-api.html#isvalidelement
550
+ * @param {?object} object
551
+ * @return {boolean} True if `object` is a ReactElement.
552
+ * @final
553
+ */
554
+
555
+function isValidElement(object) {
556
+ {
557
+ return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
558
+ }
559
+}
560
+
561
+function getDeclarationErrorAddendum() {
562
+ {
563
+ if (ReactCurrentOwner$1.current) {
564
+ var name = ReactCurrentOwner$1.current.getName();
565
+
566
+ if (name) {
567
+ return '\n\nCheck the render method of `' + name + '`.';
568
+ }
569
+ }
570
+
571
+ return '';
572
+ }
573
+}
574
+
575
+function getSourceInfoErrorAddendum(source) {
576
+ {
577
+ if (source !== undefined) {
578
+ var fileName = source.fileName.replace(/^.*[\\\/]/, '');
579
+ var lineNumber = source.lineNumber;
580
+ return '\n\nCheck your code at ' + fileName + ':' + lineNumber + '.';
581
+ }
582
+
583
+ return '';
584
+ }
585
+}
586
+/**
587
+ * Warn if there's no key explicitly set on dynamic arrays of children or
588
+ * object keys are not valid. This allows us to keep track of children between
589
+ * updates.
590
+ */
591
+
592
+
593
+var ownerHasKeyUseWarning = {};
594
+
595
+function getCurrentComponentErrorInfo(parentType) {
596
+ {
597
+ var info = getDeclarationErrorAddendum();
598
+
599
+ if (!info) {
600
+ var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;
601
+
602
+ if (parentName) {
603
+ info = "\n\nCheck the top-level render call using <" + parentName + ">.";
604
+ }
605
+ }
606
+
607
+ return info;
608
+ }
609
+}
610
+/**
611
+ * Warn if the element doesn't have an explicit key assigned to it.
612
+ * This element is in an array. The array could grow and shrink or be
613
+ * reordered. All children that haven't already been validated are required to
614
+ * have a "key" property assigned to it. Error statuses are cached so a warning
615
+ * will only be shown once.
616
+ *
617
+ * @internal
618
+ * @param {ReactElement} element Element that requires a key.
619
+ * @param {*} parentType element's parent's type.
620
+ */
621
+
622
+
623
+function validateExplicitKey(element, parentType) {
624
+ {
625
+ if (!element._store || element._store.validated || element.key != null) {
626
+ return;
627
+ }
628
+
629
+ element._store.validated = true;
630
+ var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);
631
+
632
+ if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {
633
+ return;
634
+ }
635
+
636
+ ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a
637
+ // property, it may be the creator of the child that's responsible for
638
+ // assigning it a key.
639
+
640
+ var childOwner = '';
641
+
642
+ if (element && element._owner && element._owner !== ReactCurrentOwner$1.current) {
643
+ // Give the component that originally created this child.
644
+ childOwner = " It was passed a child from " + element._owner.getName() + ".";
645
+ }
646
+
647
+ setCurrentlyValidatingElement$1(element);
648
+
649
+ error('Each child in a list should have a unique "key" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);
650
+
651
+ setCurrentlyValidatingElement$1(null);
652
+ }
653
+}
654
+/**
655
+ * Ensure that every element either is passed in a static location, in an
656
+ * array with an explicit keys property defined, or in an object literal
657
+ * with valid key property.
658
+ *
659
+ * @internal
660
+ * @param {ReactNode} node Statically passed child of any type.
661
+ * @param {*} parentType node's parent's type.
662
+ */
663
+
664
+
665
+function validateChildKeys(node, parentType) {
666
+ {
667
+ if (typeof node !== 'object') {
668
+ return;
669
+ }
670
+
671
+ if (Array.isArray(node)) {
672
+ for (var i = 0; i < node.length; i++) {
673
+ var child = node[i];
674
+
675
+ if (isValidElement(child)) {
676
+ validateExplicitKey(child, parentType);
677
+ }
678
+ }
679
+ } else if (isValidElement(node)) {
680
+ // This element was passed in a valid location.
681
+ if (node._store) {
682
+ node._store.validated = true;
683
+ }
684
+ } else if (node) {
685
+ var iteratorFn = getIteratorFn(node);
686
+
687
+ if (typeof iteratorFn === 'function') {
688
+ // Entry iterators used to provide implicit keys,
689
+ // but now we print a separate warning for them later.
690
+ if (iteratorFn !== node.entries) {
691
+ var iterator = iteratorFn.call(node);
692
+ var step;
693
+
694
+ while (!(step = iterator.next()).done) {
695
+ if (isValidElement(step.value)) {
696
+ validateExplicitKey(step.value, parentType);
697
+ }
698
+ }
699
+ }
700
+ }
701
+ }
702
+ }
703
+}
704
+/**
705
+ * Given an element, validate that its props follow the propTypes definition,
706
+ * provided by the type.
707
+ *
708
+ * @param {ReactElement} element
709
+ */
710
+
711
+
712
+function validatePropTypes(element) {
713
+ {
714
+ var type = element.type;
715
+
716
+ if (type === null || type === undefined || typeof type === 'string') {
717
+ return;
718
+ }
719
+
720
+ var propTypes;
721
+
722
+ if (typeof type === 'function') {
723
+ propTypes = type.propTypes;
724
+ } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.
725
+ // Inner props are checked in the reconciler.
726
+ type.$$typeof === REACT_MEMO_TYPE)) {
727
+ propTypes = type.propTypes;
728
+ } else {
729
+ return;
730
+ }
731
+
732
+ if (propTypes) {
733
+ // Intentionally inside to avoid triggering lazy initializers:
734
+ var name = getComponentName(type);
735
+ checkPropTypes(propTypes, element.props, 'prop', name, element);
736
+ } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {
737
+ propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:
738
+
739
+ var _name = getComponentName(type);
740
+
741
+ error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');
742
+ }
743
+
744
+ if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {
745
+ error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');
746
+ }
747
+ }
748
+}
749
+/**
750
+ * Given a fragment, validate that it can only be provided with fragment props
751
+ * @param {ReactElement} fragment
752
+ */
753
+
754
+
755
+function validateFragmentProps(fragment) {
756
+ {
757
+ var keys = Object.keys(fragment.props);
758
+
759
+ for (var i = 0; i < keys.length; i++) {
760
+ var key = keys[i];
761
+
762
+ if (key !== 'children' && key !== 'key') {
763
+ setCurrentlyValidatingElement$1(fragment);
764
+
765
+ error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);
766
+
767
+ setCurrentlyValidatingElement$1(null);
768
+ break;
769
+ }
770
+ }
771
+
772
+ if (fragment.ref !== null) {
773
+ setCurrentlyValidatingElement$1(fragment);
774
+
775
+ error('Invalid attribute `ref` supplied to `React.Fragment`.');
776
+
777
+ setCurrentlyValidatingElement$1(null);
778
+ }
779
+ }
780
+}
781
+
782
+function jsxWithValidation(type, props, key, isStaticChildren, source, self) {
783
+ {
784
+ var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to
785
+ // succeed and there will likely be errors in render.
786
+
787
+ if (!validType) {
788
+ var info = '';
789
+
790
+ if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {
791
+ info += ' You likely forgot to export your component from the file ' + "it's defined in, or you might have mixed up default and named imports.";
792
+ }
793
+
794
+ var sourceInfo = getSourceInfoErrorAddendum(source);
795
+
796
+ if (sourceInfo) {
797
+ info += sourceInfo;
798
+ } else {
799
+ info += getDeclarationErrorAddendum();
800
+ }
801
+
802
+ var typeString;
803
+
804
+ if (type === null) {
805
+ typeString = 'null';
806
+ } else if (Array.isArray(type)) {
807
+ typeString = 'array';
808
+ } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {
809
+ typeString = "<" + (getComponentName(type.type) || 'Unknown') + " />";
810
+ info = ' Did you accidentally export a JSX literal instead of a component?';
811
+ } else {
812
+ typeString = typeof type;
813
+ }
814
+
815
+ error('React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);
816
+ }
817
+
818
+ var element = jsxDEV(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.
819
+ // TODO: Drop this when these are no longer allowed as the type argument.
820
+
821
+ if (element == null) {
822
+ return element;
823
+ } // Skip key warning if the type isn't valid since our key validation logic
824
+ // doesn't expect a non-string/function type and can throw confusing errors.
825
+ // We don't want exception behavior to differ between dev and prod.
826
+ // (Rendering will throw with a helpful message and as soon as the type is
827
+ // fixed, the key warnings will appear.)
828
+
829
+
830
+ if (validType) {
831
+ var children = props.children;
832
+
833
+ if (children !== undefined) {
834
+ if (isStaticChildren) {
835
+ if (Array.isArray(children)) {
836
+ for (var i = 0; i < children.length; i++) {
837
+ validateChildKeys(children[i], type);
838
+ }
839
+
840
+ if (Object.freeze) {
841
+ Object.freeze(children);
842
+ }
843
+ } else {
844
+ error('React.jsx: Static children should always be an array. ' + 'You are likely explicitly calling React.jsxs or React.jsxDEV. ' + 'Use the Babel transform instead.');
845
+ }
846
+ } else {
847
+ validateChildKeys(children, type);
848
+ }
849
+ }
850
+ }
851
+
852
+ if (type === exports.Fragment) {
853
+ validateFragmentProps(element);
854
+ } else {
855
+ validatePropTypes(element);
856
+ }
857
+
858
+ return element;
859
+ }
860
+} // These two functions exist to still get child warnings in dev
861
+
862
+var jsxDEV$1 = jsxWithValidation ;
863
+
864
+exports.jsxDEV = jsxDEV$1;
865
+ })();
866
+}
fixtures/legacy-jsx-runtimes/react-15/cjs/react-jsx-dev-runtime.production.min.js
new
+9
@@ -0,0 +1,9 @@
1
+/** @license React v15.7.0
2
+ * react-jsx-dev-runtime.production.min.js
3
+ *
4
+ * Copyright (c) Facebook, Inc. and its affiliates.
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */
9
+'use strict';require("react");exports.Fragment=60107;if("function"===typeof Symbol&&Symbol.for){var a=Symbol.for;exports.Fragment=a("react.fragment")}exports.jsxDEV=void 0;
fixtures/legacy-jsx-runtimes/react-15/cjs/react-jsx-runtime.development.js
new
+888
@@ -0,0 +1,888 @@
1
+/** @license React v15.7.0
2
+ * react-jsx-runtime.development.js
3
+ *
4
+ * Copyright (c) Facebook, Inc. and its affiliates.
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */
9
+
10
+'use strict';
11
+
12
+if (process.env.NODE_ENV !== "production") {
13
+ (function() {
14
+'use strict';
15
+
16
+var React = require('react');
17
+var ReactComponentTreeHook = require('react/lib/ReactComponentTreeHook');
18
+
19
+// ATTENTION
20
+// When adding new symbols to this file,
21
+// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'
22
+// The Symbol used to tag the ReactElement-like types. If there is no native Symbol
23
+// nor polyfill, then a plain number is used for performance.
24
+var REACT_ELEMENT_TYPE = 0xeac7;
25
+var REACT_PORTAL_TYPE = 0xeaca;
26
+exports.Fragment = 0xeacb;
27
+var REACT_STRICT_MODE_TYPE = 0xeacc;
28
+var REACT_PROFILER_TYPE = 0xead2;
29
+var REACT_PROVIDER_TYPE = 0xeacd;
30
+var REACT_CONTEXT_TYPE = 0xeace;
31
+var REACT_FORWARD_REF_TYPE = 0xead0;
32
+var REACT_SUSPENSE_TYPE = 0xead1;
33
+var REACT_SUSPENSE_LIST_TYPE = 0xead8;
34
+var REACT_MEMO_TYPE = 0xead3;
35
+var REACT_LAZY_TYPE = 0xead4;
36
+var REACT_BLOCK_TYPE = 0xead9;
37
+var REACT_SERVER_BLOCK_TYPE = 0xeada;
38
+var REACT_FUNDAMENTAL_TYPE = 0xead5;
39
+var REACT_SCOPE_TYPE = 0xead7;
40
+var REACT_OPAQUE_ID_TYPE = 0xeae0;
41
+var REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;
42
+var REACT_OFFSCREEN_TYPE = 0xeae2;
43
+var REACT_LEGACY_HIDDEN_TYPE = 0xeae3;
44
+
45
+if (typeof Symbol === 'function' && Symbol.for) {
46
+ var symbolFor = Symbol.for;
47
+ REACT_ELEMENT_TYPE = symbolFor('react.element');
48
+ REACT_PORTAL_TYPE = symbolFor('react.portal');
49
+ exports.Fragment = symbolFor('react.fragment');
50
+ REACT_STRICT_MODE_TYPE = symbolFor('react.strict_mode');
51
+ REACT_PROFILER_TYPE = symbolFor('react.profiler');
52
+ REACT_PROVIDER_TYPE = symbolFor('react.provider');
53
+ REACT_CONTEXT_TYPE = symbolFor('react.context');
54
+ REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');
55
+ REACT_SUSPENSE_TYPE = symbolFor('react.suspense');
56
+ REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');
57
+ REACT_MEMO_TYPE = symbolFor('react.memo');
58
+ REACT_LAZY_TYPE = symbolFor('react.lazy');
59
+ REACT_BLOCK_TYPE = symbolFor('react.block');
60
+ REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block');
61
+ REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental');
62
+ REACT_SCOPE_TYPE = symbolFor('react.scope');
63
+ REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id');
64
+ REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');
65
+ REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');
66
+ REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');
67
+}
68
+
69
+var MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
70
+var FAUX_ITERATOR_SYMBOL = '@@iterator';
71
+function getIteratorFn(maybeIterable) {
72
+ if (maybeIterable === null || typeof maybeIterable !== 'object') {
73
+ return null;
74
+ }
75
+
76
+ var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];
77
+
78
+ if (typeof maybeIterator === 'function') {
79
+ return maybeIterator;
80
+ }
81
+
82
+ return null;
83
+}
84
+
85
+function error(format) {
86
+ {
87
+ for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
88
+ args[_key2 - 1] = arguments[_key2];
89
+ }
90
+
91
+ printWarning('error', format, args);
92
+ }
93
+}
94
+
95
+function printWarning(level, format, args) {
96
+ // When changing this logic, you might want to also
97
+ // update consoleWithStackDev.www.js as well.
98
+ {
99
+ var stack = '';
100
+
101
+ if (currentlyValidatingElement) {
102
+ stack += ReactComponentTreeHook.getCurrentStackAddendum(currentlyValidatingElement)
103
+ }
104
+
105
+ if (stack !== '') {
106
+ format += '%s';
107
+ args = args.concat([stack]);
108
+ }
109
+
110
+ var argsWithFormat = args.map(function (item) {
111
+ return '' + item;
112
+ }); // Careful: RN currently depends on this prefix
113
+
114
+ argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it
115
+ // breaks IE9: https://github.com/facebook/react/issues/13610
116
+ // eslint-disable-next-line react-internal/no-production-logging
117
+
118
+ Function.prototype.apply.call(console[level], console, argsWithFormat);
119
+ }
120
+}
121
+
122
+// Filter certain DOM attributes (e.g. src, href) if their values are empty strings.
123
+
124
+var enableScopeAPI = false; // Experimental Create Event Handle API.
125
+
126
+function isValidElementType(type) {
127
+ if (typeof type === 'string' || typeof type === 'function') {
128
+ return true;
129
+ } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).
130
+
131
+
132
+ if (type === exports.Fragment || type === REACT_PROFILER_TYPE || type === REACT_DEBUG_TRACING_MODE_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI ) {
133
+ return true;
134
+ }
135
+
136
+ if (typeof type === 'object' && type !== null) {
137
+ if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_BLOCK_TYPE || type[0] === REACT_SERVER_BLOCK_TYPE) {
138
+ return true;
139
+ }
140
+ }
141
+
142
+ return false;
143
+}
144
+
145
+
146
+var BEFORE_SLASH_RE = /^(.*)[\\\/]/;
147
+function describeComponentFrame (name, source, ownerName) {
148
+ var sourceInfo = '';
149
+
150
+ if (source) {
151
+ var path = source.fileName;
152
+ var fileName = path.replace(BEFORE_SLASH_RE, '');
153
+
154
+ {
155
+ // In DEV, include code for a common special case:
156
+ // prefer "folder/index.js" instead of just "index.js".
157
+ if (/^index\./.test(fileName)) {
158
+ var match = path.match(BEFORE_SLASH_RE);
159
+
160
+ if (match) {
161
+ var pathBeforeSlash = match[1];
162
+
163
+ if (pathBeforeSlash) {
164
+ var folderName = pathBeforeSlash.replace(BEFORE_SLASH_RE, '');
165
+ fileName = folderName + '/' + fileName;
166
+ }
167
+ }
168
+ }
169
+ }
170
+
171
+ sourceInfo = ' (at ' + fileName + ':' + source.lineNumber + ')';
172
+ } else if (ownerName) {
173
+ sourceInfo = ' (created by ' + ownerName + ')';
174
+ }
175
+
176
+ return '\n in ' + (name || 'Unknown') + sourceInfo;
177
+}
178
+
179
+var Resolved = 1;
180
+function refineResolvedLazyComponent(lazyComponent) {
181
+ return lazyComponent._status === Resolved ? lazyComponent._result : null;
182
+}
183
+
184
+function getWrappedName(outerType, innerType, wrapperName) {
185
+ var functionName = innerType.displayName || innerType.name || '';
186
+ return outerType.displayName || (functionName !== '' ? wrapperName + "(" + functionName + ")" : wrapperName);
187
+}
188
+
189
+function getComponentName(type) {
190
+ if (type == null) {
191
+ // Host root, text node or just invalid type.
192
+ return null;
193
+ }
194
+
195
+ {
196
+ if (typeof type.tag === 'number') {
197
+ error('Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');
198
+ }
199
+ }
200
+
201
+ if (typeof type === 'function') {
202
+ return type.displayName || type.name || null;
203
+ }
204
+
205
+ if (typeof type === 'string') {
206
+ return type;
207
+ }
208
+
209
+ switch (type) {
210
+ case exports.Fragment:
211
+ return 'Fragment';
212
+
213
+ case REACT_PORTAL_TYPE:
214
+ return 'Portal';
215
+
216
+ case REACT_PROFILER_TYPE:
217
+ return "Profiler";
218
+
219
+ case REACT_STRICT_MODE_TYPE:
220
+ return 'StrictMode';
221
+
222
+ case REACT_SUSPENSE_TYPE:
223
+ return 'Suspense';
224
+
225
+ case REACT_SUSPENSE_LIST_TYPE:
226
+ return 'SuspenseList';
227
+ }
228
+
229
+ if (typeof type === 'object') {
230
+ switch (type.$$typeof) {
231
+ case REACT_CONTEXT_TYPE:
232
+ return 'Context.Consumer';
233
+
234
+ case REACT_PROVIDER_TYPE:
235
+ return 'Context.Provider';
236
+
237
+ case REACT_FORWARD_REF_TYPE:
238
+ return getWrappedName(type, type.render, 'ForwardRef');
239
+
240
+ case REACT_MEMO_TYPE:
241
+ return getComponentName(type.type);
242
+
243
+ case REACT_BLOCK_TYPE:
244
+ return getComponentName(type.render);
245
+
246
+ case REACT_LAZY_TYPE:
247
+ {
248
+ var thenable = type;
249
+ var resolvedThenable = refineResolvedLazyComponent(thenable);
250
+
251
+ if (resolvedThenable) {
252
+ return getComponentName(resolvedThenable);
253
+ }
254
+
255
+ break;
256
+ }
257
+ }
258
+ }
259
+
260
+ return null;
261
+}
262
+
263
+var loggedTypeFailures = {};
264
+var currentlyValidatingElement = null;
265
+
266
+function setCurrentlyValidatingElement(element) {
267
+ {
268
+ currentlyValidatingElement = element;
269
+ }
270
+}
271
+
272
+function checkPropTypes(typeSpecs, values, location, componentName, element) {
273
+ {
274
+ // $FlowFixMe This is okay but Flow doesn't know it.
275
+ var has = Function.call.bind(Object.prototype.hasOwnProperty);
276
+
277
+ for (var typeSpecName in typeSpecs) {
278
+ if (has(typeSpecs, typeSpecName)) {
279
+ var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to
280
+ // fail the render phase where it didn't fail before. So we log it.
281
+ // After these have been cleaned up, we'll let them throw.
282
+
283
+ try {
284
+ // This is intentionally an invariant that gets caught. It's the same
285
+ // behavior as without this statement except with a better message.
286
+ if (typeof typeSpecs[typeSpecName] !== 'function') {
287
+ var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');
288
+ err.name = 'Invariant Violation';
289
+ throw err;
290
+ }
291
+
292
+ error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');
293
+ } catch (ex) {
294
+ error$1 = ex;
295
+ }
296
+
297
+ if (error$1 && !(error$1 instanceof Error)) {
298
+ setCurrentlyValidatingElement(element);
299
+
300
+ error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);
301
+
302
+ setCurrentlyValidatingElement(null);
303
+ }
304
+
305
+ if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {
306
+ // Only monitor this failure once because there tends to be a lot of the
307
+ // same error.
308
+ loggedTypeFailures[error$1.message] = true;
309
+ setCurrentlyValidatingElement(element);
310
+
311
+ error('Failed %s type: %s', location, error$1.message);
312
+
313
+ setCurrentlyValidatingElement(null);
314
+ }
315
+ }
316
+ }
317
+ }
318
+}
319
+
320
+var ReactCurrentOwner = require('react/lib/ReactCurrentOwner');
321
+var hasOwnProperty = Object.prototype.hasOwnProperty;
322
+var RESERVED_PROPS = {
323
+ key: true,
324
+ ref: true,
325
+ __self: true,
326
+ __source: true
327
+};
328
+var specialPropKeyWarningShown;
329
+var specialPropRefWarningShown;
330
+var didWarnAboutStringRefs;
331
+
332
+{
333
+ didWarnAboutStringRefs = {};
334
+}
335
+
336
+function hasValidRef(config) {
337
+ {
338
+ if (hasOwnProperty.call(config, 'ref')) {
339
+ var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;
340
+
341
+ if (getter && getter.isReactWarning) {
342
+ return false;
343
+ }
344
+ }
345
+ }
346
+
347
+ return config.ref !== undefined;
348
+}
349
+
350
+function hasValidKey(config) {
351
+ {
352
+ if (hasOwnProperty.call(config, 'key')) {
353
+ var getter = Object.getOwnPropertyDescriptor(config, 'key').get;
354
+
355
+ if (getter && getter.isReactWarning) {
356
+ return false;
357
+ }
358
+ }
359
+ }
360
+
361
+ return config.key !== undefined;
362
+}
363
+
364
+function defineKeyPropWarningGetter(props, displayName) {
365
+ {
366
+ var warnAboutAccessingKey = function () {
367
+ if (!specialPropKeyWarningShown) {
368
+ specialPropKeyWarningShown = true;
369
+
370
+ error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);
371
+ }
372
+ };
373
+
374
+ warnAboutAccessingKey.isReactWarning = true;
375
+ Object.defineProperty(props, 'key', {
376
+ get: warnAboutAccessingKey,
377
+ configurable: true
378
+ });
379
+ }
380
+}
381
+
382
+function defineRefPropWarningGetter(props, displayName) {
383
+ {
384
+ var warnAboutAccessingRef = function () {
385
+ if (!specialPropRefWarningShown) {
386
+ specialPropRefWarningShown = true;
387
+
388
+ error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);
389
+ }
390
+ };
391
+
392
+ warnAboutAccessingRef.isReactWarning = true;
393
+ Object.defineProperty(props, 'ref', {
394
+ get: warnAboutAccessingRef,
395
+ configurable: true
396
+ });
397
+ }
398
+}
399
+/**
400
+ * Factory method to create a new React element. This no longer adheres to
401
+ * the class pattern, so do not use new to call it. Also, instanceof check
402
+ * will not work. Instead test $$typeof field against Symbol.for('react.element') to check
403
+ * if something is a React Element.
404
+ *
405
+ * @param {*} type
406
+ * @param {*} props
407
+ * @param {*} key
408
+ * @param {string|object} ref
409
+ * @param {*} owner
410
+ * @param {*} self A *temporary* helper to detect places where `this` is
411
+ * different from the `owner` when React.createElement is called, so that we
412
+ * can warn. We want to get rid of owner and replace string `ref`s with arrow
413
+ * functions, and as long as `this` and owner are the same, there will be no
414
+ * change in behavior.
415
+ * @param {*} source An annotation object (added by a transpiler or otherwise)
416
+ * indicating filename, line number, and/or other information.
417
+ * @internal
418
+ */
419
+
420
+
421
+var ReactElement = function (type, key, ref, self, source, owner, props) {
422
+ var element = {
423
+ // This tag allows us to uniquely identify this as a React Element
424
+ $$typeof: REACT_ELEMENT_TYPE,
425
+ // Built-in properties that belong on the element
426
+ type: type,
427
+ key: key,
428
+ ref: ref,
429
+ props: props,
430
+ // Record the component responsible for creating this element.
431
+ _owner: owner
432
+ };
433
+
434
+ {
435
+ // The validation flag is currently mutative. We put it on
436
+ // an external backing store so that we can freeze the whole object.
437
+ // This can be replaced with a WeakMap once they are implemented in
438
+ // commonly used development environments.
439
+ element._store = {}; // To make comparing ReactElements easier for testing purposes, we make
440
+ // the validation flag non-enumerable (where possible, which should
441
+ // include every environment we run tests in), so the test framework
442
+ // ignores it.
443
+
444
+ Object.defineProperty(element._store, 'validated', {
445
+ configurable: false,
446
+ enumerable: false,
447
+ writable: true,
448
+ value: false
449
+ }); // self and source are DEV only properties.
450
+
451
+ Object.defineProperty(element, '_self', {
452
+ configurable: false,
453
+ enumerable: false,
454
+ writable: false,
455
+ value: self
456
+ }); // Two elements created in two different places should be considered
457
+ // equal for testing purposes and therefore we hide it from enumeration.
458
+
459
+ Object.defineProperty(element, '_source', {
460
+ configurable: false,
461
+ enumerable: false,
462
+ writable: false,
463
+ value: source
464
+ });
465
+
466
+ if (Object.freeze) {
467
+ Object.freeze(element.props);
468
+ Object.freeze(element);
469
+ }
470
+ }
471
+
472
+ return element;
473
+};
474
+/**
475
+ * https://github.com/reactjs/rfcs/pull/107
476
+ * @param {*} type
477
+ * @param {object} props
478
+ * @param {string} key
479
+ */
480
+
481
+function jsxDEV(type, config, maybeKey, source, self) {
482
+ {
483
+ var propName; // Reserved names are extracted
484
+
485
+ var props = {};
486
+ var key = null;
487
+ var ref = null; // Currently, key can be spread in as a prop. This causes a potential
488
+ // issue if key is also explicitly declared (ie. <div {...props} key="Hi" />
489
+ // or <div key="Hi" {...props} /> ). We want to deprecate key spread,
490
+ // but as an intermediary step, we will use jsxDEV for everything except
491
+ // <div {...props} key="Hi" />, because we aren't currently able to tell if
492
+ // key is explicitly declared to be undefined or not.
493
+
494
+ if (maybeKey !== undefined) {
495
+ key = '' + maybeKey;
496
+ }
497
+
498
+ if (hasValidKey(config)) {
499
+ key = '' + config.key;
500
+ }
501
+
502
+ if (hasValidRef(config)) {
503
+ ref = config.ref;
504
+ } // Remaining properties are added to a new props object
505
+
506
+
507
+ for (propName in config) {
508
+ if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {
509
+ props[propName] = config[propName];
510
+ }
511
+ } // Resolve default props
512
+
513
+
514
+ if (type && type.defaultProps) {
515
+ var defaultProps = type.defaultProps;
516
+
517
+ for (propName in defaultProps) {
518
+ if (props[propName] === undefined) {
519
+ props[propName] = defaultProps[propName];
520
+ }
521
+ }
522
+ }
523
+
524
+ if (key || ref) {
525
+ var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;
526
+
527
+ if (key) {
528
+ defineKeyPropWarningGetter(props, displayName);
529
+ }
530
+
531
+ if (ref) {
532
+ defineRefPropWarningGetter(props, displayName);
533
+ }
534
+ }
535
+
536
+ return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);
537
+ }
538
+}
539
+
540
+var ReactCurrentOwner$1 = require('react/lib/ReactCurrentOwner');
541
+
542
+function setCurrentlyValidatingElement$1(element) {
543
+ currentlyValidatingElement = element;
544
+}
545
+
546
+var propTypesMisspellWarningShown;
547
+
548
+{
549
+ propTypesMisspellWarningShown = false;
550
+}
551
+/**
552
+ * Verifies the object is a ReactElement.
553
+ * See https://reactjs.org/docs/react-api.html#isvalidelement
554
+ * @param {?object} object
555
+ * @return {boolean} True if `object` is a ReactElement.
556
+ * @final
557
+ */
558
+
559
+function isValidElement(object) {
560
+ {
561
+ return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
562
+ }
563
+}
564
+
565
+function getDeclarationErrorAddendum() {
566
+ {
567
+ if (ReactCurrentOwner$1.current) {
568
+ var name = ReactCurrentOwner$1.current.getName();
569
+
570
+ if (name) {
571
+ return '\n\nCheck the render method of `' + name + '`.';
572
+ }
573
+ }
574
+
575
+ return '';
576
+ }
577
+}
578
+
579
+function getSourceInfoErrorAddendum(source) {
580
+ {
581
+ if (source !== undefined) {
582
+ var fileName = source.fileName.replace(/^.*[\\\/]/, '');
583
+ var lineNumber = source.lineNumber;
584
+ return '\n\nCheck your code at ' + fileName + ':' + lineNumber + '.';
585
+ }
586
+
587
+ return '';
588
+ }
589
+}
590
+/**
591
+ * Warn if there's no key explicitly set on dynamic arrays of children or
592
+ * object keys are not valid. This allows us to keep track of children between
593
+ * updates.
594
+ */
595
+
596
+
597
+var ownerHasKeyUseWarning = {};
598
+
599
+function getCurrentComponentErrorInfo(parentType) {
600
+ {
601
+ var info = getDeclarationErrorAddendum();
602
+
603
+ if (!info) {
604
+ var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;
605
+
606
+ if (parentName) {
607
+ info = "\n\nCheck the top-level render call using <" + parentName + ">.";
608
+ }
609
+ }
610
+
611
+ return info;
612
+ }
613
+}
614
+/**
615
+ * Warn if the element doesn't have an explicit key assigned to it.
616
+ * This element is in an array. The array could grow and shrink or be
617
+ * reordered. All children that haven't already been validated are required to
618
+ * have a "key" property assigned to it. Error statuses are cached so a warning
619
+ * will only be shown once.
620
+ *
621
+ * @internal
622
+ * @param {ReactElement} element Element that requires a key.
623
+ * @param {*} parentType element's parent's type.
624
+ */
625
+
626
+
627
+function validateExplicitKey(element, parentType) {
628
+ {
629
+ if (!element._store || element._store.validated || element.key != null) {
630
+ return;
631
+ }
632
+
633
+ element._store.validated = true;
634
+ var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);
635
+
636
+ if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {
637
+ return;
638
+ }
639
+
640
+ ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a
641
+ // property, it may be the creator of the child that's responsible for
642
+ // assigning it a key.
643
+
644
+ var childOwner = '';
645
+
646
+ if (element && element._owner && element._owner !== ReactCurrentOwner$1.current) {
647
+ // Give the component that originally created this child.
648
+ childOwner = " It was passed a child from " + element._owner.getName() + ".";
649
+ }
650
+
651
+ setCurrentlyValidatingElement$1(element);
652
+
653
+ error('Each child in a list should have a unique "key" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);
654
+
655
+ setCurrentlyValidatingElement$1(null);
656
+ }
657
+}
658
+/**
659
+ * Ensure that every element either is passed in a static location, in an
660
+ * array with an explicit keys property defined, or in an object literal
661
+ * with valid key property.
662
+ *
663
+ * @internal
664
+ * @param {ReactNode} node Statically passed child of any type.
665
+ * @param {*} parentType node's parent's type.
666
+ */
667
+
668
+
669
+function validateChildKeys(node, parentType) {
670
+ {
671
+ if (typeof node !== 'object') {
672
+ return;
673
+ }
674
+
675
+ if (Array.isArray(node)) {
676
+ for (var i = 0; i < node.length; i++) {
677
+ var child = node[i];
678
+
679
+ if (isValidElement(child)) {
680
+ validateExplicitKey(child, parentType);
681
+ }
682
+ }
683
+ } else if (isValidElement(node)) {
684
+ // This element was passed in a valid location.
685
+ if (node._store) {
686
+ node._store.validated = true;
687
+ }
688
+ } else if (node) {
689
+ var iteratorFn = getIteratorFn(node);
690
+
691
+ if (typeof iteratorFn === 'function') {
692
+ // Entry iterators used to provide implicit keys,
693
+ // but now we print a separate warning for them later.
694
+ if (iteratorFn !== node.entries) {
695
+ var iterator = iteratorFn.call(node);
696
+ var step;
697
+
698
+ while (!(step = iterator.next()).done) {
699
+ if (isValidElement(step.value)) {
700
+ validateExplicitKey(step.value, parentType);
701
+ }
702
+ }
703
+ }
704
+ }
705
+ }
706
+ }
707
+}
708
+/**
709
+ * Given an element, validate that its props follow the propTypes definition,
710
+ * provided by the type.
711
+ *
712
+ * @param {ReactElement} element
713
+ */
714
+
715
+
716
+function validatePropTypes(element) {
717
+ {
718
+ var type = element.type;
719
+
720
+ if (type === null || type === undefined || typeof type === 'string') {
721
+ return;
722
+ }
723
+
724
+ var propTypes;
725
+
726
+ if (typeof type === 'function') {
727
+ propTypes = type.propTypes;
728
+ } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.
729
+ // Inner props are checked in the reconciler.
730
+ type.$$typeof === REACT_MEMO_TYPE)) {
731
+ propTypes = type.propTypes;
732
+ } else {
733
+ return;
734
+ }
735
+
736
+ if (propTypes) {
737
+ // Intentionally inside to avoid triggering lazy initializers:
738
+ var name = getComponentName(type);
739
+ checkPropTypes(propTypes, element.props, 'prop', name, element);
740
+ } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {
741
+ propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:
742
+
743
+ var _name = getComponentName(type);
744
+
745
+ error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');
746
+ }
747
+
748
+ if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {
749
+ error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');
750
+ }
751
+ }
752
+}
753
+/**
754
+ * Given a fragment, validate that it can only be provided with fragment props
755
+ * @param {ReactElement} fragment
756
+ */
757
+
758
+
759
+function validateFragmentProps(fragment) {
760
+ {
761
+ var keys = Object.keys(fragment.props);
762
+
763
+ for (var i = 0; i < keys.length; i++) {
764
+ var key = keys[i];
765
+
766
+ if (key !== 'children' && key !== 'key') {
767
+ setCurrentlyValidatingElement$1(fragment);
768
+
769
+ error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);
770
+
771
+ setCurrentlyValidatingElement$1(null);
772
+ break;
773
+ }
774
+ }
775
+
776
+ if (fragment.ref !== null) {
777
+ setCurrentlyValidatingElement$1(fragment);
778
+
779
+ error('Invalid attribute `ref` supplied to `React.Fragment`.');
780
+
781
+ setCurrentlyValidatingElement$1(null);
782
+ }
783
+ }
784
+}
785
+
786
+function jsxWithValidation(type, props, key, isStaticChildren, source, self) {
787
+ {
788
+ var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to
789
+ // succeed and there will likely be errors in render.
790
+
791
+ if (!validType) {
792
+ var info = '';
793
+
794
+ if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {
795
+ info += ' You likely forgot to export your component from the file ' + "it's defined in, or you might have mixed up default and named imports.";
796
+ }
797
+
798
+ var sourceInfo = getSourceInfoErrorAddendum(source);
799
+
800
+ if (sourceInfo) {
801
+ info += sourceInfo;
802
+ } else {
803
+ info += getDeclarationErrorAddendum();
804
+ }
805
+
806
+ var typeString;
807
+
808
+ if (type === null) {
809
+ typeString = 'null';
810
+ } else if (Array.isArray(type)) {
811
+ typeString = 'array';
812
+ } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {
813
+ typeString = "<" + (getComponentName(type.type) || 'Unknown') + " />";
814
+ info = ' Did you accidentally export a JSX literal instead of a component?';
815
+ } else {
816
+ typeString = typeof type;
817
+ }
818
+
819
+ error('React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);
820
+ }
821
+
822
+ var element = jsxDEV(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.
823
+ // TODO: Drop this when these are no longer allowed as the type argument.
824
+
825
+ if (element == null) {
826
+ return element;
827
+ } // Skip key warning if the type isn't valid since our key validation logic
828
+ // doesn't expect a non-string/function type and can throw confusing errors.
829
+ // We don't want exception behavior to differ between dev and prod.
830
+ // (Rendering will throw with a helpful message and as soon as the type is
831
+ // fixed, the key warnings will appear.)
832
+
833
+
834
+ if (validType) {
835
+ var children = props.children;
836
+
837
+ if (children !== undefined) {
838
+ if (isStaticChildren) {
839
+ if (Array.isArray(children)) {
840
+ for (var i = 0; i < children.length; i++) {
841
+ validateChildKeys(children[i], type);
842
+ }
843
+
844
+ if (Object.freeze) {
845
+ Object.freeze(children);
846
+ }
847
+ } else {
848
+ error('React.jsx: Static children should always be an array. ' + 'You are likely explicitly calling React.jsxs or React.jsxDEV. ' + 'Use the Babel transform instead.');
849
+ }
850
+ } else {
851
+ validateChildKeys(children, type);
852
+ }
853
+ }
854
+ }
855
+
856
+ if (type === exports.Fragment) {
857
+ validateFragmentProps(element);
858
+ } else {
859
+ validatePropTypes(element);
860
+ }
861
+
862
+ return element;
863
+ }
864
+} // These two functions exist to still get child warnings in dev
865
+// even with the prod transform. This means that jsxDEV is purely
866
+// opt-in behavior for better messages but that we won't stop
867
+// giving you warnings if you use production apis.
868
+
869
+function jsxWithValidationStatic(type, props, key) {
870
+ {
871
+ return jsxWithValidation(type, props, key, true);
872
+ }
873
+}
874
+function jsxWithValidationDynamic(type, props, key) {
875
+ {
876
+ return jsxWithValidation(type, props, key, false);
877
+ }
878
+}
879
+
880
+var jsx = jsxWithValidationDynamic ; // we may want to special case jsxs internally to take advantage of static children.
881
+// for now we can ship identical prod functions
882
+
883
+var jsxs = jsxWithValidationStatic ;
884
+
885
+exports.jsx = jsx;
886
+exports.jsxs = jsxs;
887
+ })();
888
+}
fixtures/legacy-jsx-runtimes/react-15/cjs/react-jsx-runtime.production.min.js
new
+10
@@ -0,0 +1,10 @@
1
+/** @license React v15.7.0
2
+ * react-jsx-runtime.production.min.js
3
+ *
4
+ * Copyright (c) Facebook, Inc. and its affiliates.
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */
9
+'use strict';var f=require("react"),g=60103;exports.Fragment=60107;if("function"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h("react.element");exports.Fragment=h("react.fragment")}var m=require("react/lib/ReactCurrentOwner"),n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};
10
+function q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=""+k);void 0!==a.key&&(e=""+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;
fixtures/legacy-jsx-runtimes/react-15/jsx-dev-runtime.js
new
+7
@@ -0,0 +1,7 @@
1
+'use strict';
2
+
3
+if (process.env.NODE_ENV === 'production') {
4
+ module.exports = require('./cjs/react-jsx-dev-runtime.production.min.js');
5
+} else {
6
+ module.exports = require('./cjs/react-jsx-dev-runtime.development.js');
7
+}
fixtures/legacy-jsx-runtimes/react-15/jsx-runtime.js
new
+7
@@ -0,0 +1,7 @@
1
+'use strict';
2
+
3
+if (process.env.NODE_ENV === 'production') {
4
+ module.exports = require('./cjs/react-jsx-runtime.production.min.js');
5
+} else {
6
+ module.exports = require('./cjs/react-jsx-runtime.development.js');
7
+}
fixtures/legacy-jsx-runtimes/react-15/package.json
new
+6
@@ -0,0 +1,6 @@
1
+{
2
+ "dependencies": {
3
+ "react": "15",
4
+ "react-dom": "15"
5
+ }
6
+}
fixtures/legacy-jsx-runtimes/react-15/react-15.test.js
new
+775
@@ -0,0 +1,775 @@
1
+/**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @emails react-core
8
+ */
9
+
10
+// These tests are based on ReactJSXElement-test,
11
+// ReactJSXElementValidator-test, ReactComponent-test,
12
+// and ReactElementJSX-test.
13
+
14
+jest.mock('react/jsx-runtime', () => require('./jsx-runtime'), {virtual: true});
15
+jest.mock('react/jsx-dev-runtime', () => require('./jsx-dev-runtime'), {
16
+ virtual: true,
17
+});
18
+
19
+let React = require('react');
20
+let ReactDOM = require('react-dom');
21
+let ReactTestUtils = {
22
+ renderIntoDocument(el) {
23
+ const container = document.createElement('div');
24
+ return ReactDOM.render(el, container);
25
+ },
26
+};
27
+let PropTypes = require('prop-types');
28
+let Component = class Component extends React.Component {
29
+ render() {
30
+ return <div />;
31
+ }
32
+};
33
+let RequiredPropComponent = class extends React.Component {
34
+ render() {
35
+ return <span>{this.props.prop}</span>;
36
+ }
37
+};
38
+RequiredPropComponent.displayName = 'RequiredPropComponent';
39
+RequiredPropComponent.propTypes = {prop: PropTypes.string.isRequired};
40
+
41
+it('works', () => {
42
+ const container = document.createElement('div');
43
+ ReactDOM.render(<h1>hello</h1>, container);
44
+ expect(container.textContent).toBe('hello');
45
+});
46
+
47
+it('returns a complete element according to spec', () => {
48
+ const element = <Component />;
49
+ expect(element.type).toBe(Component);
50
+ expect(element.key).toBe(null);
51
+ expect(element.ref).toBe(null);
52
+ const expectation = {};
53
+ Object.freeze(expectation);
54
+ expect(element.props).toEqual(expectation);
55
+});
56
+
57
+it('allows a lower-case to be passed as the string type', () => {
58
+ const element = <div />;
59
+ expect(element.type).toBe('div');
60
+ expect(element.key).toBe(null);
61
+ expect(element.ref).toBe(null);
62
+ const expectation = {};
63
+ Object.freeze(expectation);
64
+ expect(element.props).toEqual(expectation);
65
+});
66
+
67
+it('allows a string to be passed as the type', () => {
68
+ const TagName = 'div';
69
+ const element = <TagName />;
70
+ expect(element.type).toBe('div');
71
+ expect(element.key).toBe(null);
72
+ expect(element.ref).toBe(null);
73
+ const expectation = {};
74
+ Object.freeze(expectation);
75
+ expect(element.props).toEqual(expectation);
76
+});
77
+
78
+it('returns an immutable element', () => {
79
+ const element = <Component />;
80
+ if (process.env.NODE_ENV === 'development') {
81
+ expect(() => (element.type = 'div')).toThrow();
82
+ } else {
83
+ expect(() => (element.type = 'div')).not.toThrow();
84
+ }
85
+});
86
+
87
+it('does not reuse the object that is spread into props', () => {
88
+ const config = {foo: 1};
89
+ const element = <Component {...config} />;
90
+ expect(element.props.foo).toBe(1);
91
+ config.foo = 2;
92
+ expect(element.props.foo).toBe(1);
93
+});
94
+
95
+it('extracts key and ref from the rest of the props', () => {
96
+ const element = <Component key="12" ref="34" foo="56" />;
97
+ expect(element.type).toBe(Component);
98
+ expect(element.key).toBe('12');
99
+ expect(element.ref).toBe('34');
100
+ const expectation = {foo: '56'};
101
+ Object.freeze(expectation);
102
+ expect(element.props).toEqual(expectation);
103
+});
104
+
105
+it('coerces the key to a string', () => {
106
+ const element = <Component key={12} foo="56" />;
107
+ expect(element.type).toBe(Component);
108
+ expect(element.key).toBe('12');
109
+ expect(element.ref).toBe(null);
110
+ const expectation = {foo: '56'};
111
+ Object.freeze(expectation);
112
+ expect(element.props).toEqual(expectation);
113
+});
114
+
115
+it('merges JSX children onto the children prop', () => {
116
+ const a = 1;
117
+ const element = <Component children="text">{a}</Component>;
118
+ expect(element.props.children).toBe(a);
119
+});
120
+
121
+it('does not override children if no JSX children are provided', () => {
122
+ const element = <Component children="text" />;
123
+ expect(element.props.children).toBe('text');
124
+});
125
+
126
+it('overrides children if null is provided as a JSX child', () => {
127
+ const element = <Component children="text">{null}</Component>;
128
+ expect(element.props.children).toBe(null);
129
+});
130
+
131
+it('overrides children if undefined is provided as an argument', () => {
132
+ const element = <Component children="text">{undefined}</Component>;
133
+ expect(element.props.children).toBe(undefined);
134
+
135
+ const element2 = React.cloneElement(
136
+ <Component children="text" />,
137
+ {},
138
+ undefined
139
+ );
140
+ expect(element2.props.children).toBe(undefined);
141
+});
142
+
143
+it('merges JSX children onto the children prop in an array', () => {
144
+ const a = 1;
145
+ const b = 2;
146
+ const c = 3;
147
+ const element = (
148
+ <Component>
149
+ {a}
150
+ {b}
151
+ {c}
152
+ </Component>
153
+ );
154
+ expect(element.props.children).toEqual([1, 2, 3]);
155
+});
156
+
157
+it('allows static methods to be called using the type property', () => {
158
+ class StaticMethodComponent {
159
+ static someStaticMethod() {
160
+ return 'someReturnValue';
161
+ }
162
+ render() {
163
+ return <div />;
164
+ }
165
+ }
166
+
167
+ const element = <StaticMethodComponent />;
168
+ expect(element.type.someStaticMethod()).toBe('someReturnValue');
169
+});
170
+
171
+it('identifies valid elements', () => {
172
+ expect(React.isValidElement(<div />)).toEqual(true);
173
+ expect(React.isValidElement(<Component />)).toEqual(true);
174
+
175
+ expect(React.isValidElement(null)).toEqual(false);
176
+ expect(React.isValidElement(true)).toEqual(false);
177
+ expect(React.isValidElement({})).toEqual(false);
178
+ expect(React.isValidElement('string')).toEqual(false);
179
+ expect(React.isValidElement(Component)).toEqual(false);
180
+ expect(React.isValidElement({type: 'div', props: {}})).toEqual(false);
181
+});
182
+
183
+it('is indistinguishable from a plain object', () => {
184
+ const element = <div className="foo" />;
185
+ const object = {};
186
+ expect(element.constructor).toBe(object.constructor);
187
+});
188
+
189
+it('should use default prop value when removing a prop', () => {
190
+ Component.defaultProps = {fruit: 'persimmon'};
191
+
192
+ const container = document.createElement('div');
193
+ const instance = ReactDOM.render(<Component fruit="mango" />, container);
194
+ expect(instance.props.fruit).toBe('mango');
195
+
196
+ ReactDOM.render(<Component />, container);
197
+ expect(instance.props.fruit).toBe('persimmon');
198
+});
199
+
200
+it('should normalize props with default values', () => {
201
+ class NormalizingComponent extends React.Component {
202
+ render() {
203
+ return <span>{this.props.prop}</span>;
204
+ }
205
+ }
206
+ NormalizingComponent.defaultProps = {prop: 'testKey'};
207
+
208
+ const container = document.createElement('div');
209
+ const instance = ReactDOM.render(<NormalizingComponent />, container);
210
+ expect(instance.props.prop).toBe('testKey');
211
+
212
+ const inst2 = ReactDOM.render(
213
+ <NormalizingComponent prop={null} />,
214
+ container
215
+ );
216
+ expect(inst2.props.prop).toBe(null);
217
+});
218
+
219
+it('warns for keys for arrays of elements in children position', () => {
220
+ expect(() =>
221
+ ReactTestUtils.renderIntoDocument(
222
+ <Component>{[<Component />, <Component />]}</Component>
223
+ )
224
+ ).toErrorDev('Each child in a list should have a unique "key" prop.');
225
+});
226
+
227
+it('warns for keys for arrays of elements with owner info', () => {
228
+ class InnerComponent extends React.Component {
229
+ render() {
230
+ return <Component>{this.props.childSet}</Component>;
231
+ }
232
+ }
233
+
234
+ class ComponentWrapper extends React.Component {
235
+ render() {
236
+ return <InnerComponent childSet={[<Component />, <Component />]} />;
237
+ }
238
+ }
239
+
240
+ expect(() =>
241
+ ReactTestUtils.renderIntoDocument(<ComponentWrapper />)
242
+ ).toErrorDev(
243
+ 'Each child in a list should have a unique "key" prop.' +
244
+ '\n\nCheck the render method of `InnerComponent`. ' +
245
+ 'It was passed a child from ComponentWrapper. '
246
+ );
247
+});
248
+
249
+it('does not warn for arrays of elements with keys', () => {
250
+ ReactTestUtils.renderIntoDocument(
251
+ <Component>{[<Component key="#1" />, <Component key="#2" />]}</Component>
252
+ );
253
+});
254
+
255
+it('does not warn for iterable elements with keys', () => {
256
+ const iterable = {
257
+ '@@iterator': function() {
258
+ let i = 0;
259
+ return {
260
+ next: function() {
261
+ const done = ++i > 2;
262
+ return {
263
+ value: done ? undefined : <Component key={'#' + i} />,
264
+ done: done,
265
+ };
266
+ },
267
+ };
268
+ },
269
+ };
270
+
271
+ ReactTestUtils.renderIntoDocument(<Component>{iterable}</Component>);
272
+});
273
+
274
+it('does not warn for numeric keys in entry iterable as a child', () => {
275
+ const iterable = {
276
+ '@@iterator': function() {
277
+ let i = 0;
278
+ return {
279
+ next: function() {
280
+ const done = ++i > 2;
281
+ return {value: done ? undefined : [i, <Component />], done: done};
282
+ },
283
+ };
284
+ },
285
+ };
286
+ iterable.entries = iterable['@@iterator'];
287
+
288
+ ReactTestUtils.renderIntoDocument(<Component>{iterable}</Component>);
289
+});
290
+
291
+it('does not warn when the element is directly as children', () => {
292
+ ReactTestUtils.renderIntoDocument(
293
+ <Component>
294
+ <Component />
295
+ <Component />
296
+ </Component>
297
+ );
298
+});
299
+
300
+it('does not warn when the child array contains non-elements', () => {
301
+ void (<Component>{[{}, {}]}</Component>);
302
+});
303
+
304
+it('should give context for PropType errors in nested components.', () => {
305
+ // In this test, we're making sure that if a proptype error is found in a
306
+ // component, we give a small hint as to which parent instantiated that
307
+ // component as per warnings about key usage in ReactElementValidator.
308
+ function MyComp({color}) {
309
+ return <div>My color is {color}</div>;
310
+ }
311
+ MyComp.propTypes = {
312
+ color: PropTypes.string,
313
+ };
314
+ class ParentComp extends React.Component {
315
+ render() {
316
+ return <MyComp color={123} />;
317
+ }
318
+ }
319
+ expect(() => ReactTestUtils.renderIntoDocument(<ParentComp />)).toErrorDev(
320
+ 'Warning: Failed prop type: ' +
321
+ 'Invalid prop `color` of type `number` supplied to `MyComp`, ' +
322
+ 'expected `string`.\n' +
323
+ ' in MyComp (at **)\n' +
324
+ ' in ParentComp (at **)'
325
+ );
326
+});
327
+
328
+it('gives a helpful error when passing null, undefined, or boolean', () => {
329
+ const Undefined = undefined;
330
+ const Null = null;
331
+ const True = true;
332
+ const Div = 'div';
333
+ expect(
334
+ () => void (<Undefined />)
335
+ ).toErrorDev(
336
+ 'Warning: React.jsx: type is invalid -- expected a string ' +
337
+ '(for built-in components) or a class/function (for composite ' +
338
+ 'components) but got: undefined. You likely forgot to export your ' +
339
+ "component from the file it's defined in, or you might have mixed up " +
340
+ 'default and named imports.' +
341
+ (process.env.BABEL_ENV === 'development'
342
+ ? '\n\nCheck your code at **.'
343
+ : ''),
344
+ {withoutStack: true}
345
+ );
346
+ expect(
347
+ () => void (<Null />)
348
+ ).toErrorDev(
349
+ 'Warning: React.jsx: type is invalid -- expected a string ' +
350
+ '(for built-in components) or a class/function (for composite ' +
351
+ 'components) but got: null.' +
352
+ (process.env.BABEL_ENV === 'development'
353
+ ? '\n\nCheck your code at **.'
354
+ : ''),
355
+ {withoutStack: true}
356
+ );
357
+ expect(
358
+ () => void (<True />)
359
+ ).toErrorDev(
360
+ 'Warning: React.jsx: type is invalid -- expected a string ' +
361
+ '(for built-in components) or a class/function (for composite ' +
362
+ 'components) but got: boolean.' +
363
+ (process.env.BABEL_ENV === 'development'
364
+ ? '\n\nCheck your code at **.'
365
+ : ''),
366
+ {withoutStack: true}
367
+ );
368
+ // No error expected
369
+ void (<Div />);
370
+});
371
+
372
+it('should check default prop values', () => {
373
+ RequiredPropComponent.defaultProps = {prop: null};
374
+
375
+ expect(() =>
376
+ ReactTestUtils.renderIntoDocument(<RequiredPropComponent />)
377
+ ).toErrorDev(
378
+ 'Warning: Failed prop type: The prop `prop` is marked as required in ' +
379
+ '`RequiredPropComponent`, but its value is `null`.\n' +
380
+ ' in RequiredPropComponent (at **)'
381
+ );
382
+});
383
+
384
+it('should warn on invalid prop types', () => {
385
+ // Since there is no prevalidation step for ES6 classes, there is no hook
386
+ // for us to issue a warning earlier than element creation when the error
387
+ // actually occurs. Since this step is skipped in production, we should just
388
+ // warn instead of throwing for this case.
389
+ class NullPropTypeComponent extends React.Component {
390
+ render() {
391
+ return <span>{this.props.prop}</span>;
392
+ }
393
+ }
394
+ NullPropTypeComponent.propTypes = {
395
+ prop: null,
396
+ };
397
+ expect(() =>
398
+ ReactTestUtils.renderIntoDocument(<NullPropTypeComponent />)
399
+ ).toErrorDev(
400
+ 'NullPropTypeComponent: prop type `prop` is invalid; it must be a ' +
401
+ 'function, usually from the `prop-types` package,'
402
+ );
403
+});
404
+
405
+xit('should warn on invalid context types', () => {
406
+ class NullContextTypeComponent extends React.Component {
407
+ render() {
408
+ return <span>{this.props.prop}</span>;
409
+ }
410
+ }
411
+ NullContextTypeComponent.contextTypes = {
412
+ prop: null,
413
+ };
414
+ expect(() =>
415
+ ReactTestUtils.renderIntoDocument(<NullContextTypeComponent />)
416
+ ).toErrorDev(
417
+ 'NullContextTypeComponent: type `prop` is invalid; it must ' +
418
+ 'be a function, usually from the `prop-types` package,'
419
+ );
420
+});
421
+
422
+it('should warn if getDefaultProps is specified on the class', () => {
423
+ class GetDefaultPropsComponent extends React.Component {
424
+ render() {
425
+ return <span>{this.props.prop}</span>;
426
+ }
427
+ }
428
+ GetDefaultPropsComponent.getDefaultProps = () => ({
429
+ prop: 'foo',
430
+ });
431
+ expect(() =>
432
+ ReactTestUtils.renderIntoDocument(<GetDefaultPropsComponent />)
433
+ ).toErrorDev(
434
+ 'getDefaultProps is only used on classic React.createClass definitions.' +
435
+ ' Use a static property named `defaultProps` instead.',
436
+ {withoutStack: true}
437
+ );
438
+});
439
+
440
+it('should warn if component declares PropTypes instead of propTypes', () => {
441
+ class MisspelledPropTypesComponent extends React.Component {
442
+ render() {
443
+ return <span>{this.props.prop}</span>;
444
+ }
445
+ }
446
+ MisspelledPropTypesComponent.PropTypes = {
447
+ prop: PropTypes.string,
448
+ };
449
+ expect(() =>
450
+ ReactTestUtils.renderIntoDocument(
451
+ <MisspelledPropTypesComponent prop="hi" />
452
+ )
453
+ ).toErrorDev(
454
+ 'Warning: Component MisspelledPropTypesComponent declared `PropTypes` ' +
455
+ 'instead of `propTypes`. Did you misspell the property assignment?',
456
+ {withoutStack: true}
457
+ );
458
+});
459
+
460
+// Not supported.
461
+xit('warns for fragments with illegal attributes', () => {
462
+ class Foo extends React.Component {
463
+ render() {
464
+ return <React.Fragment a={1}>hello</React.Fragment>;
465
+ }
466
+ }
467
+
468
+ expect(() => ReactTestUtils.renderIntoDocument(<Foo />)).toErrorDev(
469
+ 'Invalid prop `a` supplied to `React.Fragment`. React.Fragment ' +
470
+ 'can only have `key` and `children` props.'
471
+ );
472
+});
473
+
474
+// Not supported.
475
+xit('warns for fragments with refs', () => {
476
+ class Foo extends React.Component {
477
+ render() {
478
+ return (
479
+ <React.Fragment
480
+ ref={bar => {
481
+ this.foo = bar;
482
+ }}>
483
+ hello
484
+ </React.Fragment>
485
+ );
486
+ }
487
+ }
488
+
489
+ expect(() => ReactTestUtils.renderIntoDocument(<Foo />)).toErrorDev(
490
+ 'Invalid attribute `ref` supplied to `React.Fragment`.'
491
+ );
492
+});
493
+
494
+// Not supported.
495
+xit('does not warn for fragments of multiple elements without keys', () => {
496
+ ReactTestUtils.renderIntoDocument(
497
+ <>
498
+ <span>1</span>
499
+ <span>2</span>
500
+ </>
501
+ );
502
+});
503
+
504
+// Not supported.
505
+xit('warns for fragments of multiple elements with same key', () => {
506
+ expect(() =>
507
+ ReactTestUtils.renderIntoDocument(
508
+ <>
509
+ <span key="a">1</span>
510
+ <span key="a">2</span>
511
+ <span key="b">3</span>
512
+ </>
513
+ )
514
+ ).toErrorDev('Encountered two children with the same key, `a`.', {
515
+ withoutStack: true,
516
+ });
517
+});
518
+
519
+// Not supported.
520
+xit('does not call lazy initializers eagerly', () => {
521
+ let didCall = false;
522
+ const Lazy = React.lazy(() => {
523
+ didCall = true;
524
+ return {then() {}};
525
+ });
526
+ <Lazy />;
527
+ expect(didCall).toBe(false);
528
+});
529
+
530
+it('supports classic refs', () => {
531
+ class Foo extends React.Component {
532
+ render() {
533
+ return <div className="foo" ref="inner" />;
534
+ }
535
+ }
536
+ const container = document.createElement('div');
537
+ const instance = ReactDOM.render(<Foo />, container);
538
+ expect(instance.refs.inner.className).toBe('foo');
539
+});
540
+
541
+it('should support refs on owned components', () => {
542
+ const innerObj = {};
543
+ const outerObj = {};
544
+
545
+ class Wrapper extends React.Component {
546
+ getObject = () => {
547
+ return this.props.object;
548
+ };
549
+
550
+ render() {
551
+ return <div>{this.props.children}</div>;
552
+ }
553
+ }
554
+
555
+ class Component extends React.Component {
556
+ render() {
557
+ const inner = <Wrapper object={innerObj} ref="inner" />;
558
+ const outer = (
559
+ <Wrapper object={outerObj} ref="outer">
560
+ {inner}
561
+ </Wrapper>
562
+ );
563
+ return outer;
564
+ }
565
+
566
+ componentDidMount() {
567
+ expect(this.refs.inner.getObject()).toEqual(innerObj);
568
+ expect(this.refs.outer.getObject()).toEqual(outerObj);
569
+ }
570
+ }
571
+
572
+ ReactTestUtils.renderIntoDocument(<Component />);
573
+});
574
+
575
+it('should support callback-style refs', () => {
576
+ const innerObj = {};
577
+ const outerObj = {};
578
+
579
+ class Wrapper extends React.Component {
580
+ getObject = () => {
581
+ return this.props.object;
582
+ };
583
+
584
+ render() {
585
+ return <div>{this.props.children}</div>;
586
+ }
587
+ }
588
+
589
+ let mounted = false;
590
+
591
+ class Component extends React.Component {
592
+ render() {
593
+ const inner = (
594
+ <Wrapper object={innerObj} ref={c => (this.innerRef = c)} />
595
+ );
596
+ const outer = (
597
+ <Wrapper object={outerObj} ref={c => (this.outerRef = c)}>
598
+ {inner}
599
+ </Wrapper>
600
+ );
601
+ return outer;
602
+ }
603
+
604
+ componentDidMount() {
605
+ expect(this.innerRef.getObject()).toEqual(innerObj);
606
+ expect(this.outerRef.getObject()).toEqual(outerObj);
607
+ mounted = true;
608
+ }
609
+ }
610
+
611
+ ReactTestUtils.renderIntoDocument(<Component />);
612
+ expect(mounted).toBe(true);
613
+});
614
+
615
+// Not supported.
616
+xit('should support object-style refs', () => {
617
+ const innerObj = {};
618
+ const outerObj = {};
619
+
620
+ class Wrapper extends React.Component {
621
+ getObject = () => {
622
+ return this.props.object;
623
+ };
624
+
625
+ render() {
626
+ return <div>{this.props.children}</div>;
627
+ }
628
+ }
629
+
630
+ let mounted = false;
631
+
632
+ class Component extends React.Component {
633
+ constructor() {
634
+ super();
635
+ this.innerRef = React.createRef();
636
+ this.outerRef = React.createRef();
637
+ }
638
+ render() {
639
+ const inner = <Wrapper object={innerObj} ref={this.innerRef} />;
640
+ const outer = (
641
+ <Wrapper object={outerObj} ref={this.outerRef}>
642
+ {inner}
643
+ </Wrapper>
644
+ );
645
+ return outer;
646
+ }
647
+
648
+ componentDidMount() {
649
+ expect(this.innerRef.current.getObject()).toEqual(innerObj);
650
+ expect(this.outerRef.current.getObject()).toEqual(outerObj);
651
+ mounted = true;
652
+ }
653
+ }
654
+
655
+ ReactTestUtils.renderIntoDocument(<Component />);
656
+ expect(mounted).toBe(true);
657
+});
658
+
659
+it('should support new-style refs with mixed-up owners', () => {
660
+ class Wrapper extends React.Component {
661
+ getTitle = () => {
662
+ return this.props.title;
663
+ };
664
+
665
+ render() {
666
+ return this.props.getContent();
667
+ }
668
+ }
669
+
670
+ let mounted = false;
671
+
672
+ class Component extends React.Component {
673
+ getInner = () => {
674
+ // (With old-style refs, it's impossible to get a ref to this div
675
+ // because Wrapper is the current owner when this function is called.)
676
+ return <div className="inner" ref={c => (this.innerRef = c)} />;
677
+ };
678
+
679
+ render() {
680
+ return (
681
+ <Wrapper
682
+ title="wrapper"
683
+ ref={c => (this.wrapperRef = c)}
684
+ getContent={this.getInner}
685
+ />
686
+ );
687
+ }
688
+
689
+ componentDidMount() {
690
+ // Check .props.title to make sure we got the right elements back
691
+ expect(this.wrapperRef.getTitle()).toBe('wrapper');
692
+ expect(this.innerRef.className).toBe('inner');
693
+ mounted = true;
694
+ }
695
+ }
696
+
697
+ ReactTestUtils.renderIntoDocument(<Component />);
698
+ expect(mounted).toBe(true);
699
+});
700
+
701
+it('should warn when `key` is being accessed on composite element', () => {
702
+ const container = document.createElement('div');
703
+ class Child extends React.Component {
704
+ render() {
705
+ return <div> {this.props.key} </div>;
706
+ }
707
+ }
708
+ class Parent extends React.Component {
709
+ render() {
710
+ return (
711
+ <div>
712
+ <Child key="0" />
713
+ <Child key="1" />
714
+ <Child key="2" />
715
+ </div>
716
+ );
717
+ }
718
+ }
719
+ expect(() =>
720
+ ReactDOM.render(<Parent />, container)
721
+ ).toErrorDev(
722
+ 'Child: `key` is not a prop. Trying to access it will result ' +
723
+ 'in `undefined` being returned. If you need to access the same ' +
724
+ 'value within the child component, you should pass it as a different ' +
725
+ 'prop. (https://reactjs.org/link/special-props)',
726
+ {withoutStack: true}
727
+ );
728
+});
729
+
730
+it('should warn when `ref` is being accessed', () => {
731
+ const container = document.createElement('div');
732
+ class Child extends React.Component {
733
+ render() {
734
+ return <div> {this.props.ref} </div>;
735
+ }
736
+ }
737
+ class Parent extends React.Component {
738
+ render() {
739
+ return (
740
+ <div>
741
+ <Child ref="childElement" />
742
+ </div>
743
+ );
744
+ }
745
+ }
746
+ expect(() =>
747
+ ReactDOM.render(<Parent />, container)
748
+ ).toErrorDev(
749
+ 'Child: `ref` is not a prop. Trying to access it will result ' +
750
+ 'in `undefined` being returned. If you need to access the same ' +
751
+ 'value within the child component, you should pass it as a different ' +
752
+ 'prop. (https://reactjs.org/link/special-props)',
753
+ {withoutStack: true}
754
+ );
755
+});
756
+
757
+// Note: no warning before 16.
758
+it('should NOT warn when owner and self are different for string refs', () => {
759
+ class ClassWithRenderProp extends React.Component {
760
+ render() {
761
+ return this.props.children();
762
+ }
763
+ }
764
+
765
+ class ClassParent extends React.Component {
766
+ render() {
767
+ return (
768
+ <ClassWithRenderProp>{() => <div ref="myRef" />}</ClassWithRenderProp>
769
+ );
770
+ }
771
+ }
772
+
773
+ const container = document.createElement('div');
774
+ ReactDOM.render(<ClassParent />, container);
775
+});
fixtures/legacy-jsx-runtimes/react-15/yarn.lock
new
+149
@@ -0,0 +1,149 @@
1
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2
+# yarn lockfile v1
3
+
4
+
5
+asap@~2.0.3:
6
+ version "2.0.6"
7
+ resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
8
+ integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=
9
+
10
+core-js@^1.0.0:
11
+ version "1.2.7"
12
+ resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
13
+ integrity sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=
14
+
15
+create-react-class@^15.6.0:
16
+ version "15.6.3"
17
+ resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.3.tgz#2d73237fb3f970ae6ebe011a9e66f46dbca80036"
18
+ integrity sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg==
19
+ dependencies:
20
+ fbjs "^0.8.9"
21
+ loose-envify "^1.3.1"
22
+ object-assign "^4.1.1"
23
+
24
+encoding@^0.1.11:
25
+ version "0.1.13"
26
+ resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9"
27
+ integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==
28
+ dependencies:
29
+ iconv-lite "^0.6.2"
30
+
31
+fbjs@^0.8.9:
32
+ version "0.8.17"
33
+ resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd"
34
+ integrity sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=
35
+ dependencies:
36
+ core-js "^1.0.0"
37
+ isomorphic-fetch "^2.1.1"
38
+ loose-envify "^1.0.0"
39
+ object-assign "^4.1.0"
40
+ promise "^7.1.1"
41
+ setimmediate "^1.0.5"
42
+ ua-parser-js "^0.7.18"
43
+
44
+iconv-lite@^0.6.2:
45
+ version "0.6.2"
46
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01"
47
+ integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==
48
+ dependencies:
49
+ safer-buffer ">= 2.1.2 < 3.0.0"
50
+
51
+is-stream@^1.0.1:
52
+ version "1.1.0"
53
+ resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
54
+ integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
55
+
56
+isomorphic-fetch@^2.1.1:
57
+ version "2.2.1"
58
+ resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9"
59
+ integrity sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=
60
+ dependencies:
61
+ node-fetch "^1.0.1"
62
+ whatwg-fetch ">=0.10.0"
63
+
64
+"js-tokens@^3.0.0 || ^4.0.0":
65
+ version "4.0.0"
66
+ resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
67
+ integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
68
+
69
+loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1, loose-envify@^1.4.0:
70
+ version "1.4.0"
71
+ resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
72
+ integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
73
+ dependencies:
74
+ js-tokens "^3.0.0 || ^4.0.0"
75
+
76
+node-fetch@^1.0.1:
77
+ version "1.7.3"
78
+ resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef"
79
+ integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==
80
+ dependencies:
81
+ encoding "^0.1.11"
82
+ is-stream "^1.0.1"
83
+
84
+object-assign@^4.1.0, object-assign@^4.1.1:
85
+ version "4.1.1"
86
+ resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
87
+ integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
88
+
89
+promise@^7.1.1:
90
+ version "7.3.1"
91
+ resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
92
+ integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==
93
+ dependencies:
94
+ asap "~2.0.3"
95
+
96
+prop-types@^15.5.10:
97
+ version "15.7.2"
98
+ resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
99
+ integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==
100
+ dependencies:
101
+ loose-envify "^1.4.0"
102
+ object-assign "^4.1.1"
103
+ react-is "^16.8.1"
104
+
105
+react-dom@15:
106
+ version "15.6.2"
107
+ resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.6.2.tgz#41cfadf693b757faf2708443a1d1fd5a02bef730"
108
+ integrity sha1-Qc+t9pO3V/rycIRDodH9WgK+9zA=
109
+ dependencies:
110
+ fbjs "^0.8.9"
111
+ loose-envify "^1.1.0"
112
+ object-assign "^4.1.0"
113
+ prop-types "^15.5.10"
114
+
115
+react-is@^16.8.1:
116
+ version "16.13.1"
117
+ resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
118
+ integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
119
+
120
+react@15:
121
+ version "15.6.2"
122
+ resolved "https://registry.yarnpkg.com/react/-/react-15.6.2.tgz#dba0434ab439cfe82f108f0f511663908179aa72"
123
+ integrity sha1-26BDSrQ5z+gvEI8PURZjkIF5qnI=
124
+ dependencies:
125
+ create-react-class "^15.6.0"
126
+ fbjs "^0.8.9"
127
+ loose-envify "^1.1.0"
128
+ object-assign "^4.1.0"
129
+ prop-types "^15.5.10"
130
+
131
+"safer-buffer@>= 2.1.2 < 3.0.0":
132
+ version "2.1.2"
133
+ resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
134
+ integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
135
+
136
+setimmediate@^1.0.5:
137
+ version "1.0.5"
138
+ resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
139
+ integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=
140
+
141
+ua-parser-js@^0.7.18:
142
+ version "0.7.22"
143
+ resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.22.tgz#960df60a5f911ea8f1c818f3747b99c6e177eae3"
144
+ integrity sha512-YUxzMjJ5T71w6a8WWVcMGM6YWOTX27rCoIQgLXiWaxqXSx9D7DNjiGWn1aJIRSQ5qr0xuhra77bSIh6voR/46Q==
145
+
146
+whatwg-fetch@>=0.10.0:
147
+ version "3.4.1"
148
+ resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.4.1.tgz#e5f871572d6879663fa5674c8f833f15a8425ab3"
149
+ integrity sha512-sofZVzE1wKwO+EYPbWfiwzaKovWiZXf4coEzjGP9b2GBVgQRLQUZ2QcuPpQExGDAW5GItpEm6Tl4OU5mywnAoQ==
fixtures/legacy-jsx-runtimes/react-16/cjs/react-jsx-dev-runtime.development.js
new
+889
@@ -0,0 +1,889 @@
1
+/** @license React v16.14.0
2
+ * react-jsx-dev-runtime.development.js
3
+ *
4
+ * Copyright (c) Facebook, Inc. and its affiliates.
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */
9
+
10
+'use strict';
11
+
12
+if (process.env.NODE_ENV !== "production") {
13
+ (function() {
14
+'use strict';
15
+
16
+var React = require('react');
17
+
18
+// ATTENTION
19
+// When adding new symbols to this file,
20
+// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'
21
+// The Symbol used to tag the ReactElement-like types. If there is no native Symbol
22
+// nor polyfill, then a plain number is used for performance.
23
+var REACT_ELEMENT_TYPE = 0xeac7;
24
+var REACT_PORTAL_TYPE = 0xeaca;
25
+exports.Fragment = 0xeacb;
26
+var REACT_STRICT_MODE_TYPE = 0xeacc;
27
+var REACT_PROFILER_TYPE = 0xead2;
28
+var REACT_PROVIDER_TYPE = 0xeacd;
29
+var REACT_CONTEXT_TYPE = 0xeace;
30
+var REACT_FORWARD_REF_TYPE = 0xead0;
31
+var REACT_SUSPENSE_TYPE = 0xead1;
32
+var REACT_SUSPENSE_LIST_TYPE = 0xead8;
33
+var REACT_MEMO_TYPE = 0xead3;
34
+var REACT_LAZY_TYPE = 0xead4;
35
+var REACT_BLOCK_TYPE = 0xead9;
36
+var REACT_SERVER_BLOCK_TYPE = 0xeada;
37
+var REACT_FUNDAMENTAL_TYPE = 0xead5;
38
+var REACT_SCOPE_TYPE = 0xead7;
39
+var REACT_OPAQUE_ID_TYPE = 0xeae0;
40
+var REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;
41
+var REACT_OFFSCREEN_TYPE = 0xeae2;
42
+var REACT_LEGACY_HIDDEN_TYPE = 0xeae3;
43
+
44
+if (typeof Symbol === 'function' && Symbol.for) {
45
+ var symbolFor = Symbol.for;
46
+ REACT_ELEMENT_TYPE = symbolFor('react.element');
47
+ REACT_PORTAL_TYPE = symbolFor('react.portal');
48
+ exports.Fragment = symbolFor('react.fragment');
49
+ REACT_STRICT_MODE_TYPE = symbolFor('react.strict_mode');
50
+ REACT_PROFILER_TYPE = symbolFor('react.profiler');
51
+ REACT_PROVIDER_TYPE = symbolFor('react.provider');
52
+ REACT_CONTEXT_TYPE = symbolFor('react.context');
53
+ REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');
54
+ REACT_SUSPENSE_TYPE = symbolFor('react.suspense');
55
+ REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');
56
+ REACT_MEMO_TYPE = symbolFor('react.memo');
57
+ REACT_LAZY_TYPE = symbolFor('react.lazy');
58
+ REACT_BLOCK_TYPE = symbolFor('react.block');
59
+ REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block');
60
+ REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental');
61
+ REACT_SCOPE_TYPE = symbolFor('react.scope');
62
+ REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id');
63
+ REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');
64
+ REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');
65
+ REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');
66
+}
67
+
68
+var MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
69
+var FAUX_ITERATOR_SYMBOL = '@@iterator';
70
+function getIteratorFn(maybeIterable) {
71
+ if (maybeIterable === null || typeof maybeIterable !== 'object') {
72
+ return null;
73
+ }
74
+
75
+ var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];
76
+
77
+ if (typeof maybeIterator === 'function') {
78
+ return maybeIterator;
79
+ }
80
+
81
+ return null;
82
+}
83
+
84
+var ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
85
+
86
+function error(format) {
87
+ {
88
+ for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
89
+ args[_key2 - 1] = arguments[_key2];
90
+ }
91
+
92
+ printWarning('error', format, args);
93
+ }
94
+}
95
+
96
+function printWarning(level, format, args) {
97
+ // When changing this logic, you might want to also
98
+ // update consoleWithStackDev.www.js as well.
99
+ {
100
+ var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;
101
+ var stack = '';
102
+
103
+ if (currentlyValidatingElement) {
104
+ var name = getComponentName(currentlyValidatingElement.type);
105
+ var owner = currentlyValidatingElement._owner;
106
+ stack += describeComponentFrame(name, currentlyValidatingElement._source, owner && getComponentName(owner.type));
107
+ }
108
+
109
+ stack += ReactDebugCurrentFrame.getStackAddendum();
110
+
111
+
112
+ if (stack !== '') {
113
+ format += '%s';
114
+ args = args.concat([stack]);
115
+ }
116
+
117
+ var argsWithFormat = args.map(function (item) {
118
+ return '' + item;
119
+ }); // Careful: RN currently depends on this prefix
120
+
121
+ argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it
122
+ // breaks IE9: https://github.com/facebook/react/issues/13610
123
+ // eslint-disable-next-line react-internal/no-production-logging
124
+
125
+ Function.prototype.apply.call(console[level], console, argsWithFormat);
126
+ }
127
+}
128
+
129
+// Filter certain DOM attributes (e.g. src, href) if their values are empty strings.
130
+
131
+var enableScopeAPI = false; // Experimental Create Event Handle API.
132
+
133
+function isValidElementType(type) {
134
+ if (typeof type === 'string' || typeof type === 'function') {
135
+ return true;
136
+ } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).
137
+
138
+
139
+ if (type === exports.Fragment || type === REACT_PROFILER_TYPE || type === REACT_DEBUG_TRACING_MODE_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI ) {
140
+ return true;
141
+ }
142
+
143
+ if (typeof type === 'object' && type !== null) {
144
+ if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_BLOCK_TYPE || type[0] === REACT_SERVER_BLOCK_TYPE) {
145
+ return true;
146
+ }
147
+ }
148
+
149
+ return false;
150
+}
151
+var BEFORE_SLASH_RE = /^(.*)[\\\/]/;
152
+function describeComponentFrame (name, source, ownerName) {
153
+ var sourceInfo = '';
154
+
155
+ if (source) {
156
+ var path = source.fileName;
157
+ var fileName = path.replace(BEFORE_SLASH_RE, '');
158
+
159
+ {
160
+ // In DEV, include code for a common special case:
161
+ // prefer "folder/index.js" instead of just "index.js".
162
+ if (/^index\./.test(fileName)) {
163
+ var match = path.match(BEFORE_SLASH_RE);
164
+
165
+ if (match) {
166
+ var pathBeforeSlash = match[1];
167
+
168
+ if (pathBeforeSlash) {
169
+ var folderName = pathBeforeSlash.replace(BEFORE_SLASH_RE, '');
170
+ fileName = folderName + '/' + fileName;
171
+ }
172
+ }
173
+ }
174
+ }
175
+
176
+ sourceInfo = ' (at ' + fileName + ':' + source.lineNumber + ')';
177
+ } else if (ownerName) {
178
+ sourceInfo = ' (created by ' + ownerName + ')';
179
+ }
180
+
181
+ return '\n in ' + (name || 'Unknown') + sourceInfo;
182
+}
183
+
184
+var Resolved = 1;
185
+function refineResolvedLazyComponent(lazyComponent) {
186
+ return lazyComponent._status === Resolved ? lazyComponent._result : null;
187
+}
188
+
189
+function getWrappedName(outerType, innerType, wrapperName) {
190
+ var functionName = innerType.displayName || innerType.name || '';
191
+ return outerType.displayName || (functionName !== '' ? wrapperName + "(" + functionName + ")" : wrapperName);
192
+}
193
+
194
+function getComponentName(type) {
195
+ if (type == null) {
196
+ // Host root, text node or just invalid type.
197
+ return null;
198
+ }
199
+
200
+ {
201
+ if (typeof type.tag === 'number') {
202
+ error('Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');
203
+ }
204
+ }
205
+
206
+ if (typeof type === 'function') {
207
+ return type.displayName || type.name || null;
208
+ }
209
+
210
+ if (typeof type === 'string') {
211
+ return type;
212
+ }
213
+
214
+ switch (type) {
215
+ case exports.Fragment:
216
+ return 'Fragment';
217
+
218
+ case REACT_PORTAL_TYPE:
219
+ return 'Portal';
220
+
221
+ case REACT_PROFILER_TYPE:
222
+ return "Profiler";
223
+
224
+ case REACT_STRICT_MODE_TYPE:
225
+ return 'StrictMode';
226
+
227
+ case REACT_SUSPENSE_TYPE:
228
+ return 'Suspense';
229
+
230
+ case REACT_SUSPENSE_LIST_TYPE:
231
+ return 'SuspenseList';
232
+ }
233
+
234
+ if (typeof type === 'object') {
235
+ switch (type.$$typeof) {
236
+ case REACT_CONTEXT_TYPE:
237
+ return 'Context.Consumer';
238
+
239
+ case REACT_PROVIDER_TYPE:
240
+ return 'Context.Provider';
241
+
242
+ case REACT_FORWARD_REF_TYPE:
243
+ return getWrappedName(type, type.render, 'ForwardRef');
244
+
245
+ case REACT_MEMO_TYPE:
246
+ return getComponentName(type.type);
247
+
248
+ case REACT_BLOCK_TYPE:
249
+ return getComponentName(type.render);
250
+
251
+ case REACT_LAZY_TYPE:
252
+ {
253
+ var thenable = type;
254
+ var resolvedThenable = refineResolvedLazyComponent(thenable);
255
+
256
+ if (resolvedThenable) {
257
+ return getComponentName(resolvedThenable);
258
+ }
259
+
260
+ break;
261
+ }
262
+ }
263
+ }
264
+
265
+ return null;
266
+}
267
+var loggedTypeFailures = {};
268
+var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;
269
+var currentlyValidatingElement = null;
270
+
271
+function setCurrentlyValidatingElement(element) {
272
+ currentlyValidatingElement = element;
273
+}
274
+
275
+function checkPropTypes(typeSpecs, values, location, componentName, element) {
276
+ {
277
+ // $FlowFixMe This is okay but Flow doesn't know it.
278
+ var has = Function.call.bind(Object.prototype.hasOwnProperty);
279
+
280
+ for (var typeSpecName in typeSpecs) {
281
+ if (has(typeSpecs, typeSpecName)) {
282
+ var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to
283
+ // fail the render phase where it didn't fail before. So we log it.
284
+ // After these have been cleaned up, we'll let them throw.
285
+
286
+ try {
287
+ // This is intentionally an invariant that gets caught. It's the same
288
+ // behavior as without this statement except with a better message.
289
+ if (typeof typeSpecs[typeSpecName] !== 'function') {
290
+ var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');
291
+ err.name = 'Invariant Violation';
292
+ throw err;
293
+ }
294
+
295
+ error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');
296
+ } catch (ex) {
297
+ error$1 = ex;
298
+ }
299
+
300
+ if (error$1 && !(error$1 instanceof Error)) {
301
+ setCurrentlyValidatingElement(element);
302
+
303
+ error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);
304
+
305
+ setCurrentlyValidatingElement(null);
306
+ }
307
+
308
+ if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {
309
+ // Only monitor this failure once because there tends to be a lot of the
310
+ // same error.
311
+ loggedTypeFailures[error$1.message] = true;
312
+ setCurrentlyValidatingElement(element);
313
+
314
+ error('Failed %s type: %s', location, error$1.message);
315
+
316
+ setCurrentlyValidatingElement(null);
317
+ }
318
+ }
319
+ }
320
+ }
321
+}
322
+
323
+var ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;
324
+var hasOwnProperty = Object.prototype.hasOwnProperty;
325
+var RESERVED_PROPS = {
326
+ key: true,
327
+ ref: true,
328
+ __self: true,
329
+ __source: true
330
+};
331
+var specialPropKeyWarningShown;
332
+var specialPropRefWarningShown;
333
+var didWarnAboutStringRefs;
334
+
335
+{
336
+ didWarnAboutStringRefs = {};
337
+}
338
+
339
+function hasValidRef(config) {
340
+ {
341
+ if (hasOwnProperty.call(config, 'ref')) {
342
+ var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;
343
+
344
+ if (getter && getter.isReactWarning) {
345
+ return false;
346
+ }
347
+ }
348
+ }
349
+
350
+ return config.ref !== undefined;
351
+}
352
+
353
+function hasValidKey(config) {
354
+ {
355
+ if (hasOwnProperty.call(config, 'key')) {
356
+ var getter = Object.getOwnPropertyDescriptor(config, 'key').get;
357
+
358
+ if (getter && getter.isReactWarning) {
359
+ return false;
360
+ }
361
+ }
362
+ }
363
+
364
+ return config.key !== undefined;
365
+}
366
+
367
+function warnIfStringRefCannotBeAutoConverted(config, self) {
368
+ {
369
+ if (typeof config.ref === 'string' && ReactCurrentOwner.current && self && ReactCurrentOwner.current.stateNode !== self) {
370
+ var componentName = getComponentName(ReactCurrentOwner.current.type);
371
+
372
+ if (!didWarnAboutStringRefs[componentName]) {
373
+ error('Component "%s" contains the string ref "%s". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', getComponentName(ReactCurrentOwner.current.type), config.ref);
374
+
375
+ didWarnAboutStringRefs[componentName] = true;
376
+ }
377
+ }
378
+ }
379
+}
380
+
381
+function defineKeyPropWarningGetter(props, displayName) {
382
+ {
383
+ var warnAboutAccessingKey = function () {
384
+ if (!specialPropKeyWarningShown) {
385
+ specialPropKeyWarningShown = true;
386
+
387
+ error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);
388
+ }
389
+ };
390
+
391
+ warnAboutAccessingKey.isReactWarning = true;
392
+ Object.defineProperty(props, 'key', {
393
+ get: warnAboutAccessingKey,
394
+ configurable: true
395
+ });
396
+ }
397
+}
398
+
399
+function defineRefPropWarningGetter(props, displayName) {
400
+ {
401
+ var warnAboutAccessingRef = function () {
402
+ if (!specialPropRefWarningShown) {
403
+ specialPropRefWarningShown = true;
404
+
405
+ error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);
406
+ }
407
+ };
408
+
409
+ warnAboutAccessingRef.isReactWarning = true;
410
+ Object.defineProperty(props, 'ref', {
411
+ get: warnAboutAccessingRef,
412
+ configurable: true
413
+ });
414
+ }
415
+}
416
+/**
417
+ * Factory method to create a new React element. This no longer adheres to
418
+ * the class pattern, so do not use new to call it. Also, instanceof check
419
+ * will not work. Instead test $$typeof field against Symbol.for('react.element') to check
420
+ * if something is a React Element.
421
+ *
422
+ * @param {*} type
423
+ * @param {*} props
424
+ * @param {*} key
425
+ * @param {string|object} ref
426
+ * @param {*} owner
427
+ * @param {*} self A *temporary* helper to detect places where `this` is
428
+ * different from the `owner` when React.createElement is called, so that we
429
+ * can warn. We want to get rid of owner and replace string `ref`s with arrow
430
+ * functions, and as long as `this` and owner are the same, there will be no
431
+ * change in behavior.
432
+ * @param {*} source An annotation object (added by a transpiler or otherwise)
433
+ * indicating filename, line number, and/or other information.
434
+ * @internal
435
+ */
436
+
437
+
438
+var ReactElement = function (type, key, ref, self, source, owner, props) {
439
+ var element = {
440
+ // This tag allows us to uniquely identify this as a React Element
441
+ $$typeof: REACT_ELEMENT_TYPE,
442
+ // Built-in properties that belong on the element
443
+ type: type,
444
+ key: key,
445
+ ref: ref,
446
+ props: props,
447
+ // Record the component responsible for creating this element.
448
+ _owner: owner
449
+ };
450
+
451
+ {
452
+ // The validation flag is currently mutative. We put it on
453
+ // an external backing store so that we can freeze the whole object.
454
+ // This can be replaced with a WeakMap once they are implemented in
455
+ // commonly used development environments.
456
+ element._store = {}; // To make comparing ReactElements easier for testing purposes, we make
457
+ // the validation flag non-enumerable (where possible, which should
458
+ // include every environment we run tests in), so the test framework
459
+ // ignores it.
460
+
461
+ Object.defineProperty(element._store, 'validated', {
462
+ configurable: false,
463
+ enumerable: false,
464
+ writable: true,
465
+ value: false
466
+ }); // self and source are DEV only properties.
467
+
468
+ Object.defineProperty(element, '_self', {
469
+ configurable: false,
470
+ enumerable: false,
471
+ writable: false,
472
+ value: self
473
+ }); // Two elements created in two different places should be considered
474
+ // equal for testing purposes and therefore we hide it from enumeration.
475
+
476
+ Object.defineProperty(element, '_source', {
477
+ configurable: false,
478
+ enumerable: false,
479
+ writable: false,
480
+ value: source
481
+ });
482
+
483
+ if (Object.freeze) {
484
+ Object.freeze(element.props);
485
+ Object.freeze(element);
486
+ }
487
+ }
488
+
489
+ return element;
490
+};
491
+/**
492
+ * https://github.com/reactjs/rfcs/pull/107
493
+ * @param {*} type
494
+ * @param {object} props
495
+ * @param {string} key
496
+ */
497
+
498
+function jsxDEV(type, config, maybeKey, source, self) {
499
+ {
500
+ var propName; // Reserved names are extracted
501
+
502
+ var props = {};
503
+ var key = null;
504
+ var ref = null; // Currently, key can be spread in as a prop. This causes a potential
505
+ // issue if key is also explicitly declared (ie. <div {...props} key="Hi" />
506
+ // or <div key="Hi" {...props} /> ). We want to deprecate key spread,
507
+ // but as an intermediary step, we will use jsxDEV for everything except
508
+ // <div {...props} key="Hi" />, because we aren't currently able to tell if
509
+ // key is explicitly declared to be undefined or not.
510
+
511
+ if (maybeKey !== undefined) {
512
+ key = '' + maybeKey;
513
+ }
514
+
515
+ if (hasValidKey(config)) {
516
+ key = '' + config.key;
517
+ }
518
+
519
+ if (hasValidRef(config)) {
520
+ ref = config.ref;
521
+ warnIfStringRefCannotBeAutoConverted(config, self);
522
+ } // Remaining properties are added to a new props object
523
+
524
+
525
+ for (propName in config) {
526
+ if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {
527
+ props[propName] = config[propName];
528
+ }
529
+ } // Resolve default props
530
+
531
+
532
+ if (type && type.defaultProps) {
533
+ var defaultProps = type.defaultProps;
534
+
535
+ for (propName in defaultProps) {
536
+ if (props[propName] === undefined) {
537
+ props[propName] = defaultProps[propName];
538
+ }
539
+ }
540
+ }
541
+
542
+ if (key || ref) {
543
+ var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;
544
+
545
+ if (key) {
546
+ defineKeyPropWarningGetter(props, displayName);
547
+ }
548
+
549
+ if (ref) {
550
+ defineRefPropWarningGetter(props, displayName);
551
+ }
552
+ }
553
+
554
+ return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);
555
+ }
556
+}
557
+
558
+var ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;
559
+var ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;
560
+
561
+function setCurrentlyValidatingElement$1(element) {
562
+ currentlyValidatingElement = element;
563
+}
564
+
565
+var propTypesMisspellWarningShown;
566
+
567
+{
568
+ propTypesMisspellWarningShown = false;
569
+}
570
+/**
571
+ * Verifies the object is a ReactElement.
572
+ * See https://reactjs.org/docs/react-api.html#isvalidelement
573
+ * @param {?object} object
574
+ * @return {boolean} True if `object` is a ReactElement.
575
+ * @final
576
+ */
577
+
578
+function isValidElement(object) {
579
+ {
580
+ return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
581
+ }
582
+}
583
+
584
+function getDeclarationErrorAddendum() {
585
+ {
586
+ if (ReactCurrentOwner$1.current) {
587
+ var name = getComponentName(ReactCurrentOwner$1.current.type);
588
+
589
+ if (name) {
590
+ return '\n\nCheck the render method of `' + name + '`.';
591
+ }
592
+ }
593
+
594
+ return '';
595
+ }
596
+}
597
+
598
+function getSourceInfoErrorAddendum(source) {
599
+ {
600
+ if (source !== undefined) {
601
+ var fileName = source.fileName.replace(/^.*[\\\/]/, '');
602
+ var lineNumber = source.lineNumber;
603
+ return '\n\nCheck your code at ' + fileName + ':' + lineNumber + '.';
604
+ }
605
+
606
+ return '';
607
+ }
608
+}
609
+/**
610
+ * Warn if there's no key explicitly set on dynamic arrays of children or
611
+ * object keys are not valid. This allows us to keep track of children between
612
+ * updates.
613
+ */
614
+
615
+
616
+var ownerHasKeyUseWarning = {};
617
+
618
+function getCurrentComponentErrorInfo(parentType) {
619
+ {
620
+ var info = getDeclarationErrorAddendum();
621
+
622
+ if (!info) {
623
+ var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;
624
+
625
+ if (parentName) {
626
+ info = "\n\nCheck the top-level render call using <" + parentName + ">.";
627
+ }
628
+ }
629
+
630
+ return info;
631
+ }
632
+}
633
+/**
634
+ * Warn if the element doesn't have an explicit key assigned to it.
635
+ * This element is in an array. The array could grow and shrink or be
636
+ * reordered. All children that haven't already been validated are required to
637
+ * have a "key" property assigned to it. Error statuses are cached so a warning
638
+ * will only be shown once.
639
+ *
640
+ * @internal
641
+ * @param {ReactElement} element Element that requires a key.
642
+ * @param {*} parentType element's parent's type.
643
+ */
644
+
645
+
646
+function validateExplicitKey(element, parentType) {
647
+ {
648
+ if (!element._store || element._store.validated || element.key != null) {
649
+ return;
650
+ }
651
+
652
+ element._store.validated = true;
653
+ var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);
654
+
655
+ if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {
656
+ return;
657
+ }
658
+
659
+ ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a
660
+ // property, it may be the creator of the child that's responsible for
661
+ // assigning it a key.
662
+
663
+ var childOwner = '';
664
+
665
+ if (element && element._owner && element._owner !== ReactCurrentOwner$1.current) {
666
+ // Give the component that originally created this child.
667
+ childOwner = " It was passed a child from " + getComponentName(element._owner.type) + ".";
668
+ }
669
+
670
+ setCurrentlyValidatingElement$1(element);
671
+
672
+ error('Each child in a list should have a unique "key" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);
673
+
674
+ setCurrentlyValidatingElement$1(null);
675
+ }
676
+}
677
+/**
678
+ * Ensure that every element either is passed in a static location, in an
679
+ * array with an explicit keys property defined, or in an object literal
680
+ * with valid key property.
681
+ *
682
+ * @internal
683
+ * @param {ReactNode} node Statically passed child of any type.
684
+ * @param {*} parentType node's parent's type.
685
+ */
686
+
687
+
688
+function validateChildKeys(node, parentType) {
689
+ {
690
+ if (typeof node !== 'object') {
691
+ return;
692
+ }
693
+
694
+ if (Array.isArray(node)) {
695
+ for (var i = 0; i < node.length; i++) {
696
+ var child = node[i];
697
+
698
+ if (isValidElement(child)) {
699
+ validateExplicitKey(child, parentType);
700
+ }
701
+ }
702
+ } else if (isValidElement(node)) {
703
+ // This element was passed in a valid location.
704
+ if (node._store) {
705
+ node._store.validated = true;
706
+ }
707
+ } else if (node) {
708
+ var iteratorFn = getIteratorFn(node);
709
+
710
+ if (typeof iteratorFn === 'function') {
711
+ // Entry iterators used to provide implicit keys,
712
+ // but now we print a separate warning for them later.
713
+ if (iteratorFn !== node.entries) {
714
+ var iterator = iteratorFn.call(node);
715
+ var step;
716
+
717
+ while (!(step = iterator.next()).done) {
718
+ if (isValidElement(step.value)) {
719
+ validateExplicitKey(step.value, parentType);
720
+ }
721
+ }
722
+ }
723
+ }
724
+ }
725
+ }
726
+}
727
+/**
728
+ * Given an element, validate that its props follow the propTypes definition,
729
+ * provided by the type.
730
+ *
731
+ * @param {ReactElement} element
732
+ */
733
+
734
+
735
+function validatePropTypes(element) {
736
+ {
737
+ var type = element.type;
738
+
739
+ if (type === null || type === undefined || typeof type === 'string') {
740
+ return;
741
+ }
742
+
743
+ var propTypes;
744
+
745
+ if (typeof type === 'function') {
746
+ propTypes = type.propTypes;
747
+ } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.
748
+ // Inner props are checked in the reconciler.
749
+ type.$$typeof === REACT_MEMO_TYPE)) {
750
+ propTypes = type.propTypes;
751
+ } else {
752
+ return;
753
+ }
754
+
755
+ if (propTypes) {
756
+ // Intentionally inside to avoid triggering lazy initializers:
757
+ var name = getComponentName(type);
758
+ checkPropTypes(propTypes, element.props, 'prop', name, element);
759
+ } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {
760
+ propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:
761
+
762
+ var _name = getComponentName(type);
763
+
764
+ error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');
765
+ }
766
+
767
+ if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {
768
+ error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');
769
+ }
770
+ }
771
+}
772
+/**
773
+ * Given a fragment, validate that it can only be provided with fragment props
774
+ * @param {ReactElement} fragment
775
+ */
776
+
777
+
778
+function validateFragmentProps(fragment) {
779
+ {
780
+ var keys = Object.keys(fragment.props);
781
+
782
+ for (var i = 0; i < keys.length; i++) {
783
+ var key = keys[i];
784
+
785
+ if (key !== 'children' && key !== 'key') {
786
+ setCurrentlyValidatingElement$1(fragment);
787
+
788
+ error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);
789
+
790
+ setCurrentlyValidatingElement$1(null);
791
+ break;
792
+ }
793
+ }
794
+
795
+ if (fragment.ref !== null) {
796
+ setCurrentlyValidatingElement$1(fragment);
797
+
798
+ error('Invalid attribute `ref` supplied to `React.Fragment`.');
799
+
800
+ setCurrentlyValidatingElement$1(null);
801
+ }
802
+ }
803
+}
804
+
805
+function jsxWithValidation(type, props, key, isStaticChildren, source, self) {
806
+ {
807
+ var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to
808
+ // succeed and there will likely be errors in render.
809
+
810
+ if (!validType) {
811
+ var info = '';
812
+
813
+ if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {
814
+ info += ' You likely forgot to export your component from the file ' + "it's defined in, or you might have mixed up default and named imports.";
815
+ }
816
+
817
+ var sourceInfo = getSourceInfoErrorAddendum(source);
818
+
819
+ if (sourceInfo) {
820
+ info += sourceInfo;
821
+ } else {
822
+ info += getDeclarationErrorAddendum();
823
+ }
824
+
825
+ var typeString;
826
+
827
+ if (type === null) {
828
+ typeString = 'null';
829
+ } else if (Array.isArray(type)) {
830
+ typeString = 'array';
831
+ } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {
832
+ typeString = "<" + (getComponentName(type.type) || 'Unknown') + " />";
833
+ info = ' Did you accidentally export a JSX literal instead of a component?';
834
+ } else {
835
+ typeString = typeof type;
836
+ }
837
+
838
+ error('React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);
839
+ }
840
+
841
+ var element = jsxDEV(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.
842
+ // TODO: Drop this when these are no longer allowed as the type argument.
843
+
844
+ if (element == null) {
845
+ return element;
846
+ } // Skip key warning if the type isn't valid since our key validation logic
847
+ // doesn't expect a non-string/function type and can throw confusing errors.
848
+ // We don't want exception behavior to differ between dev and prod.
849
+ // (Rendering will throw with a helpful message and as soon as the type is
850
+ // fixed, the key warnings will appear.)
851
+
852
+
853
+ if (validType) {
854
+ var children = props.children;
855
+
856
+ if (children !== undefined) {
857
+ if (isStaticChildren) {
858
+ if (Array.isArray(children)) {
859
+ for (var i = 0; i < children.length; i++) {
860
+ validateChildKeys(children[i], type);
861
+ }
862
+
863
+ if (Object.freeze) {
864
+ Object.freeze(children);
865
+ }
866
+ } else {
867
+ error('React.jsx: Static children should always be an array. ' + 'You are likely explicitly calling React.jsxs or React.jsxDEV. ' + 'Use the Babel transform instead.');
868
+ }
869
+ } else {
870
+ validateChildKeys(children, type);
871
+ }
872
+ }
873
+ }
874
+
875
+ if (type === exports.Fragment) {
876
+ validateFragmentProps(element);
877
+ } else {
878
+ validatePropTypes(element);
879
+ }
880
+
881
+ return element;
882
+ }
883
+} // These two functions exist to still get child warnings in dev
884
+
885
+var jsxDEV$1 = jsxWithValidation ;
886
+
887
+exports.jsxDEV = jsxDEV$1;
888
+ })();
889
+}
fixtures/legacy-jsx-runtimes/react-16/cjs/react-jsx-dev-runtime.production.min.js
new
+9
@@ -0,0 +1,9 @@
1
+/** @license React v16.14.0
2
+ * react-jsx-dev-runtime.production.min.js
3
+ *
4
+ * Copyright (c) Facebook, Inc. and its affiliates.
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */
9
+'use strict';require("react");exports.Fragment=60107;if("function"===typeof Symbol&&Symbol.for){var a=Symbol.for;exports.Fragment=a("react.fragment")}exports.jsxDEV=void 0;
fixtures/legacy-jsx-runtimes/react-16/cjs/react-jsx-runtime.development.js
new
+911
@@ -0,0 +1,911 @@
1
+/** @license React v16.14.0
2
+ * react-jsx-runtime.development.js
3
+ *
4
+ * Copyright (c) Facebook, Inc. and its affiliates.
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */
9
+
10
+'use strict';
11
+
12
+if (process.env.NODE_ENV !== "production") {
13
+ (function() {
14
+'use strict';
15
+
16
+var React = require('react');
17
+
18
+// ATTENTION
19
+// When adding new symbols to this file,
20
+// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'
21
+// The Symbol used to tag the ReactElement-like types. If there is no native Symbol
22
+// nor polyfill, then a plain number is used for performance.
23
+var REACT_ELEMENT_TYPE = 0xeac7;
24
+var REACT_PORTAL_TYPE = 0xeaca;
25
+exports.Fragment = 0xeacb;
26
+var REACT_STRICT_MODE_TYPE = 0xeacc;
27
+var REACT_PROFILER_TYPE = 0xead2;
28
+var REACT_PROVIDER_TYPE = 0xeacd;
29
+var REACT_CONTEXT_TYPE = 0xeace;
30
+var REACT_FORWARD_REF_TYPE = 0xead0;
31
+var REACT_SUSPENSE_TYPE = 0xead1;
32
+var REACT_SUSPENSE_LIST_TYPE = 0xead8;
33
+var REACT_MEMO_TYPE = 0xead3;
34
+var REACT_LAZY_TYPE = 0xead4;
35
+var REACT_BLOCK_TYPE = 0xead9;
36
+var REACT_SERVER_BLOCK_TYPE = 0xeada;
37
+var REACT_FUNDAMENTAL_TYPE = 0xead5;
38
+var REACT_SCOPE_TYPE = 0xead7;
39
+var REACT_OPAQUE_ID_TYPE = 0xeae0;
40
+var REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;
41
+var REACT_OFFSCREEN_TYPE = 0xeae2;
42
+var REACT_LEGACY_HIDDEN_TYPE = 0xeae3;
43
+
44
+if (typeof Symbol === 'function' && Symbol.for) {
45
+ var symbolFor = Symbol.for;
46
+ REACT_ELEMENT_TYPE = symbolFor('react.element');
47
+ REACT_PORTAL_TYPE = symbolFor('react.portal');
48
+ exports.Fragment = symbolFor('react.fragment');
49
+ REACT_STRICT_MODE_TYPE = symbolFor('react.strict_mode');
50
+ REACT_PROFILER_TYPE = symbolFor('react.profiler');
51
+ REACT_PROVIDER_TYPE = symbolFor('react.provider');
52
+ REACT_CONTEXT_TYPE = symbolFor('react.context');
53
+ REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');
54
+ REACT_SUSPENSE_TYPE = symbolFor('react.suspense');
55
+ REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');
56
+ REACT_MEMO_TYPE = symbolFor('react.memo');
57
+ REACT_LAZY_TYPE = symbolFor('react.lazy');
58
+ REACT_BLOCK_TYPE = symbolFor('react.block');
59
+ REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block');
60
+ REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental');
61
+ REACT_SCOPE_TYPE = symbolFor('react.scope');
62
+ REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id');
63
+ REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');
64
+ REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');
65
+ REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');
66
+}
67
+
68
+var MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
69
+var FAUX_ITERATOR_SYMBOL = '@@iterator';
70
+function getIteratorFn(maybeIterable) {
71
+ if (maybeIterable === null || typeof maybeIterable !== 'object') {
72
+ return null;
73
+ }
74
+
75
+ var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];
76
+
77
+ if (typeof maybeIterator === 'function') {
78
+ return maybeIterator;
79
+ }
80
+
81
+ return null;
82
+}
83
+
84
+var ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
85
+
86
+function error(format) {
87
+ {
88
+ for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
89
+ args[_key2 - 1] = arguments[_key2];
90
+ }
91
+
92
+ printWarning('error', format, args);
93
+ }
94
+}
95
+
96
+function printWarning(level, format, args) {
97
+ // When changing this logic, you might want to also
98
+ // update consoleWithStackDev.www.js as well.
99
+ {
100
+ var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;
101
+ var stack = '';
102
+
103
+ if (currentlyValidatingElement) {
104
+ var name = getComponentName(currentlyValidatingElement.type);
105
+ var owner = currentlyValidatingElement._owner;
106
+ stack += describeComponentFrame(name, currentlyValidatingElement._source, owner && getComponentName(owner.type));
107
+ }
108
+
109
+ stack += ReactDebugCurrentFrame.getStackAddendum();
110
+
111
+ if (stack !== '') {
112
+ format += '%s';
113
+ args = args.concat([stack]);
114
+ }
115
+
116
+ var argsWithFormat = args.map(function (item) {
117
+ return '' + item;
118
+ }); // Careful: RN currently depends on this prefix
119
+
120
+ argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it
121
+ // breaks IE9: https://github.com/facebook/react/issues/13610
122
+ // eslint-disable-next-line react-internal/no-production-logging
123
+
124
+ Function.prototype.apply.call(console[level], console, argsWithFormat);
125
+ }
126
+}
127
+
128
+// Filter certain DOM attributes (e.g. src, href) if their values are empty strings.
129
+
130
+var enableScopeAPI = false; // Experimental Create Event Handle API.
131
+
132
+function isValidElementType(type) {
133
+ if (typeof type === 'string' || typeof type === 'function') {
134
+ return true;
135
+ } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).
136
+
137
+
138
+ if (type === exports.Fragment || type === REACT_PROFILER_TYPE || type === REACT_DEBUG_TRACING_MODE_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI ) {
139
+ return true;
140
+ }
141
+
142
+ if (typeof type === 'object' && type !== null) {
143
+ if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_BLOCK_TYPE || type[0] === REACT_SERVER_BLOCK_TYPE) {
144
+ return true;
145
+ }
146
+ }
147
+
148
+ return false;
149
+}
150
+
151
+
152
+var BEFORE_SLASH_RE = /^(.*)[\\\/]/;
153
+function describeComponentFrame (name, source, ownerName) {
154
+ var sourceInfo = '';
155
+
156
+ if (source) {
157
+ var path = source.fileName;
158
+ var fileName = path.replace(BEFORE_SLASH_RE, '');
159
+
160
+ {
161
+ // In DEV, include code for a common special case:
162
+ // prefer "folder/index.js" instead of just "index.js".
163
+ if (/^index\./.test(fileName)) {
164
+ var match = path.match(BEFORE_SLASH_RE);
165
+
166
+ if (match) {
167
+ var pathBeforeSlash = match[1];
168
+
169
+ if (pathBeforeSlash) {
170
+ var folderName = pathBeforeSlash.replace(BEFORE_SLASH_RE, '');
171
+ fileName = folderName + '/' + fileName;
172
+ }
173
+ }
174
+ }
175
+ }
176
+
177
+ sourceInfo = ' (at ' + fileName + ':' + source.lineNumber + ')';
178
+ } else if (ownerName) {
179
+ sourceInfo = ' (created by ' + ownerName + ')';
180
+ }
181
+
182
+ return '\n in ' + (name || 'Unknown') + sourceInfo;
183
+}
184
+
185
+var Resolved = 1;
186
+function refineResolvedLazyComponent(lazyComponent) {
187
+ return lazyComponent._status === Resolved ? lazyComponent._result : null;
188
+}
189
+
190
+function getWrappedName(outerType, innerType, wrapperName) {
191
+ var functionName = innerType.displayName || innerType.name || '';
192
+ return outerType.displayName || (functionName !== '' ? wrapperName + "(" + functionName + ")" : wrapperName);
193
+}
194
+
195
+function getComponentName(type) {
196
+ if (type == null) {
197
+ // Host root, text node or just invalid type.
198
+ return null;
199
+ }
200
+
201
+ {
202
+ if (typeof type.tag === 'number') {
203
+ error('Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');
204
+ }
205
+ }
206
+
207
+ if (typeof type === 'function') {
208
+ return type.displayName || type.name || null;
209
+ }
210
+
211
+ if (typeof type === 'string') {
212
+ return type;
213
+ }
214
+
215
+ switch (type) {
216
+ case exports.Fragment:
217
+ return 'Fragment';
218
+
219
+ case REACT_PORTAL_TYPE:
220
+ return 'Portal';
221
+
222
+ case REACT_PROFILER_TYPE:
223
+ return "Profiler";
224
+
225
+ case REACT_STRICT_MODE_TYPE:
226
+ return 'StrictMode';
227
+
228
+ case REACT_SUSPENSE_TYPE:
229
+ return 'Suspense';
230
+
231
+ case REACT_SUSPENSE_LIST_TYPE:
232
+ return 'SuspenseList';
233
+ }
234
+
235
+ if (typeof type === 'object') {
236
+ switch (type.$$typeof) {
237
+ case REACT_CONTEXT_TYPE:
238
+ return 'Context.Consumer';
239
+
240
+ case REACT_PROVIDER_TYPE:
241
+ return 'Context.Provider';
242
+
243
+ case REACT_FORWARD_REF_TYPE:
244
+ return getWrappedName(type, type.render, 'ForwardRef');
245
+
246
+ case REACT_MEMO_TYPE:
247
+ return getComponentName(type.type);
248
+
249
+ case REACT_BLOCK_TYPE:
250
+ return getComponentName(type.render);
251
+
252
+ case REACT_LAZY_TYPE:
253
+ {
254
+ var thenable = type;
255
+ var resolvedThenable = refineResolvedLazyComponent(thenable);
256
+
257
+ if (resolvedThenable) {
258
+ return getComponentName(resolvedThenable);
259
+ }
260
+
261
+ break;
262
+ }
263
+ }
264
+ }
265
+
266
+ return null;
267
+}
268
+
269
+var loggedTypeFailures = {};
270
+var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;
271
+var currentlyValidatingElement = null;
272
+
273
+function setCurrentlyValidatingElement(element) {
274
+ {
275
+ currentlyValidatingElement = element;
276
+ }
277
+}
278
+
279
+function checkPropTypes(typeSpecs, values, location, componentName, element) {
280
+ {
281
+ // $FlowFixMe This is okay but Flow doesn't know it.
282
+ var has = Function.call.bind(Object.prototype.hasOwnProperty);
283
+
284
+ for (var typeSpecName in typeSpecs) {
285
+ if (has(typeSpecs, typeSpecName)) {
286
+ var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to
287
+ // fail the render phase where it didn't fail before. So we log it.
288
+ // After these have been cleaned up, we'll let them throw.
289
+
290
+ try {
291
+ // This is intentionally an invariant that gets caught. It's the same
292
+ // behavior as without this statement except with a better message.
293
+ if (typeof typeSpecs[typeSpecName] !== 'function') {
294
+ var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');
295
+ err.name = 'Invariant Violation';
296
+ throw err;
297
+ }
298
+
299
+ error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');
300
+ } catch (ex) {
301
+ error$1 = ex;
302
+ }
303
+
304
+ if (error$1 && !(error$1 instanceof Error)) {
305
+ setCurrentlyValidatingElement(element);
306
+
307
+ error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);
308
+
309
+ setCurrentlyValidatingElement(null);
310
+ }
311
+
312
+ if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {
313
+ // Only monitor this failure once because there tends to be a lot of the
314
+ // same error.
315
+ loggedTypeFailures[error$1.message] = true;
316
+ setCurrentlyValidatingElement(element);
317
+
318
+ error('Failed %s type: %s', location, error$1.message);
319
+
320
+ setCurrentlyValidatingElement(null);
321
+ }
322
+ }
323
+ }
324
+ }
325
+}
326
+
327
+var ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;
328
+var hasOwnProperty = Object.prototype.hasOwnProperty;
329
+var RESERVED_PROPS = {
330
+ key: true,
331
+ ref: true,
332
+ __self: true,
333
+ __source: true
334
+};
335
+var specialPropKeyWarningShown;
336
+var specialPropRefWarningShown;
337
+var didWarnAboutStringRefs;
338
+
339
+{
340
+ didWarnAboutStringRefs = {};
341
+}
342
+
343
+function hasValidRef(config) {
344
+ {
345
+ if (hasOwnProperty.call(config, 'ref')) {
346
+ var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;
347
+
348
+ if (getter && getter.isReactWarning) {
349
+ return false;
350
+ }
351
+ }
352
+ }
353
+
354
+ return config.ref !== undefined;
355
+}
356
+
357
+function hasValidKey(config) {
358
+ {
359
+ if (hasOwnProperty.call(config, 'key')) {
360
+ var getter = Object.getOwnPropertyDescriptor(config, 'key').get;
361
+
362
+ if (getter && getter.isReactWarning) {
363
+ return false;
364
+ }
365
+ }
366
+ }
367
+
368
+ return config.key !== undefined;
369
+}
370
+
371
+function warnIfStringRefCannotBeAutoConverted(config, self) {
372
+ {
373
+ if (typeof config.ref === 'string' && ReactCurrentOwner.current && self && ReactCurrentOwner.current.stateNode !== self) {
374
+ var componentName = getComponentName(ReactCurrentOwner.current.type);
375
+
376
+ if (!didWarnAboutStringRefs[componentName]) {
377
+ error('Component "%s" contains the string ref "%s". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', getComponentName(ReactCurrentOwner.current.type), config.ref);
378
+
379
+ didWarnAboutStringRefs[componentName] = true;
380
+ }
381
+ }
382
+ }
383
+}
384
+
385
+function defineKeyPropWarningGetter(props, displayName) {
386
+ {
387
+ var warnAboutAccessingKey = function () {
388
+ if (!specialPropKeyWarningShown) {
389
+ specialPropKeyWarningShown = true;
390
+
391
+ error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);
392
+ }
393
+ };
394
+
395
+ warnAboutAccessingKey.isReactWarning = true;
396
+ Object.defineProperty(props, 'key', {
397
+ get: warnAboutAccessingKey,
398
+ configurable: true
399
+ });
400
+ }
401
+}
402
+
403
+function defineRefPropWarningGetter(props, displayName) {
404
+ {
405
+ var warnAboutAccessingRef = function () {
406
+ if (!specialPropRefWarningShown) {
407
+ specialPropRefWarningShown = true;
408
+
409
+ error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);
410
+ }
411
+ };
412
+
413
+ warnAboutAccessingRef.isReactWarning = true;
414
+ Object.defineProperty(props, 'ref', {
415
+ get: warnAboutAccessingRef,
416
+ configurable: true
417
+ });
418
+ }
419
+}
420
+/**
421
+ * Factory method to create a new React element. This no longer adheres to
422
+ * the class pattern, so do not use new to call it. Also, instanceof check
423
+ * will not work. Instead test $$typeof field against Symbol.for('react.element') to check
424
+ * if something is a React Element.
425
+ *
426
+ * @param {*} type
427
+ * @param {*} props
428
+ * @param {*} key
429
+ * @param {string|object} ref
430
+ * @param {*} owner
431
+ * @param {*} self A *temporary* helper to detect places where `this` is
432
+ * different from the `owner` when React.createElement is called, so that we
433
+ * can warn. We want to get rid of owner and replace string `ref`s with arrow
434
+ * functions, and as long as `this` and owner are the same, there will be no
435
+ * change in behavior.
436
+ * @param {*} source An annotation object (added by a transpiler or otherwise)
437
+ * indicating filename, line number, and/or other information.
438
+ * @internal
439
+ */
440
+
441
+
442
+var ReactElement = function (type, key, ref, self, source, owner, props) {
443
+ var element = {
444
+ // This tag allows us to uniquely identify this as a React Element
445
+ $$typeof: REACT_ELEMENT_TYPE,
446
+ // Built-in properties that belong on the element
447
+ type: type,
448
+ key: key,
449
+ ref: ref,
450
+ props: props,
451
+ // Record the component responsible for creating this element.
452
+ _owner: owner
453
+ };
454
+
455
+ {
456
+ // The validation flag is currently mutative. We put it on
457
+ // an external backing store so that we can freeze the whole object.
458
+ // This can be replaced with a WeakMap once they are implemented in
459
+ // commonly used development environments.
460
+ element._store = {}; // To make comparing ReactElements easier for testing purposes, we make
461
+ // the validation flag non-enumerable (where possible, which should
462
+ // include every environment we run tests in), so the test framework
463
+ // ignores it.
464
+
465
+ Object.defineProperty(element._store, 'validated', {
466
+ configurable: false,
467
+ enumerable: false,
468
+ writable: true,
469
+ value: false
470
+ }); // self and source are DEV only properties.
471
+
472
+ Object.defineProperty(element, '_self', {
473
+ configurable: false,
474
+ enumerable: false,
475
+ writable: false,
476
+ value: self
477
+ }); // Two elements created in two different places should be considered
478
+ // equal for testing purposes and therefore we hide it from enumeration.
479
+
480
+ Object.defineProperty(element, '_source', {
481
+ configurable: false,
482
+ enumerable: false,
483
+ writable: false,
484
+ value: source
485
+ });
486
+
487
+ if (Object.freeze) {
488
+ Object.freeze(element.props);
489
+ Object.freeze(element);
490
+ }
491
+ }
492
+
493
+ return element;
494
+};
495
+/**
496
+ * https://github.com/reactjs/rfcs/pull/107
497
+ * @param {*} type
498
+ * @param {object} props
499
+ * @param {string} key
500
+ */
501
+
502
+function jsxDEV(type, config, maybeKey, source, self) {
503
+ {
504
+ var propName; // Reserved names are extracted
505
+
506
+ var props = {};
507
+ var key = null;
508
+ var ref = null; // Currently, key can be spread in as a prop. This causes a potential
509
+ // issue if key is also explicitly declared (ie. <div {...props} key="Hi" />
510
+ // or <div key="Hi" {...props} /> ). We want to deprecate key spread,
511
+ // but as an intermediary step, we will use jsxDEV for everything except
512
+ // <div {...props} key="Hi" />, because we aren't currently able to tell if
513
+ // key is explicitly declared to be undefined or not.
514
+
515
+ if (maybeKey !== undefined) {
516
+ key = '' + maybeKey;
517
+ }
518
+
519
+ if (hasValidKey(config)) {
520
+ key = '' + config.key;
521
+ }
522
+
523
+ if (hasValidRef(config)) {
524
+ ref = config.ref;
525
+ warnIfStringRefCannotBeAutoConverted(config, self);
526
+ } // Remaining properties are added to a new props object
527
+
528
+
529
+ for (propName in config) {
530
+ if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {
531
+ props[propName] = config[propName];
532
+ }
533
+ } // Resolve default props
534
+
535
+
536
+ if (type && type.defaultProps) {
537
+ var defaultProps = type.defaultProps;
538
+
539
+ for (propName in defaultProps) {
540
+ if (props[propName] === undefined) {
541
+ props[propName] = defaultProps[propName];
542
+ }
543
+ }
544
+ }
545
+
546
+ if (key || ref) {
547
+ var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;
548
+
549
+ if (key) {
550
+ defineKeyPropWarningGetter(props, displayName);
551
+ }
552
+
553
+ if (ref) {
554
+ defineRefPropWarningGetter(props, displayName);
555
+ }
556
+ }
557
+
558
+ return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);
559
+ }
560
+}
561
+
562
+var ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;
563
+var ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;
564
+
565
+function setCurrentlyValidatingElement$1(element) {
566
+ currentlyValidatingElement = element;
567
+}
568
+
569
+var propTypesMisspellWarningShown;
570
+
571
+{
572
+ propTypesMisspellWarningShown = false;
573
+}
574
+/**
575
+ * Verifies the object is a ReactElement.
576
+ * See https://reactjs.org/docs/react-api.html#isvalidelement
577
+ * @param {?object} object
578
+ * @return {boolean} True if `object` is a ReactElement.
579
+ * @final
580
+ */
581
+
582
+function isValidElement(object) {
583
+ {
584
+ return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
585
+ }
586
+}
587
+
588
+function getDeclarationErrorAddendum() {
589
+ {
590
+ if (ReactCurrentOwner$1.current) {
591
+ var name = getComponentName(ReactCurrentOwner$1.current.type);
592
+
593
+ if (name) {
594
+ return '\n\nCheck the render method of `' + name + '`.';
595
+ }
596
+ }
597
+
598
+ return '';
599
+ }
600
+}
601
+
602
+function getSourceInfoErrorAddendum(source) {
603
+ {
604
+ if (source !== undefined) {
605
+ var fileName = source.fileName.replace(/^.*[\\\/]/, '');
606
+ var lineNumber = source.lineNumber;
607
+ return '\n\nCheck your code at ' + fileName + ':' + lineNumber + '.';
608
+ }
609
+
610
+ return '';
611
+ }
612
+}
613
+/**
614
+ * Warn if there's no key explicitly set on dynamic arrays of children or
615
+ * object keys are not valid. This allows us to keep track of children between
616
+ * updates.
617
+ */
618
+
619
+
620
+var ownerHasKeyUseWarning = {};
621
+
622
+function getCurrentComponentErrorInfo(parentType) {
623
+ {
624
+ var info = getDeclarationErrorAddendum();
625
+
626
+ if (!info) {
627
+ var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;
628
+
629
+ if (parentName) {
630
+ info = "\n\nCheck the top-level render call using <" + parentName + ">.";
631
+ }
632
+ }
633
+
634
+ return info;
635
+ }
636
+}
637
+/**
638
+ * Warn if the element doesn't have an explicit key assigned to it.
639
+ * This element is in an array. The array could grow and shrink or be
640
+ * reordered. All children that haven't already been validated are required to
641
+ * have a "key" property assigned to it. Error statuses are cached so a warning
642
+ * will only be shown once.
643
+ *
644
+ * @internal
645
+ * @param {ReactElement} element Element that requires a key.
646
+ * @param {*} parentType element's parent's type.
647
+ */
648
+
649
+
650
+function validateExplicitKey(element, parentType) {
651
+ {
652
+ if (!element._store || element._store.validated || element.key != null) {
653
+ return;
654
+ }
655
+
656
+ element._store.validated = true;
657
+ var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);
658
+
659
+ if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {
660
+ return;
661
+ }
662
+
663
+ ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a
664
+ // property, it may be the creator of the child that's responsible for
665
+ // assigning it a key.
666
+
667
+ var childOwner = '';
668
+
669
+ if (element && element._owner && element._owner !== ReactCurrentOwner$1.current) {
670
+ // Give the component that originally created this child.
671
+ childOwner = " It was passed a child from " + getComponentName(element._owner.type) + ".";
672
+ }
673
+
674
+ setCurrentlyValidatingElement$1(element);
675
+
676
+ error('Each child in a list should have a unique "key" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);
677
+
678
+ setCurrentlyValidatingElement$1(null);
679
+ }
680
+}
681
+/**
682
+ * Ensure that every element either is passed in a static location, in an
683
+ * array with an explicit keys property defined, or in an object literal
684
+ * with valid key property.
685
+ *
686
+ * @internal
687
+ * @param {ReactNode} node Statically passed child of any type.
688
+ * @param {*} parentType node's parent's type.
689
+ */
690
+
691
+
692
+function validateChildKeys(node, parentType) {
693
+ {
694
+ if (typeof node !== 'object') {
695
+ return;
696
+ }
697
+
698
+ if (Array.isArray(node)) {
699
+ for (var i = 0; i < node.length; i++) {
700
+ var child = node[i];
701
+
702
+ if (isValidElement(child)) {
703
+ validateExplicitKey(child, parentType);
704
+ }
705
+ }
706
+ } else if (isValidElement(node)) {
707
+ // This element was passed in a valid location.
708
+ if (node._store) {
709
+ node._store.validated = true;
710
+ }
711
+ } else if (node) {
712
+ var iteratorFn = getIteratorFn(node);
713
+
714
+ if (typeof iteratorFn === 'function') {
715
+ // Entry iterators used to provide implicit keys,
716
+ // but now we print a separate warning for them later.
717
+ if (iteratorFn !== node.entries) {
718
+ var iterator = iteratorFn.call(node);
719
+ var step;
720
+
721
+ while (!(step = iterator.next()).done) {
722
+ if (isValidElement(step.value)) {
723
+ validateExplicitKey(step.value, parentType);
724
+ }
725
+ }
726
+ }
727
+ }
728
+ }
729
+ }
730
+}
731
+/**
732
+ * Given an element, validate that its props follow the propTypes definition,
733
+ * provided by the type.
734
+ *
735
+ * @param {ReactElement} element
736
+ */
737
+
738
+
739
+function validatePropTypes(element) {
740
+ {
741
+ var type = element.type;
742
+
743
+ if (type === null || type === undefined || typeof type === 'string') {
744
+ return;
745
+ }
746
+
747
+ var propTypes;
748
+
749
+ if (typeof type === 'function') {
750
+ propTypes = type.propTypes;
751
+ } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.
752
+ // Inner props are checked in the reconciler.
753
+ type.$$typeof === REACT_MEMO_TYPE)) {
754
+ propTypes = type.propTypes;
755
+ } else {
756
+ return;
757
+ }
758
+
759
+ if (propTypes) {
760
+ // Intentionally inside to avoid triggering lazy initializers:
761
+ var name = getComponentName(type);
762
+ checkPropTypes(propTypes, element.props, 'prop', name, element);
763
+ } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {
764
+ propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:
765
+
766
+ var _name = getComponentName(type);
767
+
768
+ error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');
769
+ }
770
+
771
+ if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {
772
+ error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');
773
+ }
774
+ }
775
+}
776
+/**
777
+ * Given a fragment, validate that it can only be provided with fragment props
778
+ * @param {ReactElement} fragment
779
+ */
780
+
781
+
782
+function validateFragmentProps(fragment) {
783
+ {
784
+ var keys = Object.keys(fragment.props);
785
+
786
+ for (var i = 0; i < keys.length; i++) {
787
+ var key = keys[i];
788
+
789
+ if (key !== 'children' && key !== 'key') {
790
+ setCurrentlyValidatingElement$1(fragment);
791
+
792
+ error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);
793
+
794
+ setCurrentlyValidatingElement$1(null);
795
+ break;
796
+ }
797
+ }
798
+
799
+ if (fragment.ref !== null) {
800
+ setCurrentlyValidatingElement$1(fragment);
801
+
802
+ error('Invalid attribute `ref` supplied to `React.Fragment`.');
803
+
804
+ setCurrentlyValidatingElement$1(null);
805
+ }
806
+ }
807
+}
808
+
809
+function jsxWithValidation(type, props, key, isStaticChildren, source, self) {
810
+ {
811
+ var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to
812
+ // succeed and there will likely be errors in render.
813
+
814
+ if (!validType) {
815
+ var info = '';
816
+
817
+ if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {
818
+ info += ' You likely forgot to export your component from the file ' + "it's defined in, or you might have mixed up default and named imports.";
819
+ }
820
+
821
+ var sourceInfo = getSourceInfoErrorAddendum(source);
822
+
823
+ if (sourceInfo) {
824
+ info += sourceInfo;
825
+ } else {
826
+ info += getDeclarationErrorAddendum();
827
+ }
828
+
829
+ var typeString;
830
+
831
+ if (type === null) {
832
+ typeString = 'null';
833
+ } else if (Array.isArray(type)) {
834
+ typeString = 'array';
835
+ } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {
836
+ typeString = "<" + (getComponentName(type.type) || 'Unknown') + " />";
837
+ info = ' Did you accidentally export a JSX literal instead of a component?';
838
+ } else {
839
+ typeString = typeof type;
840
+ }
841
+
842
+ error('React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);
843
+ }
844
+
845
+ var element = jsxDEV(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.
846
+ // TODO: Drop this when these are no longer allowed as the type argument.
847
+
848
+ if (element == null) {
849
+ return element;
850
+ } // Skip key warning if the type isn't valid since our key validation logic
851
+ // doesn't expect a non-string/function type and can throw confusing errors.
852
+ // We don't want exception behavior to differ between dev and prod.
853
+ // (Rendering will throw with a helpful message and as soon as the type is
854
+ // fixed, the key warnings will appear.)
855
+
856
+
857
+ if (validType) {
858
+ var children = props.children;
859
+
860
+ if (children !== undefined) {
861
+ if (isStaticChildren) {
862
+ if (Array.isArray(children)) {
863
+ for (var i = 0; i < children.length; i++) {
864
+ validateChildKeys(children[i], type);
865
+ }
866
+
867
+ if (Object.freeze) {
868
+ Object.freeze(children);
869
+ }
870
+ } else {
871
+ error('React.jsx: Static children should always be an array. ' + 'You are likely explicitly calling React.jsxs or React.jsxDEV. ' + 'Use the Babel transform instead.');
872
+ }
873
+ } else {
874
+ validateChildKeys(children, type);
875
+ }
876
+ }
877
+ }
878
+
879
+ if (type === exports.Fragment) {
880
+ validateFragmentProps(element);
881
+ } else {
882
+ validatePropTypes(element);
883
+ }
884
+
885
+ return element;
886
+ }
887
+} // These two functions exist to still get child warnings in dev
888
+// even with the prod transform. This means that jsxDEV is purely
889
+// opt-in behavior for better messages but that we won't stop
890
+// giving you warnings if you use production apis.
891
+
892
+function jsxWithValidationStatic(type, props, key) {
893
+ {
894
+ return jsxWithValidation(type, props, key, true);
895
+ }
896
+}
897
+function jsxWithValidationDynamic(type, props, key) {
898
+ {
899
+ return jsxWithValidation(type, props, key, false);
900
+ }
901
+}
902
+
903
+var jsx = jsxWithValidationDynamic ; // we may want to special case jsxs internally to take advantage of static children.
904
+// for now we can ship identical prod functions
905
+
906
+var jsxs = jsxWithValidationStatic ;
907
+
908
+exports.jsx = jsx;
909
+exports.jsxs = jsxs;
910
+ })();
911
+}
fixtures/legacy-jsx-runtimes/react-16/cjs/react-jsx-runtime.production.min.js
new
+10
@@ -0,0 +1,10 @@
1
+/** @license React v16.14.0
2
+ * react-jsx-runtime.production.min.js
3
+ *
4
+ * Copyright (c) Facebook, Inc. and its affiliates.
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */
9
+'use strict';var f=require("react"),g=60103;exports.Fragment=60107;if("function"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h("react.element");exports.Fragment=h("react.fragment")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};
10
+function q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=""+k);void 0!==a.key&&(e=""+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;
fixtures/legacy-jsx-runtimes/react-16/jsx-dev-runtime.js
new
+7
@@ -0,0 +1,7 @@
1
+'use strict';
2
+
3
+if (process.env.NODE_ENV === 'production') {
4
+ module.exports = require('./cjs/react-jsx-dev-runtime.production.min.js');
5
+} else {
6
+ module.exports = require('./cjs/react-jsx-dev-runtime.development.js');
7
+}
fixtures/legacy-jsx-runtimes/react-16/jsx-runtime.js
new
+7
@@ -0,0 +1,7 @@
1
+'use strict';
2
+
3
+if (process.env.NODE_ENV === 'production') {
4
+ module.exports = require('./cjs/react-jsx-runtime.production.min.js');
5
+} else {
6
+ module.exports = require('./cjs/react-jsx-runtime.development.js');
7
+}
fixtures/legacy-jsx-runtimes/react-16/package.json
new
+7
@@ -0,0 +1,7 @@
1
+{
2
+ "dependencies": {
3
+ "prop-types": "^15.7.2",
4
+ "react": "16",
5
+ "react-dom": "16"
6
+ }
7
+}
fixtures/legacy-jsx-runtimes/react-16/react-16.test.js
new
+773
@@ -0,0 +1,773 @@
1
+/**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @emails react-core
8
+ */
9
+
10
+// These tests are based on ReactJSXElement-test,
11
+// ReactJSXElementValidator-test, ReactComponent-test,
12
+// and ReactElementJSX-test.
13
+
14
+jest.mock('react/jsx-runtime', () => require('./jsx-runtime'), {virtual: true});
15
+jest.mock('react/jsx-dev-runtime', () => require('./jsx-dev-runtime'), {
16
+ virtual: true,
17
+});
18
+
19
+let React = require('react');
20
+let ReactDOM = require('react-dom');
21
+let ReactTestUtils = {
22
+ renderIntoDocument(el) {
23
+ const container = document.createElement('div');
24
+ return ReactDOM.render(el, container);
25
+ },
26
+};
27
+let PropTypes = require('prop-types');
28
+let Component = class Component extends React.Component {
29
+ render() {
30
+ return <div />;
31
+ }
32
+};
33
+let RequiredPropComponent = class extends React.Component {
34
+ render() {
35
+ return <span>{this.props.prop}</span>;
36
+ }
37
+};
38
+RequiredPropComponent.displayName = 'RequiredPropComponent';
39
+RequiredPropComponent.propTypes = {prop: PropTypes.string.isRequired};
40
+
41
+it('works', () => {
42
+ const container = document.createElement('div');
43
+ ReactDOM.render(<h1>hello</h1>, container);
44
+ expect(container.textContent).toBe('hello');
45
+});
46
+
47
+it('returns a complete element according to spec', () => {
48
+ const element = <Component />;
49
+ expect(element.type).toBe(Component);
50
+ expect(element.key).toBe(null);
51
+ expect(element.ref).toBe(null);
52
+ const expectation = {};
53
+ Object.freeze(expectation);
54
+ expect(element.props).toEqual(expectation);
55
+});
56
+
57
+it('allows a lower-case to be passed as the string type', () => {
58
+ const element = <div />;
59
+ expect(element.type).toBe('div');
60
+ expect(element.key).toBe(null);
61
+ expect(element.ref).toBe(null);
62
+ const expectation = {};
63
+ Object.freeze(expectation);
64
+ expect(element.props).toEqual(expectation);
65
+});
66
+
67
+it('allows a string to be passed as the type', () => {
68
+ const TagName = 'div';
69
+ const element = <TagName />;
70
+ expect(element.type).toBe('div');
71
+ expect(element.key).toBe(null);
72
+ expect(element.ref).toBe(null);
73
+ const expectation = {};
74
+ Object.freeze(expectation);
75
+ expect(element.props).toEqual(expectation);
76
+});
77
+
78
+it('returns an immutable element', () => {
79
+ const element = <Component />;
80
+ if (process.env.NODE_ENV === 'development') {
81
+ expect(() => (element.type = 'div')).toThrow();
82
+ } else {
83
+ expect(() => (element.type = 'div')).not.toThrow();
84
+ }
85
+});
86
+
87
+it('does not reuse the object that is spread into props', () => {
88
+ const config = {foo: 1};
89
+ const element = <Component {...config} />;
90
+ expect(element.props.foo).toBe(1);
91
+ config.foo = 2;
92
+ expect(element.props.foo).toBe(1);
93
+});
94
+
95
+it('extracts key and ref from the rest of the props', () => {
96
+ const element = <Component key="12" ref="34" foo="56" />;
97
+ expect(element.type).toBe(Component);
98
+ expect(element.key).toBe('12');
99
+ expect(element.ref).toBe('34');
100
+ const expectation = {foo: '56'};
101
+ Object.freeze(expectation);
102
+ expect(element.props).toEqual(expectation);
103
+});
104
+
105
+it('coerces the key to a string', () => {
106
+ const element = <Component key={12} foo="56" />;
107
+ expect(element.type).toBe(Component);
108
+ expect(element.key).toBe('12');
109
+ expect(element.ref).toBe(null);
110
+ const expectation = {foo: '56'};
111
+ Object.freeze(expectation);
112
+ expect(element.props).toEqual(expectation);
113
+});
114
+
115
+it('merges JSX children onto the children prop', () => {
116
+ const a = 1;
117
+ const element = <Component children="text">{a}</Component>;
118
+ expect(element.props.children).toBe(a);
119
+});
120
+
121
+it('does not override children if no JSX children are provided', () => {
122
+ const element = <Component children="text" />;
123
+ expect(element.props.children).toBe('text');
124
+});
125
+
126
+it('overrides children if null is provided as a JSX child', () => {
127
+ const element = <Component children="text">{null}</Component>;
128
+ expect(element.props.children).toBe(null);
129
+});
130
+
131
+it('overrides children if undefined is provided as an argument', () => {
132
+ const element = <Component children="text">{undefined}</Component>;
133
+ expect(element.props.children).toBe(undefined);
134
+
135
+ const element2 = React.cloneElement(
136
+ <Component children="text" />,
137
+ {},
138
+ undefined
139
+ );
140
+ expect(element2.props.children).toBe(undefined);
141
+});
142
+
143
+it('merges JSX children onto the children prop in an array', () => {
144
+ const a = 1;
145
+ const b = 2;
146
+ const c = 3;
147
+ const element = (
148
+ <Component>
149
+ {a}
150
+ {b}
151
+ {c}
152
+ </Component>
153
+ );
154
+ expect(element.props.children).toEqual([1, 2, 3]);
155
+});
156
+
157
+it('allows static methods to be called using the type property', () => {
158
+ class StaticMethodComponent {
159
+ static someStaticMethod() {
160
+ return 'someReturnValue';
161
+ }
162
+ render() {
163
+ return <div />;
164
+ }
165
+ }
166
+
167
+ const element = <StaticMethodComponent />;
168
+ expect(element.type.someStaticMethod()).toBe('someReturnValue');
169
+});
170
+
171
+it('identifies valid elements', () => {
172
+ expect(React.isValidElement(<div />)).toEqual(true);
173
+ expect(React.isValidElement(<Component />)).toEqual(true);
174
+
175
+ expect(React.isValidElement(null)).toEqual(false);
176
+ expect(React.isValidElement(true)).toEqual(false);
177
+ expect(React.isValidElement({})).toEqual(false);
178
+ expect(React.isValidElement('string')).toEqual(false);
179
+ expect(React.isValidElement(Component)).toEqual(false);
180
+ expect(React.isValidElement({type: 'div', props: {}})).toEqual(false);
181
+});
182
+
183
+it('is indistinguishable from a plain object', () => {
184
+ const element = <div className="foo" />;
185
+ const object = {};
186
+ expect(element.constructor).toBe(object.constructor);
187
+});
188
+
189
+it('should use default prop value when removing a prop', () => {
190
+ Component.defaultProps = {fruit: 'persimmon'};
191
+
192
+ const container = document.createElement('div');
193
+ const instance = ReactDOM.render(<Component fruit="mango" />, container);
194
+ expect(instance.props.fruit).toBe('mango');
195
+
196
+ ReactDOM.render(<Component />, container);
197
+ expect(instance.props.fruit).toBe('persimmon');
198
+});
199
+
200
+it('should normalize props with default values', () => {
201
+ class NormalizingComponent extends React.Component {
202
+ render() {
203
+ return <span>{this.props.prop}</span>;
204
+ }
205
+ }
206
+ NormalizingComponent.defaultProps = {prop: 'testKey'};
207
+
208
+ const container = document.createElement('div');
209
+ const instance = ReactDOM.render(<NormalizingComponent />, container);
210
+ expect(instance.props.prop).toBe('testKey');
211
+
212
+ const inst2 = ReactDOM.render(
213
+ <NormalizingComponent prop={null} />,
214
+ container
215
+ );
216
+ expect(inst2.props.prop).toBe(null);
217
+});
218
+
219
+it('warns for keys for arrays of elements in children position', () => {
220
+ expect(() =>
221
+ ReactTestUtils.renderIntoDocument(
222
+ <Component>{[<Component />, <Component />]}</Component>
223
+ )
224
+ ).toErrorDev('Each child in a list should have a unique "key" prop.');
225
+});
226
+
227
+it('warns for keys for arrays of elements with owner info', () => {
228
+ class InnerComponent extends React.Component {
229
+ render() {
230
+ return <Component>{this.props.childSet}</Component>;
231
+ }
232
+ }
233
+
234
+ class ComponentWrapper extends React.Component {
235
+ render() {
236
+ return <InnerComponent childSet={[<Component />, <Component />]} />;
237
+ }
238
+ }
239
+
240
+ expect(() =>
241
+ ReactTestUtils.renderIntoDocument(<ComponentWrapper />)
242
+ ).toErrorDev(
243
+ 'Each child in a list should have a unique "key" prop.' +
244
+ '\n\nCheck the render method of `InnerComponent`. ' +
245
+ 'It was passed a child from ComponentWrapper. '
246
+ );
247
+});
248
+
249
+it('does not warn for arrays of elements with keys', () => {
250
+ ReactTestUtils.renderIntoDocument(
251
+ <Component>{[<Component key="#1" />, <Component key="#2" />]}</Component>
252
+ );
253
+});
254
+
255
+it('does not warn for iterable elements with keys', () => {
256
+ const iterable = {
257
+ '@@iterator': function() {
258
+ let i = 0;
259
+ return {
260
+ next: function() {
261
+ const done = ++i > 2;
262
+ return {
263
+ value: done ? undefined : <Component key={'#' + i} />,
264
+ done: done,
265
+ };
266
+ },
267
+ };
268
+ },
269
+ };
270
+
271
+ ReactTestUtils.renderIntoDocument(<Component>{iterable}</Component>);
272
+});
273
+
274
+it('does not warn for numeric keys in entry iterable as a child', () => {
275
+ const iterable = {
276
+ '@@iterator': function() {
277
+ let i = 0;
278
+ return {
279
+ next: function() {
280
+ const done = ++i > 2;
281
+ return {value: done ? undefined : [i, <Component />], done: done};
282
+ },
283
+ };
284
+ },
285
+ };
286
+ iterable.entries = iterable['@@iterator'];
287
+
288
+ ReactTestUtils.renderIntoDocument(<Component>{iterable}</Component>);
289
+});
290
+
291
+it('does not warn when the element is directly as children', () => {
292
+ ReactTestUtils.renderIntoDocument(
293
+ <Component>
294
+ <Component />
295
+ <Component />
296
+ </Component>
297
+ );
298
+});
299
+
300
+it('does not warn when the child array contains non-elements', () => {
301
+ void (<Component>{[{}, {}]}</Component>);
302
+});
303
+
304
+it('should give context for PropType errors in nested components.', () => {
305
+ // In this test, we're making sure that if a proptype error is found in a
306
+ // component, we give a small hint as to which parent instantiated that
307
+ // component as per warnings about key usage in ReactElementValidator.
308
+ function MyComp({color}) {
309
+ return <div>My color is {color}</div>;
310
+ }
311
+ MyComp.propTypes = {
312
+ color: PropTypes.string,
313
+ };
314
+ class ParentComp extends React.Component {
315
+ render() {
316
+ return <MyComp color={123} />;
317
+ }
318
+ }
319
+ expect(() => ReactTestUtils.renderIntoDocument(<ParentComp />)).toErrorDev(
320
+ 'Warning: Failed prop type: ' +
321
+ 'Invalid prop `color` of type `number` supplied to `MyComp`, ' +
322
+ 'expected `string`.\n' +
323
+ ' in MyComp (at **)\n' +
324
+ ' in ParentComp (at **)'
325
+ );
326
+});
327
+
328
+it('gives a helpful error when passing null, undefined, or boolean', () => {
329
+ const Undefined = undefined;
330
+ const Null = null;
331
+ const True = true;
332
+ const Div = 'div';
333
+ expect(
334
+ () => void (<Undefined />)
335
+ ).toErrorDev(
336
+ 'Warning: React.jsx: type is invalid -- expected a string ' +
337
+ '(for built-in components) or a class/function (for composite ' +
338
+ 'components) but got: undefined. You likely forgot to export your ' +
339
+ "component from the file it's defined in, or you might have mixed up " +
340
+ 'default and named imports.' +
341
+ (process.env.BABEL_ENV === 'development'
342
+ ? '\n\nCheck your code at **.'
343
+ : ''),
344
+ {withoutStack: true}
345
+ );
346
+ expect(
347
+ () => void (<Null />)
348
+ ).toErrorDev(
349
+ 'Warning: React.jsx: type is invalid -- expected a string ' +
350
+ '(for built-in components) or a class/function (for composite ' +
351
+ 'components) but got: null.' +
352
+ (process.env.BABEL_ENV === 'development'
353
+ ? '\n\nCheck your code at **.'
354
+ : ''),
355
+ {withoutStack: true}
356
+ );
357
+ expect(
358
+ () => void (<True />)
359
+ ).toErrorDev(
360
+ 'Warning: React.jsx: type is invalid -- expected a string ' +
361
+ '(for built-in components) or a class/function (for composite ' +
362
+ 'components) but got: boolean.' +
363
+ (process.env.BABEL_ENV === 'development'
364
+ ? '\n\nCheck your code at **.'
365
+ : ''),
366
+ {withoutStack: true}
367
+ );
368
+ // No error expected
369
+ void (<Div />);
370
+});
371
+
372
+it('should check default prop values', () => {
373
+ RequiredPropComponent.defaultProps = {prop: null};
374
+
375
+ expect(() =>
376
+ ReactTestUtils.renderIntoDocument(<RequiredPropComponent />)
377
+ ).toErrorDev(
378
+ 'Warning: Failed prop type: The prop `prop` is marked as required in ' +
379
+ '`RequiredPropComponent`, but its value is `null`.\n' +
380
+ ' in RequiredPropComponent (at **)'
381
+ );
382
+});
383
+
384
+it('should warn on invalid prop types', () => {
385
+ // Since there is no prevalidation step for ES6 classes, there is no hook
386
+ // for us to issue a warning earlier than element creation when the error
387
+ // actually occurs. Since this step is skipped in production, we should just
388
+ // warn instead of throwing for this case.
389
+ class NullPropTypeComponent extends React.Component {
390
+ render() {
391
+ return <span>{this.props.prop}</span>;
392
+ }
393
+ }
394
+ NullPropTypeComponent.propTypes = {
395
+ prop: null,
396
+ };
397
+ expect(() =>
398
+ ReactTestUtils.renderIntoDocument(<NullPropTypeComponent />)
399
+ ).toErrorDev(
400
+ 'NullPropTypeComponent: prop type `prop` is invalid; it must be a ' +
401
+ 'function, usually from the `prop-types` package,'
402
+ );
403
+});
404
+
405
+it('should warn on invalid context types', () => {
406
+ class NullContextTypeComponent extends React.Component {
407
+ render() {
408
+ return <span>{this.props.prop}</span>;
409
+ }
410
+ }
411
+ NullContextTypeComponent.contextTypes = {
412
+ prop: null,
413
+ };
414
+ expect(() =>
415
+ ReactTestUtils.renderIntoDocument(<NullContextTypeComponent />)
416
+ ).toErrorDev(
417
+ 'NullContextTypeComponent: context type `prop` is invalid; it must ' +
418
+ 'be a function, usually from the `prop-types` package,'
419
+ );
420
+});
421
+
422
+it('should warn if getDefaultProps is specified on the class', () => {
423
+ class GetDefaultPropsComponent extends React.Component {
424
+ render() {
425
+ return <span>{this.props.prop}</span>;
426
+ }
427
+ }
428
+ GetDefaultPropsComponent.getDefaultProps = () => ({
429
+ prop: 'foo',
430
+ });
431
+ expect(() =>
432
+ ReactTestUtils.renderIntoDocument(<GetDefaultPropsComponent />)
433
+ ).toErrorDev(
434
+ 'getDefaultProps is only used on classic React.createClass definitions.' +
435
+ ' Use a static property named `defaultProps` instead.',
436
+ {withoutStack: true}
437
+ );
438
+});
439
+
440
+it('should warn if component declares PropTypes instead of propTypes', () => {
441
+ class MisspelledPropTypesComponent extends React.Component {
442
+ render() {
443
+ return <span>{this.props.prop}</span>;
444
+ }
445
+ }
446
+ MisspelledPropTypesComponent.PropTypes = {
447
+ prop: PropTypes.string,
448
+ };
449
+ expect(() =>
450
+ ReactTestUtils.renderIntoDocument(
451
+ <MisspelledPropTypesComponent prop="hi" />
452
+ )
453
+ ).toErrorDev(
454
+ 'Warning: Component MisspelledPropTypesComponent declared `PropTypes` ' +
455
+ 'instead of `propTypes`. Did you misspell the property assignment?',
456
+ {withoutStack: true}
457
+ );
458
+});
459
+
460
+it('warns for fragments with illegal attributes', () => {
461
+ class Foo extends React.Component {
462
+ render() {
463
+ return <React.Fragment a={1}>hello</React.Fragment>;
464
+ }
465
+ }
466
+
467
+ expect(() => ReactTestUtils.renderIntoDocument(<Foo />)).toErrorDev(
468
+ 'Invalid prop `a` supplied to `React.Fragment`. React.Fragment ' +
469
+ 'can only have `key` and `children` props.'
470
+ );
471
+});
472
+
473
+it('warns for fragments with refs', () => {
474
+ class Foo extends React.Component {
475
+ render() {
476
+ return (
477
+ <React.Fragment
478
+ ref={bar => {
479
+ this.foo = bar;
480
+ }}>
481
+ hello
482
+ </React.Fragment>
483
+ );
484
+ }
485
+ }
486
+
487
+ expect(() => ReactTestUtils.renderIntoDocument(<Foo />)).toErrorDev(
488
+ 'Invalid attribute `ref` supplied to `React.Fragment`.'
489
+ );
490
+});
491
+
492
+it('does not warn for fragments of multiple elements without keys', () => {
493
+ ReactTestUtils.renderIntoDocument(
494
+ <>
495
+ <span>1</span>
496
+ <span>2</span>
497
+ </>
498
+ );
499
+});
500
+
501
+it('warns for fragments of multiple elements with same key', () => {
502
+ expect(() =>
503
+ ReactTestUtils.renderIntoDocument(
504
+ <>
505
+ <span key="a">1</span>
506
+ <span key="a">2</span>
507
+ <span key="b">3</span>
508
+ </>
509
+ )
510
+ ).toErrorDev('Encountered two children with the same key, `a`.', {
511
+ withoutStack: true,
512
+ });
513
+});
514
+
515
+it('does not call lazy initializers eagerly', () => {
516
+ let didCall = false;
517
+ const Lazy = React.lazy(() => {
518
+ didCall = true;
519
+ return {then() {}};
520
+ });
521
+ <Lazy />;
522
+ expect(didCall).toBe(false);
523
+});
524
+
525
+it('supports classic refs', () => {
526
+ class Foo extends React.Component {
527
+ render() {
528
+ return <div className="foo" ref="inner" />;
529
+ }
530
+ }
531
+ const container = document.createElement('div');
532
+ const instance = ReactDOM.render(<Foo />, container);
533
+ expect(instance.refs.inner.className).toBe('foo');
534
+});
535
+
536
+it('should support refs on owned components', () => {
537
+ const innerObj = {};
538
+ const outerObj = {};
539
+
540
+ class Wrapper extends React.Component {
541
+ getObject = () => {
542
+ return this.props.object;
543
+ };
544
+
545
+ render() {
546
+ return <div>{this.props.children}</div>;
547
+ }
548
+ }
549
+
550
+ class Component extends React.Component {
551
+ render() {
552
+ const inner = <Wrapper object={innerObj} ref="inner" />;
553
+ const outer = (
554
+ <Wrapper object={outerObj} ref="outer">
555
+ {inner}
556
+ </Wrapper>
557
+ );
558
+ return outer;
559
+ }
560
+
561
+ componentDidMount() {
562
+ expect(this.refs.inner.getObject()).toEqual(innerObj);
563
+ expect(this.refs.outer.getObject()).toEqual(outerObj);
564
+ }
565
+ }
566
+
567
+ ReactTestUtils.renderIntoDocument(<Component />);
568
+});
569
+
570
+it('should support callback-style refs', () => {
571
+ const innerObj = {};
572
+ const outerObj = {};
573
+
574
+ class Wrapper extends React.Component {
575
+ getObject = () => {
576
+ return this.props.object;
577
+ };
578
+
579
+ render() {
580
+ return <div>{this.props.children}</div>;
581
+ }
582
+ }
583
+
584
+ let mounted = false;
585
+
586
+ class Component extends React.Component {
587
+ render() {
588
+ const inner = (
589
+ <Wrapper object={innerObj} ref={c => (this.innerRef = c)} />
590
+ );
591
+ const outer = (
592
+ <Wrapper object={outerObj} ref={c => (this.outerRef = c)}>
593
+ {inner}
594
+ </Wrapper>
595
+ );
596
+ return outer;
597
+ }
598
+
599
+ componentDidMount() {
600
+ expect(this.innerRef.getObject()).toEqual(innerObj);
601
+ expect(this.outerRef.getObject()).toEqual(outerObj);
602
+ mounted = true;
603
+ }
604
+ }
605
+
606
+ ReactTestUtils.renderIntoDocument(<Component />);
607
+ expect(mounted).toBe(true);
608
+});
609
+
610
+it('should support object-style refs', () => {
611
+ const innerObj = {};
612
+ const outerObj = {};
613
+
614
+ class Wrapper extends React.Component {
615
+ getObject = () => {
616
+ return this.props.object;
617
+ };
618
+
619
+ render() {
620
+ return <div>{this.props.children}</div>;
621
+ }
622
+ }
623
+
624
+ let mounted = false;
625
+
626
+ class Component extends React.Component {
627
+ constructor() {
628
+ super();
629
+ this.innerRef = React.createRef();
630
+ this.outerRef = React.createRef();
631
+ }
632
+ render() {
633
+ const inner = <Wrapper object={innerObj} ref={this.innerRef} />;
634
+ const outer = (
635
+ <Wrapper object={outerObj} ref={this.outerRef}>
636
+ {inner}
637
+ </Wrapper>
638
+ );
639
+ return outer;
640
+ }
641
+
642
+ componentDidMount() {
643
+ expect(this.innerRef.current.getObject()).toEqual(innerObj);
644
+ expect(this.outerRef.current.getObject()).toEqual(outerObj);
645
+ mounted = true;
646
+ }
647
+ }
648
+
649
+ ReactTestUtils.renderIntoDocument(<Component />);
650
+ expect(mounted).toBe(true);
651
+});
652
+
653
+it('should support new-style refs with mixed-up owners', () => {
654
+ class Wrapper extends React.Component {
655
+ getTitle = () => {
656
+ return this.props.title;
657
+ };
658
+
659
+ render() {
660
+ return this.props.getContent();
661
+ }
662
+ }
663
+
664
+ let mounted = false;
665
+
666
+ class Component extends React.Component {
667
+ getInner = () => {
668
+ // (With old-style refs, it's impossible to get a ref to this div
669
+ // because Wrapper is the current owner when this function is called.)
670
+ return <div className="inner" ref={c => (this.innerRef = c)} />;
671
+ };
672
+
673
+ render() {
674
+ return (
675
+ <Wrapper
676
+ title="wrapper"
677
+ ref={c => (this.wrapperRef = c)}
678
+ getContent={this.getInner}
679
+ />
680
+ );
681
+ }
682
+
683
+ componentDidMount() {
684
+ // Check .props.title to make sure we got the right elements back
685
+ expect(this.wrapperRef.getTitle()).toBe('wrapper');
686
+ expect(this.innerRef.className).toBe('inner');
687
+ mounted = true;
688
+ }
689
+ }
690
+
691
+ ReactTestUtils.renderIntoDocument(<Component />);
692
+ expect(mounted).toBe(true);
693
+});
694
+
695
+it('should warn when `key` is being accessed on composite element', () => {
696
+ const container = document.createElement('div');
697
+ class Child extends React.Component {
698
+ render() {
699
+ return <div> {this.props.key} </div>;
700
+ }
701
+ }
702
+ class Parent extends React.Component {
703
+ render() {
704
+ return (
705
+ <div>
706
+ <Child key="0" />
707
+ <Child key="1" />
708
+ <Child key="2" />
709
+ </div>
710
+ );
711
+ }
712
+ }
713
+ expect(() => ReactDOM.render(<Parent />, container)).toErrorDev(
714
+ 'Child: `key` is not a prop. Trying to access it will result ' +
715
+ 'in `undefined` being returned. If you need to access the same ' +
716
+ 'value within the child component, you should pass it as a different ' +
717
+ 'prop. (https://reactjs.org/link/special-props)'
718
+ );
719
+});
720
+
721
+it('should warn when `ref` is being accessed', () => {
722
+ const container = document.createElement('div');
723
+ class Child extends React.Component {
724
+ render() {
725
+ return <div> {this.props.ref} </div>;
726
+ }
727
+ }
728
+ class Parent extends React.Component {
729
+ render() {
730
+ return (
731
+ <div>
732
+ <Child ref="childElement" />
733
+ </div>
734
+ );
735
+ }
736
+ }
737
+ expect(() => ReactDOM.render(<Parent />, container)).toErrorDev(
738
+ 'Child: `ref` is not a prop. Trying to access it will result ' +
739
+ 'in `undefined` being returned. If you need to access the same ' +
740
+ 'value within the child component, you should pass it as a different ' +
741
+ 'prop. (https://reactjs.org/link/special-props)'
742
+ );
743
+});
744
+
745
+it('should warn when owner and self are different for string refs', () => {
746
+ class ClassWithRenderProp extends React.Component {
747
+ render() {
748
+ return this.props.children();
749
+ }
750
+ }
751
+
752
+ class ClassParent extends React.Component {
753
+ render() {
754
+ return (
755
+ <ClassWithRenderProp>{() => <div ref="myRef" />}</ClassWithRenderProp>
756
+ );
757
+ }
758
+ }
759
+
760
+ const container = document.createElement('div');
761
+ if (process.env.BABEL_ENV === 'development') {
762
+ expect(() => ReactDOM.render(<ClassParent />, container)).toErrorDev([
763
+ 'Warning: Component "ClassWithRenderProp" contains the string ref "myRef". ' +
764
+ 'Support for string refs will be removed in a future major release. ' +
765
+ 'This case cannot be automatically converted to an arrow function. ' +
766
+ 'We ask you to manually fix this case by using useRef() or createRef() instead. ' +
767
+ 'Learn more about using refs safely here: ' +
768
+ 'https://reactjs.org/link/strict-mode-string-ref',
769
+ ]);
770
+ } else {
771
+ ReactDOM.render(<ClassParent />, container);
772
+ }
773
+});
fixtures/legacy-jsx-runtimes/react-16/yarn.lock
new
+61
@@ -0,0 +1,61 @@
1
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2
+# yarn lockfile v1
3
+
4
+
5
+"js-tokens@^3.0.0 || ^4.0.0":
6
+ version "4.0.0"
7
+ resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
8
+ integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
9
+
10
+loose-envify@^1.1.0, loose-envify@^1.4.0:
11
+ version "1.4.0"
12
+ resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
13
+ integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
14
+ dependencies:
15
+ js-tokens "^3.0.0 || ^4.0.0"
16
+
17
+object-assign@^4.1.1:
18
+ version "4.1.1"
19
+ resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
20
+ integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
21
+
22
+prop-types@^15.6.2, prop-types@^15.7.2:
23
+ version "15.7.2"
24
+ resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
25
+ integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==
26
+ dependencies:
27
+ loose-envify "^1.4.0"
28
+ object-assign "^4.1.1"
29
+ react-is "^16.8.1"
30
+
31
+react-dom@16:
32
+ version "16.13.1"
33
+ resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.13.1.tgz#c1bd37331a0486c078ee54c4740720993b2e0e7f"
34
+ integrity sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==
35
+ dependencies:
36
+ loose-envify "^1.1.0"
37
+ object-assign "^4.1.1"
38
+ prop-types "^15.6.2"
39
+ scheduler "^0.19.1"
40
+
41
+react-is@^16.8.1:
42
+ version "16.13.1"
43
+ resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
44
+ integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
45
+
46
+react@16:
47
+ version "16.13.1"
48
+ resolved "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e"
49
+ integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==
50
+ dependencies:
51
+ loose-envify "^1.1.0"
52
+ object-assign "^4.1.1"
53
+ prop-types "^15.6.2"
54
+
55
+scheduler@^0.19.1:
56
+ version "0.19.1"
57
+ resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196"
58
+ integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==
59
+ dependencies:
60
+ loose-envify "^1.1.0"
61
+ object-assign "^4.1.1"
fixtures/legacy-jsx-runtimes/react-17/cjs/react-jsx-dev-runtime.development.js
new
+1203
@@ -0,0 +1,1203 @@
1
+/** @license React v17.0.0-rc.3
2
+ * react-jsx-dev-runtime.development.js
3
+ *
4
+ * Copyright (c) Facebook, Inc. and its affiliates.
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */
9
+
10
+'use strict';
11
+
12
+if (process.env.NODE_ENV !== "production") {
13
+ (function() {
14
+'use strict';
15
+
16
+var React = require('react');
17
+var _assign = require('object-assign');
18
+
19
+// ATTENTION
20
+// When adding new symbols to this file,
21
+// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'
22
+// The Symbol used to tag the ReactElement-like types. If there is no native Symbol
23
+// nor polyfill, then a plain number is used for performance.
24
+var REACT_ELEMENT_TYPE = 0xeac7;
25
+var REACT_PORTAL_TYPE = 0xeaca;
26
+exports.Fragment = 0xeacb;
27
+var REACT_STRICT_MODE_TYPE = 0xeacc;
28
+var REACT_PROFILER_TYPE = 0xead2;
29
+var REACT_PROVIDER_TYPE = 0xeacd;
30
+var REACT_CONTEXT_TYPE = 0xeace;
31
+var REACT_FORWARD_REF_TYPE = 0xead0;
32
+var REACT_SUSPENSE_TYPE = 0xead1;
33
+var REACT_SUSPENSE_LIST_TYPE = 0xead8;
34
+var REACT_MEMO_TYPE = 0xead3;
35
+var REACT_LAZY_TYPE = 0xead4;
36
+var REACT_BLOCK_TYPE = 0xead9;
37
+var REACT_SERVER_BLOCK_TYPE = 0xeada;
38
+var REACT_FUNDAMENTAL_TYPE = 0xead5;
39
+var REACT_SCOPE_TYPE = 0xead7;
40
+var REACT_OPAQUE_ID_TYPE = 0xeae0;
41
+var REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;
42
+var REACT_OFFSCREEN_TYPE = 0xeae2;
43
+var REACT_LEGACY_HIDDEN_TYPE = 0xeae3;
44
+
45
+if (typeof Symbol === 'function' && Symbol.for) {
46
+ var symbolFor = Symbol.for;
47
+ REACT_ELEMENT_TYPE = symbolFor('react.element');
48
+ REACT_PORTAL_TYPE = symbolFor('react.portal');
49
+ exports.Fragment = symbolFor('react.fragment');
50
+ REACT_STRICT_MODE_TYPE = symbolFor('react.strict_mode');
51
+ REACT_PROFILER_TYPE = symbolFor('react.profiler');
52
+ REACT_PROVIDER_TYPE = symbolFor('react.provider');
53
+ REACT_CONTEXT_TYPE = symbolFor('react.context');
54
+ REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');
55
+ REACT_SUSPENSE_TYPE = symbolFor('react.suspense');
56
+ REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');
57
+ REACT_MEMO_TYPE = symbolFor('react.memo');
58
+ REACT_LAZY_TYPE = symbolFor('react.lazy');
59
+ REACT_BLOCK_TYPE = symbolFor('react.block');
60
+ REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block');
61
+ REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental');
62
+ REACT_SCOPE_TYPE = symbolFor('react.scope');
63
+ REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id');
64
+ REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');
65
+ REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');
66
+ REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');
67
+}
68
+
69
+var MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
70
+var FAUX_ITERATOR_SYMBOL = '@@iterator';
71
+function getIteratorFn(maybeIterable) {
72
+ if (maybeIterable === null || typeof maybeIterable !== 'object') {
73
+ return null;
74
+ }
75
+
76
+ var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];
77
+
78
+ if (typeof maybeIterator === 'function') {
79
+ return maybeIterator;
80
+ }
81
+
82
+ return null;
83
+}
84
+
85
+var ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
86
+
87
+function error(format) {
88
+ {
89
+ for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
90
+ args[_key2 - 1] = arguments[_key2];
91
+ }
92
+
93
+ printWarning('error', format, args);
94
+ }
95
+}
96
+
97
+function printWarning(level, format, args) {
98
+ // When changing this logic, you might want to also
99
+ // update consoleWithStackDev.www.js as well.
100
+ {
101
+ var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;
102
+ var stack = ReactDebugCurrentFrame.getStackAddendum();
103
+
104
+ if (stack !== '') {
105
+ format += '%s';
106
+ args = args.concat([stack]);
107
+ }
108
+
109
+ var argsWithFormat = args.map(function (item) {
110
+ return '' + item;
111
+ }); // Careful: RN currently depends on this prefix
112
+
113
+ argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it
114
+ // breaks IE9: https://github.com/facebook/react/issues/13610
115
+ // eslint-disable-next-line react-internal/no-production-logging
116
+
117
+ Function.prototype.apply.call(console[level], console, argsWithFormat);
118
+ }
119
+}
120
+
121
+// Filter certain DOM attributes (e.g. src, href) if their values are empty strings.
122
+
123
+var enableScopeAPI = false; // Experimental Create Event Handle API.
124
+
125
+function isValidElementType(type) {
126
+ if (typeof type === 'string' || typeof type === 'function') {
127
+ return true;
128
+ } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).
129
+
130
+
131
+ if (type === exports.Fragment || type === REACT_PROFILER_TYPE || type === REACT_DEBUG_TRACING_MODE_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI ) {
132
+ return true;
133
+ }
134
+
135
+ if (typeof type === 'object' && type !== null) {
136
+ if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_BLOCK_TYPE || type[0] === REACT_SERVER_BLOCK_TYPE) {
137
+ return true;
138
+ }
139
+ }
140
+
141
+ return false;
142
+}
143
+
144
+function getWrappedName(outerType, innerType, wrapperName) {
145
+ var functionName = innerType.displayName || innerType.name || '';
146
+ return outerType.displayName || (functionName !== '' ? wrapperName + "(" + functionName + ")" : wrapperName);
147
+}
148
+
149
+function getContextName(type) {
150
+ return type.displayName || 'Context';
151
+}
152
+
153
+function getComponentName(type) {
154
+ if (type == null) {
155
+ // Host root, text node or just invalid type.
156
+ return null;
157
+ }
158
+
159
+ {
160
+ if (typeof type.tag === 'number') {
161
+ error('Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');
162
+ }
163
+ }
164
+
165
+ if (typeof type === 'function') {
166
+ return type.displayName || type.name || null;
167
+ }
168
+
169
+ if (typeof type === 'string') {
170
+ return type;
171
+ }
172
+
173
+ switch (type) {
174
+ case exports.Fragment:
175
+ return 'Fragment';
176
+
177
+ case REACT_PORTAL_TYPE:
178
+ return 'Portal';
179
+
180
+ case REACT_PROFILER_TYPE:
181
+ return 'Profiler';
182
+
183
+ case REACT_STRICT_MODE_TYPE:
184
+ return 'StrictMode';
185
+
186
+ case REACT_SUSPENSE_TYPE:
187
+ return 'Suspense';
188
+
189
+ case REACT_SUSPENSE_LIST_TYPE:
190
+ return 'SuspenseList';
191
+ }
192
+
193
+ if (typeof type === 'object') {
194
+ switch (type.$$typeof) {
195
+ case REACT_CONTEXT_TYPE:
196
+ var context = type;
197
+ return getContextName(context) + '.Consumer';
198
+
199
+ case REACT_PROVIDER_TYPE:
200
+ var provider = type;
201
+ return getContextName(provider._context) + '.Provider';
202
+
203
+ case REACT_FORWARD_REF_TYPE:
204
+ return getWrappedName(type, type.render, 'ForwardRef');
205
+
206
+ case REACT_MEMO_TYPE:
207
+ return getComponentName(type.type);
208
+
209
+ case REACT_BLOCK_TYPE:
210
+ return getComponentName(type._render);
211
+
212
+ case REACT_LAZY_TYPE:
213
+ {
214
+ var lazyComponent = type;
215
+ var payload = lazyComponent._payload;
216
+ var init = lazyComponent._init;
217
+
218
+ try {
219
+ return getComponentName(init(payload));
220
+ } catch (x) {
221
+ return null;
222
+ }
223
+ }
224
+ }
225
+ }
226
+
227
+ return null;
228
+}
229
+
230
+// Helpers to patch console.logs to avoid logging during side-effect free
231
+// replaying on render function. This currently only patches the object
232
+// lazily which won't cover if the log function was extracted eagerly.
233
+// We could also eagerly patch the method.
234
+var disabledDepth = 0;
235
+var prevLog;
236
+var prevInfo;
237
+var prevWarn;
238
+var prevError;
239
+var prevGroup;
240
+var prevGroupCollapsed;
241
+var prevGroupEnd;
242
+
243
+function disabledLog() {}
244
+
245
+disabledLog.__reactDisabledLog = true;
246
+function disableLogs() {
247
+ {
248
+ if (disabledDepth === 0) {
249
+ /* eslint-disable react-internal/no-production-logging */
250
+ prevLog = console.log;
251
+ prevInfo = console.info;
252
+ prevWarn = console.warn;
253
+ prevError = console.error;
254
+ prevGroup = console.group;
255
+ prevGroupCollapsed = console.groupCollapsed;
256
+ prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099
257
+
258
+ var props = {
259
+ configurable: true,
260
+ enumerable: true,
261
+ value: disabledLog,
262
+ writable: true
263
+ }; // $FlowFixMe Flow thinks console is immutable.
264
+
265
+ Object.defineProperties(console, {
266
+ info: props,
267
+ log: props,
268
+ warn: props,
269
+ error: props,
270
+ group: props,
271
+ groupCollapsed: props,
272
+ groupEnd: props
273
+ });
274
+ /* eslint-enable react-internal/no-production-logging */
275
+ }
276
+
277
+ disabledDepth++;
278
+ }
279
+}
280
+function reenableLogs() {
281
+ {
282
+ disabledDepth--;
283
+
284
+ if (disabledDepth === 0) {
285
+ /* eslint-disable react-internal/no-production-logging */
286
+ var props = {
287
+ configurable: true,
288
+ enumerable: true,
289
+ writable: true
290
+ }; // $FlowFixMe Flow thinks console is immutable.
291
+
292
+ Object.defineProperties(console, {
293
+ log: _assign({}, props, {
294
+ value: prevLog
295
+ }),
296
+ info: _assign({}, props, {
297
+ value: prevInfo
298
+ }),
299
+ warn: _assign({}, props, {
300
+ value: prevWarn
301
+ }),
302
+ error: _assign({}, props, {
303
+ value: prevError
304
+ }),
305
+ group: _assign({}, props, {
306
+ value: prevGroup
307
+ }),
308
+ groupCollapsed: _assign({}, props, {
309
+ value: prevGroupCollapsed
310
+ }),
311
+ groupEnd: _assign({}, props, {
312
+ value: prevGroupEnd
313
+ })
314
+ });
315
+ /* eslint-enable react-internal/no-production-logging */
316
+ }
317
+
318
+ if (disabledDepth < 0) {
319
+ error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');
320
+ }
321
+ }
322
+}
323
+
324
+var ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;
325
+var prefix;
326
+function describeBuiltInComponentFrame(name, source, ownerFn) {
327
+ {
328
+ if (prefix === undefined) {
329
+ // Extract the VM specific prefix used by each line.
330
+ try {
331
+ throw Error();
332
+ } catch (x) {
333
+ var match = x.stack.trim().match(/\n( *(at )?)/);
334
+ prefix = match && match[1] || '';
335
+ }
336
+ } // We use the prefix to ensure our stacks line up with native stack frames.
337
+
338
+
339
+ return '\n' + prefix + name;
340
+ }
341
+}
342
+var reentry = false;
343
+var componentFrameCache;
344
+
345
+{
346
+ var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;
347
+ componentFrameCache = new PossiblyWeakMap();
348
+}
349
+
350
+function describeNativeComponentFrame(fn, construct) {
351
+ // If something asked for a stack inside a fake render, it should get ignored.
352
+ if (!fn || reentry) {
353
+ return '';
354
+ }
355
+
356
+ {
357
+ var frame = componentFrameCache.get(fn);
358
+
359
+ if (frame !== undefined) {
360
+ return frame;
361
+ }
362
+ }
363
+
364
+ var control;
365
+ reentry = true;
366
+ var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.
367
+
368
+ Error.prepareStackTrace = undefined;
369
+ var previousDispatcher;
370
+
371
+ {
372
+ previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function
373
+ // for warnings.
374
+
375
+ ReactCurrentDispatcher.current = null;
376
+ disableLogs();
377
+ }
378
+
379
+ try {
380
+ // This should throw.
381
+ if (construct) {
382
+ // Something should be setting the props in the constructor.
383
+ var Fake = function () {
384
+ throw Error();
385
+ }; // $FlowFixMe
386
+
387
+
388
+ Object.defineProperty(Fake.prototype, 'props', {
389
+ set: function () {
390
+ // We use a throwing setter instead of frozen or non-writable props
391
+ // because that won't throw in a non-strict mode function.
392
+ throw Error();
393
+ }
394
+ });
395
+
396
+ if (typeof Reflect === 'object' && Reflect.construct) {
397
+ // We construct a different control for this case to include any extra
398
+ // frames added by the construct call.
399
+ try {
400
+ Reflect.construct(Fake, []);
401
+ } catch (x) {
402
+ control = x;
403
+ }
404
+
405
+ Reflect.construct(fn, [], Fake);
406
+ } else {
407
+ try {
408
+ Fake.call();
409
+ } catch (x) {
410
+ control = x;
411
+ }
412
+
413
+ fn.call(Fake.prototype);
414
+ }
415
+ } else {
416
+ try {
417
+ throw Error();
418
+ } catch (x) {
419
+ control = x;
420
+ }
421
+
422
+ fn();
423
+ }
424
+ } catch (sample) {
425
+ // This is inlined manually because closure doesn't do it for us.
426
+ if (sample && control && typeof sample.stack === 'string') {
427
+ // This extracts the first frame from the sample that isn't also in the control.
428
+ // Skipping one frame that we assume is the frame that calls the two.
429
+ var sampleLines = sample.stack.split('\n');
430
+ var controlLines = control.stack.split('\n');
431
+ var s = sampleLines.length - 1;
432
+ var c = controlLines.length - 1;
433
+
434
+ while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {
435
+ // We expect at least one stack frame to be shared.
436
+ // Typically this will be the root most one. However, stack frames may be
437
+ // cut off due to maximum stack limits. In this case, one maybe cut off
438
+ // earlier than the other. We assume that the sample is longer or the same
439
+ // and there for cut off earlier. So we should find the root most frame in
440
+ // the sample somewhere in the control.
441
+ c--;
442
+ }
443
+
444
+ for (; s >= 1 && c >= 0; s--, c--) {
445
+ // Next we find the first one that isn't the same which should be the
446
+ // frame that called our sample function and the control.
447
+ if (sampleLines[s] !== controlLines[c]) {
448
+ // In V8, the first line is describing the message but other VMs don't.
449
+ // If we're about to return the first line, and the control is also on the same
450
+ // line, that's a pretty good indicator that our sample threw at same line as
451
+ // the control. I.e. before we entered the sample frame. So we ignore this result.
452
+ // This can happen if you passed a class to function component, or non-function.
453
+ if (s !== 1 || c !== 1) {
454
+ do {
455
+ s--;
456
+ c--; // We may still have similar intermediate frames from the construct call.
457
+ // The next one that isn't the same should be our match though.
458
+
459
+ if (c < 0 || sampleLines[s] !== controlLines[c]) {
460
+ // V8 adds a "new" prefix for native classes. Let's remove it to make it prettier.
461
+ var _frame = '\n' + sampleLines[s].replace(' at new ', ' at ');
462
+
463
+ {
464
+ if (typeof fn === 'function') {
465
+ componentFrameCache.set(fn, _frame);
466
+ }
467
+ } // Return the line we found.
468
+
469
+
470
+ return _frame;
471
+ }
472
+ } while (s >= 1 && c >= 0);
473
+ }
474
+
475
+ break;
476
+ }
477
+ }
478
+ }
479
+ } finally {
480
+ reentry = false;
481
+
482
+ {
483
+ ReactCurrentDispatcher.current = previousDispatcher;
484
+ reenableLogs();
485
+ }
486
+
487
+ Error.prepareStackTrace = previousPrepareStackTrace;
488
+ } // Fallback to just using the name if we couldn't make it throw.
489
+
490
+
491
+ var name = fn ? fn.displayName || fn.name : '';
492
+ var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';
493
+
494
+ {
495
+ if (typeof fn === 'function') {
496
+ componentFrameCache.set(fn, syntheticFrame);
497
+ }
498
+ }
499
+
500
+ return syntheticFrame;
501
+}
502
+function describeFunctionComponentFrame(fn, source, ownerFn) {
503
+ {
504
+ return describeNativeComponentFrame(fn, false);
505
+ }
506
+}
507
+
508
+function shouldConstruct(Component) {
509
+ var prototype = Component.prototype;
510
+ return !!(prototype && prototype.isReactComponent);
511
+}
512
+
513
+function describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {
514
+
515
+ if (type == null) {
516
+ return '';
517
+ }
518
+
519
+ if (typeof type === 'function') {
520
+ {
521
+ return describeNativeComponentFrame(type, shouldConstruct(type));
522
+ }
523
+ }
524
+
525
+ if (typeof type === 'string') {
526
+ return describeBuiltInComponentFrame(type);
527
+ }
528
+
529
+ switch (type) {
530
+ case REACT_SUSPENSE_TYPE:
531
+ return describeBuiltInComponentFrame('Suspense');
532
+
533
+ case REACT_SUSPENSE_LIST_TYPE:
534
+ return describeBuiltInComponentFrame('SuspenseList');
535
+ }
536
+
537
+ if (typeof type === 'object') {
538
+ switch (type.$$typeof) {
539
+ case REACT_FORWARD_REF_TYPE:
540
+ return describeFunctionComponentFrame(type.render);
541
+
542
+ case REACT_MEMO_TYPE:
543
+ // Memo may contain any component type so we recursively resolve it.
544
+ return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);
545
+
546
+ case REACT_BLOCK_TYPE:
547
+ return describeFunctionComponentFrame(type._render);
548
+
549
+ case REACT_LAZY_TYPE:
550
+ {
551
+ var lazyComponent = type;
552
+ var payload = lazyComponent._payload;
553
+ var init = lazyComponent._init;
554
+
555
+ try {
556
+ // Lazy may contain any component type so we recursively resolve it.
557
+ return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);
558
+ } catch (x) {}
559
+ }
560
+ }
561
+ }
562
+
563
+ return '';
564
+}
565
+
566
+var loggedTypeFailures = {};
567
+var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;
568
+
569
+function setCurrentlyValidatingElement(element) {
570
+ {
571
+ if (element) {
572
+ var owner = element._owner;
573
+ var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);
574
+ ReactDebugCurrentFrame.setExtraStackFrame(stack);
575
+ } else {
576
+ ReactDebugCurrentFrame.setExtraStackFrame(null);
577
+ }
578
+ }
579
+}
580
+
581
+function checkPropTypes(typeSpecs, values, location, componentName, element) {
582
+ {
583
+ // $FlowFixMe This is okay but Flow doesn't know it.
584
+ var has = Function.call.bind(Object.prototype.hasOwnProperty);
585
+
586
+ for (var typeSpecName in typeSpecs) {
587
+ if (has(typeSpecs, typeSpecName)) {
588
+ var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to
589
+ // fail the render phase where it didn't fail before. So we log it.
590
+ // After these have been cleaned up, we'll let them throw.
591
+
592
+ try {
593
+ // This is intentionally an invariant that gets caught. It's the same
594
+ // behavior as without this statement except with a better message.
595
+ if (typeof typeSpecs[typeSpecName] !== 'function') {
596
+ var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');
597
+ err.name = 'Invariant Violation';
598
+ throw err;
599
+ }
600
+
601
+ error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');
602
+ } catch (ex) {
603
+ error$1 = ex;
604
+ }
605
+
606
+ if (error$1 && !(error$1 instanceof Error)) {
607
+ setCurrentlyValidatingElement(element);
608
+
609
+ error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);
610
+
611
+ setCurrentlyValidatingElement(null);
612
+ }
613
+
614
+ if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {
615
+ // Only monitor this failure once because there tends to be a lot of the
616
+ // same error.
617
+ loggedTypeFailures[error$1.message] = true;
618
+ setCurrentlyValidatingElement(element);
619
+
620
+ error('Failed %s type: %s', location, error$1.message);
621
+
622
+ setCurrentlyValidatingElement(null);
623
+ }
624
+ }
625
+ }
626
+ }
627
+}
628
+
629
+var ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;
630
+var hasOwnProperty = Object.prototype.hasOwnProperty;
631
+var RESERVED_PROPS = {
632
+ key: true,
633
+ ref: true,
634
+ __self: true,
635
+ __source: true
636
+};
637
+var specialPropKeyWarningShown;
638
+var specialPropRefWarningShown;
639
+var didWarnAboutStringRefs;
640
+
641
+{
642
+ didWarnAboutStringRefs = {};
643
+}
644
+
645
+function hasValidRef(config) {
646
+ {
647
+ if (hasOwnProperty.call(config, 'ref')) {
648
+ var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;
649
+
650
+ if (getter && getter.isReactWarning) {
651
+ return false;
652
+ }
653
+ }
654
+ }
655
+
656
+ return config.ref !== undefined;
657
+}
658
+
659
+function hasValidKey(config) {
660
+ {
661
+ if (hasOwnProperty.call(config, 'key')) {
662
+ var getter = Object.getOwnPropertyDescriptor(config, 'key').get;
663
+
664
+ if (getter && getter.isReactWarning) {
665
+ return false;
666
+ }
667
+ }
668
+ }
669
+
670
+ return config.key !== undefined;
671
+}
672
+
673
+function warnIfStringRefCannotBeAutoConverted(config, self) {
674
+ {
675
+ if (typeof config.ref === 'string' && ReactCurrentOwner.current && self && ReactCurrentOwner.current.stateNode !== self) {
676
+ var componentName = getComponentName(ReactCurrentOwner.current.type);
677
+
678
+ if (!didWarnAboutStringRefs[componentName]) {
679
+ error('Component "%s" contains the string ref "%s". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', getComponentName(ReactCurrentOwner.current.type), config.ref);
680
+
681
+ didWarnAboutStringRefs[componentName] = true;
682
+ }
683
+ }
684
+ }
685
+}
686
+
687
+function defineKeyPropWarningGetter(props, displayName) {
688
+ {
689
+ var warnAboutAccessingKey = function () {
690
+ if (!specialPropKeyWarningShown) {
691
+ specialPropKeyWarningShown = true;
692
+
693
+ error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);
694
+ }
695
+ };
696
+
697
+ warnAboutAccessingKey.isReactWarning = true;
698
+ Object.defineProperty(props, 'key', {
699
+ get: warnAboutAccessingKey,
700
+ configurable: true
701
+ });
702
+ }
703
+}
704
+
705
+function defineRefPropWarningGetter(props, displayName) {
706
+ {
707
+ var warnAboutAccessingRef = function () {
708
+ if (!specialPropRefWarningShown) {
709
+ specialPropRefWarningShown = true;
710
+
711
+ error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);
712
+ }
713
+ };
714
+
715
+ warnAboutAccessingRef.isReactWarning = true;
716
+ Object.defineProperty(props, 'ref', {
717
+ get: warnAboutAccessingRef,
718
+ configurable: true
719
+ });
720
+ }
721
+}
722
+/**
723
+ * Factory method to create a new React element. This no longer adheres to
724
+ * the class pattern, so do not use new to call it. Also, instanceof check
725
+ * will not work. Instead test $$typeof field against Symbol.for('react.element') to check
726
+ * if something is a React Element.
727
+ *
728
+ * @param {*} type
729
+ * @param {*} props
730
+ * @param {*} key
731
+ * @param {string|object} ref
732
+ * @param {*} owner
733
+ * @param {*} self A *temporary* helper to detect places where `this` is
734
+ * different from the `owner` when React.createElement is called, so that we
735
+ * can warn. We want to get rid of owner and replace string `ref`s with arrow
736
+ * functions, and as long as `this` and owner are the same, there will be no
737
+ * change in behavior.
738
+ * @param {*} source An annotation object (added by a transpiler or otherwise)
739
+ * indicating filename, line number, and/or other information.
740
+ * @internal
741
+ */
742
+
743
+
744
+var ReactElement = function (type, key, ref, self, source, owner, props) {
745
+ var element = {
746
+ // This tag allows us to uniquely identify this as a React Element
747
+ $$typeof: REACT_ELEMENT_TYPE,
748
+ // Built-in properties that belong on the element
749
+ type: type,
750
+ key: key,
751
+ ref: ref,
752
+ props: props,
753
+ // Record the component responsible for creating this element.
754
+ _owner: owner
755
+ };
756
+
757
+ {
758
+ // The validation flag is currently mutative. We put it on
759
+ // an external backing store so that we can freeze the whole object.
760
+ // This can be replaced with a WeakMap once they are implemented in
761
+ // commonly used development environments.
762
+ element._store = {}; // To make comparing ReactElements easier for testing purposes, we make
763
+ // the validation flag non-enumerable (where possible, which should
764
+ // include every environment we run tests in), so the test framework
765
+ // ignores it.
766
+
767
+ Object.defineProperty(element._store, 'validated', {
768
+ configurable: false,
769
+ enumerable: false,
770
+ writable: true,
771
+ value: false
772
+ }); // self and source are DEV only properties.
773
+
774
+ Object.defineProperty(element, '_self', {
775
+ configurable: false,
776
+ enumerable: false,
777
+ writable: false,
778
+ value: self
779
+ }); // Two elements created in two different places should be considered
780
+ // equal for testing purposes and therefore we hide it from enumeration.
781
+
782
+ Object.defineProperty(element, '_source', {
783
+ configurable: false,
784
+ enumerable: false,
785
+ writable: false,
786
+ value: source
787
+ });
788
+
789
+ if (Object.freeze) {
790
+ Object.freeze(element.props);
791
+ Object.freeze(element);
792
+ }
793
+ }
794
+
795
+ return element;
796
+};
797
+/**
798
+ * https://github.com/reactjs/rfcs/pull/107
799
+ * @param {*} type
800
+ * @param {object} props
801
+ * @param {string} key
802
+ */
803
+
804
+function jsxDEV(type, config, maybeKey, source, self) {
805
+ {
806
+ var propName; // Reserved names are extracted
807
+
808
+ var props = {};
809
+ var key = null;
810
+ var ref = null; // Currently, key can be spread in as a prop. This causes a potential
811
+ // issue if key is also explicitly declared (ie. <div {...props} key="Hi" />
812
+ // or <div key="Hi" {...props} /> ). We want to deprecate key spread,
813
+ // but as an intermediary step, we will use jsxDEV for everything except
814
+ // <div {...props} key="Hi" />, because we aren't currently able to tell if
815
+ // key is explicitly declared to be undefined or not.
816
+
817
+ if (maybeKey !== undefined) {
818
+ key = '' + maybeKey;
819
+ }
820
+
821
+ if (hasValidKey(config)) {
822
+ key = '' + config.key;
823
+ }
824
+
825
+ if (hasValidRef(config)) {
826
+ ref = config.ref;
827
+ warnIfStringRefCannotBeAutoConverted(config, self);
828
+ } // Remaining properties are added to a new props object
829
+
830
+
831
+ for (propName in config) {
832
+ if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {
833
+ props[propName] = config[propName];
834
+ }
835
+ } // Resolve default props
836
+
837
+
838
+ if (type && type.defaultProps) {
839
+ var defaultProps = type.defaultProps;
840
+
841
+ for (propName in defaultProps) {
842
+ if (props[propName] === undefined) {
843
+ props[propName] = defaultProps[propName];
844
+ }
845
+ }
846
+ }
847
+
848
+ if (key || ref) {
849
+ var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;
850
+
851
+ if (key) {
852
+ defineKeyPropWarningGetter(props, displayName);
853
+ }
854
+
855
+ if (ref) {
856
+ defineRefPropWarningGetter(props, displayName);
857
+ }
858
+ }
859
+
860
+ return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);
861
+ }
862
+}
863
+
864
+var ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;
865
+var ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;
866
+
867
+function setCurrentlyValidatingElement$1(element) {
868
+ {
869
+ if (element) {
870
+ var owner = element._owner;
871
+ var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);
872
+ ReactDebugCurrentFrame$1.setExtraStackFrame(stack);
873
+ } else {
874
+ ReactDebugCurrentFrame$1.setExtraStackFrame(null);
875
+ }
876
+ }
877
+}
878
+
879
+var propTypesMisspellWarningShown;
880
+
881
+{
882
+ propTypesMisspellWarningShown = false;
883
+}
884
+/**
885
+ * Verifies the object is a ReactElement.
886
+ * See https://reactjs.org/docs/react-api.html#isvalidelement
887
+ * @param {?object} object
888
+ * @return {boolean} True if `object` is a ReactElement.
889
+ * @final
890
+ */
891
+
892
+function isValidElement(object) {
893
+ {
894
+ return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
895
+ }
896
+}
897
+
898
+function getDeclarationErrorAddendum() {
899
+ {
900
+ if (ReactCurrentOwner$1.current) {
901
+ var name = getComponentName(ReactCurrentOwner$1.current.type);
902
+
903
+ if (name) {
904
+ return '\n\nCheck the render method of `' + name + '`.';
905
+ }
906
+ }
907
+
908
+ return '';
909
+ }
910
+}
911
+
912
+function getSourceInfoErrorAddendum(source) {
913
+ {
914
+ if (source !== undefined) {
915
+ var fileName = source.fileName.replace(/^.*[\\\/]/, '');
916
+ var lineNumber = source.lineNumber;
917
+ return '\n\nCheck your code at ' + fileName + ':' + lineNumber + '.';
918
+ }
919
+
920
+ return '';
921
+ }
922
+}
923
+/**
924
+ * Warn if there's no key explicitly set on dynamic arrays of children or
925
+ * object keys are not valid. This allows us to keep track of children between
926
+ * updates.
927
+ */
928
+
929
+
930
+var ownerHasKeyUseWarning = {};
931
+
932
+function getCurrentComponentErrorInfo(parentType) {
933
+ {
934
+ var info = getDeclarationErrorAddendum();
935
+
936
+ if (!info) {
937
+ var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;
938
+
939
+ if (parentName) {
940
+ info = "\n\nCheck the top-level render call using <" + parentName + ">.";
941
+ }
942
+ }
943
+
944
+ return info;
945
+ }
946
+}
947
+/**
948
+ * Warn if the element doesn't have an explicit key assigned to it.
949
+ * This element is in an array. The array could grow and shrink or be
950
+ * reordered. All children that haven't already been validated are required to
951
+ * have a "key" property assigned to it. Error statuses are cached so a warning
952
+ * will only be shown once.
953
+ *
954
+ * @internal
955
+ * @param {ReactElement} element Element that requires a key.
956
+ * @param {*} parentType element's parent's type.
957
+ */
958
+
959
+
960
+function validateExplicitKey(element, parentType) {
961
+ {
962
+ if (!element._store || element._store.validated || element.key != null) {
963
+ return;
964
+ }
965
+
966
+ element._store.validated = true;
967
+ var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);
968
+
969
+ if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {
970
+ return;
971
+ }
972
+
973
+ ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a
974
+ // property, it may be the creator of the child that's responsible for
975
+ // assigning it a key.
976
+
977
+ var childOwner = '';
978
+
979
+ if (element && element._owner && element._owner !== ReactCurrentOwner$1.current) {
980
+ // Give the component that originally created this child.
981
+ childOwner = " It was passed a child from " + getComponentName(element._owner.type) + ".";
982
+ }
983
+
984
+ setCurrentlyValidatingElement$1(element);
985
+
986
+ error('Each child in a list should have a unique "key" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);
987
+
988
+ setCurrentlyValidatingElement$1(null);
989
+ }
990
+}
991
+/**
992
+ * Ensure that every element either is passed in a static location, in an
993
+ * array with an explicit keys property defined, or in an object literal
994
+ * with valid key property.
995
+ *
996
+ * @internal
997
+ * @param {ReactNode} node Statically passed child of any type.
998
+ * @param {*} parentType node's parent's type.
999
+ */
1000
+
1001
+
1002
+function validateChildKeys(node, parentType) {
1003
+ {
1004
+ if (typeof node !== 'object') {
1005
+ return;
1006
+ }
1007
+
1008
+ if (Array.isArray(node)) {
1009
+ for (var i = 0; i < node.length; i++) {
1010
+ var child = node[i];
1011
+
1012
+ if (isValidElement(child)) {
1013
+ validateExplicitKey(child, parentType);
1014
+ }
1015
+ }
1016
+ } else if (isValidElement(node)) {
1017
+ // This element was passed in a valid location.
1018
+ if (node._store) {
1019
+ node._store.validated = true;
1020
+ }
1021
+ } else if (node) {
1022
+ var iteratorFn = getIteratorFn(node);
1023
+
1024
+ if (typeof iteratorFn === 'function') {
1025
+ // Entry iterators used to provide implicit keys,
1026
+ // but now we print a separate warning for them later.
1027
+ if (iteratorFn !== node.entries) {
1028
+ var iterator = iteratorFn.call(node);
1029
+ var step;
1030
+
1031
+ while (!(step = iterator.next()).done) {
1032
+ if (isValidElement(step.value)) {
1033
+ validateExplicitKey(step.value, parentType);
1034
+ }
1035
+ }
1036
+ }
1037
+ }
1038
+ }
1039
+ }
1040
+}
1041
+/**
1042
+ * Given an element, validate that its props follow the propTypes definition,
1043
+ * provided by the type.
1044
+ *
1045
+ * @param {ReactElement} element
1046
+ */
1047
+
1048
+
1049
+function validatePropTypes(element) {
1050
+ {
1051
+ var type = element.type;
1052
+
1053
+ if (type === null || type === undefined || typeof type === 'string') {
1054
+ return;
1055
+ }
1056
+
1057
+ var propTypes;
1058
+
1059
+ if (typeof type === 'function') {
1060
+ propTypes = type.propTypes;
1061
+ } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.
1062
+ // Inner props are checked in the reconciler.
1063
+ type.$$typeof === REACT_MEMO_TYPE)) {
1064
+ propTypes = type.propTypes;
1065
+ } else {
1066
+ return;
1067
+ }
1068
+
1069
+ if (propTypes) {
1070
+ // Intentionally inside to avoid triggering lazy initializers:
1071
+ var name = getComponentName(type);
1072
+ checkPropTypes(propTypes, element.props, 'prop', name, element);
1073
+ } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {
1074
+ propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:
1075
+
1076
+ var _name = getComponentName(type);
1077
+
1078
+ error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');
1079
+ }
1080
+
1081
+ if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {
1082
+ error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');
1083
+ }
1084
+ }
1085
+}
1086
+/**
1087
+ * Given a fragment, validate that it can only be provided with fragment props
1088
+ * @param {ReactElement} fragment
1089
+ */
1090
+
1091
+
1092
+function validateFragmentProps(fragment) {
1093
+ {
1094
+ var keys = Object.keys(fragment.props);
1095
+
1096
+ for (var i = 0; i < keys.length; i++) {
1097
+ var key = keys[i];
1098
+
1099
+ if (key !== 'children' && key !== 'key') {
1100
+ setCurrentlyValidatingElement$1(fragment);
1101
+
1102
+ error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);
1103
+
1104
+ setCurrentlyValidatingElement$1(null);
1105
+ break;
1106
+ }
1107
+ }
1108
+
1109
+ if (fragment.ref !== null) {
1110
+ setCurrentlyValidatingElement$1(fragment);
1111
+
1112
+ error('Invalid attribute `ref` supplied to `React.Fragment`.');
1113
+
1114
+ setCurrentlyValidatingElement$1(null);
1115
+ }
1116
+ }
1117
+}
1118
+
1119
+function jsxWithValidation(type, props, key, isStaticChildren, source, self) {
1120
+ {
1121
+ var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to
1122
+ // succeed and there will likely be errors in render.
1123
+
1124
+ if (!validType) {
1125
+ var info = '';
1126
+
1127
+ if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {
1128
+ info += ' You likely forgot to export your component from the file ' + "it's defined in, or you might have mixed up default and named imports.";
1129
+ }
1130
+
1131
+ var sourceInfo = getSourceInfoErrorAddendum(source);
1132
+
1133
+ if (sourceInfo) {
1134
+ info += sourceInfo;
1135
+ } else {
1136
+ info += getDeclarationErrorAddendum();
1137
+ }
1138
+
1139
+ var typeString;
1140
+
1141
+ if (type === null) {
1142
+ typeString = 'null';
1143
+ } else if (Array.isArray(type)) {
1144
+ typeString = 'array';
1145
+ } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {
1146
+ typeString = "<" + (getComponentName(type.type) || 'Unknown') + " />";
1147
+ info = ' Did you accidentally export a JSX literal instead of a component?';
1148
+ } else {
1149
+ typeString = typeof type;
1150
+ }
1151
+
1152
+ error('React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);
1153
+ }
1154
+
1155
+ var element = jsxDEV(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.
1156
+ // TODO: Drop this when these are no longer allowed as the type argument.
1157
+
1158
+ if (element == null) {
1159
+ return element;
1160
+ } // Skip key warning if the type isn't valid since our key validation logic
1161
+ // doesn't expect a non-string/function type and can throw confusing errors.
1162
+ // We don't want exception behavior to differ between dev and prod.
1163
+ // (Rendering will throw with a helpful message and as soon as the type is
1164
+ // fixed, the key warnings will appear.)
1165
+
1166
+
1167
+ if (validType) {
1168
+ var children = props.children;
1169
+
1170
+ if (children !== undefined) {
1171
+ if (isStaticChildren) {
1172
+ if (Array.isArray(children)) {
1173
+ for (var i = 0; i < children.length; i++) {
1174
+ validateChildKeys(children[i], type);
1175
+ }
1176
+
1177
+ if (Object.freeze) {
1178
+ Object.freeze(children);
1179
+ }
1180
+ } else {
1181
+ error('React.jsx: Static children should always be an array. ' + 'You are likely explicitly calling React.jsxs or React.jsxDEV. ' + 'Use the Babel transform instead.');
1182
+ }
1183
+ } else {
1184
+ validateChildKeys(children, type);
1185
+ }
1186
+ }
1187
+ }
1188
+
1189
+ if (type === exports.Fragment) {
1190
+ validateFragmentProps(element);
1191
+ } else {
1192
+ validatePropTypes(element);
1193
+ }
1194
+
1195
+ return element;
1196
+ }
1197
+} // These two functions exist to still get child warnings in dev
1198
+
1199
+var jsxDEV$1 = jsxWithValidation ;
1200
+
1201
+exports.jsxDEV = jsxDEV$1;
1202
+ })();
1203
+}
fixtures/legacy-jsx-runtimes/react-17/cjs/react-jsx-dev-runtime.production.min.js
new
+9
@@ -0,0 +1,9 @@
1
+/** @license React v17.0.0-rc.3
2
+ * react-jsx-dev-runtime.production.min.js
3
+ *
4
+ * Copyright (c) Facebook, Inc. and its affiliates.
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */
9
+'use strict';require("object-assign");require("react");exports.Fragment=60107;if("function"===typeof Symbol&&Symbol.for){var a=Symbol.for;exports.Fragment=a("react.fragment")}exports.jsxDEV=void 0;
fixtures/legacy-jsx-runtimes/react-17/cjs/react-jsx-runtime.development.js
new
+1221
@@ -0,0 +1,1221 @@
1
+/** @license React v17.0.0-rc.3
2
+ * react-jsx-runtime.development.js
3
+ *
4
+ * Copyright (c) Facebook, Inc. and its affiliates.
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */
9
+
10
+'use strict';
11
+
12
+if (process.env.NODE_ENV !== "production") {
13
+ (function() {
14
+'use strict';
15
+
16
+var React = require('react');
17
+var _assign = require('object-assign');
18
+
19
+// ATTENTION
20
+// When adding new symbols to this file,
21
+// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'
22
+// The Symbol used to tag the ReactElement-like types. If there is no native Symbol
23
+// nor polyfill, then a plain number is used for performance.
24
+var REACT_ELEMENT_TYPE = 0xeac7;
25
+var REACT_PORTAL_TYPE = 0xeaca;
26
+exports.Fragment = 0xeacb;
27
+var REACT_STRICT_MODE_TYPE = 0xeacc;
28
+var REACT_PROFILER_TYPE = 0xead2;
29
+var REACT_PROVIDER_TYPE = 0xeacd;
30
+var REACT_CONTEXT_TYPE = 0xeace;
31
+var REACT_FORWARD_REF_TYPE = 0xead0;
32
+var REACT_SUSPENSE_TYPE = 0xead1;
33
+var REACT_SUSPENSE_LIST_TYPE = 0xead8;
34
+var REACT_MEMO_TYPE = 0xead3;
35
+var REACT_LAZY_TYPE = 0xead4;
36
+var REACT_BLOCK_TYPE = 0xead9;
37
+var REACT_SERVER_BLOCK_TYPE = 0xeada;
38
+var REACT_FUNDAMENTAL_TYPE = 0xead5;
39
+var REACT_SCOPE_TYPE = 0xead7;
40
+var REACT_OPAQUE_ID_TYPE = 0xeae0;
41
+var REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;
42
+var REACT_OFFSCREEN_TYPE = 0xeae2;
43
+var REACT_LEGACY_HIDDEN_TYPE = 0xeae3;
44
+
45
+if (typeof Symbol === 'function' && Symbol.for) {
46
+ var symbolFor = Symbol.for;
47
+ REACT_ELEMENT_TYPE = symbolFor('react.element');
48
+ REACT_PORTAL_TYPE = symbolFor('react.portal');
49
+ exports.Fragment = symbolFor('react.fragment');
50
+ REACT_STRICT_MODE_TYPE = symbolFor('react.strict_mode');
51
+ REACT_PROFILER_TYPE = symbolFor('react.profiler');
52
+ REACT_PROVIDER_TYPE = symbolFor('react.provider');
53
+ REACT_CONTEXT_TYPE = symbolFor('react.context');
54
+ REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');
55
+ REACT_SUSPENSE_TYPE = symbolFor('react.suspense');
56
+ REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');
57
+ REACT_MEMO_TYPE = symbolFor('react.memo');
58
+ REACT_LAZY_TYPE = symbolFor('react.lazy');
59
+ REACT_BLOCK_TYPE = symbolFor('react.block');
60
+ REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block');
61
+ REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental');
62
+ REACT_SCOPE_TYPE = symbolFor('react.scope');
63
+ REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id');
64
+ REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');
65
+ REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');
66
+ REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');
67
+}
68
+
69
+var MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
70
+var FAUX_ITERATOR_SYMBOL = '@@iterator';
71
+function getIteratorFn(maybeIterable) {
72
+ if (maybeIterable === null || typeof maybeIterable !== 'object') {
73
+ return null;
74
+ }
75
+
76
+ var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];
77
+
78
+ if (typeof maybeIterator === 'function') {
79
+ return maybeIterator;
80
+ }
81
+
82
+ return null;
83
+}
84
+
85
+var ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
86
+
87
+function error(format) {
88
+ {
89
+ for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
90
+ args[_key2 - 1] = arguments[_key2];
91
+ }
92
+
93
+ printWarning('error', format, args);
94
+ }
95
+}
96
+
97
+function printWarning(level, format, args) {
98
+ // When changing this logic, you might want to also
99
+ // update consoleWithStackDev.www.js as well.
100
+ {
101
+ var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;
102
+ var stack = ReactDebugCurrentFrame.getStackAddendum();
103
+
104
+ if (stack !== '') {
105
+ format += '%s';
106
+ args = args.concat([stack]);
107
+ }
108
+
109
+ var argsWithFormat = args.map(function (item) {
110
+ return '' + item;
111
+ }); // Careful: RN currently depends on this prefix
112
+
113
+ argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it
114
+ // breaks IE9: https://github.com/facebook/react/issues/13610
115
+ // eslint-disable-next-line react-internal/no-production-logging
116
+
117
+ Function.prototype.apply.call(console[level], console, argsWithFormat);
118
+ }
119
+}
120
+
121
+// Filter certain DOM attributes (e.g. src, href) if their values are empty strings.
122
+
123
+var enableScopeAPI = false; // Experimental Create Event Handle API.
124
+
125
+function isValidElementType(type) {
126
+ if (typeof type === 'string' || typeof type === 'function') {
127
+ return true;
128
+ } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).
129
+
130
+
131
+ if (type === exports.Fragment || type === REACT_PROFILER_TYPE || type === REACT_DEBUG_TRACING_MODE_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI ) {
132
+ return true;
133
+ }
134
+
135
+ if (typeof type === 'object' && type !== null) {
136
+ if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_BLOCK_TYPE || type[0] === REACT_SERVER_BLOCK_TYPE) {
137
+ return true;
138
+ }
139
+ }
140
+
141
+ return false;
142
+}
143
+
144
+function getWrappedName(outerType, innerType, wrapperName) {
145
+ var functionName = innerType.displayName || innerType.name || '';
146
+ return outerType.displayName || (functionName !== '' ? wrapperName + "(" + functionName + ")" : wrapperName);
147
+}
148
+
149
+function getContextName(type) {
150
+ return type.displayName || 'Context';
151
+}
152
+
153
+function getComponentName(type) {
154
+ if (type == null) {
155
+ // Host root, text node or just invalid type.
156
+ return null;
157
+ }
158
+
159
+ {
160
+ if (typeof type.tag === 'number') {
161
+ error('Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');
162
+ }
163
+ }
164
+
165
+ if (typeof type === 'function') {
166
+ return type.displayName || type.name || null;
167
+ }
168
+
169
+ if (typeof type === 'string') {
170
+ return type;
171
+ }
172
+
173
+ switch (type) {
174
+ case exports.Fragment:
175
+ return 'Fragment';
176
+
177
+ case REACT_PORTAL_TYPE:
178
+ return 'Portal';
179
+
180
+ case REACT_PROFILER_TYPE:
181
+ return 'Profiler';
182
+
183
+ case REACT_STRICT_MODE_TYPE:
184
+ return 'StrictMode';
185
+
186
+ case REACT_SUSPENSE_TYPE:
187
+ return 'Suspense';
188
+
189
+ case REACT_SUSPENSE_LIST_TYPE:
190
+ return 'SuspenseList';
191
+ }
192
+
193
+ if (typeof type === 'object') {
194
+ switch (type.$$typeof) {
195
+ case REACT_CONTEXT_TYPE:
196
+ var context = type;
197
+ return getContextName(context) + '.Consumer';
198
+
199
+ case REACT_PROVIDER_TYPE:
200
+ var provider = type;
201
+ return getContextName(provider._context) + '.Provider';
202
+
203
+ case REACT_FORWARD_REF_TYPE:
204
+ return getWrappedName(type, type.render, 'ForwardRef');
205
+
206
+ case REACT_MEMO_TYPE:
207
+ return getComponentName(type.type);
208
+
209
+ case REACT_BLOCK_TYPE:
210
+ return getComponentName(type._render);
211
+
212
+ case REACT_LAZY_TYPE:
213
+ {
214
+ var lazyComponent = type;
215
+ var payload = lazyComponent._payload;
216
+ var init = lazyComponent._init;
217
+
218
+ try {
219
+ return getComponentName(init(payload));
220
+ } catch (x) {
221
+ return null;
222
+ }
223
+ }
224
+ }
225
+ }
226
+
227
+ return null;
228
+}
229
+
230
+// Helpers to patch console.logs to avoid logging during side-effect free
231
+// replaying on render function. This currently only patches the object
232
+// lazily which won't cover if the log function was extracted eagerly.
233
+// We could also eagerly patch the method.
234
+var disabledDepth = 0;
235
+var prevLog;
236
+var prevInfo;
237
+var prevWarn;
238
+var prevError;
239
+var prevGroup;
240
+var prevGroupCollapsed;
241
+var prevGroupEnd;
242
+
243
+function disabledLog() {}
244
+
245
+disabledLog.__reactDisabledLog = true;
246
+function disableLogs() {
247
+ {
248
+ if (disabledDepth === 0) {
249
+ /* eslint-disable react-internal/no-production-logging */
250
+ prevLog = console.log;
251
+ prevInfo = console.info;
252
+ prevWarn = console.warn;
253
+ prevError = console.error;
254
+ prevGroup = console.group;
255
+ prevGroupCollapsed = console.groupCollapsed;
256
+ prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099
257
+
258
+ var props = {
259
+ configurable: true,
260
+ enumerable: true,
261
+ value: disabledLog,
262
+ writable: true
263
+ }; // $FlowFixMe Flow thinks console is immutable.
264
+
265
+ Object.defineProperties(console, {
266
+ info: props,
267
+ log: props,
268
+ warn: props,
269
+ error: props,
270
+ group: props,
271
+ groupCollapsed: props,
272
+ groupEnd: props
273
+ });
274
+ /* eslint-enable react-internal/no-production-logging */
275
+ }
276
+
277
+ disabledDepth++;
278
+ }
279
+}
280
+function reenableLogs() {
281
+ {
282
+ disabledDepth--;
283
+
284
+ if (disabledDepth === 0) {
285
+ /* eslint-disable react-internal/no-production-logging */
286
+ var props = {
287
+ configurable: true,
288
+ enumerable: true,
289
+ writable: true
290
+ }; // $FlowFixMe Flow thinks console is immutable.
291
+
292
+ Object.defineProperties(console, {
293
+ log: _assign({}, props, {
294
+ value: prevLog
295
+ }),
296
+ info: _assign({}, props, {
297
+ value: prevInfo
298
+ }),
299
+ warn: _assign({}, props, {
300
+ value: prevWarn
301
+ }),
302
+ error: _assign({}, props, {
303
+ value: prevError
304
+ }),
305
+ group: _assign({}, props, {
306
+ value: prevGroup
307
+ }),
308
+ groupCollapsed: _assign({}, props, {
309
+ value: prevGroupCollapsed
310
+ }),
311
+ groupEnd: _assign({}, props, {
312
+ value: prevGroupEnd
313
+ })
314
+ });
315
+ /* eslint-enable react-internal/no-production-logging */
316
+ }
317
+
318
+ if (disabledDepth < 0) {
319
+ error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');
320
+ }
321
+ }
322
+}
323
+
324
+var ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;
325
+var prefix;
326
+function describeBuiltInComponentFrame(name, source, ownerFn) {
327
+ {
328
+ if (prefix === undefined) {
329
+ // Extract the VM specific prefix used by each line.
330
+ try {
331
+ throw Error();
332
+ } catch (x) {
333
+ var match = x.stack.trim().match(/\n( *(at )?)/);
334
+ prefix = match && match[1] || '';
335
+ }
336
+ } // We use the prefix to ensure our stacks line up with native stack frames.
337
+
338
+
339
+ return '\n' + prefix + name;
340
+ }
341
+}
342
+var reentry = false;
343
+var componentFrameCache;
344
+
345
+{
346
+ var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;
347
+ componentFrameCache = new PossiblyWeakMap();
348
+}
349
+
350
+function describeNativeComponentFrame(fn, construct) {
351
+ // If something asked for a stack inside a fake render, it should get ignored.
352
+ if (!fn || reentry) {
353
+ return '';
354
+ }
355
+
356
+ {
357
+ var frame = componentFrameCache.get(fn);
358
+
359
+ if (frame !== undefined) {
360
+ return frame;
361
+ }
362
+ }
363
+
364
+ var control;
365
+ reentry = true;
366
+ var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.
367
+
368
+ Error.prepareStackTrace = undefined;
369
+ var previousDispatcher;
370
+
371
+ {
372
+ previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function
373
+ // for warnings.
374
+
375
+ ReactCurrentDispatcher.current = null;
376
+ disableLogs();
377
+ }
378
+
379
+ try {
380
+ // This should throw.
381
+ if (construct) {
382
+ // Something should be setting the props in the constructor.
383
+ var Fake = function () {
384
+ throw Error();
385
+ }; // $FlowFixMe
386
+
387
+
388
+ Object.defineProperty(Fake.prototype, 'props', {
389
+ set: function () {
390
+ // We use a throwing setter instead of frozen or non-writable props
391
+ // because that won't throw in a non-strict mode function.
392
+ throw Error();
393
+ }
394
+ });
395
+
396
+ if (typeof Reflect === 'object' && Reflect.construct) {
397
+ // We construct a different control for this case to include any extra
398
+ // frames added by the construct call.
399
+ try {
400
+ Reflect.construct(Fake, []);
401
+ } catch (x) {
402
+ control = x;
403
+ }
404
+
405
+ Reflect.construct(fn, [], Fake);
406
+ } else {
407
+ try {
408
+ Fake.call();
409
+ } catch (x) {
410
+ control = x;
411
+ }
412
+
413
+ fn.call(Fake.prototype);
414
+ }
415
+ } else {
416
+ try {
417
+ throw Error();
418
+ } catch (x) {
419
+ control = x;
420
+ }
421
+
422
+ fn();
423
+ }
424
+ } catch (sample) {
425
+ // This is inlined manually because closure doesn't do it for us.
426
+ if (sample && control && typeof sample.stack === 'string') {
427
+ // This extracts the first frame from the sample that isn't also in the control.
428
+ // Skipping one frame that we assume is the frame that calls the two.
429
+ var sampleLines = sample.stack.split('\n');
430
+ var controlLines = control.stack.split('\n');
431
+ var s = sampleLines.length - 1;
432
+ var c = controlLines.length - 1;
433
+
434
+ while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {
435
+ // We expect at least one stack frame to be shared.
436
+ // Typically this will be the root most one. However, stack frames may be
437
+ // cut off due to maximum stack limits. In this case, one maybe cut off
438
+ // earlier than the other. We assume that the sample is longer or the same
439
+ // and there for cut off earlier. So we should find the root most frame in
440
+ // the sample somewhere in the control.
441
+ c--;
442
+ }
443
+
444
+ for (; s >= 1 && c >= 0; s--, c--) {
445
+ // Next we find the first one that isn't the same which should be the
446
+ // frame that called our sample function and the control.
447
+ if (sampleLines[s] !== controlLines[c]) {
448
+ // In V8, the first line is describing the message but other VMs don't.
449
+ // If we're about to return the first line, and the control is also on the same
450
+ // line, that's a pretty good indicator that our sample threw at same line as
451
+ // the control. I.e. before we entered the sample frame. So we ignore this result.
452
+ // This can happen if you passed a class to function component, or non-function.
453
+ if (s !== 1 || c !== 1) {
454
+ do {
455
+ s--;
456
+ c--; // We may still have similar intermediate frames from the construct call.
457
+ // The next one that isn't the same should be our match though.
458
+
459
+ if (c < 0 || sampleLines[s] !== controlLines[c]) {
460
+ // V8 adds a "new" prefix for native classes. Let's remove it to make it prettier.
461
+ var _frame = '\n' + sampleLines[s].replace(' at new ', ' at ');
462
+
463
+ {
464
+ if (typeof fn === 'function') {
465
+ componentFrameCache.set(fn, _frame);
466
+ }
467
+ } // Return the line we found.
468
+
469
+
470
+ return _frame;
471
+ }
472
+ } while (s >= 1 && c >= 0);
473
+ }
474
+
475
+ break;
476
+ }
477
+ }
478
+ }
479
+ } finally {
480
+ reentry = false;
481
+
482
+ {
483
+ ReactCurrentDispatcher.current = previousDispatcher;
484
+ reenableLogs();
485
+ }
486
+
487
+ Error.prepareStackTrace = previousPrepareStackTrace;
488
+ } // Fallback to just using the name if we couldn't make it throw.
489
+
490
+
491
+ var name = fn ? fn.displayName || fn.name : '';
492
+ var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';
493
+
494
+ {
495
+ if (typeof fn === 'function') {
496
+ componentFrameCache.set(fn, syntheticFrame);
497
+ }
498
+ }
499
+
500
+ return syntheticFrame;
501
+}
502
+function describeFunctionComponentFrame(fn, source, ownerFn) {
503
+ {
504
+ return describeNativeComponentFrame(fn, false);
505
+ }
506
+}
507
+
508
+function shouldConstruct(Component) {
509
+ var prototype = Component.prototype;
510
+ return !!(prototype && prototype.isReactComponent);
511
+}
512
+
513
+function describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {
514
+
515
+ if (type == null) {
516
+ return '';
517
+ }
518
+
519
+ if (typeof type === 'function') {
520
+ {
521
+ return describeNativeComponentFrame(type, shouldConstruct(type));
522
+ }
523
+ }
524
+
525
+ if (typeof type === 'string') {
526
+ return describeBuiltInComponentFrame(type);
527
+ }
528
+
529
+ switch (type) {
530
+ case REACT_SUSPENSE_TYPE:
531
+ return describeBuiltInComponentFrame('Suspense');
532
+
533
+ case REACT_SUSPENSE_LIST_TYPE:
534
+ return describeBuiltInComponentFrame('SuspenseList');
535
+ }
536
+
537
+ if (typeof type === 'object') {
538
+ switch (type.$$typeof) {
539
+ case REACT_FORWARD_REF_TYPE:
540
+ return describeFunctionComponentFrame(type.render);
541
+
542
+ case REACT_MEMO_TYPE:
543
+ // Memo may contain any component type so we recursively resolve it.
544
+ return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);
545
+
546
+ case REACT_BLOCK_TYPE:
547
+ return describeFunctionComponentFrame(type._render);
548
+
549
+ case REACT_LAZY_TYPE:
550
+ {
551
+ var lazyComponent = type;
552
+ var payload = lazyComponent._payload;
553
+ var init = lazyComponent._init;
554
+
555
+ try {
556
+ // Lazy may contain any component type so we recursively resolve it.
557
+ return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);
558
+ } catch (x) {}
559
+ }
560
+ }
561
+ }
562
+
563
+ return '';
564
+}
565
+
566
+var loggedTypeFailures = {};
567
+var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;
568
+
569
+function setCurrentlyValidatingElement(element) {
570
+ {
571
+ if (element) {
572
+ var owner = element._owner;
573
+ var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);
574
+ ReactDebugCurrentFrame.setExtraStackFrame(stack);
575
+ } else {
576
+ ReactDebugCurrentFrame.setExtraStackFrame(null);
577
+ }
578
+ }
579
+}
580
+
581
+function checkPropTypes(typeSpecs, values, location, componentName, element) {
582
+ {
583
+ // $FlowFixMe This is okay but Flow doesn't know it.
584
+ var has = Function.call.bind(Object.prototype.hasOwnProperty);
585
+
586
+ for (var typeSpecName in typeSpecs) {
587
+ if (has(typeSpecs, typeSpecName)) {
588
+ var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to
589
+ // fail the render phase where it didn't fail before. So we log it.
590
+ // After these have been cleaned up, we'll let them throw.
591
+
592
+ try {
593
+ // This is intentionally an invariant that gets caught. It's the same
594
+ // behavior as without this statement except with a better message.
595
+ if (typeof typeSpecs[typeSpecName] !== 'function') {
596
+ var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');
597
+ err.name = 'Invariant Violation';
598
+ throw err;
599
+ }
600
+
601
+ error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');
602
+ } catch (ex) {
603
+ error$1 = ex;
604
+ }
605
+
606
+ if (error$1 && !(error$1 instanceof Error)) {
607
+ setCurrentlyValidatingElement(element);
608
+
609
+ error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);
610
+
611
+ setCurrentlyValidatingElement(null);
612
+ }
613
+
614
+ if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {
615
+ // Only monitor this failure once because there tends to be a lot of the
616
+ // same error.
617
+ loggedTypeFailures[error$1.message] = true;
618
+ setCurrentlyValidatingElement(element);
619
+
620
+ error('Failed %s type: %s', location, error$1.message);
621
+
622
+ setCurrentlyValidatingElement(null);
623
+ }
624
+ }
625
+ }
626
+ }
627
+}
628
+
629
+var ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;
630
+var hasOwnProperty = Object.prototype.hasOwnProperty;
631
+var RESERVED_PROPS = {
632
+ key: true,
633
+ ref: true,
634
+ __self: true,
635
+ __source: true
636
+};
637
+var specialPropKeyWarningShown;
638
+var specialPropRefWarningShown;
639
+var didWarnAboutStringRefs;
640
+
641
+{
642
+ didWarnAboutStringRefs = {};
643
+}
644
+
645
+function hasValidRef(config) {
646
+ {
647
+ if (hasOwnProperty.call(config, 'ref')) {
648
+ var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;
649
+
650
+ if (getter && getter.isReactWarning) {
651
+ return false;
652
+ }
653
+ }
654
+ }
655
+
656
+ return config.ref !== undefined;
657
+}
658
+
659
+function hasValidKey(config) {
660
+ {
661
+ if (hasOwnProperty.call(config, 'key')) {
662
+ var getter = Object.getOwnPropertyDescriptor(config, 'key').get;
663
+
664
+ if (getter && getter.isReactWarning) {
665
+ return false;
666
+ }
667
+ }
668
+ }
669
+
670
+ return config.key !== undefined;
671
+}
672
+
673
+function warnIfStringRefCannotBeAutoConverted(config, self) {
674
+ {
675
+ if (typeof config.ref === 'string' && ReactCurrentOwner.current && self && ReactCurrentOwner.current.stateNode !== self) {
676
+ var componentName = getComponentName(ReactCurrentOwner.current.type);
677
+
678
+ if (!didWarnAboutStringRefs[componentName]) {
679
+ error('Component "%s" contains the string ref "%s". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', getComponentName(ReactCurrentOwner.current.type), config.ref);
680
+
681
+ didWarnAboutStringRefs[componentName] = true;
682
+ }
683
+ }
684
+ }
685
+}
686
+
687
+function defineKeyPropWarningGetter(props, displayName) {
688
+ {
689
+ var warnAboutAccessingKey = function () {
690
+ if (!specialPropKeyWarningShown) {
691
+ specialPropKeyWarningShown = true;
692
+
693
+ error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);
694
+ }
695
+ };
696
+
697
+ warnAboutAccessingKey.isReactWarning = true;
698
+ Object.defineProperty(props, 'key', {
699
+ get: warnAboutAccessingKey,
700
+ configurable: true
701
+ });
702
+ }
703
+}
704
+
705
+function defineRefPropWarningGetter(props, displayName) {
706
+ {
707
+ var warnAboutAccessingRef = function () {
708
+ if (!specialPropRefWarningShown) {
709
+ specialPropRefWarningShown = true;
710
+
711
+ error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);
712
+ }
713
+ };
714
+
715
+ warnAboutAccessingRef.isReactWarning = true;
716
+ Object.defineProperty(props, 'ref', {
717
+ get: warnAboutAccessingRef,
718
+ configurable: true
719
+ });
720
+ }
721
+}
722
+/**
723
+ * Factory method to create a new React element. This no longer adheres to
724
+ * the class pattern, so do not use new to call it. Also, instanceof check
725
+ * will not work. Instead test $$typeof field against Symbol.for('react.element') to check
726
+ * if something is a React Element.
727
+ *
728
+ * @param {*} type
729
+ * @param {*} props
730
+ * @param {*} key
731
+ * @param {string|object} ref
732
+ * @param {*} owner
733
+ * @param {*} self A *temporary* helper to detect places where `this` is
734
+ * different from the `owner` when React.createElement is called, so that we
735
+ * can warn. We want to get rid of owner and replace string `ref`s with arrow
736
+ * functions, and as long as `this` and owner are the same, there will be no
737
+ * change in behavior.
738
+ * @param {*} source An annotation object (added by a transpiler or otherwise)
739
+ * indicating filename, line number, and/or other information.
740
+ * @internal
741
+ */
742
+
743
+
744
+var ReactElement = function (type, key, ref, self, source, owner, props) {
745
+ var element = {
746
+ // This tag allows us to uniquely identify this as a React Element
747
+ $$typeof: REACT_ELEMENT_TYPE,
748
+ // Built-in properties that belong on the element
749
+ type: type,
750
+ key: key,
751
+ ref: ref,
752
+ props: props,
753
+ // Record the component responsible for creating this element.
754
+ _owner: owner
755
+ };
756
+
757
+ {
758
+ // The validation flag is currently mutative. We put it on
759
+ // an external backing store so that we can freeze the whole object.
760
+ // This can be replaced with a WeakMap once they are implemented in
761
+ // commonly used development environments.
762
+ element._store = {}; // To make comparing ReactElements easier for testing purposes, we make
763
+ // the validation flag non-enumerable (where possible, which should
764
+ // include every environment we run tests in), so the test framework
765
+ // ignores it.
766
+
767
+ Object.defineProperty(element._store, 'validated', {
768
+ configurable: false,
769
+ enumerable: false,
770
+ writable: true,
771
+ value: false
772
+ }); // self and source are DEV only properties.
773
+
774
+ Object.defineProperty(element, '_self', {
775
+ configurable: false,
776
+ enumerable: false,
777
+ writable: false,
778
+ value: self
779
+ }); // Two elements created in two different places should be considered
780
+ // equal for testing purposes and therefore we hide it from enumeration.
781
+
782
+ Object.defineProperty(element, '_source', {
783
+ configurable: false,
784
+ enumerable: false,
785
+ writable: false,
786
+ value: source
787
+ });
788
+
789
+ if (Object.freeze) {
790
+ Object.freeze(element.props);
791
+ Object.freeze(element);
792
+ }
793
+ }
794
+
795
+ return element;
796
+};
797
+/**
798
+ * https://github.com/reactjs/rfcs/pull/107
799
+ * @param {*} type
800
+ * @param {object} props
801
+ * @param {string} key
802
+ */
803
+
804
+function jsxDEV(type, config, maybeKey, source, self) {
805
+ {
806
+ var propName; // Reserved names are extracted
807
+
808
+ var props = {};
809
+ var key = null;
810
+ var ref = null; // Currently, key can be spread in as a prop. This causes a potential
811
+ // issue if key is also explicitly declared (ie. <div {...props} key="Hi" />
812
+ // or <div key="Hi" {...props} /> ). We want to deprecate key spread,
813
+ // but as an intermediary step, we will use jsxDEV for everything except
814
+ // <div {...props} key="Hi" />, because we aren't currently able to tell if
815
+ // key is explicitly declared to be undefined or not.
816
+
817
+ if (maybeKey !== undefined) {
818
+ key = '' + maybeKey;
819
+ }
820
+
821
+ if (hasValidKey(config)) {
822
+ key = '' + config.key;
823
+ }
824
+
825
+ if (hasValidRef(config)) {
826
+ ref = config.ref;
827
+ warnIfStringRefCannotBeAutoConverted(config, self);
828
+ } // Remaining properties are added to a new props object
829
+
830
+
831
+ for (propName in config) {
832
+ if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {
833
+ props[propName] = config[propName];
834
+ }
835
+ } // Resolve default props
836
+
837
+
838
+ if (type && type.defaultProps) {
839
+ var defaultProps = type.defaultProps;
840
+
841
+ for (propName in defaultProps) {
842
+ if (props[propName] === undefined) {
843
+ props[propName] = defaultProps[propName];
844
+ }
845
+ }
846
+ }
847
+
848
+ if (key || ref) {
849
+ var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;
850
+
851
+ if (key) {
852
+ defineKeyPropWarningGetter(props, displayName);
853
+ }
854
+
855
+ if (ref) {
856
+ defineRefPropWarningGetter(props, displayName);
857
+ }
858
+ }
859
+
860
+ return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);
861
+ }
862
+}
863
+
864
+var ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;
865
+var ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;
866
+
867
+function setCurrentlyValidatingElement$1(element) {
868
+ {
869
+ if (element) {
870
+ var owner = element._owner;
871
+ var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);
872
+ ReactDebugCurrentFrame$1.setExtraStackFrame(stack);
873
+ } else {
874
+ ReactDebugCurrentFrame$1.setExtraStackFrame(null);
875
+ }
876
+ }
877
+}
878
+
879
+var propTypesMisspellWarningShown;
880
+
881
+{
882
+ propTypesMisspellWarningShown = false;
883
+}
884
+/**
885
+ * Verifies the object is a ReactElement.
886
+ * See https://reactjs.org/docs/react-api.html#isvalidelement
887
+ * @param {?object} object
888
+ * @return {boolean} True if `object` is a ReactElement.
889
+ * @final
890
+ */
891
+
892
+function isValidElement(object) {
893
+ {
894
+ return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
895
+ }
896
+}
897
+
898
+function getDeclarationErrorAddendum() {
899
+ {
900
+ if (ReactCurrentOwner$1.current) {
901
+ var name = getComponentName(ReactCurrentOwner$1.current.type);
902
+
903
+ if (name) {
904
+ return '\n\nCheck the render method of `' + name + '`.';
905
+ }
906
+ }
907
+
908
+ return '';
909
+ }
910
+}
911
+
912
+function getSourceInfoErrorAddendum(source) {
913
+ {
914
+ if (source !== undefined) {
915
+ var fileName = source.fileName.replace(/^.*[\\\/]/, '');
916
+ var lineNumber = source.lineNumber;
917
+ return '\n\nCheck your code at ' + fileName + ':' + lineNumber + '.';
918
+ }
919
+
920
+ return '';
921
+ }
922
+}
923
+/**
924
+ * Warn if there's no key explicitly set on dynamic arrays of children or
925
+ * object keys are not valid. This allows us to keep track of children between
926
+ * updates.
927
+ */
928
+
929
+
930
+var ownerHasKeyUseWarning = {};
931
+
932
+function getCurrentComponentErrorInfo(parentType) {
933
+ {
934
+ var info = getDeclarationErrorAddendum();
935
+
936
+ if (!info) {
937
+ var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;
938
+
939
+ if (parentName) {
940
+ info = "\n\nCheck the top-level render call using <" + parentName + ">.";
941
+ }
942
+ }
943
+
944
+ return info;
945
+ }
946
+}
947
+/**
948
+ * Warn if the element doesn't have an explicit key assigned to it.
949
+ * This element is in an array. The array could grow and shrink or be
950
+ * reordered. All children that haven't already been validated are required to
951
+ * have a "key" property assigned to it. Error statuses are cached so a warning
952
+ * will only be shown once.
953
+ *
954
+ * @internal
955
+ * @param {ReactElement} element Element that requires a key.
956
+ * @param {*} parentType element's parent's type.
957
+ */
958
+
959
+
960
+function validateExplicitKey(element, parentType) {
961
+ {
962
+ if (!element._store || element._store.validated || element.key != null) {
963
+ return;
964
+ }
965
+
966
+ element._store.validated = true;
967
+ var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);
968
+
969
+ if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {
970
+ return;
971
+ }
972
+
973
+ ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a
974
+ // property, it may be the creator of the child that's responsible for
975
+ // assigning it a key.
976
+
977
+ var childOwner = '';
978
+
979
+ if (element && element._owner && element._owner !== ReactCurrentOwner$1.current) {
980
+ // Give the component that originally created this child.
981
+ childOwner = " It was passed a child from " + getComponentName(element._owner.type) + ".";
982
+ }
983
+
984
+ setCurrentlyValidatingElement$1(element);
985
+
986
+ error('Each child in a list should have a unique "key" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);
987
+
988
+ setCurrentlyValidatingElement$1(null);
989
+ }
990
+}
991
+/**
992
+ * Ensure that every element either is passed in a static location, in an
993
+ * array with an explicit keys property defined, or in an object literal
994
+ * with valid key property.
995
+ *
996
+ * @internal
997
+ * @param {ReactNode} node Statically passed child of any type.
998
+ * @param {*} parentType node's parent's type.
999
+ */
1000
+
1001
+
1002
+function validateChildKeys(node, parentType) {
1003
+ {
1004
+ if (typeof node !== 'object') {
1005
+ return;
1006
+ }
1007
+
1008
+ if (Array.isArray(node)) {
1009
+ for (var i = 0; i < node.length; i++) {
1010
+ var child = node[i];
1011
+
1012
+ if (isValidElement(child)) {
1013
+ validateExplicitKey(child, parentType);
1014
+ }
1015
+ }
1016
+ } else if (isValidElement(node)) {
1017
+ // This element was passed in a valid location.
1018
+ if (node._store) {
1019
+ node._store.validated = true;
1020
+ }
1021
+ } else if (node) {
1022
+ var iteratorFn = getIteratorFn(node);
1023
+
1024
+ if (typeof iteratorFn === 'function') {
1025
+ // Entry iterators used to provide implicit keys,
1026
+ // but now we print a separate warning for them later.
1027
+ if (iteratorFn !== node.entries) {
1028
+ var iterator = iteratorFn.call(node);
1029
+ var step;
1030
+
1031
+ while (!(step = iterator.next()).done) {
1032
+ if (isValidElement(step.value)) {
1033
+ validateExplicitKey(step.value, parentType);
1034
+ }
1035
+ }
1036
+ }
1037
+ }
1038
+ }
1039
+ }
1040
+}
1041
+/**
1042
+ * Given an element, validate that its props follow the propTypes definition,
1043
+ * provided by the type.
1044
+ *
1045
+ * @param {ReactElement} element
1046
+ */
1047
+
1048
+
1049
+function validatePropTypes(element) {
1050
+ {
1051
+ var type = element.type;
1052
+
1053
+ if (type === null || type === undefined || typeof type === 'string') {
1054
+ return;
1055
+ }
1056
+
1057
+ var propTypes;
1058
+
1059
+ if (typeof type === 'function') {
1060
+ propTypes = type.propTypes;
1061
+ } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.
1062
+ // Inner props are checked in the reconciler.
1063
+ type.$$typeof === REACT_MEMO_TYPE)) {
1064
+ propTypes = type.propTypes;
1065
+ } else {
1066
+ return;
1067
+ }
1068
+
1069
+ if (propTypes) {
1070
+ // Intentionally inside to avoid triggering lazy initializers:
1071
+ var name = getComponentName(type);
1072
+ checkPropTypes(propTypes, element.props, 'prop', name, element);
1073
+ } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {
1074
+ propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:
1075
+
1076
+ var _name = getComponentName(type);
1077
+
1078
+ error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');
1079
+ }
1080
+
1081
+ if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {
1082
+ error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');
1083
+ }
1084
+ }
1085
+}
1086
+/**
1087
+ * Given a fragment, validate that it can only be provided with fragment props
1088
+ * @param {ReactElement} fragment
1089
+ */
1090
+
1091
+
1092
+function validateFragmentProps(fragment) {
1093
+ {
1094
+ var keys = Object.keys(fragment.props);
1095
+
1096
+ for (var i = 0; i < keys.length; i++) {
1097
+ var key = keys[i];
1098
+
1099
+ if (key !== 'children' && key !== 'key') {
1100
+ setCurrentlyValidatingElement$1(fragment);
1101
+
1102
+ error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);
1103
+
1104
+ setCurrentlyValidatingElement$1(null);
1105
+ break;
1106
+ }
1107
+ }
1108
+
1109
+ if (fragment.ref !== null) {
1110
+ setCurrentlyValidatingElement$1(fragment);
1111
+
1112
+ error('Invalid attribute `ref` supplied to `React.Fragment`.');
1113
+
1114
+ setCurrentlyValidatingElement$1(null);
1115
+ }
1116
+ }
1117
+}
1118
+
1119
+function jsxWithValidation(type, props, key, isStaticChildren, source, self) {
1120
+ {
1121
+ var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to
1122
+ // succeed and there will likely be errors in render.
1123
+
1124
+ if (!validType) {
1125
+ var info = '';
1126
+
1127
+ if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {
1128
+ info += ' You likely forgot to export your component from the file ' + "it's defined in, or you might have mixed up default and named imports.";
1129
+ }
1130
+
1131
+ var sourceInfo = getSourceInfoErrorAddendum(source);
1132
+
1133
+ if (sourceInfo) {
1134
+ info += sourceInfo;
1135
+ } else {
1136
+ info += getDeclarationErrorAddendum();
1137
+ }
1138
+
1139
+ var typeString;
1140
+
1141
+ if (type === null) {
1142
+ typeString = 'null';
1143
+ } else if (Array.isArray(type)) {
1144
+ typeString = 'array';
1145
+ } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {
1146
+ typeString = "<" + (getComponentName(type.type) || 'Unknown') + " />";
1147
+ info = ' Did you accidentally export a JSX literal instead of a component?';
1148
+ } else {
1149
+ typeString = typeof type;
1150
+ }
1151
+
1152
+ error('React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);
1153
+ }
1154
+
1155
+ var element = jsxDEV(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.
1156
+ // TODO: Drop this when these are no longer allowed as the type argument.
1157
+
1158
+ if (element == null) {
1159
+ return element;
1160
+ } // Skip key warning if the type isn't valid since our key validation logic
1161
+ // doesn't expect a non-string/function type and can throw confusing errors.
1162
+ // We don't want exception behavior to differ between dev and prod.
1163
+ // (Rendering will throw with a helpful message and as soon as the type is
1164
+ // fixed, the key warnings will appear.)
1165
+
1166
+
1167
+ if (validType) {
1168
+ var children = props.children;
1169
+
1170
+ if (children !== undefined) {
1171
+ if (isStaticChildren) {
1172
+ if (Array.isArray(children)) {
1173
+ for (var i = 0; i < children.length; i++) {
1174
+ validateChildKeys(children[i], type);
1175
+ }
1176
+
1177
+ if (Object.freeze) {
1178
+ Object.freeze(children);
1179
+ }
1180
+ } else {
1181
+ error('React.jsx: Static children should always be an array. ' + 'You are likely explicitly calling React.jsxs or React.jsxDEV. ' + 'Use the Babel transform instead.');
1182
+ }
1183
+ } else {
1184
+ validateChildKeys(children, type);
1185
+ }
1186
+ }
1187
+ }
1188
+
1189
+ if (type === exports.Fragment) {
1190
+ validateFragmentProps(element);
1191
+ } else {
1192
+ validatePropTypes(element);
1193
+ }
1194
+
1195
+ return element;
1196
+ }
1197
+} // These two functions exist to still get child warnings in dev
1198
+// even with the prod transform. This means that jsxDEV is purely
1199
+// opt-in behavior for better messages but that we won't stop
1200
+// giving you warnings if you use production apis.
1201
+
1202
+function jsxWithValidationStatic(type, props, key) {
1203
+ {
1204
+ return jsxWithValidation(type, props, key, true);
1205
+ }
1206
+}
1207
+function jsxWithValidationDynamic(type, props, key) {
1208
+ {
1209
+ return jsxWithValidation(type, props, key, false);
1210
+ }
1211
+}
1212
+
1213
+var jsx = jsxWithValidationDynamic ; // we may want to special case jsxs internally to take advantage of static children.
1214
+// for now we can ship identical prod functions
1215
+
1216
+var jsxs = jsxWithValidationStatic ;
1217
+
1218
+exports.jsx = jsx;
1219
+exports.jsxs = jsxs;
1220
+ })();
1221
+}
fixtures/legacy-jsx-runtimes/react-17/cjs/react-jsx-runtime.production.min.js
new
+10
@@ -0,0 +1,10 @@
1
+/** @license React v17.0.0-rc.3
2
+ * react-jsx-runtime.production.min.js
3
+ *
4
+ * Copyright (c) Facebook, Inc. and its affiliates.
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */
9
+'use strict';require("object-assign");var f=require("react"),g=60103;exports.Fragment=60107;if("function"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h("react.element");exports.Fragment=h("react.fragment")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};
10
+function q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=""+k);void 0!==a.key&&(e=""+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;
fixtures/legacy-jsx-runtimes/react-17/jsx-dev-runtime.js
new
+7
@@ -0,0 +1,7 @@
1
+'use strict';
2
+
3
+if (process.env.NODE_ENV === 'production') {
4
+ module.exports = require('./cjs/react-jsx-dev-runtime.production.min.js');
5
+} else {
6
+ module.exports = require('./cjs/react-jsx-dev-runtime.development.js');
7
+}
fixtures/legacy-jsx-runtimes/react-17/jsx-runtime.js
new
+7
@@ -0,0 +1,7 @@
1
+'use strict';
2
+
3
+if (process.env.NODE_ENV === 'production') {
4
+ module.exports = require('./cjs/react-jsx-runtime.production.min.js');
5
+} else {
6
+ module.exports = require('./cjs/react-jsx-runtime.development.js');
7
+}
fixtures/legacy-jsx-runtimes/react-17/package.json
new
+7
@@ -0,0 +1,7 @@
1
+{
2
+ "dependencies": {
3
+ "prop-types": "^15.7.2",
4
+ "react": "17.0.0-rc.3",
5
+ "react-dom": "17.0.0-rc.3"
6
+ }
7
+}
fixtures/legacy-jsx-runtimes/react-17/react-17.test.js
new
+773
@@ -0,0 +1,773 @@
1
+/**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @emails react-core
8
+ */
9
+
10
+// These tests are based on ReactJSXElement-test,
11
+// ReactJSXElementValidator-test, ReactComponent-test,
12
+// and ReactElementJSX-test.
13
+
14
+jest.mock('react/jsx-runtime', () => require('./jsx-runtime'), {virtual: true});
15
+jest.mock('react/jsx-dev-runtime', () => require('./jsx-dev-runtime'), {
16
+ virtual: true,
17
+});
18
+
19
+let React = require('react');
20
+let ReactDOM = require('react-dom');
21
+let ReactTestUtils = {
22
+ renderIntoDocument(el) {
23
+ const container = document.createElement('div');
24
+ return ReactDOM.render(el, container);
25
+ },
26
+};
27
+let PropTypes = require('prop-types');
28
+let Component = class Component extends React.Component {
29
+ render() {
30
+ return <div />;
31
+ }
32
+};
33
+let RequiredPropComponent = class extends React.Component {
34
+ render() {
35
+ return <span>{this.props.prop}</span>;
36
+ }
37
+};
38
+RequiredPropComponent.displayName = 'RequiredPropComponent';
39
+RequiredPropComponent.propTypes = {prop: PropTypes.string.isRequired};
40
+
41
+it('works', () => {
42
+ const container = document.createElement('div');
43
+ ReactDOM.render(<h1>hello</h1>, container);
44
+ expect(container.textContent).toBe('hello');
45
+});
46
+
47
+it('returns a complete element according to spec', () => {
48
+ const element = <Component />;
49
+ expect(element.type).toBe(Component);
50
+ expect(element.key).toBe(null);
51
+ expect(element.ref).toBe(null);
52
+ const expectation = {};
53
+ Object.freeze(expectation);
54
+ expect(element.props).toEqual(expectation);
55
+});
56
+
57
+it('allows a lower-case to be passed as the string type', () => {
58
+ const element = <div />;
59
+ expect(element.type).toBe('div');
60
+ expect(element.key).toBe(null);
61
+ expect(element.ref).toBe(null);
62
+ const expectation = {};
63
+ Object.freeze(expectation);
64
+ expect(element.props).toEqual(expectation);
65
+});
66
+
67
+it('allows a string to be passed as the type', () => {
68
+ const TagName = 'div';
69
+ const element = <TagName />;
70
+ expect(element.type).toBe('div');
71
+ expect(element.key).toBe(null);
72
+ expect(element.ref).toBe(null);
73
+ const expectation = {};
74
+ Object.freeze(expectation);
75
+ expect(element.props).toEqual(expectation);
76
+});
77
+
78
+it('returns an immutable element', () => {
79
+ const element = <Component />;
80
+ if (process.env.NODE_ENV === 'development') {
81
+ expect(() => (element.type = 'div')).toThrow();
82
+ } else {
83
+ expect(() => (element.type = 'div')).not.toThrow();
84
+ }
85
+});
86
+
87
+it('does not reuse the object that is spread into props', () => {
88
+ const config = {foo: 1};
89
+ const element = <Component {...config} />;
90
+ expect(element.props.foo).toBe(1);
91
+ config.foo = 2;
92
+ expect(element.props.foo).toBe(1);
93
+});
94
+
95
+it('extracts key and ref from the rest of the props', () => {
96
+ const element = <Component key="12" ref="34" foo="56" />;
97
+ expect(element.type).toBe(Component);
98
+ expect(element.key).toBe('12');
99
+ expect(element.ref).toBe('34');
100
+ const expectation = {foo: '56'};
101
+ Object.freeze(expectation);
102
+ expect(element.props).toEqual(expectation);
103
+});
104
+
105
+it('coerces the key to a string', () => {
106
+ const element = <Component key={12} foo="56" />;
107
+ expect(element.type).toBe(Component);
108
+ expect(element.key).toBe('12');
109
+ expect(element.ref).toBe(null);
110
+ const expectation = {foo: '56'};
111
+ Object.freeze(expectation);
112
+ expect(element.props).toEqual(expectation);
113
+});
114
+
115
+it('merges JSX children onto the children prop', () => {
116
+ const a = 1;
117
+ const element = <Component children="text">{a}</Component>;
118
+ expect(element.props.children).toBe(a);
119
+});
120
+
121
+it('does not override children if no JSX children are provided', () => {
122
+ const element = <Component children="text" />;
123
+ expect(element.props.children).toBe('text');
124
+});
125
+
126
+it('overrides children if null is provided as a JSX child', () => {
127
+ const element = <Component children="text">{null}</Component>;
128
+ expect(element.props.children).toBe(null);
129
+});
130
+
131
+it('overrides children if undefined is provided as an argument', () => {
132
+ const element = <Component children="text">{undefined}</Component>;
133
+ expect(element.props.children).toBe(undefined);
134
+
135
+ const element2 = React.cloneElement(
136
+ <Component children="text" />,
137
+ {},
138
+ undefined
139
+ );
140
+ expect(element2.props.children).toBe(undefined);
141
+});
142
+
143
+it('merges JSX children onto the children prop in an array', () => {
144
+ const a = 1;
145
+ const b = 2;
146
+ const c = 3;
147
+ const element = (
148
+ <Component>
149
+ {a}
150
+ {b}
151
+ {c}
152
+ </Component>
153
+ );
154
+ expect(element.props.children).toEqual([1, 2, 3]);
155
+});
156
+
157
+it('allows static methods to be called using the type property', () => {
158
+ class StaticMethodComponent {
159
+ static someStaticMethod() {
160
+ return 'someReturnValue';
161
+ }
162
+ render() {
163
+ return <div />;
164
+ }
165
+ }
166
+
167
+ const element = <StaticMethodComponent />;
168
+ expect(element.type.someStaticMethod()).toBe('someReturnValue');
169
+});
170
+
171
+it('identifies valid elements', () => {
172
+ expect(React.isValidElement(<div />)).toEqual(true);
173
+ expect(React.isValidElement(<Component />)).toEqual(true);
174
+
175
+ expect(React.isValidElement(null)).toEqual(false);
176
+ expect(React.isValidElement(true)).toEqual(false);
177
+ expect(React.isValidElement({})).toEqual(false);
178
+ expect(React.isValidElement('string')).toEqual(false);
179
+ expect(React.isValidElement(Component)).toEqual(false);
180
+ expect(React.isValidElement({type: 'div', props: {}})).toEqual(false);
181
+});
182
+
183
+it('is indistinguishable from a plain object', () => {
184
+ const element = <div className="foo" />;
185
+ const object = {};
186
+ expect(element.constructor).toBe(object.constructor);
187
+});
188
+
189
+it('should use default prop value when removing a prop', () => {
190
+ Component.defaultProps = {fruit: 'persimmon'};
191
+
192
+ const container = document.createElement('div');
193
+ const instance = ReactDOM.render(<Component fruit="mango" />, container);
194
+ expect(instance.props.fruit).toBe('mango');
195
+
196
+ ReactDOM.render(<Component />, container);
197
+ expect(instance.props.fruit).toBe('persimmon');
198
+});
199
+
200
+it('should normalize props with default values', () => {
201
+ class NormalizingComponent extends React.Component {
202
+ render() {
203
+ return <span>{this.props.prop}</span>;
204
+ }
205
+ }
206
+ NormalizingComponent.defaultProps = {prop: 'testKey'};
207
+
208
+ const container = document.createElement('div');
209
+ const instance = ReactDOM.render(<NormalizingComponent />, container);
210
+ expect(instance.props.prop).toBe('testKey');
211
+
212
+ const inst2 = ReactDOM.render(
213
+ <NormalizingComponent prop={null} />,
214
+ container
215
+ );
216
+ expect(inst2.props.prop).toBe(null);
217
+});
218
+
219
+it('warns for keys for arrays of elements in children position', () => {
220
+ expect(() =>
221
+ ReactTestUtils.renderIntoDocument(
222
+ <Component>{[<Component />, <Component />]}</Component>
223
+ )
224
+ ).toErrorDev('Each child in a list should have a unique "key" prop.');
225
+});
226
+
227
+it('warns for keys for arrays of elements with owner info', () => {
228
+ class InnerComponent extends React.Component {
229
+ render() {
230
+ return <Component>{this.props.childSet}</Component>;
231
+ }
232
+ }
233
+
234
+ class ComponentWrapper extends React.Component {
235
+ render() {
236
+ return <InnerComponent childSet={[<Component />, <Component />]} />;
237
+ }
238
+ }
239
+
240
+ expect(() =>
241
+ ReactTestUtils.renderIntoDocument(<ComponentWrapper />)
242
+ ).toErrorDev(
243
+ 'Each child in a list should have a unique "key" prop.' +
244
+ '\n\nCheck the render method of `InnerComponent`. ' +
245
+ 'It was passed a child from ComponentWrapper. '
246
+ );
247
+});
248
+
249
+it('does not warn for arrays of elements with keys', () => {
250
+ ReactTestUtils.renderIntoDocument(
251
+ <Component>{[<Component key="#1" />, <Component key="#2" />]}</Component>
252
+ );
253
+});
254
+
255
+it('does not warn for iterable elements with keys', () => {
256
+ const iterable = {
257
+ '@@iterator': function() {
258
+ let i = 0;
259
+ return {
260
+ next: function() {
261
+ const done = ++i > 2;
262
+ return {
263
+ value: done ? undefined : <Component key={'#' + i} />,
264
+ done: done,
265
+ };
266
+ },
267
+ };
268
+ },
269
+ };
270
+
271
+ ReactTestUtils.renderIntoDocument(<Component>{iterable}</Component>);
272
+});
273
+
274
+it('does not warn for numeric keys in entry iterable as a child', () => {
275
+ const iterable = {
276
+ '@@iterator': function() {
277
+ let i = 0;
278
+ return {
279
+ next: function() {
280
+ const done = ++i > 2;
281
+ return {value: done ? undefined : [i, <Component />], done: done};
282
+ },
283
+ };
284
+ },
285
+ };
286
+ iterable.entries = iterable['@@iterator'];
287
+
288
+ ReactTestUtils.renderIntoDocument(<Component>{iterable}</Component>);
289
+});
290
+
291
+it('does not warn when the element is directly as children', () => {
292
+ ReactTestUtils.renderIntoDocument(
293
+ <Component>
294
+ <Component />
295
+ <Component />
296
+ </Component>
297
+ );
298
+});
299
+
300
+it('does not warn when the child array contains non-elements', () => {
301
+ void (<Component>{[{}, {}]}</Component>);
302
+});
303
+
304
+it('should give context for PropType errors in nested components.', () => {
305
+ // In this test, we're making sure that if a proptype error is found in a
306
+ // component, we give a small hint as to which parent instantiated that
307
+ // component as per warnings about key usage in ReactElementValidator.
308
+ function MyComp({color}) {
309
+ return <div>My color is {color}</div>;
310
+ }
311
+ MyComp.propTypes = {
312
+ color: PropTypes.string,
313
+ };
314
+ class ParentComp extends React.Component {
315
+ render() {
316
+ return <MyComp color={123} />;
317
+ }
318
+ }
319
+ expect(() => ReactTestUtils.renderIntoDocument(<ParentComp />)).toErrorDev(
320
+ 'Warning: Failed prop type: ' +
321
+ 'Invalid prop `color` of type `number` supplied to `MyComp`, ' +
322
+ 'expected `string`.\n' +
323
+ ' in fn (at **)\n' + // Jest/Node issue
324
+ ' in ParentComp (at **)'
325
+ );
326
+});
327
+
328
+it('gives a helpful error when passing null, undefined, or boolean', () => {
329
+ const Undefined = undefined;
330
+ const Null = null;
331
+ const True = true;
332
+ const Div = 'div';
333
+ expect(
334
+ () => void (<Undefined />)
335
+ ).toErrorDev(
336
+ 'Warning: React.jsx: type is invalid -- expected a string ' +
337
+ '(for built-in components) or a class/function (for composite ' +
338
+ 'components) but got: undefined. You likely forgot to export your ' +
339
+ "component from the file it's defined in, or you might have mixed up " +
340
+ 'default and named imports.' +
341
+ (process.env.BABEL_ENV === 'development'
342
+ ? '\n\nCheck your code at **.'
343
+ : ''),
344
+ {withoutStack: true}
345
+ );
346
+ expect(
347
+ () => void (<Null />)
348
+ ).toErrorDev(
349
+ 'Warning: React.jsx: type is invalid -- expected a string ' +
350
+ '(for built-in components) or a class/function (for composite ' +
351
+ 'components) but got: null.' +
352
+ (process.env.BABEL_ENV === 'development'
353
+ ? '\n\nCheck your code at **.'
354
+ : ''),
355
+ {withoutStack: true}
356
+ );
357
+ expect(
358
+ () => void (<True />)
359
+ ).toErrorDev(
360
+ 'Warning: React.jsx: type is invalid -- expected a string ' +
361
+ '(for built-in components) or a class/function (for composite ' +
362
+ 'components) but got: boolean.' +
363
+ (process.env.BABEL_ENV === 'development'
364
+ ? '\n\nCheck your code at **.'
365
+ : ''),
366
+ {withoutStack: true}
367
+ );
368
+ // No error expected
369
+ void (<Div />);
370
+});
371
+
372
+it('should check default prop values', () => {
373
+ RequiredPropComponent.defaultProps = {prop: null};
374
+
375
+ expect(() =>
376
+ ReactTestUtils.renderIntoDocument(<RequiredPropComponent />)
377
+ ).toErrorDev(
378
+ 'Warning: Failed prop type: The prop `prop` is marked as required in ' +
379
+ '`RequiredPropComponent`, but its value is `null`.\n' +
380
+ ' in construct (at **)' // Jest/Node issue
381
+ );
382
+});
383
+
384
+it('should warn on invalid prop types', () => {
385
+ // Since there is no prevalidation step for ES6 classes, there is no hook
386
+ // for us to issue a warning earlier than element creation when the error
387
+ // actually occurs. Since this step is skipped in production, we should just
388
+ // warn instead of throwing for this case.
389
+ class NullPropTypeComponent extends React.Component {
390
+ render() {
391
+ return <span>{this.props.prop}</span>;
392
+ }
393
+ }
394
+ NullPropTypeComponent.propTypes = {
395
+ prop: null,
396
+ };
397
+ expect(() =>
398
+ ReactTestUtils.renderIntoDocument(<NullPropTypeComponent />)
399
+ ).toErrorDev(
400
+ 'NullPropTypeComponent: prop type `prop` is invalid; it must be a ' +
401
+ 'function, usually from the `prop-types` package,'
402
+ );
403
+});
404
+
405
+it('should warn on invalid context types', () => {
406
+ class NullContextTypeComponent extends React.Component {
407
+ render() {
408
+ return <span>{this.props.prop}</span>;
409
+ }
410
+ }
411
+ NullContextTypeComponent.contextTypes = {
412
+ prop: null,
413
+ };
414
+ expect(() =>
415
+ ReactTestUtils.renderIntoDocument(<NullContextTypeComponent />)
416
+ ).toErrorDev(
417
+ 'NullContextTypeComponent: context type `prop` is invalid; it must ' +
418
+ 'be a function, usually from the `prop-types` package,'
419
+ );
420
+});
421
+
422
+it('should warn if getDefaultProps is specified on the class', () => {
423
+ class GetDefaultPropsComponent extends React.Component {
424
+ render() {
425
+ return <span>{this.props.prop}</span>;
426
+ }
427
+ }
428
+ GetDefaultPropsComponent.getDefaultProps = () => ({
429
+ prop: 'foo',
430
+ });
431
+ expect(() =>
432
+ ReactTestUtils.renderIntoDocument(<GetDefaultPropsComponent />)
433
+ ).toErrorDev(
434
+ 'getDefaultProps is only used on classic React.createClass definitions.' +
435
+ ' Use a static property named `defaultProps` instead.',
436
+ {withoutStack: true}
437
+ );
438
+});
439
+
440
+it('should warn if component declares PropTypes instead of propTypes', () => {
441
+ class MisspelledPropTypesComponent extends React.Component {
442
+ render() {
443
+ return <span>{this.props.prop}</span>;
444
+ }
445
+ }
446
+ MisspelledPropTypesComponent.PropTypes = {
447
+ prop: PropTypes.string,
448
+ };
449
+ expect(() =>
450
+ ReactTestUtils.renderIntoDocument(
451
+ <MisspelledPropTypesComponent prop="hi" />
452
+ )
453
+ ).toErrorDev(
454
+ 'Warning: Component MisspelledPropTypesComponent declared `PropTypes` ' +
455
+ 'instead of `propTypes`. Did you misspell the property assignment?',
456
+ {withoutStack: true}
457
+ );
458
+});
459
+
460
+it('warns for fragments with illegal attributes', () => {
461
+ class Foo extends React.Component {
462
+ render() {
463
+ return <React.Fragment a={1}>hello</React.Fragment>;
464
+ }
465
+ }
466
+
467
+ expect(() => ReactTestUtils.renderIntoDocument(<Foo />)).toErrorDev(
468
+ 'Invalid prop `a` supplied to `React.Fragment`. React.Fragment ' +
469
+ 'can only have `key` and `children` props.'
470
+ );
471
+});
472
+
473
+it('warns for fragments with refs', () => {
474
+ class Foo extends React.Component {
475
+ render() {
476
+ return (
477
+ <React.Fragment
478
+ ref={bar => {
479
+ this.foo = bar;
480
+ }}>
481
+ hello
482
+ </React.Fragment>
483
+ );
484
+ }
485
+ }
486
+
487
+ expect(() => ReactTestUtils.renderIntoDocument(<Foo />)).toErrorDev(
488
+ 'Invalid attribute `ref` supplied to `React.Fragment`.'
489
+ );
490
+});
491
+
492
+it('does not warn for fragments of multiple elements without keys', () => {
493
+ ReactTestUtils.renderIntoDocument(
494
+ <>
495
+ <span>1</span>
496
+ <span>2</span>
497
+ </>
498
+ );
499
+});
500
+
501
+it('warns for fragments of multiple elements with same key', () => {
502
+ expect(() =>
503
+ ReactTestUtils.renderIntoDocument(
504
+ <>
505
+ <span key="a">1</span>
506
+ <span key="a">2</span>
507
+ <span key="b">3</span>
508
+ </>
509
+ )
510
+ ).toErrorDev('Encountered two children with the same key, `a`.', {
511
+ withoutStack: true,
512
+ });
513
+});
514
+
515
+it('does not call lazy initializers eagerly', () => {
516
+ let didCall = false;
517
+ const Lazy = React.lazy(() => {
518
+ didCall = true;
519
+ return {then() {}};
520
+ });
521
+ <Lazy />;
522
+ expect(didCall).toBe(false);
523
+});
524
+
525
+it('supports classic refs', () => {
526
+ class Foo extends React.Component {
527
+ render() {
528
+ return <div className="foo" ref="inner" />;
529
+ }
530
+ }
531
+ const container = document.createElement('div');
532
+ const instance = ReactDOM.render(<Foo />, container);
533
+ expect(instance.refs.inner.className).toBe('foo');
534
+});
535
+
536
+it('should support refs on owned components', () => {
537
+ const innerObj = {};
538
+ const outerObj = {};
539
+
540
+ class Wrapper extends React.Component {
541
+ getObject = () => {
542
+ return this.props.object;
543
+ };
544
+
545
+ render() {
546
+ return <div>{this.props.children}</div>;
547
+ }
548
+ }
549
+
550
+ class Component extends React.Component {
551
+ render() {
552
+ const inner = <Wrapper object={innerObj} ref="inner" />;
553
+ const outer = (
554
+ <Wrapper object={outerObj} ref="outer">
555
+ {inner}
556
+ </Wrapper>
557
+ );
558
+ return outer;
559
+ }
560
+
561
+ componentDidMount() {
562
+ expect(this.refs.inner.getObject()).toEqual(innerObj);
563
+ expect(this.refs.outer.getObject()).toEqual(outerObj);
564
+ }
565
+ }
566
+
567
+ ReactTestUtils.renderIntoDocument(<Component />);
568
+});
569
+
570
+it('should support callback-style refs', () => {
571
+ const innerObj = {};
572
+ const outerObj = {};
573
+
574
+ class Wrapper extends React.Component {
575
+ getObject = () => {
576
+ return this.props.object;
577
+ };
578
+
579
+ render() {
580
+ return <div>{this.props.children}</div>;
581
+ }
582
+ }
583
+
584
+ let mounted = false;
585
+
586
+ class Component extends React.Component {
587
+ render() {
588
+ const inner = (
589
+ <Wrapper object={innerObj} ref={c => (this.innerRef = c)} />
590
+ );
591
+ const outer = (
592
+ <Wrapper object={outerObj} ref={c => (this.outerRef = c)}>
593
+ {inner}
594
+ </Wrapper>
595
+ );
596
+ return outer;
597
+ }
598
+
599
+ componentDidMount() {
600
+ expect(this.innerRef.getObject()).toEqual(innerObj);
601
+ expect(this.outerRef.getObject()).toEqual(outerObj);
602
+ mounted = true;
603
+ }
604
+ }
605
+
606
+ ReactTestUtils.renderIntoDocument(<Component />);
607
+ expect(mounted).toBe(true);
608
+});
609
+
610
+it('should support object-style refs', () => {
611
+ const innerObj = {};
612
+ const outerObj = {};
613
+
614
+ class Wrapper extends React.Component {
615
+ getObject = () => {
616
+ return this.props.object;
617
+ };
618
+
619
+ render() {
620
+ return <div>{this.props.children}</div>;
621
+ }
622
+ }
623
+
624
+ let mounted = false;
625
+
626
+ class Component extends React.Component {
627
+ constructor() {
628
+ super();
629
+ this.innerRef = React.createRef();
630
+ this.outerRef = React.createRef();
631
+ }
632
+ render() {
633
+ const inner = <Wrapper object={innerObj} ref={this.innerRef} />;
634
+ const outer = (
635
+ <Wrapper object={outerObj} ref={this.outerRef}>
636
+ {inner}
637
+ </Wrapper>
638
+ );
639
+ return outer;
640
+ }
641
+
642
+ componentDidMount() {
643
+ expect(this.innerRef.current.getObject()).toEqual(innerObj);
644
+ expect(this.outerRef.current.getObject()).toEqual(outerObj);
645
+ mounted = true;
646
+ }
647
+ }
648
+
649
+ ReactTestUtils.renderIntoDocument(<Component />);
650
+ expect(mounted).toBe(true);
651
+});
652
+
653
+it('should support new-style refs with mixed-up owners', () => {
654
+ class Wrapper extends React.Component {
655
+ getTitle = () => {
656
+ return this.props.title;
657
+ };
658
+
659
+ render() {
660
+ return this.props.getContent();
661
+ }
662
+ }
663
+
664
+ let mounted = false;
665
+
666
+ class Component extends React.Component {
667
+ getInner = () => {
668
+ // (With old-style refs, it's impossible to get a ref to this div
669
+ // because Wrapper is the current owner when this function is called.)
670
+ return <div className="inner" ref={c => (this.innerRef = c)} />;
671
+ };
672
+
673
+ render() {
674
+ return (
675
+ <Wrapper
676
+ title="wrapper"
677
+ ref={c => (this.wrapperRef = c)}
678
+ getContent={this.getInner}
679
+ />
680
+ );
681
+ }
682
+
683
+ componentDidMount() {
684
+ // Check .props.title to make sure we got the right elements back
685
+ expect(this.wrapperRef.getTitle()).toBe('wrapper');
686
+ expect(this.innerRef.className).toBe('inner');
687
+ mounted = true;
688
+ }
689
+ }
690
+
691
+ ReactTestUtils.renderIntoDocument(<Component />);
692
+ expect(mounted).toBe(true);
693
+});
694
+
695
+it('should warn when `key` is being accessed on composite element', () => {
696
+ const container = document.createElement('div');
697
+ class Child extends React.Component {
698
+ render() {
699
+ return <div> {this.props.key} </div>;
700
+ }
701
+ }
702
+ class Parent extends React.Component {
703
+ render() {
704
+ return (
705
+ <div>
706
+ <Child key="0" />
707
+ <Child key="1" />
708
+ <Child key="2" />
709
+ </div>
710
+ );
711
+ }
712
+ }
713
+ expect(() => ReactDOM.render(<Parent />, container)).toErrorDev(
714
+ 'Child: `key` is not a prop. Trying to access it will result ' +
715
+ 'in `undefined` being returned. If you need to access the same ' +
716
+ 'value within the child component, you should pass it as a different ' +
717
+ 'prop. (https://reactjs.org/link/special-props)'
718
+ );
719
+});
720
+
721
+it('should warn when `ref` is being accessed', () => {
722
+ const container = document.createElement('div');
723
+ class Child extends React.Component {
724
+ render() {
725
+ return <div> {this.props.ref} </div>;
726
+ }
727
+ }
728
+ class Parent extends React.Component {
729
+ render() {
730
+ return (
731
+ <div>
732
+ <Child ref="childElement" />
733
+ </div>
734
+ );
735
+ }
736
+ }
737
+ expect(() => ReactDOM.render(<Parent />, container)).toErrorDev(
738
+ 'Child: `ref` is not a prop. Trying to access it will result ' +
739
+ 'in `undefined` being returned. If you need to access the same ' +
740
+ 'value within the child component, you should pass it as a different ' +
741
+ 'prop. (https://reactjs.org/link/special-props)'
742
+ );
743
+});
744
+
745
+it('should warn when owner and self are different for string refs', () => {
746
+ class ClassWithRenderProp extends React.Component {
747
+ render() {
748
+ return this.props.children();
749
+ }
750
+ }
751
+
752
+ class ClassParent extends React.Component {
753
+ render() {
754
+ return (
755
+ <ClassWithRenderProp>{() => <div ref="myRef" />}</ClassWithRenderProp>
756
+ );
757
+ }
758
+ }
759
+
760
+ const container = document.createElement('div');
761
+ if (process.env.BABEL_ENV === 'development') {
762
+ expect(() => ReactDOM.render(<ClassParent />, container)).toErrorDev([
763
+ 'Warning: Component "ClassWithRenderProp" contains the string ref "myRef". ' +
764
+ 'Support for string refs will be removed in a future major release. ' +
765
+ 'This case cannot be automatically converted to an arrow function. ' +
766
+ 'We ask you to manually fix this case by using useRef() or createRef() instead. ' +
767
+ 'Learn more about using refs safely here: ' +
768
+ 'https://reactjs.org/link/strict-mode-string-ref',
769
+ ]);
770
+ } else {
771
+ ReactDOM.render(<ClassParent />, container);
772
+ }
773
+});
fixtures/legacy-jsx-runtimes/react-17/yarn.lock
new
+59
@@ -0,0 +1,59 @@
1
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2
+# yarn lockfile v1
3
+
4
+
5
+"js-tokens@^3.0.0 || ^4.0.0":
6
+ version "4.0.0"
7
+ resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
8
+ integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
9
+
10
+loose-envify@^1.1.0, loose-envify@^1.4.0:
11
+ version "1.4.0"
12
+ resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
13
+ integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
14
+ dependencies:
15
+ js-tokens "^3.0.0 || ^4.0.0"
16
+
17
+object-assign@^4.1.1:
18
+ version "4.1.1"
19
+ resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
20
+ integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
21
+
22
+prop-types@^15.7.2:
23
+ version "15.7.2"
24
+ resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
25
+ integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==
26
+ dependencies:
27
+ loose-envify "^1.4.0"
28
+ object-assign "^4.1.1"
29
+ react-is "^16.8.1"
30
+
31
+react-dom@17.0.0-rc.3:
32
+ version "17.0.0-rc.3"
33
+ resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.0-rc.3.tgz#6254f82c62ed569a2a90dcf1c7b71d4d8d951744"
34
+ integrity sha512-rrmZ91kdXBaCVomiNUQ1WvEClb5GcmxewGurd3FnsXKJBOhFdlkGbT5MY5ZQkMXH5xnIvs5ZEEB2iBr2ZqKiqg==
35
+ dependencies:
36
+ loose-envify "^1.1.0"
37
+ object-assign "^4.1.1"
38
+ scheduler "0.20.0-rc.3"
39
+
40
+react-is@^16.8.1:
41
+ version "16.13.1"
42
+ resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
43
+ integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
44
+
45
+react@17.0.0-rc.3:
46
+ version "17.0.0-rc.3"
47
+ resolved "https://registry.yarnpkg.com/react/-/react-17.0.0-rc.3.tgz#ccb426b0146a8c10ee92c2a72d9d813a16a55806"
48
+ integrity sha512-b1vEcXBmlN2Bu+k57jq2ytEo5p28g5fdRfc02JRdnvGZKKphvlUnAfsrUHiOmUtL/6wvFIusi2zxp8t60fihfw==
49
+ dependencies:
50
+ loose-envify "^1.1.0"
51
+ object-assign "^4.1.1"
52
+
53
+scheduler@0.20.0-rc.3:
54
+ version "0.20.0-rc.3"
55
+ resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.0-rc.3.tgz#ce616ebdd4073f5026718960d7e2d0928788c626"
56
+ integrity sha512-rPwhSgPKhRqximLHdl+oJ/8HVcMS2vyZlH74OQHqKbH04ONgKNkJ13DZLPdFSYFos8FUj6+PduO9+OoRaG6QWQ==
57
+ dependencies:
58
+ loose-envify "^1.1.0"
59
+ object-assign "^4.1.1"
fixtures/legacy-jsx-runtimes/setupTests.js
new
+318
@@ -0,0 +1,318 @@
1
+'use strict';
2
+
3
+// This is mostly copypasta from toWarnDev.js matchers
4
+// that we use in the main repo Jest configuration.
5
+
6
+const expect = global.expect;
7
+
8
+const jestDiff = require('jest-diff').default;
9
+const util = require('util');
10
+
11
+function shouldIgnoreConsoleError(format, args) {
12
+ if (process.env.NODE_ENV !== 'production') {
13
+ if (typeof format === 'string') {
14
+ if (format.indexOf('Error: Uncaught [') === 0) {
15
+ // This looks like an uncaught error from invokeGuardedCallback() wrapper
16
+ // in development that is reported by jsdom. Ignore because it's noisy.
17
+ return true;
18
+ }
19
+ if (format.indexOf('The above error occurred') === 0) {
20
+ // This looks like an error addendum from ReactFiberErrorLogger.
21
+ // Ignore it too.
22
+ return true;
23
+ }
24
+ }
25
+ } else {
26
+ if (
27
+ format != null &&
28
+ typeof format.message === 'string' &&
29
+ typeof format.stack === 'string' &&
30
+ args.length === 0
31
+ ) {
32
+ // In production, ReactFiberErrorLogger logs error objects directly.
33
+ // They are noisy too so we'll try to ignore them.
34
+ return true;
35
+ }
36
+ if (
37
+ format.indexOf(
38
+ 'act(...) is not supported in production builds of React'
39
+ ) === 0
40
+ ) {
41
+ // We don't yet support act() for prod builds, and warn for it.
42
+ // But we'd like to use act() ourselves for prod builds.
43
+ // Let's ignore the warning and #yolo.
44
+ return true;
45
+ }
46
+ }
47
+ // Looks legit
48
+ return false;
49
+}
50
+
51
+function normalizeCodeLocInfo(str) {
52
+ if (typeof str !== 'string') {
53
+ return str;
54
+ }
55
+ // This special case exists only for the special source location in
56
+ // ReactElementValidator. That will go away if we remove source locations.
57
+ str = str.replace(/Check your code at .+?:\d+/g, 'Check your code at **');
58
+ // V8 format:
59
+ // at Component (/path/filename.js:123:45)
60
+ // React format:
61
+ // in Component (at filename.js:123)
62
+ return str.replace(/\n +(?:at|in) ([\S]+)[^\n]*/g, function(m, name) {
63
+ return '\n in ' + name + ' (at **)';
64
+ });
65
+}
66
+
67
+const createMatcherFor = (consoleMethod, matcherName) =>
68
+ function matcher(callback, expectedMessages, options = {}) {
69
+ if (process.env.NODE_ENV !== 'production') {
70
+ // Warn about incorrect usage of matcher.
71
+ if (typeof expectedMessages === 'string') {
72
+ expectedMessages = [expectedMessages];
73
+ } else if (!Array.isArray(expectedMessages)) {
74
+ throw Error(
75
+ `${matcherName}() requires a parameter of type string or an array of strings ` +
76
+ `but was given ${typeof expectedMessages}.`
77
+ );
78
+ }
79
+ if (
80
+ options != null &&
81
+ (typeof options !== 'object' || Array.isArray(options))
82
+ ) {
83
+ throw new Error(
84
+ `${matcherName}() second argument, when present, should be an object. ` +
85
+ 'Did you forget to wrap the messages into an array?'
86
+ );
87
+ }
88
+ if (arguments.length > 3) {
89
+ // `matcher` comes from Jest, so it's more than 2 in practice
90
+ throw new Error(
91
+ `${matcherName}() received more than two arguments. ` +
92
+ 'Did you forget to wrap the messages into an array?'
93
+ );
94
+ }
95
+
96
+ const withoutStack = options.withoutStack;
97
+ const logAllErrors = options.logAllErrors;
98
+ const warningsWithoutComponentStack = [];
99
+ const warningsWithComponentStack = [];
100
+ const unexpectedWarnings = [];
101
+
102
+ let lastWarningWithMismatchingFormat = null;
103
+ let lastWarningWithExtraComponentStack = null;
104
+
105
+ // Catch errors thrown by the callback,
106
+ // But only rethrow them if all test expectations have been satisfied.
107
+ // Otherwise an Error in the callback can mask a failed expectation,
108
+ // and result in a test that passes when it shouldn't.
109
+ let caughtError;
110
+
111
+ const isLikelyAComponentStack = message =>
112
+ typeof message === 'string' &&
113
+ (message.includes('\n in ') || message.includes('\n at '));
114
+
115
+ const consoleSpy = (format, ...args) => {
116
+ // Ignore uncaught errors reported by jsdom
117
+ // and React addendums because they're too noisy.
118
+ if (
119
+ !logAllErrors &&
120
+ consoleMethod === 'error' &&
121
+ shouldIgnoreConsoleError(format, args)
122
+ ) {
123
+ return;
124
+ }
125
+
126
+ const message = util.format(format, ...args);
127
+ const normalizedMessage = normalizeCodeLocInfo(message);
128
+
129
+ // Remember if the number of %s interpolations
130
+ // doesn't match the number of arguments.
131
+ // We'll fail the test if it happens.
132
+ let argIndex = 0;
133
+ format.replace(/%s/g, () => argIndex++);
134
+ if (argIndex !== args.length) {
135
+ lastWarningWithMismatchingFormat = {
136
+ format,
137
+ args,
138
+ expectedArgCount: argIndex,
139
+ };
140
+ }
141
+
142
+ // Protect against accidentally passing a component stack
143
+ // to warning() which already injects the component stack.
144
+ if (
145
+ args.length >= 2 &&
146
+ isLikelyAComponentStack(args[args.length - 1]) &&
147
+ isLikelyAComponentStack(args[args.length - 2])
148
+ ) {
149
+ lastWarningWithExtraComponentStack = {
150
+ format,
151
+ };
152
+ }
153
+
154
+ for (let index = 0; index < expectedMessages.length; index++) {
155
+ const expectedMessage = expectedMessages[index];
156
+ if (
157
+ normalizedMessage === expectedMessage ||
158
+ normalizedMessage.includes(expectedMessage)
159
+ ) {
160
+ if (isLikelyAComponentStack(normalizedMessage)) {
161
+ warningsWithComponentStack.push(normalizedMessage);
162
+ } else {
163
+ warningsWithoutComponentStack.push(normalizedMessage);
164
+ }
165
+ expectedMessages.splice(index, 1);
166
+ return;
167
+ }
168
+ }
169
+
170
+ let errorMessage;
171
+ if (expectedMessages.length === 0) {
172
+ errorMessage =
173
+ 'Unexpected warning recorded: ' +
174
+ this.utils.printReceived(normalizedMessage);
175
+ } else if (expectedMessages.length === 1) {
176
+ errorMessage =
177
+ 'Unexpected warning recorded: ' +
178
+ jestDiff(expectedMessages[0], normalizedMessage);
179
+ } else {
180
+ errorMessage =
181
+ 'Unexpected warning recorded: ' +
182
+ jestDiff(expectedMessages, [normalizedMessage]);
183
+ }
184
+
185
+ // Record the call stack for unexpected warnings.
186
+ // We don't throw an Error here though,
187
+ // Because it might be suppressed by ReactFiberScheduler.
188
+ unexpectedWarnings.push(new Error(errorMessage));
189
+ };
190
+
191
+ // TODO Decide whether we need to support nested toWarn* expectations.
192
+ // If we don't need it, add a check here to see if this is already our spy,
193
+ // And throw an error.
194
+ const originalMethod = console[consoleMethod];
195
+
196
+ // Avoid using Jest's built-in spy since it can't be removed.
197
+ console[consoleMethod] = consoleSpy;
198
+
199
+ try {
200
+ callback();
201
+ } catch (error) {
202
+ caughtError = error;
203
+ } finally {
204
+ // Restore the unspied method so that unexpected errors fail tests.
205
+ console[consoleMethod] = originalMethod;
206
+
207
+ // Any unexpected Errors thrown by the callback should fail the test.
208
+ // This should take precedence since unexpected errors could block warnings.
209
+ if (caughtError) {
210
+ throw caughtError;
211
+ }
212
+
213
+ // Any unexpected warnings should be treated as a failure.
214
+ if (unexpectedWarnings.length > 0) {
215
+ return {
216
+ message: () => unexpectedWarnings[0].stack,
217
+ pass: false,
218
+ };
219
+ }
220
+
221
+ // Any remaining messages indicate a failed expectations.
222
+ if (expectedMessages.length > 0) {
223
+ return {
224
+ message: () =>
225
+ `Expected warning was not recorded:\n ${this.utils.printReceived(
226
+ expectedMessages[0]
227
+ )}`,
228
+ pass: false,
229
+ };
230
+ }
231
+
232
+ if (typeof withoutStack === 'number') {
233
+ // We're expecting a particular number of warnings without stacks.
234
+ if (withoutStack !== warningsWithoutComponentStack.length) {
235
+ return {
236
+ message: () =>
237
+ `Expected ${withoutStack} warnings without a component stack but received ${warningsWithoutComponentStack.length}:\n` +
238
+ warningsWithoutComponentStack.map(warning =>
239
+ this.utils.printReceived(warning)
240
+ ),
241
+ pass: false,
242
+ };
243
+ }
244
+ } else if (withoutStack === true) {
245
+ // We're expecting that all warnings won't have the stack.
246
+ // If some warnings have it, it's an error.
247
+ if (warningsWithComponentStack.length > 0) {
248
+ return {
249
+ message: () =>
250
+ `Received warning unexpectedly includes a component stack:\n ${this.utils.printReceived(
251
+ warningsWithComponentStack[0]
252
+ )}\nIf this warning intentionally includes the component stack, remove ` +
253
+ `{withoutStack: true} from the ${matcherName}() call. If you have a mix of ` +
254
+ `warnings with and without stack in one ${matcherName}() call, pass ` +
255
+ `{withoutStack: N} where N is the number of warnings without stacks.`,
256
+ pass: false,
257
+ };
258
+ }
259
+ } else if (withoutStack === false || withoutStack === undefined) {
260
+ // We're expecting that all warnings *do* have the stack (default).
261
+ // If some warnings don't have it, it's an error.
262
+ if (warningsWithoutComponentStack.length > 0) {
263
+ return {
264
+ message: () =>
265
+ `Received warning unexpectedly does not include a component stack:\n ${this.utils.printReceived(
266
+ warningsWithoutComponentStack[0]
267
+ )}\nIf this warning intentionally omits the component stack, add ` +
268
+ `{withoutStack: true} to the ${matcherName} call.`,
269
+ pass: false,
270
+ };
271
+ }
272
+ } else {
273
+ throw Error(
274
+ `The second argument for ${matcherName}(), when specified, must be an object. It may have a ` +
275
+ `property called "withoutStack" whose value may be undefined, boolean, or a number. ` +
276
+ `Instead received ${typeof withoutStack}.`
277
+ );
278
+ }
279
+
280
+ if (lastWarningWithMismatchingFormat !== null) {
281
+ return {
282
+ message: () =>
283
+ `Received ${
284
+ lastWarningWithMismatchingFormat.args.length
285
+ } arguments for a message with ${
286
+ lastWarningWithMismatchingFormat.expectedArgCount
287
+ } placeholders:\n ${this.utils.printReceived(
288
+ lastWarningWithMismatchingFormat.format
289
+ )}`,
290
+ pass: false,
291
+ };
292
+ }
293
+
294
+ if (lastWarningWithExtraComponentStack !== null) {
295
+ return {
296
+ message: () =>
297
+ `Received more than one component stack for a warning:\n ${this.utils.printReceived(
298
+ lastWarningWithExtraComponentStack.format
299
+ )}\nDid you accidentally pass a stack to warning() as the last argument? ` +
300
+ `Don't forget warning() already injects the component stack automatically.`,
301
+ pass: false,
302
+ };
303
+ }
304
+
305
+ return {pass: true};
306
+ }
307
+ } else {
308
+ // Any uncaught errors or warnings should fail tests in production mode.
309
+ callback();
310
+
311
+ return {pass: true};
312
+ }
313
+ };
314
+
315
+expect.extend({
316
+ toWarnDev: createMatcherFor('warn', 'toWarnDev'),
317
+ toErrorDev: createMatcherFor('error', 'toErrorDev'),
318
+});
fixtures/legacy-jsx-runtimes/yarn.lock
new
+3780
@@ -0,0 +1,3780 @@
1
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2
+# yarn lockfile v1
3
+
4
+
5
+"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4":
6
+ version "7.10.4"
7
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a"
8
+ integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==
9
+ dependencies:
10
+ "@babel/highlight" "^7.10.4"
11
+
12
+"@babel/core@^7.1.0", "@babel/core@^7.7.5":
13
+ version "7.11.6"
14
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.11.6.tgz#3a9455dc7387ff1bac45770650bc13ba04a15651"
15
+ integrity sha512-Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg==
16
+ dependencies:
17
+ "@babel/code-frame" "^7.10.4"
18
+ "@babel/generator" "^7.11.6"
19
+ "@babel/helper-module-transforms" "^7.11.0"
20
+ "@babel/helpers" "^7.10.4"
21
+ "@babel/parser" "^7.11.5"
22
+ "@babel/template" "^7.10.4"
23
+ "@babel/traverse" "^7.11.5"
24
+ "@babel/types" "^7.11.5"
25
+ convert-source-map "^1.7.0"
26
+ debug "^4.1.0"
27
+ gensync "^1.0.0-beta.1"
28
+ json5 "^2.1.2"
29
+ lodash "^4.17.19"
30
+ resolve "^1.3.2"
31
+ semver "^5.4.1"
32
+ source-map "^0.5.0"
33
+
34
+"@babel/generator@^7.11.5", "@babel/generator@^7.11.6":
35
+ version "7.11.6"
36
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.6.tgz#b868900f81b163b4d464ea24545c61cbac4dc620"
37
+ integrity sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA==
38
+ dependencies:
39
+ "@babel/types" "^7.11.5"
40
+ jsesc "^2.5.1"
41
+ source-map "^0.5.0"
42
+
43
+"@babel/helper-annotate-as-pure@^7.10.4":
44
+ version "7.10.4"
45
+ resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz#5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3"
46
+ integrity sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==
47
+ dependencies:
48
+ "@babel/types" "^7.10.4"
49
+
50
+"@babel/helper-builder-react-jsx-experimental@^7.10.4", "@babel/helper-builder-react-jsx-experimental@^7.11.5":
51
+ version "7.11.5"
52
+ resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.11.5.tgz#4ea43dd63857b0a35cd1f1b161dc29b43414e79f"
53
+ integrity sha512-Vc4aPJnRZKWfzeCBsqTBnzulVNjABVdahSPhtdMD3Vs80ykx4a87jTHtF/VR+alSrDmNvat7l13yrRHauGcHVw==
54
+ dependencies:
55
+ "@babel/helper-annotate-as-pure" "^7.10.4"
56
+ "@babel/helper-module-imports" "^7.10.4"
57
+ "@babel/types" "^7.11.5"
58
+
59
+"@babel/helper-builder-react-jsx@^7.10.4":
60
+ version "7.10.4"
61
+ resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz#8095cddbff858e6fa9c326daee54a2f2732c1d5d"
62
+ integrity sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg==
63
+ dependencies:
64
+ "@babel/helper-annotate-as-pure" "^7.10.4"
65
+ "@babel/types" "^7.10.4"
66
+
67
+"@babel/helper-function-name@^7.10.4":
68
+ version "7.10.4"
69
+ resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz#d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a"
70
+ integrity sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==
71
+ dependencies:
72
+ "@babel/helper-get-function-arity" "^7.10.4"
73
+ "@babel/template" "^7.10.4"
74
+ "@babel/types" "^7.10.4"
75
+
76
+"@babel/helper-get-function-arity@^7.10.4":
77
+ version "7.10.4"
78
+ resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz#98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2"
79
+ integrity sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==
80
+ dependencies:
81
+ "@babel/types" "^7.10.4"
82
+
83
+"@babel/helper-member-expression-to-functions@^7.10.4":
84
+ version "7.11.0"
85
+ resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz#ae69c83d84ee82f4b42f96e2a09410935a8f26df"
86
+ integrity sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==
87
+ dependencies:
88
+ "@babel/types" "^7.11.0"
89
+
90
+"@babel/helper-module-imports@^7.10.4":
91
+ version "7.10.4"
92
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz#4c5c54be04bd31670a7382797d75b9fa2e5b5620"
93
+ integrity sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==
94
+ dependencies:
95
+ "@babel/types" "^7.10.4"
96
+
97
+"@babel/helper-module-transforms@^7.10.4", "@babel/helper-module-transforms@^7.11.0":
98
+ version "7.11.0"
99
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz#b16f250229e47211abdd84b34b64737c2ab2d359"
100
+ integrity sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==
101
+ dependencies:
102
+ "@babel/helper-module-imports" "^7.10.4"
103
+ "@babel/helper-replace-supers" "^7.10.4"
104
+ "@babel/helper-simple-access" "^7.10.4"
105
+ "@babel/helper-split-export-declaration" "^7.11.0"
106
+ "@babel/template" "^7.10.4"
107
+ "@babel/types" "^7.11.0"
108
+ lodash "^4.17.19"
109
+
110
+"@babel/helper-optimise-call-expression@^7.10.4":
111
+ version "7.10.4"
112
+ resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz#50dc96413d594f995a77905905b05893cd779673"
113
+ integrity sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==
114
+ dependencies:
115
+ "@babel/types" "^7.10.4"
116
+
117
+"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0":
118
+ version "7.10.4"
119
+ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375"
120
+ integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==
121
+
122
+"@babel/helper-replace-supers@^7.10.4":
123
+ version "7.10.4"
124
+ resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz#d585cd9388ea06e6031e4cd44b6713cbead9e6cf"
125
+ integrity sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==
126
+ dependencies:
127
+ "@babel/helper-member-expression-to-functions" "^7.10.4"
128
+ "@babel/helper-optimise-call-expression" "^7.10.4"
129
+ "@babel/traverse" "^7.10.4"
130
+ "@babel/types" "^7.10.4"
131
+
132
+"@babel/helper-simple-access@^7.10.4":
133
+ version "7.10.4"
134
+ resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz#0f5ccda2945277a2a7a2d3a821e15395edcf3461"
135
+ integrity sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==
136
+ dependencies:
137
+ "@babel/template" "^7.10.4"
138
+ "@babel/types" "^7.10.4"
139
+
140
+"@babel/helper-split-export-declaration@^7.11.0":
141
+ version "7.11.0"
142
+ resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz#f8a491244acf6a676158ac42072911ba83ad099f"
143
+ integrity sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==
144
+ dependencies:
145
+ "@babel/types" "^7.11.0"
146
+
147
+"@babel/helper-validator-identifier@^7.10.4":
148
+ version "7.10.4"
149
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2"
150
+ integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==
151
+
152
+"@babel/helpers@^7.10.4":
153
+ version "7.10.4"
154
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.10.4.tgz#2abeb0d721aff7c0a97376b9e1f6f65d7a475044"
155
+ integrity sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==
156
+ dependencies:
157
+ "@babel/template" "^7.10.4"
158
+ "@babel/traverse" "^7.10.4"
159
+ "@babel/types" "^7.10.4"
160
+
161
+"@babel/highlight@^7.10.4":
162
+ version "7.10.4"
163
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143"
164
+ integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==
165
+ dependencies:
166
+ "@babel/helper-validator-identifier" "^7.10.4"
167
+ chalk "^2.0.0"
168
+ js-tokens "^4.0.0"
169
+
170
+"@babel/parser@^7.1.0", "@babel/parser@^7.10.4", "@babel/parser@^7.11.5":
171
+ version "7.11.5"
172
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.5.tgz#c7ff6303df71080ec7a4f5b8c003c58f1cf51037"
173
+ integrity sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==
174
+
175
+"@babel/plugin-syntax-async-generators@^7.8.4":
176
+ version "7.8.4"
177
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d"
178
+ integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==
179
+ dependencies:
180
+ "@babel/helper-plugin-utils" "^7.8.0"
181
+
182
+"@babel/plugin-syntax-bigint@^7.8.3":
183
+ version "7.8.3"
184
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea"
185
+ integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==
186
+ dependencies:
187
+ "@babel/helper-plugin-utils" "^7.8.0"
188
+
189
+"@babel/plugin-syntax-class-properties@^7.8.3":
190
+ version "7.10.4"
191
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz#6644e6a0baa55a61f9e3231f6c9eeb6ee46c124c"
192
+ integrity sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA==
193
+ dependencies:
194
+ "@babel/helper-plugin-utils" "^7.10.4"
195
+
196
+"@babel/plugin-syntax-import-meta@^7.8.3":
197
+ version "7.10.4"
198
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51"
199
+ integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==
200
+ dependencies:
201
+ "@babel/helper-plugin-utils" "^7.10.4"
202
+
203
+"@babel/plugin-syntax-json-strings@^7.8.3":
204
+ version "7.8.3"
205
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a"
206
+ integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==
207
+ dependencies:
208
+ "@babel/helper-plugin-utils" "^7.8.0"
209
+
210
+"@babel/plugin-syntax-jsx@^7.10.4":
211
+ version "7.10.4"
212
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz#39abaae3cbf710c4373d8429484e6ba21340166c"
213
+ integrity sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g==
214
+ dependencies:
215
+ "@babel/helper-plugin-utils" "^7.10.4"
216
+
217
+"@babel/plugin-syntax-logical-assignment-operators@^7.8.3":
218
+ version "7.10.4"
219
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699"
220
+ integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==
221
+ dependencies:
222
+ "@babel/helper-plugin-utils" "^7.10.4"
223
+
224
+"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3":
225
+ version "7.8.3"
226
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9"
227
+ integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==
228
+ dependencies:
229
+ "@babel/helper-plugin-utils" "^7.8.0"
230
+
231
+"@babel/plugin-syntax-numeric-separator@^7.8.3":
232
+ version "7.10.4"
233
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97"
234
+ integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==
235
+ dependencies:
236
+ "@babel/helper-plugin-utils" "^7.10.4"
237
+
238
+"@babel/plugin-syntax-object-rest-spread@^7.8.3":
239
+ version "7.8.3"
240
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871"
241
+ integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==
242
+ dependencies:
243
+ "@babel/helper-plugin-utils" "^7.8.0"
244
+
245
+"@babel/plugin-syntax-optional-catch-binding@^7.8.3":
246
+ version "7.8.3"
247
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1"
248
+ integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==
249
+ dependencies:
250
+ "@babel/helper-plugin-utils" "^7.8.0"
251
+
252
+"@babel/plugin-syntax-optional-chaining@^7.8.3":
253
+ version "7.8.3"
254
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a"
255
+ integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==
256
+ dependencies:
257
+ "@babel/helper-plugin-utils" "^7.8.0"
258
+
259
+"@babel/plugin-transform-modules-commonjs@^7.10.4":
260
+ version "7.10.4"
261
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz#66667c3eeda1ebf7896d41f1f16b17105a2fbca0"
262
+ integrity sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w==
263
+ dependencies:
264
+ "@babel/helper-module-transforms" "^7.10.4"
265
+ "@babel/helper-plugin-utils" "^7.10.4"
266
+ "@babel/helper-simple-access" "^7.10.4"
267
+ babel-plugin-dynamic-import-node "^2.3.3"
268
+
269
+"@babel/plugin-transform-react-display-name@^7.10.4":
270
+ version "7.10.4"
271
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.10.4.tgz#b5795f4e3e3140419c3611b7a2a3832b9aef328d"
272
+ integrity sha512-Zd4X54Mu9SBfPGnEcaGcOrVAYOtjT2on8QZkLKEq1S/tHexG39d9XXGZv19VfRrDjPJzFmPfTAqOQS1pfFOujw==
273
+ dependencies:
274
+ "@babel/helper-plugin-utils" "^7.10.4"
275
+
276
+"@babel/plugin-transform-react-jsx-development@^7.10.4":
277
+ version "7.11.5"
278
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.11.5.tgz#e1439e6a57ee3d43e9f54ace363fb29cefe5d7b6"
279
+ integrity sha512-cImAmIlKJ84sDmpQzm4/0q/2xrXlDezQoixy3qoz1NJeZL/8PRon6xZtluvr4H4FzwlDGI5tCcFupMnXGtr+qw==
280
+ dependencies:
281
+ "@babel/helper-builder-react-jsx-experimental" "^7.11.5"
282
+ "@babel/helper-plugin-utils" "^7.10.4"
283
+ "@babel/plugin-syntax-jsx" "^7.10.4"
284
+
285
+"@babel/plugin-transform-react-jsx-self@^7.10.4":
286
+ version "7.10.4"
287
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.10.4.tgz#cd301a5fed8988c182ed0b9d55e9bd6db0bd9369"
288
+ integrity sha512-yOvxY2pDiVJi0axdTWHSMi5T0DILN+H+SaeJeACHKjQLezEzhLx9nEF9xgpBLPtkZsks9cnb5P9iBEi21En3gg==
289
+ dependencies:
290
+ "@babel/helper-plugin-utils" "^7.10.4"
291
+ "@babel/plugin-syntax-jsx" "^7.10.4"
292
+
293
+"@babel/plugin-transform-react-jsx-source@^7.10.4":
294
+ version "7.10.5"
295
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.10.5.tgz#34f1779117520a779c054f2cdd9680435b9222b4"
296
+ integrity sha512-wTeqHVkN1lfPLubRiZH3o73f4rfon42HpgxUSs86Nc+8QIcm/B9s8NNVXu/gwGcOyd7yDib9ikxoDLxJP0UiDA==
297
+ dependencies:
298
+ "@babel/helper-plugin-utils" "^7.10.4"
299
+ "@babel/plugin-syntax-jsx" "^7.10.4"
300
+
301
+"@babel/plugin-transform-react-jsx@^7.10.4":
302
+ version "7.10.4"
303
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.4.tgz#673c9f913948764a4421683b2bef2936968fddf2"
304
+ integrity sha512-L+MfRhWjX0eI7Js093MM6MacKU4M6dnCRa/QPDwYMxjljzSCzzlzKzj9Pk4P3OtrPcxr2N3znR419nr3Xw+65A==
305
+ dependencies:
306
+ "@babel/helper-builder-react-jsx" "^7.10.4"
307
+ "@babel/helper-builder-react-jsx-experimental" "^7.10.4"
308
+ "@babel/helper-plugin-utils" "^7.10.4"
309
+ "@babel/plugin-syntax-jsx" "^7.10.4"
310
+
311
+"@babel/plugin-transform-react-pure-annotations@^7.10.4":
312
+ version "7.10.4"
313
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.10.4.tgz#3eefbb73db94afbc075f097523e445354a1c6501"
314
+ integrity sha512-+njZkqcOuS8RaPakrnR9KvxjoG1ASJWpoIv/doyWngId88JoFlPlISenGXjrVacZUIALGUr6eodRs1vmPnF23A==
315
+ dependencies:
316
+ "@babel/helper-annotate-as-pure" "^7.10.4"
317
+ "@babel/helper-plugin-utils" "^7.10.4"
318
+
319
+"@babel/preset-react@^7.10.4":
320
+ version "7.10.4"
321
+ resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.10.4.tgz#92e8a66d816f9911d11d4cc935be67adfc82dbcf"
322
+ integrity sha512-BrHp4TgOIy4M19JAfO1LhycVXOPWdDbTRep7eVyatf174Hff+6Uk53sDyajqZPu8W1qXRBiYOfIamek6jA7YVw==
323
+ dependencies:
324
+ "@babel/helper-plugin-utils" "^7.10.4"
325
+ "@babel/plugin-transform-react-display-name" "^7.10.4"
326
+ "@babel/plugin-transform-react-jsx" "^7.10.4"
327
+ "@babel/plugin-transform-react-jsx-development" "^7.10.4"
328
+ "@babel/plugin-transform-react-jsx-self" "^7.10.4"
329
+ "@babel/plugin-transform-react-jsx-source" "^7.10.4"
330
+ "@babel/plugin-transform-react-pure-annotations" "^7.10.4"
331
+
332
+"@babel/template@^7.10.4", "@babel/template@^7.3.3":
333
+ version "7.10.4"
334
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278"
335
+ integrity sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==
336
+ dependencies:
337
+ "@babel/code-frame" "^7.10.4"
338
+ "@babel/parser" "^7.10.4"
339
+ "@babel/types" "^7.10.4"
340
+
341
+"@babel/traverse@^7.1.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.11.5":
342
+ version "7.11.5"
343
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.11.5.tgz#be777b93b518eb6d76ee2e1ea1d143daa11e61c3"
344
+ integrity sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ==
345
+ dependencies:
346
+ "@babel/code-frame" "^7.10.4"
347
+ "@babel/generator" "^7.11.5"
348
+ "@babel/helper-function-name" "^7.10.4"
349
+ "@babel/helper-split-export-declaration" "^7.11.0"
350
+ "@babel/parser" "^7.11.5"
351
+ "@babel/types" "^7.11.5"
352
+ debug "^4.1.0"
353
+ globals "^11.1.0"
354
+ lodash "^4.17.19"
355
+
356
+"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.11.0", "@babel/types@^7.11.5", "@babel/types@^7.3.0", "@babel/types@^7.3.3":
357
+ version "7.11.5"
358
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.5.tgz#d9de577d01252d77c6800cee039ee64faf75662d"
359
+ integrity sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==
360
+ dependencies:
361
+ "@babel/helper-validator-identifier" "^7.10.4"
362
+ lodash "^4.17.19"
363
+ to-fast-properties "^2.0.0"
364
+
365
+"@bcoe/v8-coverage@^0.2.3":
366
+ version "0.2.3"
367
+ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
368
+ integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
369
+
370
+"@cnakazawa/watch@^1.0.3":
371
+ version "1.0.4"
372
+ resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a"
373
+ integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==
374
+ dependencies:
375
+ exec-sh "^0.3.2"
376
+ minimist "^1.2.0"
377
+
378
+"@istanbuljs/load-nyc-config@^1.0.0":
379
+ version "1.1.0"
380
+ resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced"
381
+ integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==
382
+ dependencies:
383
+ camelcase "^5.3.1"
384
+ find-up "^4.1.0"
385
+ get-package-type "^0.1.0"
386
+ js-yaml "^3.13.1"
387
+ resolve-from "^5.0.0"
388
+
389
+"@istanbuljs/schema@^0.1.2":
390
+ version "0.1.2"
391
+ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd"
392
+ integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==
393
+
394
+"@jest/console@^26.5.2":
395
+ version "26.5.2"
396
+ resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.5.2.tgz#94fc4865b1abed7c352b5e21e6c57be4b95604a6"
397
+ integrity sha512-lJELzKINpF1v74DXHbCRIkQ/+nUV1M+ntj+X1J8LxCgpmJZjfLmhFejiMSbjjD66fayxl5Z06tbs3HMyuik6rw==
398
+ dependencies:
399
+ "@jest/types" "^26.5.2"
400
+ "@types/node" "*"
401
+ chalk "^4.0.0"
402
+ jest-message-util "^26.5.2"
403
+ jest-util "^26.5.2"
404
+ slash "^3.0.0"
405
+
406
+"@jest/core@^26.5.3":
407
+ version "26.5.3"
408
+ resolved "https://registry.yarnpkg.com/@jest/core/-/core-26.5.3.tgz#712ed4adb64c3bda256a3f400ff1d3eb2a031f13"
409
+ integrity sha512-CiU0UKFF1V7KzYTVEtFbFmGLdb2g4aTtY0WlyUfLgj/RtoTnJFhh50xKKr7OYkdmBUlGFSa2mD1TU3UZ6OLd4g==
410
+ dependencies:
411
+ "@jest/console" "^26.5.2"
412
+ "@jest/reporters" "^26.5.3"
413
+ "@jest/test-result" "^26.5.2"
414
+ "@jest/transform" "^26.5.2"
415
+ "@jest/types" "^26.5.2"
416
+ "@types/node" "*"
417
+ ansi-escapes "^4.2.1"
418
+ chalk "^4.0.0"
419
+ exit "^0.1.2"
420
+ graceful-fs "^4.2.4"
421
+ jest-changed-files "^26.5.2"
422
+ jest-config "^26.5.3"
423
+ jest-haste-map "^26.5.2"
424
+ jest-message-util "^26.5.2"
425
+ jest-regex-util "^26.0.0"
426
+ jest-resolve "^26.5.2"
427
+ jest-resolve-dependencies "^26.5.3"
428
+ jest-runner "^26.5.3"
429
+ jest-runtime "^26.5.3"
430
+ jest-snapshot "^26.5.3"
431
+ jest-util "^26.5.2"
432
+ jest-validate "^26.5.3"
433
+ jest-watcher "^26.5.2"
434
+ micromatch "^4.0.2"
435
+ p-each-series "^2.1.0"
436
+ rimraf "^3.0.0"
437
+ slash "^3.0.0"
438
+ strip-ansi "^6.0.0"
439
+
440
+"@jest/environment@^26.5.2":
441
+ version "26.5.2"
442
+ resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-26.5.2.tgz#eba3cfc698f6e03739628f699c28e8a07f5e65fe"
443
+ integrity sha512-YjhCD/Zhkz0/1vdlS/QN6QmuUdDkpgBdK4SdiVg4Y19e29g4VQYN5Xg8+YuHjdoWGY7wJHMxc79uDTeTOy9Ngw==
444
+ dependencies:
445
+ "@jest/fake-timers" "^26.5.2"
446
+ "@jest/types" "^26.5.2"
447
+ "@types/node" "*"
448
+ jest-mock "^26.5.2"
449
+
450
+"@jest/fake-timers@^26.5.2":
451
+ version "26.5.2"
452
+ resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.5.2.tgz#1291ac81680ceb0dc7daa1f92c059307eea6400a"
453
+ integrity sha512-09Hn5Oraqt36V1akxQeWMVL0fR9c6PnEhpgLaYvREXZJAh2H2Y+QLCsl0g7uMoJeoWJAuz4tozk1prbR1Fc1sw==
454
+ dependencies:
455
+ "@jest/types" "^26.5.2"
456
+ "@sinonjs/fake-timers" "^6.0.1"
457
+ "@types/node" "*"
458
+ jest-message-util "^26.5.2"
459
+ jest-mock "^26.5.2"
460
+ jest-util "^26.5.2"
461
+
462
+"@jest/globals@^26.5.3":
463
+ version "26.5.3"
464
+ resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.5.3.tgz#90769b40e0af3fa0b28f6d8c5bbe3712467243fd"
465
+ integrity sha512-7QztI0JC2CuB+Wx1VdnOUNeIGm8+PIaqngYsZXQCkH2QV0GFqzAYc9BZfU0nuqA6cbYrWh5wkuMzyii3P7deug==
466
+ dependencies:
467
+ "@jest/environment" "^26.5.2"
468
+ "@jest/types" "^26.5.2"
469
+ expect "^26.5.3"
470
+
471
+"@jest/reporters@^26.5.3":
472
+ version "26.5.3"
473
+ resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.5.3.tgz#e810e9c2b670f33f1c09e9975749260ca12f1c17"
474
+ integrity sha512-X+vR0CpfMQzYcYmMFKNY9n4jklcb14Kffffp7+H/MqitWnb0440bW2L76NGWKAa+bnXhNoZr+lCVtdtPmfJVOQ==
475
+ dependencies:
476
+ "@bcoe/v8-coverage" "^0.2.3"
477
+ "@jest/console" "^26.5.2"
478
+ "@jest/test-result" "^26.5.2"
479
+ "@jest/transform" "^26.5.2"
480
+ "@jest/types" "^26.5.2"
481
+ chalk "^4.0.0"
482
+ collect-v8-coverage "^1.0.0"
483
+ exit "^0.1.2"
484
+ glob "^7.1.2"
485
+ graceful-fs "^4.2.4"
486
+ istanbul-lib-coverage "^3.0.0"
487
+ istanbul-lib-instrument "^4.0.3"
488
+ istanbul-lib-report "^3.0.0"
489
+ istanbul-lib-source-maps "^4.0.0"
490
+ istanbul-reports "^3.0.2"
491
+ jest-haste-map "^26.5.2"
492
+ jest-resolve "^26.5.2"
493
+ jest-util "^26.5.2"
494
+ jest-worker "^26.5.0"
495
+ slash "^3.0.0"
496
+ source-map "^0.6.0"
497
+ string-length "^4.0.1"
498
+ terminal-link "^2.0.0"
499
+ v8-to-istanbul "^6.0.1"
500
+ optionalDependencies:
501
+ node-notifier "^8.0.0"
502
+
503
+"@jest/source-map@^26.5.0":
504
+ version "26.5.0"
505
+ resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.5.0.tgz#98792457c85bdd902365cd2847b58fff05d96367"
506
+ integrity sha512-jWAw9ZwYHJMe9eZq/WrsHlwF8E3hM9gynlcDpOyCb9bR8wEd9ZNBZCi7/jZyzHxC7t3thZ10gO2IDhu0bPKS5g==
507
+ dependencies:
508
+ callsites "^3.0.0"
509
+ graceful-fs "^4.2.4"
510
+ source-map "^0.6.0"
511
+
512
+"@jest/test-result@^26.5.2":
513
+ version "26.5.2"
514
+ resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.5.2.tgz#cc1a44cfd4db2ecee3fb0bc4e9fe087aa54b5230"
515
+ integrity sha512-E/Zp6LURJEGSCWpoMGmCFuuEI1OWuI3hmZwmULV0GsgJBh7u0rwqioxhRU95euUuviqBDN8ruX/vP/4bwYolXw==
516
+ dependencies:
517
+ "@jest/console" "^26.5.2"
518
+ "@jest/types" "^26.5.2"
519
+ "@types/istanbul-lib-coverage" "^2.0.0"
520
+ collect-v8-coverage "^1.0.0"
521
+
522
+"@jest/test-sequencer@^26.5.3":
523
+ version "26.5.3"
524
+ resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.5.3.tgz#9ae0ab9bc37d5171b28424029192e50229814f8d"
525
+ integrity sha512-Wqzb7aQ13L3T47xHdpUqYMOpiqz6Dx2QDDghp5AV/eUDXR7JieY+E1s233TQlNyl+PqtqgjVokmyjzX/HA51BA==
526
+ dependencies:
527
+ "@jest/test-result" "^26.5.2"
528
+ graceful-fs "^4.2.4"
529
+ jest-haste-map "^26.5.2"
530
+ jest-runner "^26.5.3"
531
+ jest-runtime "^26.5.3"
532
+
533
+"@jest/transform@^26.5.2":
534
+ version "26.5.2"
535
+ resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.5.2.tgz#6a0033a1d24316a1c75184d010d864f2c681bef5"
536
+ integrity sha512-AUNjvexh+APhhmS8S+KboPz+D3pCxPvEAGduffaAJYxIFxGi/ytZQkrqcKDUU0ERBAo5R7087fyOYr2oms1seg==
537
+ dependencies:
538
+ "@babel/core" "^7.1.0"
539
+ "@jest/types" "^26.5.2"
540
+ babel-plugin-istanbul "^6.0.0"
541
+ chalk "^4.0.0"
542
+ convert-source-map "^1.4.0"
543
+ fast-json-stable-stringify "^2.0.0"
544
+ graceful-fs "^4.2.4"
545
+ jest-haste-map "^26.5.2"
546
+ jest-regex-util "^26.0.0"
547
+ jest-util "^26.5.2"
548
+ micromatch "^4.0.2"
549
+ pirates "^4.0.1"
550
+ slash "^3.0.0"
551
+ source-map "^0.6.1"
552
+ write-file-atomic "^3.0.0"
553
+
554
+"@jest/types@^26.5.2":
555
+ version "26.5.2"
556
+ resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.5.2.tgz#44c24f30c8ee6c7f492ead9ec3f3c62a5289756d"
557
+ integrity sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==
558
+ dependencies:
559
+ "@types/istanbul-lib-coverage" "^2.0.0"
560
+ "@types/istanbul-reports" "^3.0.0"
561
+ "@types/node" "*"
562
+ "@types/yargs" "^15.0.0"
563
+ chalk "^4.0.0"
564
+
565
+"@sinonjs/commons@^1.7.0":
566
+ version "1.8.1"
567
+ resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.1.tgz#e7df00f98a203324f6dc7cc606cad9d4a8ab2217"
568
+ integrity sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==
569
+ dependencies:
570
+ type-detect "4.0.8"
571
+
572
+"@sinonjs/fake-timers@^6.0.1":
573
+ version "6.0.1"
574
+ resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40"
575
+ integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==
576
+ dependencies:
577
+ "@sinonjs/commons" "^1.7.0"
578
+
579
+"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7":
580
+ version "7.1.10"
581
+ resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.10.tgz#ca58fc195dd9734e77e57c6f2df565623636ab40"
582
+ integrity sha512-x8OM8XzITIMyiwl5Vmo2B1cR1S1Ipkyv4mdlbJjMa1lmuKvKY9FrBbEANIaMlnWn5Rf7uO+rC/VgYabNkE17Hw==
583
+ dependencies:
584
+ "@babel/parser" "^7.1.0"
585
+ "@babel/types" "^7.0.0"
586
+ "@types/babel__generator" "*"
587
+ "@types/babel__template" "*"
588
+ "@types/babel__traverse" "*"
589
+
590
+"@types/babel__generator@*":
591
+ version "7.6.2"
592
+ resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.2.tgz#f3d71178e187858f7c45e30380f8f1b7415a12d8"
593
+ integrity sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ==
594
+ dependencies:
595
+ "@babel/types" "^7.0.0"
596
+
597
+"@types/babel__template@*":
598
+ version "7.0.3"
599
+ resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.0.3.tgz#b8aaeba0a45caca7b56a5de9459872dde3727214"
600
+ integrity sha512-uCoznIPDmnickEi6D0v11SBpW0OuVqHJCa7syXqQHy5uktSCreIlt0iglsCnmvz8yCb38hGcWeseA8cWJSwv5Q==
601
+ dependencies:
602
+ "@babel/parser" "^7.1.0"
603
+ "@babel/types" "^7.0.0"
604
+
605
+"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6":
606
+ version "7.0.15"
607
+ resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.15.tgz#db9e4238931eb69ef8aab0ad6523d4d4caa39d03"
608
+ integrity sha512-Pzh9O3sTK8V6I1olsXpCfj2k/ygO2q1X0vhhnDrEQyYLHZesWz+zMZMVcwXLCYf0U36EtmyYaFGPfXlTtDHe3A==
609
+ dependencies:
610
+ "@babel/types" "^7.3.0"
611
+
612
+"@types/graceful-fs@^4.1.2":
613
+ version "4.1.3"
614
+ resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.3.tgz#039af35fe26bec35003e8d86d2ee9c586354348f"
615
+ integrity sha512-AiHRaEB50LQg0pZmm659vNBb9f4SJ0qrAnteuzhSeAUcJKxoYgEnprg/83kppCnc2zvtCKbdZry1a5pVY3lOTQ==
616
+ dependencies:
617
+ "@types/node" "*"
618
+
619
+"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1":
620
+ version "2.0.3"
621
+ resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762"
622
+ integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==
623
+
624
+"@types/istanbul-lib-report@*":
625
+ version "3.0.0"
626
+ resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686"
627
+ integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==
628
+ dependencies:
629
+ "@types/istanbul-lib-coverage" "*"
630
+
631
+"@types/istanbul-reports@^3.0.0":
632
+ version "3.0.0"
633
+ resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz#508b13aa344fa4976234e75dddcc34925737d821"
634
+ integrity sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==
635
+ dependencies:
636
+ "@types/istanbul-lib-report" "*"
637
+
638
+"@types/node@*":
639
+ version "14.11.8"
640
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-14.11.8.tgz#fe2012f2355e4ce08bca44aeb3abbb21cf88d33f"
641
+ integrity sha512-KPcKqKm5UKDkaYPTuXSx8wEP7vE9GnuaXIZKijwRYcePpZFDVuy2a57LarFKiORbHOuTOOwYzxVxcUzsh2P2Pw==
642
+
643
+"@types/normalize-package-data@^2.4.0":
644
+ version "2.4.0"
645
+ resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e"
646
+ integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==
647
+
648
+"@types/prettier@^2.0.0":
649
+ version "2.1.2"
650
+ resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.1.2.tgz#4929992f87a0129f4960a110faeb526210562e7b"
651
+ integrity sha512-IiPhNnenzkqdSdQH3ifk9LoX7oQe61ZlDdDO4+MUv6FyWdPGDPr26gCPVs3oguZEMq//nFZZpwUZcVuNJsG+DQ==
652
+
653
+"@types/stack-utils@^2.0.0":
654
+ version "2.0.0"
655
+ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.0.tgz#7036640b4e21cc2f259ae826ce843d277dad8cff"
656
+ integrity sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==
657
+
658
+"@types/yargs-parser@*":
659
+ version "15.0.0"
660
+ resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d"
661
+ integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==
662
+
663
+"@types/yargs@^15.0.0":
664
+ version "15.0.8"
665
+ resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.8.tgz#7644904cad7427eb704331ea9bf1ee5499b82e23"
666
+ integrity sha512-b0BYzFUzBpOhPjpl1wtAHU994jBeKF4TKVlT7ssFv44T617XNcPdRoG4AzHLVshLzlrF7i3lTelH7UbuNYV58Q==
667
+ dependencies:
668
+ "@types/yargs-parser" "*"
669
+
670
+abab@^2.0.3:
671
+ version "2.0.5"
672
+ resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a"
673
+ integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==
674
+
675
+acorn-globals@^6.0.0:
676
+ version "6.0.0"
677
+ resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45"
678
+ integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==
679
+ dependencies:
680
+ acorn "^7.1.1"
681
+ acorn-walk "^7.1.1"
682
+
683
+acorn-walk@^7.1.1:
684
+ version "7.2.0"
685
+ resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc"
686
+ integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
687
+
688
+acorn@^7.1.1:
689
+ version "7.4.1"
690
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
691
+ integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
692
+
693
+ajv@^6.12.3:
694
+ version "6.12.6"
695
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
696
+ integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
697
+ dependencies:
698
+ fast-deep-equal "^3.1.1"
699
+ fast-json-stable-stringify "^2.0.0"
700
+ json-schema-traverse "^0.4.1"
701
+ uri-js "^4.2.2"
702
+
703
+ansi-escapes@^4.2.1:
704
+ version "4.3.1"
705
+ resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61"
706
+ integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==
707
+ dependencies:
708
+ type-fest "^0.11.0"
709
+
710
+ansi-regex@^5.0.0:
711
+ version "5.0.0"
712
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75"
713
+ integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==
714
+
715
+ansi-styles@^3.2.1:
716
+ version "3.2.1"
717
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
718
+ integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
719
+ dependencies:
720
+ color-convert "^1.9.0"
721
+
722
+ansi-styles@^4.0.0, ansi-styles@^4.1.0:
723
+ version "4.3.0"
724
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
725
+ integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
726
+ dependencies:
727
+ color-convert "^2.0.1"
728
+
729
+anymatch@^2.0.0:
730
+ version "2.0.0"
731
+ resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb"
732
+ integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==
733
+ dependencies:
734
+ micromatch "^3.1.4"
735
+ normalize-path "^2.1.1"
736
+
737
+anymatch@^3.0.3:
738
+ version "3.1.1"
739
+ resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142"
740
+ integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==
741
+ dependencies:
742
+ normalize-path "^3.0.0"
743
+ picomatch "^2.0.4"
744
+
745
+argparse@^1.0.7:
746
+ version "1.0.10"
747
+ resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
748
+ integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
749
+ dependencies:
750
+ sprintf-js "~1.0.2"
751
+
752
+arr-diff@^4.0.0:
753
+ version "4.0.0"
754
+ resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
755
+ integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=
756
+
757
+arr-flatten@^1.1.0:
758
+ version "1.1.0"
759
+ resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
760
+ integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==
761
+
762
+arr-union@^3.1.0:
763
+ version "3.1.0"
764
+ resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
765
+ integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=
766
+
767
+array-unique@^0.3.2:
768
+ version "0.3.2"
769
+ resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
770
+ integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
771
+
772
+asn1@~0.2.3:
773
+ version "0.2.4"
774
+ resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136"
775
+ integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==
776
+ dependencies:
777
+ safer-buffer "~2.1.0"
778
+
779
+assert-plus@1.0.0, assert-plus@^1.0.0:
780
+ version "1.0.0"
781
+ resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
782
+ integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=
783
+
784
+assign-symbols@^1.0.0:
785
+ version "1.0.0"
786
+ resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
787
+ integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=
788
+
789
+asynckit@^0.4.0:
790
+ version "0.4.0"
791
+ resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
792
+ integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
793
+
794
+atob@^2.1.2:
795
+ version "2.1.2"
796
+ resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
797
+ integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
798
+
799
+aws-sign2@~0.7.0:
800
+ version "0.7.0"
801
+ resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
802
+ integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=
803
+
804
+aws4@^1.8.0:
805
+ version "1.10.1"
806
+ resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.10.1.tgz#e1e82e4f3e999e2cfd61b161280d16a111f86428"
807
+ integrity sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA==
808
+
809
+babel-jest@^26.5.2:
810
+ version "26.5.2"
811
+ resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.5.2.tgz#164f367a35946c6cf54eaccde8762dec50422250"
812
+ integrity sha512-U3KvymF3SczA3vOL/cgiUFOznfMET+XDIXiWnoJV45siAp2pLMG8i2+/MGZlAC3f/F6Q40LR4M4qDrWZ9wkK8A==
813
+ dependencies:
814
+ "@jest/transform" "^26.5.2"
815
+ "@jest/types" "^26.5.2"
816
+ "@types/babel__core" "^7.1.7"
817
+ babel-plugin-istanbul "^6.0.0"
818
+ babel-preset-jest "^26.5.0"
819
+ chalk "^4.0.0"
820
+ graceful-fs "^4.2.4"
821
+ slash "^3.0.0"
822
+
823
+babel-plugin-dynamic-import-node@^2.3.3:
824
+ version "2.3.3"
825
+ resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3"
826
+ integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==
827
+ dependencies:
828
+ object.assign "^4.1.0"
829
+
830
+babel-plugin-istanbul@^6.0.0:
831
+ version "6.0.0"
832
+ resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz#e159ccdc9af95e0b570c75b4573b7c34d671d765"
833
+ integrity sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==
834
+ dependencies:
835
+ "@babel/helper-plugin-utils" "^7.0.0"
836
+ "@istanbuljs/load-nyc-config" "^1.0.0"
837
+ "@istanbuljs/schema" "^0.1.2"
838
+ istanbul-lib-instrument "^4.0.0"
839
+ test-exclude "^6.0.0"
840
+
841
+babel-plugin-jest-hoist@^26.5.0:
842
+ version "26.5.0"
843
+ resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.5.0.tgz#3916b3a28129c29528de91e5784a44680db46385"
844
+ integrity sha512-ck17uZFD3CDfuwCLATWZxkkuGGFhMij8quP8CNhwj8ek1mqFgbFzRJ30xwC04LLscj/aKsVFfRST+b5PT7rSuw==
845
+ dependencies:
846
+ "@babel/template" "^7.3.3"
847
+ "@babel/types" "^7.3.3"
848
+ "@types/babel__core" "^7.0.0"
849
+ "@types/babel__traverse" "^7.0.6"
850
+
851
+babel-preset-current-node-syntax@^0.1.3:
852
+ version "0.1.4"
853
+ resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.4.tgz#826f1f8e7245ad534714ba001f84f7e906c3b615"
854
+ integrity sha512-5/INNCYhUGqw7VbVjT/hb3ucjgkVHKXY7lX3ZjlN4gm565VyFmJUrJ/h+h16ECVB38R/9SF6aACydpKMLZ/c9w==
855
+ dependencies:
856
+ "@babel/plugin-syntax-async-generators" "^7.8.4"
857
+ "@babel/plugin-syntax-bigint" "^7.8.3"
858
+ "@babel/plugin-syntax-class-properties" "^7.8.3"
859
+ "@babel/plugin-syntax-import-meta" "^7.8.3"
860
+ "@babel/plugin-syntax-json-strings" "^7.8.3"
861
+ "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3"
862
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
863
+ "@babel/plugin-syntax-numeric-separator" "^7.8.3"
864
+ "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
865
+ "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
866
+ "@babel/plugin-syntax-optional-chaining" "^7.8.3"
867
+
868
+babel-preset-jest@^26.5.0:
869
+ version "26.5.0"
870
+ resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.5.0.tgz#f1b166045cd21437d1188d29f7fba470d5bdb0e7"
871
+ integrity sha512-F2vTluljhqkiGSJGBg/jOruA8vIIIL11YrxRcO7nviNTMbbofPSHwnm8mgP7d/wS7wRSexRoI6X1A6T74d4LQA==
872
+ dependencies:
873
+ babel-plugin-jest-hoist "^26.5.0"
874
+ babel-preset-current-node-syntax "^0.1.3"
875
+
876
+balanced-match@^1.0.0:
877
+ version "1.0.0"
878
+ resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
879
+ integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
880
+
881
+base@^0.11.1:
882
+ version "0.11.2"
883
+ resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
884
+ integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==
885
+ dependencies:
886
+ cache-base "^1.0.1"
887
+ class-utils "^0.3.5"
888
+ component-emitter "^1.2.1"
889
+ define-property "^1.0.0"
890
+ isobject "^3.0.1"
891
+ mixin-deep "^1.2.0"
892
+ pascalcase "^0.1.1"
893
+
894
+bcrypt-pbkdf@^1.0.0:
895
+ version "1.0.2"
896
+ resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"
897
+ integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=
898
+ dependencies:
899
+ tweetnacl "^0.14.3"
900
+
901
+brace-expansion@^1.1.7:
902
+ version "1.1.11"
903
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
904
+ integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
905
+ dependencies:
906
+ balanced-match "^1.0.0"
907
+ concat-map "0.0.1"
908
+
909
+braces@^2.3.1:
910
+ version "2.3.2"
911
+ resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729"
912
+ integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==
913
+ dependencies:
914
+ arr-flatten "^1.1.0"
915
+ array-unique "^0.3.2"
916
+ extend-shallow "^2.0.1"
917
+ fill-range "^4.0.0"
918
+ isobject "^3.0.1"
919
+ repeat-element "^1.1.2"
920
+ snapdragon "^0.8.1"
921
+ snapdragon-node "^2.0.1"
922
+ split-string "^3.0.2"
923
+ to-regex "^3.0.1"
924
+
925
+braces@^3.0.1:
926
+ version "3.0.2"
927
+ resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
928
+ integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
929
+ dependencies:
930
+ fill-range "^7.0.1"
931
+
932
+browser-process-hrtime@^1.0.0:
933
+ version "1.0.0"
934
+ resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626"
935
+ integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==
936
+
937
+bser@2.1.1:
938
+ version "2.1.1"
939
+ resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05"
940
+ integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==
941
+ dependencies:
942
+ node-int64 "^0.4.0"
943
+
944
+buffer-from@^1.0.0:
945
+ version "1.1.1"
946
+ resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
947
+ integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
948
+
949
+cache-base@^1.0.1:
950
+ version "1.0.1"
951
+ resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
952
+ integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==
953
+ dependencies:
954
+ collection-visit "^1.0.0"
955
+ component-emitter "^1.2.1"
956
+ get-value "^2.0.6"
957
+ has-value "^1.0.0"
958
+ isobject "^3.0.1"
959
+ set-value "^2.0.0"
960
+ to-object-path "^0.3.0"
961
+ union-value "^1.0.0"
962
+ unset-value "^1.0.0"
963
+
964
+callsites@^3.0.0:
965
+ version "3.1.0"
966
+ resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
967
+ integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
968
+
969
+camelcase@^5.0.0, camelcase@^5.3.1:
970
+ version "5.3.1"
971
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
972
+ integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
973
+
974
+camelcase@^6.0.0:
975
+ version "6.1.0"
976
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.1.0.tgz#27dc176173725fb0adf8a48b647f4d7871944d78"
977
+ integrity sha512-WCMml9ivU60+8rEJgELlFp1gxFcEGxwYleE3bziHEDeqsqAWGHdimB7beBFGjLzVNgPGyDsfgXLQEYMpmIFnVQ==
978
+
979
+capture-exit@^2.0.0:
980
+ version "2.0.0"
981
+ resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4"
982
+ integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==
983
+ dependencies:
984
+ rsvp "^4.8.4"
985
+
986
+caseless@~0.12.0:
987
+ version "0.12.0"
988
+ resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
989
+ integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
990
+
991
+chalk@^2.0.0:
992
+ version "2.4.2"
993
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
994
+ integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
995
+ dependencies:
996
+ ansi-styles "^3.2.1"
997
+ escape-string-regexp "^1.0.5"
998
+ supports-color "^5.3.0"
999
+
1000
+chalk@^4.0.0:
1001
+ version "4.1.0"
1002
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a"
1003
+ integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==
1004
+ dependencies:
1005
+ ansi-styles "^4.1.0"
1006
+ supports-color "^7.1.0"
1007
+
1008
+char-regex@^1.0.2:
1009
+ version "1.0.2"
1010
+ resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf"
1011
+ integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==
1012
+
1013
+ci-info@^2.0.0:
1014
+ version "2.0.0"
1015
+ resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"
1016
+ integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==
1017
+
1018
+class-utils@^0.3.5:
1019
+ version "0.3.6"
1020
+ resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
1021
+ integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==
1022
+ dependencies:
1023
+ arr-union "^3.1.0"
1024
+ define-property "^0.2.5"
1025
+ isobject "^3.0.0"
1026
+ static-extend "^0.1.1"
1027
+
1028
+cliui@^6.0.0:
1029
+ version "6.0.0"
1030
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1"
1031
+ integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==
1032
+ dependencies:
1033
+ string-width "^4.2.0"
1034
+ strip-ansi "^6.0.0"
1035
+ wrap-ansi "^6.2.0"
1036
+
1037
+co@^4.6.0:
1038
+ version "4.6.0"
1039
+ resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
1040
+ integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=
1041
+
1042
+collect-v8-coverage@^1.0.0:
1043
+ version "1.0.1"
1044
+ resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59"
1045
+ integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==
1046
+
1047
+collection-visit@^1.0.0:
1048
+ version "1.0.0"
1049
+ resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0"
1050
+ integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=
1051
+ dependencies:
1052
+ map-visit "^1.0.0"
1053
+ object-visit "^1.0.0"
1054
+
1055
+color-convert@^1.9.0:
1056
+ version "1.9.3"
1057
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
1058
+ integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
1059
+ dependencies:
1060
+ color-name "1.1.3"
1061
+
1062
+color-convert@^2.0.1:
1063
+ version "2.0.1"
1064
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
1065
+ integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
1066
+ dependencies:
1067
+ color-name "~1.1.4"
1068
+
1069
+color-name@1.1.3:
1070
+ version "1.1.3"
1071
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
1072
+ integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
1073
+
1074
+color-name@~1.1.4:
1075
+ version "1.1.4"
1076
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
1077
+ integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
1078
+
1079
+combined-stream@^1.0.6, combined-stream@~1.0.6:
1080
+ version "1.0.8"
1081
+ resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
1082
+ integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
1083
+ dependencies:
1084
+ delayed-stream "~1.0.0"
1085
+
1086
+component-emitter@^1.2.1:
1087
+ version "1.3.0"
1088
+ resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
1089
+ integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==
1090
+
1091
+concat-map@0.0.1:
1092
+ version "0.0.1"
1093
+ resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
1094
+ integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
1095
+
1096
+convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0:
1097
+ version "1.7.0"
1098
+ resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442"
1099
+ integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==
1100
+ dependencies:
1101
+ safe-buffer "~5.1.1"
1102
+
1103
+copy-descriptor@^0.1.0:
1104
+ version "0.1.1"
1105
+ resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
1106
+ integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
1107
+
1108
+core-util-is@1.0.2:
1109
+ version "1.0.2"
1110
+ resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
1111
+ integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
1112
+
1113
+cross-spawn@^6.0.0:
1114
+ version "6.0.5"
1115
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
1116
+ integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
1117
+ dependencies:
1118
+ nice-try "^1.0.4"
1119
+ path-key "^2.0.1"
1120
+ semver "^5.5.0"
1121
+ shebang-command "^1.2.0"
1122
+ which "^1.2.9"
1123
+
1124
+cross-spawn@^7.0.0:
1125
+ version "7.0.3"
1126
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
1127
+ integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
1128
+ dependencies:
1129
+ path-key "^3.1.0"
1130
+ shebang-command "^2.0.0"
1131
+ which "^2.0.1"
1132
+
1133
+cssom@^0.4.4:
1134
+ version "0.4.4"
1135
+ resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10"
1136
+ integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==
1137
+
1138
+cssom@~0.3.6:
1139
+ version "0.3.8"
1140
+ resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a"
1141
+ integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==
1142
+
1143
+cssstyle@^2.2.0:
1144
+ version "2.3.0"
1145
+ resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852"
1146
+ integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==
1147
+ dependencies:
1148
+ cssom "~0.3.6"
1149
+
1150
+dashdash@^1.12.0:
1151
+ version "1.14.1"
1152
+ resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
1153
+ integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=
1154
+ dependencies:
1155
+ assert-plus "^1.0.0"
1156
+
1157
+data-urls@^2.0.0:
1158
+ version "2.0.0"
1159
+ resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b"
1160
+ integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==
1161
+ dependencies:
1162
+ abab "^2.0.3"
1163
+ whatwg-mimetype "^2.3.0"
1164
+ whatwg-url "^8.0.0"
1165
+
1166
+debug@^2.2.0, debug@^2.3.3:
1167
+ version "2.6.9"
1168
+ resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
1169
+ integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
1170
+ dependencies:
1171
+ ms "2.0.0"
1172
+
1173
+debug@^4.1.0, debug@^4.1.1:
1174
+ version "4.2.0"
1175
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz#7f150f93920e94c58f5574c2fd01a3110effe7f1"
1176
+ integrity sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==
1177
+ dependencies:
1178
+ ms "2.1.2"
1179
+
1180
+decamelize@^1.2.0:
1181
+ version "1.2.0"
1182
+ resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
1183
+ integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
1184
+
1185
+decimal.js@^10.2.0:
1186
+ version "10.2.1"
1187
+ resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.2.1.tgz#238ae7b0f0c793d3e3cea410108b35a2c01426a3"
1188
+ integrity sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw==
1189
+
1190
+decode-uri-component@^0.2.0:
1191
+ version "0.2.0"
1192
+ resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
1193
+ integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
1194
+
1195
+deep-is@~0.1.3:
1196
+ version "0.1.3"
1197
+ resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
1198
+ integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
1199
+
1200
+deepmerge@^4.2.2:
1201
+ version "4.2.2"
1202
+ resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"
1203
+ integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==
1204
+
1205
+define-properties@^1.1.3:
1206
+ version "1.1.3"
1207
+ resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
1208
+ integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
1209
+ dependencies:
1210
+ object-keys "^1.0.12"
1211
+
1212
+define-property@^0.2.5:
1213
+ version "0.2.5"
1214
+ resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
1215
+ integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=
1216
+ dependencies:
1217
+ is-descriptor "^0.1.0"
1218
+
1219
+define-property@^1.0.0:
1220
+ version "1.0.0"
1221
+ resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6"
1222
+ integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY=
1223
+ dependencies:
1224
+ is-descriptor "^1.0.0"
1225
+
1226
+define-property@^2.0.2:
1227
+ version "2.0.2"
1228
+ resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d"
1229
+ integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==
1230
+ dependencies:
1231
+ is-descriptor "^1.0.2"
1232
+ isobject "^3.0.1"
1233
+
1234
+delayed-stream@~1.0.0:
1235
+ version "1.0.0"
1236
+ resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
1237
+ integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
1238
+
1239
+detect-newline@^3.0.0:
1240
+ version "3.1.0"
1241
+ resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651"
1242
+ integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==
1243
+
1244
+diff-sequences@^26.5.0:
1245
+ version "26.5.0"
1246
+ resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.5.0.tgz#ef766cf09d43ed40406611f11c6d8d9dd8b2fefd"
1247
+ integrity sha512-ZXx86srb/iYy6jG71k++wBN9P9J05UNQ5hQHQd9MtMPvcqXPx/vKU69jfHV637D00Q2gSgPk2D+jSx3l1lDW/Q==
1248
+
1249
+domexception@^2.0.1:
1250
+ version "2.0.1"
1251
+ resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304"
1252
+ integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==
1253
+ dependencies:
1254
+ webidl-conversions "^5.0.0"
1255
+
1256
+ecc-jsbn@~0.1.1:
1257
+ version "0.1.2"
1258
+ resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
1259
+ integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=
1260
+ dependencies:
1261
+ jsbn "~0.1.0"
1262
+ safer-buffer "^2.1.0"
1263
+
1264
+emittery@^0.7.1:
1265
+ version "0.7.1"
1266
+ resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.1.tgz#c02375a927a40948c0345cc903072597f5270451"
1267
+ integrity sha512-d34LN4L6h18Bzz9xpoku2nPwKxCPlPMr3EEKTkoEBi+1/+b0lcRkRJ1UVyyZaKNeqGR3swcGl6s390DNO4YVgQ==
1268
+
1269
+emoji-regex@^8.0.0:
1270
+ version "8.0.0"
1271
+ resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
1272
+ integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
1273
+
1274
+end-of-stream@^1.1.0:
1275
+ version "1.4.4"
1276
+ resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
1277
+ integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
1278
+ dependencies:
1279
+ once "^1.4.0"
1280
+
1281
+error-ex@^1.3.1:
1282
+ version "1.3.2"
1283
+ resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
1284
+ integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
1285
+ dependencies:
1286
+ is-arrayish "^0.2.1"
1287
+
1288
+es-abstract@^1.17.5:
1289
+ version "1.17.7"
1290
+ resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.7.tgz#a4de61b2f66989fc7421676c1cb9787573ace54c"
1291
+ integrity sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==
1292
+ dependencies:
1293
+ es-to-primitive "^1.2.1"
1294
+ function-bind "^1.1.1"
1295
+ has "^1.0.3"
1296
+ has-symbols "^1.0.1"
1297
+ is-callable "^1.2.2"
1298
+ is-regex "^1.1.1"
1299
+ object-inspect "^1.8.0"
1300
+ object-keys "^1.1.1"
1301
+ object.assign "^4.1.1"
1302
+ string.prototype.trimend "^1.0.1"
1303
+ string.prototype.trimstart "^1.0.1"
1304
+
1305
+es-abstract@^1.18.0-next.0:
1306
+ version "1.18.0-next.1"
1307
+ resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.1.tgz#6e3a0a4bda717e5023ab3b8e90bec36108d22c68"
1308
+ integrity sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==
1309
+ dependencies:
1310
+ es-to-primitive "^1.2.1"
1311
+ function-bind "^1.1.1"
1312
+ has "^1.0.3"
1313
+ has-symbols "^1.0.1"
1314
+ is-callable "^1.2.2"
1315
+ is-negative-zero "^2.0.0"
1316
+ is-regex "^1.1.1"
1317
+ object-inspect "^1.8.0"
1318
+ object-keys "^1.1.1"
1319
+ object.assign "^4.1.1"
1320
+ string.prototype.trimend "^1.0.1"
1321
+ string.prototype.trimstart "^1.0.1"
1322
+
1323
+es-to-primitive@^1.2.1:
1324
+ version "1.2.1"
1325
+ resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"
1326
+ integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==
1327
+ dependencies:
1328
+ is-callable "^1.1.4"
1329
+ is-date-object "^1.0.1"
1330
+ is-symbol "^1.0.2"
1331
+
1332
+escape-string-regexp@^1.0.5:
1333
+ version "1.0.5"
1334
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
1335
+ integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
1336
+
1337
+escape-string-regexp@^2.0.0:
1338
+ version "2.0.0"
1339
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344"
1340
+ integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==
1341
+
1342
+escodegen@^1.14.1:
1343
+ version "1.14.3"
1344
+ resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503"
1345
+ integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==
1346
+ dependencies:
1347
+ esprima "^4.0.1"
1348
+ estraverse "^4.2.0"
1349
+ esutils "^2.0.2"
1350
+ optionator "^0.8.1"
1351
+ optionalDependencies:
1352
+ source-map "~0.6.1"
1353
+
1354
+esprima@^4.0.0, esprima@^4.0.1:
1355
+ version "4.0.1"
1356
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
1357
+ integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
1358
+
1359
+estraverse@^4.2.0:
1360
+ version "4.3.0"
1361
+ resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
1362
+ integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
1363
+
1364
+esutils@^2.0.2:
1365
+ version "2.0.3"
1366
+ resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
1367
+ integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
1368
+
1369
+exec-sh@^0.3.2:
1370
+ version "0.3.4"
1371
+ resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5"
1372
+ integrity sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==
1373
+
1374
+execa@^1.0.0:
1375
+ version "1.0.0"
1376
+ resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8"
1377
+ integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==
1378
+ dependencies:
1379
+ cross-spawn "^6.0.0"
1380
+ get-stream "^4.0.0"
1381
+ is-stream "^1.1.0"
1382
+ npm-run-path "^2.0.0"
1383
+ p-finally "^1.0.0"
1384
+ signal-exit "^3.0.0"
1385
+ strip-eof "^1.0.0"
1386
+
1387
+execa@^4.0.0:
1388
+ version "4.0.3"
1389
+ resolved "https://registry.yarnpkg.com/execa/-/execa-4.0.3.tgz#0a34dabbad6d66100bd6f2c576c8669403f317f2"
1390
+ integrity sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A==
1391
+ dependencies:
1392
+ cross-spawn "^7.0.0"
1393
+ get-stream "^5.0.0"
1394
+ human-signals "^1.1.1"
1395
+ is-stream "^2.0.0"
1396
+ merge-stream "^2.0.0"
1397
+ npm-run-path "^4.0.0"
1398
+ onetime "^5.1.0"
1399
+ signal-exit "^3.0.2"
1400
+ strip-final-newline "^2.0.0"
1401
+
1402
+exit@^0.1.2:
1403
+ version "0.1.2"
1404
+ resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
1405
+ integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=
1406
+
1407
+expand-brackets@^2.1.4:
1408
+ version "2.1.4"
1409
+ resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622"
1410
+ integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI=
1411
+ dependencies:
1412
+ debug "^2.3.3"
1413
+ define-property "^0.2.5"
1414
+ extend-shallow "^2.0.1"
1415
+ posix-character-classes "^0.1.0"
1416
+ regex-not "^1.0.0"
1417
+ snapdragon "^0.8.1"
1418
+ to-regex "^3.0.1"
1419
+
1420
+expect@^26.5.3:
1421
+ version "26.5.3"
1422
+ resolved "https://registry.yarnpkg.com/expect/-/expect-26.5.3.tgz#89d9795036f7358b0a9a5243238eb8086482d741"
1423
+ integrity sha512-kkpOhGRWGOr+TEFUnYAjfGvv35bfP+OlPtqPIJpOCR9DVtv8QV+p8zG0Edqafh80fsjeE+7RBcVUq1xApnYglw==
1424
+ dependencies:
1425
+ "@jest/types" "^26.5.2"
1426
+ ansi-styles "^4.0.0"
1427
+ jest-get-type "^26.3.0"
1428
+ jest-matcher-utils "^26.5.2"
1429
+ jest-message-util "^26.5.2"
1430
+ jest-regex-util "^26.0.0"
1431
+
1432
+extend-shallow@^2.0.1:
1433
+ version "2.0.1"
1434
+ resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
1435
+ integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=
1436
+ dependencies:
1437
+ is-extendable "^0.1.0"
1438
+
1439
+extend-shallow@^3.0.0, extend-shallow@^3.0.2:
1440
+ version "3.0.2"
1441
+ resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8"
1442
+ integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=
1443
+ dependencies:
1444
+ assign-symbols "^1.0.0"
1445
+ is-extendable "^1.0.1"
1446
+
1447
+extend@~3.0.2:
1448
+ version "3.0.2"
1449
+ resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
1450
+ integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
1451
+
1452
+extglob@^2.0.4:
1453
+ version "2.0.4"
1454
+ resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543"
1455
+ integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==
1456
+ dependencies:
1457
+ array-unique "^0.3.2"
1458
+ define-property "^1.0.0"
1459
+ expand-brackets "^2.1.4"
1460
+ extend-shallow "^2.0.1"
1461
+ fragment-cache "^0.2.1"
1462
+ regex-not "^1.0.0"
1463
+ snapdragon "^0.8.1"
1464
+ to-regex "^3.0.1"
1465
+
1466
+extsprintf@1.3.0:
1467
+ version "1.3.0"
1468
+ resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
1469
+ integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=
1470
+
1471
+extsprintf@^1.2.0:
1472
+ version "1.4.0"
1473
+ resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
1474
+ integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=
1475
+
1476
+fast-deep-equal@^3.1.1:
1477
+ version "3.1.3"
1478
+ resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
1479
+ integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
1480
+
1481
+fast-json-stable-stringify@^2.0.0:
1482
+ version "2.1.0"
1483
+ resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
1484
+ integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
1485
+
1486
+fast-levenshtein@~2.0.6:
1487
+ version "2.0.6"
1488
+ resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
1489
+ integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
1490
+
1491
+fb-watchman@^2.0.0:
1492
+ version "2.0.1"
1493
+ resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85"
1494
+ integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==
1495
+ dependencies:
1496
+ bser "2.1.1"
1497
+
1498
+fill-range@^4.0.0:
1499
+ version "4.0.0"
1500
+ resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
1501
+ integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=
1502
+ dependencies:
1503
+ extend-shallow "^2.0.1"
1504
+ is-number "^3.0.0"
1505
+ repeat-string "^1.6.1"
1506
+ to-regex-range "^2.1.0"
1507
+
1508
+fill-range@^7.0.1:
1509
+ version "7.0.1"
1510
+ resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
1511
+ integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
1512
+ dependencies:
1513
+ to-regex-range "^5.0.1"
1514
+
1515
+find-up@^4.0.0, find-up@^4.1.0:
1516
+ version "4.1.0"
1517
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
1518
+ integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
1519
+ dependencies:
1520
+ locate-path "^5.0.0"
1521
+ path-exists "^4.0.0"
1522
+
1523
+for-in@^1.0.2:
1524
+ version "1.0.2"
1525
+ resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
1526
+ integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
1527
+
1528
+forever-agent@~0.6.1:
1529
+ version "0.6.1"
1530
+ resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
1531
+ integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
1532
+
1533
+form-data@~2.3.2:
1534
+ version "2.3.3"
1535
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6"
1536
+ integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==
1537
+ dependencies:
1538
+ asynckit "^0.4.0"
1539
+ combined-stream "^1.0.6"
1540
+ mime-types "^2.1.12"
1541
+
1542
+fragment-cache@^0.2.1:
1543
+ version "0.2.1"
1544
+ resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
1545
+ integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=
1546
+ dependencies:
1547
+ map-cache "^0.2.2"
1548
+
1549
+fs.realpath@^1.0.0:
1550
+ version "1.0.0"
1551
+ resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
1552
+ integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
1553
+
1554
+fsevents@^2.1.2:
1555
+ version "2.1.3"
1556
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e"
1557
+ integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==
1558
+
1559
+function-bind@^1.1.1:
1560
+ version "1.1.1"
1561
+ resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
1562
+ integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
1563
+
1564
+gensync@^1.0.0-beta.1:
1565
+ version "1.0.0-beta.1"
1566
+ resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269"
1567
+ integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==
1568
+
1569
+get-caller-file@^2.0.1:
1570
+ version "2.0.5"
1571
+ resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
1572
+ integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
1573
+
1574
+get-package-type@^0.1.0:
1575
+ version "0.1.0"
1576
+ resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a"
1577
+ integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==
1578
+
1579
+get-stream@^4.0.0:
1580
+ version "4.1.0"
1581
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
1582
+ integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==
1583
+ dependencies:
1584
+ pump "^3.0.0"
1585
+
1586
+get-stream@^5.0.0:
1587
+ version "5.2.0"
1588
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"
1589
+ integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
1590
+ dependencies:
1591
+ pump "^3.0.0"
1592
+
1593
+get-value@^2.0.3, get-value@^2.0.6:
1594
+ version "2.0.6"
1595
+ resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
1596
+ integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=
1597
+
1598
+getpass@^0.1.1:
1599
+ version "0.1.7"
1600
+ resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
1601
+ integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=
1602
+ dependencies:
1603
+ assert-plus "^1.0.0"
1604
+
1605
+glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4:
1606
+ version "7.1.6"
1607
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
1608
+ integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
1609
+ dependencies:
1610
+ fs.realpath "^1.0.0"
1611
+ inflight "^1.0.4"
1612
+ inherits "2"
1613
+ minimatch "^3.0.4"
1614
+ once "^1.3.0"
1615
+ path-is-absolute "^1.0.0"
1616
+
1617
+globals@^11.1.0:
1618
+ version "11.12.0"
1619
+ resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
1620
+ integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
1621
+
1622
+graceful-fs@^4.2.4:
1623
+ version "4.2.4"
1624
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb"
1625
+ integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==
1626
+
1627
+growly@^1.3.0:
1628
+ version "1.3.0"
1629
+ resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
1630
+ integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=
1631
+
1632
+har-schema@^2.0.0:
1633
+ version "2.0.0"
1634
+ resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
1635
+ integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=
1636
+
1637
+har-validator@~5.1.3:
1638
+ version "5.1.5"
1639
+ resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd"
1640
+ integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==
1641
+ dependencies:
1642
+ ajv "^6.12.3"
1643
+ har-schema "^2.0.0"
1644
+
1645
+has-flag@^3.0.0:
1646
+ version "3.0.0"
1647
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
1648
+ integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
1649
+
1650
+has-flag@^4.0.0:
1651
+ version "4.0.0"
1652
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
1653
+ integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
1654
+
1655
+has-symbols@^1.0.1:
1656
+ version "1.0.1"
1657
+ resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8"
1658
+ integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==
1659
+
1660
+has-value@^0.3.1:
1661
+ version "0.3.1"
1662
+ resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
1663
+ integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=
1664
+ dependencies:
1665
+ get-value "^2.0.3"
1666
+ has-values "^0.1.4"
1667
+ isobject "^2.0.0"
1668
+
1669
+has-value@^1.0.0:
1670
+ version "1.0.0"
1671
+ resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177"
1672
+ integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=
1673
+ dependencies:
1674
+ get-value "^2.0.6"
1675
+ has-values "^1.0.0"
1676
+ isobject "^3.0.0"
1677
+
1678
+has-values@^0.1.4:
1679
+ version "0.1.4"
1680
+ resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771"
1681
+ integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E=
1682
+
1683
+has-values@^1.0.0:
1684
+ version "1.0.0"
1685
+ resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f"
1686
+ integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=
1687
+ dependencies:
1688
+ is-number "^3.0.0"
1689
+ kind-of "^4.0.0"
1690
+
1691
+has@^1.0.3:
1692
+ version "1.0.3"
1693
+ resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
1694
+ integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
1695
+ dependencies:
1696
+ function-bind "^1.1.1"
1697
+
1698
+hosted-git-info@^2.1.4:
1699
+ version "2.8.8"
1700
+ resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488"
1701
+ integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==
1702
+
1703
+html-encoding-sniffer@^2.0.1:
1704
+ version "2.0.1"
1705
+ resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3"
1706
+ integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==
1707
+ dependencies:
1708
+ whatwg-encoding "^1.0.5"
1709
+
1710
+html-escaper@^2.0.0:
1711
+ version "2.0.2"
1712
+ resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
1713
+ integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
1714
+
1715
+http-signature@~1.2.0:
1716
+ version "1.2.0"
1717
+ resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
1718
+ integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=
1719
+ dependencies:
1720
+ assert-plus "^1.0.0"
1721
+ jsprim "^1.2.2"
1722
+ sshpk "^1.7.0"
1723
+
1724
+human-signals@^1.1.1:
1725
+ version "1.1.1"
1726
+ resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3"
1727
+ integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==
1728
+
1729
+iconv-lite@0.4.24:
1730
+ version "0.4.24"
1731
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
1732
+ integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
1733
+ dependencies:
1734
+ safer-buffer ">= 2.1.2 < 3"
1735
+
1736
+import-local@^3.0.2:
1737
+ version "3.0.2"
1738
+ resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6"
1739
+ integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==
1740
+ dependencies:
1741
+ pkg-dir "^4.2.0"
1742
+ resolve-cwd "^3.0.0"
1743
+
1744
+imurmurhash@^0.1.4:
1745
+ version "0.1.4"
1746
+ resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
1747
+ integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
1748
+
1749
+inflight@^1.0.4:
1750
+ version "1.0.6"
1751
+ resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
1752
+ integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
1753
+ dependencies:
1754
+ once "^1.3.0"
1755
+ wrappy "1"
1756
+
1757
+inherits@2:
1758
+ version "2.0.4"
1759
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
1760
+ integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
1761
+
1762
+ip-regex@^2.1.0:
1763
+ version "2.1.0"
1764
+ resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9"
1765
+ integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=
1766
+
1767
+is-accessor-descriptor@^0.1.6:
1768
+ version "0.1.6"
1769
+ resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"
1770
+ integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=
1771
+ dependencies:
1772
+ kind-of "^3.0.2"
1773
+
1774
+is-accessor-descriptor@^1.0.0:
1775
+ version "1.0.0"
1776
+ resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656"
1777
+ integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==
1778
+ dependencies:
1779
+ kind-of "^6.0.0"
1780
+
1781
+is-arrayish@^0.2.1:
1782
+ version "0.2.1"
1783
+ resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
1784
+ integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
1785
+
1786
+is-buffer@^1.1.5:
1787
+ version "1.1.6"
1788
+ resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
1789
+ integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
1790
+
1791
+is-callable@^1.1.4, is-callable@^1.2.2:
1792
+ version "1.2.2"
1793
+ resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9"
1794
+ integrity sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==
1795
+
1796
+is-ci@^2.0.0:
1797
+ version "2.0.0"
1798
+ resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c"
1799
+ integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==
1800
+ dependencies:
1801
+ ci-info "^2.0.0"
1802
+
1803
+is-data-descriptor@^0.1.4:
1804
+ version "0.1.4"
1805
+ resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
1806
+ integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=
1807
+ dependencies:
1808
+ kind-of "^3.0.2"
1809
+
1810
+is-data-descriptor@^1.0.0:
1811
+ version "1.0.0"
1812
+ resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7"
1813
+ integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==
1814
+ dependencies:
1815
+ kind-of "^6.0.0"
1816
+
1817
+is-date-object@^1.0.1:
1818
+ version "1.0.2"
1819
+ resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e"
1820
+ integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==
1821
+
1822
+is-descriptor@^0.1.0:
1823
+ version "0.1.6"
1824
+ resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca"
1825
+ integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==
1826
+ dependencies:
1827
+ is-accessor-descriptor "^0.1.6"
1828
+ is-data-descriptor "^0.1.4"
1829
+ kind-of "^5.0.0"
1830
+
1831
+is-descriptor@^1.0.0, is-descriptor@^1.0.2:
1832
+ version "1.0.2"
1833
+ resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec"
1834
+ integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==
1835
+ dependencies:
1836
+ is-accessor-descriptor "^1.0.0"
1837
+ is-data-descriptor "^1.0.0"
1838
+ kind-of "^6.0.2"
1839
+
1840
+is-docker@^2.0.0:
1841
+ version "2.1.1"
1842
+ resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.1.1.tgz#4125a88e44e450d384e09047ede71adc2d144156"
1843
+ integrity sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==
1844
+
1845
+is-extendable@^0.1.0, is-extendable@^0.1.1:
1846
+ version "0.1.1"
1847
+ resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
1848
+ integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=
1849
+
1850
+is-extendable@^1.0.1:
1851
+ version "1.0.1"
1852
+ resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4"
1853
+ integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==
1854
+ dependencies:
1855
+ is-plain-object "^2.0.4"
1856
+
1857
+is-fullwidth-code-point@^3.0.0:
1858
+ version "3.0.0"
1859
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
1860
+ integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
1861
+
1862
+is-generator-fn@^2.0.0:
1863
+ version "2.1.0"
1864
+ resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118"
1865
+ integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==
1866
+
1867
+is-negative-zero@^2.0.0:
1868
+ version "2.0.0"
1869
+ resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.0.tgz#9553b121b0fac28869da9ed459e20c7543788461"
1870
+ integrity sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=
1871
+
1872
+is-number@^3.0.0:
1873
+ version "3.0.0"
1874
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
1875
+ integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=
1876
+ dependencies:
1877
+ kind-of "^3.0.2"
1878
+
1879
+is-number@^7.0.0:
1880
+ version "7.0.0"
1881
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
1882
+ integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
1883
+
1884
+is-plain-object@^2.0.3, is-plain-object@^2.0.4:
1885
+ version "2.0.4"
1886
+ resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
1887
+ integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
1888
+ dependencies:
1889
+ isobject "^3.0.1"
1890
+
1891
+is-potential-custom-element-name@^1.0.0:
1892
+ version "1.0.0"
1893
+ resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz#0c52e54bcca391bb2c494b21e8626d7336c6e397"
1894
+ integrity sha1-DFLlS8yjkbssSUsh6GJtczbG45c=
1895
+
1896
+is-regex@^1.1.1:
1897
+ version "1.1.1"
1898
+ resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9"
1899
+ integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==
1900
+ dependencies:
1901
+ has-symbols "^1.0.1"
1902
+
1903
+is-stream@^1.1.0:
1904
+ version "1.1.0"
1905
+ resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
1906
+ integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
1907
+
1908
+is-stream@^2.0.0:
1909
+ version "2.0.0"
1910
+ resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3"
1911
+ integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==
1912
+
1913
+is-symbol@^1.0.2:
1914
+ version "1.0.3"
1915
+ resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937"
1916
+ integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==
1917
+ dependencies:
1918
+ has-symbols "^1.0.1"
1919
+
1920
+is-typedarray@^1.0.0, is-typedarray@~1.0.0:
1921
+ version "1.0.0"
1922
+ resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
1923
+ integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
1924
+
1925
+is-windows@^1.0.2:
1926
+ version "1.0.2"
1927
+ resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
1928
+ integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==
1929
+
1930
+is-wsl@^2.2.0:
1931
+ version "2.2.0"
1932
+ resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271"
1933
+ integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==
1934
+ dependencies:
1935
+ is-docker "^2.0.0"
1936
+
1937
+isarray@1.0.0:
1938
+ version "1.0.0"
1939
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
1940
+ integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
1941
+
1942
+isexe@^2.0.0:
1943
+ version "2.0.0"
1944
+ resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
1945
+ integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
1946
+
1947
+isobject@^2.0.0:
1948
+ version "2.1.0"
1949
+ resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
1950
+ integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=
1951
+ dependencies:
1952
+ isarray "1.0.0"
1953
+
1954
+isobject@^3.0.0, isobject@^3.0.1:
1955
+ version "3.0.1"
1956
+ resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
1957
+ integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
1958
+
1959
+isstream@~0.1.2:
1960
+ version "0.1.2"
1961
+ resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
1962
+ integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
1963
+
1964
+istanbul-lib-coverage@^3.0.0:
1965
+ version "3.0.0"
1966
+ resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec"
1967
+ integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==
1968
+
1969
+istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.3:
1970
+ version "4.0.3"
1971
+ resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d"
1972
+ integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==
1973
+ dependencies:
1974
+ "@babel/core" "^7.7.5"
1975
+ "@istanbuljs/schema" "^0.1.2"
1976
+ istanbul-lib-coverage "^3.0.0"
1977
+ semver "^6.3.0"
1978
+
1979
+istanbul-lib-report@^3.0.0:
1980
+ version "3.0.0"
1981
+ resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6"
1982
+ integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==
1983
+ dependencies:
1984
+ istanbul-lib-coverage "^3.0.0"
1985
+ make-dir "^3.0.0"
1986
+ supports-color "^7.1.0"
1987
+
1988
+istanbul-lib-source-maps@^4.0.0:
1989
+ version "4.0.0"
1990
+ resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz#75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9"
1991
+ integrity sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==
1992
+ dependencies:
1993
+ debug "^4.1.1"
1994
+ istanbul-lib-coverage "^3.0.0"
1995
+ source-map "^0.6.1"
1996
+
1997
+istanbul-reports@^3.0.2:
1998
+ version "3.0.2"
1999
+ resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b"
2000
+ integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==
2001
+ dependencies:
2002
+ html-escaper "^2.0.0"
2003
+ istanbul-lib-report "^3.0.0"
2004
+
2005
+jest-changed-files@^26.5.2:
2006
+ version "26.5.2"
2007
+ resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.5.2.tgz#330232c6a5c09a7f040a5870e8f0a9c6abcdbed5"
2008
+ integrity sha512-qSmssmiIdvM5BWVtyK/nqVpN3spR5YyvkvPqz1x3BR1bwIxsWmU/MGwLoCrPNLbkG2ASAKfvmJpOduEApBPh2w==
2009
+ dependencies:
2010
+ "@jest/types" "^26.5.2"
2011
+ execa "^4.0.0"
2012
+ throat "^5.0.0"
2013
+
2014
+jest-cli@^26.5.3:
2015
+ version "26.5.3"
2016
+ resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.5.3.tgz#f936b98f247b76b7bc89c7af50af82c88e356a80"
2017
+ integrity sha512-HkbSvtugpSXBf2660v9FrNVUgxvPkssN8CRGj9gPM8PLhnaa6zziFiCEKQAkQS4uRzseww45o0TR+l6KeRYV9A==
2018
+ dependencies:
2019
+ "@jest/core" "^26.5.3"
2020
+ "@jest/test-result" "^26.5.2"
2021
+ "@jest/types" "^26.5.2"
2022
+ chalk "^4.0.0"
2023
+ exit "^0.1.2"
2024
+ graceful-fs "^4.2.4"
2025
+ import-local "^3.0.2"
2026
+ is-ci "^2.0.0"
2027
+ jest-config "^26.5.3"
2028
+ jest-util "^26.5.2"
2029
+ jest-validate "^26.5.3"
2030
+ prompts "^2.0.1"
2031
+ yargs "^15.4.1"
2032
+
2033
+jest-config@^26.5.3:
2034
+ version "26.5.3"
2035
+ resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.5.3.tgz#baf51c9be078c2c755c8f8a51ec0f06c762c1d3f"
2036
+ integrity sha512-NVhZiIuN0GQM6b6as4CI5FSCyXKxdrx5ACMCcv/7Pf+TeCajJhJc+6dwgdAVPyerUFB9pRBIz3bE7clSrRge/w==
2037
+ dependencies:
2038
+ "@babel/core" "^7.1.0"
2039
+ "@jest/test-sequencer" "^26.5.3"
2040
+ "@jest/types" "^26.5.2"
2041
+ babel-jest "^26.5.2"
2042
+ chalk "^4.0.0"
2043
+ deepmerge "^4.2.2"
2044
+ glob "^7.1.1"
2045
+ graceful-fs "^4.2.4"
2046
+ jest-environment-jsdom "^26.5.2"
2047
+ jest-environment-node "^26.5.2"
2048
+ jest-get-type "^26.3.0"
2049
+ jest-jasmine2 "^26.5.3"
2050
+ jest-regex-util "^26.0.0"
2051
+ jest-resolve "^26.5.2"
2052
+ jest-util "^26.5.2"
2053
+ jest-validate "^26.5.3"
2054
+ micromatch "^4.0.2"
2055
+ pretty-format "^26.5.2"
2056
+
2057
+jest-diff@^26.5.2:
2058
+ version "26.5.2"
2059
+ resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.5.2.tgz#8e26cb32dc598e8b8a1b9deff55316f8313c8053"
2060
+ integrity sha512-HCSWDUGwsov5oTlGzrRM+UPJI/Dpqi9jzeV0fdRNi3Ch5bnoXhnyJMmVg2juv9081zLIy3HGPI5mcuGgXM2xRA==
2061
+ dependencies:
2062
+ chalk "^4.0.0"
2063
+ diff-sequences "^26.5.0"
2064
+ jest-get-type "^26.3.0"
2065
+ pretty-format "^26.5.2"
2066
+
2067
+jest-docblock@^26.0.0:
2068
+ version "26.0.0"
2069
+ resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5"
2070
+ integrity sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==
2071
+ dependencies:
2072
+ detect-newline "^3.0.0"
2073
+
2074
+jest-each@^26.5.2:
2075
+ version "26.5.2"
2076
+ resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.5.2.tgz#35e68d6906a7f826d3ca5803cfe91d17a5a34c31"
2077
+ integrity sha512-w7D9FNe0m2D3yZ0Drj9CLkyF/mGhmBSULMQTypzAKR746xXnjUrK8GUJdlLTWUF6dd0ks3MtvGP7/xNFr9Aphg==
2078
+ dependencies:
2079
+ "@jest/types" "^26.5.2"
2080
+ chalk "^4.0.0"
2081
+ jest-get-type "^26.3.0"
2082
+ jest-util "^26.5.2"
2083
+ pretty-format "^26.5.2"
2084
+
2085
+jest-environment-jsdom@^26.5.2:
2086
+ version "26.5.2"
2087
+ resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.5.2.tgz#5feab05b828fd3e4b96bee5e0493464ddd2bb4bc"
2088
+ integrity sha512-fWZPx0bluJaTQ36+PmRpvUtUlUFlGGBNyGX1SN3dLUHHMcQ4WseNEzcGGKOw4U5towXgxI4qDoI3vwR18H0RTw==
2089
+ dependencies:
2090
+ "@jest/environment" "^26.5.2"
2091
+ "@jest/fake-timers" "^26.5.2"
2092
+ "@jest/types" "^26.5.2"
2093
+ "@types/node" "*"
2094
+ jest-mock "^26.5.2"
2095
+ jest-util "^26.5.2"
2096
+ jsdom "^16.4.0"
2097
+
2098
+jest-environment-node@^26.5.2:
2099
+ version "26.5.2"
2100
+ resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.5.2.tgz#275a0f01b5e47447056f1541a15ed4da14acca03"
2101
+ integrity sha512-YHjnDsf/GKFCYMGF1V+6HF7jhY1fcLfLNBDjhAOvFGvt6d8vXvNdJGVM7uTZ2VO/TuIyEFhPGaXMX5j3h7fsrA==
2102
+ dependencies:
2103
+ "@jest/environment" "^26.5.2"
2104
+ "@jest/fake-timers" "^26.5.2"
2105
+ "@jest/types" "^26.5.2"
2106
+ "@types/node" "*"
2107
+ jest-mock "^26.5.2"
2108
+ jest-util "^26.5.2"
2109
+
2110
+jest-get-type@^26.3.0:
2111
+ version "26.3.0"
2112
+ resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0"
2113
+ integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==
2114
+
2115
+jest-haste-map@^26.5.2:
2116
+ version "26.5.2"
2117
+ resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.5.2.tgz#a15008abfc502c18aa56e4919ed8c96304ceb23d"
2118
+ integrity sha512-lJIAVJN3gtO3k4xy+7i2Xjtwh8CfPcH08WYjZpe9xzveDaqGw9fVNCpkYu6M525wKFVkLmyi7ku+DxCAP1lyMA==
2119
+ dependencies:
2120
+ "@jest/types" "^26.5.2"
2121
+ "@types/graceful-fs" "^4.1.2"
2122
+ "@types/node" "*"
2123
+ anymatch "^3.0.3"
2124
+ fb-watchman "^2.0.0"
2125
+ graceful-fs "^4.2.4"
2126
+ jest-regex-util "^26.0.0"
2127
+ jest-serializer "^26.5.0"
2128
+ jest-util "^26.5.2"
2129
+ jest-worker "^26.5.0"
2130
+ micromatch "^4.0.2"
2131
+ sane "^4.0.3"
2132
+ walker "^1.0.7"
2133
+ optionalDependencies:
2134
+ fsevents "^2.1.2"
2135
+
2136
+jest-jasmine2@^26.5.3:
2137
+ version "26.5.3"
2138
+ resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.5.3.tgz#baad2114ce32d16aff25aeb877d18bb4e332dc4c"
2139
+ integrity sha512-nFlZOpnGlNc7y/+UkkeHnvbOM+rLz4wB1AimgI9QhtnqSZte0wYjbAm8hf7TCwXlXgDwZxAXo6z0a2Wzn9FoOg==
2140
+ dependencies:
2141
+ "@babel/traverse" "^7.1.0"
2142
+ "@jest/environment" "^26.5.2"
2143
+ "@jest/source-map" "^26.5.0"
2144
+ "@jest/test-result" "^26.5.2"
2145
+ "@jest/types" "^26.5.2"
2146
+ "@types/node" "*"
2147
+ chalk "^4.0.0"
2148
+ co "^4.6.0"
2149
+ expect "^26.5.3"
2150
+ is-generator-fn "^2.0.0"
2151
+ jest-each "^26.5.2"
2152
+ jest-matcher-utils "^26.5.2"
2153
+ jest-message-util "^26.5.2"
2154
+ jest-runtime "^26.5.3"
2155
+ jest-snapshot "^26.5.3"
2156
+ jest-util "^26.5.2"
2157
+ pretty-format "^26.5.2"
2158
+ throat "^5.0.0"
2159
+
2160
+jest-leak-detector@^26.5.2:
2161
+ version "26.5.2"
2162
+ resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.5.2.tgz#83fcf9a4a6ef157549552cb4f32ca1d6221eea69"
2163
+ integrity sha512-h7ia3dLzBFItmYERaLPEtEKxy3YlcbcRSjj0XRNJgBEyODuu+3DM2o62kvIFvs3PsaYoIIv+e+nLRI61Dj1CNw==
2164
+ dependencies:
2165
+ jest-get-type "^26.3.0"
2166
+ pretty-format "^26.5.2"
2167
+
2168
+jest-matcher-utils@^26.5.2:
2169
+ version "26.5.2"
2170
+ resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.5.2.tgz#6aa2c76ce8b9c33e66f8856ff3a52bab59e6c85a"
2171
+ integrity sha512-W9GO9KBIC4gIArsNqDUKsLnhivaqf8MSs6ujO/JDcPIQrmY+aasewweXVET8KdrJ6ADQaUne5UzysvF/RR7JYA==
2172
+ dependencies:
2173
+ chalk "^4.0.0"
2174
+ jest-diff "^26.5.2"
2175
+ jest-get-type "^26.3.0"
2176
+ pretty-format "^26.5.2"
2177
+
2178
+jest-message-util@^26.5.2:
2179
+ version "26.5.2"
2180
+ resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.5.2.tgz#6c4c4c46dcfbabb47cd1ba2f6351559729bc11bb"
2181
+ integrity sha512-Ocp9UYZ5Jl15C5PNsoDiGEk14A4NG0zZKknpWdZGoMzJuGAkVt10e97tnEVMYpk7LnQHZOfuK2j/izLBMcuCZw==
2182
+ dependencies:
2183
+ "@babel/code-frame" "^7.0.0"
2184
+ "@jest/types" "^26.5.2"
2185
+ "@types/stack-utils" "^2.0.0"
2186
+ chalk "^4.0.0"
2187
+ graceful-fs "^4.2.4"
2188
+ micromatch "^4.0.2"
2189
+ slash "^3.0.0"
2190
+ stack-utils "^2.0.2"
2191
+
2192
+jest-mock@^26.5.2:
2193
+ version "26.5.2"
2194
+ resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.5.2.tgz#c9302e8ef807f2bfc749ee52e65ad11166a1b6a1"
2195
+ integrity sha512-9SiU4b5PtO51v0MtJwVRqeGEroH66Bnwtq4ARdNP7jNXbpT7+ByeWNAk4NeT/uHfNSVDXEXgQo1XRuwEqS6Rdw==
2196
+ dependencies:
2197
+ "@jest/types" "^26.5.2"
2198
+ "@types/node" "*"
2199
+
2200
+jest-pnp-resolver@^1.2.2:
2201
+ version "1.2.2"
2202
+ resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c"
2203
+ integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==
2204
+
2205
+jest-regex-util@^26.0.0:
2206
+ version "26.0.0"
2207
+ resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28"
2208
+ integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==
2209
+
2210
+jest-resolve-dependencies@^26.5.3:
2211
+ version "26.5.3"
2212
+ resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.5.3.tgz#11483f91e534bdcd257ab21e8622799e59701aba"
2213
+ integrity sha512-+KMDeke/BFK+mIQ2IYSyBz010h7zQaVt4Xie6cLqUGChorx66vVeQVv4ErNoMwInnyYHi1Ud73tDS01UbXbfLQ==
2214
+ dependencies:
2215
+ "@jest/types" "^26.5.2"
2216
+ jest-regex-util "^26.0.0"
2217
+ jest-snapshot "^26.5.3"
2218
+
2219
+jest-resolve@^26.5.2:
2220
+ version "26.5.2"
2221
+ resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.5.2.tgz#0d719144f61944a428657b755a0e5c6af4fc8602"
2222
+ integrity sha512-XsPxojXGRA0CoDD7Vis59ucz2p3cQFU5C+19tz3tLEAlhYKkK77IL0cjYjikY9wXnOaBeEdm1rOgSJjbZWpcZg==
2223
+ dependencies:
2224
+ "@jest/types" "^26.5.2"
2225
+ chalk "^4.0.0"
2226
+ graceful-fs "^4.2.4"
2227
+ jest-pnp-resolver "^1.2.2"
2228
+ jest-util "^26.5.2"
2229
+ read-pkg-up "^7.0.1"
2230
+ resolve "^1.17.0"
2231
+ slash "^3.0.0"
2232
+
2233
+jest-runner@^26.5.3:
2234
+ version "26.5.3"
2235
+ resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.5.3.tgz#800787459ea59c68e7505952933e33981dc3db38"
2236
+ integrity sha512-qproP0Pq7IIule+263W57k2+8kWCszVJTC9TJWGUz0xJBr+gNiniGXlG8rotd0XxwonD5UiJloYoSO5vbUr5FQ==
2237
+ dependencies:
2238
+ "@jest/console" "^26.5.2"
2239
+ "@jest/environment" "^26.5.2"
2240
+ "@jest/test-result" "^26.5.2"
2241
+ "@jest/types" "^26.5.2"
2242
+ "@types/node" "*"
2243
+ chalk "^4.0.0"
2244
+ emittery "^0.7.1"
2245
+ exit "^0.1.2"
2246
+ graceful-fs "^4.2.4"
2247
+ jest-config "^26.5.3"
2248
+ jest-docblock "^26.0.0"
2249
+ jest-haste-map "^26.5.2"
2250
+ jest-leak-detector "^26.5.2"
2251
+ jest-message-util "^26.5.2"
2252
+ jest-resolve "^26.5.2"
2253
+ jest-runtime "^26.5.3"
2254
+ jest-util "^26.5.2"
2255
+ jest-worker "^26.5.0"
2256
+ source-map-support "^0.5.6"
2257
+ throat "^5.0.0"
2258
+
2259
+jest-runtime@^26.5.3:
2260
+ version "26.5.3"
2261
+ resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.5.3.tgz#5882ae91fd88304310f069549e6bf82f3f198bea"
2262
+ integrity sha512-IDjalmn2s/Tc4GvUwhPHZ0iaXCdMRq5p6taW9P8RpU+FpG01O3+H8z+p3rDCQ9mbyyyviDgxy/LHPLzrIOKBkQ==
2263
+ dependencies:
2264
+ "@jest/console" "^26.5.2"
2265
+ "@jest/environment" "^26.5.2"
2266
+ "@jest/fake-timers" "^26.5.2"
2267
+ "@jest/globals" "^26.5.3"
2268
+ "@jest/source-map" "^26.5.0"
2269
+ "@jest/test-result" "^26.5.2"
2270
+ "@jest/transform" "^26.5.2"
2271
+ "@jest/types" "^26.5.2"
2272
+ "@types/yargs" "^15.0.0"
2273
+ chalk "^4.0.0"
2274
+ collect-v8-coverage "^1.0.0"
2275
+ exit "^0.1.2"
2276
+ glob "^7.1.3"
2277
+ graceful-fs "^4.2.4"
2278
+ jest-config "^26.5.3"
2279
+ jest-haste-map "^26.5.2"
2280
+ jest-message-util "^26.5.2"
2281
+ jest-mock "^26.5.2"
2282
+ jest-regex-util "^26.0.0"
2283
+ jest-resolve "^26.5.2"
2284
+ jest-snapshot "^26.5.3"
2285
+ jest-util "^26.5.2"
2286
+ jest-validate "^26.5.3"
2287
+ slash "^3.0.0"
2288
+ strip-bom "^4.0.0"
2289
+ yargs "^15.4.1"
2290
+
2291
+jest-serializer@^26.5.0:
2292
+ version "26.5.0"
2293
+ resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.5.0.tgz#f5425cc4c5f6b4b355f854b5f0f23ec6b962bc13"
2294
+ integrity sha512-+h3Gf5CDRlSLdgTv7y0vPIAoLgX/SI7T4v6hy+TEXMgYbv+ztzbg5PSN6mUXAT/hXYHvZRWm+MaObVfqkhCGxA==
2295
+ dependencies:
2296
+ "@types/node" "*"
2297
+ graceful-fs "^4.2.4"
2298
+
2299
+jest-snapshot@^26.5.3:
2300
+ version "26.5.3"
2301
+ resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.5.3.tgz#f6b4b4b845f85d4b0dadd7cf119c55d0c1688601"
2302
+ integrity sha512-ZgAk0Wm0JJ75WS4lGaeRfa0zIgpL0KD595+XmtwlIEMe8j4FaYHyZhP1LNOO+8fXq7HJ3hll54+sFV9X4+CGVw==
2303
+ dependencies:
2304
+ "@babel/types" "^7.0.0"
2305
+ "@jest/types" "^26.5.2"
2306
+ "@types/babel__traverse" "^7.0.4"
2307
+ "@types/prettier" "^2.0.0"
2308
+ chalk "^4.0.0"
2309
+ expect "^26.5.3"
2310
+ graceful-fs "^4.2.4"
2311
+ jest-diff "^26.5.2"
2312
+ jest-get-type "^26.3.0"
2313
+ jest-haste-map "^26.5.2"
2314
+ jest-matcher-utils "^26.5.2"
2315
+ jest-message-util "^26.5.2"
2316
+ jest-resolve "^26.5.2"
2317
+ natural-compare "^1.4.0"
2318
+ pretty-format "^26.5.2"
2319
+ semver "^7.3.2"
2320
+
2321
+jest-util@^26.5.2:
2322
+ version "26.5.2"
2323
+ resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.5.2.tgz#8403f75677902cc52a1b2140f568e91f8ed4f4d7"
2324
+ integrity sha512-WTL675bK+GSSAYgS8z9FWdCT2nccO1yTIplNLPlP0OD8tUk/H5IrWKMMRudIQQ0qp8bb4k+1Qa8CxGKq9qnYdg==
2325
+ dependencies:
2326
+ "@jest/types" "^26.5.2"
2327
+ "@types/node" "*"
2328
+ chalk "^4.0.0"
2329
+ graceful-fs "^4.2.4"
2330
+ is-ci "^2.0.0"
2331
+ micromatch "^4.0.2"
2332
+
2333
+jest-validate@^26.5.3:
2334
+ version "26.5.3"
2335
+ resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.5.3.tgz#eefd5a5c87059550548c5ad8d6589746c66929e3"
2336
+ integrity sha512-LX07qKeAtY+lsU0o3IvfDdN5KH9OulEGOMN1sFo6PnEf5/qjS1LZIwNk9blcBeW94pQUI9dLN9FlDYDWI5tyaA==
2337
+ dependencies:
2338
+ "@jest/types" "^26.5.2"
2339
+ camelcase "^6.0.0"
2340
+ chalk "^4.0.0"
2341
+ jest-get-type "^26.3.0"
2342
+ leven "^3.1.0"
2343
+ pretty-format "^26.5.2"
2344
+
2345
+jest-watcher@^26.5.2:
2346
+ version "26.5.2"
2347
+ resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.5.2.tgz#2957f4461007e0769d74b537379ecf6b7c696916"
2348
+ integrity sha512-i3m1NtWzF+FXfJ3ljLBB/WQEp4uaNhX7QcQUWMokcifFTUQBDFyUMEwk0JkJ1kopHbx7Een3KX0Q7+9koGM/Pw==
2349
+ dependencies:
2350
+ "@jest/test-result" "^26.5.2"
2351
+ "@jest/types" "^26.5.2"
2352
+ "@types/node" "*"
2353
+ ansi-escapes "^4.2.1"
2354
+ chalk "^4.0.0"
2355
+ jest-util "^26.5.2"
2356
+ string-length "^4.0.1"
2357
+
2358
+jest-worker@^26.5.0:
2359
+ version "26.5.0"
2360
+ resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.5.0.tgz#87deee86dbbc5f98d9919e0dadf2c40e3152fa30"
2361
+ integrity sha512-kTw66Dn4ZX7WpjZ7T/SUDgRhapFRKWmisVAF0Rv4Fu8SLFD7eLbqpLvbxVqYhSgaWa7I+bW7pHnbyfNsH6stug==
2362
+ dependencies:
2363
+ "@types/node" "*"
2364
+ merge-stream "^2.0.0"
2365
+ supports-color "^7.0.0"
2366
+
2367
+jest@^26.5.3:
2368
+ version "26.5.3"
2369
+ resolved "https://registry.yarnpkg.com/jest/-/jest-26.5.3.tgz#5e7a322d16f558dc565ca97639e85993ef5affe6"
2370
+ integrity sha512-uJi3FuVSLmkZrWvaDyaVTZGLL8WcfynbRnFXyAHuEtYiSZ+ijDDIMOw1ytmftK+y/+OdAtsG9QrtbF7WIBmOyA==
2371
+ dependencies:
2372
+ "@jest/core" "^26.5.3"
2373
+ import-local "^3.0.2"
2374
+ jest-cli "^26.5.3"
2375
+
2376
+js-tokens@^4.0.0:
2377
+ version "4.0.0"
2378
+ resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
2379
+ integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
2380
+
2381
+js-yaml@^3.13.1:
2382
+ version "3.14.0"
2383
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482"
2384
+ integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==
2385
+ dependencies:
2386
+ argparse "^1.0.7"
2387
+ esprima "^4.0.0"
2388
+
2389
+jsbn@~0.1.0:
2390
+ version "0.1.1"
2391
+ resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
2392
+ integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM=
2393
+
2394
+jsdom@^16.4.0:
2395
+ version "16.4.0"
2396
+ resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.4.0.tgz#36005bde2d136f73eee1a830c6d45e55408edddb"
2397
+ integrity sha512-lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w==
2398
+ dependencies:
2399
+ abab "^2.0.3"
2400
+ acorn "^7.1.1"
2401
+ acorn-globals "^6.0.0"
2402
+ cssom "^0.4.4"
2403
+ cssstyle "^2.2.0"
2404
+ data-urls "^2.0.0"
2405
+ decimal.js "^10.2.0"
2406
+ domexception "^2.0.1"
2407
+ escodegen "^1.14.1"
2408
+ html-encoding-sniffer "^2.0.1"
2409
+ is-potential-custom-element-name "^1.0.0"
2410
+ nwsapi "^2.2.0"
2411
+ parse5 "5.1.1"
2412
+ request "^2.88.2"
2413
+ request-promise-native "^1.0.8"
2414
+ saxes "^5.0.0"
2415
+ symbol-tree "^3.2.4"
2416
+ tough-cookie "^3.0.1"
2417
+ w3c-hr-time "^1.0.2"
2418
+ w3c-xmlserializer "^2.0.0"
2419
+ webidl-conversions "^6.1.0"
2420
+ whatwg-encoding "^1.0.5"
2421
+ whatwg-mimetype "^2.3.0"
2422
+ whatwg-url "^8.0.0"
2423
+ ws "^7.2.3"
2424
+ xml-name-validator "^3.0.0"
2425
+
2426
+jsesc@^2.5.1:
2427
+ version "2.5.2"
2428
+ resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
2429
+ integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
2430
+
2431
+json-parse-even-better-errors@^2.3.0:
2432
+ version "2.3.1"
2433
+ resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
2434
+ integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
2435
+
2436
+json-schema-traverse@^0.4.1:
2437
+ version "0.4.1"
2438
+ resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
2439
+ integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
2440
+
2441
+json-schema@0.2.3:
2442
+ version "0.2.3"
2443
+ resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
2444
+ integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=
2445
+
2446
+json-stringify-safe@~5.0.1:
2447
+ version "5.0.1"
2448
+ resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
2449
+ integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
2450
+
2451
+json5@^2.1.2:
2452
+ version "2.1.3"
2453
+ resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43"
2454
+ integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==
2455
+ dependencies:
2456
+ minimist "^1.2.5"
2457
+
2458
+jsprim@^1.2.2:
2459
+ version "1.4.1"
2460
+ resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
2461
+ integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=
2462
+ dependencies:
2463
+ assert-plus "1.0.0"
2464
+ extsprintf "1.3.0"
2465
+ json-schema "0.2.3"
2466
+ verror "1.10.0"
2467
+
2468
+kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
2469
+ version "3.2.2"
2470
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
2471
+ integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
2472
+ dependencies:
2473
+ is-buffer "^1.1.5"
2474
+
2475
+kind-of@^4.0.0:
2476
+ version "4.0.0"
2477
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
2478
+ integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc=
2479
+ dependencies:
2480
+ is-buffer "^1.1.5"
2481
+
2482
+kind-of@^5.0.0:
2483
+ version "5.1.0"
2484
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
2485
+ integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
2486
+
2487
+kind-of@^6.0.0, kind-of@^6.0.2:
2488
+ version "6.0.3"
2489
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
2490
+ integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
2491
+
2492
+kleur@^3.0.3:
2493
+ version "3.0.3"
2494
+ resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e"
2495
+ integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==
2496
+
2497
+leven@^3.1.0:
2498
+ version "3.1.0"
2499
+ resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2"
2500
+ integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==
2501
+
2502
+levn@~0.3.0:
2503
+ version "0.3.0"
2504
+ resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
2505
+ integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=
2506
+ dependencies:
2507
+ prelude-ls "~1.1.2"
2508
+ type-check "~0.3.2"
2509
+
2510
+lines-and-columns@^1.1.6:
2511
+ version "1.1.6"
2512
+ resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"
2513
+ integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=
2514
+
2515
+locate-path@^5.0.0:
2516
+ version "5.0.0"
2517
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
2518
+ integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
2519
+ dependencies:
2520
+ p-locate "^4.1.0"
2521
+
2522
+lodash.sortby@^4.7.0:
2523
+ version "4.7.0"
2524
+ resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
2525
+ integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=
2526
+
2527
+lodash@^4.17.19:
2528
+ version "4.17.20"
2529
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
2530
+ integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==
2531
+
2532
+make-dir@^3.0.0:
2533
+ version "3.1.0"
2534
+ resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
2535
+ integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
2536
+ dependencies:
2537
+ semver "^6.0.0"
2538
+
2539
+makeerror@1.0.x:
2540
+ version "1.0.11"
2541
+ resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c"
2542
+ integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=
2543
+ dependencies:
2544
+ tmpl "1.0.x"
2545
+
2546
+map-cache@^0.2.2:
2547
+ version "0.2.2"
2548
+ resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
2549
+ integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=
2550
+
2551
+map-visit@^1.0.0:
2552
+ version "1.0.0"
2553
+ resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"
2554
+ integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=
2555
+ dependencies:
2556
+ object-visit "^1.0.0"
2557
+
2558
+merge-stream@^2.0.0:
2559
+ version "2.0.0"
2560
+ resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
2561
+ integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
2562
+
2563
+micromatch@^3.1.4:
2564
+ version "3.1.10"
2565
+ resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
2566
+ integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==
2567
+ dependencies:
2568
+ arr-diff "^4.0.0"
2569
+ array-unique "^0.3.2"
2570
+ braces "^2.3.1"
2571
+ define-property "^2.0.2"
2572
+ extend-shallow "^3.0.2"
2573
+ extglob "^2.0.4"
2574
+ fragment-cache "^0.2.1"
2575
+ kind-of "^6.0.2"
2576
+ nanomatch "^1.2.9"
2577
+ object.pick "^1.3.0"
2578
+ regex-not "^1.0.0"
2579
+ snapdragon "^0.8.1"
2580
+ to-regex "^3.0.2"
2581
+
2582
+micromatch@^4.0.2:
2583
+ version "4.0.2"
2584
+ resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259"
2585
+ integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==
2586
+ dependencies:
2587
+ braces "^3.0.1"
2588
+ picomatch "^2.0.5"
2589
+
2590
+mime-db@1.44.0:
2591
+ version "1.44.0"
2592
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92"
2593
+ integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==
2594
+
2595
+mime-types@^2.1.12, mime-types@~2.1.19:
2596
+ version "2.1.27"
2597
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f"
2598
+ integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==
2599
+ dependencies:
2600
+ mime-db "1.44.0"
2601
+
2602
+mimic-fn@^2.1.0:
2603
+ version "2.1.0"
2604
+ resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
2605
+ integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
2606
+
2607
+minimatch@^3.0.4:
2608
+ version "3.0.4"
2609
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
2610
+ integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
2611
+ dependencies:
2612
+ brace-expansion "^1.1.7"
2613
+
2614
+minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5:
2615
+ version "1.2.5"
2616
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
2617
+ integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
2618
+
2619
+mixin-deep@^1.2.0:
2620
+ version "1.3.2"
2621
+ resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566"
2622
+ integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==
2623
+ dependencies:
2624
+ for-in "^1.0.2"
2625
+ is-extendable "^1.0.1"
2626
+
2627
+ms@2.0.0:
2628
+ version "2.0.0"
2629
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
2630
+ integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
2631
+
2632
+ms@2.1.2:
2633
+ version "2.1.2"
2634
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
2635
+ integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
2636
+
2637
+nanomatch@^1.2.9:
2638
+ version "1.2.13"
2639
+ resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
2640
+ integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==
2641
+ dependencies:
2642
+ arr-diff "^4.0.0"
2643
+ array-unique "^0.3.2"
2644
+ define-property "^2.0.2"
2645
+ extend-shallow "^3.0.2"
2646
+ fragment-cache "^0.2.1"
2647
+ is-windows "^1.0.2"
2648
+ kind-of "^6.0.2"
2649
+ object.pick "^1.3.0"
2650
+ regex-not "^1.0.0"
2651
+ snapdragon "^0.8.1"
2652
+ to-regex "^3.0.1"
2653
+
2654
+natural-compare@^1.4.0:
2655
+ version "1.4.0"
2656
+ resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
2657
+ integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
2658
+
2659
+nice-try@^1.0.4:
2660
+ version "1.0.5"
2661
+ resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
2662
+ integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
2663
+
2664
+node-int64@^0.4.0:
2665
+ version "0.4.0"
2666
+ resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
2667
+ integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=
2668
+
2669
+node-modules-regexp@^1.0.0:
2670
+ version "1.0.0"
2671
+ resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40"
2672
+ integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=
2673
+
2674
+node-notifier@^8.0.0:
2675
+ version "8.0.0"
2676
+ resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.0.tgz#a7eee2d51da6d0f7ff5094bc7108c911240c1620"
2677
+ integrity sha512-46z7DUmcjoYdaWyXouuFNNfUo6eFa94t23c53c+lG/9Cvauk4a98rAUp9672X5dxGdQmLpPzTxzu8f/OeEPaFA==
2678
+ dependencies:
2679
+ growly "^1.3.0"
2680
+ is-wsl "^2.2.0"
2681
+ semver "^7.3.2"
2682
+ shellwords "^0.1.1"
2683
+ uuid "^8.3.0"
2684
+ which "^2.0.2"
2685
+
2686
+normalize-package-data@^2.5.0:
2687
+ version "2.5.0"
2688
+ resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
2689
+ integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==
2690
+ dependencies:
2691
+ hosted-git-info "^2.1.4"
2692
+ resolve "^1.10.0"
2693
+ semver "2 || 3 || 4 || 5"
2694
+ validate-npm-package-license "^3.0.1"
2695
+
2696
+normalize-path@^2.1.1:
2697
+ version "2.1.1"
2698
+ resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
2699
+ integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=
2700
+ dependencies:
2701
+ remove-trailing-separator "^1.0.1"
2702
+
2703
+normalize-path@^3.0.0:
2704
+ version "3.0.0"
2705
+ resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
2706
+ integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
2707
+
2708
+npm-run-path@^2.0.0:
2709
+ version "2.0.2"
2710
+ resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
2711
+ integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=
2712
+ dependencies:
2713
+ path-key "^2.0.0"
2714
+
2715
+npm-run-path@^4.0.0:
2716
+ version "4.0.1"
2717
+ resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
2718
+ integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
2719
+ dependencies:
2720
+ path-key "^3.0.0"
2721
+
2722
+nwsapi@^2.2.0:
2723
+ version "2.2.0"
2724
+ resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7"
2725
+ integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==
2726
+
2727
+oauth-sign@~0.9.0:
2728
+ version "0.9.0"
2729
+ resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
2730
+ integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
2731
+
2732
+object-copy@^0.1.0:
2733
+ version "0.1.0"
2734
+ resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c"
2735
+ integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw=
2736
+ dependencies:
2737
+ copy-descriptor "^0.1.0"
2738
+ define-property "^0.2.5"
2739
+ kind-of "^3.0.3"
2740
+
2741
+object-inspect@^1.8.0:
2742
+ version "1.8.0"
2743
+ resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0"
2744
+ integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==
2745
+
2746
+object-keys@^1.0.12, object-keys@^1.1.1:
2747
+ version "1.1.1"
2748
+ resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
2749
+ integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
2750
+
2751
+object-visit@^1.0.0:
2752
+ version "1.0.1"
2753
+ resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb"
2754
+ integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=
2755
+ dependencies:
2756
+ isobject "^3.0.0"
2757
+
2758
+object.assign@^4.1.0, object.assign@^4.1.1:
2759
+ version "4.1.1"
2760
+ resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.1.tgz#303867a666cdd41936ecdedfb1f8f3e32a478cdd"
2761
+ integrity sha512-VT/cxmx5yaoHSOTSyrCygIDFco+RsibY2NM0a4RdEeY/4KgqezwFtK1yr3U67xYhqJSlASm2pKhLVzPj2lr4bA==
2762
+ dependencies:
2763
+ define-properties "^1.1.3"
2764
+ es-abstract "^1.18.0-next.0"
2765
+ has-symbols "^1.0.1"
2766
+ object-keys "^1.1.1"
2767
+
2768
+object.pick@^1.3.0:
2769
+ version "1.3.0"
2770
+ resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
2771
+ integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=
2772
+ dependencies:
2773
+ isobject "^3.0.1"
2774
+
2775
+once@^1.3.0, once@^1.3.1, once@^1.4.0:
2776
+ version "1.4.0"
2777
+ resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
2778
+ integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
2779
+ dependencies:
2780
+ wrappy "1"
2781
+
2782
+onetime@^5.1.0:
2783
+ version "5.1.2"
2784
+ resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
2785
+ integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
2786
+ dependencies:
2787
+ mimic-fn "^2.1.0"
2788
+
2789
+optionator@^0.8.1:
2790
+ version "0.8.3"
2791
+ resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495"
2792
+ integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==
2793
+ dependencies:
2794
+ deep-is "~0.1.3"
2795
+ fast-levenshtein "~2.0.6"
2796
+ levn "~0.3.0"
2797
+ prelude-ls "~1.1.2"
2798
+ type-check "~0.3.2"
2799
+ word-wrap "~1.2.3"
2800
+
2801
+p-each-series@^2.1.0:
2802
+ version "2.1.0"
2803
+ resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.1.0.tgz#961c8dd3f195ea96c747e636b262b800a6b1af48"
2804
+ integrity sha512-ZuRs1miPT4HrjFa+9fRfOFXxGJfORgelKV9f9nNOWw2gl6gVsRaVDOQP0+MI0G0wGKns1Yacsu0GjOFbTK0JFQ==
2805
+
2806
+p-finally@^1.0.0:
2807
+ version "1.0.0"
2808
+ resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
2809
+ integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=
2810
+
2811
+p-limit@^2.2.0:
2812
+ version "2.3.0"
2813
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
2814
+ integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
2815
+ dependencies:
2816
+ p-try "^2.0.0"
2817
+
2818
+p-locate@^4.1.0:
2819
+ version "4.1.0"
2820
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
2821
+ integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
2822
+ dependencies:
2823
+ p-limit "^2.2.0"
2824
+
2825
+p-try@^2.0.0:
2826
+ version "2.2.0"
2827
+ resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
2828
+ integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
2829
+
2830
+parse-json@^5.0.0:
2831
+ version "5.1.0"
2832
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.1.0.tgz#f96088cdf24a8faa9aea9a009f2d9d942c999646"
2833
+ integrity sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==
2834
+ dependencies:
2835
+ "@babel/code-frame" "^7.0.0"
2836
+ error-ex "^1.3.1"
2837
+ json-parse-even-better-errors "^2.3.0"
2838
+ lines-and-columns "^1.1.6"
2839
+
2840
+parse5@5.1.1:
2841
+ version "5.1.1"
2842
+ resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178"
2843
+ integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==
2844
+
2845
+pascalcase@^0.1.1:
2846
+ version "0.1.1"
2847
+ resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
2848
+ integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=
2849
+
2850
+path-exists@^4.0.0:
2851
+ version "4.0.0"
2852
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
2853
+ integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
2854
+
2855
+path-is-absolute@^1.0.0:
2856
+ version "1.0.1"
2857
+ resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
2858
+ integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
2859
+
2860
+path-key@^2.0.0, path-key@^2.0.1:
2861
+ version "2.0.1"
2862
+ resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
2863
+ integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
2864
+
2865
+path-key@^3.0.0, path-key@^3.1.0:
2866
+ version "3.1.1"
2867
+ resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
2868
+ integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
2869
+
2870
+path-parse@^1.0.6:
2871
+ version "1.0.6"
2872
+ resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
2873
+ integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
2874
+
2875
+performance-now@^2.1.0:
2876
+ version "2.1.0"
2877
+ resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
2878
+ integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
2879
+
2880
+picomatch@^2.0.4, picomatch@^2.0.5:
2881
+ version "2.2.2"
2882
+ resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
2883
+ integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==
2884
+
2885
+pirates@^4.0.1:
2886
+ version "4.0.1"
2887
+ resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87"
2888
+ integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==
2889
+ dependencies:
2890
+ node-modules-regexp "^1.0.0"
2891
+
2892
+pkg-dir@^4.2.0:
2893
+ version "4.2.0"
2894
+ resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
2895
+ integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
2896
+ dependencies:
2897
+ find-up "^4.0.0"
2898
+
2899
+posix-character-classes@^0.1.0:
2900
+ version "0.1.1"
2901
+ resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
2902
+ integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
2903
+
2904
+prelude-ls@~1.1.2:
2905
+ version "1.1.2"
2906
+ resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
2907
+ integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=
2908
+
2909
+pretty-format@^26.5.2:
2910
+ version "26.5.2"
2911
+ resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.5.2.tgz#5d896acfdaa09210683d34b6dc0e6e21423cd3e1"
2912
+ integrity sha512-VizyV669eqESlkOikKJI8Ryxl/kPpbdLwNdPs2GrbQs18MpySB5S0Yo0N7zkg2xTRiFq4CFw8ct5Vg4a0xP0og==
2913
+ dependencies:
2914
+ "@jest/types" "^26.5.2"
2915
+ ansi-regex "^5.0.0"
2916
+ ansi-styles "^4.0.0"
2917
+ react-is "^16.12.0"
2918
+
2919
+prompts@^2.0.1:
2920
+ version "2.3.2"
2921
+ resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.3.2.tgz#480572d89ecf39566d2bd3fe2c9fccb7c4c0b068"
2922
+ integrity sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA==
2923
+ dependencies:
2924
+ kleur "^3.0.3"
2925
+ sisteransi "^1.0.4"
2926
+
2927
+psl@^1.1.28:
2928
+ version "1.8.0"
2929
+ resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24"
2930
+ integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==
2931
+
2932
+pump@^3.0.0:
2933
+ version "3.0.0"
2934
+ resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
2935
+ integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
2936
+ dependencies:
2937
+ end-of-stream "^1.1.0"
2938
+ once "^1.3.1"
2939
+
2940
+punycode@^2.1.0, punycode@^2.1.1:
2941
+ version "2.1.1"
2942
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
2943
+ integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
2944
+
2945
+qs@~6.5.2:
2946
+ version "6.5.2"
2947
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
2948
+ integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
2949
+
2950
+react-is@^16.12.0:
2951
+ version "16.13.1"
2952
+ resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
2953
+ integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
2954
+
2955
+read-pkg-up@^7.0.1:
2956
+ version "7.0.1"
2957
+ resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507"
2958
+ integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==
2959
+ dependencies:
2960
+ find-up "^4.1.0"
2961
+ read-pkg "^5.2.0"
2962
+ type-fest "^0.8.1"
2963
+
2964
+read-pkg@^5.2.0:
2965
+ version "5.2.0"
2966
+ resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc"
2967
+ integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==
2968
+ dependencies:
2969
+ "@types/normalize-package-data" "^2.4.0"
2970
+ normalize-package-data "^2.5.0"
2971
+ parse-json "^5.0.0"
2972
+ type-fest "^0.6.0"
2973
+
2974
+regex-not@^1.0.0, regex-not@^1.0.2:
2975
+ version "1.0.2"
2976
+ resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c"
2977
+ integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==
2978
+ dependencies:
2979
+ extend-shallow "^3.0.2"
2980
+ safe-regex "^1.1.0"
2981
+
2982
+remove-trailing-separator@^1.0.1:
2983
+ version "1.1.0"
2984
+ resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
2985
+ integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8=
2986
+
2987
+repeat-element@^1.1.2:
2988
+ version "1.1.3"
2989
+ resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce"
2990
+ integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==
2991
+
2992
+repeat-string@^1.6.1:
2993
+ version "1.6.1"
2994
+ resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
2995
+ integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
2996
+
2997
+request-promise-core@1.1.4:
2998
+ version "1.1.4"
2999
+ resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f"
3000
+ integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==
3001
+ dependencies:
3002
+ lodash "^4.17.19"
3003
+
3004
+request-promise-native@^1.0.8:
3005
+ version "1.0.9"
3006
+ resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28"
3007
+ integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==
3008
+ dependencies:
3009
+ request-promise-core "1.1.4"
3010
+ stealthy-require "^1.1.1"
3011
+ tough-cookie "^2.3.3"
3012
+
3013
+request@^2.88.2:
3014
+ version "2.88.2"
3015
+ resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
3016
+ integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==
3017
+ dependencies:
3018
+ aws-sign2 "~0.7.0"
3019
+ aws4 "^1.8.0"
3020
+ caseless "~0.12.0"
3021
+ combined-stream "~1.0.6"
3022
+ extend "~3.0.2"
3023
+ forever-agent "~0.6.1"
3024
+ form-data "~2.3.2"
3025
+ har-validator "~5.1.3"
3026
+ http-signature "~1.2.0"
3027
+ is-typedarray "~1.0.0"
3028
+ isstream "~0.1.2"
3029
+ json-stringify-safe "~5.0.1"
3030
+ mime-types "~2.1.19"
3031
+ oauth-sign "~0.9.0"
3032
+ performance-now "^2.1.0"
3033
+ qs "~6.5.2"
3034
+ safe-buffer "^5.1.2"
3035
+ tough-cookie "~2.5.0"
3036
+ tunnel-agent "^0.6.0"
3037
+ uuid "^3.3.2"
3038
+
3039
+require-directory@^2.1.1:
3040
+ version "2.1.1"
3041
+ resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
3042
+ integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
3043
+
3044
+require-main-filename@^2.0.0:
3045
+ version "2.0.0"
3046
+ resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
3047
+ integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==
3048
+
3049
+resolve-cwd@^3.0.0:
3050
+ version "3.0.0"
3051
+ resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d"
3052
+ integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==
3053
+ dependencies:
3054
+ resolve-from "^5.0.0"
3055
+
3056
+resolve-from@^5.0.0:
3057
+ version "5.0.0"
3058
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
3059
+ integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
3060
+
3061
+resolve-url@^0.2.1:
3062
+ version "0.2.1"
3063
+ resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
3064
+ integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
3065
+
3066
+resolve@^1.10.0, resolve@^1.17.0, resolve@^1.3.2:
3067
+ version "1.17.0"
3068
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444"
3069
+ integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==
3070
+ dependencies:
3071
+ path-parse "^1.0.6"
3072
+
3073
+ret@~0.1.10:
3074
+ version "0.1.15"
3075
+ resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
3076
+ integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
3077
+
3078
+rimraf@^3.0.0:
3079
+ version "3.0.2"
3080
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
3081
+ integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
3082
+ dependencies:
3083
+ glob "^7.1.3"
3084
+
3085
+rsvp@^4.8.4:
3086
+ version "4.8.5"
3087
+ resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734"
3088
+ integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==
3089
+
3090
+safe-buffer@^5.0.1, safe-buffer@^5.1.2:
3091
+ version "5.2.1"
3092
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
3093
+ integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
3094
+
3095
+safe-buffer@~5.1.1:
3096
+ version "5.1.2"
3097
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
3098
+ integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
3099
+
3100
+safe-regex@^1.1.0:
3101
+ version "1.1.0"
3102
+ resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
3103
+ integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4=
3104
+ dependencies:
3105
+ ret "~0.1.10"
3106
+
3107
+"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
3108
+ version "2.1.2"
3109
+ resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
3110
+ integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
3111
+
3112
+sane@^4.0.3:
3113
+ version "4.1.0"
3114
+ resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded"
3115
+ integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==
3116
+ dependencies:
3117
+ "@cnakazawa/watch" "^1.0.3"
3118
+ anymatch "^2.0.0"
3119
+ capture-exit "^2.0.0"
3120
+ exec-sh "^0.3.2"
3121
+ execa "^1.0.0"
3122
+ fb-watchman "^2.0.0"
3123
+ micromatch "^3.1.4"
3124
+ minimist "^1.1.1"
3125
+ walker "~1.0.5"
3126
+
3127
+saxes@^5.0.0:
3128
+ version "5.0.1"
3129
+ resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d"
3130
+ integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==
3131
+ dependencies:
3132
+ xmlchars "^2.2.0"
3133
+
3134
+"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0:
3135
+ version "5.7.1"
3136
+ resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
3137
+ integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
3138
+
3139
+semver@^6.0.0, semver@^6.3.0:
3140
+ version "6.3.0"
3141
+ resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
3142
+ integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
3143
+
3144
+semver@^7.3.2:
3145
+ version "7.3.2"
3146
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938"
3147
+ integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==
3148
+
3149
+set-blocking@^2.0.0:
3150
+ version "2.0.0"
3151
+ resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
3152
+ integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
3153
+
3154
+set-value@^2.0.0, set-value@^2.0.1:
3155
+ version "2.0.1"
3156
+ resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b"
3157
+ integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==
3158
+ dependencies:
3159
+ extend-shallow "^2.0.1"
3160
+ is-extendable "^0.1.1"
3161
+ is-plain-object "^2.0.3"
3162
+ split-string "^3.0.1"
3163
+
3164
+shebang-command@^1.2.0:
3165
+ version "1.2.0"
3166
+ resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
3167
+ integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=
3168
+ dependencies:
3169
+ shebang-regex "^1.0.0"
3170
+
3171
+shebang-command@^2.0.0:
3172
+ version "2.0.0"
3173
+ resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
3174
+ integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
3175
+ dependencies:
3176
+ shebang-regex "^3.0.0"
3177
+
3178
+shebang-regex@^1.0.0:
3179
+ version "1.0.0"
3180
+ resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
3181
+ integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
3182
+
3183
+shebang-regex@^3.0.0:
3184
+ version "3.0.0"
3185
+ resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
3186
+ integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
3187
+
3188
+shellwords@^0.1.1:
3189
+ version "0.1.1"
3190
+ resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b"
3191
+ integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==
3192
+
3193
+signal-exit@^3.0.0, signal-exit@^3.0.2:
3194
+ version "3.0.3"
3195
+ resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
3196
+ integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
3197
+
3198
+sisteransi@^1.0.4:
3199
+ version "1.0.5"
3200
+ resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
3201
+ integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==
3202
+
3203
+slash@^3.0.0:
3204
+ version "3.0.0"
3205
+ resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
3206
+ integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
3207
+
3208
+snapdragon-node@^2.0.1:
3209
+ version "2.1.1"
3210
+ resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
3211
+ integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==
3212
+ dependencies:
3213
+ define-property "^1.0.0"
3214
+ isobject "^3.0.0"
3215
+ snapdragon-util "^3.0.1"
3216
+
3217
+snapdragon-util@^3.0.1:
3218
+ version "3.0.1"
3219
+ resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2"
3220
+ integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==
3221
+ dependencies:
3222
+ kind-of "^3.2.0"
3223
+
3224
+snapdragon@^0.8.1:
3225
+ version "0.8.2"
3226
+ resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d"
3227
+ integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==
3228
+ dependencies:
3229
+ base "^0.11.1"
3230
+ debug "^2.2.0"
3231
+ define-property "^0.2.5"
3232
+ extend-shallow "^2.0.1"
3233
+ map-cache "^0.2.2"
3234
+ source-map "^0.5.6"
3235
+ source-map-resolve "^0.5.0"
3236
+ use "^3.1.0"
3237
+
3238
+source-map-resolve@^0.5.0:
3239
+ version "0.5.3"
3240
+ resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a"
3241
+ integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==
3242
+ dependencies:
3243
+ atob "^2.1.2"
3244
+ decode-uri-component "^0.2.0"
3245
+ resolve-url "^0.2.1"
3246
+ source-map-url "^0.4.0"
3247
+ urix "^0.1.0"
3248
+
3249
+source-map-support@^0.5.6:
3250
+ version "0.5.19"
3251
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
3252
+ integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
3253
+ dependencies:
3254
+ buffer-from "^1.0.0"
3255
+ source-map "^0.6.0"
3256
+
3257
+source-map-url@^0.4.0:
3258
+ version "0.4.0"
3259
+ resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3"
3260
+ integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=
3261
+
3262
+source-map@^0.5.0, source-map@^0.5.6:
3263
+ version "0.5.7"
3264
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
3265
+ integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
3266
+
3267
+source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1:
3268
+ version "0.6.1"
3269
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
3270
+ integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
3271
+
3272
+source-map@^0.7.3:
3273
+ version "0.7.3"
3274
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
3275
+ integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
3276
+
3277
+spdx-correct@^3.0.0:
3278
+ version "3.1.1"
3279
+ resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9"
3280
+ integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==
3281
+ dependencies:
3282
+ spdx-expression-parse "^3.0.0"
3283
+ spdx-license-ids "^3.0.0"
3284
+
3285
+spdx-exceptions@^2.1.0:
3286
+ version "2.3.0"
3287
+ resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d"
3288
+ integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==
3289
+
3290
+spdx-expression-parse@^3.0.0:
3291
+ version "3.0.1"
3292
+ resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679"
3293
+ integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==
3294
+ dependencies:
3295
+ spdx-exceptions "^2.1.0"
3296
+ spdx-license-ids "^3.0.0"
3297
+
3298
+spdx-license-ids@^3.0.0:
3299
+ version "3.0.6"
3300
+ resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz#c80757383c28abf7296744998cbc106ae8b854ce"
3301
+ integrity sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==
3302
+
3303
+split-string@^3.0.1, split-string@^3.0.2:
3304
+ version "3.1.0"
3305
+ resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
3306
+ integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==
3307
+ dependencies:
3308
+ extend-shallow "^3.0.0"
3309
+
3310
+sprintf-js@~1.0.2:
3311
+ version "1.0.3"
3312
+ resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
3313
+ integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
3314
+
3315
+sshpk@^1.7.0:
3316
+ version "1.16.1"
3317
+ resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877"
3318
+ integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==
3319
+ dependencies:
3320
+ asn1 "~0.2.3"
3321
+ assert-plus "^1.0.0"
3322
+ bcrypt-pbkdf "^1.0.0"
3323
+ dashdash "^1.12.0"
3324
+ ecc-jsbn "~0.1.1"
3325
+ getpass "^0.1.1"
3326
+ jsbn "~0.1.0"
3327
+ safer-buffer "^2.0.2"
3328
+ tweetnacl "~0.14.0"
3329
+
3330
+stack-utils@^2.0.2:
3331
+ version "2.0.2"
3332
+ resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.2.tgz#5cf48b4557becb4638d0bc4f21d23f5d19586593"
3333
+ integrity sha512-0H7QK2ECz3fyZMzQ8rH0j2ykpfbnd20BFtfg/SqVC2+sCTtcw0aDTGB7dk+de4U4uUeuz6nOtJcrkFFLG1B0Rg==
3334
+ dependencies:
3335
+ escape-string-regexp "^2.0.0"
3336
+
3337
+static-extend@^0.1.1:
3338
+ version "0.1.2"
3339
+ resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6"
3340
+ integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=
3341
+ dependencies:
3342
+ define-property "^0.2.5"
3343
+ object-copy "^0.1.0"
3344
+
3345
+stealthy-require@^1.1.1:
3346
+ version "1.1.1"
3347
+ resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b"
3348
+ integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=
3349
+
3350
+string-length@^4.0.1:
3351
+ version "4.0.1"
3352
+ resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.1.tgz#4a973bf31ef77c4edbceadd6af2611996985f8a1"
3353
+ integrity sha512-PKyXUd0LK0ePjSOnWn34V2uD6acUWev9uy0Ft05k0E8xRW+SKcA0F7eMr7h5xlzfn+4O3N+55rduYyet3Jk+jw==
3354
+ dependencies:
3355
+ char-regex "^1.0.2"
3356
+ strip-ansi "^6.0.0"
3357
+
3358
+string-width@^4.1.0, string-width@^4.2.0:
3359
+ version "4.2.0"
3360
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5"
3361
+ integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==
3362
+ dependencies:
3363
+ emoji-regex "^8.0.0"
3364
+ is-fullwidth-code-point "^3.0.0"
3365
+ strip-ansi "^6.0.0"
3366
+
3367
+string.prototype.trimend@^1.0.1:
3368
+ version "1.0.1"
3369
+ resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913"
3370
+ integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==
3371
+ dependencies:
3372
+ define-properties "^1.1.3"
3373
+ es-abstract "^1.17.5"
3374
+
3375
+string.prototype.trimstart@^1.0.1:
3376
+ version "1.0.1"
3377
+ resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54"
3378
+ integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==
3379
+ dependencies:
3380
+ define-properties "^1.1.3"
3381
+ es-abstract "^1.17.5"
3382
+
3383
+strip-ansi@^6.0.0:
3384
+ version "6.0.0"
3385
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532"
3386
+ integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==
3387
+ dependencies:
3388
+ ansi-regex "^5.0.0"
3389
+
3390
+strip-bom@^4.0.0:
3391
+ version "4.0.0"
3392
+ resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878"
3393
+ integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==
3394
+
3395
+strip-eof@^1.0.0:
3396
+ version "1.0.0"
3397
+ resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
3398
+ integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=
3399
+
3400
+strip-final-newline@^2.0.0:
3401
+ version "2.0.0"
3402
+ resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
3403
+ integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
3404
+
3405
+supports-color@^5.3.0:
3406
+ version "5.5.0"
3407
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
3408
+ integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
3409
+ dependencies:
3410
+ has-flag "^3.0.0"
3411
+
3412
+supports-color@^7.0.0, supports-color@^7.1.0:
3413
+ version "7.2.0"
3414
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
3415
+ integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
3416
+ dependencies:
3417
+ has-flag "^4.0.0"
3418
+
3419
+supports-hyperlinks@^2.0.0:
3420
+ version "2.1.0"
3421
+ resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz#f663df252af5f37c5d49bbd7eeefa9e0b9e59e47"
3422
+ integrity sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==
3423
+ dependencies:
3424
+ has-flag "^4.0.0"
3425
+ supports-color "^7.0.0"
3426
+
3427
+symbol-tree@^3.2.4:
3428
+ version "3.2.4"
3429
+ resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"
3430
+ integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==
3431
+
3432
+terminal-link@^2.0.0:
3433
+ version "2.1.1"
3434
+ resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994"
3435
+ integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==
3436
+ dependencies:
3437
+ ansi-escapes "^4.2.1"
3438
+ supports-hyperlinks "^2.0.0"
3439
+
3440
+test-exclude@^6.0.0:
3441
+ version "6.0.0"
3442
+ resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e"
3443
+ integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==
3444
+ dependencies:
3445
+ "@istanbuljs/schema" "^0.1.2"
3446
+ glob "^7.1.4"
3447
+ minimatch "^3.0.4"
3448
+
3449
+throat@^5.0.0:
3450
+ version "5.0.0"
3451
+ resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b"
3452
+ integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==
3453
+
3454
+tmpl@1.0.x:
3455
+ version "1.0.4"
3456
+ resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1"
3457
+ integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=
3458
+
3459
+to-fast-properties@^2.0.0:
3460
+ version "2.0.0"
3461
+ resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
3462
+ integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
3463
+
3464
+to-object-path@^0.3.0:
3465
+ version "0.3.0"
3466
+ resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af"
3467
+ integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=
3468
+ dependencies:
3469
+ kind-of "^3.0.2"
3470
+
3471
+to-regex-range@^2.1.0:
3472
+ version "2.1.1"
3473
+ resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38"
3474
+ integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=
3475
+ dependencies:
3476
+ is-number "^3.0.0"
3477
+ repeat-string "^1.6.1"
3478
+
3479
+to-regex-range@^5.0.1:
3480
+ version "5.0.1"
3481
+ resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
3482
+ integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
3483
+ dependencies:
3484
+ is-number "^7.0.0"
3485
+
3486
+to-regex@^3.0.1, to-regex@^3.0.2:
3487
+ version "3.0.2"
3488
+ resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce"
3489
+ integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==
3490
+ dependencies:
3491
+ define-property "^2.0.2"
3492
+ extend-shallow "^3.0.2"
3493
+ regex-not "^1.0.2"
3494
+ safe-regex "^1.1.0"
3495
+
3496
+tough-cookie@^2.3.3, tough-cookie@~2.5.0:
3497
+ version "2.5.0"
3498
+ resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"
3499
+ integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==
3500
+ dependencies:
3501
+ psl "^1.1.28"
3502
+ punycode "^2.1.1"
3503
+
3504
+tough-cookie@^3.0.1:
3505
+ version "3.0.1"
3506
+ resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2"
3507
+ integrity sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==
3508
+ dependencies:
3509
+ ip-regex "^2.1.0"
3510
+ psl "^1.1.28"
3511
+ punycode "^2.1.1"
3512
+
3513
+tr46@^2.0.2:
3514
+ version "2.0.2"
3515
+ resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.0.2.tgz#03273586def1595ae08fedb38d7733cee91d2479"
3516
+ integrity sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==
3517
+ dependencies:
3518
+ punycode "^2.1.1"
3519
+
3520
+tunnel-agent@^0.6.0:
3521
+ version "0.6.0"
3522
+ resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
3523
+ integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=
3524
+ dependencies:
3525
+ safe-buffer "^5.0.1"
3526
+
3527
+tweetnacl@^0.14.3, tweetnacl@~0.14.0:
3528
+ version "0.14.5"
3529
+ resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
3530
+ integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
3531
+
3532
+type-check@~0.3.2:
3533
+ version "0.3.2"
3534
+ resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
3535
+ integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=
3536
+ dependencies:
3537
+ prelude-ls "~1.1.2"
3538
+
3539
+type-detect@4.0.8:
3540
+ version "4.0.8"
3541
+ resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
3542
+ integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
3543
+
3544
+type-fest@^0.11.0:
3545
+ version "0.11.0"
3546
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1"
3547
+ integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==
3548
+
3549
+type-fest@^0.6.0:
3550
+ version "0.6.0"
3551
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b"
3552
+ integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==
3553
+
3554
+type-fest@^0.8.1:
3555
+ version "0.8.1"
3556
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
3557
+ integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
3558
+
3559
+typedarray-to-buffer@^3.1.5:
3560
+ version "3.1.5"
3561
+ resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080"
3562
+ integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==
3563
+ dependencies:
3564
+ is-typedarray "^1.0.0"
3565
+
3566
+union-value@^1.0.0:
3567
+ version "1.0.1"
3568
+ resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847"
3569
+ integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==
3570
+ dependencies:
3571
+ arr-union "^3.1.0"
3572
+ get-value "^2.0.6"
3573
+ is-extendable "^0.1.1"
3574
+ set-value "^2.0.1"
3575
+
3576
+unset-value@^1.0.0:
3577
+ version "1.0.0"
3578
+ resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
3579
+ integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=
3580
+ dependencies:
3581
+ has-value "^0.3.1"
3582
+ isobject "^3.0.0"
3583
+
3584
+uri-js@^4.2.2:
3585
+ version "4.4.0"
3586
+ resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602"
3587
+ integrity sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==
3588
+ dependencies:
3589
+ punycode "^2.1.0"
3590
+
3591
+urix@^0.1.0:
3592
+ version "0.1.0"
3593
+ resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
3594
+ integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=
3595
+
3596
+use@^3.1.0:
3597
+ version "3.1.1"
3598
+ resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
3599
+ integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
3600
+
3601
+uuid@^3.3.2:
3602
+ version "3.4.0"
3603
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
3604
+ integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
3605
+
3606
+uuid@^8.3.0:
3607
+ version "8.3.1"
3608
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.1.tgz#2ba2e6ca000da60fce5a196954ab241131e05a31"
3609
+ integrity sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg==
3610
+
3611
+v8-to-istanbul@^6.0.1:
3612
+ version "6.0.1"
3613
+ resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-6.0.1.tgz#7ef0e32faa10f841fe4c1b0f8de96ed067c0be1e"
3614
+ integrity sha512-PzM1WlqquhBvsV+Gco6WSFeg1AGdD53ccMRkFeyHRE/KRZaVacPOmQYP3EeVgDBtKD2BJ8kgynBQ5OtKiHCH+w==
3615
+ dependencies:
3616
+ "@types/istanbul-lib-coverage" "^2.0.1"
3617
+ convert-source-map "^1.6.0"
3618
+ source-map "^0.7.3"
3619
+
3620
+validate-npm-package-license@^3.0.1:
3621
+ version "3.0.4"
3622
+ resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
3623
+ integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==
3624
+ dependencies:
3625
+ spdx-correct "^3.0.0"
3626
+ spdx-expression-parse "^3.0.0"
3627
+
3628
+verror@1.10.0:
3629
+ version "1.10.0"
3630
+ resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
3631
+ integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=
3632
+ dependencies:
3633
+ assert-plus "^1.0.0"
3634
+ core-util-is "1.0.2"
3635
+ extsprintf "^1.2.0"
3636
+
3637
+w3c-hr-time@^1.0.2:
3638
+ version "1.0.2"
3639
+ resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd"
3640
+ integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==
3641
+ dependencies:
3642
+ browser-process-hrtime "^1.0.0"
3643
+
3644
+w3c-xmlserializer@^2.0.0:
3645
+ version "2.0.0"
3646
+ resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a"
3647
+ integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==
3648
+ dependencies:
3649
+ xml-name-validator "^3.0.0"
3650
+
3651
+walker@^1.0.7, walker@~1.0.5:
3652
+ version "1.0.7"
3653
+ resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb"
3654
+ integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=
3655
+ dependencies:
3656
+ makeerror "1.0.x"
3657
+
3658
+webidl-conversions@^5.0.0:
3659
+ version "5.0.0"
3660
+ resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff"
3661
+ integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==
3662
+
3663
+webidl-conversions@^6.1.0:
3664
+ version "6.1.0"
3665
+ resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514"
3666
+ integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==
3667
+
3668
+whatwg-encoding@^1.0.5:
3669
+ version "1.0.5"
3670
+ resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0"
3671
+ integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==
3672
+ dependencies:
3673
+ iconv-lite "0.4.24"
3674
+
3675
+whatwg-mimetype@^2.3.0:
3676
+ version "2.3.0"
3677
+ resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf"
3678
+ integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==
3679
+
3680
+whatwg-url@^8.0.0:
3681
+ version "8.4.0"
3682
+ resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.4.0.tgz#50fb9615b05469591d2b2bd6dfaed2942ed72837"
3683
+ integrity sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw==
3684
+ dependencies:
3685
+ lodash.sortby "^4.7.0"
3686
+ tr46 "^2.0.2"
3687
+ webidl-conversions "^6.1.0"
3688
+
3689
+which-module@^2.0.0:
3690
+ version "2.0.0"
3691
+ resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
3692
+ integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
3693
+
3694
+which@^1.2.9:
3695
+ version "1.3.1"
3696
+ resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
3697
+ integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
3698
+ dependencies:
3699
+ isexe "^2.0.0"
3700
+
3701
+which@^2.0.1, which@^2.0.2:
3702
+ version "2.0.2"
3703
+ resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
3704
+ integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
3705
+ dependencies:
3706
+ isexe "^2.0.0"
3707
+
3708
+word-wrap@~1.2.3:
3709
+ version "1.2.3"
3710
+ resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
3711
+ integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
3712
+
3713
+wrap-ansi@^6.2.0:
3714
+ version "6.2.0"
3715
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"
3716
+ integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==
3717
+ dependencies:
3718
+ ansi-styles "^4.0.0"
3719
+ string-width "^4.1.0"
3720
+ strip-ansi "^6.0.0"
3721
+
3722
+wrappy@1:
3723
+ version "1.0.2"
3724
+ resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
3725
+ integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
3726
+
3727
+write-file-atomic@^3.0.0:
3728
+ version "3.0.3"
3729
+ resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8"
3730
+ integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==
3731
+ dependencies:
3732
+ imurmurhash "^0.1.4"
3733
+ is-typedarray "^1.0.0"
3734
+ signal-exit "^3.0.2"
3735
+ typedarray-to-buffer "^3.1.5"
3736
+
3737
+ws@^7.2.3:
3738
+ version "7.3.1"
3739
+ resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.1.tgz#d0547bf67f7ce4f12a72dfe31262c68d7dc551c8"
3740
+ integrity sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==
3741
+
3742
+xml-name-validator@^3.0.0:
3743
+ version "3.0.0"
3744
+ resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a"
3745
+ integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==
3746
+
3747
+xmlchars@^2.2.0:
3748
+ version "2.2.0"
3749
+ resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb"
3750
+ integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==
3751
+
3752
+y18n@^4.0.0:
3753
+ version "4.0.0"
3754
+ resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b"
3755
+ integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==
3756
+
3757
+yargs-parser@^18.1.2:
3758
+ version "18.1.3"
3759
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0"
3760
+ integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==
3761
+ dependencies:
3762
+ camelcase "^5.0.0"
3763
+ decamelize "^1.2.0"
3764
+
3765
+yargs@^15.4.1:
3766
+ version "15.4.1"
3767
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8"
3768
+ integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==
3769
+ dependencies:
3770
+ cliui "^6.0.0"
3771
+ decamelize "^1.2.0"
3772
+ find-up "^4.1.0"
3773
+ get-caller-file "^2.0.1"
3774
+ require-directory "^2.1.1"
3775
+ require-main-filename "^2.0.0"
3776
+ set-blocking "^2.0.0"
3777
+ string-width "^4.2.0"
3778
+ which-module "^2.0.0"
3779
+ y18n "^4.0.0"
3780
+ yargs-parser "^18.1.2"
scripts/prettier/index.js
+1
-1
@@ -25,7 +25,7 @@ let didWarn = false;
25
let didError = false;
26
27
const files = glob
28
- .sync('**/*.js', {ignore: '**/node_modules/**'})
28
+ .sync('**/*.js', {ignore: ['**/node_modules/**', '**/cjs/**']})
29
.filter(f => !onlyChanged || changedFiles.has(f));
30
31
if (!files.length) {