@samitouri / QOS-React / commits / da6ba53b10

[UMD] Remove umd builds (#28735)

In React 19 React will finally stop publishing UMD builds. This is motivated primarily by the lack of use of UMD format and the added complexity of maintaining build infra for these releases. Additionally with ESM becoming more prevalent in browsers and services like esm.sh which can host React as an ESM module there are other options for doing script tag based react loading. This PR removes all the UMD build configs and forks. There are some fixtures that still have references to UMD builds however many of them already do not work (for instance they are using legacy features like ReactDOM.render) and rather than block the removal on these fixtures being brought up to date we'll just move forward and fix or removes fixtures as necessary in the future.

Josh Story committed Apr 17, 2024 at 11:15 UTC da6ba53b10d8240fc251ba14a3e5878604d3dc7d
42 files changed +1124 -842
.eslintrc.js
-1
@@ -545,7 +545,6 @@ module.exports = {
545 __EXTENSION__: 'readonly',
546 __PROFILE__: 'readonly',
547 __TEST__: 'readonly',
548 - __UMD__: 'readonly',
548 __VARIANT__: 'readonly',
549 __unmockReact: 'readonly',
550 gate: 'readonly',
fixtures/dom/README.md
+2 -2
@@ -10,8 +10,8 @@ of the React project. Then:
10 ```
11 cd fixtures/dom
12 yarn
13 -yarn start
13 +yarn dev
14 ```
15
16 -The `start` command runs a script that copies over the local build of react into
16 +The `dev` command runs a script that copies over the local build of react into
17 the public directory.
fixtures/dom/package.json
+1 -1
@@ -20,7 +20,7 @@
20 },
21 "scripts": {
22 "dev": "react-scripts start",
23 - "predev": "cp ../../build/oss-stable/scheduler/umd/scheduler-unstable_mock.development.js ../../build/oss-stable/scheduler/umd/scheduler-unstable_mock.production.min.js ../../build/oss-stable/react/umd/react.development.js ../../build/oss-stable/react-dom/umd/react-dom.development.js ../../build/oss-stable/react/umd/react.production.min.js ../../build/oss-stable/react-dom/umd/react-dom.production.min.js ../../build/oss-stable/react-dom/umd/react-dom-server.browser.development.js ../../build/oss-stable/react-dom/umd/react-dom-server.browser.production.min.js ../../build/oss-stable/react-dom/umd/react-dom-test-utils.development.js ../../build/oss-stable/react-dom/umd/react-dom-test-utils.production.min.js public/ && cp -a ../../build/oss-stable/. node_modules",
23 + "predev": "cp -a ../../build/oss-stable/. node_modules",
24 "build": "react-scripts build && cp build/index.html build/200.html",
25 "test": "react-scripts test --env=jsdom",
26 "eject": "react-scripts eject"
fixtures/dom/src/index.js
+12 -4
@@ -6,8 +6,16 @@ loadReact()
6 .then(App => {
7 const {React, ReactDOM} = window;
8
9 - ReactDOM.render(
10 - React.createElement(App.default),
11 - document.getElementById('root')
12 - );
9 + if (typeof window.ReactDOMClient !== 'undefined') {
10 + // we are in a React that only supports modern roots
11 +
12 + ReactDOM.createRoot(document.getElementById('root')).render(
13 + React.createElement(App.default)
14 + );
15 + } else {
16 + ReactDOM.render(
17 + React.createElement(App.default),
18 + document.getElementById('root')
19 + );
20 + }
21 });
fixtures/dom/src/react-loader.js
+72 -13
@@ -36,6 +36,33 @@ function loadScript(src) {
36 });
37 }
38
39 +function loadModules(SymbolSrcPairs) {
40 + let firstScript = document.getElementsByTagName('script')[0];
41 +
42 + let imports = '';
43 + SymbolSrcPairs.map(([symbol, src]) => {
44 + imports += `import ${symbol} from "${src}";\n`;
45 + imports += `window.${symbol} = ${symbol};\n`;
46 + });
47 +
48 + return new Promise((resolve, reject) => {
49 + const timeout = setTimeout(
50 + () => reject(new Error('Timed out loading react modules over esm')),
51 + 5000
52 + );
53 + window.__loaded = () => {
54 + clearTimeout(timeout);
55 + resolve();
56 + };
57 +
58 + const moduleScript = document.createElement('script');
59 + moduleScript.type = 'module';
60 + moduleScript.textContent = imports + 'window.__loaded();';
61 +
62 + firstScript.parentNode.insertBefore(moduleScript, firstScript);
63 + });
64 +}
65 +
66 function getVersion() {
67 let query = parseQuery(window.location.search);
68 return query.version || 'local';
@@ -47,12 +74,15 @@ export function reactPaths(version = getVersion()) {
74 let environment = isProduction ? 'production.min' : 'development';
75 let reactPath = `react.${environment}.js`;
76 let reactDOMPath = `react-dom.${environment}.js`;
77 + let reactDOMClientPath = `react-dom.${environment}.js`;
78 let reactDOMServerPath = `react-dom-server.browser.${environment}.js`;
79 let needsCreateElement = true;
80 let needsReactDOM = true;
81 + let usingModules = false;
82
83 if (version !== 'local') {
84 const {major, minor, prerelease} = semver(version);
85 + console.log('semver', semver(version));
86
87 if (major === 0) {
88 needsCreateElement = minor >= 12;
@@ -62,7 +92,16 @@ export function reactPaths(version = getVersion()) {
92 const [preReleaseStage] = prerelease;
93 // The file structure was updated in 16. This wasn't the case for alphas.
94 // Load the old module location for anything less than 16 RC
65 - if (major >= 16 && !(minor === 0 && preReleaseStage === 'alpha')) {
95 + if (major >= 19) {
96 + usingModules = true;
97 + const devQuery = environment === 'development' ? '?dev' : '';
98 + reactPath = 'https://esm.sh/react@' + version + '/' + devQuery;
99 + reactDOMPath = 'https://esm.sh/react-dom@' + version + '/' + devQuery;
100 + reactDOMClientPath =
101 + 'https://esm.sh/react-dom@' + version + '/client' + devQuery;
102 + reactDOMServerPath =
103 + 'https://esm.sh/react-dom@' + version + '/server.browser' + devQuery;
104 + } else if (major >= 16 && !(minor === 0 && preReleaseStage === 'alpha')) {
105 reactPath =
106 'https://unpkg.com/react@' +
107 version +
@@ -90,30 +129,50 @@ export function reactPaths(version = getVersion()) {
129 reactPath =
130 'https://cdnjs.cloudflare.com/ajax/libs/react/' + version + '/react.js';
131 }
132 + } else {
133 + throw new Error(
134 + 'This fixture no longer works with local versions. Provide a version query parameter that matches a version published to npm to use the fixture.'
135 + );
136 }
137
138 return {
139 reactPath,
140 reactDOMPath,
141 + reactDOMClientPath,
142 reactDOMServerPath,
143 needsCreateElement,
144 needsReactDOM,
145 + usingModules,
146 };
147 }
148
149 export default function loadReact() {
105 - const {reactPath, reactDOMPath, needsReactDOM} = reactPaths();
106 -
107 - let request = loadScript(reactPath);
108 -
109 - if (needsReactDOM) {
110 - request = request.then(() => loadScript(reactDOMPath));
150 + console.log('reactPaths', reactPaths());
151 + const {
152 + reactPath,
153 + reactDOMPath,
154 + reactDOMClientPath,
155 + needsReactDOM,
156 + usingModules,
157 + } = reactPaths();
158 +
159 + if (usingModules) {
160 + return loadModules([
161 + ['React', reactPath],
162 + ['ReactDOM', reactDOMPath],
163 + ['ReactDOMClient', reactDOMClientPath],
164 + ]);
165 } else {
112 - // Aliasing React to ReactDOM for compatibility.
113 - request = request.then(() => {
114 - window.ReactDOM = window.React;
115 - });
116 - }
166 + let request = loadScript(reactPath, usingModules);
167
118 - return request;
168 + if (needsReactDOM) {
169 + request = request.then(() => loadScript(reactDOMPath, usingModules));
170 + } else {
171 + // Aliasing React to ReactDOM for compatibility.
172 + request = request.then(() => {
173 + window.ReactDOM = window.React;
174 + });
175 + }
176 + return request;
177 + }
178 }
fixtures/fiber-triangle/index.html deleted
-224
@@ -1,224 +0,0 @@
1 -<!DOCTYPE html>
2 -<html style="width: 100%; height: 100%; overflow: hidden">
3 - <head>
4 - <meta charset="utf-8">
5 - <title>Fiber Example</title>
6 - </head>
7 - <body>
8 - <h1>Fiber Example</h1>
9 - <div id="container">
10 - <p>
11 - To install React, follow the instructions on
12 - <a href="https://github.com/facebook/react/">GitHub</a>.
13 - </p>
14 - <p>
15 - If you can see this, React is <strong>not</strong> working right.
16 - If you checked out the source from GitHub make sure to run <code>npm run build</code>.
17 - </p>
18 - </div>
19 - <script src="../../build/oss-experimental/react/umd/react.development.js"></script>
20 - <script src="../../build/oss-experimental/react-dom/umd/react-dom.development.js"></script>
21 - <script src="https://unpkg.com/babel-standalone@6/babel.js"></script>
22 - <script type="text/babel">
23 - var dotStyle = {
24 - position: 'absolute',
25 - background: '#61dafb',
26 - font: 'normal 15px sans-serif',
27 - textAlign: 'center',
28 - cursor: 'pointer',
29 - };
30 -
31 - var containerStyle = {
32 - position: 'absolute',
33 - transformOrigin: '0 0',
34 - left: '50%',
35 - top: '50%',
36 - width: '10px',
37 - height: '10px',
38 - background: '#eee',
39 - };
40 -
41 - var targetSize = 25;
42 -
43 - class Dot extends React.Component {
44 - constructor() {
45 - super();
46 - this.state = { hover: false };
47 - }
48 - enter() {
49 - this.setState({
50 - hover: true
51 - });
52 - }
53 - leave() {
54 - this.setState({
55 - hover: false
56 - });
57 - }
58 - render() {
59 - var props = this.props;
60 - var s = props.size * 1.3;
61 - var style = {
62 - ...dotStyle,
63 - width: s + 'px',
64 - height: s + 'px',
65 - left: (props.x) + 'px',
66 - top: (props.y) + 'px',
67 - borderRadius: (s / 2) + 'px',
68 - lineHeight: (s) + 'px',
69 - background: this.state.hover ? '#ff0' : dotStyle.background
70 - };
71 - return (
72 - <div style={style} onMouseEnter={() => this.enter()} onMouseLeave={() => this.leave()}>
73 - {this.state.hover ? '*' + props.text + '*' : props.text}
74 - </div>
75 - );
76 - }
77 - }
78 -
79 - class SierpinskiTriangle extends React.Component {
80 - shouldComponentUpdate(nextProps) {
81 - var o = this.props;
82 - var n = nextProps;
83 - return !(
84 - o.x === n.x &&
85 - o.y === n.y &&
86 - o.s === n.s &&
87 - o.children === n.children
88 - );
89 - }
90 - render() {
91 - let {x, y, s, children} = this.props;
92 - if (s <= targetSize) {
93 - return (
94 - <Dot
95 - x={x - (targetSize / 2)}
96 - y={y - (targetSize / 2)}
97 - size={targetSize}
98 - text={children}
99 - />
100 - );
101 - return r;
102 - }
103 - var newSize = s / 2;
104 - var slowDown = true;
105 - if (slowDown) {
106 - var e = performance.now() + 0.8;
107 - while (performance.now() < e) {
108 - // Artificially long execution time.
109 - }
110 - }
111 -
112 - s /= 2;
113 -
114 - return [
115 - <SierpinskiTriangle x={x} y={y - (s / 2)} s={s}>
116 - {children}
117 - </SierpinskiTriangle>,
118 - <SierpinskiTriangle x={x - s} y={y + (s / 2)} s={s}>
119 - {children}
120 - </SierpinskiTriangle>,
121 - <SierpinskiTriangle x={x + s} y={y + (s / 2)} s={s}>
122 - {children}
123 - </SierpinskiTriangle>,
124 - ];
125 - }
126 - }
127 -
128 - class ExampleApplication extends React.Component {
129 - constructor() {
130 - super();
131 - this.state = {
132 - seconds: 0,
133 - useTimeSlicing: true,
134 - };
135 - this.tick = this.tick.bind(this);
136 - this.onTimeSlicingChange = this.onTimeSlicingChange.bind(this);
137 - }
138 - componentDidMount() {
139 - this.intervalID = setInterval(this.tick, 1000);
140 - }
141 - tick() {
142 - if (this.state.useTimeSlicing) {
143 - // Update is time-sliced.
144 - ReactDOM.unstable_deferredUpdates(() => {
145 - this.setState(state => ({ seconds: (state.seconds % 10) + 1 }));
146 - });
147 - } else {
148 - // Update is not time-sliced. Causes demo to stutter.
149 - this.setState(state => ({ seconds: (state.seconds % 10) + 1 }));
150 - }
151 - }
152 - onTimeSlicingChange(value) {
153 - this.setState(() => ({ useTimeSlicing: value }));
154 - }
155 - componentWillUnmount() {
156 - clearInterval(this.intervalID);
157 - }
158 - render() {
159 - const seconds = this.state.seconds;
160 - const elapsed = this.props.elapsed;
161 - const t = (elapsed / 1000) % 10;
162 - const scale = 1 + (t > 5 ? 10 - t : t) / 10;
163 - const transform = 'scaleX(' + (scale / 2.1) + ') scaleY(0.7) translateZ(0.1px)';
164 - return (
165 - <div>
166 - <div>
167 - <h3>Time-slicing</h3>
168 - <p>Toggle this and observe the effect</p>
169 - <Toggle
170 - onLabel="On"
171 - offLabel="Off"
172 - onChange={this.onTimeSlicingChange}
173 - value={this.state.useTimeSlicing}
174 - />
175 - </div>
176 - <div style={{ ...containerStyle, transform }}>
177 - <div>
178 - <SierpinskiTriangle x={0} y={0} s={1000}>
179 - {this.state.seconds}
180 - </SierpinskiTriangle>
181 - </div>
182 - </div>
183 - </div>
184 - );
185 - }
186 - }
187 -
188 - class Toggle extends React.Component {
189 - constructor(props) {
190 - super();
191 - this.onChange = this.onChange.bind(this);
192 - }
193 - onChange(event) {
194 - this.props.onChange(event.target.value === 'on');
195 - }
196 - render() {
197 - const value = this.props.value;
198 - return (
199 - <label onChange={this.onChange}>
200 - <label>
201 - {this.props.onLabel}
202 - <input type="radio" name="value" value="on" checked={value} />
203 - </label>
204 - <label>
205 - {this.props.offLabel}
206 - <input type="radio" name="value" value="off" checked={!value} />
207 - </label>
208 - </label>
209 - );
210 - }
211 - }
212 -
213 - var start = new Date().getTime();
214 - function update() {
215 - ReactDOM.render(
216 - <ExampleApplication elapsed={new Date().getTime() - start} />,
217 - document.getElementById('container')
218 - );
219 - requestAnimationFrame(update);
220 - }
221 - requestAnimationFrame(update);
222 - </script>
223 - </body>
224 -</html>
fixtures/fizz-ssr-browser/index.html
+9 -3
@@ -16,9 +16,15 @@
16 If you checked out the source from GitHub make sure to run <code>npm run build</code>.
17 </p>
18 </div>
19 - <script src="../../build/oss-experimental/react/umd/react.development.js"></script>
20 - <script src="../../build/oss-experimental/react-dom/umd/react-dom.development.js"></script>
21 - <script src="../../build/oss-experimental/react-dom/umd/react-dom-server.browser.development.js"></script>
19 + <script type="module">
20 + import React from "https://esm.sh/react@canary?dev";
21 + import ReactDOM from "https://esm.sh/react-dom@canary?dev";
22 + import ReactDOMServer from "https://esm.sh/react-dom@canary/server.browser?dev";
23 +
24 + window.React = React;
25 + window.ReactDOM = ReactDOM;
26 + window.ReactDOMServer = ReactDOMServer;
27 + </script>
28 <script src="https://unpkg.com/babel-standalone@6/babel.js"></script>
29 <script type="text/babel">
30 async function render() {
fixtures/stacks/BabelClasses-compiled.js
+31 -30
@@ -6,8 +6,8 @@ function _assertThisInitialized(self) {
6 }
7 return self;
8 }
9 -
9 function _defineProperty(obj, key, value) {
10 + key = _toPropertyKey(key);
11 if (key in obj) {
12 Object.defineProperty(obj, key, {
13 value: value,
@@ -20,60 +20,61 @@ function _defineProperty(obj, key, value) {
20 }
21 return obj;
22 }
23 -
23 +function _toPropertyKey(t) {
24 + var i = _toPrimitive(t, 'string');
25 + return 'symbol' == typeof i ? i : i + '';
26 +}
27 +function _toPrimitive(t, r) {
28 + if ('object' != typeof t || !t) return t;
29 + var e = t[Symbol.toPrimitive];
30 + if (void 0 !== e) {
31 + var i = e.call(t, r || 'default');
32 + if ('object' != typeof i) return i;
33 + throw new TypeError('@@toPrimitive must return a primitive value.');
34 + }
35 + return ('string' === r ? String : Number)(t);
36 +}
37 function _inheritsLoose(subClass, superClass) {
38 subClass.prototype = Object.create(superClass.prototype);
39 subClass.prototype.constructor = subClass;
27 - subClass.__proto__ = superClass;
40 + _setPrototypeOf(subClass, superClass);
41 +}
42 +function _setPrototypeOf(o, p) {
43 + _setPrototypeOf = Object.setPrototypeOf
44 + ? Object.setPrototypeOf.bind()
45 + : function _setPrototypeOf(o, p) {
46 + o.__proto__ = p;
47 + return o;
48 + };
49 + return _setPrototypeOf(o, p);
50 }
29 -
51 // Compile this with Babel.
52 // babel --config-file ./babel.config.json BabelClasses.js --out-file BabelClasses-compiled.js --source-maps
32 -let BabelClass = /*#__PURE__*/ (function (_React$Component) {
33 - _inheritsLoose(BabelClass, _React$Component);
53
54 +export let BabelClass = /*#__PURE__*/ (function (_React$Component) {
55 + _inheritsLoose(BabelClass, _React$Component);
56 function BabelClass() {
57 return _React$Component.apply(this, arguments) || this;
58 }
38 -
59 var _proto = BabelClass.prototype;
40 -
60 _proto.render = function render() {
61 return this.props.children;
62 };
44 -
63 return BabelClass;
64 })(React.Component);
47 -
48 -let BabelClassWithFields = /*#__PURE__*/ (function (_React$Component2) {
65 +export let BabelClassWithFields = /*#__PURE__*/ (function (_React$Component2) {
66 _inheritsLoose(BabelClassWithFields, _React$Component2);
50 -
67 function BabelClassWithFields(...args) {
68 var _this;
53 -
69 _this = _React$Component2.call(this, ...args) || this;
55 -
56 - _defineProperty(
57 - _assertThisInitialized(_assertThisInitialized(_this)),
58 - 'props',
59 - void 0
60 - );
61 -
62 - _defineProperty(
63 - _assertThisInitialized(_assertThisInitialized(_this)),
64 - 'state',
65 - {}
66 - );
67 -
70 + _defineProperty(_assertThisInitialized(_this), 'props', void 0);
71 + _defineProperty(_assertThisInitialized(_this), 'state', {});
72 return _this;
69 - }
70 -
73 + } // These compile to defineProperty which can break some interception techniques.
74 var _proto2 = BabelClassWithFields.prototype;
72 -
75 _proto2.render = function render() {
76 return this.props.children;
77 };
76 -
78 return BabelClassWithFields;
79 })(React.Component);
80
fixtures/stacks/BabelClasses-compiled.js.map
+1 -1
@@ -1 +1 @@
1 -{"version":3,"sources":["BabelClasses.js"],"names":[],"mappings":";;;;;;AAAA;AACA;IAEM,U;;;;;;;;;SACJ,M,qBAAS;AACP,WAAO,KAAK,KAAL,CAAW,QAAlB;AACD,G;;;EAHsB,KAAK,CAAC,S;;IAMzB,oB;;;;;;;;;;oFAGI,E;;;;;;;UACR,M,qBAAS;AACP,WAAO,KAAK,KAAL,CAAW,QAAlB;AACD,G;;;EANgC,KAAK,CAAC,S","file":"BabelClasses-compiled.js","sourcesContent":["// Compile this with Babel.\n// babel --config-file ./babel.config.json BabelClasses.js --out-file BabelClasses-compiled.js --source-maps\n\nclass BabelClass extends React.Component {\n render() {\n return this.props.children;\n }\n}\n\nclass BabelClassWithFields extends React.Component {\n // These compile to defineProperty which can break some interception techniques.\n props;\n state = {};\n render() {\n return this.props.children;\n }\n}\n"]}
\ No newline at end of file
1 +{"version":3,"file":"BabelClasses-compiled.js","names":["BabelClass","_React$Component","_inheritsLoose","apply","arguments","_proto","prototype","render","props","children","React","Component","BabelClassWithFields","_React$Component2","args","_this","call","_defineProperty","_assertThisInitialized","_proto2"],"sources":["BabelClasses.js"],"sourcesContent":["// Compile this with Babel.\n// babel --config-file ./babel.config.json BabelClasses.js --out-file BabelClasses-compiled.js --source-maps\n\nexport class BabelClass extends React.Component {\n render() {\n return this.props.children;\n }\n}\n\nexport class BabelClassWithFields extends React.Component {\n // These compile to defineProperty which can break some interception techniques.\n props;\n state = {};\n render() {\n return this.props.children;\n }\n}\n"],"mappings":";;;;;;AAAA;AACA;;AAEA,WAAaA,UAAU,0BAAAC,gBAAA;EAAAC,cAAA,CAAAF,UAAA,EAAAC,gBAAA;EAAA,SAAAD,WAAA;IAAA,OAAAC,gBAAA,CAAAE,KAAA,OAAAC,SAAA;EAAA;EAAA,IAAAC,MAAA,GAAAL,UAAA,CAAAM,SAAA;EAAAD,MAAA,CACrBE,MAAM,GAAN,SAAAA,OAAA,EAAS;IACP,OAAO,IAAI,CAACC,KAAK,CAACC,QAAQ;EAC5B,CAAC;EAAA,OAAAT,UAAA;AAAA,EAH6BU,KAAK,CAACC,SAAS;AAM/C,WAAaC,oBAAoB,0BAAAC,iBAAA;EAAAX,cAAA,CAAAU,oBAAA,EAAAC,iBAAA;EAAA,SAAAD,qBAAA,GAAAE,IAAA;IAAA,IAAAC,KAAA;IAAAA,KAAA,GAAAF,iBAAA,CAAAG,IAAA,UAAAF,IAAA;IAAAG,eAAA,CAAAC,sBAAA,CAAAH,KAAA;IAAAE,eAAA,CAAAC,sBAAA,CAAAH,KAAA,YAGvB,CAAC,CAAC;IAAA,OAAAA,KAAA;EAAA,EAFV;EAAA,IAAAI,OAAA,GAAAP,oBAAA,CAAAN,SAAA;EAAAa,OAAA,CAGAZ,MAAM,GAAN,SAAAA,OAAA,EAAS;IACP,OAAO,IAAI,CAACC,KAAK,CAACC,QAAQ;EAC5B,CAAC;EAAA,OAAAG,oBAAA;AAAA,EANuCF,KAAK,CAACC,SAAS","ignoreList":[]}
\ No newline at end of file
fixtures/stacks/BabelClasses.js
+2 -2
@@ -1,13 +1,13 @@
1 // Compile this with Babel.
2 // babel --config-file ./babel.config.json BabelClasses.js --out-file BabelClasses-compiled.js --source-maps
3
4 -class BabelClass extends React.Component {
4 +export class BabelClass extends React.Component {
5 render() {
6 return this.props.children;
7 }
8 }
9
10 -class BabelClassWithFields extends React.Component {
10 +export class BabelClassWithFields extends React.Component {
11 // These compile to defineProperty which can break some interception techniques.
12 props;
13 state = {};
fixtures/stacks/Components.js
+5 -5
@@ -1,25 +1,25 @@
1 // Example
2
3 -const Throw = React.lazy(() => {
3 +export const Throw = React.lazy(() => {
4 throw new Error('Example');
5 });
6
7 -const Component = React.memo(function Component({children}) {
7 +export const Component = React.memo(function Component({children}) {
8 return children;
9 });
10
11 -function DisplayName({children}) {
11 +export function DisplayName({children}) {
12 return children;
13 }
14 DisplayName.displayName = 'Custom Name';
15
16 -class NativeClass extends React.Component {
16 +export class NativeClass extends React.Component {
17 render() {
18 return this.props.children;
19 }
20 }
21
22 -class FrozenClass extends React.Component {
22 +export class FrozenClass extends React.Component {
23 constructor() {
24 super();
25 }
fixtures/stacks/Example.js
+15 -12
@@ -1,4 +1,11 @@
1 -// Example
1 +import {BabelClass, BabelClassWithFields} from './BabelClasses-compiled.js';
2 +import {
3 + Throw,
4 + Component,
5 + DisplayName,
6 + NativeClass,
7 + FrozenClass,
8 +} from './Components.js';
9
10 const x = React.createElement;
11
@@ -29,7 +36,7 @@ class ErrorBoundary extends React.Component {
36 }
37 }
38
32 -function Example() {
39 +export default function Example() {
40 let state = React.useState(false);
41 return x(
42 ErrorBoundary,
@@ -38,25 +45,21 @@ function Example() {
45 DisplayName,
46 null,
47 x(
41 - React.unstable_SuspenseList,
48 + NativeClass,
49 null,
50 x(
44 - NativeClass,
51 + FrozenClass,
52 null,
53 x(
47 - FrozenClass,
54 + BabelClass,
55 null,
56 x(
50 - BabelClass,
57 + BabelClassWithFields,
58 null,
59 x(
53 - BabelClassWithFields,
60 + React.Suspense,
61 null,
55 - x(
56 - React.Suspense,
57 - null,
58 - x('div', null, x(Component, null, x(Throw)))
59 - )
62 + x('div', null, x(Component, null, x(Throw)))
63 )
64 )
65 )
fixtures/stacks/index.html
+13 -9
@@ -25,14 +25,19 @@
25 If you checked out the source from GitHub make sure to run <code>npm run build</code>.
26 </p>
27 </div>
28 - <script src="../../build/oss-experimental/react/umd/react.production.min.js"></script>
29 - <script src="../../build/oss-experimental/react-dom/umd/react-dom.production.min.js"></script>
30 - <script src="./Components.js"></script>
31 - <script src="./BabelClasses-compiled.js"></script>
32 - <script src="./Example.js"></script>
33 - <script>
34 - const container = document.getElementById("container");
35 - ReactDOM.render(React.createElement(Example), container);
28 + <script type="module">
29 + import React from 'https://esm.sh/react@canary/?dev';
30 + import ReactDOMClient from 'https://esm.sh/react-dom@canary/client?dev';
31 +
32 + window.React = React;
33 + window.ReactDOMClient = ReactDOMClient;
34 +
35 + import("./Example.js").then(({ default: Example }) => {
36 + console.log("Example", Example)
37 + const container = document.getElementById("container");
38 + const root = ReactDOMClient.createRoot(container);
39 + root.render(React.createElement(Example));
40 + });
41 </script>
42 <h3>The above stack should look something like this:</h3>
43 <pre>
@@ -44,7 +49,6 @@
49 at BabelClass (/stacks/BabelClass-compiled.js:13:29)
50 at FrozenClass (/stacks/Components.js:22:1)
51 at NativeClass (/stacks/Component.js:16:1)
47 - at SuspenseList
52 at Custom Name (/stacks/Component.js:11:1)
53 at ErrorBoundary (/stacks/Example.js:5:1)
54 at Example (/stacks/Example.js:32:1)</pre>
fixtures/stacks/package.json new
+13
@@ -0,0 +1,13 @@
1 +{
2 + "scripts": {
3 + "build": "babel --config-file ./babel.config.json BabelClasses.js -o BabelClasses-compiled.js --source-maps",
4 + "dev": "http-server ."
5 + },
6 + "dependencies": {
7 + "http-server": "^14.1.1"
8 + },
9 + "devDependencies": {
10 + "@babel/cli": "^7.24.1",
11 + "@babel/core": "^7.24.4"
12 + }
13 +}
fixtures/stacks/yarn.lock new
+918
@@ -0,0 +1,918 @@
1 +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 +# yarn lockfile v1
3 +
4 +
5 +"@ampproject/remapping@^2.2.0":
6 + version "2.3.0"
7 + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4"
8 + integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==
9 + dependencies:
10 + "@jridgewell/gen-mapping" "^0.3.5"
11 + "@jridgewell/trace-mapping" "^0.3.24"
12 +
13 +"@babel/cli@^7.24.1":
14 + version "7.24.1"
15 + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.24.1.tgz#2e11e071e32fe82850b4fe514f56b9c9e1c44911"
16 + integrity sha512-HbmrtxyFUr34LwAlV9jS+sSIjUp4FpdtIMGwgufY3AsxrIfsh/HxlMTywsONAZsU0RMYbZtbZFpUCrSGs7o0EA==
17 + dependencies:
18 + "@jridgewell/trace-mapping" "^0.3.25"
19 + commander "^4.0.1"
20 + convert-source-map "^2.0.0"
21 + fs-readdir-recursive "^1.1.0"
22 + glob "^7.2.0"
23 + make-dir "^2.1.0"
24 + slash "^2.0.0"
25 + optionalDependencies:
26 + "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.3"
27 + chokidar "^3.4.0"
28 +
29 +"@babel/code-frame@^7.23.5", "@babel/code-frame@^7.24.1", "@babel/code-frame@^7.24.2":
30 + version "7.24.2"
31 + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.2.tgz#718b4b19841809a58b29b68cde80bc5e1aa6d9ae"
32 + integrity sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==
33 + dependencies:
34 + "@babel/highlight" "^7.24.2"
35 + picocolors "^1.0.0"
36 +
37 +"@babel/compat-data@^7.23.5":
38 + version "7.24.4"
39 + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.24.4.tgz#6f102372e9094f25d908ca0d34fc74c74606059a"
40 + integrity sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==
41 +
42 +"@babel/core@^7.24.4":
43 + version "7.24.4"
44 + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.4.tgz#1f758428e88e0d8c563874741bc4ffc4f71a4717"
45 + integrity sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==
46 + dependencies:
47 + "@ampproject/remapping" "^2.2.0"
48 + "@babel/code-frame" "^7.24.2"
49 + "@babel/generator" "^7.24.4"
50 + "@babel/helper-compilation-targets" "^7.23.6"
51 + "@babel/helper-module-transforms" "^7.23.3"
52 + "@babel/helpers" "^7.24.4"
53 + "@babel/parser" "^7.24.4"
54 + "@babel/template" "^7.24.0"
55 + "@babel/traverse" "^7.24.1"
56 + "@babel/types" "^7.24.0"
57 + convert-source-map "^2.0.0"
58 + debug "^4.1.0"
59 + gensync "^1.0.0-beta.2"
60 + json5 "^2.2.3"
61 + semver "^6.3.1"
62 +
63 +"@babel/generator@^7.24.1", "@babel/generator@^7.24.4":
64 + version "7.24.4"
65 + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.4.tgz#1fc55532b88adf952025d5d2d1e71f946cb1c498"
66 + integrity sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==
67 + dependencies:
68 + "@babel/types" "^7.24.0"
69 + "@jridgewell/gen-mapping" "^0.3.5"
70 + "@jridgewell/trace-mapping" "^0.3.25"
71 + jsesc "^2.5.1"
72 +
73 +"@babel/helper-compilation-targets@^7.23.6":
74 + version "7.23.6"
75 + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991"
76 + integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==
77 + dependencies:
78 + "@babel/compat-data" "^7.23.5"
79 + "@babel/helper-validator-option" "^7.23.5"
80 + browserslist "^4.22.2"
81 + lru-cache "^5.1.1"
82 + semver "^6.3.1"
83 +
84 +"@babel/helper-environment-visitor@^7.22.20":
85 + version "7.22.20"
86 + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167"
87 + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==
88 +
89 +"@babel/helper-function-name@^7.23.0":
90 + version "7.23.0"
91 + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759"
92 + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==
93 + dependencies:
94 + "@babel/template" "^7.22.15"
95 + "@babel/types" "^7.23.0"
96 +
97 +"@babel/helper-hoist-variables@^7.22.5":
98 + version "7.22.5"
99 + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb"
100 + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==
101 + dependencies:
102 + "@babel/types" "^7.22.5"
103 +
104 +"@babel/helper-module-imports@^7.22.15":
105 + version "7.24.3"
106 + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz#6ac476e6d168c7c23ff3ba3cf4f7841d46ac8128"
107 + integrity sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==
108 + dependencies:
109 + "@babel/types" "^7.24.0"
110 +
111 +"@babel/helper-module-transforms@^7.23.3":
112 + version "7.23.3"
113 + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1"
114 + integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==
115 + dependencies:
116 + "@babel/helper-environment-visitor" "^7.22.20"
117 + "@babel/helper-module-imports" "^7.22.15"
118 + "@babel/helper-simple-access" "^7.22.5"
119 + "@babel/helper-split-export-declaration" "^7.22.6"
120 + "@babel/helper-validator-identifier" "^7.22.20"
121 +
122 +"@babel/helper-simple-access@^7.22.5":
123 + version "7.22.5"
124 + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de"
125 + integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==
126 + dependencies:
127 + "@babel/types" "^7.22.5"
128 +
129 +"@babel/helper-split-export-declaration@^7.22.6":
130 + version "7.22.6"
131 + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c"
132 + integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==
133 + dependencies:
134 + "@babel/types" "^7.22.5"
135 +
136 +"@babel/helper-string-parser@^7.23.4":
137 + version "7.24.1"
138 + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz#f99c36d3593db9540705d0739a1f10b5e20c696e"
139 + integrity sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==
140 +
141 +"@babel/helper-validator-identifier@^7.22.20":
142 + version "7.22.20"
143 + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0"
144 + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==
145 +
146 +"@babel/helper-validator-option@^7.23.5":
147 + version "7.23.5"
148 + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307"
149 + integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==
150 +
151 +"@babel/helpers@^7.24.4":
152 + version "7.24.4"
153 + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.4.tgz#dc00907fd0d95da74563c142ef4cd21f2cb856b6"
154 + integrity sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==
155 + dependencies:
156 + "@babel/template" "^7.24.0"
157 + "@babel/traverse" "^7.24.1"
158 + "@babel/types" "^7.24.0"
159 +
160 +"@babel/highlight@^7.24.2":
161 + version "7.24.2"
162 + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.2.tgz#3f539503efc83d3c59080a10e6634306e0370d26"
163 + integrity sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==
164 + dependencies:
165 + "@babel/helper-validator-identifier" "^7.22.20"
166 + chalk "^2.4.2"
167 + js-tokens "^4.0.0"
168 + picocolors "^1.0.0"
169 +
170 +"@babel/parser@^7.24.0", "@babel/parser@^7.24.1", "@babel/parser@^7.24.4":
171 + version "7.24.4"
172 + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.4.tgz#234487a110d89ad5a3ed4a8a566c36b9453e8c88"
173 + integrity sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==
174 +
175 +"@babel/template@^7.22.15", "@babel/template@^7.24.0":
176 + version "7.24.0"
177 + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.0.tgz#c6a524aa93a4a05d66aaf31654258fae69d87d50"
178 + integrity sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==
179 + dependencies:
180 + "@babel/code-frame" "^7.23.5"
181 + "@babel/parser" "^7.24.0"
182 + "@babel/types" "^7.24.0"
183 +
184 +"@babel/traverse@^7.24.1":
185 + version "7.24.1"
186 + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.1.tgz#d65c36ac9dd17282175d1e4a3c49d5b7988f530c"
187 + integrity sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==
188 + dependencies:
189 + "@babel/code-frame" "^7.24.1"
190 + "@babel/generator" "^7.24.1"
191 + "@babel/helper-environment-visitor" "^7.22.20"
192 + "@babel/helper-function-name" "^7.23.0"
193 + "@babel/helper-hoist-variables" "^7.22.5"
194 + "@babel/helper-split-export-declaration" "^7.22.6"
195 + "@babel/parser" "^7.24.1"
196 + "@babel/types" "^7.24.0"
197 + debug "^4.3.1"
198 + globals "^11.1.0"
199 +
200 +"@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.24.0":
201 + version "7.24.0"
202 + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.0.tgz#3b951f435a92e7333eba05b7566fd297960ea1bf"
203 + integrity sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==
204 + dependencies:
205 + "@babel/helper-string-parser" "^7.23.4"
206 + "@babel/helper-validator-identifier" "^7.22.20"
207 + to-fast-properties "^2.0.0"
208 +
209 +"@jridgewell/gen-mapping@^0.3.5":
210 + version "0.3.5"
211 + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36"
212 + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==
213 + dependencies:
214 + "@jridgewell/set-array" "^1.2.1"
215 + "@jridgewell/sourcemap-codec" "^1.4.10"
216 + "@jridgewell/trace-mapping" "^0.3.24"
217 +
218 +"@jridgewell/resolve-uri@^3.1.0":
219 + version "3.1.2"
220 + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6"
221 + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==
222 +
223 +"@jridgewell/set-array@^1.2.1":
224 + version "1.2.1"
225 + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280"
226 + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==
227 +
228 +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14":
229 + version "1.4.15"
230 + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
231 + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
232 +
233 +"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25":
234 + version "0.3.25"
235 + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0"
236 + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==
237 + dependencies:
238 + "@jridgewell/resolve-uri" "^3.1.0"
239 + "@jridgewell/sourcemap-codec" "^1.4.14"
240 +
241 +"@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3":
242 + version "2.1.8-no-fsevents.3"
243 + resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz#323d72dd25103d0c4fbdce89dadf574a787b1f9b"
244 + integrity sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==
245 +
246 +ansi-styles@^3.2.1:
247 + version "3.2.1"
248 + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
249 + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
250 + dependencies:
251 + color-convert "^1.9.0"
252 +
253 +ansi-styles@^4.1.0:
254 + version "4.3.0"
255 + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
256 + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
257 + dependencies:
258 + color-convert "^2.0.1"
259 +
260 +anymatch@~3.1.2:
261 + version "3.1.3"
262 + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e"
263 + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
264 + dependencies:
265 + normalize-path "^3.0.0"
266 + picomatch "^2.0.4"
267 +
268 +async@^2.6.4:
269 + version "2.6.4"
270 + resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221"
271 + integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==
272 + dependencies:
273 + lodash "^4.17.14"
274 +
275 +balanced-match@^1.0.0:
276 + version "1.0.2"
277 + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
278 + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
279 +
280 +basic-auth@^2.0.1:
281 + version "2.0.1"
282 + resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz#b998279bf47ce38344b4f3cf916d4679bbf51e3a"
283 + integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==
284 + dependencies:
285 + safe-buffer "5.1.2"
286 +
287 +binary-extensions@^2.0.0:
288 + version "2.3.0"
289 + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522"
290 + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==
291 +
292 +brace-expansion@^1.1.7:
293 + version "1.1.11"
294 + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
295 + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
296 + dependencies:
297 + balanced-match "^1.0.0"
298 + concat-map "0.0.1"
299 +
300 +braces@~3.0.2:
301 + version "3.0.2"
302 + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
303 + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
304 + dependencies:
305 + fill-range "^7.0.1"
306 +
307 +browserslist@^4.22.2:
308 + version "4.23.0"
309 + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab"
310 + integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==
311 + dependencies:
312 + caniuse-lite "^1.0.30001587"
313 + electron-to-chromium "^1.4.668"
314 + node-releases "^2.0.14"
315 + update-browserslist-db "^1.0.13"
316 +
317 +call-bind@^1.0.7:
318 + version "1.0.7"
319 + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9"
320 + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==
321 + dependencies:
322 + es-define-property "^1.0.0"
323 + es-errors "^1.3.0"
324 + function-bind "^1.1.2"
325 + get-intrinsic "^1.2.4"
326 + set-function-length "^1.2.1"
327 +
328 +caniuse-lite@^1.0.30001587:
329 + version "1.0.30001610"
330 + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001610.tgz#2f44ed6e21d359e914271ae35b68903632628ccf"
331 + integrity sha512-QFutAY4NgaelojVMjY63o6XlZyORPaLfyMnsl3HgnWdJUcX6K0oaJymHjH8PT5Gk7sTm8rvC/c5COUQKXqmOMA==
332 +
333 +chalk@^2.4.2:
334 + version "2.4.2"
335 + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
336 + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
337 + dependencies:
338 + ansi-styles "^3.2.1"
339 + escape-string-regexp "^1.0.5"
340 + supports-color "^5.3.0"
341 +
342 +chalk@^4.1.2:
343 + version "4.1.2"
344 + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
345 + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
346 + dependencies:
347 + ansi-styles "^4.1.0"
348 + supports-color "^7.1.0"
349 +
350 +chokidar@^3.4.0:
351 + version "3.6.0"
352 + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b"
353 + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==
354 + dependencies:
355 + anymatch "~3.1.2"
356 + braces "~3.0.2"
357 + glob-parent "~5.1.2"
358 + is-binary-path "~2.1.0"
359 + is-glob "~4.0.1"
360 + normalize-path "~3.0.0"
361 + readdirp "~3.6.0"
362 + optionalDependencies:
363 + fsevents "~2.3.2"
364 +
365 +color-convert@^1.9.0:
366 + version "1.9.3"
367 + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
368 + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
369 + dependencies:
370 + color-name "1.1.3"
371 +
372 +color-convert@^2.0.1:
373 + version "2.0.1"
374 + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
375 + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
376 + dependencies:
377 + color-name "~1.1.4"
378 +
379 +color-name@1.1.3:
380 + version "1.1.3"
381 + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
382 + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
383 +
384 +color-name@~1.1.4:
385 + version "1.1.4"
386 + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
387 + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
388 +
389 +commander@^4.0.1:
390 + version "4.1.1"
391 + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
392 + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
393 +
394 +concat-map@0.0.1:
395 + version "0.0.1"
396 + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
397 + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
398 +
399 +convert-source-map@^2.0.0:
400 + version "2.0.0"
401 + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a"
402 + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==
403 +
404 +corser@^2.0.1:
405 + version "2.0.1"
406 + resolved "https://registry.yarnpkg.com/corser/-/corser-2.0.1.tgz#8eda252ecaab5840dcd975ceb90d9370c819ff87"
407 + integrity sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==
408 +
409 +debug@^3.2.7:
410 + version "3.2.7"
411 + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
412 + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
413 + dependencies:
414 + ms "^2.1.1"
415 +
416 +debug@^4.1.0, debug@^4.3.1:
417 + version "4.3.4"
418 + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
419 + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
420 + dependencies:
421 + ms "2.1.2"
422 +
423 +define-data-property@^1.1.4:
424 + version "1.1.4"
425 + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e"
426 + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==
427 + dependencies:
428 + es-define-property "^1.0.0"
429 + es-errors "^1.3.0"
430 + gopd "^1.0.1"
431 +
432 +electron-to-chromium@^1.4.668:
433 + version "1.4.736"
434 + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.736.tgz#ecb4348f4d5c70fb1e31c347e5bad6b751066416"
435 + integrity sha512-Rer6wc3ynLelKNM4lOCg7/zPQj8tPOCB2hzD32PX9wd3hgRRi9MxEbmkFCokzcEhRVMiOVLjnL9ig9cefJ+6+Q==
436 +
437 +es-define-property@^1.0.0:
438 + version "1.0.0"
439 + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845"
440 + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==
441 + dependencies:
442 + get-intrinsic "^1.2.4"
443 +
444 +es-errors@^1.3.0:
445 + version "1.3.0"
446 + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f"
447 + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
448 +
449 +escalade@^3.1.1:
450 + version "3.1.2"
451 + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27"
452 + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==
453 +
454 +escape-string-regexp@^1.0.5:
455 + version "1.0.5"
456 + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
457 + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
458 +
459 +eventemitter3@^4.0.0:
460 + version "4.0.7"
461 + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f"
462 + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==
463 +
464 +fill-range@^7.0.1:
465 + version "7.0.1"
466 + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
467 + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
468 + dependencies:
469 + to-regex-range "^5.0.1"
470 +
471 +follow-redirects@^1.0.0:
472 + version "1.15.6"
473 + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b"
474 + integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==
475 +
476 +fs-readdir-recursive@^1.1.0:
477 + version "1.1.0"
478 + resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27"
479 + integrity sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==
480 +
481 +fs.realpath@^1.0.0:
482 + version "1.0.0"
483 + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
484 + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
485 +
486 +fsevents@~2.3.2:
487 + version "2.3.3"
488 + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
489 + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
490 +
491 +function-bind@^1.1.2:
492 + version "1.1.2"
493 + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
494 + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
495 +
496 +gensync@^1.0.0-beta.2:
497 + version "1.0.0-beta.2"
498 + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
499 + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
500 +
501 +get-intrinsic@^1.1.3, get-intrinsic@^1.2.4:
502 + version "1.2.4"
503 + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd"
504 + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==
505 + dependencies:
506 + es-errors "^1.3.0"
507 + function-bind "^1.1.2"
508 + has-proto "^1.0.1"
509 + has-symbols "^1.0.3"
510 + hasown "^2.0.0"
511 +
512 +glob-parent@~5.1.2:
513 + version "5.1.2"
514 + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
515 + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
516 + dependencies:
517 + is-glob "^4.0.1"
518 +
519 +glob@^7.2.0:
520 + version "7.2.3"
521 + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
522 + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
523 + dependencies:
524 + fs.realpath "^1.0.0"
525 + inflight "^1.0.4"
526 + inherits "2"
527 + minimatch "^3.1.1"
528 + once "^1.3.0"
529 + path-is-absolute "^1.0.0"
530 +
531 +globals@^11.1.0:
532 + version "11.12.0"
533 + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
534 + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
535 +
536 +gopd@^1.0.1:
537 + version "1.0.1"
538 + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c"
539 + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==
540 + dependencies:
541 + get-intrinsic "^1.1.3"
542 +
543 +has-flag@^3.0.0:
544 + version "3.0.0"
545 + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
546 + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==
547 +
548 +has-flag@^4.0.0:
549 + version "4.0.0"
550 + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
551 + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
552 +
553 +has-property-descriptors@^1.0.2:
554 + version "1.0.2"
555 + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854"
556 + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==
557 + dependencies:
558 + es-define-property "^1.0.0"
559 +
560 +has-proto@^1.0.1:
561 + version "1.0.3"
562 + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd"
563 + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==
564 +
565 +has-symbols@^1.0.3:
566 + version "1.0.3"
567 + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
568 + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
569 +
570 +hasown@^2.0.0:
571 + version "2.0.2"
572 + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003"
573 + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==
574 + dependencies:
575 + function-bind "^1.1.2"
576 +
577 +he@^1.2.0:
578 + version "1.2.0"
579 + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
580 + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
581 +
582 +html-encoding-sniffer@^3.0.0:
583 + version "3.0.0"
584 + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9"
585 + integrity sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==
586 + dependencies:
587 + whatwg-encoding "^2.0.0"
588 +
589 +http-proxy@^1.18.1:
590 + version "1.18.1"
591 + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549"
592 + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==
593 + dependencies:
594 + eventemitter3 "^4.0.0"
595 + follow-redirects "^1.0.0"
596 + requires-port "^1.0.0"
597 +
598 +http-server@^14.1.1:
599 + version "14.1.1"
600 + resolved "https://registry.yarnpkg.com/http-server/-/http-server-14.1.1.tgz#d60fbb37d7c2fdff0f0fbff0d0ee6670bd285e2e"
601 + integrity sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==
602 + dependencies:
603 + basic-auth "^2.0.1"
604 + chalk "^4.1.2"
605 + corser "^2.0.1"
606 + he "^1.2.0"
607 + html-encoding-sniffer "^3.0.0"
608 + http-proxy "^1.18.1"
609 + mime "^1.6.0"
610 + minimist "^1.2.6"
611 + opener "^1.5.1"
612 + portfinder "^1.0.28"
613 + secure-compare "3.0.1"
614 + union "~0.5.0"
615 + url-join "^4.0.1"
616 +
617 +iconv-lite@0.6.3:
618 + version "0.6.3"
619 + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501"
620 + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
621 + dependencies:
622 + safer-buffer ">= 2.1.2 < 3.0.0"
623 +
624 +inflight@^1.0.4:
625 + version "1.0.6"
626 + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
627 + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
628 + dependencies:
629 + once "^1.3.0"
630 + wrappy "1"
631 +
632 +inherits@2:
633 + version "2.0.4"
634 + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
635 + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
636 +
637 +is-binary-path@~2.1.0:
638 + version "2.1.0"
639 + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
640 + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
641 + dependencies:
642 + binary-extensions "^2.0.0"
643 +
644 +is-extglob@^2.1.1:
645 + version "2.1.1"
646 + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
647 + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
648 +
649 +is-glob@^4.0.1, is-glob@~4.0.1:
650 + version "4.0.3"
651 + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
652 + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
653 + dependencies:
654 + is-extglob "^2.1.1"
655 +
656 +is-number@^7.0.0:
657 + version "7.0.0"
658 + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
659 + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
660 +
661 +js-tokens@^4.0.0:
662 + version "4.0.0"
663 + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
664 + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
665 +
666 +jsesc@^2.5.1:
667 + version "2.5.2"
668 + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
669 + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
670 +
671 +json5@^2.2.3:
672 + version "2.2.3"
673 + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
674 + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
675 +
676 +lodash@^4.17.14:
677 + version "4.17.21"
678 + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
679 + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
680 +
681 +lru-cache@^5.1.1:
682 + version "5.1.1"
683 + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920"
684 + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==
685 + dependencies:
686 + yallist "^3.0.2"
687 +
688 +make-dir@^2.1.0:
689 + version "2.1.0"
690 + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
691 + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==
692 + dependencies:
693 + pify "^4.0.1"
694 + semver "^5.6.0"
695 +
696 +mime@^1.6.0:
697 + version "1.6.0"
698 + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
699 + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
700 +
701 +minimatch@^3.1.1:
702 + version "3.1.2"
703 + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
704 + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
705 + dependencies:
706 + brace-expansion "^1.1.7"
707 +
708 +minimist@^1.2.6:
709 + version "1.2.8"
710 + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
711 + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
712 +
713 +mkdirp@^0.5.6:
714 + version "0.5.6"
715 + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6"
716 + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==
717 + dependencies:
718 + minimist "^1.2.6"
719 +
720 +ms@2.1.2:
721 + version "2.1.2"
722 + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
723 + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
724 +
725 +ms@^2.1.1:
726 + version "2.1.3"
727 + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
728 + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
729 +
730 +node-releases@^2.0.14:
731 + version "2.0.14"
732 + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b"
733 + integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==
734 +
735 +normalize-path@^3.0.0, normalize-path@~3.0.0:
736 + version "3.0.0"
737 + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
738 + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
739 +
740 +object-inspect@^1.13.1:
741 + version "1.13.1"
742 + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2"
743 + integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==
744 +
745 +once@^1.3.0:
746 + version "1.4.0"
747 + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
748 + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
749 + dependencies:
750 + wrappy "1"
751 +
752 +opener@^1.5.1:
753 + version "1.5.2"
754 + resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598"
755 + integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==
756 +
757 +path-is-absolute@^1.0.0:
758 + version "1.0.1"
759 + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
760 + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
761 +
762 +picocolors@^1.0.0:
763 + version "1.0.0"
764 + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
765 + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
766 +
767 +picomatch@^2.0.4, picomatch@^2.2.1:
768 + version "2.3.1"
769 + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
770 + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
771 +
772 +pify@^4.0.1:
773 + version "4.0.1"
774 + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
775 + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
776 +
777 +portfinder@^1.0.28:
778 + version "1.0.32"
779 + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.32.tgz#2fe1b9e58389712429dc2bea5beb2146146c7f81"
780 + integrity sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==
781 + dependencies:
782 + async "^2.6.4"
783 + debug "^3.2.7"
784 + mkdirp "^0.5.6"
785 +
786 +qs@^6.4.0:
787 + version "6.12.1"
788 + resolved "https://registry.yarnpkg.com/qs/-/qs-6.12.1.tgz#39422111ca7cbdb70425541cba20c7d7b216599a"
789 + integrity sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==
790 + dependencies:
791 + side-channel "^1.0.6"
792 +
793 +readdirp@~3.6.0:
794 + version "3.6.0"
795 + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
796 + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
797 + dependencies:
798 + picomatch "^2.2.1"
799 +
800 +requires-port@^1.0.0:
801 + version "1.0.0"
802 + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
803 + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==
804 +
805 +safe-buffer@5.1.2:
806 + version "5.1.2"
807 + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
808 + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
809 +
810 +"safer-buffer@>= 2.1.2 < 3.0.0":
811 + version "2.1.2"
812 + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
813 + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
814 +
815 +secure-compare@3.0.1:
816 + version "3.0.1"
817 + resolved "https://registry.yarnpkg.com/secure-compare/-/secure-compare-3.0.1.tgz#f1a0329b308b221fae37b9974f3d578d0ca999e3"
818 + integrity sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==
819 +
820 +semver@^5.6.0:
821 + version "5.7.2"
822 + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8"
823 + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==
824 +
825 +semver@^6.3.1:
826 + version "6.3.1"
827 + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
828 + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
829 +
830 +set-function-length@^1.2.1:
831 + version "1.2.2"
832 + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449"
833 + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==
834 + dependencies:
835 + define-data-property "^1.1.4"
836 + es-errors "^1.3.0"
837 + function-bind "^1.1.2"
838 + get-intrinsic "^1.2.4"
839 + gopd "^1.0.1"
840 + has-property-descriptors "^1.0.2"
841 +
842 +side-channel@^1.0.6:
843 + version "1.0.6"
844 + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2"
845 + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==
846 + dependencies:
847 + call-bind "^1.0.7"
848 + es-errors "^1.3.0"
849 + get-intrinsic "^1.2.4"
850 + object-inspect "^1.13.1"
851 +
852 +slash@^2.0.0:
853 + version "2.0.0"
854 + resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44"
855 + integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==
856 +
857 +supports-color@^5.3.0:
858 + version "5.5.0"
859 + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
860 + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
861 + dependencies:
862 + has-flag "^3.0.0"
863 +
864 +supports-color@^7.1.0:
865 + version "7.2.0"
866 + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
867 + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
868 + dependencies:
869 + has-flag "^4.0.0"
870 +
871 +to-fast-properties@^2.0.0:
872 + version "2.0.0"
873 + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
874 + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==
875 +
876 +to-regex-range@^5.0.1:
877 + version "5.0.1"
878 + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
879 + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
880 + dependencies:
881 + is-number "^7.0.0"
882 +
883 +union@~0.5.0:
884 + version "0.5.0"
885 + resolved "https://registry.yarnpkg.com/union/-/union-0.5.0.tgz#b2c11be84f60538537b846edb9ba266ba0090075"
886 + integrity sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==
887 + dependencies:
888 + qs "^6.4.0"
889 +
890 +update-browserslist-db@^1.0.13:
891 + version "1.0.13"
892 + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4"
893 + integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==
894 + dependencies:
895 + escalade "^3.1.1"
896 + picocolors "^1.0.0"
897 +
898 +url-join@^4.0.1:
899 + version "4.0.1"
900 + resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.1.tgz#b642e21a2646808ffa178c4c5fda39844e12cde7"
901 + integrity sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==
902 +
903 +whatwg-encoding@^2.0.0:
904 + version "2.0.0"
905 + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz#e7635f597fd87020858626805a2729fa7698ac53"
906 + integrity sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==
907 + dependencies:
908 + iconv-lite "0.6.3"
909 +
910 +wrappy@1:
911 + version "1.0.2"
912 + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
913 + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
914 +
915 +yallist@^3.0.2:
916 + version "3.1.1"
917 + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
918 + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
netlify.toml
+1 -1
@@ -1,7 +1,7 @@
1 [build]
2 base = ""
3 publish = "fixtures/dom/build"
4 - command = "yarn build --type=UMD_DEV && cd fixtures/dom/ && yarn && yarn predev && yarn build"
4 + command = "yarn build --type=UMD_DEV && cd fixtures/dom/ && yarn && yarn build"
5
6 [[redirects]]
7 from = "/*"
package.json
+1 -1
@@ -121,7 +121,7 @@
121 "test-www": "node ./scripts/jest/jest-cli.js --release-channel=www-modern",
122 "test-classic": "node ./scripts/jest/jest-cli.js --release-channel=www-classic",
123 "test-build-devtools": "node ./scripts/jest/jest-cli.js --build --project devtools --release-channel=experimental",
124 - "test-dom-fixture": "cd fixtures/dom && yarn && yarn predev && yarn test",
124 + "test-dom-fixture": "cd fixtures/dom && yarn && yarn test",
125 "flow": "node ./scripts/tasks/flow.js",
126 "flow-ci": "node ./scripts/tasks/flow-ci.js",
127 "prettier": "node ./scripts/prettier/index.js write-changed",
packages/react-art/package.json
-1
@@ -34,7 +34,6 @@
34 "README.md",
35 "index.js",
36 "cjs/",
37 - "umd/",
37 "Circle.js",
38 "Rectangle.js",
39 "Wedge.js"
packages/react-cache/package.json
+1 -2
@@ -12,8 +12,7 @@
12 "LICENSE",
13 "README.md",
14 "index.js",
15 - "cjs/",
16 - "umd/"
15 + "cjs/"
16 ],
17 "peerDependencies": {
18 "react": "^17.0.0"
packages/react-dom/client.js
+4 -4
@@ -27,13 +27,13 @@ export function createRoot(
27 options?: CreateRootOptions,
28 ): RootType {
29 if (__DEV__) {
30 - (Internals: any).usingClientEntryPoint = true;
30 + Internals.usingClientEntryPoint = true;
31 }
32 try {
33 return createRootImpl(container, options);
34 } finally {
35 if (__DEV__) {
36 - (Internals: any).usingClientEntryPoint = false;
36 + Internals.usingClientEntryPoint = false;
37 }
38 }
39 }
@@ -44,13 +44,13 @@ export function hydrateRoot(
44 options?: HydrateRootOptions,
45 ): RootType {
46 if (__DEV__) {
47 - (Internals: any).usingClientEntryPoint = true;
47 + Internals.usingClientEntryPoint = true;
48 }
49 try {
50 return hydrateRootImpl(container, children, options);
51 } finally {
52 if (__DEV__) {
53 - (Internals: any).usingClientEntryPoint = false;
53 + Internals.usingClientEntryPoint = false;
54 }
55 }
56 }
packages/react-dom/package.json
+1 -2
@@ -47,8 +47,7 @@
47 "unstable_testing.js",
48 "unstable_testing.react-server.js",
49 "unstable_server-external-runtime.js",
50 - "cjs/",
51 - "umd/"
50 + "cjs/"
51 ],
52 "exports": {
53 ".": {
packages/react-dom/src/client/ReactDOM.js
+2 -2
@@ -89,7 +89,7 @@ function createRoot(
89 options?: CreateRootOptions,
90 ): RootType {
91 if (__DEV__) {
92 - if (!(Internals: any).usingClientEntryPoint && !__UMD__) {
92 + if (!Internals.usingClientEntryPoint) {
93 console.error(
94 'You are importing createRoot from "react-dom" which is not supported. ' +
95 'You should instead import it from "react-dom/client".',
@@ -105,7 +105,7 @@ function hydrateRoot(
105 options?: HydrateRootOptions,
106 ): RootType {
107 if (__DEV__) {
108 - if (!(Internals: any).usingClientEntryPoint && !__UMD__) {
108 + if (!Internals.usingClientEntryPoint) {
109 console.error(
110 'You are importing hydrateRoot from "react-dom" which is not supported. ' +
111 'You should instead import it from "react-dom/client".',
packages/react-is/package.json
+1 -2
@@ -21,7 +21,6 @@
21 "LICENSE",
22 "README.md",
23 "index.js",
24 - "cjs/",
25 - "umd/"
24 + "cjs/"
25 ]
26 }
packages/react-refresh/package.json
+1 -2
@@ -13,8 +13,7 @@
13 "README.md",
14 "babel.js",
15 "runtime.js",
16 - "cjs/",
17 - "umd/"
16 + "cjs/"
17 ],
18 "main": "runtime.js",
19 "exports": {
packages/react-server-dom-turbopack/package.json
-1
@@ -24,7 +24,6 @@
24 "server.node.unbundled.js",
25 "node-register.js",
26 "cjs/",
27 - "umd/",
27 "esm/"
28 ],
29 "exports": {
packages/react-server-dom-webpack/package.json
-1
@@ -25,7 +25,6 @@
25 "server.node.unbundled.js",
26 "node-register.js",
27 "cjs/",
28 - "umd/",
28 "esm/"
29 ],
30 "exports": {
packages/react-test-renderer/package.json
+1 -2
@@ -30,7 +30,6 @@
30 "README.md",
31 "index.js",
32 "shallow.js",
33 - "cjs/",
34 - "umd/"
33 + "cjs/"
34 ]
35 }
packages/react/package.json
-1
@@ -13,7 +13,6 @@
13 "README.md",
14 "index.js",
15 "cjs/",
16 - "umd/",
16 "jsx-runtime.js",
17 "jsx-runtime.react-server.js",
18 "jsx-dev-runtime.js",
packages/react/src/forks/ReactSharedInternalsClient.umd.js deleted
-101
@@ -1,101 +0,0 @@
1 -/**
2 - * Copyright (c) Meta Platforms, Inc. and 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 - * @flow
8 - */
9 -
10 -import type {Dispatcher} from 'react-reconciler/src/ReactInternalTypes';
11 -import type {CacheDispatcher} from 'react-reconciler/src/ReactInternalTypes';
12 -import type {BatchConfigTransition} from 'react-reconciler/src/ReactFiberTracingMarkerComponent';
13 -import type {Fiber} from 'react-reconciler/src/ReactInternalTypes';
14 -
15 -import * as Scheduler from 'scheduler';
16 -
17 -import {disableStringRefs} from 'shared/ReactFeatureFlags';
18 -
19 -export type SharedStateClient = {
20 - H: null | Dispatcher, // ReactCurrentDispatcher for Hooks
21 - C: null | CacheDispatcher, // ReactCurrentCache for Cache
22 - T: null | BatchConfigTransition, // ReactCurrentBatchConfig for Transitions
23 -
24 - // DEV-only-ish
25 - owner?: null | Fiber, // ReactCurrentOwner is Fiber on the Client, null in Fizz. Flight uses SharedStateServer.
26 -
27 - // ReactCurrentActQueue
28 - actQueue?: null | Array<RendererTask>,
29 -
30 - // Used to reproduce behavior of `batchedUpdates` in legacy mode.
31 - isBatchingLegacy?: boolean,
32 - didScheduleLegacyUpdate?: boolean,
33 -
34 - // Tracks whether something called `use` during the current batch of work.
35 - // Determines whether we should yield to microtasks to unwrap already resolved
36 - // promises without suspending.
37 - didUsePromise?: boolean,
38 -
39 - // Track first uncaught error within this act
40 - thrownErrors?: Array<mixed>,
41 -
42 - // ReactDebugCurrentFrame
43 - setExtraStackFrame?: (stack: null | string) => void,
44 - getCurrentStack?: null | (() => string),
45 - getStackAddendum?: () => string,
46 -
47 - Scheduler: any,
48 -};
49 -
50 -export type RendererTask = boolean => RendererTask | null;
51 -
52 -const ReactSharedInternals: SharedStateClient = {
53 - H: null,
54 - C: null,
55 - T: null,
56 -
57 - // Re-export the schedule API(s) for UMD bundles.
58 - // This avoids introducing a dependency on a new UMD global in a minor update,
59 - // Since that would be a breaking change (e.g. for all existing CodeSandboxes).
60 - // This re-export is only required for UMD bundles;
61 - // CJS bundles use the shared NPM package.
62 - Scheduler,
63 -};
64 -
65 -if (__DEV__ || !disableStringRefs) {
66 - ReactSharedInternals.owner = null;
67 -}
68 -
69 -if (__DEV__) {
70 - ReactSharedInternals.actQueue = null;
71 - ReactSharedInternals.isBatchingLegacy = false;
72 - ReactSharedInternals.didScheduleLegacyUpdate = false;
73 - ReactSharedInternals.didUsePromise = false;
74 - ReactSharedInternals.thrownErrors = [];
75 -
76 - let currentExtraStackFrame = (null: null | string);
77 - ReactSharedInternals.setExtraStackFrame = function (stack: null | string) {
78 - currentExtraStackFrame = stack;
79 - };
80 - // Stack implementation injected by the current renderer.
81 - ReactSharedInternals.getCurrentStack = (null: null | (() => string));
82 -
83 - ReactSharedInternals.getStackAddendum = function (): string {
84 - let stack = '';
85 -
86 - // Add an extra top frame while an element is being validated
87 - if (currentExtraStackFrame) {
88 - stack += currentExtraStackFrame;
89 - }
90 -
91 - // Delegate to the injected renderer-specific implementation
92 - const impl = ReactSharedInternals.getCurrentStack;
93 - if (impl) {
94 - stack += impl() || '';
95 - }
96 -
97 - return stack;
98 - };
99 -}
100 -
101 -export default ReactSharedInternals;
packages/scheduler/package.json
+1 -2
@@ -22,7 +22,6 @@
22 "index.native.js",
23 "unstable_mock.js",
24 "unstable_post_task.js",
25 - "cjs/",
26 - "umd/"
25 + "cjs/"
26 ]
27 }
packages/scheduler/src/__tests__/SchedulerUMDBundle-test.internal.js deleted
-54
@@ -1,54 +0,0 @@
1 -/**
2 - * Copyright (c) Meta Platforms, Inc. and 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 - * @jest-environment node
8 - */
9 -'use strict';
10 -
11 -class MockMessageChannel {
12 - constructor() {
13 - this.port1 = jest.fn();
14 - this.port2 = jest.fn();
15 - }
16 -}
17 -
18 -describe('Scheduling UMD bundle', () => {
19 - beforeEach(() => {
20 - // Fool SECRET_INTERNALS object into including UMD forwarding methods.
21 - global.__UMD__ = true;
22 -
23 - jest.resetModules();
24 - jest.unmock('scheduler');
25 -
26 - global.MessageChannel = MockMessageChannel;
27 - });
28 -
29 - afterEach(() => {
30 - global.MessageChannel = undefined;
31 - });
32 -
33 - function validateForwardedAPIs(api, forwardedAPIs) {
34 - const apiKeys = Object.keys(api).sort();
35 - forwardedAPIs.forEach(forwardedAPI => {
36 - expect(Object.keys(forwardedAPI).sort()).toEqual(apiKeys);
37 - });
38 - }
39 -
40 - it('should define the same scheduling API', () => {
41 - const api = require('../../index');
42 - const umdAPIDev = require('../../npm/umd/scheduler.development');
43 - const umdAPIProd = require('../../npm/umd/scheduler.production.min');
44 - const umdAPIProfiling = require('../../npm/umd/scheduler.profiling.min');
45 - const secretAPI =
46 - require('react/src/forks/ReactSharedInternalsClient.umd').default;
47 - validateForwardedAPIs(api, [
48 - umdAPIDev,
49 - umdAPIProd,
50 - umdAPIProfiling,
51 - secretAPI.Scheduler,
52 - ]);
53 - });
54 -});
packages/shared/forks/Scheduler.umd.js deleted
-63
@@ -1,63 +0,0 @@
1 -/**
2 - * Copyright (c) Meta Platforms, Inc. and 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 - * @flow
8 - */
9 -
10 -import * as React from 'react';
11 -
12 -const ReactInternals =
13 - React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;
14 -
15 -const {
16 - unstable_cancelCallback,
17 - unstable_now,
18 - unstable_scheduleCallback,
19 - unstable_shouldYield,
20 - unstable_requestPaint,
21 - unstable_getFirstCallbackNode,
22 - unstable_runWithPriority,
23 - unstable_next,
24 - unstable_continueExecution,
25 - unstable_pauseExecution,
26 - unstable_getCurrentPriorityLevel,
27 - unstable_ImmediatePriority,
28 - unstable_UserBlockingPriority,
29 - unstable_NormalPriority,
30 - unstable_LowPriority,
31 - unstable_IdlePriority,
32 - unstable_forceFrameRate,
33 -
34 - // this doesn't actually exist on the scheduler, but it *does*
35 - // on scheduler/unstable_mock, which we'll need inside act()
36 - // and for internal testing
37 - unstable_flushAllWithoutAsserting,
38 - log,
39 - unstable_setDisableYieldValue,
40 -} = ((ReactInternals: any).Scheduler: any);
41 -
42 -export {
43 - unstable_cancelCallback,
44 - unstable_now,
45 - unstable_scheduleCallback,
46 - unstable_shouldYield,
47 - unstable_requestPaint,
48 - unstable_getFirstCallbackNode,
49 - unstable_runWithPriority,
50 - unstable_next,
51 - unstable_continueExecution,
52 - unstable_pauseExecution,
53 - unstable_getCurrentPriorityLevel,
54 - unstable_ImmediatePriority,
55 - unstable_UserBlockingPriority,
56 - unstable_NormalPriority,
57 - unstable_LowPriority,
58 - unstable_IdlePriority,
59 - unstable_forceFrameRate,
60 - unstable_flushAllWithoutAsserting,
61 - log,
62 - unstable_setDisableYieldValue,
63 -};
scripts/flow/environment.js
-1
@@ -10,7 +10,6 @@
10 /* eslint-disable */
11
12 declare const __PROFILE__: boolean;
13 -declare const __UMD__: boolean;
13 declare const __EXPERIMENTAL__: boolean;
14 declare const __VARIANT__: boolean;
15
scripts/jest/setupEnvironment.js
-1
@@ -8,7 +8,6 @@ global.__DEV__ = NODE_ENV === 'development';
8 global.__EXTENSION__ = false;
9 global.__TEST__ = NODE_ENV === 'test';
10 global.__PROFILE__ = NODE_ENV === 'development';
11 -global.__UMD__ = false;
11
12 const RELEASE_CHANNEL = process.env.RELEASE_CHANNEL;
13
scripts/rollup/build.js
+7 -44
@@ -3,7 +3,6 @@
3 const rollup = require('rollup');
4 const babel = require('@rollup/plugin-babel').babel;
5 const closure = require('./plugins/closure-plugin');
6 -const commonjs = require('@rollup/plugin-commonjs');
6 const flowRemoveTypes = require('flow-remove-types');
7 const prettier = require('rollup-plugin-prettier');
8 const replace = require('@rollup/plugin-replace');
@@ -48,9 +47,6 @@ const {
47 NODE_ES2015,
48 ESM_DEV,
49 ESM_PROD,
51 - UMD_DEV,
52 - UMD_PROD,
53 - UMD_PROFILING,
50 NODE_DEV,
51 NODE_PROD,
52 NODE_PROFILING,
@@ -228,10 +224,6 @@ function getRollupOutputOptions(
224
225 function getFormat(bundleType) {
226 switch (bundleType) {
231 - case UMD_DEV:
232 - case UMD_PROD:
233 - case UMD_PROFILING:
234 - return `umd`;
227 case NODE_ES2015:
228 case NODE_DEV:
229 case NODE_PROD:
@@ -261,7 +253,6 @@ function isProductionBundleType(bundleType) {
253 case NODE_ES2015:
254 return true;
255 case ESM_DEV:
264 - case UMD_DEV:
256 case NODE_DEV:
257 case BUN_DEV:
258 case FB_WWW_DEV:
@@ -269,10 +260,8 @@ function isProductionBundleType(bundleType) {
260 case RN_FB_DEV:
261 return false;
262 case ESM_PROD:
272 - case UMD_PROD:
263 case NODE_PROD:
264 case BUN_PROD:
275 - case UMD_PROFILING:
265 case NODE_PROFILING:
266 case FB_WWW_PROD:
267 case FB_WWW_PROFILING:
@@ -302,15 +291,12 @@ function isProfilingBundleType(bundleType) {
291 case RN_OSS_PROD:
292 case ESM_DEV:
293 case ESM_PROD:
305 - case UMD_DEV:
306 - case UMD_PROD:
294 case BROWSER_SCRIPT:
295 return false;
296 case FB_WWW_PROFILING:
297 case NODE_PROFILING:
298 case RN_FB_PROFILING:
299 case RN_OSS_PROFILING:
313 - case UMD_PROFILING:
300 return true;
301 default:
302 throw new Error(`Unknown type: ${bundleType}`);
@@ -318,10 +304,6 @@ function isProfilingBundleType(bundleType) {
304 }
305
306 function getBundleTypeFlags(bundleType) {
321 - const isUMDBundle =
322 - bundleType === UMD_DEV ||
323 - bundleType === UMD_PROD ||
324 - bundleType === UMD_PROFILING;
307 const isFBWWWBundle =
308 bundleType === FB_WWW_DEV ||
309 bundleType === FB_WWW_PROD ||
@@ -341,17 +323,10 @@ function getBundleTypeFlags(bundleType) {
323
324 const shouldStayReadable = isFBWWWBundle || isRNBundle || forcePrettyOutput;
325
344 - const shouldBundleDependencies =
345 - bundleType === UMD_DEV ||
346 - bundleType === UMD_PROD ||
347 - bundleType === UMD_PROFILING;
348 -
326 return {
350 - isUMDBundle,
327 isFBWWWBundle,
328 isRNBundle,
329 isFBRNBundle,
354 - shouldBundleDependencies,
330 shouldStayReadable,
331 };
332 }
@@ -387,7 +362,7 @@ function getPlugins(
362 const isProduction = isProductionBundleType(bundleType);
363 const isProfiling = isProfilingBundleType(bundleType);
364
390 - const {isUMDBundle, shouldStayReadable} = getBundleTypeFlags(bundleType);
365 + const {shouldStayReadable} = getBundleTypeFlags(bundleType);
366
367 const needsMinifiedByClosure = isProduction && bundleType !== ESM_PROD;
368
@@ -403,14 +378,12 @@ function getPlugins(
378 // Generate sourcemaps for true "production" build artifacts
379 // that will be used by bundlers, such as `react-dom.production.min.js`.
380 // Also include profiling builds as well.
406 - // UMD builds are rarely used and not worth having sourcemaps.
381 const needsSourcemaps =
382 needsMinifiedByClosure &&
383 // This will only exclude `unstable_server-external-runtime.js` artifact
384 // To start generating sourcemaps for it, we should stop manually copying it to `facebook-www`
385 // and force `react-dom` to include .map files in npm-package at the root level
386 bundleType !== BROWSER_SCRIPT &&
413 - !isUMDBundle &&
387 !sourcemapPackageExcludes.includes(entry) &&
388 !shouldStayReadable;
389
@@ -463,17 +436,12 @@ function getPlugins(
436 values: {
437 __DEV__: isProduction ? 'false' : 'true',
438 __PROFILE__: isProfiling || !isProduction ? 'true' : 'false',
466 - __UMD__: isUMDBundle ? 'true' : 'false',
439 'process.env.NODE_ENV': isProduction
440 ? "'production'"
441 : "'development'",
442 __EXPERIMENTAL__,
443 },
444 }),
473 - // The CommonJS plugin *only* exists to pull "art" into "react-art".
474 - // I'm going to port "art" to ES modules to avoid this problem.
475 - // Please don't enable this for anything else!
476 - isUMDBundle && entry === 'react-art' && commonjs(),
445 {
446 name: 'top-level-definitions',
447 renderChunk(source) {
@@ -530,7 +498,7 @@ function getPlugins(
498
499 // Don't let it create global variables in the browser.
500 // https://github.com/facebook/react/issues/10909
533 - assume_function_wrapper: !isUMDBundle,
501 + assume_function_wrapper: true,
502 renaming: !shouldStayReadable,
503 },
504 {needsSourcemaps}
@@ -733,8 +701,7 @@ async function createBundle(bundle, bundleType) {
701 const format = getFormat(bundleType);
702 const packageName = Packaging.getPackageName(bundle.entry);
703
736 - const {isFBWWWBundle, isFBRNBundle, shouldBundleDependencies} =
737 - getBundleTypeFlags(bundleType);
704 + const {isFBWWWBundle, isFBRNBundle} = getBundleTypeFlags(bundleType);
705
706 let resolvedEntry = resolveEntryFork(
707 require.resolve(bundle.entry),
@@ -743,10 +710,9 @@ async function createBundle(bundle, bundleType) {
710
711 const peerGlobals = Modules.getPeerGlobals(bundle.externals, bundleType);
712 let externals = Object.keys(peerGlobals);
746 - if (!shouldBundleDependencies) {
747 - const deps = Modules.getDependencies(bundleType, bundle.entry);
748 - externals = externals.concat(deps);
749 - }
713 +
714 + const deps = Modules.getDependencies(bundleType, bundle.entry);
715 + externals = externals.concat(deps);
716
717 const importSideEffects = Modules.getImportSideEffects();
718 const pureExternalModules = Object.keys(importSideEffects).filter(
@@ -763,7 +729,7 @@ async function createBundle(bundle, bundleType) {
729 external(id) {
730 const containsThisModule = pkg => id === pkg || id.startsWith(pkg + '/');
731 const isProvidedByDependency = externals.some(containsThisModule);
766 - if (!shouldBundleDependencies && isProvidedByDependency) {
732 + if (isProvidedByDependency) {
733 if (id.indexOf('/src/') !== -1) {
734 throw Error(
735 'You are trying to import ' +
@@ -931,9 +897,6 @@ async function buildEverything() {
897 [bundle, NODE_ES2015],
898 [bundle, ESM_DEV],
899 [bundle, ESM_PROD],
934 - [bundle, UMD_DEV],
935 - [bundle, UMD_PROD],
936 - [bundle, UMD_PROFILING],
900 [bundle, NODE_DEV],
901 [bundle, NODE_PROD],
902 [bundle, NODE_PROFILING],
scripts/rollup/bundles.js
+9 -47
@@ -11,9 +11,6 @@ const bundleTypes = {
11 NODE_ES2015: 'NODE_ES2015',
12 ESM_DEV: 'ESM_DEV',
13 ESM_PROD: 'ESM_PROD',
14 - UMD_DEV: 'UMD_DEV',
15 - UMD_PROD: 'UMD_PROD',
16 - UMD_PROFILING: 'UMD_PROFILING',
14 NODE_DEV: 'NODE_DEV',
15 NODE_PROD: 'NODE_PROD',
16 NODE_PROFILING: 'NODE_PROFILING',
@@ -35,9 +32,6 @@ const {
32 NODE_ES2015,
33 ESM_DEV,
34 ESM_PROD,
38 - UMD_DEV,
39 - UMD_PROD,
40 - UMD_PROFILING,
35 NODE_DEV,
36 NODE_PROD,
37 NODE_PROFILING,
@@ -72,9 +66,6 @@ const bundles = [
66 /******* Isomorphic *******/
67 {
68 bundleTypes: [
75 - UMD_DEV,
76 - UMD_PROD,
77 - UMD_PROFILING,
69 NODE_DEV,
70 NODE_PROD,
71 FB_WWW_DEV,
@@ -173,9 +164,6 @@ const bundles = [
164 /******* React DOM *******/
165 {
166 bundleTypes: [
176 - UMD_DEV,
177 - UMD_PROD,
178 - UMD_PROFILING,
167 NODE_DEV,
168 NODE_PROD,
169 NODE_PROFILING,
@@ -207,7 +195,7 @@ const bundles = [
195 /******* Test Utils *******/
196 {
197 moduleType: RENDERER_UTILS,
210 - bundleTypes: [FB_WWW_DEV, NODE_DEV, NODE_PROD, UMD_DEV, UMD_PROD],
198 + bundleTypes: [FB_WWW_DEV, NODE_DEV, NODE_PROD],
199 entry: 'react-dom/test-utils',
200 global: 'ReactTestUtils',
201 minifyWithProdErrorCodes: false,
@@ -230,14 +218,7 @@ const bundles = [
218
219 /******* React DOM Server *******/
220 {
233 - bundleTypes: [
234 - UMD_DEV,
235 - UMD_PROD,
236 - NODE_DEV,
237 - NODE_PROD,
238 - FB_WWW_DEV,
239 - FB_WWW_PROD,
240 - ],
221 + bundleTypes: [NODE_DEV, NODE_PROD, FB_WWW_DEV, FB_WWW_PROD],
222 moduleType: RENDERER,
223 entry: 'react-dom/src/server/ReactDOMLegacyServerBrowser.js',
224 name: 'react-dom-server-legacy.browser',
@@ -270,7 +251,7 @@ const bundles = [
251
252 /******* React DOM Fizz Server *******/
253 {
273 - bundleTypes: [NODE_DEV, NODE_PROD, UMD_DEV, UMD_PROD],
254 + bundleTypes: [NODE_DEV, NODE_PROD],
255 moduleType: RENDERER,
256 entry: 'react-dom/src/server/react-dom-server.browser.js',
257 name: 'react-dom-server.browser',
@@ -339,7 +320,7 @@ const bundles = [
320
321 /******* React DOM Server Render Stub *******/
322 {
342 - bundleTypes: [NODE_DEV, NODE_PROD, UMD_DEV, UMD_PROD],
323 + bundleTypes: [NODE_DEV, NODE_PROD],
324 moduleType: RENDERER,
325 entry: 'react-dom/server-rendering-stub',
326 name: 'react-dom-server-rendering-stub',
@@ -351,7 +332,7 @@ const bundles = [
332
333 /******* React Server DOM Webpack Server *******/
334 {
354 - bundleTypes: [NODE_DEV, NODE_PROD, UMD_DEV, UMD_PROD],
335 + bundleTypes: [NODE_DEV, NODE_PROD],
336 moduleType: RENDERER,
337 entry: 'react-server-dom-webpack/server.browser',
338 condition: 'react-server',
@@ -393,7 +374,7 @@ const bundles = [
374
375 /******* React Server DOM Webpack Client *******/
376 {
396 - bundleTypes: [NODE_DEV, NODE_PROD, UMD_DEV, UMD_PROD],
377 + bundleTypes: [NODE_DEV, NODE_PROD],
378 moduleType: RENDERER,
379 entry: 'react-server-dom-webpack/client.browser',
380 global: 'ReactServerDOMClient',
@@ -467,7 +448,7 @@ const bundles = [
448
449 /******* React Server DOM Turbopack Server *******/
450 {
470 - bundleTypes: [NODE_DEV, NODE_PROD, UMD_DEV, UMD_PROD],
451 + bundleTypes: [NODE_DEV, NODE_PROD],
452 moduleType: RENDERER,
453 entry: 'react-server-dom-turbopack/server.browser',
454 condition: 'react-server',
@@ -509,7 +490,7 @@ const bundles = [
490
491 /******* React Server DOM Turbopack Client *******/
492 {
512 - bundleTypes: [NODE_DEV, NODE_PROD, UMD_DEV, UMD_PROD],
493 + bundleTypes: [NODE_DEV, NODE_PROD],
494 moduleType: RENDERER,
495 entry: 'react-server-dom-turbopack/client.browser',
496 global: 'ReactServerDOMClient',
@@ -651,14 +632,7 @@ const bundles = [
632
633 /******* React ART *******/
634 {
654 - bundleTypes: [
655 - UMD_DEV,
656 - UMD_PROD,
657 - NODE_DEV,
658 - NODE_PROD,
659 - FB_WWW_DEV,
660 - FB_WWW_PROD,
661 - ],
635 + bundleTypes: [NODE_DEV, NODE_PROD, FB_WWW_DEV, FB_WWW_PROD],
636 moduleType: RENDERER,
637 entry: 'react-art',
638 global: 'ReactART',
@@ -752,8 +726,6 @@ const bundles = [
726 FB_WWW_DEV,
727 NODE_DEV,
728 NODE_PROD,
755 - UMD_DEV,
756 - UMD_PROD,
729 RN_FB_DEV,
730 RN_FB_PROD,
731 RN_FB_PROFILING,
@@ -917,8 +889,6 @@ const bundles = [
889 NODE_PROD,
890 FB_WWW_DEV,
891 FB_WWW_PROD,
920 - UMD_DEV,
921 - UMD_PROD,
892 RN_FB_DEV,
893 RN_FB_PROD,
894 RN_FB_PROFILING,
@@ -1044,8 +1014,6 @@ const bundles = [
1014 /******* React Scheduler Mock (experimental) *******/
1015 {
1016 bundleTypes: [
1047 - UMD_DEV,
1048 - UMD_PROD,
1017 NODE_DEV,
1018 NODE_PROD,
1019 FB_WWW_DEV,
@@ -1172,12 +1140,6 @@ function getFilename(bundle, bundleType) {
1140 return `${name}.development.js`;
1141 case ESM_PROD:
1142 return `${name}.production.min.js`;
1175 - case UMD_DEV:
1176 - return `${name}.development.js`;
1177 - case UMD_PROD:
1178 - return `${name}.production.min.js`;
1179 - case UMD_PROFILING:
1180 - return `${name}.profiling.min.js`;
1143 case NODE_DEV:
1144 return `${name}.development.js`;
1145 case NODE_PROD:
scripts/rollup/forks.js
-33
@@ -5,9 +5,6 @@ const {bundleTypes, moduleTypes} = require('./bundles');
5 const inlinedHostConfigs = require('../shared/inlinedHostConfigs');
6
7 const {
8 - UMD_DEV,
9 - UMD_PROD,
10 - UMD_PROFILING,
8 FB_WWW_DEV,
9 FB_WWW_PROD,
10 FB_WWW_PROFILING,
@@ -188,25 +185,6 @@ const forks = Object.freeze({
185 return null;
186 },
187
191 - './packages/scheduler/index.js': (bundleType, entry, dependencies) => {
192 - switch (bundleType) {
193 - case UMD_DEV:
194 - case UMD_PROD:
195 - case UMD_PROFILING:
196 - if (dependencies.indexOf('react') === -1) {
197 - // It's only safe to use this fork for modules that depend on React,
198 - // because they read the re-exported API from the SECRET_INTERNALS object.
199 - return null;
200 - }
201 - // Optimization: for UMDs, use the API that is already a part of the React
202 - // package instead of requiring it to be loaded via a separate <script> tag
203 - return './packages/shared/forks/Scheduler.umd.js';
204 - default:
205 - // For other bundles, use the shared NPM package.
206 - return null;
207 - }
208 - },
209 -
188 './packages/scheduler/src/SchedulerFeatureFlags.js': (
189 bundleType,
190 entry,
@@ -231,17 +209,6 @@ const forks = Object.freeze({
209 }
210 },
211
234 - './packages/react/src/ReactSharedInternalsClient.js': (bundleType, entry) => {
235 - switch (bundleType) {
236 - case UMD_DEV:
237 - case UMD_PROD:
238 - case UMD_PROFILING:
239 - return './packages/react/src/forks/ReactSharedInternalsClient.umd.js';
240 - default:
241 - return null;
242 - }
243 - },
244 -
212 './packages/react-reconciler/src/ReactFiberConfig.js': (
213 bundleType,
214 entry,
scripts/rollup/modules.js
-9
@@ -1,7 +1,6 @@
1 'use strict';
2
3 const forks = require('./forks');
4 -const {UMD_DEV, UMD_PROD, UMD_PROFILING} = require('./bundles').bundleTypes;
4
5 // For any external that is used in a DEV-only condition, explicitly
6 // specify whether it has side effects during import or not. This lets
@@ -40,14 +39,6 @@ const knownGlobals = Object.freeze({
39 function getPeerGlobals(externals, bundleType) {
40 const peerGlobals = {};
41 externals.forEach(name => {
43 - if (
44 - !knownGlobals[name] &&
45 - (bundleType === UMD_DEV ||
46 - bundleType === UMD_PROD ||
47 - bundleType === UMD_PROFILING)
48 - ) {
49 - throw new Error('Cannot build UMD without a global name for: ' + name);
50 - }
42 peerGlobals[name] = knownGlobals[name];
43 });
44 return peerGlobals;
scripts/rollup/packaging.js
-7
@@ -21,9 +21,6 @@ const {
21 NODE_ES2015,
22 ESM_DEV,
23 ESM_PROD,
24 - UMD_DEV,
25 - UMD_PROD,
26 - UMD_PROFILING,
24 NODE_DEV,
25 NODE_PROD,
26 NODE_PROFILING,
@@ -62,10 +59,6 @@ function getBundleOutputPath(bundle, bundleType, filename, packageName) {
59 case NODE_PROD:
60 case NODE_PROFILING:
61 return `build/node_modules/${packageName}/cjs/${filename}`;
65 - case UMD_DEV:
66 - case UMD_PROD:
67 - case UMD_PROFILING:
68 - return `build/node_modules/${packageName}/umd/${filename}`;
62 case FB_WWW_DEV:
63 case FB_WWW_PROD:
64 case FB_WWW_PROFILING:
scripts/rollup/validate/eslintrc.umd.js deleted
-94
@@ -1,94 +0,0 @@
1 -'use strict';
2 -
3 -module.exports = {
4 - env: {
5 - browser: true,
6 - },
7 - globals: {
8 - // ES6
9 - BigInt: 'readonly',
10 - Map: 'readonly',
11 - Set: 'readonly',
12 - Symbol: 'readonly',
13 - Proxy: 'readonly',
14 - WeakMap: 'readonly',
15 - WeakSet: 'readonly',
16 -
17 - Int8Array: 'readonly',
18 - Uint8Array: 'readonly',
19 - Uint8ClampedArray: 'readonly',
20 - Int16Array: 'readonly',
21 - Uint16Array: 'readonly',
22 - Int32Array: 'readonly',
23 - Uint32Array: 'readonly',
24 - Float32Array: 'readonly',
25 - Float64Array: 'readonly',
26 - BigInt64Array: 'readonly',
27 - BigUint64Array: 'readonly',
28 - DataView: 'readonly',
29 - ArrayBuffer: 'readonly',
30 -
31 - Reflect: 'readonly',
32 - globalThis: 'readonly',
33 -
34 - FinalizationRegistry: 'readonly',
35 -
36 - // Vendor specific
37 - MSApp: 'readonly',
38 - __REACT_DEVTOOLS_GLOBAL_HOOK__: 'readonly',
39 - // UMD wrapper code
40 - // TODO: this is too permissive.
41 - // Ideally we should only allow these *inside* the UMD wrapper.
42 - exports: 'readonly',
43 - module: 'readonly',
44 - define: 'readonly',
45 - require: 'readonly',
46 - global: 'readonly',
47 - // Internet Explorer
48 - setImmediate: 'readonly',
49 - // Trusted Types
50 - trustedTypes: 'readonly',
51 -
52 - // Scheduler profiling
53 - TaskController: 'readonly',
54 - reportError: 'readonly',
55 - AggregateError: 'readonly',
56 -
57 - // Flight
58 - Promise: 'readonly',
59 -
60 - // Node Feature Detection
61 - process: 'readonly',
62 -
63 - // Temp
64 - AsyncLocalStorage: 'readonly',
65 - async_hooks: 'readonly',
66 -
67 - // Flight Webpack
68 - __webpack_chunk_load__: 'readonly',
69 - __webpack_require__: 'readonly',
70 -
71 - // Flight Turbopack
72 - __turbopack_load__: 'readonly',
73 - __turbopack_require__: 'readonly',
74 -
75 - // jest
76 - jest: 'readonly',
77 -
78 - // act
79 - IS_REACT_ACT_ENVIRONMENT: 'readonly',
80 - },
81 - parserOptions: {
82 - ecmaVersion: 5,
83 - sourceType: 'script',
84 - },
85 - rules: {
86 - 'no-undef': 'error',
87 - 'no-shadow-restricted-names': 'error',
88 - },
89 -
90 - // These plugins aren't used, but eslint complains if an eslint-ignore comment
91 - // references unused plugins. An alternate approach could be to strip
92 - // eslint-ignore comments as part of the build.
93 - plugins: ['ft-flow', 'jest', 'no-for-of-loops', 'react', 'react-internal'],
94 -};
scripts/rollup/validate/index.js
-3
@@ -41,9 +41,6 @@ function getFormat(filepath) {
41 if (filepath.includes('esm')) {
42 return 'esm';
43 }
44 - if (filepath.includes('umd')) {
45 - return 'umd';
46 - }
44 if (
45 filepath.includes('oss-experimental') ||
46 filepath.includes('oss-stable')
scripts/rollup/wrappers.js
-54
@@ -9,9 +9,6 @@ const {
9 NODE_ES2015,
10 ESM_DEV,
11 ESM_PROD,
12 - UMD_DEV,
13 - UMD_PROD,
14 - UMD_PROFILING,
12 NODE_DEV,
13 NODE_PROD,
14 NODE_PROFILING,
@@ -81,21 +78,6 @@ ${source}`;
78 return source;
79 },
80
84 - /***************** UMD_DEV *****************/
85 - [UMD_DEV](source, globalName, filename, moduleType) {
86 - return source;
87 - },
88 -
89 - /***************** UMD_PROD *****************/
90 - [UMD_PROD](source, globalName, filename, moduleType) {
91 - return `(function(){${source}})();`;
92 - },
93 -
94 - /***************** UMD_PROFILING *****************/
95 - [UMD_PROFILING](source, globalName, filename, moduleType) {
96 - return `(function(){${source}})();`;
97 - },
98 -
81 /***************** NODE_DEV *****************/
82 [NODE_DEV](source, globalName, filename, moduleType) {
83 return `'use strict';
@@ -282,42 +264,6 @@ ${source}`;
264 ${license}
265 */
266
285 -${source}`;
286 - },
287 -
288 - /***************** UMD_DEV *****************/
289 - [UMD_DEV](source, globalName, filename, moduleType) {
290 - return `/**
291 - * @license React
292 - * ${filename}
293 - *
294 -${license}
295 - */
296 -
297 -${source}`;
298 - },
299 -
300 - /***************** UMD_PROD *****************/
301 - [UMD_PROD](source, globalName, filename, moduleType) {
302 - return `/**
303 - * @license React
304 - * ${filename}
305 - *
306 -${license}
307 - */
308 -
309 -${source}`;
310 - },
311 -
312 - /***************** UMD_PROFILING *****************/
313 - [UMD_PROFILING](source, globalName, filename, moduleType) {
314 - return `/**
315 - * @license React
316 - * ${filename}
317 - *
318 -${license}
319 - */
320 -
267 ${source}`;
268 },
269