@samitouri / QOS-React-1 / commits / d0d623d4c1

[react-devtools-cdt-mcp] chrome-devtools-mcp integration (#36600)

> [!NOTE] > I had to invalidate `node_modules` cache keys on CI, because we are now using `react-devtools-facade` package and we need to create a symlink to it, otherwise Flow will fail. We use a hash value of `yarn.lock`, but it's not invalidated when a package inside yarn workspace is using another private package. --- This change introduces new `react-devtools-cdt-mcp` package, which is responsible for installing React tools for `chrome-devtools-mcp` server. It is using `react-devtools-facade` as a dependency: it doesn't own the implementation of these tools, it just relays Facade's tools to `chrome-devtools-mcp` format. When CDT MCP navigates to a fresh page, it emits unique `devtoolsdiscovery` method, that has `respondWith` method, which is the integration point between runtime libraries and MCP server. `react-devtools-cdt-mcp` is the owner for this integration. More details are available here - https://github.com/ChromeDevTools/chrome-devtools-mcp/blob/main/docs/third-party-developer-tools.md. Here is the list of tools that are being installed: - `react_get_component_tree` - `react_get_component_by_uid` - `react_find_components` - `react_get_component_source` - `react_get_owner_stack_trace` - `react_get_owner_stack` - `react_start_profiling` - `react_stop_profiling ` - `react_get_trace_overview` - `react_get_commit_report` --- Quick demo how to test the package with `chrome-devtools-mcp` CLI. Steps are also mentioned in `README` file: https://github.com/user-attachments/assets/af9fefce-03f0-4ebd-a94f-e9dd72b87f4d

Ruslan Lesiutin committed Jun 30, 2026 at 19:52 UTC d0d623d4c1ac02391a3bc97c8c0e8fee9cdfea2c
24 files changed +4616 -19
.eslintignore
+2
@@ -28,6 +28,8 @@ packages/react-devtools-shared/src/hooks/__tests__/__source__/__untransformed__/
28 packages/react-devtools-shell/dist
29 packages/react-devtools-timeline/dist
30 packages/react-devtools-timeline/static
31 +packages/react-devtools-cdt-mcp/dist
32 +packages/react-devtools-cdt-mcp/fixtures
33
34 # Imported third-party Flow types
35 flow-typed/
.github/workflows/devtools_regression_tests.yml
+3 -3
@@ -69,7 +69,7 @@ jobs:
69 with:
70 path: |
71 **/node_modules
72 - key: runtime-node_modules-v9-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('yarn.lock') }}
72 + key: runtime-node_modules-v10-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('yarn.lock') }}
73 - name: Ensure clean build directory
74 run: rm -rf build
75 - run: yarn install --frozen-lockfile
@@ -129,7 +129,7 @@ jobs:
129 with:
130 path: |
131 **/node_modules
132 - key: runtime-node_modules-v9-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('yarn.lock') }}
132 + key: runtime-node_modules-v10-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('yarn.lock') }}
133 - run: yarn install --frozen-lockfile
134 if: steps.node_modules.outputs.cache-hit != 'true'
135 - name: Restore all archived build artifacts
@@ -163,7 +163,7 @@ jobs:
163 with:
164 path: |
165 **/node_modules
166 - key: runtime-node_modules-v9-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('yarn.lock') }}
166 + key: runtime-node_modules-v10-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('yarn.lock') }}
167 - run: yarn install --frozen-lockfile
168 if: steps.node_modules.outputs.cache-hit != 'true'
169 - name: Restore all archived build artifacts
.github/workflows/runtime_build_and_test.yml
+15 -15
@@ -44,7 +44,7 @@ jobs:
44 with:
45 path: |
46 **/node_modules
47 - key: runtime-node_modules-v9-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('yarn.lock') }}
47 + key: runtime-node_modules-v10-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('yarn.lock') }}
48 # Don't use restore-keys here. Otherwise the cache grows indefinitely.
49
50 - uses: actions/setup-node@v4
@@ -71,7 +71,7 @@ jobs:
71 with:
72 path: |
73 **/node_modules
74 - key: runtime-and-compiler-node_modules-v9-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('yarn.lock', 'compiler/yarn.lock') }}
74 + key: runtime-and-compiler-node_modules-v10-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('yarn.lock', 'compiler/yarn.lock') }}
75 # Don't use restore-keys here. Otherwise the cache grows indefinitely.
76 - run: yarn install --frozen-lockfile
77 if: steps.node_modules.outputs.cache-hit != 'true'
@@ -116,7 +116,7 @@ jobs:
116 with:
117 path: |
118 **/node_modules
119 - key: runtime-node_modules-v9-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('yarn.lock') }}
119 + key: runtime-node_modules-v10-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('yarn.lock') }}
120 # Don't use restore-keys here. Otherwise the cache grows indefinitely.
121 - name: Ensure clean build directory
122 run: rm -rf build
@@ -142,7 +142,7 @@ jobs:
142 with:
143 path: |
144 **/node_modules
145 - key: runtime-node_modules-v9-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('yarn.lock') }}
145 + key: runtime-node_modules-v10-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('yarn.lock') }}
146 # Don't use restore-keys here. Otherwise the cache grows indefinitely.
147 - name: Ensure clean build directory
148 run: rm -rf build
@@ -170,7 +170,7 @@ jobs:
170 with:
171 path: |
172 **/node_modules
173 - key: runtime-node_modules-v9-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('yarn.lock') }}
173 + key: runtime-node_modules-v10-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('yarn.lock') }}
174 - name: Ensure clean build directory
175 run: rm -rf build
176 - run: yarn install --frozen-lockfile
@@ -224,7 +224,7 @@ jobs:
224 with:
225 path: |
226 **/node_modules
227 - key: runtime-and-compiler-node_modules-v9-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('yarn.lock', 'compiler/yarn.lock') }}
227 + key: runtime-and-compiler-node_modules-v10-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('yarn.lock', 'compiler/yarn.lock') }}
228 # Don't use restore-keys here. Otherwise the cache grows indefinitely.
229 - name: Ensure clean build directory
230 run: rm -rf build
@@ -251,7 +251,7 @@ jobs:
251 with:
252 path: |
253 **/node_modules
254 - key: runtime-and-compiler-node_modules-v9-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('yarn.lock', 'compiler/yarn.lock') }}
254 + key: runtime-and-compiler-node_modules-v10-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('yarn.lock', 'compiler/yarn.lock') }}
255 - name: Install runtime dependencies
256 run: yarn install --frozen-lockfile
257 if: steps.node_modules.outputs.cache-hit != 'true'
@@ -290,7 +290,7 @@ jobs:
290 with:
291 path: |
292 **/node_modules
293 - key: runtime-and-compiler-node_modules-v9-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('yarn.lock', 'compiler/yarn.lock') }}
293 + key: runtime-and-compiler-node_modules-v10-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('yarn.lock', 'compiler/yarn.lock') }}
294 # Don't use restore-keys here. Otherwise the cache grows indefinitely.
295 - name: Ensure clean build directory
296 run: rm -rf build
@@ -372,7 +372,7 @@ jobs:
372 with:
373 path: |
374 **/node_modules
375 - key: runtime-and-compiler-node_modules-v9-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('yarn.lock', 'compiler/yarn.lock') }}
375 + key: runtime-and-compiler-node_modules-v10-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('yarn.lock', 'compiler/yarn.lock') }}
376 # Don't use restore-keys here. Otherwise the cache grows indefinitely.
377 - name: Ensure clean build directory
378 run: rm -rf build
@@ -417,7 +417,7 @@ jobs:
417 with:
418 path: |
419 **/node_modules
420 - key: runtime-node_modules-v9-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('yarn.lock') }}
420 + key: runtime-node_modules-v10-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('yarn.lock') }}
421 # Don't use restore-keys here. Otherwise the cache grows indefinitely.
422 - name: Ensure clean build directory
423 run: rm -rf build
@@ -455,7 +455,7 @@ jobs:
455 with:
456 path: |
457 **/node_modules
458 - key: runtime-node_modules-v9-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('yarn.lock') }}
458 + key: runtime-node_modules-v10-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('yarn.lock') }}
459 # Don't use restore-keys here. Otherwise the cache grows indefinitely.
460 - name: Ensure clean build directory
461 run: rm -rf build
@@ -516,7 +516,7 @@ jobs:
516 with:
517 path: |
518 **/node_modules
519 - key: runtime-node_modules-v9-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('yarn.lock') }}
519 + key: runtime-node_modules-v10-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('yarn.lock') }}
520 # Don't use restore-keys here. Otherwise the cache grows indefinitely.
521 - name: Ensure clean build directory
522 run: rm -rf build
@@ -552,7 +552,7 @@ jobs:
552 with:
553 path: |
554 **/node_modules
555 - key: runtime-node_modules-v9-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('yarn.lock') }}
555 + key: runtime-node_modules-v10-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('yarn.lock') }}
556 # Don't use restore-keys here. Otherwise the cache grows indefinitely.
557 - name: Ensure clean build directory
558 run: rm -rf build
@@ -696,7 +696,7 @@ jobs:
696 with:
697 path: |
698 **/node_modules
699 - key: runtime-node_modules-v9-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('yarn.lock') }}
699 + key: runtime-node_modules-v10-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('yarn.lock') }}
700 # Don't use restore-keys here. Otherwise the cache grows indefinitely.
701 - name: Ensure clean build directory
702 run: rm -rf build
@@ -754,7 +754,7 @@ jobs:
754 with:
755 path: |
756 **/node_modules
757 - key: runtime-node_modules-v9-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('yarn.lock') }}
757 + key: runtime-node_modules-v10-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('yarn.lock') }}
758 # Don't use restore-keys here. Otherwise the cache grows indefinitely.
759 - name: Ensure clean build directory
760 run: rm -rf build
.gitignore
+1
@@ -42,3 +42,4 @@ packages/react-devtools-fusebox/dist
42 packages/react-devtools-inline/dist
43 packages/react-devtools-shell/dist
44 packages/react-devtools-timeline/dist
45 +packages/react-devtools-cdt-mcp/dist
packages/react-devtools-cdt-mcp/README.md new
+125
@@ -0,0 +1,125 @@
1 +# react-devtools-cdt-mcp
2 +
3 +Integrates React tools with
4 +[chrome-devtools-mcp](https://github.com/ChromeDevTools/chrome-devtools-mcp).
5 +
6 +Importing this package **before React** installs the DevTools hook and registers
7 +a React tool group via chrome-devtools-mcp's `devtoolstooldiscovery` / `__dtmcp`
8 +third-party-tool protocol. The React tools then become discoverable and callable
9 +inside a chrome-devtools-mcp session — no separate server.
10 +
11 +## Usage
12 +
13 +Import the package **before** React so the hook is installed before React
14 +initializes:
15 +
16 +```js
17 +import 'react-devtools-cdt-mcp';
18 +import React from 'react';
19 +```
20 +
21 +When the page runs under chrome-devtools-mcp, the React tools are listed by
22 +`list_3p_developer_tools` and callable either via
23 +`execute_3p_developer_tool({toolName, params})` or directly via `evaluate_script`
24 +(`window.__dtmcp.executeTool(toolName, params)`).
25 +
26 +## Conventions
27 +
28 +- **UIDs** — components are identified by a stable uid like `r5`. UIDs
29 + are consistent across every tool and across re-renders. These UIDs don't survive page reloads.
30 +- **Output** — every tool returns the shape described below as a plain
31 + JavaScript value. On failure a tool returns `{error: string}` instead.
32 +- **Durations** — profiler durations are in milliseconds, or `null` when the
33 + build does not collect profiling timing.
34 +
35 +## Tools
36 +
37 +### `react_get_component_tree`
38 +
39 +Snapshot of the component tree.
40 +
41 +- **Input:** `depth?` (number, max depth, default 20), `rootUid?` (string,
42 + start from this component).
43 +- **Output:** `{nodes}` where `nodes` is an array of
44 + `{uid, type, name, key, firstChild, nextSibling}`. `firstChild` and
45 + `nextSibling` reference other nodes by uid (or are `null`).
46 +
47 +### `react_get_component_by_uid`
48 +
49 +Detailed info for a single component.
50 +
51 +- **Input:** `uid` (string, required), `includeHooks?` (boolean, default
52 + `false`).
53 +- **Output:** `{uid, type, name, key?, props?, hooks?}`. `props` excludes
54 + children and is normalized to a serialization-safe shape; when `includeHooks`
55 + is true, `hooks` (function, forwardRef, and memo components) is an array of
56 + `{id, name, value, subHooks}`.
57 +
58 +### `react_find_components`
59 +
60 +Find components by case-insensitive name substring.
61 +
62 +- **Input:** `name` (string, required), `rootUid?` (string, limit to subtree),
63 + `page?` (number, default 1), `pageSize?` (number, default 10).
64 +- **Output:** `{page, pageSize, totalCount, totalPages, results}` where
65 + `results` is an array of tree nodes (same shape as `react_get_component_tree`).
66 +
67 +### `react_get_component_source`
68 +
69 +Definition source location of a component.
70 +
71 +- **Input:** `uid` (string, required).
72 +- **Output:** `{source: {name, fileName, line, column}}`, or `{source: null}`
73 + when the location cannot be determined (e.g. host components, production
74 + builds).
75 +
76 +### `react_get_owner_stack_trace`
77 +
78 +Raw owner stack trace — the chain of JSX creation locations up to the root.
79 +
80 +- **Input:** `uid` (string, required).
81 +- **Output:** `{stack: string}` (DEV-only; empty in production).
82 +
83 +### `react_get_owner_stack`
84 +
85 +Structured owner list — which components rendered this one.
86 +
87 +- **Input:** `uid` (string, required).
88 +- **Output:** an array of `{uid, name, type}`, ordered from immediate owner to
89 + root ancestor (empty for a root component). DEV-only.
90 +
91 +### `react_start_profiling`
92 +
93 +Start a profiling session that records per-commit render timing.
94 +
95 +- **Input:** `traceName?` (string, trace name; auto-generated if omitted).
96 +- **Output:** `{status: "started", traceName}`.
97 +
98 +### `react_stop_profiling`
99 +
100 +Stop the active profiling session.
101 +
102 +- **Input:** none.
103 +- **Output:** `{status: "stopped", traceName, commits}` (`commits` is the number of
104 + commits recorded).
105 +
106 +### `react_get_trace_overview`
107 +
108 +Per-commit overview of a recorded trace.
109 +
110 +- **Input:** `traceName` (string, required).
111 +- **Output:** array of
112 + `{commit, committedAt, renderDuration, layoutDuration, passiveDuration, componentsChanged}`,
113 + one row per commit.
114 +
115 +### `react_get_commit_report`
116 +
117 +Detailed report for a single commit.
118 +
119 +- **Input:** `traceName` (string, required), `commitIndex` (number, required;
120 + zero-based).
121 +- **Output:**
122 + `{committedAt, priority, renderDuration, layoutDuration, passiveDuration, components}`
123 + where `components` is an array of
124 + `{uid, name, type, actualDuration, selfDuration}` sorted by `actualDuration`
125 + descending.
packages/react-devtools-cdt-mcp/fixtures/app/App.js new
+117
@@ -0,0 +1,117 @@
1 +import * as React from 'react';
2 +
3 +const {
4 + useState,
5 + useEffect,
6 + useCallback,
7 + useContext,
8 + createContext,
9 + memo,
10 + forwardRef,
11 +} = React;
12 +
13 +// A custom hook, to exercise the hooks tree in react_get_component_by_uid.
14 +function useToggle(initial) {
15 + const [on, setOn] = useState(initial);
16 + const toggle = useCallback(() => setOn(value => !value), []);
17 + return [on, toggle];
18 +}
19 +
20 +// Function component with a single State hook + a button that triggers
21 +// re-renders (useful for profiling).
22 +function Counter() {
23 + const [count, setCount] = useState(0);
24 + return (
25 + <div className="row">
26 + <span>Count: {count}</span>
27 + <button onClick={() => setCount(value => value + 1)}>+1</button>
28 + </div>
29 + );
30 +}
31 +
32 +// Uses the custom hook above, so its hooks tree nests a "Toggle" custom hook.
33 +function Toggle() {
34 + const [on, toggle] = useToggle(false);
35 + return <button onClick={toggle}>{on ? 'ON' : 'OFF'}</button>;
36 +}
37 +
38 +// State + Effect hook with a timer — re-renders every second, handy for
39 +// react_start_profiling / react_get_trace_overview / react_get_commit_report.
40 +function Clock() {
41 + const [now, setNow] = useState(() => new Date().toLocaleTimeString());
42 + useEffect(() => {
43 + const id = setInterval(() => setNow(new Date().toLocaleTimeString()), 1000);
44 + return () => clearInterval(id);
45 + }, []);
46 + return <div className="row">Clock: {now}</div>;
47 +}
48 +
49 +// Context, to exercise the "context" node type and useContext.
50 +const ThemeContext = createContext('light');
51 +
52 +function ThemeProvider({children}) {
53 + return <ThemeContext.Provider value="dark">{children}</ThemeContext.Provider>;
54 +}
55 +
56 +function ThemedPanel() {
57 + const theme = useContext(ThemeContext);
58 + return (
59 + <section className="panel" data-theme={theme}>
60 + <h2>Panel (theme: {theme})</h2>
61 + <Counter />
62 + <Toggle />
63 + <Clock />
64 + </section>
65 + );
66 +}
67 +
68 +// List with keys, to exercise key reporting and find_components pagination.
69 +function Todo({text}) {
70 + return <li>{text}</li>;
71 +}
72 +
73 +function TodoList() {
74 + const items = [
75 + {id: 'learn', text: 'Learn the tools'},
76 + {id: 'test', text: 'Test the fixture'},
77 + {id: 'ship', text: 'Ship the package'},
78 + ];
79 + return (
80 + <ul className="todos">
81 + {items.map(item => (
82 + <Todo key={item.id} text={item.text} />
83 + ))}
84 + </ul>
85 + );
86 +}
87 +
88 +// memo and forwardRef, to exercise the "memo" and "forwardRef" node types.
89 +const MemoBox = memo(function MemoBox({label}) {
90 + return <div className="box">Memo: {label}</div>;
91 +});
92 +
93 +const FancyInput = forwardRef(function FancyInput({placeholder}, ref) {
94 + return <input ref={ref} placeholder={placeholder} />;
95 +});
96 +
97 +function Header() {
98 + return (
99 + <header>
100 + <h1>react-devtools-cdt-mcp fixture</h1>
101 + </header>
102 + );
103 +}
104 +
105 +export default function App() {
106 + return (
107 + <main className="app">
108 + <Header />
109 + <ThemeProvider>
110 + <ThemedPanel />
111 + </ThemeProvider>
112 + <TodoList />
113 + <MemoBox label="hello" />
114 + <FancyInput placeholder="type here" />
115 + </main>
116 + );
117 +}
packages/react-devtools-cdt-mcp/fixtures/app/README.md new
+58
@@ -0,0 +1,58 @@
1 +# Fixture app
2 +
3 +A small React app for manually exercising the `react-devtools-cdt-mcp` tools with
4 +[chrome-devtools-mcp](https://github.com/ChromeDevTools/chrome-devtools-mcp).
5 +Not part of the published package.
6 +
7 +It renders a variety of components so every tool has something to inspect:
8 +function/host/context/memo/forwardRef nodes, a custom hook (nested `subHooks`),
9 +keyed list items, and timer/button components that re-render (for profiling).
10 +
11 +Like `react-devtools-shell`, React (and the DevTools backend dependencies the
12 +facade uses) are resolved from the monorepo build output via webpack aliases, so
13 +the fixture runs against React from source — no CDN copy, and
14 +`react_get_component_by_uid` hooks inspection matches the build exactly.
15 +
16 +## Run
17 +
18 +1. Build React for DevTools from the repo root (populates
19 + `build/oss-experimental/`):
20 +
21 + ```sh
22 + yarn build-for-devtools
23 + ```
24 +
25 +2. Start the fixture dev server (bundles the package source + this app):
26 +
27 + ```sh
28 + cd packages/react-devtools-cdt-mcp/fixtures/app
29 + yarn start
30 + ```
31 +
32 + This opens `http://localhost:8080/`.
33 +
34 +3. Point chrome-devtools-mcp at the page. The React tool group is discovered
35 + automatically — list it with `list_3p_developer_tools` and call the tools with
36 + `execute_3p_developer_tool({toolName, params})`.
37 +
38 +## Test with the chrome-devtools-mcp CLI
39 +
40 +With the dev server running, drive the tools end-to-end from the CLI:
41 +
42 +1. Start chrome-devtools-mcp with experimental third-party tools enabled:
43 +
44 + ```sh
45 + chrome-devtools start --categoryExperimentalThirdParty=true
46 + ```
47 +
48 +2. Navigate to the fixture page:
49 +
50 + ```sh
51 + chrome-devtools navigate_page --url http://localhost:8080
52 + ```
53 +
54 +3. Run a React tool by name:
55 +
56 + ```sh
57 + chrome-devtools execute_3p_developer_tool <react-tool-name>
58 + ```
packages/react-devtools-cdt-mcp/fixtures/app/index.html new
+40
@@ -0,0 +1,40 @@
1 +<!doctype html>
2 +<html lang="en">
3 + <head>
4 + <meta charset="utf-8" />
5 + <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6 + <title>react-devtools-cdt-mcp fixture</title>
7 + <style>
8 + body {
9 + font-family: -apple-system, system-ui, sans-serif;
10 + margin: 2rem;
11 + color: #1c1e21;
12 + }
13 + .app {
14 + max-width: 40rem;
15 + }
16 + .panel {
17 + border: 1px solid #ddd;
18 + border-radius: 8px;
19 + padding: 1rem;
20 + margin: 1rem 0;
21 + }
22 + .panel[data-theme='dark'] {
23 + background: #f5f6f7;
24 + }
25 + .row {
26 + display: flex;
27 + align-items: center;
28 + gap: 0.5rem;
29 + margin: 0.25rem 0;
30 + }
31 + button {
32 + cursor: pointer;
33 + }
34 + </style>
35 + </head>
36 + <body>
37 + <div id="root"></div>
38 + <script src="/dist/bundle.js"></script>
39 + </body>
40 +</html>
packages/react-devtools-cdt-mcp/fixtures/app/index.js new
+12
@@ -0,0 +1,12 @@
1 +// Import the package source first so it installs the DevTools hook and registers
2 +// the chrome-devtools-mcp tool group BEFORE react-dom evaluates — the hook must
3 +// be in place when React's renderer injects on the first commit.
4 +import '../../src/index.js';
5 +
6 +import * as React from 'react';
7 +import {createRoot} from 'react-dom/client';
8 +
9 +import App from './App';
10 +
11 +const root = createRoot(document.getElementById('root'));
12 +root.render(<App />);
packages/react-devtools-cdt-mcp/fixtures/app/package.json new
+23
@@ -0,0 +1,23 @@
1 +{
2 + "private": true,
3 + "name": "react-devtools-cdt-mcp-fixture",
4 + "version": "0.0.0",
5 + "scripts": {
6 + "start": "cross-env NODE_ENV=development webpack serve --config webpack.config.js"
7 + },
8 + "devDependencies": {
9 + "@babel/core": "^7.11.1",
10 + "@babel/plugin-proposal-class-properties": "^7.10.4",
11 + "@babel/plugin-transform-flow-strip-types": "^7.10.4",
12 + "@babel/plugin-transform-react-jsx-source": "^7.10.5",
13 + "@babel/preset-env": "^7.11.0",
14 + "@babel/preset-flow": "^7.10.4",
15 + "@babel/preset-react": "^7.10.4",
16 + "babel-loader": "^8.0.4",
17 + "cross-env": "^7.0.3",
18 + "process": "^0.11.10",
19 + "webpack": "^5.82.1",
20 + "webpack-cli": "^5.1.1",
21 + "webpack-dev-server": "^4.15.0"
22 + }
23 +}
packages/react-devtools-cdt-mcp/fixtures/app/webpack.config.js new
+91
@@ -0,0 +1,91 @@
1 +'use strict';
2 +
3 +const {resolve} = require('path');
4 +const Webpack = require('webpack');
5 +
6 +const NODE_ENV = process.env.NODE_ENV || 'development';
7 +const __DEV__ = NODE_ENV === 'development';
8 +
9 +// React and the DevTools backend dependencies the facade pulls in are resolved
10 +// from the monorepo build output — the same approach react-devtools-shell uses,
11 +// so the fixture runs against React from source rather than a CDN copy. Run
12 +// `yarn build-for-devtools` from the repo root first to populate this folder.
13 +const builtModulesDir = resolve(
14 + __dirname,
15 + '..',
16 + '..',
17 + '..',
18 + '..',
19 + 'build',
20 + 'oss-experimental'
21 +);
22 +
23 +const sharedDir = resolve(__dirname, '..', '..', '..', 'react-devtools-shared');
24 +
25 +module.exports = {
26 + mode: __DEV__ ? 'development' : 'production',
27 + devtool: __DEV__ ? 'cheap-source-map' : 'source-map',
28 + entry: './index.js',
29 + output: {
30 + filename: 'bundle.js',
31 + publicPath: '/dist/',
32 + },
33 + node: {
34 + global: false,
35 + },
36 + resolve: {
37 + alias: {
38 + react: resolve(builtModulesDir, 'react'),
39 + 'react-debug-tools': resolve(builtModulesDir, 'react-debug-tools'),
40 + 'react-devtools-feature-flags': resolve(
41 + sharedDir,
42 + 'src',
43 + 'config',
44 + 'DevToolsFeatureFlags.default'
45 + ),
46 + 'react-dom/client': resolve(builtModulesDir, 'react-dom/client'),
47 + 'react-dom': resolve(builtModulesDir, 'react-dom'),
48 + 'react-is': resolve(builtModulesDir, 'react-is'),
49 + scheduler: resolve(builtModulesDir, 'scheduler'),
50 + },
51 + },
52 + optimization: {
53 + minimize: false,
54 + },
55 + plugins: [
56 + new Webpack.ProvidePlugin({
57 + process: 'process/browser',
58 + }),
59 + new Webpack.DefinePlugin({
60 + __DEV__,
61 + __EXPERIMENTAL__: true,
62 + __EXTENSION__: false,
63 + __PROFILE__: false,
64 + __TEST__: false,
65 + __IS_CHROME__: false,
66 + __IS_FIREFOX__: false,
67 + __IS_EDGE__: false,
68 + __IS_NATIVE__: false,
69 + }),
70 + ],
71 + module: {
72 + rules: [
73 + {
74 + test: /\.js$/,
75 + loader: 'babel-loader',
76 + options: {
77 + configFile: resolve(sharedDir, 'babel.config.js'),
78 + },
79 + },
80 + ],
81 + },
82 + devServer: {
83 + hot: true,
84 + open: true,
85 + port: 8080,
86 + static: {
87 + directory: __dirname,
88 + publicPath: '/',
89 + },
90 + },
91 +};
packages/react-devtools-cdt-mcp/fixtures/app/yarn.lock new
+3258
@@ -0,0 +1,3258 @@
1 +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 +# yarn lockfile v1
3 +
4 +
5 +"@babel/code-frame@^7.29.7":
6 + version "7.29.7"
7 + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.29.7.tgz#f2fbbfea87c44a21590ec515b778b2c26d8866e7"
8 + integrity sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==
9 + dependencies:
10 + "@babel/helper-validator-identifier" "^7.29.7"
11 + js-tokens "^4.0.0"
12 + picocolors "^1.1.1"
13 +
14 +"@babel/compat-data@^7.28.6", "@babel/compat-data@^7.29.7":
15 + version "7.29.7"
16 + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.29.7.tgz#6f0237f0f36d2e51c0570a636faed9d2d0efe629"
17 + integrity sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==
18 +
19 +"@babel/core@^7.11.1":
20 + version "7.29.7"
21 + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.29.7.tgz#80c10b17248082968b57a857b91640971f2070f7"
22 + integrity sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==
23 + dependencies:
24 + "@babel/code-frame" "^7.29.7"
25 + "@babel/generator" "^7.29.7"
26 + "@babel/helper-compilation-targets" "^7.29.7"
27 + "@babel/helper-module-transforms" "^7.29.7"
28 + "@babel/helpers" "^7.29.7"
29 + "@babel/parser" "^7.29.7"
30 + "@babel/template" "^7.29.7"
31 + "@babel/traverse" "^7.29.7"
32 + "@babel/types" "^7.29.7"
33 + "@jridgewell/remapping" "^2.3.5"
34 + convert-source-map "^2.0.0"
35 + debug "^4.1.0"
36 + gensync "^1.0.0-beta.2"
37 + json5 "^2.2.3"
38 + semver "^6.3.1"
39 +
40 +"@babel/generator@^7.29.7":
41 + version "7.29.7"
42 + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.29.7.tgz#cca0b8827e6bcf3ba176788e7f3b180ad6db2fa3"
43 + integrity sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==
44 + dependencies:
45 + "@babel/parser" "^7.29.7"
46 + "@babel/types" "^7.29.7"
47 + "@jridgewell/gen-mapping" "^0.3.12"
48 + "@jridgewell/trace-mapping" "^0.3.28"
49 + jsesc "^3.0.2"
50 +
51 +"@babel/helper-annotate-as-pure@^7.29.7":
52 + version "7.29.7"
53 + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.29.7.tgz#c70fe3c6ecbdc3fd2dd1b0f498428b88b82ce47f"
54 + integrity sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==
55 + dependencies:
56 + "@babel/types" "^7.29.7"
57 +
58 +"@babel/helper-compilation-targets@^7.28.6", "@babel/helper-compilation-targets@^7.29.7":
59 + version "7.29.7"
60 + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz#7a1def704302401c47f64fa85589e974ae217042"
61 + integrity sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==
62 + dependencies:
63 + "@babel/compat-data" "^7.29.7"
64 + "@babel/helper-validator-option" "^7.29.7"
65 + browserslist "^4.24.0"
66 + lru-cache "^5.1.1"
67 + semver "^6.3.1"
68 +
69 +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.29.7":
70 + version "7.29.7"
71 + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.29.7.tgz#6eddf286f2ec418f740c91d60a83347c55838ddd"
72 + integrity sha512-IY3ZD9Tmooqr3TUhc3DUWxiuo8xx1DWLhd5M7hQ+ZWJamqM2BbalrBJb2MisSLoYorOj75U03qULCxQTY9r3hg==
73 + dependencies:
74 + "@babel/helper-annotate-as-pure" "^7.29.7"
75 + "@babel/helper-member-expression-to-functions" "^7.29.7"
76 + "@babel/helper-optimise-call-expression" "^7.29.7"
77 + "@babel/helper-replace-supers" "^7.29.7"
78 + "@babel/helper-skip-transparent-expression-wrappers" "^7.29.7"
79 + "@babel/traverse" "^7.29.7"
80 + semver "^6.3.1"
81 +
82 +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.29.7":
83 + version "7.29.7"
84 + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.29.7.tgz#5d4c3f928f315cf6c4184ea2fc3b5b38745b2430"
85 + integrity sha512-907Uymvqgg1dwUA+7IGwFAOSYzQOuzPXKNJ1yxzwPffzkYFg2q2eHi1fIOs6sXkG9NbIUMunnUlkYsfRFNvomg==
86 + dependencies:
87 + "@babel/helper-annotate-as-pure" "^7.29.7"
88 + regexpu-core "^6.3.1"
89 + semver "^6.3.1"
90 +
91 +"@babel/helper-define-polyfill-provider@^0.6.8":
92 + version "0.6.8"
93 + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.8.tgz#cf1e4462b613f2b54c41e6ff758d5dfcaa2c85d1"
94 + integrity sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==
95 + dependencies:
96 + "@babel/helper-compilation-targets" "^7.28.6"
97 + "@babel/helper-plugin-utils" "^7.28.6"
98 + debug "^4.4.3"
99 + lodash.debounce "^4.0.8"
100 + resolve "^1.22.11"
101 +
102 +"@babel/helper-globals@^7.29.7":
103 + version "7.29.7"
104 + resolved "https://registry.yarnpkg.com/@babel/helper-globals/-/helper-globals-7.29.7.tgz#f04a96fbd8473241b1079243f5b3f03a3010ab7b"
105 + integrity sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==
106 +
107 +"@babel/helper-member-expression-to-functions@^7.29.7":
108 + version "7.29.7"
109 + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.29.7.tgz#8dbdb3ce0b5c487e1aec10e13c9a43a500814df8"
110 + integrity sha512-j+7JYmk1JYDtACIGj0QJqqWZjoUpMoEikQGADMaHgCMCSDqd2+P32rfcibUNrGOMWrlzK1WJBdxrB3JJQZwWtg==
111 + dependencies:
112 + "@babel/traverse" "^7.29.7"
113 + "@babel/types" "^7.29.7"
114 +
115 +"@babel/helper-module-imports@^7.29.7":
116 + version "7.29.7"
117 + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz#ef25048a518e828d7393fac5882ddd73921d7396"
118 + integrity sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==
119 + dependencies:
120 + "@babel/traverse" "^7.29.7"
121 + "@babel/types" "^7.29.7"
122 +
123 +"@babel/helper-module-transforms@^7.29.7":
124 + version "7.29.7"
125 + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz#b062747a5997ba138637201328bbff77960574ae"
126 + integrity sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==
127 + dependencies:
128 + "@babel/helper-module-imports" "^7.29.7"
129 + "@babel/helper-validator-identifier" "^7.29.7"
130 + "@babel/traverse" "^7.29.7"
131 +
132 +"@babel/helper-optimise-call-expression@^7.29.7":
133 + version "7.29.7"
134 + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.29.7.tgz#77b0b5b94f1997fa9d6e3125f445227b1faf9d85"
135 + integrity sha512-+kmGVjcT9RGYzoDwdwEqEvGgKe3BYq+O1iGzjFubaNgZHwYHP6lsF2Yghf4kEuv9BV7tYDZ913aBW9am6YKong==
136 + dependencies:
137 + "@babel/types" "^7.29.7"
138 +
139 +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.28.6", "@babel/helper-plugin-utils@^7.29.7":
140 + version "7.29.7"
141 + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz#c0a0766f1a13617d8a17407d7ab8f9d486225ea4"
142 + integrity sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==
143 +
144 +"@babel/helper-remap-async-to-generator@^7.29.7":
145 + version "7.29.7"
146 + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.29.7.tgz#34b1f68dd75b86d31df781a29c3ff2df88da82e6"
147 + integrity sha512-16AMiW26DbXWBbr3B8wNozKM0ydMLB892vaOaJW/fPJdnT8vJk5sdkQcU/isqUxyCE0cEoa8wZOcbgDuC4b6Og==
148 + dependencies:
149 + "@babel/helper-annotate-as-pure" "^7.29.7"
150 + "@babel/helper-wrap-function" "^7.29.7"
151 + "@babel/traverse" "^7.29.7"
152 +
153 +"@babel/helper-replace-supers@^7.29.7":
154 + version "7.29.7"
155 + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.29.7.tgz#bc3c3964329043c79112e513c1b198f16589ac21"
156 + integrity sha512-atfGXWSeCiF4DnKZIfmJfQRkSw9b9gNNXR1kqKjbhG4pGYCOnkp8OcTB8E3NXjBu8NpheSnOeNKz8KT7UNFTmQ==
157 + dependencies:
158 + "@babel/helper-member-expression-to-functions" "^7.29.7"
159 + "@babel/helper-optimise-call-expression" "^7.29.7"
160 + "@babel/traverse" "^7.29.7"
161 +
162 +"@babel/helper-skip-transparent-expression-wrappers@^7.29.7":
163 + version "7.29.7"
164 + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.29.7.tgz#50c95c7e4c4f54936cfa0116428edc559862d551"
165 + integrity sha512-brcMGQaVzIeUb+6/bs1Av0f8YuNNjKY2JyvfRCsFuFsdKccEQ5Ges2y74D74NZ1Rz8lKJ9ksJkfqwQFJ/iNEyQ==
166 + dependencies:
167 + "@babel/traverse" "^7.29.7"
168 + "@babel/types" "^7.29.7"
169 +
170 +"@babel/helper-string-parser@^7.29.7":
171 + version "7.29.7"
172 + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz#7f0871d99824d23137d60f86fcf6130fd5a1b51f"
173 + integrity sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==
174 +
175 +"@babel/helper-validator-identifier@^7.29.7":
176 + version "7.29.7"
177 + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz#bd87084ced0c796ec46bda492de6e83d29e89fc2"
178 + integrity sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==
179 +
180 +"@babel/helper-validator-option@^7.29.7":
181 + version "7.29.7"
182 + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz#cf315be940213b354eb4abcc0bd01ebe3f73bc2a"
183 + integrity sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==
184 +
185 +"@babel/helper-wrap-function@^7.29.7":
186 + version "7.29.7"
187 + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.29.7.tgz#eec72163044548a0935e9d182bf2d547ec5ff483"
188 + integrity sha512-iES0Skag9ERIF68aXadpO6dbXa03mNWK3sEqJaMnLNs/eC3l0lkImdfoy6Y09/SfkpawdAB4RjQ7PVA7TcVGdw==
189 + dependencies:
190 + "@babel/template" "^7.29.7"
191 + "@babel/traverse" "^7.29.7"
192 + "@babel/types" "^7.29.7"
193 +
194 +"@babel/helpers@^7.29.7":
195 + version "7.29.7"
196 + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.29.7.tgz#45abfde7548997e34376c3e69feb475cffb4a607"
197 + integrity sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==
198 + dependencies:
199 + "@babel/template" "^7.29.7"
200 + "@babel/types" "^7.29.7"
201 +
202 +"@babel/parser@^7.29.7":
203 + version "7.29.7"
204 + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.29.7.tgz#837b87387cbf5ec5530cb634b3c622f68edb9334"
205 + integrity sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==
206 + dependencies:
207 + "@babel/types" "^7.29.7"
208 +
209 +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.29.7":
210 + version "7.29.7"
211 + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.29.7.tgz#2b535896d933a85aa92377eaa3d51a437d54a4e3"
212 + integrity sha512-j8SrR0zLZrRsC09DlszEx8FpMiwukKffYXMK0d5LmOglO7vGG6sz/BR/20yHqWH+Lnn31JTt2PE3hIWNgM2J6w==
213 + dependencies:
214 + "@babel/helper-plugin-utils" "^7.29.7"
215 + "@babel/traverse" "^7.29.7"
216 +
217 +"@babel/plugin-bugfix-safari-class-field-initializer-scope@^7.29.7":
218 + version "7.29.7"
219 + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.29.7.tgz#b00711a9e52bf4fe55ef7e54b2ef4a881bf804c8"
220 + integrity sha512-r8j8escF+U2FUHo0KOhPUdMzUO+jp9fInva6+ACVAF3Y97Ev+5iNZwiqTghmzNeWwDkOPlYuTcfb1vDaoZKmAQ==
221 + dependencies:
222 + "@babel/helper-plugin-utils" "^7.29.7"
223 +
224 +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.29.7":
225 + version "7.29.7"
226 + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.29.7.tgz#2375328852026a3cf6bc0bcf2de7d236f2d5e701"
227 + integrity sha512-GE1TFSiuFeGsCxmYXZl8HwoPrVlwe4rHPFE8weieGKZqnDORK+Ar3vgWMgW+AOxQ6/2TgLSKx9p6W7O4rC6qgQ==
228 + dependencies:
229 + "@babel/helper-plugin-utils" "^7.29.7"
230 +
231 +"@babel/plugin-bugfix-safari-rest-destructuring-rhs-array@^7.29.7":
232 + version "7.29.7"
233 + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-rest-destructuring-rhs-array/-/plugin-bugfix-safari-rest-destructuring-rhs-array-7.29.7.tgz#759a857c46c4d2a6199685cf71070d81ae5f743a"
234 + integrity sha512-oBNVCvnO5tND+xSopWvV8WNGfpTfgP4Zr/YXXSj8zfmcPktp5Ku/aZlsIowgSD4fjmgHn6sGmB9APVsU5zOdhA==
235 + dependencies:
236 + "@babel/helper-plugin-utils" "^7.29.7"
237 + "@babel/helper-skip-transparent-expression-wrappers" "^7.29.7"
238 +
239 +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.29.7":
240 + version "7.29.7"
241 + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.29.7.tgz#86de98dd8e03836178231ea96c27dab26016a705"
242 + integrity sha512-QQt9qKHZ2sg/kivaLr7lnQr8HVrQDdBNSfCsTjiDxRuX/K5ORyKq+Bu8Xr0cDE3Dfkv0cw28Ve0EKyKMvulkOw==
243 + dependencies:
244 + "@babel/helper-plugin-utils" "^7.29.7"
245 + "@babel/helper-skip-transparent-expression-wrappers" "^7.29.7"
246 + "@babel/plugin-transform-optional-chaining" "^7.29.7"
247 +
248 +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.29.7":
249 + version "7.29.7"
250 + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.29.7.tgz#f5d892681dbf4b08753436a5e55000d5ba728d6d"
251 + integrity sha512-pn6QacGLgvCcwc+syUhKE/qSjV2D1IHDB84RNxWYSt1mW3K/SCtjinZ2p0cETJxAWBjPy3K/1lHwG5BjjPxNlw==
252 + dependencies:
253 + "@babel/helper-plugin-utils" "^7.29.7"
254 + "@babel/traverse" "^7.29.7"
255 +
256 +"@babel/plugin-proposal-class-properties@^7.10.4":
257 + version "7.18.6"
258 + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3"
259 + integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==
260 + dependencies:
261 + "@babel/helper-create-class-features-plugin" "^7.18.6"
262 + "@babel/helper-plugin-utils" "^7.18.6"
263 +
264 +"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2":
265 + version "7.21.0-placeholder-for-preset-env.2"
266 + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703"
267 + integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==
268 +
269 +"@babel/plugin-syntax-flow@^7.29.7":
270 + version "7.29.7"
271 + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.29.7.tgz#3f3278c11c896c43bf8098250819785fd1231881"
272 + integrity sha512-ajMX6QPcyomotqwpzhkYGxcK2i/us0rs1Qo9QvUpa+Fca0FTmqrzKrctoIYLMxcOhGZldGT/BAVkRGTWBiR8gQ==
273 + dependencies:
274 + "@babel/helper-plugin-utils" "^7.29.7"
275 +
276 +"@babel/plugin-syntax-import-assertions@^7.29.7":
277 + version "7.29.7"
278 + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.29.7.tgz#c5cd868505269126cc18882e1f01f7b0e0e24b4e"
279 + integrity sha512-/An1OCBN93thpBAGyfsK2pcf0jvju1SAtKkL2Ny++B5Sy6sqgzXDQH1cZxWbF96Wuk+bn41MDA9bLd4VVAw6rw==
280 + dependencies:
281 + "@babel/helper-plugin-utils" "^7.29.7"
282 +
283 +"@babel/plugin-syntax-import-attributes@^7.29.7":
284 + version "7.29.7"
285 + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.29.7.tgz#6115264516e95ead0f35a41710906612e447f605"
286 + integrity sha512-zGYcYfq/WmZ4V+kBIXQon9dSSc8ircGZqw9ZaNhhGj9nZkeBu1jHLBDQqYYi5WA9uawvA2sIMbry2nCFhf5Djg==
287 + dependencies:
288 + "@babel/helper-plugin-utils" "^7.29.7"
289 +
290 +"@babel/plugin-syntax-jsx@^7.29.7":
291 + version "7.29.7"
292 + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.29.7.tgz#622c16f9ad63782fe6e83dadc7e40330744b7f1e"
293 + integrity sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==
294 + dependencies:
295 + "@babel/helper-plugin-utils" "^7.29.7"
296 +
297 +"@babel/plugin-syntax-unicode-sets-regex@^7.18.6":
298 + version "7.18.6"
299 + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357"
300 + integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==
301 + dependencies:
302 + "@babel/helper-create-regexp-features-plugin" "^7.18.6"
303 + "@babel/helper-plugin-utils" "^7.18.6"
304 +
305 +"@babel/plugin-transform-arrow-functions@^7.29.7":
306 + version "7.29.7"
307 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.29.7.tgz#d651343f562c03f47951bd1802195d0e10605f27"
308 + integrity sha512-N7zArUXWzAMzm+/N0uPBeVB3Fam5lMxtUwMmDK5f/IBBS7a7p1qeUoxd/6CckXoxUdgsntq1Dh8xNW06maZbDQ==
309 + dependencies:
310 + "@babel/helper-plugin-utils" "^7.29.7"
311 +
312 +"@babel/plugin-transform-async-generator-functions@^7.29.7":
313 + version "7.29.7"
314 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.29.7.tgz#a5365617921d82a1fee33124a1102bb38a1e677d"
315 + integrity sha512-d98gXZkgswvkyohMBABkhm3GeXhYj8psWfwQ2C7gtfrKGTykQa/iOIi+JJhwMjPlZ6Vm2XN+DCf3Es1EoG4ZLA==
316 + dependencies:
317 + "@babel/helper-plugin-utils" "^7.29.7"
318 + "@babel/helper-remap-async-to-generator" "^7.29.7"
319 + "@babel/traverse" "^7.29.7"
320 +
321 +"@babel/plugin-transform-async-to-generator@^7.29.7":
322 + version "7.29.7"
323 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.29.7.tgz#3b5e8f1fb58133cf701bcf0baaf6f01bfd1a8889"
324 + integrity sha512-pcUb2SS+RMo9TWVBwKGI5ShtoG7R+zBsFmCKDa6fe8c+hPr3XJlZgoE5j6i8W7gDjhyvy+85vmYexanvXh3d1w==
325 + dependencies:
326 + "@babel/helper-module-imports" "^7.29.7"
327 + "@babel/helper-plugin-utils" "^7.29.7"
328 + "@babel/helper-remap-async-to-generator" "^7.29.7"
329 +
330 +"@babel/plugin-transform-block-scoped-functions@^7.29.7":
331 + version "7.29.7"
332 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.29.7.tgz#96d292634434082d6687bcdb81139affedf77e8c"
333 + integrity sha512-cUSmjh72N+rN4PrkFlN1dJwNCwjVp5d38/CQrEsFggkD10UiFlBFgdH3tv5dNsLuHY+3S8db2xCHjhZcv5WgvA==
334 + dependencies:
335 + "@babel/helper-plugin-utils" "^7.29.7"
336 +
337 +"@babel/plugin-transform-block-scoping@^7.29.7":
338 + version "7.29.7"
339 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.29.7.tgz#baa376691ae16244cd14335422fca6900f54e17d"
340 + integrity sha512-ONyr4+AZhKh8yKWInVxU9AXA9EbsyeLcL6V0dJy6M2/62vuvpGm29zzuymbTpdc451GEpDIdAyPLP3r+P61yKQ==
341 + dependencies:
342 + "@babel/helper-plugin-utils" "^7.29.7"
343 +
344 +"@babel/plugin-transform-class-properties@^7.29.7":
345 + version "7.29.7"
346 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.29.7.tgz#034897b8a21beec163332fac2de235b14409abdf"
347 + integrity sha512-GtcpjFvanPfzNQi3eTitsCqtRRmmqzpy/A+yhTR1HaZo1Ly3EA8ZXxlPyHdR8/IuRMYc3E4wdGBewB2QKQjAaA==
348 + dependencies:
349 + "@babel/helper-create-class-features-plugin" "^7.29.7"
350 + "@babel/helper-plugin-utils" "^7.29.7"
351 +
352 +"@babel/plugin-transform-class-static-block@^7.29.7":
353 + version "7.29.7"
354 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.29.7.tgz#fed8efd19f3dd3e1114ee390707c70912778fd7c"
355 + integrity sha512-kibJgmEdX2iMwsHY2tSZNDgj8PwIlCQz7FK9KuGKO8zsuoUwSEhoNnNVp/emKWrbY4HeO6kkXfdMqRKKKXBm2A==
356 + dependencies:
357 + "@babel/helper-create-class-features-plugin" "^7.29.7"
358 + "@babel/helper-plugin-utils" "^7.29.7"
359 +
360 +"@babel/plugin-transform-classes@^7.29.7":
361 + version "7.29.7"
362 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.29.7.tgz#61d3e5aaae0c838acc3204d9db7c8dc05c25815b"
363 + integrity sha512-qV0OGGBVacduzQHE649JyCneOFI/maT+YKsO+K4Yi3xv2wTPNjM/W2o2gdzMwEAZz7fXNTHAe0NcSg30bIN69g==
364 + dependencies:
365 + "@babel/helper-annotate-as-pure" "^7.29.7"
366 + "@babel/helper-compilation-targets" "^7.29.7"
367 + "@babel/helper-globals" "^7.29.7"
368 + "@babel/helper-plugin-utils" "^7.29.7"
369 + "@babel/helper-replace-supers" "^7.29.7"
370 + "@babel/traverse" "^7.29.7"
371 +
372 +"@babel/plugin-transform-computed-properties@^7.29.7":
373 + version "7.29.7"
374 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.29.7.tgz#95028787ca31901b9a20b5c6d9605c32346f55ad"
375 + integrity sha512-RK7/IyU5phpuCdBAuig5VkzG/EnbDaui5SQGdU9BFrHdV+mV4cUjLMQ9lJDjLNtWHsqtiefpGZUXQP2BiTYMsA==
376 + dependencies:
377 + "@babel/helper-plugin-utils" "^7.29.7"
378 + "@babel/template" "^7.29.7"
379 +
380 +"@babel/plugin-transform-destructuring@^7.29.7":
381 + version "7.29.7"
382 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.29.7.tgz#5781ec6947852e27b64c1165f0db431f408090e4"
383 + integrity sha512-iPX8aD6H9zV5s7ZsqTdNocPN/MGQ5sSMnElKrktxjJRMnB2jN/1p2+R7GkfD6CAYoVFqy5A4XnSIUeGgJzIWpg==
384 + dependencies:
385 + "@babel/helper-plugin-utils" "^7.29.7"
386 + "@babel/traverse" "^7.29.7"
387 +
388 +"@babel/plugin-transform-dotall-regex@^7.29.7":
389 + version "7.29.7"
390 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.29.7.tgz#b203de9740e4c7ff6b55ce436ed5313b88d70af8"
391 + integrity sha512-3qc18hsD2RdZiyJNDNc7HQpv6xbncwh8FYtxNFFzclSyh/trPD9KkVR9BDECUjDLvb7yJVF15GfYUuC+LMkkiQ==
392 + dependencies:
393 + "@babel/helper-create-regexp-features-plugin" "^7.29.7"
394 + "@babel/helper-plugin-utils" "^7.29.7"
395 +
396 +"@babel/plugin-transform-duplicate-keys@^7.29.7":
397 + version "7.29.7"
398 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.29.7.tgz#8f3fe721835cb7a433420841dae90afc962ea7ae"
399 + integrity sha512-6IvRRriEMqnBwD6chtxdLpMYCHWEzN+oL5cyQtjykya19UgzbmKhxmhZgKC/LHxS2nYr9Q/qYPZ5Lr6jOL9+yQ==
400 + dependencies:
401 + "@babel/helper-plugin-utils" "^7.29.7"
402 +
403 +"@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.29.7":
404 + version "7.29.7"
405 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.29.7.tgz#dc6c405e55c01b7657e1827a25332c4ac17e9cac"
406 + integrity sha512-2wiIyo2BjtgU7HufSeDnL9L2O7zr8jmhFKuSr65VpRkUiRKRNpb0mdlk56+XPPKoIrfHqzbMuglDvZun0RISsA==
407 + dependencies:
408 + "@babel/helper-create-regexp-features-plugin" "^7.29.7"
409 + "@babel/helper-plugin-utils" "^7.29.7"
410 +
411 +"@babel/plugin-transform-dynamic-import@^7.29.7":
412 + version "7.29.7"
413 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.29.7.tgz#a83a6faec5bab5b619adf9d0eac6c1c270123c2a"
414 + integrity sha512-giOlEm/EFjfjr+te9NsdjkUo2v4f8rS/SXPumRVHAtbNcyNlvtREkU1dZzaIDclNpnaVhlCqRdFKhJBjBikzLg==
415 + dependencies:
416 + "@babel/helper-plugin-utils" "^7.29.7"
417 +
418 +"@babel/plugin-transform-explicit-resource-management@^7.29.7":
419 + version "7.29.7"
420 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.29.7.tgz#65c8b9f76ec915b02a0e1df703125a0fca58abaa"
421 + integrity sha512-Rstj7coNz8sE+7Ju7ihpHLI564lsK5pUpNNlvptCIC/16E/S5hbl6n3kESPKdNRmqEWlpn5xpS5Q2dvXBsySLw==
422 + dependencies:
423 + "@babel/helper-plugin-utils" "^7.29.7"
424 + "@babel/plugin-transform-destructuring" "^7.29.7"
425 +
426 +"@babel/plugin-transform-exponentiation-operator@^7.29.7":
427 + version "7.29.7"
428 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.29.7.tgz#00bf002fde8794356171f5d4df200f6bc0d5a303"
429 + integrity sha512-zFpMOTLZBdW5LfObqcSbL6kefg4R4eLdmvS0wbN9M6D5Mym/sKm9toOoWyVOa+xDjvCnuWcHls2YonXwHvH3CQ==
430 + dependencies:
431 + "@babel/helper-plugin-utils" "^7.29.7"
432 +
433 +"@babel/plugin-transform-export-namespace-from@^7.29.7":
434 + version "7.29.7"
435 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.29.7.tgz#d6014f45cec61d7691335c6c9804204bee801d51"
436 + integrity sha512-24B2nOy2TeJSMheqwPD4DDQOV/elLSIlKxjZt4i05H5AgdPdWR3n18HnNrcJ+j76WJd9gbwb9jPjNYUy6RautA==
437 + dependencies:
438 + "@babel/helper-plugin-utils" "^7.29.7"
439 +
440 +"@babel/plugin-transform-flow-strip-types@^7.10.4", "@babel/plugin-transform-flow-strip-types@^7.29.7":
441 + version "7.29.7"
442 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.29.7.tgz#911bcb31608c3576510d7e0c95ccf64f9e1812d0"
443 + integrity sha512-wRHeUjUjCZnMHmiO5bRgjFLcoEh7JyTdByOW11ahhwNa4V0bmeGEaIvt51yq0zQp2yWIpqfxXXPyUP6GFJZHOQ==
444 + dependencies:
445 + "@babel/helper-plugin-utils" "^7.29.7"
446 + "@babel/plugin-syntax-flow" "^7.29.7"
447 +
448 +"@babel/plugin-transform-for-of@^7.29.7":
449 + version "7.29.7"
450 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.29.7.tgz#c65a678592117717aacdb10c1b73a9cb85e830be"
451 + integrity sha512-zeSIHh0+E1Um1WJRXCFlHQYu2ieJNdivLLjlBEp+dIBu3S51n+SZZmIXjxnItw6pz56Cn+KvK68BIBVsxq2JiQ==
452 + dependencies:
453 + "@babel/helper-plugin-utils" "^7.29.7"
454 + "@babel/helper-skip-transparent-expression-wrappers" "^7.29.7"
455 +
456 +"@babel/plugin-transform-function-name@^7.29.7":
457 + version "7.29.7"
458 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.29.7.tgz#8b87f8a7504dbcd96135167e3fc4f61126a7bd86"
459 + integrity sha512-otRWaHXE6fbAGkePvaj/kvs3HsqXfPhlnzwSOlnFgbqCPMd975dW+4wZ00WFBt+/YlBGcJwNrARQTOJOb4ZrIg==
460 + dependencies:
461 + "@babel/helper-compilation-targets" "^7.29.7"
462 + "@babel/helper-plugin-utils" "^7.29.7"
463 + "@babel/traverse" "^7.29.7"
464 +
465 +"@babel/plugin-transform-json-strings@^7.29.7":
466 + version "7.29.7"
467 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.29.7.tgz#f57d63dcc05b4481c281acedcd8fc4e3e439a1d4"
468 + integrity sha512-RRnE2+eon1rJAq8MnoF1b5kTpY1vU88twHcvcKMrsqP/jxIRqDVs9iJB5fqPuqyeFAW0wJo4MlUIPpQCq/aRsg==
469 + dependencies:
470 + "@babel/helper-plugin-utils" "^7.29.7"
471 +
472 +"@babel/plugin-transform-literals@^7.29.7":
473 + version "7.29.7"
474 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.29.7.tgz#b90bd47463326c2a9d779e1bd5e1f88b9f421921"
475 + integrity sha512-DZ/oLP21ZuWx1vKqnoNv6/tvEK48AQOBRai40CX9dTjGluvT/YZCyY3rryDtyUqCEoyNroy5KKPwX2iQCiRvyw==
476 + dependencies:
477 + "@babel/helper-plugin-utils" "^7.29.7"
478 +
479 +"@babel/plugin-transform-logical-assignment-operators@^7.29.7":
480 + version "7.29.7"
481 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.29.7.tgz#9b29425adf5c794967aabe4b046a046a167bac2f"
482 + integrity sha512-A0H91hh6W8MFRkp5TqJmMr39jzGD1A1E1Ysiv2O06Sfbhkapm+XyIzxWCEh5kqwOZ1/8QZ0dY3SeQ7XBqfJd5Q==
483 + dependencies:
484 + "@babel/helper-plugin-utils" "^7.29.7"
485 +
486 +"@babel/plugin-transform-member-expression-literals@^7.29.7":
487 + version "7.29.7"
488 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.29.7.tgz#1281689fa2fefc17b110d21ebafd0fe9402d5309"
489 + integrity sha512-hl1kwFZCCiDyfH25Xmco9jTrkPgnS9pmOzSG7W5I4SaGbLeqKv417hcU2RKmaxoPEgsoJh7ZPOrnPGq99bHoUg==
490 + dependencies:
491 + "@babel/helper-plugin-utils" "^7.29.7"
492 +
493 +"@babel/plugin-transform-modules-amd@^7.29.7":
494 + version "7.29.7"
495 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.29.7.tgz#f05ca662c8a1dc4be2f337af9c7e80369c942d6c"
496 + integrity sha512-fxtQoH3m5ywUSIfaH0FGCzWu4McsYon5bD3K4XnskC7f+OyQMj7rsOMi4NvvmJ83WwBAg4UCe+ov4VZlqEvyew==
497 + dependencies:
498 + "@babel/helper-module-transforms" "^7.29.7"
499 + "@babel/helper-plugin-utils" "^7.29.7"
500 +
501 +"@babel/plugin-transform-modules-commonjs@^7.29.7":
502 + version "7.29.7"
503 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.29.7.tgz#70e6835abf2663dafbe94b8ef1f51de7351ef135"
504 + integrity sha512-j0vCldybPC5b5dwCQOJ21uKtHzt7hxLygJTg9eF1ScfaikEDNfzn94XoW5Fi+seBR0nCyL23xaBFFkq7dTM8XQ==
505 + dependencies:
506 + "@babel/helper-module-transforms" "^7.29.7"
507 + "@babel/helper-plugin-utils" "^7.29.7"
508 +
509 +"@babel/plugin-transform-modules-systemjs@^7.29.7":
510 + version "7.29.7"
511 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.7.tgz#e575dd2ab9882906de120ff7dc9dee9914d8b6f3"
512 + integrity sha512-TM2ZcQLoG2/y4HODiStCo10DibYhWhGWAwVv+EQKmG/7GFl0N+AAmUiXOMKM+aiJ9XBJ9AHVZBvTzMnJ2sM3cQ==
513 + dependencies:
514 + "@babel/helper-module-transforms" "^7.29.7"
515 + "@babel/helper-plugin-utils" "^7.29.7"
516 + "@babel/helper-validator-identifier" "^7.29.7"
517 + "@babel/traverse" "^7.29.7"
518 +
519 +"@babel/plugin-transform-modules-umd@^7.29.7":
520 + version "7.29.7"
521 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.29.7.tgz#391d1c0215aca6307257f2f608598dfe55feb6cf"
522 + integrity sha512-B4UkaTK3QpgCwJnrxKfMPKdo92CN7OKXAlpAAnM3UPu0Q0lCCk57ylA9AJbRy2v8dDKOPAAWcoR6CMyeoHwRCA==
523 + dependencies:
524 + "@babel/helper-module-transforms" "^7.29.7"
525 + "@babel/helper-plugin-utils" "^7.29.7"
526 +
527 +"@babel/plugin-transform-named-capturing-groups-regex@^7.29.7":
528 + version "7.29.7"
529 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.29.7.tgz#21e75d847b31189842fa7a77703722ed4b43d27d"
530 + integrity sha512-vuFoLwr4qnv2xbZ16SQd6uPcH5FNrLHhk/Jzo++0XJFcaDsr4gjJVg6j398oMHiC+83k/GiBzviwF5KBJkPUtQ==
531 + dependencies:
532 + "@babel/helper-create-regexp-features-plugin" "^7.29.7"
533 + "@babel/helper-plugin-utils" "^7.29.7"
534 +
535 +"@babel/plugin-transform-new-target@^7.29.7":
536 + version "7.29.7"
537 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.29.7.tgz#714147ce7947e1b49cbd84137ca2e75e92b2a067"
538 + integrity sha512-fEo41GmsOUhOBlw8ioo6zvjX5Xc2Lqkzlyfqbpsk3eB6TReV18uhxZ0esfEokVbY2+PVJAQHNKxER6lGrzNd3A==
539 + dependencies:
540 + "@babel/helper-plugin-utils" "^7.29.7"
541 +
542 +"@babel/plugin-transform-nullish-coalescing-operator@^7.29.7":
543 + version "7.29.7"
544 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.29.7.tgz#8a54cdf88c3f50433a6173117a286195b67714cc"
545 + integrity sha512-idmp1dFaekP9GbcMvG24Kvw2BfhFZjHnNJCkV4WuIY4PskJzwI3f1N5OdgYke38T7rftO6ERulFRn2cFeZwRkg==
546 + dependencies:
547 + "@babel/helper-plugin-utils" "^7.29.7"
548 +
549 +"@babel/plugin-transform-numeric-separator@^7.29.7":
550 + version "7.29.7"
551 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.29.7.tgz#0266d5cd42ab87ec40fee45a4e36483cfdcbc66a"
552 + integrity sha512-zR7fv/z14OjgHl4AgRtkDBvBMhIzCxqV/qN/2BCRC7LjFwvuzjYe7gDWxC4Wl/SNsLM6SE1IWvRPYMgSJaUvNw==
553 + dependencies:
554 + "@babel/helper-plugin-utils" "^7.29.7"
555 +
556 +"@babel/plugin-transform-object-rest-spread@^7.29.7":
557 + version "7.29.7"
558 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.29.7.tgz#e0d5060241803922c545676613cc8acbbda0d266"
559 + integrity sha512-Ld98jn4c0smUywL57m7SgsHq3OpThOa6LqZJif3G6jYOovPleoFhVrBJ1WegRApSFB2wu4+RelAj9AC9G08Z4A==
560 + dependencies:
561 + "@babel/helper-compilation-targets" "^7.29.7"
562 + "@babel/helper-plugin-utils" "^7.29.7"
563 + "@babel/plugin-transform-destructuring" "^7.29.7"
564 + "@babel/plugin-transform-parameters" "^7.29.7"
565 + "@babel/traverse" "^7.29.7"
566 +
567 +"@babel/plugin-transform-object-super@^7.29.7":
568 + version "7.29.7"
569 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.29.7.tgz#e89283d14fa3c35817d4493ffc6bc649aa10e4eb"
570 + integrity sha512-Ea/diGcw0twB5IlZPO5sgET6fJsLJqPABqTuFWIR+iMPGPZJkATEIWx0wa+aEQ5UY1CBQyP/gkAiLEqn1vBiQA==
571 + dependencies:
572 + "@babel/helper-plugin-utils" "^7.29.7"
573 + "@babel/helper-replace-supers" "^7.29.7"
574 +
575 +"@babel/plugin-transform-optional-catch-binding@^7.29.7":
576 + version "7.29.7"
577 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.29.7.tgz#729664f79985be504eba112c51de9f71d009030b"
578 + integrity sha512-sLsyndxK2VwX6yNUOakMb7Sh553ZTe/vVM1XJ+9Z5aW1ytsc8xOIwmyk05NNjN60vkc5/KqoTH6hB4V41LJhng==
579 + dependencies:
580 + "@babel/helper-plugin-utils" "^7.29.7"
581 +
582 +"@babel/plugin-transform-optional-chaining@^7.29.7":
583 + version "7.29.7"
584 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.29.7.tgz#b84a1b574b3c73001023092567e16c492b720e51"
585 + integrity sha512-6GM1dhvK3gNODkXcEcMCOLEDCLSoZ/sBbro2Ax8HURyasQ4NshagQixkRFdh5niI6E4gmA/jYI/4aT7rRos3ZQ==
586 + dependencies:
587 + "@babel/helper-plugin-utils" "^7.29.7"
588 + "@babel/helper-skip-transparent-expression-wrappers" "^7.29.7"
589 +
590 +"@babel/plugin-transform-parameters@^7.29.7":
591 + version "7.29.7"
592 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.29.7.tgz#a5ddc3b9bfb534814cb8334cbeba47d9cf9db090"
593 + integrity sha512-ZDOBqV/qLYJI0YElr8DcENEyARsFQeESqWXH6gZlghYXuPPjvweuDhP4VyEi4BlUBlLRFZVjxoZDMjxhLW766g==
594 + dependencies:
595 + "@babel/helper-plugin-utils" "^7.29.7"
596 +
597 +"@babel/plugin-transform-private-methods@^7.29.7":
598 + version "7.29.7"
599 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.29.7.tgz#cea8bd3ab99533892897a02999d5b752584ad145"
600 + integrity sha512-/6Rz4DK1ETDEM/bWHsPHcaEe7ZaT1EqSXjtSP/L0DijOYuaUhiRiOKcwpZ8P7zR4xXEHc2ITdiCgBm9Tpyv9ug==
601 + dependencies:
602 + "@babel/helper-create-class-features-plugin" "^7.29.7"
603 + "@babel/helper-plugin-utils" "^7.29.7"
604 +
605 +"@babel/plugin-transform-private-property-in-object@^7.29.7":
606 + version "7.29.7"
607 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.29.7.tgz#4a2f6be5aba47be7afbdb4cd7903c46edf3a7661"
608 + integrity sha512-+BNo06dnrzdNNqCm1X6YUaVv0DKk8Q+JYcoZfOkLhYWNCXzlwTSRq8zGWayT1csjcpNXV9CQTBRRbmTLZac5cA==
609 + dependencies:
610 + "@babel/helper-annotate-as-pure" "^7.29.7"
611 + "@babel/helper-create-class-features-plugin" "^7.29.7"
612 + "@babel/helper-plugin-utils" "^7.29.7"
613 +
614 +"@babel/plugin-transform-property-literals@^7.29.7":
615 + version "7.29.7"
616 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.29.7.tgz#d45817cd72f9e134ab1f7fbb79264cfcb85cf636"
617 + integrity sha512-bOMRLQuI0A5ZqHq3OWJ89/rXpJ/NJrbVhXiP4zwPGMs6kpcVsuTUNjwoE30K0Qm3mf48a/TnRYYD6vPNqcg6jA==
618 + dependencies:
619 + "@babel/helper-plugin-utils" "^7.29.7"
620 +
621 +"@babel/plugin-transform-react-display-name@^7.29.7":
622 + version "7.29.7"
623 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.29.7.tgz#bf161a6d750267b79db7ff6f8fb89c3369b02df3"
624 + integrity sha512-+1wdDMGNb4UPeY3Q4L5yLiYe6TXPXubs4NjrgRFw13hPRLJfEMw2Q5OXkee6/IfdqePIeW4Jjwe3aBh7SdKz4Q==
625 + dependencies:
626 + "@babel/helper-plugin-utils" "^7.29.7"
627 +
628 +"@babel/plugin-transform-react-jsx-development@^7.29.7":
629 + version "7.29.7"
630 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.29.7.tgz#64e6aacb5cb43b9e80d3d5f19ddefc158a624f09"
631 + integrity sha512-Xfy3UVMF04+ypnFbkhvfqtmvwfe92qwQdbGZVonhE+6v35GzlofmOnA1szaZqzb9xYWr0nl1e5EMmzi0DNON1g==
632 + dependencies:
633 + "@babel/plugin-transform-react-jsx" "^7.29.7"
634 +
635 +"@babel/plugin-transform-react-jsx-source@^7.10.5":
636 + version "7.29.7"
637 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.29.7.tgz#5cf25a3689906b58e2f0a2f2b374789e6627b15f"
638 + integrity sha512-06IyK09H3wi4cGbhDBwp5gUGo0IKtnYa8tyTiephirPCK6fbobVGiXMMI5zLQ4aKEYP3wZ3ArU44o+8KMrSG/Q==
639 + dependencies:
640 + "@babel/helper-plugin-utils" "^7.29.7"
641 +
642 +"@babel/plugin-transform-react-jsx@^7.29.7":
643 + version "7.29.7"
644 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.29.7.tgz#3d16a0e5773f079400a8c82a190709cdf92ee204"
645 + integrity sha512-WsZulLVBUHXVj2cUcPVx6UE21TpalB6bHbSFErKT0Ib++ax24jjXe73FqlWvdylFOjiuPHYi6VCcgRad1ItN+A==
646 + dependencies:
647 + "@babel/helper-annotate-as-pure" "^7.29.7"
648 + "@babel/helper-module-imports" "^7.29.7"
649 + "@babel/helper-plugin-utils" "^7.29.7"
650 + "@babel/plugin-syntax-jsx" "^7.29.7"
651 + "@babel/types" "^7.29.7"
652 +
653 +"@babel/plugin-transform-react-pure-annotations@^7.29.7":
654 + version "7.29.7"
655 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.29.7.tgz#76445c90112dd0a7371b63264563bfa9a4fcd6e3"
656 + integrity sha512-H5E+HBgDpr6Q5t+Aj11tL7XkIui1jhbIoArVQnqjgXo5/3YxkN7ZEBcWF4RQlB0T4rrxJQbXS6kiFV6B7XTqUA==
657 + dependencies:
658 + "@babel/helper-annotate-as-pure" "^7.29.7"
659 + "@babel/helper-plugin-utils" "^7.29.7"
660 +
661 +"@babel/plugin-transform-regenerator@^7.29.7":
662 + version "7.29.7"
663 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.29.7.tgz#0f42626a7dbb0e7a7f52e036d3e43deebdc3ea4e"
664 + integrity sha512-rNNFV0DBAJp988xW2DOntfDoYn1eR8GGF5AT5vYc+rjyfaQkM242c9tZUHHPe7KYaiJizXPWhQTzzdbXySyhBw==
665 + dependencies:
666 + "@babel/helper-plugin-utils" "^7.29.7"
667 +
668 +"@babel/plugin-transform-regexp-modifiers@^7.29.7":
669 + version "7.29.7"
670 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.29.7.tgz#68311c0c10af2198212528863f8542843e424025"
671 + integrity sha512-mB5Fs0VWrJ42ZCmc8114v60qetdaUVNkj9PmSZRmanCZM3S9hm0CFRLjRmYIsuXav14l2jvZ+4T8iiCGnhj3nQ==
672 + dependencies:
673 + "@babel/helper-create-regexp-features-plugin" "^7.29.7"
674 + "@babel/helper-plugin-utils" "^7.29.7"
675 +
676 +"@babel/plugin-transform-reserved-words@^7.29.7":
677 + version "7.29.7"
678 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.29.7.tgz#a6feeb179b36a5f1fc6e3154c1eb727bdbe35876"
679 + integrity sha512-5+YhdpVgmfSmwZyLMftfaiffLRMHjzIRHFHHLdibcSyJm2pasMrKHrO3Ptrt2DRshjvpgjEJJ1zVW14WPq/6QA==
680 + dependencies:
681 + "@babel/helper-plugin-utils" "^7.29.7"
682 +
683 +"@babel/plugin-transform-shorthand-properties@^7.29.7":
684 + version "7.29.7"
685 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.29.7.tgz#25c0436b98f4bd9ca4b98e1fbd662743bbaab9bf"
686 + integrity sha512-I+WYbGBAiCn7nA6xBrlgPH+MB7HWb4u8pv5S0Pv7OtwNvIFvCCb24YlttKEeUFVurfBCEaOTnuhlqsb7f0Z5Dg==
687 + dependencies:
688 + "@babel/helper-plugin-utils" "^7.29.7"
689 +
690 +"@babel/plugin-transform-spread@^7.29.7":
691 + version "7.29.7"
692 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.29.7.tgz#a128bcdd6b5e5e47054907b2e50bc19c3f856edd"
693 + integrity sha512-/u5K1QWada7tbYNqTjMh96718g9NTwh9tfPJMsSmVsQwGT447FskV+KcfeXkXq2GWki4EM/MuTdmBec+hOuVTQ==
694 + dependencies:
695 + "@babel/helper-plugin-utils" "^7.29.7"
696 + "@babel/helper-skip-transparent-expression-wrappers" "^7.29.7"
697 +
698 +"@babel/plugin-transform-sticky-regex@^7.29.7":
699 + version "7.29.7"
700 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.29.7.tgz#a42c0fd1fa42f7e98e1e0c7757f72a1bbca3a015"
701 + integrity sha512-BCHzNYJGe9l7EpwwDBN/ztlL2NYFFq8hp9ddjtUEM9f2O7S7kKV/lL6Fwo7IF7NSkYhPK2vO+86nIGltA90MsA==
702 + dependencies:
703 + "@babel/helper-plugin-utils" "^7.29.7"
704 +
705 +"@babel/plugin-transform-template-literals@^7.29.7":
706 + version "7.29.7"
707 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.29.7.tgz#ada97d8e0832bca8edb315888aa654b1570f3835"
708 + integrity sha512-NCSEJ4sLFU2gqAub45HYh4fus2yQ36rr6ei6vpU7NdoJqCpxvEG8E6eJpscGyXP3VHD2Ny+fSXr04k1hoUrFqA==
709 + dependencies:
710 + "@babel/helper-plugin-utils" "^7.29.7"
711 +
712 +"@babel/plugin-transform-typeof-symbol@^7.29.7":
713 + version "7.29.7"
714 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.29.7.tgz#d848a4677c1ee3485ab017f4018f04597798911c"
715 + integrity sha512-223mNGoTkBiTEWFoK+Q6Go3tueMRclO8vxxxxquNCYuNI4jWOofFKJRRDu6SDrB8Sgo1UEGW9T4GAQ8ZyRso1A==
716 + dependencies:
717 + "@babel/helper-plugin-utils" "^7.29.7"
718 +
719 +"@babel/plugin-transform-unicode-escapes@^7.29.7":
720 + version "7.29.7"
721 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.29.7.tgz#1e99554b0cddfd650d649a9f2b996049893e5720"
722 + integrity sha512-jCfXxSjf94lf4E0hKE0AByxF6F3/pVFqRdUUNkDJhsY0m1ZKjnN6ZYyMeHNpzflxb/0q5b7t3p+BE+SLF1WOtA==
723 + dependencies:
724 + "@babel/helper-plugin-utils" "^7.29.7"
725 +
726 +"@babel/plugin-transform-unicode-property-regex@^7.29.7":
727 + version "7.29.7"
728 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.29.7.tgz#44444afc73768c2190fac4d95f7716817b7f204a"
729 + integrity sha512-OgZ+zoAJgZLUCunsTRQ5LAjOywDv5zzZ2/hQ5aMw1pGXyY2rtE8/chXYUmu3AlVHKpm10KEdG9aMwbI/K76ZGw==
730 + dependencies:
731 + "@babel/helper-create-regexp-features-plugin" "^7.29.7"
732 + "@babel/helper-plugin-utils" "^7.29.7"
733 +
734 +"@babel/plugin-transform-unicode-regex@^7.29.7":
735 + version "7.29.7"
736 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.29.7.tgz#c3064b293ff7f1794b71f7650eec8db9896d3e59"
737 + integrity sha512-7D/x/23/d/3VqZ0QA+LGbZMlGwZjztBygSWWWsfTPoQ1oQ6Q1P6Mr3d0kk42XabyUVw+fha3LqdRsFqeKqvCyA==
738 + dependencies:
739 + "@babel/helper-create-regexp-features-plugin" "^7.29.7"
740 + "@babel/helper-plugin-utils" "^7.29.7"
741 +
742 +"@babel/plugin-transform-unicode-sets-regex@^7.29.7":
743 + version "7.29.7"
744 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.29.7.tgz#b03ac9f27326f6197e8e574add83bbf33fc34ecd"
745 + integrity sha512-BLOhLht9DOJwIxlmp91wHvkXv1lguuHS3/FwUO8HL1H0u8s4hR1gASVFyilu9iGtcTRYqjTZmlsFFeQletntEg==
746 + dependencies:
747 + "@babel/helper-create-regexp-features-plugin" "^7.29.7"
748 + "@babel/helper-plugin-utils" "^7.29.7"
749 +
750 +"@babel/preset-env@^7.11.0":
751 + version "7.29.7"
752 + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.29.7.tgz#5e2ab5e764b493fdefc99c43aeaa70a9533a37fd"
753 + integrity sha512-GYzX36n1nsciIb0uyH0GHwxwtNwPQIcpxSeiVLDtG/B7jB5xXgchnmL1f/jCX5o+pwnaDBtO60ONSJhEBJfxYA==
754 + dependencies:
755 + "@babel/compat-data" "^7.29.7"
756 + "@babel/helper-compilation-targets" "^7.29.7"
757 + "@babel/helper-plugin-utils" "^7.29.7"
758 + "@babel/helper-validator-option" "^7.29.7"
759 + "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.29.7"
760 + "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.29.7"
761 + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.29.7"
762 + "@babel/plugin-bugfix-safari-rest-destructuring-rhs-array" "^7.29.7"
763 + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.29.7"
764 + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.29.7"
765 + "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2"
766 + "@babel/plugin-syntax-import-assertions" "^7.29.7"
767 + "@babel/plugin-syntax-import-attributes" "^7.29.7"
768 + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6"
769 + "@babel/plugin-transform-arrow-functions" "^7.29.7"
770 + "@babel/plugin-transform-async-generator-functions" "^7.29.7"
771 + "@babel/plugin-transform-async-to-generator" "^7.29.7"
772 + "@babel/plugin-transform-block-scoped-functions" "^7.29.7"
773 + "@babel/plugin-transform-block-scoping" "^7.29.7"
774 + "@babel/plugin-transform-class-properties" "^7.29.7"
775 + "@babel/plugin-transform-class-static-block" "^7.29.7"
776 + "@babel/plugin-transform-classes" "^7.29.7"
777 + "@babel/plugin-transform-computed-properties" "^7.29.7"
778 + "@babel/plugin-transform-destructuring" "^7.29.7"
779 + "@babel/plugin-transform-dotall-regex" "^7.29.7"
780 + "@babel/plugin-transform-duplicate-keys" "^7.29.7"
781 + "@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.29.7"
782 + "@babel/plugin-transform-dynamic-import" "^7.29.7"
783 + "@babel/plugin-transform-explicit-resource-management" "^7.29.7"
784 + "@babel/plugin-transform-exponentiation-operator" "^7.29.7"
785 + "@babel/plugin-transform-export-namespace-from" "^7.29.7"
786 + "@babel/plugin-transform-for-of" "^7.29.7"
787 + "@babel/plugin-transform-function-name" "^7.29.7"
788 + "@babel/plugin-transform-json-strings" "^7.29.7"
789 + "@babel/plugin-transform-literals" "^7.29.7"
790 + "@babel/plugin-transform-logical-assignment-operators" "^7.29.7"
791 + "@babel/plugin-transform-member-expression-literals" "^7.29.7"
792 + "@babel/plugin-transform-modules-amd" "^7.29.7"
793 + "@babel/plugin-transform-modules-commonjs" "^7.29.7"
794 + "@babel/plugin-transform-modules-systemjs" "^7.29.7"
795 + "@babel/plugin-transform-modules-umd" "^7.29.7"
796 + "@babel/plugin-transform-named-capturing-groups-regex" "^7.29.7"
797 + "@babel/plugin-transform-new-target" "^7.29.7"
798 + "@babel/plugin-transform-nullish-coalescing-operator" "^7.29.7"
799 + "@babel/plugin-transform-numeric-separator" "^7.29.7"
800 + "@babel/plugin-transform-object-rest-spread" "^7.29.7"
801 + "@babel/plugin-transform-object-super" "^7.29.7"
802 + "@babel/plugin-transform-optional-catch-binding" "^7.29.7"
803 + "@babel/plugin-transform-optional-chaining" "^7.29.7"
804 + "@babel/plugin-transform-parameters" "^7.29.7"
805 + "@babel/plugin-transform-private-methods" "^7.29.7"
806 + "@babel/plugin-transform-private-property-in-object" "^7.29.7"
807 + "@babel/plugin-transform-property-literals" "^7.29.7"
808 + "@babel/plugin-transform-regenerator" "^7.29.7"
809 + "@babel/plugin-transform-regexp-modifiers" "^7.29.7"
810 + "@babel/plugin-transform-reserved-words" "^7.29.7"
811 + "@babel/plugin-transform-shorthand-properties" "^7.29.7"
812 + "@babel/plugin-transform-spread" "^7.29.7"
813 + "@babel/plugin-transform-sticky-regex" "^7.29.7"
814 + "@babel/plugin-transform-template-literals" "^7.29.7"
815 + "@babel/plugin-transform-typeof-symbol" "^7.29.7"
816 + "@babel/plugin-transform-unicode-escapes" "^7.29.7"
817 + "@babel/plugin-transform-unicode-property-regex" "^7.29.7"
818 + "@babel/plugin-transform-unicode-regex" "^7.29.7"
819 + "@babel/plugin-transform-unicode-sets-regex" "^7.29.7"
820 + "@babel/preset-modules" "0.1.6-no-external-plugins"
821 + babel-plugin-polyfill-corejs2 "^0.4.15"
822 + babel-plugin-polyfill-corejs3 "^0.14.0"
823 + babel-plugin-polyfill-regenerator "^0.6.6"
824 + core-js-compat "^3.48.0"
825 + semver "^6.3.1"
826 +
827 +"@babel/preset-flow@^7.10.4":
828 + version "7.29.7"
829 + resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.29.7.tgz#ae33812dc267a296bd3709843affbb2d811c4709"
830 + integrity sha512-KYIRV0BuaN68CDdsqFkAD7MU7yipUqQNuNElwATdxaIdpTjhvtY82QvkBJs7zV3Evxj2jFAAZ1iO8nyy0nhjqA==
831 + dependencies:
832 + "@babel/helper-plugin-utils" "^7.29.7"
833 + "@babel/helper-validator-option" "^7.29.7"
834 + "@babel/plugin-transform-flow-strip-types" "^7.29.7"
835 +
836 +"@babel/preset-modules@0.1.6-no-external-plugins":
837 + version "0.1.6-no-external-plugins"
838 + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a"
839 + integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==
840 + dependencies:
841 + "@babel/helper-plugin-utils" "^7.0.0"
842 + "@babel/types" "^7.4.4"
843 + esutils "^2.0.2"
844 +
845 +"@babel/preset-react@^7.10.4":
846 + version "7.29.7"
847 + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.29.7.tgz#2ed18366e38c2081bbf1760dc01e88fa5674eb17"
848 + integrity sha512-C+PV1TFUPTmBQGoPBL8j2QmLpZ117YTCwxIZeJOM96GbYMFSc7/pOXU5lVykwnZxyTqQxRsvoRk6f2FktZgGHA==
849 + dependencies:
850 + "@babel/helper-plugin-utils" "^7.29.7"
851 + "@babel/helper-validator-option" "^7.29.7"
852 + "@babel/plugin-transform-react-display-name" "^7.29.7"
853 + "@babel/plugin-transform-react-jsx" "^7.29.7"
854 + "@babel/plugin-transform-react-jsx-development" "^7.29.7"
855 + "@babel/plugin-transform-react-pure-annotations" "^7.29.7"
856 +
857 +"@babel/template@^7.29.7":
858 + version "7.29.7"
859 + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.29.7.tgz#4d9d4004f645cdd304de958c725162784ecac700"
860 + integrity sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==
861 + dependencies:
862 + "@babel/code-frame" "^7.29.7"
863 + "@babel/parser" "^7.29.7"
864 + "@babel/types" "^7.29.7"
865 +
866 +"@babel/traverse@^7.29.7":
867 + version "7.29.7"
868 + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.29.7.tgz#c47b07a41b95da0907d026b5dd894d98de7d2f2d"
869 + integrity sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==
870 + dependencies:
871 + "@babel/code-frame" "^7.29.7"
872 + "@babel/generator" "^7.29.7"
873 + "@babel/helper-globals" "^7.29.7"
874 + "@babel/parser" "^7.29.7"
875 + "@babel/template" "^7.29.7"
876 + "@babel/types" "^7.29.7"
877 + debug "^4.3.1"
878 +
879 +"@babel/types@^7.29.7", "@babel/types@^7.4.4":
880 + version "7.29.7"
881 + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.29.7.tgz#8005e31d82712ee7adaef6e23c63b71a62770a92"
882 + integrity sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==
883 + dependencies:
884 + "@babel/helper-string-parser" "^7.29.7"
885 + "@babel/helper-validator-identifier" "^7.29.7"
886 +
887 +"@discoveryjs/json-ext@^0.5.0":
888 + version "0.5.7"
889 + resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70"
890 + integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==
891 +
892 +"@jridgewell/gen-mapping@^0.3.12", "@jridgewell/gen-mapping@^0.3.5":
893 + version "0.3.13"
894 + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz#6342a19f44347518c93e43b1ac69deb3c4656a1f"
895 + integrity sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==
896 + dependencies:
897 + "@jridgewell/sourcemap-codec" "^1.5.0"
898 + "@jridgewell/trace-mapping" "^0.3.24"
899 +
900 +"@jridgewell/remapping@^2.3.5":
901 + version "2.3.5"
902 + resolved "https://registry.yarnpkg.com/@jridgewell/remapping/-/remapping-2.3.5.tgz#375c476d1972947851ba1e15ae8f123047445aa1"
903 + integrity sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==
904 + dependencies:
905 + "@jridgewell/gen-mapping" "^0.3.5"
906 + "@jridgewell/trace-mapping" "^0.3.24"
907 +
908 +"@jridgewell/resolve-uri@^3.1.0":
909 + version "3.1.2"
910 + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6"
911 + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==
912 +
913 +"@jridgewell/source-map@^0.3.3":
914 + version "0.3.11"
915 + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.11.tgz#b21835cbd36db656b857c2ad02ebd413cc13a9ba"
916 + integrity sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==
917 + dependencies:
918 + "@jridgewell/gen-mapping" "^0.3.5"
919 + "@jridgewell/trace-mapping" "^0.3.25"
920 +
921 +"@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0":
922 + version "1.5.5"
923 + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba"
924 + integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==
925 +
926 +"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25", "@jridgewell/trace-mapping@^0.3.28":
927 + version "0.3.31"
928 + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz#db15d6781c931f3a251a3dac39501c98a6082fd0"
929 + integrity sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==
930 + dependencies:
931 + "@jridgewell/resolve-uri" "^3.1.0"
932 + "@jridgewell/sourcemap-codec" "^1.4.14"
933 +
934 +"@leichtgewicht/ip-codec@^2.0.1":
935 + version "2.0.5"
936 + resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz#4fc56c15c580b9adb7dc3c333a134e540b44bfb1"
937 + integrity sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==
938 +
939 +"@types/body-parser@*":
940 + version "1.19.6"
941 + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.6.tgz#1859bebb8fd7dac9918a45d54c1971ab8b5af474"
942 + integrity sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==
943 + dependencies:
944 + "@types/connect" "*"
945 + "@types/node" "*"
946 +
947 +"@types/bonjour@^3.5.9":
948 + version "3.5.13"
949 + resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.13.tgz#adf90ce1a105e81dd1f9c61fdc5afda1bfb92956"
950 + integrity sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==
951 + dependencies:
952 + "@types/node" "*"
953 +
954 +"@types/connect-history-api-fallback@^1.3.5":
955 + version "1.5.4"
956 + resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz#7de71645a103056b48ac3ce07b3520b819c1d5b3"
957 + integrity sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==
958 + dependencies:
959 + "@types/express-serve-static-core" "*"
960 + "@types/node" "*"
961 +
962 +"@types/connect@*":
963 + version "3.4.38"
964 + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858"
965 + integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==
966 + dependencies:
967 + "@types/node" "*"
968 +
969 +"@types/estree@^1.0.8":
970 + version "1.0.9"
971 + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.9.tgz#cf3f0e876d7bee15a93ab925b82bf570a3904a24"
972 + integrity sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==
973 +
974 +"@types/express-serve-static-core@*", "@types/express-serve-static-core@^5.0.0":
975 + version "5.1.1"
976 + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-5.1.1.tgz#1a77faffee9572d39124933259be2523837d7eaa"
977 + integrity sha512-v4zIMr/cX7/d2BpAEX3KNKL/JrT1s43s96lLvvdTmza1oEvDudCqK9aF/djc/SWgy8Yh0h30TZx5VpzqFCxk5A==
978 + dependencies:
979 + "@types/node" "*"
980 + "@types/qs" "*"
981 + "@types/range-parser" "*"
982 + "@types/send" "*"
983 +
984 +"@types/express-serve-static-core@^4.17.33":
985 + version "4.19.8"
986 + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.8.tgz#99b960322a4d576b239a640ab52ef191989b036f"
987 + integrity sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA==
988 + dependencies:
989 + "@types/node" "*"
990 + "@types/qs" "*"
991 + "@types/range-parser" "*"
992 + "@types/send" "*"
993 +
994 +"@types/express@*":
995 + version "5.0.6"
996 + resolved "https://registry.yarnpkg.com/@types/express/-/express-5.0.6.tgz#2d724b2c990dcb8c8444063f3580a903f6d500cc"
997 + integrity sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA==
998 + dependencies:
999 + "@types/body-parser" "*"
1000 + "@types/express-serve-static-core" "^5.0.0"
1001 + "@types/serve-static" "^2"
1002 +
1003 +"@types/express@^4.17.13":
1004 + version "4.17.25"
1005 + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.25.tgz#070c8c73a6fee6936d65c195dbbfb7da5026649b"
1006 + integrity sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==
1007 + dependencies:
1008 + "@types/body-parser" "*"
1009 + "@types/express-serve-static-core" "^4.17.33"
1010 + "@types/qs" "*"
1011 + "@types/serve-static" "^1"
1012 +
1013 +"@types/http-errors@*":
1014 + version "2.0.5"
1015 + resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.5.tgz#5b749ab2b16ba113423feb1a64a95dcd30398472"
1016 + integrity sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==
1017 +
1018 +"@types/http-proxy@^1.17.8":
1019 + version "1.17.17"
1020 + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.17.tgz#d9e2c4571fe3507343cb210cd41790375e59a533"
1021 + integrity sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw==
1022 + dependencies:
1023 + "@types/node" "*"
1024 +
1025 +"@types/json-schema@^7.0.15", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.9":
1026 + version "7.0.15"
1027 + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
1028 + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
1029 +
1030 +"@types/mime@^1":
1031 + version "1.3.5"
1032 + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690"
1033 + integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==
1034 +
1035 +"@types/node-forge@^1.3.0":
1036 + version "1.3.14"
1037 + resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.14.tgz#006c2616ccd65550560c2757d8472eb6d3ecea0b"
1038 + integrity sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==
1039 + dependencies:
1040 + "@types/node" "*"
1041 +
1042 +"@types/node@*":
1043 + version "25.9.1"
1044 + resolved "https://registry.yarnpkg.com/@types/node/-/node-25.9.1.tgz#3bda556db500ae4319c08e7fc9ab94f19013ba0b"
1045 + integrity sha512-xfrlY7UD5rMJk3ZVJP8BNzS28J36YJg+xp+LPXV1TdWxr8uMH5A860QNxYDGQe/ylDSgjxE52Q9VnO7p75tJxg==
1046 + dependencies:
1047 + undici-types ">=7.24.0 <7.24.7"
1048 +
1049 +"@types/qs@*":
1050 + version "6.15.1"
1051 + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.15.1.tgz#8606884272c63f0db96986bd3548650d8a9388bf"
1052 + integrity sha512-GZHUBZR9hckSUhrxmp1nG6NwdpM9fCunJwyThLW1X3AyHgd9IlHb6VANpQQqDr2o/qQp6McZ3y/IA2rVzKzSbw==
1053 +
1054 +"@types/range-parser@*":
1055 + version "1.2.7"
1056 + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb"
1057 + integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==
1058 +
1059 +"@types/retry@0.12.0":
1060 + version "0.12.0"
1061 + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d"
1062 + integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==
1063 +
1064 +"@types/send@*":
1065 + version "1.2.1"
1066 + resolved "https://registry.yarnpkg.com/@types/send/-/send-1.2.1.tgz#6a784e45543c18c774c049bff6d3dbaf045c9c74"
1067 + integrity sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==
1068 + dependencies:
1069 + "@types/node" "*"
1070 +
1071 +"@types/send@<1":
1072 + version "0.17.6"
1073 + resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.6.tgz#aeb5385be62ff58a52cd5459daa509ae91651d25"
1074 + integrity sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==
1075 + dependencies:
1076 + "@types/mime" "^1"
1077 + "@types/node" "*"
1078 +
1079 +"@types/serve-index@^1.9.1":
1080 + version "1.9.4"
1081 + resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.4.tgz#e6ae13d5053cb06ed36392110b4f9a49ac4ec898"
1082 + integrity sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==
1083 + dependencies:
1084 + "@types/express" "*"
1085 +
1086 +"@types/serve-static@^1", "@types/serve-static@^1.13.10":
1087 + version "1.15.10"
1088 + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.10.tgz#768169145a778f8f5dfcb6360aead414a3994fee"
1089 + integrity sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==
1090 + dependencies:
1091 + "@types/http-errors" "*"
1092 + "@types/node" "*"
1093 + "@types/send" "<1"
1094 +
1095 +"@types/serve-static@^2":
1096 + version "2.2.0"
1097 + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-2.2.0.tgz#d4a447503ead0d1671132d1ab6bd58b805d8de6a"
1098 + integrity sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==
1099 + dependencies:
1100 + "@types/http-errors" "*"
1101 + "@types/node" "*"
1102 +
1103 +"@types/sockjs@^0.3.33":
1104 + version "0.3.36"
1105 + resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.36.tgz#ce322cf07bcc119d4cbf7f88954f3a3bd0f67535"
1106 + integrity sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==
1107 + dependencies:
1108 + "@types/node" "*"
1109 +
1110 +"@types/ws@^8.5.5":
1111 + version "8.18.1"
1112 + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.18.1.tgz#48464e4bf2ddfd17db13d845467f6070ffea4aa9"
1113 + integrity sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==
1114 + dependencies:
1115 + "@types/node" "*"
1116 +
1117 +"@webassemblyjs/ast@1.14.1", "@webassemblyjs/ast@^1.14.1":
1118 + version "1.14.1"
1119 + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.14.1.tgz#a9f6a07f2b03c95c8d38c4536a1fdfb521ff55b6"
1120 + integrity sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==
1121 + dependencies:
1122 + "@webassemblyjs/helper-numbers" "1.13.2"
1123 + "@webassemblyjs/helper-wasm-bytecode" "1.13.2"
1124 +
1125 +"@webassemblyjs/floating-point-hex-parser@1.13.2":
1126 + version "1.13.2"
1127 + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz#fcca1eeddb1cc4e7b6eed4fc7956d6813b21b9fb"
1128 + integrity sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==
1129 +
1130 +"@webassemblyjs/helper-api-error@1.13.2":
1131 + version "1.13.2"
1132 + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz#e0a16152248bc38daee76dd7e21f15c5ef3ab1e7"
1133 + integrity sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==
1134 +
1135 +"@webassemblyjs/helper-buffer@1.14.1":
1136 + version "1.14.1"
1137 + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz#822a9bc603166531f7d5df84e67b5bf99b72b96b"
1138 + integrity sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==
1139 +
1140 +"@webassemblyjs/helper-numbers@1.13.2":
1141 + version "1.13.2"
1142 + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz#dbd932548e7119f4b8a7877fd5a8d20e63490b2d"
1143 + integrity sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==
1144 + dependencies:
1145 + "@webassemblyjs/floating-point-hex-parser" "1.13.2"
1146 + "@webassemblyjs/helper-api-error" "1.13.2"
1147 + "@xtuc/long" "4.2.2"
1148 +
1149 +"@webassemblyjs/helper-wasm-bytecode@1.13.2":
1150 + version "1.13.2"
1151 + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz#e556108758f448aae84c850e593ce18a0eb31e0b"
1152 + integrity sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==
1153 +
1154 +"@webassemblyjs/helper-wasm-section@1.14.1":
1155 + version "1.14.1"
1156 + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz#9629dda9c4430eab54b591053d6dc6f3ba050348"
1157 + integrity sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==
1158 + dependencies:
1159 + "@webassemblyjs/ast" "1.14.1"
1160 + "@webassemblyjs/helper-buffer" "1.14.1"
1161 + "@webassemblyjs/helper-wasm-bytecode" "1.13.2"
1162 + "@webassemblyjs/wasm-gen" "1.14.1"
1163 +
1164 +"@webassemblyjs/ieee754@1.13.2":
1165 + version "1.13.2"
1166 + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz#1c5eaace1d606ada2c7fd7045ea9356c59ee0dba"
1167 + integrity sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==
1168 + dependencies:
1169 + "@xtuc/ieee754" "^1.2.0"
1170 +
1171 +"@webassemblyjs/leb128@1.13.2":
1172 + version "1.13.2"
1173 + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.13.2.tgz#57c5c3deb0105d02ce25fa3fd74f4ebc9fd0bbb0"
1174 + integrity sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==
1175 + dependencies:
1176 + "@xtuc/long" "4.2.2"
1177 +
1178 +"@webassemblyjs/utf8@1.13.2":
1179 + version "1.13.2"
1180 + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.13.2.tgz#917a20e93f71ad5602966c2d685ae0c6c21f60f1"
1181 + integrity sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==
1182 +
1183 +"@webassemblyjs/wasm-edit@^1.14.1":
1184 + version "1.14.1"
1185 + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz#ac6689f502219b59198ddec42dcd496b1004d597"
1186 + integrity sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==
1187 + dependencies:
1188 + "@webassemblyjs/ast" "1.14.1"
1189 + "@webassemblyjs/helper-buffer" "1.14.1"
1190 + "@webassemblyjs/helper-wasm-bytecode" "1.13.2"
1191 + "@webassemblyjs/helper-wasm-section" "1.14.1"
1192 + "@webassemblyjs/wasm-gen" "1.14.1"
1193 + "@webassemblyjs/wasm-opt" "1.14.1"
1194 + "@webassemblyjs/wasm-parser" "1.14.1"
1195 + "@webassemblyjs/wast-printer" "1.14.1"
1196 +
1197 +"@webassemblyjs/wasm-gen@1.14.1":
1198 + version "1.14.1"
1199 + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz#991e7f0c090cb0bb62bbac882076e3d219da9570"
1200 + integrity sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==
1201 + dependencies:
1202 + "@webassemblyjs/ast" "1.14.1"
1203 + "@webassemblyjs/helper-wasm-bytecode" "1.13.2"
1204 + "@webassemblyjs/ieee754" "1.13.2"
1205 + "@webassemblyjs/leb128" "1.13.2"
1206 + "@webassemblyjs/utf8" "1.13.2"
1207 +
1208 +"@webassemblyjs/wasm-opt@1.14.1":
1209 + version "1.14.1"
1210 + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz#e6f71ed7ccae46781c206017d3c14c50efa8106b"
1211 + integrity sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==
1212 + dependencies:
1213 + "@webassemblyjs/ast" "1.14.1"
1214 + "@webassemblyjs/helper-buffer" "1.14.1"
1215 + "@webassemblyjs/wasm-gen" "1.14.1"
1216 + "@webassemblyjs/wasm-parser" "1.14.1"
1217 +
1218 +"@webassemblyjs/wasm-parser@1.14.1", "@webassemblyjs/wasm-parser@^1.14.1":
1219 + version "1.14.1"
1220 + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz#b3e13f1893605ca78b52c68e54cf6a865f90b9fb"
1221 + integrity sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==
1222 + dependencies:
1223 + "@webassemblyjs/ast" "1.14.1"
1224 + "@webassemblyjs/helper-api-error" "1.13.2"
1225 + "@webassemblyjs/helper-wasm-bytecode" "1.13.2"
1226 + "@webassemblyjs/ieee754" "1.13.2"
1227 + "@webassemblyjs/leb128" "1.13.2"
1228 + "@webassemblyjs/utf8" "1.13.2"
1229 +
1230 +"@webassemblyjs/wast-printer@1.14.1":
1231 + version "1.14.1"
1232 + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz#3bb3e9638a8ae5fdaf9610e7a06b4d9f9aa6fe07"
1233 + integrity sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==
1234 + dependencies:
1235 + "@webassemblyjs/ast" "1.14.1"
1236 + "@xtuc/long" "4.2.2"
1237 +
1238 +"@webpack-cli/configtest@^2.1.1":
1239 + version "2.1.1"
1240 + resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-2.1.1.tgz#3b2f852e91dac6e3b85fb2a314fb8bef46d94646"
1241 + integrity sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==
1242 +
1243 +"@webpack-cli/info@^2.0.2":
1244 + version "2.0.2"
1245 + resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-2.0.2.tgz#cc3fbf22efeb88ff62310cf885c5b09f44ae0fdd"
1246 + integrity sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==
1247 +
1248 +"@webpack-cli/serve@^2.0.5":
1249 + version "2.0.5"
1250 + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-2.0.5.tgz#325db42395cd49fe6c14057f9a900e427df8810e"
1251 + integrity sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==
1252 +
1253 +"@xtuc/ieee754@^1.2.0":
1254 + version "1.2.0"
1255 + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790"
1256 + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==
1257 +
1258 +"@xtuc/long@4.2.2":
1259 + version "4.2.2"
1260 + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d"
1261 + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==
1262 +
1263 +accepts@~1.3.8:
1264 + version "1.3.8"
1265 + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e"
1266 + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==
1267 + dependencies:
1268 + mime-types "~2.1.34"
1269 + negotiator "0.6.3"
1270 +
1271 +acorn-import-phases@^1.0.3:
1272 + version "1.0.4"
1273 + resolved "https://registry.yarnpkg.com/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz#16eb850ba99a056cb7cbfe872ffb8972e18c8bd7"
1274 + integrity sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==
1275 +
1276 +acorn@^8.15.0, acorn@^8.16.0:
1277 + version "8.16.0"
1278 + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.16.0.tgz#4ce79c89be40afe7afe8f3adb902a1f1ce9ac08a"
1279 + integrity sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==
1280 +
1281 +ajv-formats@^2.1.1:
1282 + version "2.1.1"
1283 + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520"
1284 + integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==
1285 + dependencies:
1286 + ajv "^8.0.0"
1287 +
1288 +ajv-keywords@^3.5.2:
1289 + version "3.5.2"
1290 + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d"
1291 + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
1292 +
1293 +ajv-keywords@^5.1.0:
1294 + version "5.1.0"
1295 + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16"
1296 + integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==
1297 + dependencies:
1298 + fast-deep-equal "^3.1.3"
1299 +
1300 +ajv@^6.12.4:
1301 + version "6.15.0"
1302 + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.15.0.tgz#07e982c74626167aa7a2495c53817892d7139492"
1303 + integrity sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==
1304 + dependencies:
1305 + fast-deep-equal "^3.1.1"
1306 + fast-json-stable-stringify "^2.0.0"
1307 + json-schema-traverse "^0.4.1"
1308 + uri-js "^4.2.2"
1309 +
1310 +ajv@^8.0.0, ajv@^8.9.0:
1311 + version "8.20.0"
1312 + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.20.0.tgz#304b3636add88ba7d936760dd50ece006dea95f9"
1313 + integrity sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==
1314 + dependencies:
1315 + fast-deep-equal "^3.1.3"
1316 + fast-uri "^3.0.1"
1317 + json-schema-traverse "^1.0.0"
1318 + require-from-string "^2.0.2"
1319 +
1320 +ansi-html-community@^0.0.8:
1321 + version "0.0.8"
1322 + resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41"
1323 + integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==
1324 +
1325 +anymatch@~3.1.2:
1326 + version "3.1.3"
1327 + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e"
1328 + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
1329 + dependencies:
1330 + normalize-path "^3.0.0"
1331 + picomatch "^2.0.4"
1332 +
1333 +array-flatten@1.1.1:
1334 + version "1.1.1"
1335 + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
1336 + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==
1337 +
1338 +babel-loader@^8.0.4:
1339 + version "8.4.1"
1340 + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.4.1.tgz#6ccb75c66e62c3b144e1c5f2eaec5b8f6c08c675"
1341 + integrity sha512-nXzRChX+Z1GoE6yWavBQg6jDslyFF3SDjl2paADuoQtQW10JqShJt62R6eJQ5m/pjJFDT8xgKIWSP85OY8eXeA==
1342 + dependencies:
1343 + find-cache-dir "^3.3.1"
1344 + loader-utils "^2.0.4"
1345 + make-dir "^3.1.0"
1346 + schema-utils "^2.6.5"
1347 +
1348 +babel-plugin-polyfill-corejs2@^0.4.15:
1349 + version "0.4.17"
1350 + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.17.tgz#198f970f1c99a856b466d1187e88ce30bd199d91"
1351 + integrity sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==
1352 + dependencies:
1353 + "@babel/compat-data" "^7.28.6"
1354 + "@babel/helper-define-polyfill-provider" "^0.6.8"
1355 + semver "^6.3.1"
1356 +
1357 +babel-plugin-polyfill-corejs3@^0.14.0:
1358 + version "0.14.2"
1359 + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.2.tgz#6ac08d2f312affb70c4c69c0fbba4cb417ee5587"
1360 + integrity sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g==
1361 + dependencies:
1362 + "@babel/helper-define-polyfill-provider" "^0.6.8"
1363 + core-js-compat "^3.48.0"
1364 +
1365 +babel-plugin-polyfill-regenerator@^0.6.6:
1366 + version "0.6.8"
1367 + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.8.tgz#8a6bfd5dd54239362b3d06ce47ac52b2d95d7721"
1368 + integrity sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==
1369 + dependencies:
1370 + "@babel/helper-define-polyfill-provider" "^0.6.8"
1371 +
1372 +balanced-match@^1.0.0:
1373 + version "1.0.2"
1374 + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
1375 + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
1376 +
1377 +baseline-browser-mapping@^2.10.12:
1378 + version "2.10.33"
1379 + resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.10.33.tgz#27c299b096404978831958d429f48390424c4f9b"
1380 + integrity sha512-bA6+tcSLpz2tIEdDXZPpPTIuxBcC4+w6SieaYyfigIa4h8GlFxbA17v22Vx3JUtuZQj9SgOsnbK+aTBzyDyEuw==
1381 +
1382 +batch@0.6.1:
1383 + version "0.6.1"
1384 + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16"
1385 + integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==
1386 +
1387 +big.js@^5.2.2:
1388 + version "5.2.2"
1389 + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
1390 + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==
1391 +
1392 +binary-extensions@^2.0.0:
1393 + version "2.3.0"
1394 + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522"
1395 + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==
1396 +
1397 +body-parser@~1.20.5:
1398 + version "1.20.5"
1399 + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.5.tgz#303c8c34423d1d6fa799bc764e93c1e4dc6ebf64"
1400 + integrity sha512-3grm+/2tUOvu2cjJkvsIxrv/wVpfXQW4PsQHYm7yk4vfpu7Ekl6nEsYBoJUL6qDwZUx8wUhQ8tR2qz+ad9c9OA==
1401 + dependencies:
1402 + bytes "~3.1.2"
1403 + content-type "~1.0.5"
1404 + debug "2.6.9"
1405 + depd "2.0.0"
1406 + destroy "~1.2.0"
1407 + http-errors "~2.0.1"
1408 + iconv-lite "~0.4.24"
1409 + on-finished "~2.4.1"
1410 + qs "~6.15.1"
1411 + raw-body "~2.5.3"
1412 + type-is "~1.6.18"
1413 + unpipe "~1.0.0"
1414 +
1415 +bonjour-service@^1.0.11:
1416 + version "1.4.0"
1417 + resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.4.0.tgz#6d7cfbb5a8f630b41bb44dcd73585eaedf6ef93c"
1418 + integrity sha512-fGQtj1qdR9vIKjFiWPQd52qIqwjaYqhcI40JEiDuvlZ86E7ZBPBwY9fPgHy9r2rYGIjiRfctNPYz6OQU73ww2w==
1419 + dependencies:
1420 + fast-deep-equal "^3.1.3"
1421 + multicast-dns "^7.2.5"
1422 +
1423 +brace-expansion@^1.1.7:
1424 + version "1.1.15"
1425 + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.15.tgz#a6d90d54067236e5f42570a3b7378d594d9b7738"
1426 + integrity sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==
1427 + dependencies:
1428 + balanced-match "^1.0.0"
1429 + concat-map "0.0.1"
1430 +
1431 +braces@^3.0.3, braces@~3.0.2:
1432 + version "3.0.3"
1433 + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789"
1434 + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
1435 + dependencies:
1436 + fill-range "^7.1.1"
1437 +
1438 +browserslist@^4.24.0, browserslist@^4.28.1:
1439 + version "4.28.2"
1440 + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.28.2.tgz#f50b65362ef48974ca9f50b3680566d786b811d2"
1441 + integrity sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==
1442 + dependencies:
1443 + baseline-browser-mapping "^2.10.12"
1444 + caniuse-lite "^1.0.30001782"
1445 + electron-to-chromium "^1.5.328"
1446 + node-releases "^2.0.36"
1447 + update-browserslist-db "^1.2.3"
1448 +
1449 +buffer-from@^1.0.0:
1450 + version "1.1.2"
1451 + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
1452 + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
1453 +
1454 +bytes@3.1.2, bytes@~3.1.2:
1455 + version "3.1.2"
1456 + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5"
1457 + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==
1458 +
1459 +call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2:
1460 + version "1.0.2"
1461 + resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6"
1462 + integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==
1463 + dependencies:
1464 + es-errors "^1.3.0"
1465 + function-bind "^1.1.2"
1466 +
1467 +call-bound@^1.0.2:
1468 + version "1.0.4"
1469 + resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.4.tgz#238de935d2a2a692928c538c7ccfa91067fd062a"
1470 + integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==
1471 + dependencies:
1472 + call-bind-apply-helpers "^1.0.2"
1473 + get-intrinsic "^1.3.0"
1474 +
1475 +caniuse-lite@^1.0.30001782:
1476 + version "1.0.30001793"
1477 + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001793.tgz#238887ddf5fcfc8c36d872394d0a78a517312a72"
1478 + integrity sha512-iwSsYWaCOoh26cV8NwNRViHlrfUvYsHDfRVcbtmw0Kg6PJIZZXwMkj1442FYLBGkeUf1juAsU3DTfxW579mrPA==
1479 +
1480 +chokidar@^3.5.3:
1481 + version "3.6.0"
1482 + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b"
1483 + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==
1484 + dependencies:
1485 + anymatch "~3.1.2"
1486 + braces "~3.0.2"
1487 + glob-parent "~5.1.2"
1488 + is-binary-path "~2.1.0"
1489 + is-glob "~4.0.1"
1490 + normalize-path "~3.0.0"
1491 + readdirp "~3.6.0"
1492 + optionalDependencies:
1493 + fsevents "~2.3.2"
1494 +
1495 +chrome-trace-event@^1.0.2:
1496 + version "1.0.4"
1497 + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz#05bffd7ff928465093314708c93bdfa9bd1f0f5b"
1498 + integrity sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==
1499 +
1500 +clone-deep@^4.0.1:
1501 + version "4.0.1"
1502 + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387"
1503 + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==
1504 + dependencies:
1505 + is-plain-object "^2.0.4"
1506 + kind-of "^6.0.2"
1507 + shallow-clone "^3.0.0"
1508 +
1509 +colorette@^2.0.10, colorette@^2.0.14:
1510 + version "2.0.20"
1511 + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a"
1512 + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==
1513 +
1514 +commander@^10.0.1:
1515 + version "10.0.1"
1516 + resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06"
1517 + integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==
1518 +
1519 +commander@^2.20.0:
1520 + version "2.20.3"
1521 + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
1522 + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
1523 +
1524 +commondir@^1.0.1:
1525 + version "1.0.1"
1526 + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
1527 + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==
1528 +
1529 +compressible@~2.0.18:
1530 + version "2.0.18"
1531 + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba"
1532 + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==
1533 + dependencies:
1534 + mime-db ">= 1.43.0 < 2"
1535 +
1536 +compression@^1.7.4:
1537 + version "1.8.1"
1538 + resolved "https://registry.yarnpkg.com/compression/-/compression-1.8.1.tgz#4a45d909ac16509195a9a28bd91094889c180d79"
1539 + integrity sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==
1540 + dependencies:
1541 + bytes "3.1.2"
1542 + compressible "~2.0.18"
1543 + debug "2.6.9"
1544 + negotiator "~0.6.4"
1545 + on-headers "~1.1.0"
1546 + safe-buffer "5.2.1"
1547 + vary "~1.1.2"
1548 +
1549 +concat-map@0.0.1:
1550 + version "0.0.1"
1551 + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
1552 + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
1553 +
1554 +connect-history-api-fallback@^2.0.0:
1555 + version "2.0.0"
1556 + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8"
1557 + integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==
1558 +
1559 +content-disposition@~0.5.4:
1560 + version "0.5.4"
1561 + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe"
1562 + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==
1563 + dependencies:
1564 + safe-buffer "5.2.1"
1565 +
1566 +content-type@~1.0.4, content-type@~1.0.5:
1567 + version "1.0.5"
1568 + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918"
1569 + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==
1570 +
1571 +convert-source-map@^2.0.0:
1572 + version "2.0.0"
1573 + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a"
1574 + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==
1575 +
1576 +cookie-signature@~1.0.6:
1577 + version "1.0.7"
1578 + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.7.tgz#ab5dd7ab757c54e60f37ef6550f481c426d10454"
1579 + integrity sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==
1580 +
1581 +cookie@~0.7.1:
1582 + version "0.7.2"
1583 + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.2.tgz#556369c472a2ba910f2979891b526b3436237ed7"
1584 + integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==
1585 +
1586 +core-js-compat@^3.48.0:
1587 + version "3.49.0"
1588 + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.49.0.tgz#06145447d92f4aaf258a0c44f24b47afaeaffef6"
1589 + integrity sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==
1590 + dependencies:
1591 + browserslist "^4.28.1"
1592 +
1593 +core-util-is@~1.0.0:
1594 + version "1.0.3"
1595 + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
1596 + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
1597 +
1598 +cross-env@^7.0.3:
1599 + version "7.0.3"
1600 + resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf"
1601 + integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==
1602 + dependencies:
1603 + cross-spawn "^7.0.1"
1604 +
1605 +cross-spawn@^7.0.1, cross-spawn@^7.0.3:
1606 + version "7.0.6"
1607 + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f"
1608 + integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==
1609 + dependencies:
1610 + path-key "^3.1.0"
1611 + shebang-command "^2.0.0"
1612 + which "^2.0.1"
1613 +
1614 +debug@2.6.9:
1615 + version "2.6.9"
1616 + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
1617 + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
1618 + dependencies:
1619 + ms "2.0.0"
1620 +
1621 +debug@^4.1.0, debug@^4.3.1, debug@^4.4.3:
1622 + version "4.4.3"
1623 + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a"
1624 + integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==
1625 + dependencies:
1626 + ms "^2.1.3"
1627 +
1628 +default-gateway@^6.0.3:
1629 + version "6.0.3"
1630 + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71"
1631 + integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==
1632 + dependencies:
1633 + execa "^5.0.0"
1634 +
1635 +define-lazy-prop@^2.0.0:
1636 + version "2.0.0"
1637 + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f"
1638 + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==
1639 +
1640 +depd@2.0.0, depd@~2.0.0:
1641 + version "2.0.0"
1642 + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
1643 + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
1644 +
1645 +depd@~1.1.2:
1646 + version "1.1.2"
1647 + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
1648 + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==
1649 +
1650 +destroy@1.2.0, destroy@~1.2.0:
1651 + version "1.2.0"
1652 + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015"
1653 + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==
1654 +
1655 +detect-node@^2.0.4:
1656 + version "2.1.0"
1657 + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1"
1658 + integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==
1659 +
1660 +dns-packet@^5.2.2:
1661 + version "5.6.1"
1662 + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.1.tgz#ae888ad425a9d1478a0674256ab866de1012cf2f"
1663 + integrity sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==
1664 + dependencies:
1665 + "@leichtgewicht/ip-codec" "^2.0.1"
1666 +
1667 +dunder-proto@^1.0.1:
1668 + version "1.0.1"
1669 + resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a"
1670 + integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==
1671 + dependencies:
1672 + call-bind-apply-helpers "^1.0.1"
1673 + es-errors "^1.3.0"
1674 + gopd "^1.2.0"
1675 +
1676 +ee-first@1.1.1:
1677 + version "1.1.1"
1678 + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
1679 + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==
1680 +
1681 +electron-to-chromium@^1.5.328:
1682 + version "1.5.366"
1683 + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.366.tgz#54cfb4090db768d58dce9ef5a2f8b837e61ebe6b"
1684 + integrity sha512-OlRuhb688YTCzzU3gXPLn6nGyd+F+53INE1qaKKlu6kETErE8FYsyDh0XqXEU+uBRn0MpCzz2vfNwORhkap8qg==
1685 +
1686 +emojis-list@^3.0.0:
1687 + version "3.0.0"
1688 + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78"
1689 + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==
1690 +
1691 +encodeurl@~2.0.0:
1692 + version "2.0.0"
1693 + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58"
1694 + integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==
1695 +
1696 +enhanced-resolve@^5.22.0:
1697 + version "5.22.1"
1698 + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.22.1.tgz#c34bc3f414298496fc244b21bbe316440782da17"
1699 + integrity sha512-6QEuw3zoX1SJQc7b87aBXke/no+mG2bTBgw29gWMQonLmpEkWoCAVkl+M49e48AZlWzxiDzDZzYdp6kobcyLww==
1700 + dependencies:
1701 + graceful-fs "^4.2.4"
1702 + tapable "^2.3.3"
1703 +
1704 +envinfo@^7.7.3:
1705 + version "7.21.0"
1706 + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.21.0.tgz#04a251be79f92548541f37d13c8b6f22940c3bae"
1707 + integrity sha512-Lw7I8Zp5YKHFCXL7+Dz95g4CcbMEpgvqZNNq3AmlT5XAV6CgAAk6gyAMqn2zjw08K9BHfcNuKrMiCPLByGafow==
1708 +
1709 +es-define-property@^1.0.1:
1710 + version "1.0.1"
1711 + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa"
1712 + integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==
1713 +
1714 +es-errors@^1.3.0:
1715 + version "1.3.0"
1716 + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f"
1717 + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
1718 +
1719 +es-module-lexer@^2.1.0:
1720 + version "2.1.0"
1721 + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-2.1.0.tgz#1dfcbb5ea3bbfb63f28e1fc3676c3676d1c9624c"
1722 + integrity sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==
1723 +
1724 +es-object-atoms@^1.0.0, es-object-atoms@^1.1.1:
1725 + version "1.1.2"
1726 + resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.2.tgz#a2d0b373205724dfa525d23b0c3e1b1ca582c99b"
1727 + integrity sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==
1728 + dependencies:
1729 + es-errors "^1.3.0"
1730 +
1731 +escalade@^3.2.0:
1732 + version "3.2.0"
1733 + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5"
1734 + integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==
1735 +
1736 +escape-html@~1.0.3:
1737 + version "1.0.3"
1738 + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
1739 + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==
1740 +
1741 +eslint-scope@5.1.1:
1742 + version "5.1.1"
1743 + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
1744 + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
1745 + dependencies:
1746 + esrecurse "^4.3.0"
1747 + estraverse "^4.1.1"
1748 +
1749 +esrecurse@^4.3.0:
1750 + version "4.3.0"
1751 + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
1752 + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
1753 + dependencies:
1754 + estraverse "^5.2.0"
1755 +
1756 +estraverse@^4.1.1:
1757 + version "4.3.0"
1758 + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
1759 + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
1760 +
1761 +estraverse@^5.2.0:
1762 + version "5.3.0"
1763 + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
1764 + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
1765 +
1766 +esutils@^2.0.2:
1767 + version "2.0.3"
1768 + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
1769 + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
1770 +
1771 +etag@~1.8.1:
1772 + version "1.8.1"
1773 + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
1774 + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==
1775 +
1776 +eventemitter3@^4.0.0:
1777 + version "4.0.7"
1778 + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f"
1779 + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==
1780 +
1781 +events@^3.2.0:
1782 + version "3.3.0"
1783 + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400"
1784 + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
1785 +
1786 +execa@^5.0.0:
1787 + version "5.1.1"
1788 + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
1789 + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
1790 + dependencies:
1791 + cross-spawn "^7.0.3"
1792 + get-stream "^6.0.0"
1793 + human-signals "^2.1.0"
1794 + is-stream "^2.0.0"
1795 + merge-stream "^2.0.0"
1796 + npm-run-path "^4.0.1"
1797 + onetime "^5.1.2"
1798 + signal-exit "^3.0.3"
1799 + strip-final-newline "^2.0.0"
1800 +
1801 +express@^4.17.3:
1802 + version "4.22.2"
1803 + resolved "https://registry.yarnpkg.com/express/-/express-4.22.2.tgz#c17ae0981e5efc24b22272f0e041c4662503b700"
1804 + integrity sha512-IuL+Elrou2ZvCFHs18/CIzy2Nzvo25nZ1/D2eIZlz7c+QUayAcYoiM2BthCjs+EBHVpjYjcuLDAiCWgeIX3X1Q==
1805 + dependencies:
1806 + accepts "~1.3.8"
1807 + array-flatten "1.1.1"
1808 + body-parser "~1.20.5"
1809 + content-disposition "~0.5.4"
1810 + content-type "~1.0.4"
1811 + cookie "~0.7.1"
1812 + cookie-signature "~1.0.6"
1813 + debug "2.6.9"
1814 + depd "2.0.0"
1815 + encodeurl "~2.0.0"
1816 + escape-html "~1.0.3"
1817 + etag "~1.8.1"
1818 + finalhandler "~1.3.1"
1819 + fresh "~0.5.2"
1820 + http-errors "~2.0.0"
1821 + merge-descriptors "1.0.3"
1822 + methods "~1.1.2"
1823 + on-finished "~2.4.1"
1824 + parseurl "~1.3.3"
1825 + path-to-regexp "~0.1.12"
1826 + proxy-addr "~2.0.7"
1827 + qs "~6.15.1"
1828 + range-parser "~1.2.1"
1829 + safe-buffer "5.2.1"
1830 + send "~0.19.0"
1831 + serve-static "~1.16.2"
1832 + setprototypeof "1.2.0"
1833 + statuses "~2.0.1"
1834 + type-is "~1.6.18"
1835 + utils-merge "1.0.1"
1836 + vary "~1.1.2"
1837 +
1838 +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
1839 + version "3.1.3"
1840 + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
1841 + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
1842 +
1843 +fast-json-stable-stringify@^2.0.0:
1844 + version "2.1.0"
1845 + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
1846 + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
1847 +
1848 +fast-uri@^3.0.1:
1849 + version "3.1.2"
1850 + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.1.2.tgz#8af3d4fc9d3e71b11572cc2673b514a7d1a8c8ec"
1851 + integrity sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==
1852 +
1853 +fastest-levenshtein@^1.0.12:
1854 + version "1.0.16"
1855 + resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5"
1856 + integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==
1857 +
1858 +faye-websocket@^0.11.3:
1859 + version "0.11.4"
1860 + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da"
1861 + integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==
1862 + dependencies:
1863 + websocket-driver ">=0.5.1"
1864 +
1865 +fill-range@^7.1.1:
1866 + version "7.1.1"
1867 + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292"
1868 + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==
1869 + dependencies:
1870 + to-regex-range "^5.0.1"
1871 +
1872 +finalhandler@~1.3.1:
1873 + version "1.3.2"
1874 + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.3.2.tgz#1ebc2228fc7673aac4a472c310cc05b77d852b88"
1875 + integrity sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==
1876 + dependencies:
1877 + debug "2.6.9"
1878 + encodeurl "~2.0.0"
1879 + escape-html "~1.0.3"
1880 + on-finished "~2.4.1"
1881 + parseurl "~1.3.3"
1882 + statuses "~2.0.2"
1883 + unpipe "~1.0.0"
1884 +
1885 +find-cache-dir@^3.3.1:
1886 + version "3.3.2"
1887 + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b"
1888 + integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==
1889 + dependencies:
1890 + commondir "^1.0.1"
1891 + make-dir "^3.0.2"
1892 + pkg-dir "^4.1.0"
1893 +
1894 +find-up@^4.0.0:
1895 + version "4.1.0"
1896 + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
1897 + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
1898 + dependencies:
1899 + locate-path "^5.0.0"
1900 + path-exists "^4.0.0"
1901 +
1902 +flat@^5.0.2:
1903 + version "5.0.2"
1904 + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241"
1905 + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==
1906 +
1907 +follow-redirects@^1.0.0:
1908 + version "1.16.0"
1909 + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.16.0.tgz#28474a159d3b9d11ef62050a14ed60e4df6d61bc"
1910 + integrity sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==
1911 +
1912 +forwarded@0.2.0:
1913 + version "0.2.0"
1914 + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"
1915 + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==
1916 +
1917 +fresh@~0.5.2:
1918 + version "0.5.2"
1919 + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
1920 + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==
1921 +
1922 +fs-monkey@^1.0.4:
1923 + version "1.1.0"
1924 + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.1.0.tgz#632aa15a20e71828ed56b24303363fb1414e5997"
1925 + integrity sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw==
1926 +
1927 +fs.realpath@^1.0.0:
1928 + version "1.0.0"
1929 + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
1930 + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
1931 +
1932 +fsevents@~2.3.2:
1933 + version "2.3.3"
1934 + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
1935 + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
1936 +
1937 +function-bind@^1.1.2:
1938 + version "1.1.2"
1939 + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
1940 + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
1941 +
1942 +gensync@^1.0.0-beta.2:
1943 + version "1.0.0-beta.2"
1944 + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
1945 + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
1946 +
1947 +get-intrinsic@^1.2.5, get-intrinsic@^1.3.0:
1948 + version "1.3.0"
1949 + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01"
1950 + integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==
1951 + dependencies:
1952 + call-bind-apply-helpers "^1.0.2"
1953 + es-define-property "^1.0.1"
1954 + es-errors "^1.3.0"
1955 + es-object-atoms "^1.1.1"
1956 + function-bind "^1.1.2"
1957 + get-proto "^1.0.1"
1958 + gopd "^1.2.0"
1959 + has-symbols "^1.1.0"
1960 + hasown "^2.0.2"
1961 + math-intrinsics "^1.1.0"
1962 +
1963 +get-proto@^1.0.1:
1964 + version "1.0.1"
1965 + resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1"
1966 + integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==
1967 + dependencies:
1968 + dunder-proto "^1.0.1"
1969 + es-object-atoms "^1.0.0"
1970 +
1971 +get-stream@^6.0.0:
1972 + version "6.0.1"
1973 + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
1974 + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
1975 +
1976 +glob-parent@~5.1.2:
1977 + version "5.1.2"
1978 + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
1979 + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
1980 + dependencies:
1981 + is-glob "^4.0.1"
1982 +
1983 +glob-to-regexp@^0.4.1:
1984 + version "0.4.1"
1985 + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e"
1986 + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==
1987 +
1988 +glob@^7.1.3:
1989 + version "7.2.3"
1990 + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
1991 + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
1992 + dependencies:
1993 + fs.realpath "^1.0.0"
1994 + inflight "^1.0.4"
1995 + inherits "2"
1996 + minimatch "^3.1.1"
1997 + once "^1.3.0"
1998 + path-is-absolute "^1.0.0"
1999 +
2000 +gopd@^1.2.0:
2001 + version "1.2.0"
2002 + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1"
2003 + integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==
2004 +
2005 +graceful-fs@^4.1.2, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6:
2006 + version "4.2.11"
2007 + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
2008 + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
2009 +
2010 +handle-thing@^2.0.0:
2011 + version "2.0.1"
2012 + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e"
2013 + integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==
2014 +
2015 +has-flag@^4.0.0:
2016 + version "4.0.0"
2017 + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
2018 + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
2019 +
2020 +has-symbols@^1.1.0:
2021 + version "1.1.0"
2022 + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338"
2023 + integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==
2024 +
2025 +hasown@^2.0.2, hasown@^2.0.3:
2026 + version "2.0.4"
2027 + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.4.tgz#8c62d8cb90beb2aad5d0a5b67581ad9854c3f003"
2028 + integrity sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==
2029 + dependencies:
2030 + function-bind "^1.1.2"
2031 +
2032 +hpack.js@^2.1.6:
2033 + version "2.1.6"
2034 + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2"
2035 + integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==
2036 + dependencies:
2037 + inherits "^2.0.1"
2038 + obuf "^1.0.0"
2039 + readable-stream "^2.0.1"
2040 + wbuf "^1.1.0"
2041 +
2042 +html-entities@^2.3.2:
2043 + version "2.6.0"
2044 + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.6.0.tgz#7c64f1ea3b36818ccae3d3fb48b6974208e984f8"
2045 + integrity sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==
2046 +
2047 +http-deceiver@^1.2.7:
2048 + version "1.2.7"
2049 + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87"
2050 + integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==
2051 +
2052 +http-errors@~1.8.0:
2053 + version "1.8.1"
2054 + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c"
2055 + integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==
2056 + dependencies:
2057 + depd "~1.1.2"
2058 + inherits "2.0.4"
2059 + setprototypeof "1.2.0"
2060 + statuses ">= 1.5.0 < 2"
2061 + toidentifier "1.0.1"
2062 +
2063 +http-errors@~2.0.0, http-errors@~2.0.1:
2064 + version "2.0.1"
2065 + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.1.tgz#36d2f65bc909c8790018dd36fb4d93da6caae06b"
2066 + integrity sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==
2067 + dependencies:
2068 + depd "~2.0.0"
2069 + inherits "~2.0.4"
2070 + setprototypeof "~1.2.0"
2071 + statuses "~2.0.2"
2072 + toidentifier "~1.0.1"
2073 +
2074 +http-parser-js@>=0.5.1:
2075 + version "0.5.10"
2076 + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.10.tgz#b3277bd6d7ed5588e20ea73bf724fcbe44609075"
2077 + integrity sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==
2078 +
2079 +http-proxy-middleware@^2.0.3:
2080 + version "2.0.9"
2081 + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz#e9e63d68afaa4eee3d147f39149ab84c0c2815ef"
2082 + integrity sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q==
2083 + dependencies:
2084 + "@types/http-proxy" "^1.17.8"
2085 + http-proxy "^1.18.1"
2086 + is-glob "^4.0.1"
2087 + is-plain-obj "^3.0.0"
2088 + micromatch "^4.0.2"
2089 +
2090 +http-proxy@^1.18.1:
2091 + version "1.18.1"
2092 + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549"
2093 + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==
2094 + dependencies:
2095 + eventemitter3 "^4.0.0"
2096 + follow-redirects "^1.0.0"
2097 + requires-port "^1.0.0"
2098 +
2099 +human-signals@^2.1.0:
2100 + version "2.1.0"
2101 + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
2102 + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
2103 +
2104 +iconv-lite@~0.4.24:
2105 + version "0.4.24"
2106 + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
2107 + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
2108 + dependencies:
2109 + safer-buffer ">= 2.1.2 < 3"
2110 +
2111 +import-local@^3.0.2:
2112 + version "3.2.0"
2113 + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.2.0.tgz#c3d5c745798c02a6f8b897726aba5100186ee260"
2114 + integrity sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==
2115 + dependencies:
2116 + pkg-dir "^4.2.0"
2117 + resolve-cwd "^3.0.0"
2118 +
2119 +inflight@^1.0.4:
2120 + version "1.0.6"
2121 + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
2122 + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
2123 + dependencies:
2124 + once "^1.3.0"
2125 + wrappy "1"
2126 +
2127 +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3, inherits@~2.0.4:
2128 + version "2.0.4"
2129 + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
2130 + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
2131 +
2132 +interpret@^3.1.1:
2133 + version "3.1.1"
2134 + resolved "https://registry.yarnpkg.com/interpret/-/interpret-3.1.1.tgz#5be0ceed67ca79c6c4bc5cf0d7ee843dcea110c4"
2135 + integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==
2136 +
2137 +ipaddr.js@1.9.1:
2138 + version "1.9.1"
2139 + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
2140 + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
2141 +
2142 +ipaddr.js@^2.0.1:
2143 + version "2.4.0"
2144 + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.4.0.tgz#038e9ceaf8219efc5bb76347b7eb787875d5095b"
2145 + integrity sha512-9VGk3HGanVE6JoZXHiCpnGy5X0jYDnN4EA4lntFPj+1vIWlFhIylq2CrrCOJH9EAhc5CYhq18F2Av2tgoAPsYQ==
2146 +
2147 +is-binary-path@~2.1.0:
2148 + version "2.1.0"
2149 + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
2150 + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
2151 + dependencies:
2152 + binary-extensions "^2.0.0"
2153 +
2154 +is-core-module@^2.16.1:
2155 + version "2.16.2"
2156 + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.2.tgz#3e07450a8080ebce3fbf0cac494f4d2ab324e082"
2157 + integrity sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==
2158 + dependencies:
2159 + hasown "^2.0.3"
2160 +
2161 +is-docker@^2.0.0, is-docker@^2.1.1:
2162 + version "2.2.1"
2163 + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa"
2164 + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==
2165 +
2166 +is-extglob@^2.1.1:
2167 + version "2.1.1"
2168 + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
2169 + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
2170 +
2171 +is-glob@^4.0.1, is-glob@~4.0.1:
2172 + version "4.0.3"
2173 + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
2174 + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
2175 + dependencies:
2176 + is-extglob "^2.1.1"
2177 +
2178 +is-number@^7.0.0:
2179 + version "7.0.0"
2180 + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
2181 + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
2182 +
2183 +is-plain-obj@^3.0.0:
2184 + version "3.0.0"
2185 + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7"
2186 + integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==
2187 +
2188 +is-plain-object@^2.0.4:
2189 + version "2.0.4"
2190 + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
2191 + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
2192 + dependencies:
2193 + isobject "^3.0.1"
2194 +
2195 +is-stream@^2.0.0:
2196 + version "2.0.1"
2197 + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
2198 + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
2199 +
2200 +is-wsl@^2.2.0:
2201 + version "2.2.0"
2202 + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271"
2203 + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==
2204 + dependencies:
2205 + is-docker "^2.0.0"
2206 +
2207 +isarray@~1.0.0:
2208 + version "1.0.0"
2209 + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
2210 + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==
2211 +
2212 +isexe@^2.0.0:
2213 + version "2.0.0"
2214 + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
2215 + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
2216 +
2217 +isobject@^3.0.1:
2218 + version "3.0.1"
2219 + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
2220 + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==
2221 +
2222 +jest-worker@^27.4.5:
2223 + version "27.5.1"
2224 + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0"
2225 + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==
2226 + dependencies:
2227 + "@types/node" "*"
2228 + merge-stream "^2.0.0"
2229 + supports-color "^8.0.0"
2230 +
2231 +js-tokens@^4.0.0:
2232 + version "4.0.0"
2233 + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
2234 + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
2235 +
2236 +jsesc@^3.0.2, jsesc@~3.1.0:
2237 + version "3.1.0"
2238 + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d"
2239 + integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==
2240 +
2241 +json-schema-traverse@^0.4.1:
2242 + version "0.4.1"
2243 + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
2244 + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
2245 +
2246 +json-schema-traverse@^1.0.0:
2247 + version "1.0.0"
2248 + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2"
2249 + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
2250 +
2251 +json5@^2.1.2, json5@^2.2.3:
2252 + version "2.2.3"
2253 + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
2254 + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
2255 +
2256 +kind-of@^6.0.2:
2257 + version "6.0.3"
2258 + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
2259 + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
2260 +
2261 +launch-editor@^2.6.0:
2262 + version "2.14.1"
2263 + resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.14.1.tgz#f7e0da3f58aaea03fea01074d840b5f739ed7ddc"
2264 + integrity sha512-QWBrQsMpH7gPr965dsKD/3cKWiNoTjpATQf++Xq63N6sKRGMwlVXz41O1IZTMfZQgBctD/K5Zt06+/I6pP6+HA==
2265 + dependencies:
2266 + picocolors "^1.1.1"
2267 + shell-quote "^1.8.4"
2268 +
2269 +loader-runner@^4.3.2:
2270 + version "4.3.2"
2271 + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.2.tgz#9913d3a15971f8f635915e601fb5c9d495d918e9"
2272 + integrity sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==
2273 +
2274 +loader-utils@^2.0.4:
2275 + version "2.0.4"
2276 + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c"
2277 + integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==
2278 + dependencies:
2279 + big.js "^5.2.2"
2280 + emojis-list "^3.0.0"
2281 + json5 "^2.1.2"
2282 +
2283 +locate-path@^5.0.0:
2284 + version "5.0.0"
2285 + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
2286 + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
2287 + dependencies:
2288 + p-locate "^4.1.0"
2289 +
2290 +lodash.debounce@^4.0.8:
2291 + version "4.0.8"
2292 + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
2293 + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==
2294 +
2295 +lru-cache@^5.1.1:
2296 + version "5.1.1"
2297 + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920"
2298 + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==
2299 + dependencies:
2300 + yallist "^3.0.2"
2301 +
2302 +make-dir@^3.0.2, make-dir@^3.1.0:
2303 + version "3.1.0"
2304 + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
2305 + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
2306 + dependencies:
2307 + semver "^6.0.0"
2308 +
2309 +math-intrinsics@^1.1.0:
2310 + version "1.1.0"
2311 + resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9"
2312 + integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==
2313 +
2314 +media-typer@0.3.0:
2315 + version "0.3.0"
2316 + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
2317 + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==
2318 +
2319 +memfs@^3.4.3:
2320 + version "3.6.0"
2321 + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.6.0.tgz#d7a2110f86f79dd950a8b6df6d57bc984aa185f6"
2322 + integrity sha512-EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ==
2323 + dependencies:
2324 + fs-monkey "^1.0.4"
2325 +
2326 +merge-descriptors@1.0.3:
2327 + version "1.0.3"
2328 + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.3.tgz#d80319a65f3c7935351e5cfdac8f9318504dbed5"
2329 + integrity sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==
2330 +
2331 +merge-stream@^2.0.0:
2332 + version "2.0.0"
2333 + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
2334 + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
2335 +
2336 +methods@~1.1.2:
2337 + version "1.1.2"
2338 + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
2339 + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==
2340 +
2341 +micromatch@^4.0.2:
2342 + version "4.0.8"
2343 + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202"
2344 + integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==
2345 + dependencies:
2346 + braces "^3.0.3"
2347 + picomatch "^2.3.1"
2348 +
2349 +mime-db@1.52.0:
2350 + version "1.52.0"
2351 + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
2352 + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
2353 +
2354 +"mime-db@>= 1.43.0 < 2", mime-db@^1.54.0:
2355 + version "1.54.0"
2356 + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.54.0.tgz#cddb3ee4f9c64530dff640236661d42cb6a314f5"
2357 + integrity sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==
2358 +
2359 +mime-types@^2.1.31, mime-types@~2.1.24, mime-types@~2.1.34, mime-types@~2.1.35:
2360 + version "2.1.35"
2361 + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
2362 + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
2363 + dependencies:
2364 + mime-db "1.52.0"
2365 +
2366 +mime@1.6.0:
2367 + version "1.6.0"
2368 + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
2369 + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
2370 +
2371 +mimic-fn@^2.1.0:
2372 + version "2.1.0"
2373 + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
2374 + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
2375 +
2376 +minimalistic-assert@^1.0.0:
2377 + version "1.0.1"
2378 + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
2379 + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
2380 +
2381 +minimatch@^3.1.1:
2382 + version "3.1.5"
2383 + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.5.tgz#580c88f8d5445f2bd6aa8f3cadefa0de79fbd69e"
2384 + integrity sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==
2385 + dependencies:
2386 + brace-expansion "^1.1.7"
2387 +
2388 +ms@2.0.0:
2389 + version "2.0.0"
2390 + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
2391 + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==
2392 +
2393 +ms@2.1.3, ms@^2.1.3:
2394 + version "2.1.3"
2395 + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
2396 + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
2397 +
2398 +multicast-dns@^7.2.5:
2399 + version "7.2.5"
2400 + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced"
2401 + integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==
2402 + dependencies:
2403 + dns-packet "^5.2.2"
2404 + thunky "^1.0.2"
2405 +
2406 +negotiator@0.6.3:
2407 + version "0.6.3"
2408 + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd"
2409 + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==
2410 +
2411 +negotiator@~0.6.4:
2412 + version "0.6.4"
2413 + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.4.tgz#777948e2452651c570b712dd01c23e262713fff7"
2414 + integrity sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==
2415 +
2416 +neo-async@^2.6.2:
2417 + version "2.6.2"
2418 + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
2419 + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
2420 +
2421 +node-forge@^1:
2422 + version "1.4.0"
2423 + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.4.0.tgz#1c7b7d8bdc2d078739f58287d589d903a11b2fc2"
2424 + integrity sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ==
2425 +
2426 +node-releases@^2.0.36:
2427 + version "2.0.47"
2428 + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.47.tgz#521bb2786da8eb140b748841c0b3b3a75334ffc4"
2429 + integrity sha512-Uzmd6LXpouKo8EUK68IjH4+E01w/hXyV3R3g/geCJo+rXLNfh1xucB+LOzYEOQPSiUK3h/xZf0cQGcSsmyL2Og==
2430 +
2431 +normalize-path@^3.0.0, normalize-path@~3.0.0:
2432 + version "3.0.0"
2433 + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
2434 + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
2435 +
2436 +npm-run-path@^4.0.1:
2437 + version "4.0.1"
2438 + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
2439 + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
2440 + dependencies:
2441 + path-key "^3.0.0"
2442 +
2443 +object-inspect@^1.13.3, object-inspect@^1.13.4:
2444 + version "1.13.4"
2445 + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.4.tgz#8375265e21bc20d0fa582c22e1b13485d6e00213"
2446 + integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==
2447 +
2448 +obuf@^1.0.0, obuf@^1.1.2:
2449 + version "1.1.2"
2450 + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e"
2451 + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==
2452 +
2453 +on-finished@~2.4.1:
2454 + version "2.4.1"
2455 + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f"
2456 + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==
2457 + dependencies:
2458 + ee-first "1.1.1"
2459 +
2460 +on-headers@~1.1.0:
2461 + version "1.1.0"
2462 + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.1.0.tgz#59da4f91c45f5f989c6e4bcedc5a3b0aed70ff65"
2463 + integrity sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==
2464 +
2465 +once@^1.3.0:
2466 + version "1.4.0"
2467 + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
2468 + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
2469 + dependencies:
2470 + wrappy "1"
2471 +
2472 +onetime@^5.1.2:
2473 + version "5.1.2"
2474 + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
2475 + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
2476 + dependencies:
2477 + mimic-fn "^2.1.0"
2478 +
2479 +open@^8.0.9:
2480 + version "8.4.2"
2481 + resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9"
2482 + integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==
2483 + dependencies:
2484 + define-lazy-prop "^2.0.0"
2485 + is-docker "^2.1.1"
2486 + is-wsl "^2.2.0"
2487 +
2488 +p-limit@^2.2.0:
2489 + version "2.3.0"
2490 + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
2491 + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
2492 + dependencies:
2493 + p-try "^2.0.0"
2494 +
2495 +p-locate@^4.1.0:
2496 + version "4.1.0"
2497 + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
2498 + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
2499 + dependencies:
2500 + p-limit "^2.2.0"
2501 +
2502 +p-retry@^4.5.0:
2503 + version "4.6.2"
2504 + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16"
2505 + integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==
2506 + dependencies:
2507 + "@types/retry" "0.12.0"
2508 + retry "^0.13.1"
2509 +
2510 +p-try@^2.0.0:
2511 + version "2.2.0"
2512 + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
2513 + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
2514 +
2515 +parseurl@~1.3.3:
2516 + version "1.3.3"
2517 + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
2518 + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
2519 +
2520 +path-exists@^4.0.0:
2521 + version "4.0.0"
2522 + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
2523 + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
2524 +
2525 +path-is-absolute@^1.0.0:
2526 + version "1.0.1"
2527 + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
2528 + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
2529 +
2530 +path-key@^3.0.0, path-key@^3.1.0:
2531 + version "3.1.1"
2532 + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
2533 + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
2534 +
2535 +path-parse@^1.0.7:
2536 + version "1.0.7"
2537 + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
2538 + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
2539 +
2540 +path-to-regexp@~0.1.12:
2541 + version "0.1.13"
2542 + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.13.tgz#9b22ec16bc3ab88d05a0c7e369869421401ab17d"
2543 + integrity sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==
2544 +
2545 +picocolors@^1.1.1:
2546 + version "1.1.1"
2547 + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b"
2548 + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==
2549 +
2550 +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
2551 + version "2.3.2"
2552 + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.2.tgz#5a942915e26b372dc0f0e6753149a16e6b1c5601"
2553 + integrity sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==
2554 +
2555 +pkg-dir@^4.1.0, pkg-dir@^4.2.0:
2556 + version "4.2.0"
2557 + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
2558 + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
2559 + dependencies:
2560 + find-up "^4.0.0"
2561 +
2562 +process-nextick-args@~2.0.0:
2563 + version "2.0.1"
2564 + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
2565 + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
2566 +
2567 +process@^0.11.10:
2568 + version "0.11.10"
2569 + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
2570 + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==
2571 +
2572 +proxy-addr@~2.0.7:
2573 + version "2.0.7"
2574 + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025"
2575 + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==
2576 + dependencies:
2577 + forwarded "0.2.0"
2578 + ipaddr.js "1.9.1"
2579 +
2580 +punycode@^2.1.0:
2581 + version "2.3.1"
2582 + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5"
2583 + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==
2584 +
2585 +qs@~6.15.1:
2586 + version "6.15.2"
2587 + resolved "https://registry.yarnpkg.com/qs/-/qs-6.15.2.tgz#fd55426d710403ddccc45e0f9eab16db7727ece9"
2588 + integrity sha512-Rzq0KEyX/w/tEybncDgdkZrJgVUsUMk3xjh3t5bv3S1HTAtg+uOYt72+ZfwiQwKdysThkTBdL/rTi6HDmX9Ddw==
2589 + dependencies:
2590 + side-channel "^1.1.0"
2591 +
2592 +range-parser@^1.2.1, range-parser@~1.2.1:
2593 + version "1.2.1"
2594 + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
2595 + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
2596 +
2597 +raw-body@~2.5.3:
2598 + version "2.5.3"
2599 + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.3.tgz#11c6650ee770a7de1b494f197927de0c923822e2"
2600 + integrity sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==
2601 + dependencies:
2602 + bytes "~3.1.2"
2603 + http-errors "~2.0.1"
2604 + iconv-lite "~0.4.24"
2605 + unpipe "~1.0.0"
2606 +
2607 +readable-stream@^2.0.1:
2608 + version "2.3.8"
2609 + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b"
2610 + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==
2611 + dependencies:
2612 + core-util-is "~1.0.0"
2613 + inherits "~2.0.3"
2614 + isarray "~1.0.0"
2615 + process-nextick-args "~2.0.0"
2616 + safe-buffer "~5.1.1"
2617 + string_decoder "~1.1.1"
2618 + util-deprecate "~1.0.1"
2619 +
2620 +readable-stream@^3.0.6:
2621 + version "3.6.2"
2622 + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967"
2623 + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==
2624 + dependencies:
2625 + inherits "^2.0.3"
2626 + string_decoder "^1.1.1"
2627 + util-deprecate "^1.0.1"
2628 +
2629 +readdirp@~3.6.0:
2630 + version "3.6.0"
2631 + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
2632 + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
2633 + dependencies:
2634 + picomatch "^2.2.1"
2635 +
2636 +rechoir@^0.8.0:
2637 + version "0.8.0"
2638 + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.8.0.tgz#49f866e0d32146142da3ad8f0eff352b3215ff22"
2639 + integrity sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==
2640 + dependencies:
2641 + resolve "^1.20.0"
2642 +
2643 +regenerate-unicode-properties@^10.2.2:
2644 + version "10.2.2"
2645 + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz#aa113812ba899b630658c7623466be71e1f86f66"
2646 + integrity sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==
2647 + dependencies:
2648 + regenerate "^1.4.2"
2649 +
2650 +regenerate@^1.4.2:
2651 + version "1.4.2"
2652 + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a"
2653 + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==
2654 +
2655 +regexpu-core@^6.3.1:
2656 + version "6.4.0"
2657 + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-6.4.0.tgz#3580ce0c4faedef599eccb146612436b62a176e5"
2658 + integrity sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==
2659 + dependencies:
2660 + regenerate "^1.4.2"
2661 + regenerate-unicode-properties "^10.2.2"
2662 + regjsgen "^0.8.0"
2663 + regjsparser "^0.13.0"
2664 + unicode-match-property-ecmascript "^2.0.0"
2665 + unicode-match-property-value-ecmascript "^2.2.1"
2666 +
2667 +regjsgen@^0.8.0:
2668 + version "0.8.0"
2669 + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.8.0.tgz#df23ff26e0c5b300a6470cad160a9d090c3a37ab"
2670 + integrity sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==
2671 +
2672 +regjsparser@^0.13.0:
2673 + version "0.13.1"
2674 + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.13.1.tgz#0593cbacb27527927692030928ae4d3b878d6f8d"
2675 + integrity sha512-dLsljMd9sqwRkby8zhO1gSg3PnJIBFid8f4CQj/sXx+7cKx+E7u0PKhZ+U4wmhx7EfmtvnA318oVaIkAB1lRJw==
2676 + dependencies:
2677 + jsesc "~3.1.0"
2678 +
2679 +require-from-string@^2.0.2:
2680 + version "2.0.2"
2681 + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
2682 + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
2683 +
2684 +requires-port@^1.0.0:
2685 + version "1.0.0"
2686 + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
2687 + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==
2688 +
2689 +resolve-cwd@^3.0.0:
2690 + version "3.0.0"
2691 + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d"
2692 + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==
2693 + dependencies:
2694 + resolve-from "^5.0.0"
2695 +
2696 +resolve-from@^5.0.0:
2697 + version "5.0.0"
2698 + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
2699 + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
2700 +
2701 +resolve@^1.20.0, resolve@^1.22.11:
2702 + version "1.22.12"
2703 + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.12.tgz#f5b2a680897c69c238a13cd16b15671f8b73549f"
2704 + integrity sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==
2705 + dependencies:
2706 + es-errors "^1.3.0"
2707 + is-core-module "^2.16.1"
2708 + path-parse "^1.0.7"
2709 + supports-preserve-symlinks-flag "^1.0.0"
2710 +
2711 +retry@^0.13.1:
2712 + version "0.13.1"
2713 + resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658"
2714 + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==
2715 +
2716 +rimraf@^3.0.2:
2717 + version "3.0.2"
2718 + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
2719 + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
2720 + dependencies:
2721 + glob "^7.1.3"
2722 +
2723 +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@~5.2.0:
2724 + version "5.2.1"
2725 + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
2726 + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
2727 +
2728 +safe-buffer@~5.1.0, safe-buffer@~5.1.1:
2729 + version "5.1.2"
2730 + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
2731 + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
2732 +
2733 +"safer-buffer@>= 2.1.2 < 3":
2734 + version "2.1.2"
2735 + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
2736 + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
2737 +
2738 +schema-utils@^2.6.5:
2739 + version "2.7.1"
2740 + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7"
2741 + integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==
2742 + dependencies:
2743 + "@types/json-schema" "^7.0.5"
2744 + ajv "^6.12.4"
2745 + ajv-keywords "^3.5.2"
2746 +
2747 +schema-utils@^4.0.0, schema-utils@^4.3.0, schema-utils@^4.3.3:
2748 + version "4.3.3"
2749 + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.3.3.tgz#5b1850912fa31df90716963d45d9121fdfc09f46"
2750 + integrity sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==
2751 + dependencies:
2752 + "@types/json-schema" "^7.0.9"
2753 + ajv "^8.9.0"
2754 + ajv-formats "^2.1.1"
2755 + ajv-keywords "^5.1.0"
2756 +
2757 +select-hose@^2.0.0:
2758 + version "2.0.0"
2759 + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca"
2760 + integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==
2761 +
2762 +selfsigned@^2.1.1:
2763 + version "2.4.1"
2764 + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.4.1.tgz#560d90565442a3ed35b674034cec4e95dceb4ae0"
2765 + integrity sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==
2766 + dependencies:
2767 + "@types/node-forge" "^1.3.0"
2768 + node-forge "^1"
2769 +
2770 +semver@^6.0.0, semver@^6.3.1:
2771 + version "6.3.1"
2772 + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
2773 + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
2774 +
2775 +send@~0.19.0, send@~0.19.1:
2776 + version "0.19.2"
2777 + resolved "https://registry.yarnpkg.com/send/-/send-0.19.2.tgz#59bc0da1b4ea7ad42736fd642b1c4294e114ff29"
2778 + integrity sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==
2779 + dependencies:
2780 + debug "2.6.9"
2781 + depd "2.0.0"
2782 + destroy "1.2.0"
2783 + encodeurl "~2.0.0"
2784 + escape-html "~1.0.3"
2785 + etag "~1.8.1"
2786 + fresh "~0.5.2"
2787 + http-errors "~2.0.1"
2788 + mime "1.6.0"
2789 + ms "2.1.3"
2790 + on-finished "~2.4.1"
2791 + range-parser "~1.2.1"
2792 + statuses "~2.0.2"
2793 +
2794 +serve-index@^1.9.1:
2795 + version "1.9.2"
2796 + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.2.tgz#2988e3612106d78a5e4849ddff552ce7bd3d9bcb"
2797 + integrity sha512-KDj11HScOaLmrPxl70KYNW1PksP4Nb/CLL2yvC+Qd2kHMPEEpfc4Re2e4FOay+bC/+XQl/7zAcWON3JVo5v3KQ==
2798 + dependencies:
2799 + accepts "~1.3.8"
2800 + batch "0.6.1"
2801 + debug "2.6.9"
2802 + escape-html "~1.0.3"
2803 + http-errors "~1.8.0"
2804 + mime-types "~2.1.35"
2805 + parseurl "~1.3.3"
2806 +
2807 +serve-static@~1.16.2:
2808 + version "1.16.3"
2809 + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.3.tgz#a97b74d955778583f3862a4f0b841eb4d5d78cf9"
2810 + integrity sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==
2811 + dependencies:
2812 + encodeurl "~2.0.0"
2813 + escape-html "~1.0.3"
2814 + parseurl "~1.3.3"
2815 + send "~0.19.1"
2816 +
2817 +setprototypeof@1.2.0, setprototypeof@~1.2.0:
2818 + version "1.2.0"
2819 + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424"
2820 + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
2821 +
2822 +shallow-clone@^3.0.0:
2823 + version "3.0.1"
2824 + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3"
2825 + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==
2826 + dependencies:
2827 + kind-of "^6.0.2"
2828 +
2829 +shebang-command@^2.0.0:
2830 + version "2.0.0"
2831 + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
2832 + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
2833 + dependencies:
2834 + shebang-regex "^3.0.0"
2835 +
2836 +shebang-regex@^3.0.0:
2837 + version "3.0.0"
2838 + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
2839 + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
2840 +
2841 +shell-quote@^1.8.4:
2842 + version "1.8.4"
2843 + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.4.tgz#2edd9a4dcefc96649e2e2cb12f637b1f1d92a190"
2844 + integrity sha512-VsC6n6vz1ihYYyZZwX7YZSF5l5x36ca17OC+a69h94YqB7X6XLwf+5MOgynYir2SLFUbl8gIYvBo8K8RoNQ6bQ==
2845 +
2846 +side-channel-list@^1.0.0:
2847 + version "1.0.1"
2848 + resolved "https://registry.yarnpkg.com/side-channel-list/-/side-channel-list-1.0.1.tgz#c2e0b5a14a540aebee3bbc6c3f8666cc9b509127"
2849 + integrity sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==
2850 + dependencies:
2851 + es-errors "^1.3.0"
2852 + object-inspect "^1.13.4"
2853 +
2854 +side-channel-map@^1.0.1:
2855 + version "1.0.1"
2856 + resolved "https://registry.yarnpkg.com/side-channel-map/-/side-channel-map-1.0.1.tgz#d6bb6b37902c6fef5174e5f533fab4c732a26f42"
2857 + integrity sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==
2858 + dependencies:
2859 + call-bound "^1.0.2"
2860 + es-errors "^1.3.0"
2861 + get-intrinsic "^1.2.5"
2862 + object-inspect "^1.13.3"
2863 +
2864 +side-channel-weakmap@^1.0.2:
2865 + version "1.0.2"
2866 + resolved "https://registry.yarnpkg.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz#11dda19d5368e40ce9ec2bdc1fb0ecbc0790ecea"
2867 + integrity sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==
2868 + dependencies:
2869 + call-bound "^1.0.2"
2870 + es-errors "^1.3.0"
2871 + get-intrinsic "^1.2.5"
2872 + object-inspect "^1.13.3"
2873 + side-channel-map "^1.0.1"
2874 +
2875 +side-channel@^1.1.0:
2876 + version "1.1.0"
2877 + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.0.tgz#c3fcff9c4da932784873335ec9765fa94ff66bc9"
2878 + integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==
2879 + dependencies:
2880 + es-errors "^1.3.0"
2881 + object-inspect "^1.13.3"
2882 + side-channel-list "^1.0.0"
2883 + side-channel-map "^1.0.1"
2884 + side-channel-weakmap "^1.0.2"
2885 +
2886 +signal-exit@^3.0.3:
2887 + version "3.0.7"
2888 + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
2889 + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
2890 +
2891 +sockjs@^0.3.24:
2892 + version "0.3.24"
2893 + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce"
2894 + integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==
2895 + dependencies:
2896 + faye-websocket "^0.11.3"
2897 + uuid "^8.3.2"
2898 + websocket-driver "^0.7.4"
2899 +
2900 +source-map-support@~0.5.20:
2901 + version "0.5.21"
2902 + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
2903 + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
2904 + dependencies:
2905 + buffer-from "^1.0.0"
2906 + source-map "^0.6.0"
2907 +
2908 +source-map@^0.6.0:
2909 + version "0.6.1"
2910 + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
2911 + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
2912 +
2913 +spdy-transport@^3.0.0:
2914 + version "3.0.0"
2915 + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31"
2916 + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==
2917 + dependencies:
2918 + debug "^4.1.0"
2919 + detect-node "^2.0.4"
2920 + hpack.js "^2.1.6"
2921 + obuf "^1.1.2"
2922 + readable-stream "^3.0.6"
2923 + wbuf "^1.7.3"
2924 +
2925 +spdy@^4.0.2:
2926 + version "4.0.2"
2927 + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b"
2928 + integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==
2929 + dependencies:
2930 + debug "^4.1.0"
2931 + handle-thing "^2.0.0"
2932 + http-deceiver "^1.2.7"
2933 + select-hose "^2.0.0"
2934 + spdy-transport "^3.0.0"
2935 +
2936 +"statuses@>= 1.5.0 < 2":
2937 + version "1.5.0"
2938 + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
2939 + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==
2940 +
2941 +statuses@~2.0.1, statuses@~2.0.2:
2942 + version "2.0.2"
2943 + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.2.tgz#8f75eecef765b5e1cfcdc080da59409ed424e382"
2944 + integrity sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==
2945 +
2946 +string_decoder@^1.1.1:
2947 + version "1.3.0"
2948 + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
2949 + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
2950 + dependencies:
2951 + safe-buffer "~5.2.0"
2952 +
2953 +string_decoder@~1.1.1:
2954 + version "1.1.1"
2955 + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
2956 + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
2957 + dependencies:
2958 + safe-buffer "~5.1.0"
2959 +
2960 +strip-final-newline@^2.0.0:
2961 + version "2.0.0"
2962 + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
2963 + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
2964 +
2965 +supports-color@^8.0.0:
2966 + version "8.1.1"
2967 + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c"
2968 + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
2969 + dependencies:
2970 + has-flag "^4.0.0"
2971 +
2972 +supports-preserve-symlinks-flag@^1.0.0:
2973 + version "1.0.0"
2974 + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
2975 + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
2976 +
2977 +tapable@^2.3.0, tapable@^2.3.3:
2978 + version "2.3.3"
2979 + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.3.3.tgz#5da7c9992c46038221267985ab28421a8879f160"
2980 + integrity sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==
2981 +
2982 +terser-webpack-plugin@^5.5.0:
2983 + version "5.6.1"
2984 + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.6.1.tgz#47bc41bd8b8fab8383b62ec763b7394829097e7b"
2985 + integrity sha512-201R5j+sJpK8nFWwKVyNfZot8FaJbLZDq5evriVzbV1wDtSXDjRUDRfJzHpAaxFDMEhsZL1QkeqM61wgsS3KaQ==
2986 + dependencies:
2987 + "@jridgewell/trace-mapping" "^0.3.25"
2988 + jest-worker "^27.4.5"
2989 + schema-utils "^4.3.0"
2990 + terser "^5.31.1"
2991 +
2992 +terser@^5.31.1:
2993 + version "5.48.0"
2994 + resolved "https://registry.yarnpkg.com/terser/-/terser-5.48.0.tgz#8b391171cfbb7ac4a88f9f04ba1cfabc54f643db"
2995 + integrity sha512-J/9An6vs9Us6wKRriSFXBWdRZapREHqFzdNUKk0pmu804EMR6dr6winwo7e5JDxN4xahxQsuysyYFwlwj4XN/Q==
2996 + dependencies:
2997 + "@jridgewell/source-map" "^0.3.3"
2998 + acorn "^8.15.0"
2999 + commander "^2.20.0"
3000 + source-map-support "~0.5.20"
3001 +
3002 +thunky@^1.0.2:
3003 + version "1.1.0"
3004 + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d"
3005 + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==
3006 +
3007 +to-regex-range@^5.0.1:
3008 + version "5.0.1"
3009 + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
3010 + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
3011 + dependencies:
3012 + is-number "^7.0.0"
3013 +
3014 +toidentifier@1.0.1, toidentifier@~1.0.1:
3015 + version "1.0.1"
3016 + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35"
3017 + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==
3018 +
3019 +type-is@~1.6.18:
3020 + version "1.6.18"
3021 + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
3022 + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
3023 + dependencies:
3024 + media-typer "0.3.0"
3025 + mime-types "~2.1.24"
3026 +
3027 +"undici-types@>=7.24.0 <7.24.7":
3028 + version "7.24.6"
3029 + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.24.6.tgz#61275b485d7fd4e9d269c7cf04ec2873c9cc0f91"
3030 + integrity sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==
3031 +
3032 +unicode-canonical-property-names-ecmascript@^2.0.0:
3033 + version "2.0.1"
3034 + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz#cb3173fe47ca743e228216e4a3ddc4c84d628cc2"
3035 + integrity sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==
3036 +
3037 +unicode-match-property-ecmascript@^2.0.0:
3038 + version "2.0.0"
3039 + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3"
3040 + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==
3041 + dependencies:
3042 + unicode-canonical-property-names-ecmascript "^2.0.0"
3043 + unicode-property-aliases-ecmascript "^2.0.0"
3044 +
3045 +unicode-match-property-value-ecmascript@^2.2.1:
3046 + version "2.2.1"
3047 + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz#65a7adfad8574c219890e219285ce4c64ed67eaa"
3048 + integrity sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==
3049 +
3050 +unicode-property-aliases-ecmascript@^2.0.0:
3051 + version "2.2.0"
3052 + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz#301d4f8a43d2b75c97adfad87c9dd5350c9475d1"
3053 + integrity sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==
3054 +
3055 +unpipe@~1.0.0:
3056 + version "1.0.0"
3057 + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
3058 + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==
3059 +
3060 +update-browserslist-db@^1.2.3:
3061 + version "1.2.3"
3062 + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz#64d76db58713136acbeb4c49114366cc6cc2e80d"
3063 + integrity sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==
3064 + dependencies:
3065 + escalade "^3.2.0"
3066 + picocolors "^1.1.1"
3067 +
3068 +uri-js@^4.2.2:
3069 + version "4.4.1"
3070 + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
3071 + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
3072 + dependencies:
3073 + punycode "^2.1.0"
3074 +
3075 +util-deprecate@^1.0.1, util-deprecate@~1.0.1:
3076 + version "1.0.2"
3077 + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
3078 + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
3079 +
3080 +utils-merge@1.0.1:
3081 + version "1.0.1"
3082 + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
3083 + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==
3084 +
3085 +uuid@^8.3.2:
3086 + version "8.3.2"
3087 + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
3088 + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
3089 +
3090 +vary@~1.1.2:
3091 + version "1.1.2"
3092 + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
3093 + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==
3094 +
3095 +watchpack@^2.5.1:
3096 + version "2.5.1"
3097 + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.5.1.tgz#dd38b601f669e0cbf567cb802e75cead82cde102"
3098 + integrity sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==
3099 + dependencies:
3100 + glob-to-regexp "^0.4.1"
3101 + graceful-fs "^4.1.2"
3102 +
3103 +wbuf@^1.1.0, wbuf@^1.7.3:
3104 + version "1.7.3"
3105 + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df"
3106 + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==
3107 + dependencies:
3108 + minimalistic-assert "^1.0.0"
3109 +
3110 +webpack-cli@^5.1.1:
3111 + version "5.1.4"
3112 + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-5.1.4.tgz#c8e046ba7eaae4911d7e71e2b25b776fcc35759b"
3113 + integrity sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==
3114 + dependencies:
3115 + "@discoveryjs/json-ext" "^0.5.0"
3116 + "@webpack-cli/configtest" "^2.1.1"
3117 + "@webpack-cli/info" "^2.0.2"
3118 + "@webpack-cli/serve" "^2.0.5"
3119 + colorette "^2.0.14"
3120 + commander "^10.0.1"
3121 + cross-spawn "^7.0.3"
3122 + envinfo "^7.7.3"
3123 + fastest-levenshtein "^1.0.12"
3124 + import-local "^3.0.2"
3125 + interpret "^3.1.1"
3126 + rechoir "^0.8.0"
3127 + webpack-merge "^5.7.3"
3128 +
3129 +webpack-dev-middleware@^5.3.4:
3130 + version "5.3.4"
3131 + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz#eb7b39281cbce10e104eb2b8bf2b63fce49a3517"
3132 + integrity sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==
3133 + dependencies:
3134 + colorette "^2.0.10"
3135 + memfs "^3.4.3"
3136 + mime-types "^2.1.31"
3137 + range-parser "^1.2.1"
3138 + schema-utils "^4.0.0"
3139 +
3140 +webpack-dev-server@^4.15.0:
3141 + version "4.15.2"
3142 + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz#9e0c70a42a012560860adb186986da1248333173"
3143 + integrity sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==
3144 + dependencies:
3145 + "@types/bonjour" "^3.5.9"
3146 + "@types/connect-history-api-fallback" "^1.3.5"
3147 + "@types/express" "^4.17.13"
3148 + "@types/serve-index" "^1.9.1"
3149 + "@types/serve-static" "^1.13.10"
3150 + "@types/sockjs" "^0.3.33"
3151 + "@types/ws" "^8.5.5"
3152 + ansi-html-community "^0.0.8"
3153 + bonjour-service "^1.0.11"
3154 + chokidar "^3.5.3"
3155 + colorette "^2.0.10"
3156 + compression "^1.7.4"
3157 + connect-history-api-fallback "^2.0.0"
3158 + default-gateway "^6.0.3"
3159 + express "^4.17.3"
3160 + graceful-fs "^4.2.6"
3161 + html-entities "^2.3.2"
3162 + http-proxy-middleware "^2.0.3"
3163 + ipaddr.js "^2.0.1"
3164 + launch-editor "^2.6.0"
3165 + open "^8.0.9"
3166 + p-retry "^4.5.0"
3167 + rimraf "^3.0.2"
3168 + schema-utils "^4.0.0"
3169 + selfsigned "^2.1.1"
3170 + serve-index "^1.9.1"
3171 + sockjs "^0.3.24"
3172 + spdy "^4.0.2"
3173 + webpack-dev-middleware "^5.3.4"
3174 + ws "^8.13.0"
3175 +
3176 +webpack-merge@^5.7.3:
3177 + version "5.10.0"
3178 + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.10.0.tgz#a3ad5d773241e9c682803abf628d4cd62b8a4177"
3179 + integrity sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==
3180 + dependencies:
3181 + clone-deep "^4.0.1"
3182 + flat "^5.0.2"
3183 + wildcard "^2.0.0"
3184 +
3185 +webpack-sources@^3.5.0:
3186 + version "3.5.0"
3187 + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.5.0.tgz#87bf7f5801a4e985b1f1c92b64b9620a02f76d08"
3188 + integrity sha512-HPuy+uuoTCaaoEoI1LQ3JN9+vrPBvEesnnX1jADHy728cHSMlq4wUc4afYqahq2B1mhQVZxCXOkNTnXltr+2vQ==
3189 +
3190 +webpack@^5.82.1:
3191 + version "5.107.2"
3192 + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.107.2.tgz#dea14dcb177b46b29de15f952f7303691ee2b596"
3193 + integrity sha512-v7RhXaJbpMlV0D7hC7lb2EbnxkoeUqf9qhKr6lozx3Q48pmFrqqNRmZFUEGmi7pSwm6fCQ2H1IjvCkHqdpVdjQ==
3194 + dependencies:
3195 + "@types/estree" "^1.0.8"
3196 + "@types/json-schema" "^7.0.15"
3197 + "@webassemblyjs/ast" "^1.14.1"
3198 + "@webassemblyjs/wasm-edit" "^1.14.1"
3199 + "@webassemblyjs/wasm-parser" "^1.14.1"
3200 + acorn "^8.16.0"
3201 + acorn-import-phases "^1.0.3"
3202 + browserslist "^4.28.1"
3203 + chrome-trace-event "^1.0.2"
3204 + enhanced-resolve "^5.22.0"
3205 + es-module-lexer "^2.1.0"
3206 + eslint-scope "5.1.1"
3207 + events "^3.2.0"
3208 + glob-to-regexp "^0.4.1"
3209 + graceful-fs "^4.2.11"
3210 + loader-runner "^4.3.2"
3211 + mime-db "^1.54.0"
3212 + neo-async "^2.6.2"
3213 + schema-utils "^4.3.3"
3214 + tapable "^2.3.0"
3215 + terser-webpack-plugin "^5.5.0"
3216 + watchpack "^2.5.1"
3217 + webpack-sources "^3.5.0"
3218 +
3219 +websocket-driver@>=0.5.1, websocket-driver@^0.7.4:
3220 + version "0.7.4"
3221 + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760"
3222 + integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==
3223 + dependencies:
3224 + http-parser-js ">=0.5.1"
3225 + safe-buffer ">=5.1.0"
3226 + websocket-extensions ">=0.1.1"
3227 +
3228 +websocket-extensions@>=0.1.1:
3229 + version "0.1.4"
3230 + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42"
3231 + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==
3232 +
3233 +which@^2.0.1:
3234 + version "2.0.2"
3235 + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
3236 + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
3237 + dependencies:
3238 + isexe "^2.0.0"
3239 +
3240 +wildcard@^2.0.0:
3241 + version "2.0.1"
3242 + resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67"
3243 + integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==
3244 +
3245 +wrappy@1:
3246 + version "1.0.2"
3247 + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
3248 + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
3249 +
3250 +ws@^8.13.0:
3251 + version "8.21.0"
3252 + resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.0.tgz#012e413fc07429945121b0c153158c4343086951"
3253 + integrity sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==
3254 +
3255 +yallist@^3.0.2:
3256 + version "3.1.1"
3257 + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
3258 + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
packages/react-devtools-cdt-mcp/index.js new
+3
@@ -0,0 +1,3 @@
1 +'use strict';
2 +
3 +module.exports = require('./dist/index.js');
packages/react-devtools-cdt-mcp/package.json new
+25
@@ -0,0 +1,25 @@
1 +{
2 + "name": "react-devtools-cdt-mcp",
3 + "version": "0.0.0",
4 + "description": "Integration of React tools with chrome-devtools-mcp",
5 + "license": "MIT",
6 + "main": "index.js",
7 + "repository": {
8 + "type": "git",
9 + "url": "https://github.com/facebook/react.git",
10 + "directory": "packages/react-devtools-cdt-mcp"
11 + },
12 + "files": [
13 + "dist",
14 + "index.js"
15 + ],
16 + "scripts": {
17 + "build": "cross-env NODE_ENV=production rollup -c rollup.config.cjs",
18 + "prepublish": "yarn run build",
19 + "start": "cross-env NODE_ENV=development rollup -c rollup.config.cjs --watch"
20 + },
21 + "devDependencies": {
22 + "@babel/core": "^7.11.1",
23 + "cross-env": "^7.0.3"
24 + }
25 +}
packages/react-devtools-cdt-mcp/rollup.config.cjs new
+43
@@ -0,0 +1,43 @@
1 +const {babel} = require('@rollup/plugin-babel');
2 +const commonjs = require('@rollup/plugin-commonjs');
3 +const nodeResolve = require('@rollup/plugin-node-resolve').nodeResolve;
4 +const replace = require('@rollup/plugin-replace');
5 +
6 +const NODE_ENV = process.env.NODE_ENV;
7 +if (!NODE_ENV) {
8 + console.error('NODE_ENV not set');
9 + process.exit(1);
10 +}
11 +
12 +module.exports = {
13 + input: 'src/index.js',
14 + // CommonJS bundle for the npm package (referenced by the root index.js stub).
15 + output: {
16 + file: 'dist/index.js',
17 + format: 'cjs',
18 + exports: 'named',
19 + },
20 + treeshake: {moduleSideEffects: false},
21 + plugins: [
22 + nodeResolve({
23 + extensions: ['.js', '.mjs'],
24 + }),
25 + commonjs({
26 + include: /node_modules/,
27 + }),
28 + babel({
29 + configFile: __dirname + '/../react-devtools-shared/babel.config.js',
30 + babelHelpers: 'bundled',
31 + }),
32 + replace({
33 + preventAssignment: true,
34 + values: {
35 + __DEV__: String(NODE_ENV === 'development'),
36 + __IS_CHROME__: 'false',
37 + __IS_FIREFOX__: 'false',
38 + __IS_EDGE__: 'false',
39 + __IS_NATIVE__: 'false',
40 + },
41 + }),
42 + ],
43 +};
packages/react-devtools-cdt-mcp/src/DevToolsCdtMcp.js new
+312
@@ -0,0 +1,312 @@
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 {installFacade, createTools} from 'react-devtools-facade';
11 +
12 +import type {Facade, Tools} from 'react-devtools-facade';
13 +
14 +// A tool definition: its chrome-devtools-mcp metadata plus how to invoke the
15 +// underlying react-devtools-facade tool. `call` maps the params object that
16 +// chrome-devtools-mcp passes (parsed + ajv-validated against inputSchema) onto
17 +// the facade tool's positional arguments.
18 +type ToolDefinition = {
19 + name: string,
20 + description: string,
21 + inputSchema: {[string]: mixed},
22 + call: (tools: Tools, args: {[string]: any}) => mixed,
23 +};
24 +
25 +function formatError(error: mixed): string {
26 + if (error instanceof Error) {
27 + const cause = (error as any).cause;
28 + if (cause != null) {
29 + return error.message + ' Cause: ' + formatError(cause);
30 + }
31 + return error.message;
32 + }
33 + return String(error);
34 +}
35 +
36 +function normalizeToolResult(result: mixed): mixed {
37 + if (result != null && typeof result === 'object') {
38 + const objectResult = result as {+[string]: mixed};
39 + if ('error' in objectResult && typeof objectResult.error !== 'string') {
40 + return {
41 + ...objectResult,
42 + error: formatError(objectResult.error),
43 + };
44 + }
45 + }
46 + return result;
47 +}
48 +
49 +const TOOL_DEFINITIONS: Array<ToolDefinition> = [
50 + {
51 + name: 'react_get_component_tree',
52 + description:
53 + 'Snapshot of the React component tree as {nodes}, where nodes is a ' +
54 + 'flat array of {uid, type, name, key, firstChild, nextSibling}. ' +
55 + 'firstChild/nextSibling link nodes by uid. uid is the stable handle ' +
56 + 'the other tools accept. Covers every mounted root unless rootUid ' +
57 + 'scopes the walk (depth defaults to 20).',
58 + inputSchema: {
59 + type: 'object',
60 + properties: {
61 + depth: {
62 + type: 'number',
63 + description: 'Maximum tree depth to traverse (default 20).',
64 + },
65 + rootUid: {
66 + type: 'string',
67 + description:
68 + 'Start the snapshot from this component uid (e.g. "r5").',
69 + },
70 + },
71 + },
72 + call: (tools, args) => {
73 + const nodesOrError = tools.getComponentTree(args.depth, args.rootUid);
74 + return Array.isArray(nodesOrError) ? {nodes: nodesOrError} : nodesOrError;
75 + },
76 + },
77 + {
78 + name: 'react_get_component_by_uid',
79 + description:
80 + 'Detailed info for one component by uid: ' +
81 + '{uid, type, name, key?, props?, hooks?}. props excludes children and ' +
82 + 'is normalized for serialization; when includeHooks is true, hooks is ' +
83 + 'the nested hooks tree ({id, name, value, subHooks}), present only for ' +
84 + 'function/forwardRef/memo components.',
85 + inputSchema: {
86 + type: 'object',
87 + properties: {
88 + uid: {type: 'string', description: 'Component uid, e.g. "r5".'},
89 + includeHooks: {
90 + type: 'boolean',
91 + description:
92 + 'Whether to inspect hooks for function components (default false).',
93 + },
94 + },
95 + required: ['uid'],
96 + },
97 + call: (tools, args) =>
98 + tools.getComponentByUid(args.uid, args.includeHooks === true),
99 + },
100 + {
101 + name: 'react_find_components',
102 + description:
103 + 'Find components whose name contains a substring (case-insensitive). ' +
104 + 'Paginated: {page, pageSize, totalCount, totalPages, results}, where ' +
105 + 'results are tree nodes. rootUid limits the search to a subtree.',
106 + inputSchema: {
107 + type: 'object',
108 + properties: {
109 + name: {type: 'string', description: 'Name substring to match.'},
110 + rootUid: {
111 + type: 'string',
112 + description: "Limit the search to this component's subtree.",
113 + },
114 + page: {type: 'number', description: 'Page number (default 1).'},
115 + pageSize: {
116 + type: 'number',
117 + description: 'Results per page (default 10).',
118 + },
119 + },
120 + required: ['name'],
121 + },
122 + call: (tools, args) =>
123 + tools.findComponents(args.name, args.rootUid, args.page, args.pageSize),
124 + },
125 + {
126 + name: 'react_get_component_source',
127 + description:
128 + 'Source location where a component is defined: ' +
129 + '{source: {name, fileName, line, column}}, or {source: null} when ' +
130 + 'unavailable (e.g. host components or production builds).',
131 + inputSchema: {
132 + type: 'object',
133 + properties: {
134 + uid: {type: 'string', description: 'Component uid, e.g. "r5".'},
135 + },
136 + required: ['uid'],
137 + },
138 + call: (tools, args) => tools.getComponentSource(args.uid),
139 + },
140 + {
141 + name: 'react_get_owner_stack_trace',
142 + description:
143 + 'Owner stack trace for a component — the chain of JSX creation sites up ' +
144 + 'to the root, as a raw string ({stack}) for source-map symbolication. ' +
145 + 'DEV-only (empty in production).',
146 + inputSchema: {
147 + type: 'object',
148 + properties: {
149 + uid: {type: 'string', description: 'Component uid, e.g. "r5".'},
150 + },
151 + required: ['uid'],
152 + },
153 + call: (tools, args) => tools.getOwnerStackTrace(args.uid),
154 + },
155 + {
156 + name: 'react_get_owner_stack',
157 + description:
158 + 'Structured owner chain for a component, from immediate owner to root ' +
159 + 'ancestor: an array of {uid, name, type} (empty for a root ' +
160 + 'component). DEV-only.',
161 + inputSchema: {
162 + type: 'object',
163 + properties: {
164 + uid: {type: 'string', description: 'Component uid, e.g. "r5".'},
165 + },
166 + required: ['uid'],
167 + },
168 + call: (tools, args) => tools.getOwnerStack(args.uid),
169 + },
170 + {
171 + name: 'react_start_profiling',
172 + description:
173 + 'Start a profiling session that records render timing on every commit. ' +
174 + 'Returns {status: "started", traceName}; errors if a session is already ' +
175 + 'active.',
176 + inputSchema: {
177 + type: 'object',
178 + properties: {
179 + traceName: {
180 + type: 'string',
181 + description: 'Trace name (auto-generated if omitted).',
182 + },
183 + },
184 + },
185 + call: (tools, args) => tools.startProfiling(args.traceName),
186 + },
187 + {
188 + name: 'react_stop_profiling',
189 + description:
190 + 'Stop the active profiling session. Returns ' +
191 + '{status: "stopped", traceName, commits} (commits recorded); errors if none ' +
192 + 'is active.',
193 + inputSchema: {type: 'object', properties: {}},
194 + call: tools => tools.stopProfiling(),
195 + },
196 + {
197 + name: 'react_get_trace_overview',
198 + description:
199 + 'Per-commit overview of a trace — one row each: ' +
200 + '{commit, committedAt, renderDuration, layoutDuration, ' +
201 + 'passiveDuration, componentsChanged}. Durations are in ms (null if the ' +
202 + 'build omits profiler timing).',
203 + inputSchema: {
204 + type: 'object',
205 + properties: {
206 + traceName: {type: 'string', description: 'The trace to query.'},
207 + },
208 + required: ['traceName'],
209 + },
210 + call: (tools, args) => tools.getTraceOverview(args.traceName),
211 + },
212 + {
213 + name: 'react_get_commit_report',
214 + description:
215 + 'Detailed report for one commit of a trace: ' +
216 + '{committedAt, priority, renderDuration, layoutDuration, ' +
217 + 'passiveDuration, components}, where components is ' +
218 + '{uid, name, type, actualDuration, selfDuration} sorted by ' +
219 + 'actualDuration descending.',
220 + inputSchema: {
221 + type: 'object',
222 + properties: {
223 + traceName: {type: 'string', description: 'The trace to query.'},
224 + commitIndex: {
225 + type: 'number',
226 + description: 'Zero-based commit index within the trace.',
227 + },
228 + },
229 + required: ['traceName', 'commitIndex'],
230 + },
231 + call: (tools, args) =>
232 + tools.getCommitReport(args.traceName, args.commitIndex),
233 + },
234 +];
235 +
236 +// A chrome-devtools-mcp third-party tool. `execute` runs in the page and
237 +// returns the facade tool's result, which chrome-devtools-mcp forwards to the
238 +// MCP client.
239 +export type CdtMcpTool = {
240 + name: string,
241 + description: string,
242 + inputSchema: {[string]: mixed},
243 + execute: (args: {[string]: any}) => mixed,
244 +};
245 +
246 +export type CdtMcpToolGroup = {
247 + name: string,
248 + description: string,
249 + tools: Array<CdtMcpTool>,
250 +};
251 +
252 +/**
253 + * Build the chrome-devtools-mcp tool group from an assembled set of facade
254 + * tools. Each tool returns its facade result directly.
255 + */
256 +export function buildToolGroup(tools: Tools): CdtMcpToolGroup {
257 + return {
258 + name: 'react',
259 + description:
260 + 'Inspect and profile the running React app. Components are addressed by ' +
261 + 'stable uids (e.g. "r5") from react_get_component_tree; pass a uid ' +
262 + 'to the other tools.',
263 + tools: TOOL_DEFINITIONS.map(definition => ({
264 + name: definition.name,
265 + description: definition.description,
266 + inputSchema: definition.inputSchema,
267 + execute: (args: {[string]: any}) =>
268 + normalizeToolResult(definition.call(tools, args || {})),
269 + })),
270 + };
271 +}
272 +
273 +/**
274 + * Install the facade and register the React tools with chrome-devtools-mcp.
275 + *
276 + * The facade is installed EAGERLY (synchronously, when this runs) so the
277 + * DevTools hook is in place before React initializes. The tools, however, are
278 + * built LAZILY inside the `devtoolstooldiscovery` handler — no tool work
279 + * happens until chrome-devtools-mcp actually discovers them. The tool group is
280 + * memoized so component uids stay stable across repeated discovery.
281 + *
282 + * chrome-devtools-mcp dispatches a `devtoolstooldiscovery` event and expects a
283 + * synchronous `respondWith(toolGroup)`.
284 + *
285 + * Best run once per page before React initializes so the first commit is
286 + * captured. If a DevTools hook is already installed (e.g. the React DevTools
287 + * browser extension), installFacade attaches to it instead of installing a
288 + * second one. Returns the Facade and an `unregister` function that removes the
289 + * discovery listener.
290 + */
291 +export function register(target?: any = globalThis): {
292 + facade: Facade,
293 + unregister: () => void,
294 +} {
295 + const facade = installFacade(target);
296 +
297 + let toolGroup: CdtMcpToolGroup | null = null;
298 + const listener = (event: any) => {
299 + if (toolGroup === null) {
300 + toolGroup = buildToolGroup(createTools(facade));
301 + }
302 + event.respondWith(toolGroup);
303 + };
304 + target.addEventListener('devtoolstooldiscovery', listener);
305 +
306 + return {
307 + facade,
308 + unregister: () => {
309 + target.removeEventListener('devtoolstooldiscovery', listener);
310 + },
311 + };
312 +}
packages/react-devtools-cdt-mcp/src/__tests__/DevToolsCdtMcp-test.js new
+466
@@ -0,0 +1,466 @@
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 +
8 +'use strict';
9 +
10 +const TOOL_NAMES = [
11 + 'react_get_component_tree',
12 + 'react_get_component_by_uid',
13 + 'react_find_components',
14 + 'react_get_component_source',
15 + 'react_get_owner_stack_trace',
16 + 'react_get_owner_stack',
17 + 'react_start_profiling',
18 + 'react_stop_profiling',
19 + 'react_get_trace_overview',
20 + 'react_get_commit_report',
21 +];
22 +
23 +let register;
24 +let facade;
25 +let toolGroup;
26 +let unregister;
27 +let React;
28 +let ReactDOMClient;
29 +let act;
30 +let container;
31 +
32 +// Look up a registered tool by name.
33 +function getTool(name) {
34 + return toolGroup.tools.find(tool => tool.name === name);
35 +}
36 +
37 +// Dispatch chrome-devtools-mcp's discovery event and return the tool group the
38 +// page responds with (synchronously). The tools are built lazily in the
39 +// handler, so discovery is what actually constructs them.
40 +function discover() {
41 + let group = null;
42 + const event = new CustomEvent('devtoolstooldiscovery');
43 + // $FlowFixMe[prop-missing] chrome-devtools-mcp attaches respondWith
44 + event.respondWith = responded => {
45 + group = responded;
46 + };
47 + window.dispatchEvent(event);
48 + return group;
49 +}
50 +
51 +describe('react-devtools-cdt-mcp', () => {
52 + beforeEach(() => {
53 + jest.resetModules();
54 + global.IS_REACT_ACT_ENVIRONMENT = true;
55 +
56 + delete globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;
57 + delete globalThis.__dtmcp;
58 +
59 + // register() installs the facade BEFORE React so the hook captures the
60 + // first commit, then registers the discovery listener (tools are built
61 + // lazily when chrome-devtools-mcp discovers them).
62 + register = require('../DevToolsCdtMcp').register;
63 + const result = register();
64 + facade = result.facade;
65 + unregister = result.unregister;
66 +
67 + // Obtain the tool group the way chrome-devtools-mcp does.
68 + toolGroup = discover();
69 +
70 + React = require('react');
71 + ReactDOMClient = require('react-dom/client');
72 + act = React.act;
73 +
74 + container = document.createElement('div');
75 + document.body.appendChild(container);
76 + });
77 +
78 + afterEach(() => {
79 + // Remove the discovery listener so it does not accumulate on the shared
80 + // jsdom window across tests.
81 + unregister();
82 + document.body.removeChild(container);
83 + container = null;
84 + });
85 +
86 + it('installs the DevTools hook on register', () => {
87 + expect(globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__).toBe(facade.hook);
88 + });
89 +
90 + it('does not install any tool globals (chrome-devtools-mcp owns __dtmcp)', () => {
91 + expect(globalThis.__REACT_TOOLS__).toBeUndefined();
92 + expect(globalThis.__dtmcp).toBeUndefined();
93 + });
94 +
95 + it('builds a "react" tool group exposing every facade tool', () => {
96 + expect(toolGroup.name).toBe('react');
97 + expect(typeof toolGroup.description).toBe('string');
98 + expect(toolGroup.description.length).toBeGreaterThan(0);
99 + expect(toolGroup.tools.map(tool => tool.name)).toEqual(TOOL_NAMES);
100 +
101 + toolGroup.tools.forEach(tool => {
102 + expect(typeof tool.description).toBe('string');
103 + expect(tool.description.length).toBeGreaterThan(0);
104 + expect(tool.inputSchema.type).toBe('object');
105 + expect(typeof tool.execute).toBe('function');
106 + });
107 + });
108 +
109 + it('declares JSON-Schema input with required params', () => {
110 + expect(getTool('react_get_component_tree').inputSchema).toEqual({
111 + type: 'object',
112 + properties: {
113 + depth: {type: 'number', description: expect.any(String)},
114 + rootUid: {type: 'string', description: expect.any(String)},
115 + },
116 + });
117 + expect(getTool('react_get_component_by_uid').inputSchema).toEqual({
118 + type: 'object',
119 + properties: {
120 + uid: {type: 'string', description: expect.any(String)},
121 + includeHooks: {type: 'boolean', description: expect.any(String)},
122 + },
123 + required: ['uid'],
124 + });
125 + expect(getTool('react_find_components').inputSchema).toEqual({
126 + type: 'object',
127 + properties: {
128 + name: {type: 'string', description: expect.any(String)},
129 + rootUid: {type: 'string', description: expect.any(String)},
130 + page: {type: 'number', description: expect.any(String)},
131 + pageSize: {type: 'number', description: expect.any(String)},
132 + },
133 + required: ['name'],
134 + });
135 + expect(getTool('react_start_profiling').inputSchema).toEqual({
136 + type: 'object',
137 + properties: {
138 + traceName: {type: 'string', description: expect.any(String)},
139 + },
140 + });
141 + expect(getTool('react_get_commit_report').inputSchema).toEqual({
142 + type: 'object',
143 + properties: {
144 + traceName: {type: 'string', description: expect.any(String)},
145 + commitIndex: {type: 'number', description: expect.any(String)},
146 + },
147 + required: ['traceName', 'commitIndex'],
148 + });
149 + expect(getTool('react_stop_profiling').inputSchema).toEqual({
150 + type: 'object',
151 + properties: {},
152 + });
153 + });
154 +
155 + it('react_get_component_tree returns the component tree', () => {
156 + function App() {
157 + return <div>hello</div>;
158 + }
159 +
160 + act(() => {
161 + ReactDOMClient.createRoot(container).render(<App />);
162 + });
163 +
164 + const result = getTool('react_get_component_tree').execute({});
165 + // Uids are assigned deterministically as fibers are first encountered. A
166 + // fiber's first child is assigned before the fiber itself, so App (the host
167 + // root's first child) is r0, the host root is r1, and the div is r2.
168 + expect(result).toEqual({
169 + nodes: [
170 + {
171 + uid: 'r1',
172 + type: 'root',
173 + name: 'createRoot()',
174 + key: null,
175 + firstChild: 'r0',
176 + nextSibling: null,
177 + },
178 + {
179 + uid: 'r0',
180 + type: 'function',
181 + name: 'App',
182 + key: null,
183 + firstChild: 'r2',
184 + nextSibling: null,
185 + },
186 + {
187 + uid: 'r2',
188 + type: 'host',
189 + name: 'div',
190 + key: null,
191 + firstChild: null,
192 + nextSibling: null,
193 + },
194 + ],
195 + });
196 + });
197 +
198 + it('react_find_components maps args and returns paginated results', () => {
199 + function Card() {
200 + return <div>card</div>;
201 + }
202 + function App() {
203 + return (
204 + <div>
205 + <Card key="a" />
206 + <Card key="b" />
207 + </div>
208 + );
209 + }
210 +
211 + act(() => {
212 + ReactDOMClient.createRoot(container).render(<App />);
213 + });
214 +
215 + const result = getTool('react_find_components').execute({name: 'Card'});
216 + // Matches are assigned in result order during row building: Card "a" is r0
217 + // (its div r1) and Card "b" is r2 (its div r3).
218 + expect(result).toEqual({
219 + page: 1,
220 + pageSize: 10,
221 + totalCount: 2,
222 + totalPages: 1,
223 + results: [
224 + {
225 + uid: 'r0',
226 + type: 'function',
227 + name: 'Card',
228 + key: 'a',
229 + firstChild: 'r1',
230 + nextSibling: null,
231 + },
232 + {
233 + uid: 'r2',
234 + type: 'function',
235 + name: 'Card',
236 + key: 'b',
237 + firstChild: 'r3',
238 + nextSibling: null,
239 + },
240 + ],
241 + });
242 + });
243 +
244 + it('react_get_component_by_uid returns props and hooks when requested', () => {
245 + function Counter() {
246 + const [count] = React.useState(3);
247 + return <div>{count}</div>;
248 + }
249 +
250 + act(() => {
251 + ReactDOMClient.createRoot(container).render(<Counter title="hi" />);
252 + });
253 +
254 + const result = getTool('react_get_component_tree').execute({});
255 + const tree = result.nodes;
256 + // Counter is the host root's first child, so it is r0 (host root r1, the
257 + // div r2).
258 + expect(tree).toEqual([
259 + {
260 + uid: 'r1',
261 + type: 'root',
262 + name: 'createRoot()',
263 + key: null,
264 + firstChild: 'r0',
265 + nextSibling: null,
266 + },
267 + {
268 + uid: 'r0',
269 + type: 'function',
270 + name: 'Counter',
271 + key: null,
272 + firstChild: 'r2',
273 + nextSibling: null,
274 + },
275 + {
276 + uid: 'r2',
277 + type: 'host',
278 + name: 'div',
279 + key: null,
280 + firstChild: null,
281 + nextSibling: null,
282 + },
283 + ]);
284 +
285 + const counter = tree.find(n => n.name === 'Counter');
286 + expect(counter.uid).toBe('r0');
287 +
288 + const info = getTool('react_get_component_by_uid').execute({
289 + uid: counter.uid,
290 + includeHooks: true,
291 + });
292 + expect(info).toEqual({
293 + uid: 'r0',
294 + type: 'function',
295 + name: 'Counter',
296 + props: {title: 'hi'},
297 + hooks: [{id: 0, name: 'State', value: 3, subHooks: []}],
298 + });
299 +
300 + const infoWithoutHooks = getTool('react_get_component_by_uid').execute({
301 + uid: counter.uid,
302 + });
303 + expect(infoWithoutHooks).toEqual({
304 + uid: 'r0',
305 + type: 'function',
306 + name: 'Counter',
307 + props: {title: 'hi'},
308 + });
309 + });
310 +
311 + it('returns tool errors as a raw payload', () => {
312 + const result = getTool('react_get_component_by_uid').execute({
313 + uid: 'r9999',
314 + });
315 + expect(result).toEqual({error: 'Component not found: "r9999"'});
316 + });
317 +
318 + it('serializes Error tool payloads with causes', () => {
319 + const {buildToolGroup} = require('../DevToolsCdtMcp');
320 + const group = buildToolGroup({
321 + getComponentByUid: () => ({
322 + error: new Error('Failed to inspect hooks.', {
323 + cause: new Error('Cannot inspect hooks'),
324 + }),
325 + }),
326 + });
327 + const tool = group.tools.find(
328 + item => item.name === 'react_get_component_by_uid',
329 + );
330 +
331 + expect(tool.execute({uid: 'r0', includeHooks: true})).toEqual({
332 + error: 'Failed to inspect hooks. Cause: Cannot inspect hooks',
333 + });
334 + });
335 +
336 + it('profiling tools record and report commits through the integration', () => {
337 + function Counter({count}) {
338 + return <div>{'Count: ' + count}</div>;
339 + }
340 +
341 + const root = ReactDOMClient.createRoot(container);
342 + act(() => {
343 + root.render(<Counter count={0} />);
344 + });
345 +
346 + expect(
347 + getTool('react_start_profiling').execute({traceName: 'trace'}),
348 + ).toEqual({
349 + status: 'started',
350 + traceName: 'trace',
351 + });
352 +
353 + act(() => {
354 + root.render(<Counter count={1} />);
355 + });
356 +
357 + expect(getTool('react_stop_profiling').execute({})).toEqual({
358 + status: 'stopped',
359 + traceName: 'trace',
360 + commits: 1,
361 + });
362 +
363 + const overview = getTool('react_get_trace_overview').execute({
364 + traceName: 'trace',
365 + });
366 + expect(overview).toHaveLength(1);
367 + expect(overview[0].commit).toBe(0);
368 +
369 + // The commit report lists the fibers that rendered, sorted by actualDuration
370 + // descending, with uids assigned in commit-walk order: the host root r0
371 + // (widest duration), then Counter r1, then the div r2. Durations are
372 + // timing-dependent, so assert identity (uid/name/type) only.
373 + const report = getTool('react_get_commit_report').execute({
374 + traceName: 'trace',
375 + commitIndex: 0,
376 + });
377 + expect(
378 + report.components.map(c => ({
379 + uid: c.uid,
380 + name: c.name,
381 + type: c.type,
382 + })),
383 + ).toEqual([
384 + {uid: 'r0', name: 'createRoot()', type: 'root'},
385 + {uid: 'r1', name: 'Counter', type: 'function'},
386 + {uid: 'r2', name: 'div', type: 'host'},
387 + ]);
388 + });
389 +
390 + it('responds synchronously to discovery with the react tool group', () => {
391 + const discovered = discover();
392 + expect(discovered).not.toBe(null);
393 + expect(discovered.name).toBe('react');
394 + expect(discovered.tools.map(tool => tool.name)).toEqual(TOOL_NAMES);
395 + });
396 +
397 + it('builds the tool group lazily and memoizes it across discoveries', () => {
398 + // Repeated discovery returns the same instance, so component uids stay
399 + // stable across calls.
400 + expect(discover()).toBe(discover());
401 + });
402 +
403 + it('unregister removes the discovery listener', () => {
404 + unregister();
405 + // No listener responds, so chrome-devtools-mcp would discover nothing.
406 + expect(discover()).toBe(null);
407 + });
408 +
409 + it('tools are callable via window.__dtmcp.executeTool', async () => {
410 + function App() {
411 + return <div>hello</div>;
412 + }
413 + act(() => {
414 + ReactDOMClient.createRoot(container).render(<App />);
415 + });
416 +
417 + // Reproduce chrome-devtools-mcp's exact discovery + execution wiring.
418 + const event = new CustomEvent('devtoolstooldiscovery');
419 + // $FlowFixMe[prop-missing] chrome-devtools-mcp attaches respondWith
420 + event.respondWith = group => {
421 + globalThis.__dtmcp = {
422 + toolGroup: group,
423 + executeTool: async (toolName, args) => {
424 + const tool = group.tools.find(t => t.name === toolName);
425 + return tool.execute(args);
426 + },
427 + };
428 + };
429 + window.dispatchEvent(event);
430 +
431 + const result = await globalThis.__dtmcp.executeTool(
432 + 'react_get_component_tree',
433 + {},
434 + );
435 + // Same deterministic uids as the direct react_get_component_tree path:
436 + // App r0, host root r1, div r2.
437 + expect(result).toEqual({
438 + nodes: [
439 + {
440 + uid: 'r1',
441 + type: 'root',
442 + name: 'createRoot()',
443 + key: null,
444 + firstChild: 'r0',
445 + nextSibling: null,
446 + },
447 + {
448 + uid: 'r0',
449 + type: 'function',
450 + name: 'App',
451 + key: null,
452 + firstChild: 'r2',
453 + nextSibling: null,
454 + },
455 + {
456 + uid: 'r2',
457 + type: 'host',
458 + name: 'div',
459 + key: null,
460 + firstChild: null,
461 + nextSibling: null,
462 + },
463 + ],
464 + });
465 + });
466 +});
packages/react-devtools-cdt-mcp/src/index.js new
+16
@@ -0,0 +1,16 @@
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 {register} from './DevToolsCdtMcp';
11 +
12 +// Side effect: install the facade (before React) and register the React tool
13 +// group for chrome-devtools-mcp. Import this module before React.
14 +register();
15 +
16 +export * from './DevToolsCdtMcp';
packages/react-devtools-facade/src/DevToolsFacadeTools.js
+1 -1
@@ -82,7 +82,7 @@ export type Tools = {
82 * runtime state (fiber roots, per-renderer internals, profiling state) lazily
83 * on each call and never touch globals, so the integrator fully owns both the
84 * facade and the returned tools. Profiler tools share the tree tools' getUid
85 - * so component labels are consistent across all tools.
85 + * so component uids are consistent across all tools.
86 *
87 * @param facade - A Facade returned by installFacade().
88 */
scripts/jest/config.build.js
+1
@@ -62,6 +62,7 @@ module.exports = Object.assign({}, baseConfig, {
62 'packages/react-devtools-extensions',
63 'packages/react-devtools-facade',
64 'packages/react-devtools-shared',
65 + 'packages/react-devtools-cdt-mcp',
66 ],
67 // Don't run bundle tests on -test.internal.* files
68 testPathIgnorePatterns: ['/node_modules/', '-test.internal.js$'],
scripts/jest/config.source-persistent.js
+1
@@ -8,6 +8,7 @@ module.exports = Object.assign({}, baseConfig, {
8 'packages/react-devtools-extensions',
9 'packages/react-devtools-facade',
10 'packages/react-devtools-shared',
11 + 'packages/react-devtools-cdt-mcp',
12 'ReactIncrementalPerf',
13 'ReactIncrementalUpdatesMinimalism',
14 'ReactIncrementalTriangle',
scripts/jest/config.source-www.js
+1
@@ -8,6 +8,7 @@ module.exports = Object.assign({}, baseConfig, {
8 'packages/react-devtools-extensions',
9 'packages/react-devtools-facade',
10 'packages/react-devtools-shared',
11 + 'packages/react-devtools-cdt-mcp',
12 ],
13 setupFiles: [
14 ...baseConfig.setupFiles,
scripts/jest/config.source-xplat.js
+1
@@ -8,6 +8,7 @@ module.exports = Object.assign({}, baseConfig, {
8 'packages/react-devtools-extensions',
9 'packages/react-devtools-facade',
10 'packages/react-devtools-shared',
11 + 'packages/react-devtools-cdt-mcp',
12 'ReactIncrementalPerf',
13 'ReactIncrementalUpdatesMinimalism',
14 'ReactIncrementalTriangle',
scripts/jest/config.source.js
+1
@@ -8,6 +8,7 @@ module.exports = Object.assign({}, baseConfig, {
8 'packages/react-devtools-extensions',
9 'packages/react-devtools-facade',
10 'packages/react-devtools-shared',
11 + 'packages/react-devtools-cdt-mcp',
12 ],
13 setupFiles: [
14 ...baseConfig.setupFiles,