[compiler] Init react-mcp-server (#32859)
Just trying this out as a small hack for fun. Nothing serious is planned. Inits an MCP server that has 1 assistant prompt and two capabilities.
lauren committed
Apr 14, 2025 at 18:39 UTC
08075929f2d5eea319418ea379773bb7276ff940
10 files changed
+1588
-6
compiler/packages/react-mcp-server/README.md
new
+22
@@ -0,0 +1,22 @@
1
+# React MCP Server (experimental)
2
+
3
+An experimental MCP Server for React.
4
+
5
+## Development
6
+
7
+First, add this file if you're using Claude Desktop: `code ~/Library/Application\ Support/Claude/claude_desktop_config.json`. Copy the absolute path from `which node` and from `react/compiler/react-mcp-server/dist/index.js` and paste, for example:
8
+
9
+```json
10
+{
11
+ "mcpServers": {
12
+ "react": {
13
+ "command": "/Users/<username>/.asdf/shims/node",
14
+ "args": [
15
+ "/Users/<username>/code/react/compiler/packages/react-mcp-server/dist/index.js"
16
+ ]
17
+ }
18
+ }
19
+}
20
+```
21
+
22
+Next, run `yarn workspace react-mcp-server watch` from the `react/compiler` directory and make changes as needed. You will need to restart Claude everytime you want to try your changes.
compiler/packages/react-mcp-server/package.json
new
+33
@@ -0,0 +1,33 @@
1
+{
2
+ "name": "react-mcp-server",
3
+ "version": "0.0.0",
4
+ "description": "React MCP Server (experimental)",
5
+ "bin": {
6
+ "react-mcp-server": "./dist/index.js"
7
+ },
8
+ "scripts": {
9
+ "build": "rimraf dist && tsup",
10
+ "test": "echo 'no tests'",
11
+ "watch": "yarn build --watch"
12
+ },
13
+ "dependencies": {
14
+ "@babel/core": "^7.26.0",
15
+ "@babel/parser": "^7.26",
16
+ "@babel/plugin-syntax-typescript": "^7.25.9",
17
+ "@modelcontextprotocol/sdk": "^1.9.0",
18
+ "algoliasearch": "^5.23.3",
19
+ "cheerio": "^1.0.0",
20
+ "prettier": "^3.3.3",
21
+ "turndown": "^7.2.0",
22
+ "zod": "^3.23.8"
23
+ },
24
+ "devDependencies": {
25
+ "@types/turndown": "^5.0.5"
26
+ },
27
+ "license": "MIT",
28
+ "repository": {
29
+ "type": "git",
30
+ "url": "git+https://github.com/facebook/react.git",
31
+ "directory": "compiler/packages/react-mcp-server"
32
+ }
33
+}
compiler/packages/react-mcp-server/src/compiler/index.ts
new
+67
@@ -0,0 +1,67 @@
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
+import type * as BabelCore from '@babel/core';
9
+import {parseAsync, transformFromAstAsync} from '@babel/core';
10
+import BabelPluginReactCompiler, {
11
+ type PluginOptions,
12
+} from 'babel-plugin-react-compiler/src';
13
+import * as prettier from 'prettier';
14
+
15
+export let lastResult: BabelCore.BabelFileResult | null = null;
16
+
17
+type CompileOptions = {
18
+ text: string;
19
+ file: string;
20
+ options: Partial<PluginOptions> | null;
21
+};
22
+export async function compile({
23
+ text,
24
+ file,
25
+ options,
26
+}: CompileOptions): Promise<BabelCore.BabelFileResult> {
27
+ const ast = await parseAsync(text, {
28
+ sourceFileName: file,
29
+ parserOpts: {
30
+ plugins: ['typescript', 'jsx'],
31
+ },
32
+ sourceType: 'module',
33
+ });
34
+ if (ast == null) {
35
+ throw new Error('Could not parse');
36
+ }
37
+ const plugins =
38
+ options != null
39
+ ? [[BabelPluginReactCompiler, options]]
40
+ : [[BabelPluginReactCompiler]];
41
+ const result = await transformFromAstAsync(ast, text, {
42
+ filename: file,
43
+ highlightCode: false,
44
+ retainLines: true,
45
+ plugins,
46
+ sourceType: 'module',
47
+ sourceFileName: file,
48
+ });
49
+ if (result?.code == null) {
50
+ throw new Error(
51
+ `Expected BabelPluginReactCompiler to compile successfully, got ${result}`,
52
+ );
53
+ }
54
+ try {
55
+ result.code = await prettier.format(result.code, {
56
+ semi: false,
57
+ parser: 'babel-ts',
58
+ });
59
+ if (result.code != null) {
60
+ lastResult = result;
61
+ }
62
+ } catch (err) {
63
+ // If prettier failed just log, no need to crash
64
+ console.error(err);
65
+ }
66
+ return result;
67
+}
compiler/packages/react-mcp-server/src/index.ts
new
+356
@@ -0,0 +1,356 @@
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
+import {
9
+ McpServer,
10
+ ResourceTemplate,
11
+} from '@modelcontextprotocol/sdk/server/mcp.js';
12
+import {StdioServerTransport} from '@modelcontextprotocol/sdk/server/stdio.js';
13
+import {z} from 'zod';
14
+import {compile} from './compiler';
15
+import {
16
+ CompilerPipelineValue,
17
+ printReactiveFunctionWithOutlined,
18
+ printFunctionWithOutlined,
19
+ PluginOptions,
20
+ SourceLocation,
21
+} from 'babel-plugin-react-compiler/src';
22
+import * as cheerio from 'cheerio';
23
+import TurndownService from 'turndown';
24
+import {queryAlgolia} from './utils/algolia';
25
+
26
+const turndownService = new TurndownService();
27
+
28
+export type PrintedCompilerPipelineValue =
29
+ | {
30
+ kind: 'hir';
31
+ name: string;
32
+ fnName: string | null;
33
+ value: string;
34
+ }
35
+ | {kind: 'reactive'; name: string; fnName: string | null; value: string}
36
+ | {kind: 'debug'; name: string; fnName: string | null; value: string};
37
+
38
+const server = new McpServer({
39
+ name: 'React',
40
+ version: '0.0.0',
41
+});
42
+
43
+// TODO: how to verify this works?
44
+server.resource(
45
+ 'docs',
46
+ new ResourceTemplate('docs://{message}', {list: undefined}),
47
+ async (uri, {message}) => {
48
+ const hits = await queryAlgolia(message);
49
+ const pages: Array<string | null> = await Promise.all(
50
+ hits.map(hit => {
51
+ return fetch(hit.url, {
52
+ headers: {
53
+ 'User-Agent':
54
+ 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36',
55
+ },
56
+ }).then(res => {
57
+ if (res.ok === true) {
58
+ return res.text();
59
+ } else {
60
+ console.error(
61
+ `Could not fetch docs: ${res.status} ${res.statusText}`,
62
+ );
63
+ return null;
64
+ }
65
+ });
66
+ }),
67
+ );
68
+
69
+ const resultsMarkdown = pages
70
+ .filter(html => html !== null)
71
+ .map(html => {
72
+ const $ = cheerio.load(html);
73
+ // react.dev should always have at least one <article> with the main content
74
+ const article = $('article').html();
75
+ if (article != null) {
76
+ return {
77
+ uri: uri.href,
78
+ text: turndownService.turndown(article),
79
+ };
80
+ } else {
81
+ return {
82
+ uri: uri.href,
83
+ // Fallback to converting the whole page to markdown
84
+ text: turndownService.turndown($.html()),
85
+ };
86
+ }
87
+ });
88
+
89
+ return {
90
+ contents: resultsMarkdown,
91
+ };
92
+ },
93
+);
94
+
95
+server.tool(
96
+ 'compile',
97
+ 'Compile code with React Compiler. Optionally, for debugging provide a pass name like "HIR" to see more information.',
98
+ {
99
+ text: z.string(),
100
+ passName: z.string().optional(),
101
+ },
102
+ async ({text, passName}) => {
103
+ const pipelinePasses = new Map<
104
+ string,
105
+ Array<PrintedCompilerPipelineValue>
106
+ >();
107
+ const recordPass: (
108
+ result: PrintedCompilerPipelineValue,
109
+ ) => void = result => {
110
+ const entry = pipelinePasses.get(result.name);
111
+ if (Array.isArray(entry)) {
112
+ entry.push(result);
113
+ } else {
114
+ pipelinePasses.set(result.name, [result]);
115
+ }
116
+ };
117
+ const logIR = (result: CompilerPipelineValue): void => {
118
+ switch (result.kind) {
119
+ case 'ast': {
120
+ break;
121
+ }
122
+ case 'hir': {
123
+ recordPass({
124
+ kind: 'hir',
125
+ fnName: result.value.id,
126
+ name: result.name,
127
+ value: printFunctionWithOutlined(result.value),
128
+ });
129
+ break;
130
+ }
131
+ case 'reactive': {
132
+ recordPass({
133
+ kind: 'reactive',
134
+ fnName: result.value.id,
135
+ name: result.name,
136
+ value: printReactiveFunctionWithOutlined(result.value),
137
+ });
138
+ break;
139
+ }
140
+ case 'debug': {
141
+ recordPass({
142
+ kind: 'debug',
143
+ fnName: null,
144
+ name: result.name,
145
+ value: result.value,
146
+ });
147
+ break;
148
+ }
149
+ default: {
150
+ const _: never = result;
151
+ throw new Error(`Unhandled result ${result}`);
152
+ }
153
+ }
154
+ };
155
+ const errors: Array<{message: string; loc: SourceLocation}> = [];
156
+ const compilerOptions: Partial<PluginOptions> = {
157
+ panicThreshold: 'none',
158
+ logger: {
159
+ debugLogIRs: logIR,
160
+ logEvent: (_filename, event): void => {
161
+ if (event.kind === 'CompileError') {
162
+ const detail = event.detail;
163
+ const loc =
164
+ detail.loc == null || typeof detail.loc == 'symbol'
165
+ ? event.fnLoc
166
+ : detail.loc;
167
+ if (loc != null) {
168
+ errors.push({
169
+ message: detail.reason,
170
+ loc,
171
+ });
172
+ }
173
+ }
174
+ },
175
+ },
176
+ };
177
+ try {
178
+ const result = await compile({
179
+ text,
180
+ file: 'anonymous.tsx',
181
+ options: compilerOptions,
182
+ });
183
+ if (result.code == null) {
184
+ return {
185
+ isError: true,
186
+ content: [{type: 'text' as const, text: 'Error: Could not compile'}],
187
+ };
188
+ }
189
+ const requestedPasses: Array<{type: 'text'; text: string}> = [];
190
+ if (passName != null) {
191
+ const requestedPass = pipelinePasses.get(passName);
192
+ if (requestedPass !== undefined) {
193
+ for (const pipelineValue of requestedPass) {
194
+ if (pipelineValue.name === passName) {
195
+ requestedPasses.push({
196
+ type: 'text' as const,
197
+ text: pipelineValue.value,
198
+ });
199
+ }
200
+ }
201
+ }
202
+ }
203
+ if (errors.length > 0) {
204
+ const errMessages = errors.map(err => {
205
+ if (typeof err.loc !== 'symbol') {
206
+ return {
207
+ type: 'text' as const,
208
+ text: `React Compiler bailed out: ${err.message}@${err.loc.start}:${err.loc.end}`,
209
+ };
210
+ }
211
+ return null;
212
+ });
213
+ return {
214
+ content: errMessages.filter(msg => msg !== null),
215
+ };
216
+ }
217
+ return {
218
+ content: [
219
+ {type: 'text' as const, text: result.code},
220
+ ...requestedPasses,
221
+ ],
222
+ };
223
+ } catch (err) {
224
+ return {
225
+ isError: true,
226
+ content: [{type: 'text' as const, text: `Error: ${err.stack}`}],
227
+ };
228
+ }
229
+ },
230
+);
231
+
232
+server.prompt('review-code', {code: z.string()}, ({code}) => ({
233
+ messages: [
234
+ {
235
+ role: 'assistant',
236
+ content: {
237
+ type: 'text',
238
+ text: `# React Expert Assistant
239
+
240
+## Role
241
+You are a React expert assistant that helps users write more efficient and optimizable React code. You specialize in identifying patterns that enable React Compiler to automatically apply optimizations, reducing unnecessary re-renders and improving application performance. Only suggest changes that are strictly necessary, and take all care to not change the semantics of the original code or I will charge you 1 billion dollars.
242
+
243
+## Available Resources
244
+- 'docs': Look up documentation from React.dev. Returns markdown as a string.
245
+
246
+## Available Tools
247
+- 'compile': Run the user's code through React Compiler. Returns optimized JS/TS code with potential diagnostics.
248
+
249
+## Process
250
+1. Analyze the user's code for optimization opportunities:
251
+ - Check for React anti-patterns that prevent compiler optimization
252
+ - Identify unnecessary manual optimizations (useMemo, useCallback, React.memo) that the compiler can handle
253
+ - Look for component structure issues that limit compiler effectiveness
254
+ - Consult React.dev docs using the 'docs' resource when necessary
255
+
256
+2. Use React Compiler to verify optimization potential:
257
+ - Run the code through the compiler and analyze the output
258
+ - You can run the compiler multiple times to verify your work
259
+ - Check for successful optimization by looking for const $ = _c(n) cache entries, where n is an integer
260
+ - Identify bailout messages that indicate where code could be improved
261
+ - Compare before/after optimization potential
262
+
263
+3. Provide actionable guidance:
264
+ - Explain specific code changes with clear reasoning
265
+ - Show before/after examples when suggesting changes
266
+ - Include compiler results to demonstrate the impact of optimizations
267
+ - Only suggest changes that meaningfully improve optimization potential
268
+
269
+## Optimization Guidelines
270
+- Avoid mutation of values that are memoized by the compiler
271
+- State updates should be structured to enable granular updates
272
+- Side effects should be isolated and dependencies clearly defined
273
+- The compiler automatically inserts memoization, so manually added useMemo/useCallback/React.memo can often be removed
274
+
275
+## Understanding Compiler Output
276
+- Successful optimization adds import { c as _c } from "react/compiler-runtime";
277
+- Successful optimization initializes a constant sized cache with const $ = _c(n), where n is the size of the cache as an integer
278
+- When suggesting changes, try to increase or decrease the number of cached expressions (visible in const $ = _c(n))
279
+ - Increase: more memoization coverage
280
+ - Decrease: if there are unnecessary dependencies, less dependencies mean less re-rendering
281
+
282
+As an example:
283
+
284
+\`\`\`
285
+export default function MyApp() {
286
+ return <div>Hello World</div>;
287
+}
288
+\`\`\`
289
+
290
+Results in:
291
+
292
+\`\`\`
293
+import { c as _c } from "react/compiler-runtime";
294
+export default function MyApp() {
295
+ const $ = _c(1);
296
+ let t0;
297
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
298
+ t0 = <div>Hello World</div>;
299
+ $[0] = t0;
300
+ } else {
301
+ t0 = $[0];
302
+ }
303
+ return t0;
304
+}
305
+\`\`\`
306
+
307
+The code above was memoized successfully by the compiler as you can see from the injected import { c as _c } from "react/compiler-runtime"; statement. The cache size is initialized at 1 slot. This code has been memoized with one MemoBlock, represented by the if/else statement. Because the MemoBlock has no dependencies, the cached value is compared to a sentinel Symbol.for("react.memo_cache_sentinel") value once and then cached forever.
308
+
309
+Here's an example of code that results in a MemoBlock with one dependency, as you can see by the comparison against the name prop:
310
+
311
+\`\`\`js
312
+export default function MyApp({name}) {
313
+ return <div>Hello World, {name}</div>;
314
+}
315
+\`\`\`
316
+
317
+\`\`\`js
318
+import { c as _c } from "react/compiler-runtime";
319
+export default function MyApp(t0) {
320
+ const $ = _c(2);
321
+ const { name } = t0;
322
+ let t1;
323
+ if ($[0] !== name) {
324
+ t1 = <div>Hello World, {name}</div>;
325
+ $[0] = name;
326
+ $[1] = t1;
327
+ } else {
328
+ t1 = $[1];
329
+ }
330
+ return t1;
331
+}
332
+\`\`\`
333
+
334
+## Example 1: <todo>
335
+
336
+## Example 2: <todo>
337
+
338
+Review the following code:
339
+
340
+${code}
341
+`,
342
+ },
343
+ },
344
+ ],
345
+}));
346
+
347
+async function main() {
348
+ const transport = new StdioServerTransport();
349
+ await server.connect(transport);
350
+ console.error('React Compiler MCP Server running on stdio');
351
+}
352
+
353
+main().catch(error => {
354
+ console.error('Fatal error in main():', error);
355
+ process.exit(1);
356
+});
compiler/packages/react-mcp-server/src/types/algolia.ts
new
+93
@@ -0,0 +1,93 @@
1
+// https://github.com/algolia/docsearch/blob/15ebcba606b281aa0dddc4ccb8feb19d396bf79e/packages/docsearch-react/src/types/DocSearchHit.ts
2
+type ContentType =
3
+ | 'content'
4
+ | 'lvl0'
5
+ | 'lvl1'
6
+ | 'lvl2'
7
+ | 'lvl3'
8
+ | 'lvl4'
9
+ | 'lvl5'
10
+ | 'lvl6';
11
+
12
+interface DocSearchHitAttributeHighlightResult {
13
+ value: string;
14
+ matchLevel: 'full' | 'none' | 'partial';
15
+ matchedWords: string[];
16
+ fullyHighlighted?: boolean;
17
+}
18
+
19
+interface DocSearchHitHighlightResultHierarchy {
20
+ lvl0: DocSearchHitAttributeHighlightResult;
21
+ lvl1: DocSearchHitAttributeHighlightResult;
22
+ lvl2: DocSearchHitAttributeHighlightResult;
23
+ lvl3: DocSearchHitAttributeHighlightResult;
24
+ lvl4: DocSearchHitAttributeHighlightResult;
25
+ lvl5: DocSearchHitAttributeHighlightResult;
26
+ lvl6: DocSearchHitAttributeHighlightResult;
27
+}
28
+
29
+interface DocSearchHitHighlightResult {
30
+ content: DocSearchHitAttributeHighlightResult;
31
+ hierarchy: DocSearchHitHighlightResultHierarchy;
32
+ hierarchy_camel: DocSearchHitHighlightResultHierarchy[];
33
+}
34
+
35
+interface DocSearchHitAttributeSnippetResult {
36
+ value: string;
37
+ matchLevel: 'full' | 'none' | 'partial';
38
+}
39
+
40
+interface DocSearchHitSnippetResult {
41
+ content: DocSearchHitAttributeSnippetResult;
42
+ hierarchy: DocSearchHitHighlightResultHierarchy;
43
+ hierarchy_camel: DocSearchHitHighlightResultHierarchy[];
44
+}
45
+
46
+export declare type DocSearchHit = {
47
+ objectID: string;
48
+ content: string | null;
49
+ url: string;
50
+ url_without_anchor: string;
51
+ type: ContentType;
52
+ anchor: string | null;
53
+ hierarchy: {
54
+ lvl0: string;
55
+ lvl1: string;
56
+ lvl2: string | null;
57
+ lvl3: string | null;
58
+ lvl4: string | null;
59
+ lvl5: string | null;
60
+ lvl6: string | null;
61
+ };
62
+ _highlightResult: DocSearchHitHighlightResult;
63
+ _snippetResult: DocSearchHitSnippetResult;
64
+ _rankingInfo?: {
65
+ promoted: boolean;
66
+ nbTypos: number;
67
+ firstMatchedWord: number;
68
+ proximityDistance?: number;
69
+ geoDistance: number;
70
+ geoPrecision?: number;
71
+ nbExactWords: number;
72
+ words: number;
73
+ filters: number;
74
+ userScore: number;
75
+ matchedGeoLocation?: {
76
+ lat: number;
77
+ lng: number;
78
+ distance: number;
79
+ };
80
+ };
81
+ _distinctSeqID?: number;
82
+ __autocomplete_indexName?: string;
83
+ __autocomplete_queryID?: string;
84
+ __autocomplete_algoliaCredentials?: {
85
+ appId: string;
86
+ apiKey: string;
87
+ };
88
+ __autocomplete_id?: number;
89
+};
90
+
91
+export type InternalDocSearchHit = DocSearchHit & {
92
+ __docsearch_parent: InternalDocSearchHit | null;
93
+};
compiler/packages/react-mcp-server/src/utils/algolia.ts
new
+91
@@ -0,0 +1,91 @@
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
+import type {DocSearchHit, InternalDocSearchHit} from '../types/algolia';
9
+import {liteClient, type Hit, type SearchResponse} from 'algoliasearch/lite';
10
+
11
+// https://github.com/reactjs/react.dev/blob/55986965fbf69c2584040039c9586a01bd54eba7/src/siteConfig.js#L15-L19
12
+const ALGOLIA_CONFIG = {
13
+ appId: '1FCF9AYYAT',
14
+ apiKey: '1b7ad4e1c89e645e351e59d40544eda1',
15
+ indexName: 'beta-react',
16
+};
17
+
18
+export const ALGOLIA_CLIENT = liteClient(
19
+ ALGOLIA_CONFIG.appId,
20
+ ALGOLIA_CONFIG.apiKey,
21
+);
22
+
23
+export function printHierarchy(
24
+ hit: DocSearchHit | InternalDocSearchHit,
25
+): string {
26
+ let val = `${hit.hierarchy.lvl0} > ${hit.hierarchy.lvl1}`;
27
+ if (hit.hierarchy.lvl2 != null) {
28
+ val = val.concat(` > ${hit.hierarchy.lvl2}`);
29
+ }
30
+ if (hit.hierarchy.lvl3 != null) {
31
+ val = val.concat(` > ${hit.hierarchy.lvl3}`);
32
+ }
33
+ if (hit.hierarchy.lvl4 != null) {
34
+ val = val.concat(` > ${hit.hierarchy.lvl4}`);
35
+ }
36
+ if (hit.hierarchy.lvl5 != null) {
37
+ val = val.concat(` > ${hit.hierarchy.lvl5}`);
38
+ }
39
+ if (hit.hierarchy.lvl6 != null) {
40
+ val = val.concat(` > ${hit.hierarchy.lvl6}`);
41
+ }
42
+ return val;
43
+}
44
+
45
+export async function queryAlgolia(
46
+ message: string | Array<string>,
47
+): Promise<Hit<DocSearchHit>[]> {
48
+ const {results} = await ALGOLIA_CLIENT.search<DocSearchHit>({
49
+ requests: [
50
+ {
51
+ query: Array.isArray(message) ? message.join('\n') : message,
52
+ indexName: ALGOLIA_CONFIG.indexName,
53
+ attributesToRetrieve: [
54
+ 'hierarchy.lvl0',
55
+ 'hierarchy.lvl1',
56
+ 'hierarchy.lvl2',
57
+ 'hierarchy.lvl3',
58
+ 'hierarchy.lvl4',
59
+ 'hierarchy.lvl5',
60
+ 'hierarchy.lvl6',
61
+ 'content',
62
+ 'url',
63
+ ],
64
+ attributesToSnippet: [
65
+ `hierarchy.lvl1:10`,
66
+ `hierarchy.lvl2:10`,
67
+ `hierarchy.lvl3:10`,
68
+ `hierarchy.lvl4:10`,
69
+ `hierarchy.lvl5:10`,
70
+ `hierarchy.lvl6:10`,
71
+ `content:10`,
72
+ ],
73
+ snippetEllipsisText: '…',
74
+ hitsPerPage: 30,
75
+ attributesToHighlight: [
76
+ 'hierarchy.lvl0',
77
+ 'hierarchy.lvl1',
78
+ 'hierarchy.lvl2',
79
+ 'hierarchy.lvl3',
80
+ 'hierarchy.lvl4',
81
+ 'hierarchy.lvl5',
82
+ 'hierarchy.lvl6',
83
+ 'content',
84
+ ],
85
+ },
86
+ ],
87
+ });
88
+ const firstResult = results[0] as SearchResponse<DocSearchHit>;
89
+ const {hits} = firstResult;
90
+ return hits;
91
+}
compiler/packages/react-mcp-server/todo.md
new
+5
@@ -0,0 +1,5 @@
1
+TODO
2
+
3
+- [ ] If code doesnt compile, read diagnostics and try again
4
+- [ ] Provide detailed examples in assistant prompt (use another LLM to generate good prompts, iterate from there)
5
+- [ ] Provide more tools for working with HIR/AST (eg so we can prompt it to try and optimize code via HIR, which it can then translate back into user code changes)
compiler/packages/react-mcp-server/tsconfig.json
new
+22
@@ -0,0 +1,22 @@
1
+{
2
+ "extends": "@tsconfig/strictest/tsconfig.json",
3
+ "compilerOptions": {
4
+ "module": "Node16",
5
+ "moduleResolution": "Node16",
6
+ "rootDir": "../",
7
+ "noEmit": true,
8
+ "jsx": "react-jsxdev",
9
+ "lib": ["ES2022"],
10
+
11
+ // weaken strictness from preset
12
+ "importsNotUsedAsValues": "remove",
13
+ "noUncheckedIndexedAccess": false,
14
+ "noUnusedParameters": false,
15
+ "useUnknownInCatchVariables": false,
16
+ "target": "ES2022",
17
+ // ideally turn off only during dev, or on a per-file basis
18
+ "noUnusedLocals": false,
19
+ },
20
+ "exclude": ["node_modules"],
21
+ "include": ["src/**/*.ts"],
22
+}
compiler/packages/react-mcp-server/tsup.config.ts
new
+30
@@ -0,0 +1,30 @@
1
+import {defineConfig} from 'tsup';
2
+
3
+export default defineConfig({
4
+ entry: ['./src/index.ts'],
5
+ outDir: './dist',
6
+ external: [],
7
+ splitting: false,
8
+ sourcemap: false,
9
+ dts: false,
10
+ bundle: true,
11
+ format: 'cjs',
12
+ platform: 'node',
13
+ target: 'es2022',
14
+ banner: {
15
+ js: `#!/usr/bin/env node
16
+
17
+/**
18
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
19
+ *
20
+ * This source code is licensed under the MIT license found in the
21
+ * LICENSE file in the root directory of this source tree.
22
+ *
23
+ * @lightSyntaxTransform
24
+ * @noflow
25
+ * @nolint
26
+ * @preventMunge
27
+ * @preserve-invariant-messages
28
+ */`,
29
+ },
30
+});
compiler/yarn.lock
+869
-6
@@ -7,6 +7,122 @@
7
resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf"
8
integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==
9
10
+"@algolia/client-abtesting@5.23.4":
11
+ version "5.23.4"
12
+ resolved "https://registry.yarnpkg.com/@algolia/client-abtesting/-/client-abtesting-5.23.4.tgz#de89e757ca26e003dc4dbd7e7fac35c3071caaa4"
13
+ integrity sha512-WIMT2Kxy+FFWXWQxIU8QgbTioL+SGE24zhpj0kipG4uQbzXwONaWt7ffaYLjfge3gcGSgJVv+1VlahVckafluQ==
14
+ dependencies:
15
+ "@algolia/client-common" "5.23.4"
16
+ "@algolia/requester-browser-xhr" "5.23.4"
17
+ "@algolia/requester-fetch" "5.23.4"
18
+ "@algolia/requester-node-http" "5.23.4"
19
+
20
+"@algolia/client-analytics@5.23.4":
21
+ version "5.23.4"
22
+ resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-5.23.4.tgz#4a918a775db1c596773a34414f9d4203a50b4291"
23
+ integrity sha512-4B9gChENsQA9kFmFlb+x3YhBz2Gx3vSsm81FHI1yJ3fn2zlxREHmfrjyqYoMunsU7BybT/o5Nb7ccCbm/vfseA==
24
+ dependencies:
25
+ "@algolia/client-common" "5.23.4"
26
+ "@algolia/requester-browser-xhr" "5.23.4"
27
+ "@algolia/requester-fetch" "5.23.4"
28
+ "@algolia/requester-node-http" "5.23.4"
29
+
30
+"@algolia/client-common@5.23.4":
31
+ version "5.23.4"
32
+ resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-5.23.4.tgz#651506d080fd1feda1175c89ffb83fd7a2af20c2"
33
+ integrity sha512-bsj0lwU2ytiWLtl7sPunr+oLe+0YJql9FozJln5BnIiqfKOaseSDdV42060vUy+D4373f2XBI009K/rm2IXYMA==
34
+
35
+"@algolia/client-insights@5.23.4":
36
+ version "5.23.4"
37
+ resolved "https://registry.yarnpkg.com/@algolia/client-insights/-/client-insights-5.23.4.tgz#a901e2dda6a7a8e6d8879b66e5776d22d1e95a04"
38
+ integrity sha512-XSCtAYvJ/hnfDHfRVMbBH0dayR+2ofVZy3jf5qyifjguC6rwxDsSdQvXpT0QFVyG+h8UPGtDhMPoUIng4wIcZA==
39
+ dependencies:
40
+ "@algolia/client-common" "5.23.4"
41
+ "@algolia/requester-browser-xhr" "5.23.4"
42
+ "@algolia/requester-fetch" "5.23.4"
43
+ "@algolia/requester-node-http" "5.23.4"
44
+
45
+"@algolia/client-personalization@5.23.4":
46
+ version "5.23.4"
47
+ resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-5.23.4.tgz#d236f3ef648976307ca119899ad1459d40db93a6"
48
+ integrity sha512-l/0QvqgRFFOf7BnKSJ3myd1WbDr86ftVaa3PQwlsNh7IpIHmvVcT83Bi5zlORozVGMwaKfyPZo6O48PZELsOeA==
49
+ dependencies:
50
+ "@algolia/client-common" "5.23.4"
51
+ "@algolia/requester-browser-xhr" "5.23.4"
52
+ "@algolia/requester-fetch" "5.23.4"
53
+ "@algolia/requester-node-http" "5.23.4"
54
+
55
+"@algolia/client-query-suggestions@5.23.4":
56
+ version "5.23.4"
57
+ resolved "https://registry.yarnpkg.com/@algolia/client-query-suggestions/-/client-query-suggestions-5.23.4.tgz#79579f525510bcc3aacc289040d9c2536e65f945"
58
+ integrity sha512-TB0htrDgVacVGtPDyENoM6VIeYqR+pMsDovW94dfi2JoaRxfqu/tYmLpvgWcOknP6wLbr8bA+G7t/NiGksNAwQ==
59
+ dependencies:
60
+ "@algolia/client-common" "5.23.4"
61
+ "@algolia/requester-browser-xhr" "5.23.4"
62
+ "@algolia/requester-fetch" "5.23.4"
63
+ "@algolia/requester-node-http" "5.23.4"
64
+
65
+"@algolia/client-search@5.23.4":
66
+ version "5.23.4"
67
+ resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-5.23.4.tgz#7906ab4b704edd1ba2ac39100bf37e0279b4ebdc"
68
+ integrity sha512-uBGo6KwUP6z+u6HZWRui8UJClS7fgUIAiYd1prUqCbkzDiCngTOzxaJbEvrdkK0hGCQtnPDiuNhC5MhtVNN4Eg==
69
+ dependencies:
70
+ "@algolia/client-common" "5.23.4"
71
+ "@algolia/requester-browser-xhr" "5.23.4"
72
+ "@algolia/requester-fetch" "5.23.4"
73
+ "@algolia/requester-node-http" "5.23.4"
74
+
75
+"@algolia/ingestion@1.23.4":
76
+ version "1.23.4"
77
+ resolved "https://registry.yarnpkg.com/@algolia/ingestion/-/ingestion-1.23.4.tgz#f542907b13e7bb97dede32101cb86ce7e8482318"
78
+ integrity sha512-Si6rFuGnSeEUPU9QchYvbknvEIyCRK7nkeaPVQdZpABU7m4V/tsiWdHmjVodtx3h20VZivJdHeQO9XbHxBOcCw==
79
+ dependencies:
80
+ "@algolia/client-common" "5.23.4"
81
+ "@algolia/requester-browser-xhr" "5.23.4"
82
+ "@algolia/requester-fetch" "5.23.4"
83
+ "@algolia/requester-node-http" "5.23.4"
84
+
85
+"@algolia/monitoring@1.23.4":
86
+ version "1.23.4"
87
+ resolved "https://registry.yarnpkg.com/@algolia/monitoring/-/monitoring-1.23.4.tgz#be169ebdb56f3636c1428f4f20fb33c79d09160a"
88
+ integrity sha512-EXGoVVTshraqPJgr5cMd1fq7Jm71Ew6MpGCEaxI5PErBpJAmKdtjRIzs6JOGKHRaWLi+jdbJPYc2y8RN4qcx5Q==
89
+ dependencies:
90
+ "@algolia/client-common" "5.23.4"
91
+ "@algolia/requester-browser-xhr" "5.23.4"
92
+ "@algolia/requester-fetch" "5.23.4"
93
+ "@algolia/requester-node-http" "5.23.4"
94
+
95
+"@algolia/recommend@5.23.4":
96
+ version "5.23.4"
97
+ resolved "https://registry.yarnpkg.com/@algolia/recommend/-/recommend-5.23.4.tgz#218ca0457d68045632953648b622047e0c57a338"
98
+ integrity sha512-1t6glwKVCkjvBNlng2itTf8fwaLSqkL4JaMENgR3WTGR8mmW2akocUy/ZYSQcG4TcR7qu4zW2UMGAwLoWoflgQ==
99
+ dependencies:
100
+ "@algolia/client-common" "5.23.4"
101
+ "@algolia/requester-browser-xhr" "5.23.4"
102
+ "@algolia/requester-fetch" "5.23.4"
103
+ "@algolia/requester-node-http" "5.23.4"
104
+
105
+"@algolia/requester-browser-xhr@5.23.4":
106
+ version "5.23.4"
107
+ resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.23.4.tgz#ee8c88094e904511024e3ba7749b85a85f8d31bd"
108
+ integrity sha512-UUuizcgc5+VSY8hqzDFVdJ3Wcto03lpbFRGPgW12pHTlUQHUTADtIpIhkLLOZRCjXmCVhtr97Z+eR6LcRYXa3Q==
109
+ dependencies:
110
+ "@algolia/client-common" "5.23.4"
111
+
112
+"@algolia/requester-fetch@5.23.4":
113
+ version "5.23.4"
114
+ resolved "https://registry.yarnpkg.com/@algolia/requester-fetch/-/requester-fetch-5.23.4.tgz#138dab9f52771cdb90c64dabb01d1fec3614446b"
115
+ integrity sha512-UhDg6elsek6NnV5z4VG1qMwR6vbp+rTMBEnl/v4hUyXQazU+CNdYkl++cpdmLwGI/7nXc28xtZiL90Es3I7viQ==
116
+ dependencies:
117
+ "@algolia/client-common" "5.23.4"
118
+
119
+"@algolia/requester-node-http@5.23.4":
120
+ version "5.23.4"
121
+ resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-5.23.4.tgz#8cc9439ef2f21f04cbea7ddeef712aa2b3d18f62"
122
+ integrity sha512-jXGzGBRUS0oywQwnaCA6mMDJO7LoC3dYSLsyNfIqxDR4SNGLhtg3je0Y31lc24OA4nYyKAYgVLtjfrpcpsWShg==
123
+ dependencies:
124
+ "@algolia/client-common" "5.23.4"
125
+
126
"@ampproject/remapping@^2.2.0":
127
version "2.3.0"
128
resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4"
@@ -63,6 +179,11 @@
179
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.26.3.tgz#99488264a56b2aded63983abd6a417f03b92ed02"
180
integrity sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==
181
182
+"@babel/compat-data@^7.26.8":
183
+ version "7.26.8"
184
+ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.26.8.tgz#821c1d35641c355284d4a870b8a4a7b0c141e367"
185
+ integrity sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==
186
+
187
"@babel/core@^7.0.0", "@babel/core@^7.2.0":
188
version "7.2.0"
189
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.2.0.tgz#a4dd3814901998e93340f0086e9867fefa163ada"
@@ -104,6 +225,27 @@
225
json5 "^2.2.3"
226
semver "^6.3.1"
227
228
+"@babel/core@^7.26.0":
229
+ version "7.26.10"
230
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.26.10.tgz#5c876f83c8c4dcb233ee4b670c0606f2ac3000f9"
231
+ integrity sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==
232
+ dependencies:
233
+ "@ampproject/remapping" "^2.2.0"
234
+ "@babel/code-frame" "^7.26.2"
235
+ "@babel/generator" "^7.26.10"
236
+ "@babel/helper-compilation-targets" "^7.26.5"
237
+ "@babel/helper-module-transforms" "^7.26.0"
238
+ "@babel/helpers" "^7.26.10"
239
+ "@babel/parser" "^7.26.10"
240
+ "@babel/template" "^7.26.9"
241
+ "@babel/traverse" "^7.26.10"
242
+ "@babel/types" "^7.26.10"
243
+ convert-source-map "^2.0.0"
244
+ debug "^4.1.0"
245
+ gensync "^1.0.0-beta.2"
246
+ json5 "^2.2.3"
247
+ semver "^6.3.1"
248
+
249
"@babel/generator@7.2.0", "@babel/generator@^7.0.0", "@babel/generator@^7.2.0":
250
version "7.2.0"
251
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.2.0.tgz#eaf3821fa0301d9d4aef88e63d4bcc19b73ba16c"
@@ -137,6 +279,17 @@
279
"@jridgewell/trace-mapping" "^0.3.25"
280
jsesc "^3.0.2"
281
282
+"@babel/generator@^7.27.0":
283
+ version "7.27.0"
284
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.27.0.tgz#764382b5392e5b9aff93cadb190d0745866cbc2c"
285
+ integrity sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==
286
+ dependencies:
287
+ "@babel/parser" "^7.27.0"
288
+ "@babel/types" "^7.27.0"
289
+ "@jridgewell/gen-mapping" "^0.3.5"
290
+ "@jridgewell/trace-mapping" "^0.3.25"
291
+ jsesc "^3.0.2"
292
+
293
"@babel/helper-annotate-as-pure@^7.18.6":
294
version "7.18.6"
295
resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb"
@@ -187,6 +340,17 @@
340
lru-cache "^5.1.1"
341
semver "^6.3.1"
342
343
+"@babel/helper-compilation-targets@^7.26.5":
344
+ version "7.27.0"
345
+ resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.0.tgz#de0c753b1cd1d9ab55d473c5a5cf7170f0a81880"
346
+ integrity sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA==
347
+ dependencies:
348
+ "@babel/compat-data" "^7.26.8"
349
+ "@babel/helper-validator-option" "^7.25.9"
350
+ browserslist "^4.24.0"
351
+ lru-cache "^5.1.1"
352
+ semver "^6.3.1"
353
+
354
"@babel/helper-create-class-features-plugin@^7.18.6":
355
version "7.22.9"
356
resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.9.tgz#c36ea240bb3348f942f08b0fbe28d6d979fab236"
@@ -629,6 +793,14 @@
793
"@babel/template" "^7.25.9"
794
"@babel/types" "^7.26.0"
795
796
+"@babel/helpers@^7.26.10":
797
+ version "7.27.0"
798
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.27.0.tgz#53d156098defa8243eab0f32fa17589075a1b808"
799
+ integrity sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==
800
+ dependencies:
801
+ "@babel/template" "^7.27.0"
802
+ "@babel/types" "^7.27.0"
803
+
804
"@babel/highlight@^7.18.6":
805
version "7.18.6"
806
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf"
@@ -667,7 +839,7 @@
839
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.3.tgz#8dd36d17c53ff347f9e55c328710321b49479a9a"
840
integrity sha512-pJ9xOlNWHiy9+FuFP09DEAFbAn4JskgRsVcc169w2xRBC3FRGuQEwjeIMMND9L2zc0iEhO/tGv4Zq+km+hxNpQ==
841
670
-"@babel/parser@^7.20.15":
842
+"@babel/parser@^7.20.15", "@babel/parser@^7.26", "@babel/parser@^7.27.0":
843
version "7.27.0"
844
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.27.0.tgz#3d7d6ee268e41d2600091cbd4e145ffee85a44ec"
845
integrity sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==
@@ -1653,6 +1825,15 @@
1825
"@babel/parser" "^7.26.9"
1826
"@babel/types" "^7.26.9"
1827
1828
+"@babel/template@^7.27.0":
1829
+ version "7.27.0"
1830
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.27.0.tgz#b253e5406cc1df1c57dcd18f11760c2dbf40c0b4"
1831
+ integrity sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==
1832
+ dependencies:
1833
+ "@babel/code-frame" "^7.26.2"
1834
+ "@babel/parser" "^7.27.0"
1835
+ "@babel/types" "^7.27.0"
1836
+
1837
"@babel/template@^7.3.3":
1838
version "7.18.6"
1839
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.6.tgz#1283f4993e00b929d6e2d3c72fdc9168a2977a31"
@@ -1690,6 +1871,19 @@
1871
debug "^4.3.1"
1872
globals "^11.1.0"
1873
1874
+"@babel/traverse@^7.26.10":
1875
+ version "7.27.0"
1876
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.27.0.tgz#11d7e644779e166c0442f9a07274d02cd91d4a70"
1877
+ integrity sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==
1878
+ dependencies:
1879
+ "@babel/code-frame" "^7.26.2"
1880
+ "@babel/generator" "^7.27.0"
1881
+ "@babel/parser" "^7.27.0"
1882
+ "@babel/template" "^7.27.0"
1883
+ "@babel/types" "^7.27.0"
1884
+ debug "^4.3.1"
1885
+ globals "^11.1.0"
1886
+
1887
"@babel/traverse@^7.26.5", "@babel/traverse@^7.26.9":
1888
version "7.26.10"
1889
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.26.10.tgz#43cca33d76005dbaa93024fae536cc1946a4c380"
@@ -2715,6 +2909,27 @@
2909
"@jridgewell/resolve-uri" "^3.1.0"
2910
"@jridgewell/sourcemap-codec" "^1.4.14"
2911
2912
+"@mixmark-io/domino@^2.2.0":
2913
+ version "2.2.0"
2914
+ resolved "https://registry.yarnpkg.com/@mixmark-io/domino/-/domino-2.2.0.tgz#4e8ec69bf1afeb7a14f0628b7e2c0f35bdb336c3"
2915
+ integrity sha512-Y28PR25bHXUg88kCV7nivXrP2Nj2RueZ3/l/jdx6J9f8J4nsEGcgX0Qe6lt7Pa+J79+kPiJU3LguR6O/6zrLOw==
2916
+
2917
+"@modelcontextprotocol/sdk@^1.9.0":
2918
+ version "1.9.0"
2919
+ resolved "https://registry.yarnpkg.com/@modelcontextprotocol/sdk/-/sdk-1.9.0.tgz#1bf7a4843870b81da26983b8e69bf398d87055f1"
2920
+ integrity sha512-Jq2EUCQpe0iyO5FGpzVYDNFR6oR53AIrwph9yWl7uSc7IWUMsrmpmSaTGra5hQNunXpM+9oit85p924jWuHzUA==
2921
+ dependencies:
2922
+ content-type "^1.0.5"
2923
+ cors "^2.8.5"
2924
+ cross-spawn "^7.0.3"
2925
+ eventsource "^3.0.2"
2926
+ express "^5.0.1"
2927
+ express-rate-limit "^7.5.0"
2928
+ pkce-challenge "^5.0.0"
2929
+ raw-body "^3.0.0"
2930
+ zod "^3.23.8"
2931
+ zod-to-json-schema "^3.24.1"
2932
+
2933
"@nodelib/fs.scandir@2.1.5":
2934
version "2.1.5"
2935
resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
@@ -3182,6 +3397,11 @@
3397
resolved "https://registry.yarnpkg.com/@types/triple-beam/-/triple-beam-1.3.5.tgz#74fef9ffbaa198eb8b588be029f38b00299caa2c"
3398
integrity sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==
3399
3400
+"@types/turndown@^5.0.5":
3401
+ version "5.0.5"
3402
+ resolved "https://registry.yarnpkg.com/@types/turndown/-/turndown-5.0.5.tgz#614de24fc9ace4d8c0d9483ba81dc8c1976dd26f"
3403
+ integrity sha512-TL2IgGgc7B5j78rIccBtlYAnkuv8nUQqhQc+DSYV5j9Be9XOcm/SKOVRuA47xAVI3680Tk9B1d8flK2GWT2+4w==
3404
+
3405
"@types/vscode@^1.96.0":
3406
version "1.96.0"
3407
resolved "https://registry.yarnpkg.com/@types/vscode/-/vscode-1.96.0.tgz#3181004bf25d71677ae4aacdd7605a3fd7edf08e"
@@ -3490,6 +3710,14 @@ abab@^2.0.6:
3710
resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291"
3711
integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==
3712
3713
+accepts@^2.0.0:
3714
+ version "2.0.0"
3715
+ resolved "https://registry.yarnpkg.com/accepts/-/accepts-2.0.0.tgz#bbcf4ba5075467f3f2131eab3cffc73c2f5d7895"
3716
+ integrity sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==
3717
+ dependencies:
3718
+ mime-types "^3.0.0"
3719
+ negotiator "^1.0.0"
3720
+
3721
acorn-globals@^6.0.0:
3722
version "6.0.0"
3723
resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45"
@@ -3555,6 +3783,25 @@ ajv@^6.12.4:
3783
json-schema-traverse "^0.4.1"
3784
uri-js "^4.2.2"
3785
3786
+algoliasearch@^5.23.3:
3787
+ version "5.23.4"
3788
+ resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-5.23.4.tgz#2f8c6e6f540b0a73effa69cb05310f7843012e2d"
3789
+ integrity sha512-QzAKFHl3fm53s44VHrTdEo0TkpL3XVUYQpnZy1r6/EHvMAyIg+O4hwprzlsNmcCHTNyVcF2S13DAUn7XhkC6qg==
3790
+ dependencies:
3791
+ "@algolia/client-abtesting" "5.23.4"
3792
+ "@algolia/client-analytics" "5.23.4"
3793
+ "@algolia/client-common" "5.23.4"
3794
+ "@algolia/client-insights" "5.23.4"
3795
+ "@algolia/client-personalization" "5.23.4"
3796
+ "@algolia/client-query-suggestions" "5.23.4"
3797
+ "@algolia/client-search" "5.23.4"
3798
+ "@algolia/ingestion" "1.23.4"
3799
+ "@algolia/monitoring" "1.23.4"
3800
+ "@algolia/recommend" "5.23.4"
3801
+ "@algolia/requester-browser-xhr" "5.23.4"
3802
+ "@algolia/requester-fetch" "5.23.4"
3803
+ "@algolia/requester-node-http" "5.23.4"
3804
+
3805
ansi-colors@^4.1.3:
3806
version "4.1.3"
3807
resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b"
@@ -3909,6 +4156,26 @@ bl@^5.0.0:
4156
inherits "^2.0.4"
4157
readable-stream "^3.4.0"
4158
4159
+body-parser@^2.2.0:
4160
+ version "2.2.0"
4161
+ resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-2.2.0.tgz#f7a9656de305249a715b549b7b8fd1ab9dfddcfa"
4162
+ integrity sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg==
4163
+ dependencies:
4164
+ bytes "^3.1.2"
4165
+ content-type "^1.0.5"
4166
+ debug "^4.4.0"
4167
+ http-errors "^2.0.0"
4168
+ iconv-lite "^0.6.3"
4169
+ on-finished "^2.4.1"
4170
+ qs "^6.14.0"
4171
+ raw-body "^3.0.0"
4172
+ type-is "^2.0.0"
4173
+
4174
+boolbase@^1.0.0:
4175
+ version "1.0.0"
4176
+ resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
4177
+ integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==
4178
+
4179
brace-expansion@^1.1.7:
4180
version "1.1.11"
4181
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
@@ -4003,6 +4270,11 @@ bundle-require@^5.1.0:
4270
dependencies:
4271
load-tsconfig "^0.2.3"
4272
4273
+bytes@3.1.2, bytes@^3.1.2:
4274
+ version "3.1.2"
4275
+ resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5"
4276
+ integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==
4277
+
4278
c8@^9.1.0:
4279
version "9.1.0"
4280
resolved "https://registry.yarnpkg.com/c8/-/c8-9.1.0.tgz#0e57ba3ab9e5960ab1d650b4a86f71e53cb68112"
@@ -4025,6 +4297,14 @@ cac@^6.7.14:
4297
resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959"
4298
integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==
4299
4300
+call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2:
4301
+ version "1.0.2"
4302
+ resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6"
4303
+ integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==
4304
+ dependencies:
4305
+ es-errors "^1.3.0"
4306
+ function-bind "^1.1.2"
4307
+
4308
call-bind@^1.0.2:
4309
version "1.0.2"
4310
resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
@@ -4033,6 +4313,14 @@ call-bind@^1.0.2:
4313
function-bind "^1.1.1"
4314
get-intrinsic "^1.0.2"
4315
4316
+call-bound@^1.0.2:
4317
+ version "1.0.4"
4318
+ resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.4.tgz#238de935d2a2a692928c538c7ccfa91067fd062a"
4319
+ integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==
4320
+ dependencies:
4321
+ call-bind-apply-helpers "^1.0.2"
4322
+ get-intrinsic "^1.3.0"
4323
+
4324
callsites@^3.0.0:
4325
version "3.1.0"
4326
resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
@@ -4090,6 +4378,35 @@ char-regex@^1.0.2:
4378
resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf"
4379
integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==
4380
4381
+cheerio-select@^2.1.0:
4382
+ version "2.1.0"
4383
+ resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-2.1.0.tgz#4d8673286b8126ca2a8e42740d5e3c4884ae21b4"
4384
+ integrity sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==
4385
+ dependencies:
4386
+ boolbase "^1.0.0"
4387
+ css-select "^5.1.0"
4388
+ css-what "^6.1.0"
4389
+ domelementtype "^2.3.0"
4390
+ domhandler "^5.0.3"
4391
+ domutils "^3.0.1"
4392
+
4393
+cheerio@^1.0.0:
4394
+ version "1.0.0"
4395
+ resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0.tgz#1ede4895a82f26e8af71009f961a9b8cb60d6a81"
4396
+ integrity sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==
4397
+ dependencies:
4398
+ cheerio-select "^2.1.0"
4399
+ dom-serializer "^2.0.0"
4400
+ domhandler "^5.0.3"
4401
+ domutils "^3.1.0"
4402
+ encoding-sniffer "^0.2.0"
4403
+ htmlparser2 "^9.1.0"
4404
+ parse5 "^7.1.2"
4405
+ parse5-htmlparser2-tree-adapter "^7.0.0"
4406
+ parse5-parser-stream "^7.1.2"
4407
+ undici "^6.19.5"
4408
+ whatwg-mimetype "^4.0.0"
4409
+
4410
chokidar@^3.5.3:
4411
version "3.6.0"
4412
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b"
@@ -4294,6 +4611,18 @@ consola@^3.4.0:
4611
resolved "https://registry.yarnpkg.com/consola/-/consola-3.4.0.tgz#4cfc9348fd85ed16a17940b3032765e31061ab88"
4612
integrity sha512-EiPU8G6dQG0GFHNR8ljnZFki/8a+cQwEQ+7wpxdChl02Q8HXlwEZWD5lqAF8vC2sEC3Tehr8hy7vErz88LHyUA==
4613
4614
+content-disposition@^1.0.0:
4615
+ version "1.0.0"
4616
+ resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-1.0.0.tgz#844426cb398f934caefcbb172200126bc7ceace2"
4617
+ integrity sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==
4618
+ dependencies:
4619
+ safe-buffer "5.2.1"
4620
+
4621
+content-type@^1.0.5:
4622
+ version "1.0.5"
4623
+ resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918"
4624
+ integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==
4625
+
4626
convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.6.0:
4627
version "1.8.0"
4628
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369"
@@ -4306,6 +4635,16 @@ convert-source-map@^2.0.0:
4635
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a"
4636
integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==
4637
4638
+cookie-signature@^1.2.1:
4639
+ version "1.2.2"
4640
+ resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.2.2.tgz#57c7fc3cc293acab9fec54d73e15690ebe4a1793"
4641
+ integrity sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==
4642
+
4643
+cookie@^0.7.1:
4644
+ version "0.7.2"
4645
+ resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.2.tgz#556369c472a2ba910f2979891b526b3436237ed7"
4646
+ integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==
4647
+
4648
core-js-compat@^3.30.1, core-js-compat@^3.30.2:
4649
version "3.30.2"
4650
resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.30.2.tgz#83f136e375babdb8c80ad3c22d67c69098c1dd8b"
@@ -4318,6 +4657,14 @@ core-util-is@~1.0.0:
4657
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
4658
integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
4659
4660
+cors@^2.8.5:
4661
+ version "2.8.5"
4662
+ resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29"
4663
+ integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==
4664
+ dependencies:
4665
+ object-assign "^4"
4666
+ vary "^1"
4667
+
4668
create-require@^1.1.0:
4669
version "1.1.1"
4670
resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"
@@ -4341,6 +4688,22 @@ cross-spawn@^7.0.6:
4688
shebang-command "^2.0.0"
4689
which "^2.0.1"
4690
4691
+css-select@^5.1.0:
4692
+ version "5.1.0"
4693
+ resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6"
4694
+ integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==
4695
+ dependencies:
4696
+ boolbase "^1.0.0"
4697
+ css-what "^6.1.0"
4698
+ domhandler "^5.0.2"
4699
+ domutils "^3.0.1"
4700
+ nth-check "^2.0.1"
4701
+
4702
+css-what@^6.1.0:
4703
+ version "6.1.0"
4704
+ resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4"
4705
+ integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==
4706
+
4707
cssom@^0.5.0:
4708
version "0.5.0"
4709
resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.5.0.tgz#d254fa92cd8b6fbd83811b9fbaed34663cc17c36"
@@ -4464,6 +4827,11 @@ delayed-stream@~1.0.0:
4827
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
4828
integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
4829
4830
+depd@2.0.0, depd@^2.0.0:
4831
+ version "2.0.0"
4832
+ resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
4833
+ integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
4834
+
4835
detect-file@^1.0.0:
4836
version "1.0.0"
4837
resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7"
@@ -4525,6 +4893,20 @@ dom-accessibility-api@^0.5.9:
4893
resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.14.tgz#56082f71b1dc7aac69d83c4285eef39c15d93f56"
4894
integrity sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg==
4895
4896
+dom-serializer@^2.0.0:
4897
+ version "2.0.0"
4898
+ resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53"
4899
+ integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==
4900
+ dependencies:
4901
+ domelementtype "^2.3.0"
4902
+ domhandler "^5.0.2"
4903
+ entities "^4.2.0"
4904
+
4905
+domelementtype@^2.3.0:
4906
+ version "2.3.0"
4907
+ resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d"
4908
+ integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==
4909
+
4910
domexception@^4.0.0:
4911
version "4.0.0"
4912
resolved "https://registry.yarnpkg.com/domexception/-/domexception-4.0.0.tgz#4ad1be56ccadc86fc76d033353999a8037d03673"
@@ -4532,6 +4914,22 @@ domexception@^4.0.0:
4914
dependencies:
4915
webidl-conversions "^7.0.0"
4916
4917
+domhandler@^5.0.2, domhandler@^5.0.3:
4918
+ version "5.0.3"
4919
+ resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31"
4920
+ integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==
4921
+ dependencies:
4922
+ domelementtype "^2.3.0"
4923
+
4924
+domutils@^3.0.1, domutils@^3.1.0:
4925
+ version "3.2.2"
4926
+ resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.2.2.tgz#edbfe2b668b0c1d97c24baf0f1062b132221bc78"
4927
+ integrity sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==
4928
+ dependencies:
4929
+ dom-serializer "^2.0.0"
4930
+ domelementtype "^2.3.0"
4931
+ domhandler "^5.0.3"
4932
+
4933
dreamopt@~0.6.0:
4934
version "0.6.0"
4935
resolved "https://registry.yarnpkg.com/dreamopt/-/dreamopt-0.6.0.tgz#d813ccdac8d39d8ad526775514a13dda664d6b4b"
@@ -4539,11 +4937,25 @@ dreamopt@~0.6.0:
4937
dependencies:
4938
wordwrap ">=0.0.2"
4939
4940
+dunder-proto@^1.0.1:
4941
+ version "1.0.1"
4942
+ resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a"
4943
+ integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==
4944
+ dependencies:
4945
+ call-bind-apply-helpers "^1.0.1"
4946
+ es-errors "^1.3.0"
4947
+ gopd "^1.2.0"
4948
+
4949
eastasianwidth@^0.2.0:
4950
version "0.2.0"
4951
resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb"
4952
integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
4953
4954
+ee-first@1.1.1:
4955
+ version "1.1.1"
4956
+ resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
4957
+ integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==
4958
+
4959
electron-to-chromium@^1.4.411:
4960
version "1.4.418"
4961
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.418.tgz#9092aca12db25acf02a2ddf9de59f0e4363c9928"
@@ -4584,6 +4996,19 @@ enabled@2.0.x:
4996
resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2"
4997
integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==
4998
4999
+encodeurl@^2.0.0:
5000
+ version "2.0.0"
5001
+ resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58"
5002
+ integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==
5003
+
5004
+encoding-sniffer@^0.2.0:
5005
+ version "0.2.0"
5006
+ resolved "https://registry.yarnpkg.com/encoding-sniffer/-/encoding-sniffer-0.2.0.tgz#799569d66d443babe82af18c9f403498365ef1d5"
5007
+ integrity sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==
5008
+ dependencies:
5009
+ iconv-lite "^0.6.3"
5010
+ whatwg-encoding "^3.1.1"
5011
+
5012
enhanced-resolve@^5.15.0:
5013
version "5.18.0"
5014
resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.18.0.tgz#91eb1db193896b9801251eeff1c6980278b1e404"
@@ -4592,6 +5017,11 @@ enhanced-resolve@^5.15.0:
5017
graceful-fs "^4.2.4"
5018
tapable "^2.2.0"
5019
5020
+entities@^4.2.0, entities@^4.5.0:
5021
+ version "4.5.0"
5022
+ resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48"
5023
+ integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==
5024
+
5025
entities@^4.4.0:
5026
version "4.4.0"
5027
resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174"
@@ -4604,6 +5034,23 @@ error-ex@^1.3.1:
5034
dependencies:
5035
is-arrayish "^0.2.1"
5036
5037
+es-define-property@^1.0.1:
5038
+ version "1.0.1"
5039
+ resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa"
5040
+ integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==
5041
+
5042
+es-errors@^1.3.0:
5043
+ version "1.3.0"
5044
+ resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f"
5045
+ integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
5046
+
5047
+es-object-atoms@^1.0.0, es-object-atoms@^1.1.1:
5048
+ version "1.1.1"
5049
+ resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1"
5050
+ integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==
5051
+ dependencies:
5052
+ es-errors "^1.3.0"
5053
+
5054
es5-ext@0.8.x:
5055
version "0.8.2"
5056
resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.8.2.tgz#aba8d9e1943a895ac96837a62a39b3f55ecd94ab"
@@ -4650,6 +5097,11 @@ escalade@^3.2.0:
5097
resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5"
5098
integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==
5099
5100
+escape-html@^1.0.3:
5101
+ version "1.0.3"
5102
+ resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
5103
+ integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==
5104
+
5105
escape-string-regexp@^1.0.5:
5106
version "1.0.5"
5107
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
@@ -4895,6 +5347,23 @@ esutils@^2.0.2:
5347
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
5348
integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
5349
5350
+etag@^1.8.1:
5351
+ version "1.8.1"
5352
+ resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
5353
+ integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==
5354
+
5355
+eventsource-parser@^3.0.1:
5356
+ version "3.0.1"
5357
+ resolved "https://registry.yarnpkg.com/eventsource-parser/-/eventsource-parser-3.0.1.tgz#5e358dba9a55ba64ca90da883c4ca35bd82467bd"
5358
+ integrity sha512-VARTJ9CYeuQYb0pZEPbzi740OWFgpHe7AYJ2WFZVnUDUQp5Dk2yJUgF36YsZ81cOyxT0QxmXD2EQpapAouzWVA==
5359
+
5360
+eventsource@^3.0.2:
5361
+ version "3.0.6"
5362
+ resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-3.0.6.tgz#5c4b24cd70c0323eed2651a5ee07bd4bc391e656"
5363
+ integrity sha512-l19WpE2m9hSuyP06+FbuUUf1G+R0SFLrtQfbRb9PRr+oimOfxQhgGCbVaXg5IvZyyTThJsxh6L/srkMiCeBPDA==
5364
+ dependencies:
5365
+ eventsource-parser "^3.0.1"
5366
+
5367
execa@^5.0.0:
5368
version "5.1.1"
5369
resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
@@ -4955,6 +5424,44 @@ expect@^29.5.0:
5424
jest-message-util "^29.5.0"
5425
jest-util "^29.5.0"
5426
5427
+express-rate-limit@^7.5.0:
5428
+ version "7.5.0"
5429
+ resolved "https://registry.yarnpkg.com/express-rate-limit/-/express-rate-limit-7.5.0.tgz#6a67990a724b4fbbc69119419feef50c51e8b28f"
5430
+ integrity sha512-eB5zbQh5h+VenMPM3fh+nw1YExi5nMr6HUCR62ELSP11huvxm/Uir1H1QEyTkk5QX6A58pX6NmaTMceKZ0Eodg==
5431
+
5432
+express@^5.0.1:
5433
+ version "5.1.0"
5434
+ resolved "https://registry.yarnpkg.com/express/-/express-5.1.0.tgz#d31beaf715a0016f0d53f47d3b4d7acf28c75cc9"
5435
+ integrity sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==
5436
+ dependencies:
5437
+ accepts "^2.0.0"
5438
+ body-parser "^2.2.0"
5439
+ content-disposition "^1.0.0"
5440
+ content-type "^1.0.5"
5441
+ cookie "^0.7.1"
5442
+ cookie-signature "^1.2.1"
5443
+ debug "^4.4.0"
5444
+ encodeurl "^2.0.0"
5445
+ escape-html "^1.0.3"
5446
+ etag "^1.8.1"
5447
+ finalhandler "^2.1.0"
5448
+ fresh "^2.0.0"
5449
+ http-errors "^2.0.0"
5450
+ merge-descriptors "^2.0.0"
5451
+ mime-types "^3.0.0"
5452
+ on-finished "^2.4.1"
5453
+ once "^1.4.0"
5454
+ parseurl "^1.3.3"
5455
+ proxy-addr "^2.0.7"
5456
+ qs "^6.14.0"
5457
+ range-parser "^1.2.1"
5458
+ router "^2.2.0"
5459
+ send "^1.1.0"
5460
+ serve-static "^2.2.0"
5461
+ statuses "^2.0.1"
5462
+ type-is "^2.0.1"
5463
+ vary "^1.1.2"
5464
+
5465
fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
5466
version "3.1.3"
5467
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
@@ -5062,6 +5569,18 @@ fill-range@^7.1.1:
5569
dependencies:
5570
to-regex-range "^5.0.1"
5571
5572
+finalhandler@^2.1.0:
5573
+ version "2.1.0"
5574
+ resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-2.1.0.tgz#72306373aa89d05a8242ed569ed86a1bff7c561f"
5575
+ integrity sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==
5576
+ dependencies:
5577
+ debug "^4.4.0"
5578
+ encodeurl "^2.0.0"
5579
+ escape-html "^1.0.3"
5580
+ on-finished "^2.4.1"
5581
+ parseurl "^1.3.3"
5582
+ statuses "^2.0.1"
5583
+
5584
find-cache-dir@^2.0.0:
5585
version "2.1.0"
5586
resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7"
@@ -5191,6 +5710,16 @@ form-data@^4.0.0:
5710
combined-stream "^1.0.8"
5711
mime-types "^2.1.12"
5712
5713
+forwarded@0.2.0:
5714
+ version "0.2.0"
5715
+ resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"
5716
+ integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==
5717
+
5718
+fresh@^2.0.0:
5719
+ version "2.0.0"
5720
+ resolved "https://registry.yarnpkg.com/fresh/-/fresh-2.0.0.tgz#8dd7df6a1b3a1b3a5cf186c05a5dd267622635a4"
5721
+ integrity sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==
5722
+
5723
fs-extra@^4.0.2:
5724
version "4.0.3"
5725
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94"
@@ -5220,6 +5749,11 @@ function-bind@^1.1.1:
5749
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
5750
integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
5751
5752
+function-bind@^1.1.2:
5753
+ version "1.1.2"
5754
+ resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
5755
+ integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
5756
+
5757
gensync@^1.0.0-beta.2:
5758
version "1.0.0-beta.2"
5759
resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
@@ -5239,11 +5773,35 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.1:
5773
has "^1.0.3"
5774
has-symbols "^1.0.3"
5775
5776
+get-intrinsic@^1.2.5, get-intrinsic@^1.3.0:
5777
+ version "1.3.0"
5778
+ resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01"
5779
+ integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==
5780
+ dependencies:
5781
+ call-bind-apply-helpers "^1.0.2"
5782
+ es-define-property "^1.0.1"
5783
+ es-errors "^1.3.0"
5784
+ es-object-atoms "^1.1.1"
5785
+ function-bind "^1.1.2"
5786
+ get-proto "^1.0.1"
5787
+ gopd "^1.2.0"
5788
+ has-symbols "^1.1.0"
5789
+ hasown "^2.0.2"
5790
+ math-intrinsics "^1.1.0"
5791
+
5792
get-package-type@^0.1.0:
5793
version "0.1.0"
5794
resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a"
5795
integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==
5796
5797
+get-proto@^1.0.1:
5798
+ version "1.0.1"
5799
+ resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1"
5800
+ integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==
5801
+ dependencies:
5802
+ dunder-proto "^1.0.1"
5803
+ es-object-atoms "^1.0.0"
5804
+
5805
get-stream@^6.0.0:
5806
version "6.0.1"
5807
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
@@ -5370,6 +5928,11 @@ globby@^11.1.0:
5928
merge2 "^1.4.1"
5929
slash "^3.0.0"
5930
5931
+gopd@^1.2.0:
5932
+ version "1.2.0"
5933
+ resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1"
5934
+ integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==
5935
+
5936
graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.4:
5937
version "4.2.11"
5938
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
@@ -5407,6 +5970,11 @@ has-symbols@^1.0.3:
5970
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
5971
integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
5972
5973
+has-symbols@^1.1.0:
5974
+ version "1.1.0"
5975
+ resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338"
5976
+ integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==
5977
+
5978
has@^1.0.3:
5979
version "1.0.3"
5980
resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
@@ -5414,6 +5982,13 @@ has@^1.0.3:
5982
dependencies:
5983
function-bind "^1.1.1"
5984
5985
+hasown@^2.0.2:
5986
+ version "2.0.2"
5987
+ resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003"
5988
+ integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==
5989
+ dependencies:
5990
+ function-bind "^1.1.2"
5991
+
5992
he@^1.2.0:
5993
version "1.2.0"
5994
resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
@@ -5476,6 +6051,27 @@ html-escaper@^2.0.0:
6051
resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
6052
integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
6053
6054
+htmlparser2@^9.1.0:
6055
+ version "9.1.0"
6056
+ resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-9.1.0.tgz#cdb498d8a75a51f739b61d3f718136c369bc8c23"
6057
+ integrity sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==
6058
+ dependencies:
6059
+ domelementtype "^2.3.0"
6060
+ domhandler "^5.0.3"
6061
+ domutils "^3.1.0"
6062
+ entities "^4.5.0"
6063
+
6064
+http-errors@2.0.0, http-errors@^2.0.0:
6065
+ version "2.0.0"
6066
+ resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3"
6067
+ integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==
6068
+ dependencies:
6069
+ depd "2.0.0"
6070
+ inherits "2.0.4"
6071
+ setprototypeof "1.2.0"
6072
+ statuses "2.0.1"
6073
+ toidentifier "1.0.1"
6074
+
6075
http-proxy-agent@^5.0.0:
6076
version "5.0.0"
6077
resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43"
@@ -5514,7 +6110,7 @@ human-signals@^2.1.0:
6110
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
6111
integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
6112
5517
-iconv-lite@0.6.3:
6113
+iconv-lite@0.6.3, iconv-lite@^0.6.3:
6114
version "0.6.3"
6115
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501"
6116
integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
@@ -5575,7 +6171,7 @@ inflight@^1.0.4:
6171
once "^1.3.0"
6172
wrappy "1"
6173
5578
-inherits@2, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3:
6174
+inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3:
6175
version "2.0.4"
6176
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
6177
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
@@ -5592,6 +6188,11 @@ invariant@^2.2.4:
6188
dependencies:
6189
loose-envify "^1.0.0"
6190
6191
+ipaddr.js@1.9.1:
6192
+ version "1.9.1"
6193
+ resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
6194
+ integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
6195
+
6196
is-arrayish@^0.2.1:
6197
version "0.2.1"
6198
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
@@ -5682,6 +6283,11 @@ is-potential-custom-element-name@^1.0.1:
6283
resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5"
6284
integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==
6285
6286
+is-promise@^4.0.0:
6287
+ version "4.0.0"
6288
+ resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-4.0.0.tgz#42ff9f84206c1991d26debf520dd5c01042dd2f3"
6289
+ integrity sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==
6290
+
6291
is-stream@^2.0.0:
6292
version "2.0.1"
6293
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
@@ -7279,6 +7885,21 @@ makeerror@1.0.12:
7885
dependencies:
7886
tmpl "1.0.5"
7887
7888
+math-intrinsics@^1.1.0:
7889
+ version "1.1.0"
7890
+ resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9"
7891
+ integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==
7892
+
7893
+media-typer@^1.1.0:
7894
+ version "1.1.0"
7895
+ resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-1.1.0.tgz#6ab74b8f2d3320f2064b2a87a38e7931ff3a5561"
7896
+ integrity sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==
7897
+
7898
+merge-descriptors@^2.0.0:
7899
+ version "2.0.0"
7900
+ resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-2.0.0.tgz#ea922f660635a2249ee565e0449f951e6b603808"
7901
+ integrity sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==
7902
+
7903
merge-stream@^2.0.0:
7904
version "2.0.0"
7905
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
@@ -7307,6 +7928,11 @@ mime-db@1.52.0:
7928
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
7929
integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
7930
7931
+mime-db@^1.54.0:
7932
+ version "1.54.0"
7933
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.54.0.tgz#cddb3ee4f9c64530dff640236661d42cb6a314f5"
7934
+ integrity sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==
7935
+
7936
mime-types@^2.1.12:
7937
version "2.1.35"
7938
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
@@ -7314,6 +7940,13 @@ mime-types@^2.1.12:
7940
dependencies:
7941
mime-db "1.52.0"
7942
7943
+mime-types@^3.0.0, mime-types@^3.0.1:
7944
+ version "3.0.1"
7945
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-3.0.1.tgz#b1d94d6997a9b32fd69ebaed0db73de8acb519ce"
7946
+ integrity sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==
7947
+ dependencies:
7948
+ mime-db "^1.54.0"
7949
+
7950
mimic-fn@^2.1.0:
7951
version "2.1.0"
7952
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
@@ -7467,6 +8100,11 @@ natural-compare@^1.4.0:
8100
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
8101
integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
8102
8103
+negotiator@^1.0.0:
8104
+ version "1.0.0"
8105
+ resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-1.0.0.tgz#b6c91bb47172d69f93cfd7c357bbb529019b5f6a"
8106
+ integrity sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==
8107
+
8108
node-addon-api@^3.2.1:
8109
version "3.2.1"
8110
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161"
@@ -7543,6 +8181,13 @@ npm-which@^3.0.1:
8181
npm-path "^2.0.2"
8182
which "^1.2.10"
8183
8184
+nth-check@^2.0.1:
8185
+ version "2.1.1"
8186
+ resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d"
8187
+ integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==
8188
+ dependencies:
8189
+ boolbase "^1.0.0"
8190
+
8191
nullthrows@^1.1.1:
8192
version "1.1.1"
8193
resolved "https://registry.yarnpkg.com/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1"
@@ -7558,11 +8203,16 @@ nwsapi@^2.2.4:
8203
resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.7.tgz#738e0707d3128cb750dddcfe90e4610482df0f30"
8204
integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==
8205
7561
-object-assign@^4.0.1, object-assign@^4.1.1:
8206
+object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.1:
8207
version "4.1.1"
8208
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
8209
integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
8210
8211
+object-inspect@^1.13.3:
8212
+ version "1.13.4"
8213
+ resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.4.tgz#8375265e21bc20d0fa582c22e1b13485d6e00213"
8214
+ integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==
8215
+
8216
object-keys@^1.1.1:
8217
version "1.1.1"
8218
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
@@ -7578,7 +8228,14 @@ object.assign@^4.1.0:
8228
has-symbols "^1.0.3"
8229
object-keys "^1.1.1"
8230
7581
-once@^1.3.0:
8231
+on-finished@^2.4.1:
8232
+ version "2.4.1"
8233
+ resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f"
8234
+ integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==
8235
+ dependencies:
8236
+ ee-first "1.1.1"
8237
+
8238
+once@^1.3.0, once@^1.4.0:
8239
version "1.4.0"
8240
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
8241
integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
@@ -7725,6 +8382,21 @@ parse-passwd@^1.0.0:
8382
resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
8383
integrity sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==
8384
8385
+parse5-htmlparser2-tree-adapter@^7.0.0:
8386
+ version "7.1.0"
8387
+ resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz#b5a806548ed893a43e24ccb42fbb78069311e81b"
8388
+ integrity sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==
8389
+ dependencies:
8390
+ domhandler "^5.0.3"
8391
+ parse5 "^7.0.0"
8392
+
8393
+parse5-parser-stream@^7.1.2:
8394
+ version "7.1.2"
8395
+ resolved "https://registry.yarnpkg.com/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz#d7c20eadc37968d272e2c02660fff92dd27e60e1"
8396
+ integrity sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==
8397
+ dependencies:
8398
+ parse5 "^7.0.0"
8399
+
8400
parse5@^7.0.0:
8401
version "7.1.1"
8402
resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.1.tgz#4649f940ccfb95d8754f37f73078ea20afe0c746"
@@ -7739,6 +8411,11 @@ parse5@^7.1.2:
8411
dependencies:
8412
entities "^4.4.0"
8413
8414
+parseurl@^1.3.3:
8415
+ version "1.3.3"
8416
+ resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
8417
+ integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
8418
+
8419
path-exists@^3.0.0:
8420
version "3.0.0"
8421
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
@@ -7788,6 +8465,11 @@ path-scurry@^2.0.0:
8465
lru-cache "^11.0.0"
8466
minipass "^7.1.2"
8467
8468
+path-to-regexp@^8.0.0:
8469
+ version "8.2.0"
8470
+ resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-8.2.0.tgz#73990cc29e57a3ff2a0d914095156df5db79e8b4"
8471
+ integrity sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==
8472
+
8473
path-type@^4.0.0:
8474
version "4.0.0"
8475
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
@@ -7828,6 +8510,11 @@ pirates@^4.0.4, pirates@^4.0.5:
8510
resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b"
8511
integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==
8512
8513
+pkce-challenge@^5.0.0:
8514
+ version "5.0.0"
8515
+ resolved "https://registry.yarnpkg.com/pkce-challenge/-/pkce-challenge-5.0.0.tgz#c3a405cb49e272094a38e890a2b51da0228c4d97"
8516
+ integrity sha512-ueGLflrrnvwB3xuo/uGob5pd5FN7l0MsLf0Z87o/UQmRtwjvfylfc9MurIxRAWywCYTgrvpXBcqjV4OfCYGCIQ==
8517
+
8518
pkg-dir@^3.0.0:
8519
version "3.0.0"
8520
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3"
@@ -7946,6 +8633,14 @@ protochain@^1.0.5:
8633
resolved "https://registry.yarnpkg.com/protochain/-/protochain-1.0.5.tgz#991c407e99de264aadf8f81504b5e7faf7bfa260"
8634
integrity sha512-4hDwFSX50C4NE6f/6zg8EPr/WLPTkFPUtG0ulWZu6bwzV2hmb50fpdQLr0HiKBAUehapaFpItzWoCLjraLJhUA==
8635
8636
+proxy-addr@^2.0.7:
8637
+ version "2.0.7"
8638
+ resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025"
8639
+ integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==
8640
+ dependencies:
8641
+ forwarded "0.2.0"
8642
+ ipaddr.js "1.9.1"
8643
+
8644
proxy-from-env@^1.1.0:
8645
version "1.1.0"
8646
resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
@@ -7971,6 +8666,13 @@ pure-rand@^6.0.0:
8666
resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.2.tgz#a9c2ddcae9b68d736a8163036f088a2781c8b306"
8667
integrity sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ==
8668
8669
+qs@^6.14.0:
8670
+ version "6.14.0"
8671
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.14.0.tgz#c63fa40680d2c5c941412a0e899c89af60c0a930"
8672
+ integrity sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==
8673
+ dependencies:
8674
+ side-channel "^1.1.0"
8675
+
8676
querystringify@^2.1.1:
8677
version "2.2.0"
8678
resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6"
@@ -7988,6 +8690,21 @@ randombytes@^2.1.0:
8690
dependencies:
8691
safe-buffer "^5.1.0"
8692
8693
+range-parser@^1.2.1:
8694
+ version "1.2.1"
8695
+ resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
8696
+ integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
8697
+
8698
+raw-body@^3.0.0:
8699
+ version "3.0.0"
8700
+ resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-3.0.0.tgz#25b3476f07a51600619dae3fe82ddc28a36e5e0f"
8701
+ integrity sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==
8702
+ dependencies:
8703
+ bytes "3.1.2"
8704
+ http-errors "2.0.0"
8705
+ iconv-lite "0.6.3"
8706
+ unpipe "1.0.0"
8707
+
8708
react-dom@0.0.0-experimental-4beb1fd8-20241118:
8709
version "0.0.0-experimental-4beb1fd8-20241118"
8710
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-0.0.0-experimental-4beb1fd8-20241118.tgz#bf51483d52faea0618abef7d7eab681eea328ac7"
@@ -8239,6 +8956,17 @@ rollup@^4.34.8:
8956
"@rollup/rollup-win32-x64-msvc" "4.34.9"
8957
fsevents "~2.3.2"
8958
8959
+router@^2.2.0:
8960
+ version "2.2.0"
8961
+ resolved "https://registry.yarnpkg.com/router/-/router-2.2.0.tgz#019be620b711c87641167cc79b99090f00b146ef"
8962
+ integrity sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==
8963
+ dependencies:
8964
+ debug "^4.4.0"
8965
+ depd "^2.0.0"
8966
+ is-promise "^4.0.0"
8967
+ parseurl "^1.3.3"
8968
+ path-to-regexp "^8.0.0"
8969
+
8970
rrweb-cssom@^0.6.0:
8971
version "0.6.0"
8972
resolved "https://registry.yarnpkg.com/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz#ed298055b97cbddcdeb278f904857629dec5e0e1"
@@ -8258,7 +8986,7 @@ rxjs@^7.0.0, rxjs@^7.8.1:
8986
dependencies:
8987
tslib "^2.1.0"
8988
8261
-safe-buffer@^5.1.0, safe-buffer@~5.2.0:
8989
+safe-buffer@5.2.1, safe-buffer@^5.1.0, safe-buffer@~5.2.0:
8990
version "5.2.1"
8991
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
8992
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
@@ -8324,6 +9052,23 @@ semver@^7.6.0, semver@^7.6.2:
9052
resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143"
9053
integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==
9054
9055
+send@^1.1.0, send@^1.2.0:
9056
+ version "1.2.0"
9057
+ resolved "https://registry.yarnpkg.com/send/-/send-1.2.0.tgz#32a7554fb777b831dfa828370f773a3808d37212"
9058
+ integrity sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==
9059
+ dependencies:
9060
+ debug "^4.3.5"
9061
+ encodeurl "^2.0.0"
9062
+ escape-html "^1.0.3"
9063
+ etag "^1.8.1"
9064
+ fresh "^2.0.0"
9065
+ http-errors "^2.0.0"
9066
+ mime-types "^3.0.1"
9067
+ ms "^2.1.3"
9068
+ on-finished "^2.4.1"
9069
+ range-parser "^1.2.1"
9070
+ statuses "^2.0.1"
9071
+
9072
serialize-javascript@^6.0.2:
9073
version "6.0.2"
9074
resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2"
@@ -8338,6 +9083,16 @@ serializerr@^1.0.3:
9083
dependencies:
9084
protochain "^1.0.5"
9085
9086
+serve-static@^2.2.0:
9087
+ version "2.2.0"
9088
+ resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-2.2.0.tgz#9c02564ee259bdd2251b82d659a2e7e1938d66f9"
9089
+ integrity sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==
9090
+ dependencies:
9091
+ encodeurl "^2.0.0"
9092
+ escape-html "^1.0.3"
9093
+ parseurl "^1.3.3"
9094
+ send "^1.2.0"
9095
+
9096
set-blocking@^2.0.0:
9097
version "2.0.0"
9098
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
@@ -8348,6 +9103,11 @@ setimmediate@^1.0.5:
9103
resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
9104
integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==
9105
9106
+setprototypeof@1.2.0:
9107
+ version "1.2.0"
9108
+ resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424"
9109
+ integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
9110
+
9111
shallow-clone@^3.0.0:
9112
version "3.0.1"
9113
resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3"
@@ -8372,6 +9132,46 @@ shell-quote@^1.7.3:
9132
resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680"
9133
integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==
9134
9135
+side-channel-list@^1.0.0:
9136
+ version "1.0.0"
9137
+ resolved "https://registry.yarnpkg.com/side-channel-list/-/side-channel-list-1.0.0.tgz#10cb5984263115d3b7a0e336591e290a830af8ad"
9138
+ integrity sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==
9139
+ dependencies:
9140
+ es-errors "^1.3.0"
9141
+ object-inspect "^1.13.3"
9142
+
9143
+side-channel-map@^1.0.1:
9144
+ version "1.0.1"
9145
+ resolved "https://registry.yarnpkg.com/side-channel-map/-/side-channel-map-1.0.1.tgz#d6bb6b37902c6fef5174e5f533fab4c732a26f42"
9146
+ integrity sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==
9147
+ dependencies:
9148
+ call-bound "^1.0.2"
9149
+ es-errors "^1.3.0"
9150
+ get-intrinsic "^1.2.5"
9151
+ object-inspect "^1.13.3"
9152
+
9153
+side-channel-weakmap@^1.0.2:
9154
+ version "1.0.2"
9155
+ resolved "https://registry.yarnpkg.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz#11dda19d5368e40ce9ec2bdc1fb0ecbc0790ecea"
9156
+ integrity sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==
9157
+ dependencies:
9158
+ call-bound "^1.0.2"
9159
+ es-errors "^1.3.0"
9160
+ get-intrinsic "^1.2.5"
9161
+ object-inspect "^1.13.3"
9162
+ side-channel-map "^1.0.1"
9163
+
9164
+side-channel@^1.1.0:
9165
+ version "1.1.0"
9166
+ resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.0.tgz#c3fcff9c4da932784873335ec9765fa94ff66bc9"
9167
+ integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==
9168
+ dependencies:
9169
+ es-errors "^1.3.0"
9170
+ object-inspect "^1.13.3"
9171
+ side-channel-list "^1.0.0"
9172
+ side-channel-map "^1.0.1"
9173
+ side-channel-weakmap "^1.0.2"
9174
+
9175
signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7:
9176
version "3.0.7"
9177
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
@@ -8454,6 +9254,11 @@ stack-utils@^2.0.3:
9254
dependencies:
9255
escape-string-regexp "^2.0.0"
9256
9257
+statuses@2.0.1, statuses@^2.0.1:
9258
+ version "2.0.1"
9259
+ resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63"
9260
+ integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==
9261
+
9262
stdin-discarder@^0.1.0:
9263
version "0.1.0"
9264
resolved "https://registry.yarnpkg.com/stdin-discarder/-/stdin-discarder-0.1.0.tgz#22b3e400393a8e28ebf53f9958f3880622efde21"
@@ -8693,6 +9498,11 @@ to-regex-range@^5.0.1:
9498
dependencies:
9499
is-number "^7.0.0"
9500
9501
+toidentifier@1.0.1:
9502
+ version "1.0.1"
9503
+ resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35"
9504
+ integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==
9505
+
9506
tough-cookie@^4.0.0, tough-cookie@^4.1.2:
9507
version "4.1.4"
9508
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.4.tgz#945f1461b45b5a8c76821c33ea49c3ac192c1b36"
@@ -8828,6 +9638,13 @@ tsup@^8.4.0:
9638
tinyglobby "^0.2.11"
9639
tree-kill "^1.2.2"
9640
9641
+turndown@^7.2.0:
9642
+ version "7.2.0"
9643
+ resolved "https://registry.yarnpkg.com/turndown/-/turndown-7.2.0.tgz#67d614fe8371fb511079a93345abfd156c0ffcf4"
9644
+ integrity sha512-eCZGBN4nNNqM9Owkv9HAtWRYfLA4h909E/WGAWWBpmB275ehNhZyk87/Tpvjbp0jjNl9XwCsbe6bm6CqFsgD+A==
9645
+ dependencies:
9646
+ "@mixmark-io/domino" "^2.2.0"
9647
+
9648
type-check@^0.4.0, type-check@~0.4.0:
9649
version "0.4.0"
9650
resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
@@ -8857,6 +9674,15 @@ type-fest@^0.21.3:
9674
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37"
9675
integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==
9676
9677
+type-is@^2.0.0, type-is@^2.0.1:
9678
+ version "2.0.1"
9679
+ resolved "https://registry.yarnpkg.com/type-is/-/type-is-2.0.1.tgz#64f6cf03f92fce4015c2b224793f6bdd4b068c97"
9680
+ integrity sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==
9681
+ dependencies:
9682
+ content-type "^1.0.5"
9683
+ media-typer "^1.1.0"
9684
+ mime-types "^3.0.0"
9685
+
9686
typescript-eslint@^8.16.0:
9687
version "8.18.1"
9688
resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.18.1.tgz#197b284b6769678ed77d9868df180eeaf61108eb"
@@ -8876,6 +9702,11 @@ undici-types@~6.19.2:
9702
resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02"
9703
integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==
9704
9705
+undici@^6.19.5:
9706
+ version "6.21.2"
9707
+ resolved "https://registry.yarnpkg.com/undici/-/undici-6.21.2.tgz#49c5884e8f9039c65a89ee9018ef3c8e2f1f4928"
9708
+ integrity sha512-uROZWze0R0itiAKVPsYhFov9LxrPMHLMEQFszeI2gCN6bnIIZ8twzBCJcN2LJrBBLfrP0t1FW0g+JmKVl8Vk1g==
9709
+
9710
unicode-canonical-property-names-ecmascript@^2.0.0:
9711
version "2.0.0"
9712
resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc"
@@ -8909,6 +9740,11 @@ universalify@^0.2.0:
9740
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0"
9741
integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==
9742
9743
+unpipe@1.0.0:
9744
+ version "1.0.0"
9745
+ resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
9746
+ integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==
9747
+
9748
update-browserslist-db@^1.0.11:
9749
version "1.0.11"
9750
resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940"
@@ -8968,6 +9804,11 @@ v8-to-istanbul@^9.0.1:
9804
"@types/istanbul-lib-coverage" "^2.0.1"
9805
convert-source-map "^1.6.0"
9806
9807
+vary@^1, vary@^1.1.2:
9808
+ version "1.1.2"
9809
+ resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
9810
+ integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==
9811
+
9812
w3c-hr-time@^1.0.2:
9813
version "1.0.2"
9814
resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd"
@@ -9031,11 +9872,23 @@ whatwg-encoding@^2.0.0:
9872
dependencies:
9873
iconv-lite "0.6.3"
9874
9875
+whatwg-encoding@^3.1.1:
9876
+ version "3.1.1"
9877
+ resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz#d0f4ef769905d426e1688f3e34381a99b60b76e5"
9878
+ integrity sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==
9879
+ dependencies:
9880
+ iconv-lite "0.6.3"
9881
+
9882
whatwg-mimetype@^3.0.0:
9883
version "3.0.0"
9884
resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7"
9885
integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==
9886
9887
+whatwg-mimetype@^4.0.0:
9888
+ version "4.0.0"
9889
+ resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz#bc1bf94a985dc50388d54a9258ac405c3ca2fc0a"
9890
+ integrity sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==
9891
+
9892
whatwg-url@^11.0.0:
9893
version "11.0.0"
9894
resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018"
@@ -9299,6 +10152,11 @@ yocto-queue@^0.1.0:
10152
resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
10153
integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
10154
10155
+zod-to-json-schema@^3.24.1:
10156
+ version "3.24.5"
10157
+ resolved "https://registry.yarnpkg.com/zod-to-json-schema/-/zod-to-json-schema-3.24.5.tgz#d1095440b147fb7c2093812a53c54df8d5df50a3"
10158
+ integrity sha512-/AuWwMP+YqiPbsJx5D6TfgRTc4kTLjsh5SOcd4bLsfUg2RcEXrFMJl1DGgdHy2aCfsIA/cr/1JM0xcB2GZji8g==
10159
+
10160
zod-validation-error@^2.1.0:
10161
version "2.1.0"
10162
resolved "https://registry.yarnpkg.com/zod-validation-error/-/zod-validation-error-2.1.0.tgz#208eac75237dfed47c0018d2fe8fd03501bfc9ac"
@@ -9313,3 +10171,8 @@ zod@^3.22.4:
10171
version "3.22.4"
10172
resolved "https://registry.yarnpkg.com/zod/-/zod-3.22.4.tgz#f31c3a9386f61b1f228af56faa9255e845cf3fff"
10173
integrity sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==
10174
+
10175
+zod@^3.23.8:
10176
+ version "3.24.2"
10177
+ resolved "https://registry.yarnpkg.com/zod/-/zod-3.24.2.tgz#8efa74126287c675e92f46871cfc8d15c34372b3"
10178
+ integrity sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==