@samitouri / QOS-React-2 / commits / 6d50a9d090

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) {