(
!stateParam && !shared && gistId
? `/api/v1/play/${encodeURIComponent(gistId)}`
@@ -126,18 +127,24 @@ export default function Playground() {
// We're using a random subdomain for origin isolation.
const url = new URL(
- `${window.location.protocol}//${
- PLAYGROUND_BASE_HOST.startsWith("localhost")
- ? ""
- : `${subdomain.current}.`
- }${PLAYGROUND_BASE_HOST}`
+ window.location.hostname.endsWith("localhost")
+ ? window.location.origin
+ : `${window.location.protocol}//${
+ PLAYGROUND_BASE_HOST.startsWith("localhost")
+ ? ""
+ : `${subdomain.current}.`
+ }${PLAYGROUND_BASE_HOST}`
);
setVConsole([]);
url.searchParams.set("state", state);
+ // ensure iframe reloads even if code doesn't change
+ url.searchParams.set("f", flipFlop.toString());
url.pathname = `${codeSrc || code.src || ""}/runner.html`;
setIframeSrc(url.href);
+ // using an updater function causes the second "run" to not reload properly:
+ setFlipFlop((flipFlop + 1) % 2);
},
- [codeSrc, setVConsole, setIframeSrc]
+ [codeSrc, setVConsole, setIframeSrc, flipFlop, setFlipFlop]
);
useEffect(() => {
diff --git a/client/src/playground/utils.ts b/client/src/playground/utils.ts
index b7fab2b568b7..ee0f5699e9f5 100644
--- a/client/src/playground/utils.ts
+++ b/client/src/playground/utils.ts
@@ -35,14 +35,17 @@ export async function initPlayIframe(
JSON.stringify(editorContent)
);
const path = iframe.getAttribute("data-live-path");
- const host = PLAYGROUND_BASE_HOST.startsWith("localhost")
- ? PLAYGROUND_BASE_HOST
- : `${hash}.${PLAYGROUND_BASE_HOST}`;
const url = new URL(
`${path || ""}${path?.endsWith("/") ? "" : "/"}runner.html`,
window.location.origin
);
- url.host = host;
+ if (!window.location.hostname.endsWith("localhost")) {
+ const host = PLAYGROUND_BASE_HOST.startsWith("localhost")
+ ? PLAYGROUND_BASE_HOST
+ : `${hash}.${PLAYGROUND_BASE_HOST}`;
+ url.port = "";
+ url.host = host;
+ }
url.search = "";
url.searchParams.set("state", state);
iframe.src = url.href;
diff --git a/client/src/setupProxy.js b/client/src/setupProxy.js
index 8ab9ed5a2c2b..5f1e61b9808c 100644
--- a/client/src/setupProxy.js
+++ b/client/src/setupProxy.js
@@ -20,6 +20,8 @@ function config(app) {
app.use(`**/*.(gif|jpeg|jpg|mp3|mp4|ogg|png|svg|webm|webp|woff2)`, proxy);
// All those root-level images like /favicon-48x48.png
app.use("/*.(png|webp|gif|jpe?g|svg)", proxy);
+ // Proxy play runner
+ app.use("/**/runner.html", proxy);
}
export default config;
diff --git a/client/src/ui/atoms/form/limited-input.tsx b/client/src/ui/atoms/form/limited-input.tsx
index 34e2929b0333..ef60b89ee6a7 100644
--- a/client/src/ui/atoms/form/limited-input.tsx
+++ b/client/src/ui/atoms/form/limited-input.tsx
@@ -2,7 +2,7 @@ import { ChangeEventHandler } from "react";
import { charLength } from "../../../utils";
interface Props {
- children: (props: ChildProps) => void;
+ children: (props: ChildProps) => React.ReactNode;
value: string;
limit: number;
}
diff --git a/client/src/ui/organisms/placement/index.tsx b/client/src/ui/organisms/placement/index.tsx
index 40d69f78eab8..b2bfd2a24e97 100644
--- a/client/src/ui/organisms/placement/index.tsx
+++ b/client/src/ui/organisms/placement/index.tsx
@@ -89,28 +89,12 @@ function TopPlacementFallbackContent() {
});
const now = Date.now();
- return now < Date.parse("2024-12-01") ? (
-
- Learn front-end with MDN’s course partner{" "}
- {
- gleanClick(BANNER_SCRIMBA_CLICK);
- }}
- >
- Scrimba
- {" "}
- - 30% discount this week!
-
- ) : now < Date.parse("2024-12-25") ? (
+ return now < Date.parse("2024-12-25") ? (
Take our daily challenges on Scrimba until 24th December and win exciting
prizes.{" "}
- {isServer || !placementData?.top ? (
+ {isServer || !data ? (
{!isServer && placementData?.status !== Status.loading && (
@@ -186,9 +171,9 @@ export function TopPlacement() {
) : (
{
popularities.set(url, value as number);
}
diff --git a/copy/config.json b/copy/config.json
new file mode 100644
index 000000000000..6438b35bbbc1
--- /dev/null
+++ b/copy/config.json
@@ -0,0 +1,29 @@
+{
+ "pages": {
+ "community": {
+ "titleSuffix": "Contribute to MDN"
+ },
+ "plus": {
+ "slugPrefix": "plus/docs",
+ "titleSuffix": "MDN Plus"
+ },
+ "observatory": {
+ "slugPrefix": "observatory/docs",
+ "titleSuffix": "HTTP Observatory"
+ }
+ },
+ "spas": {
+ "about": {
+ "slug": "about",
+ "pageTitle": "About MDN"
+ },
+ "advertising": {
+ "slug": "advertising",
+ "pageTitle": "Advertise with us"
+ },
+ "plus": {
+ "slug": "plus",
+ "pageTitle": "MDN Plus"
+ }
+ }
+}
diff --git a/deployer/poetry.lock b/deployer/poetry.lock
index c03a3b346d55..f1e51c4342a3 100644
--- a/deployer/poetry.lock
+++ b/deployer/poetry.lock
@@ -48,17 +48,17 @@ uvloop = ["uvloop (>=0.15.2)"]
[[package]]
name = "boto3"
-version = "1.35.68"
+version = "1.35.72"
description = "The AWS SDK for Python"
optional = false
python-versions = ">=3.8"
files = [
- {file = "boto3-1.35.68-py3-none-any.whl", hash = "sha256:9b26fa31901da7793c1dcd65eee9bab7e897d8aa1ffed0b5e1c3bce93d2aefe4"},
- {file = "boto3-1.35.68.tar.gz", hash = "sha256:091d6bed1422370987a839bff3f8755df7404fc15e9fac2a48e8505356f07433"},
+ {file = "boto3-1.35.72-py3-none-any.whl", hash = "sha256:410bb4ec676c57ee9c3c7824b7b1a3721584f18f8ee8ccc8e8ecdf285136b77f"},
+ {file = "boto3-1.35.72.tar.gz", hash = "sha256:f9fc94413a959c388b1654c6687a5193293f3c69f8d0af3b86fd48b4096a23f3"},
]
[package.dependencies]
-botocore = ">=1.35.68,<1.36.0"
+botocore = ">=1.35.72,<1.36.0"
jmespath = ">=0.7.1,<2.0.0"
s3transfer = ">=0.10.0,<0.11.0"
@@ -67,13 +67,13 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"]
[[package]]
name = "botocore"
-version = "1.35.68"
+version = "1.35.72"
description = "Low-level, data-driven core of boto 3."
optional = false
python-versions = ">=3.8"
files = [
- {file = "botocore-1.35.68-py3-none-any.whl", hash = "sha256:599139d5564291f5be873800711f9e4e14a823395ae9ce7b142be775e9849b94"},
- {file = "botocore-1.35.68.tar.gz", hash = "sha256:42c3700583a82f2b5316281a073d644a521d6358837e2b446dc458ba5d990fb4"},
+ {file = "botocore-1.35.72-py3-none-any.whl", hash = "sha256:7412877c3f766a1bfd09236e225ce1f0dc2c35e47949ae423e56e2093c8fa23a"},
+ {file = "botocore-1.35.72.tar.gz", hash = "sha256:6b5fac38ef7cfdbc7781a751e0f78833ccb9149ba815bc238b1dbb75c90fbae5"},
]
[package.dependencies]
@@ -634,13 +634,13 @@ tests = ["hypothesis (>=3.27.0)", "pytest (>=3.2.1,!=3.3.0)"]
[[package]]
name = "pytest"
-version = "8.3.3"
+version = "8.3.4"
description = "pytest: simple powerful testing with Python"
optional = false
python-versions = ">=3.8"
files = [
- {file = "pytest-8.3.3-py3-none-any.whl", hash = "sha256:a6853c7375b2663155079443d2e45de913a911a11d669df02a50814944db57b2"},
- {file = "pytest-8.3.3.tar.gz", hash = "sha256:70b98107bd648308a7952b06e6ca9a50bc660be218d53c257cc1fc94fda10181"},
+ {file = "pytest-8.3.4-py3-none-any.whl", hash = "sha256:50e16d954148559c9a74109af1eaf0c945ba2d8f30f0a3d3335edde19788b6f6"},
+ {file = "pytest-8.3.4.tar.gz", hash = "sha256:965370d062bce11e73868e0335abac31b4d3de0e82f4007408d242b4f8610761"},
]
[package.dependencies]
@@ -941,4 +941,4 @@ files = [
[metadata]
lock-version = "2.0"
python-versions = "^3.10"
-content-hash = "cfd1dd602157dd10e648a9485ce4ef46a567b5dbcd793797a00bcaa41dba1efb"
+content-hash = "72e66de9910fb3050d7bfea0f1031af4a7a7fb4238d243f19a4876578090f056"
diff --git a/deployer/pyproject.toml b/deployer/pyproject.toml
index f7335f66e843..8ba52aedc196 100644
--- a/deployer/pyproject.toml
+++ b/deployer/pyproject.toml
@@ -10,7 +10,7 @@ readme = "README.md"
[tool.poetry.dependencies]
python = "^3.10"
click = "^8.1.7"
-boto3 = "^1.35.68"
+boto3 = "^1.35.72"
python-decouple = "^3.8"
requests = {extras = ["security"], version = "^2.32.3"}
elasticsearch-dsl = "^7.4.1"
@@ -21,7 +21,7 @@ unidiff = "^0.7.5"
[tool.poetry.dev-dependencies]
black = "^24.10"
flake8 = "^7.1.1"
-pytest = "^8.3.3"
+pytest = "^8.3.4"
[tool.poetry.scripts]
deployer = "deployer.main:cli"
diff --git a/deployer/src/deployer/search/__init__.py b/deployer/src/deployer/search/__init__.py
index dfdb286dbe7b..972b7f7d2184 100644
--- a/deployer/src/deployer/search/__init__.py
+++ b/deployer/src/deployer/search/__init__.py
@@ -248,7 +248,7 @@ def to_search(file, _index=None):
)
),
popularity=doc["popularity"],
- summary=doc["summary"],
+ summary=doc.get("summary", ""),
# Note! We're always lowercasing the 'slug'. This way we can search on it,
# still as a `keyword` index, but filtering by prefix.
# E.g. in kuma; ?slug_prefix=weB/Css
diff --git a/docs/spas.md b/docs/spas.md
index 69e878c96a51..719eb9b4daa8 100644
--- a/docs/spas.md
+++ b/docs/spas.md
@@ -26,7 +26,7 @@ To debug the 404 page, in local development you have two choices:
-
--
+-
The latter is used so you get hot-reloading as you're working on it. This will
only work when you do local development on Yari.
diff --git a/libs/env/index.d.ts b/libs/env/index.d.ts
index 212d13c010ee..f29865853a34 100644
--- a/libs/env/index.d.ts
+++ b/libs/env/index.d.ts
@@ -1,5 +1,6 @@
export const BUILD_OUT_ROOT: string;
export const DEFAULT_FLAW_LEVELS: string;
+export const RARI: boolean;
export const BASE_URL: string;
export const FILES: string;
export const FOLDERSEARCH: string;
@@ -28,6 +29,7 @@ export const STATIC_ROOT: string;
export const PROXY_HOSTNAME: string;
export const CONTENT_HOSTNAME: string;
export const FAKE_V1_API: boolean;
+export const EXTERNAL_DEV_SERVER: sting;
export const SENTRY_DSN_BUILD: string;
export const OPENAI_KEY: string;
export const PG_URI: string;
diff --git a/libs/env/index.js b/libs/env/index.js
index 45593b867487..5b976a14be24 100644
--- a/libs/env/index.js
+++ b/libs/env/index.js
@@ -28,6 +28,7 @@ dotenv.config({
// build
// -----
+export const RARI = Boolean(parse(process.env.RARI || "false"));
export const BASE_URL = process.env.BASE_URL || "https://developer.mozilla.org";
export const BUILD_OUT_ROOT =
@@ -182,6 +183,8 @@ export const PROXY_HOSTNAME =
export const CONTENT_HOSTNAME = process.env.SERVER_CONTENT_HOST;
export const FAKE_V1_API = parse(process.env.SERVER_FAKE_V1_API || false);
+export const EXTERNAL_DEV_SERVER =
+ process.env.EXTERNAL_DEV_SERVER || "http://localhost:8083";
// ----
// tool
diff --git a/libs/types/document.ts b/libs/types/document.ts
index 1ccedcc18412..bec2c34d4856 100644
--- a/libs/types/document.ts
+++ b/libs/types/document.ts
@@ -110,6 +110,7 @@ export type Flaws = Partial<{
heading_links: HeadingLinksFlaw[];
translation_differences: TranslationDifferenceFlaw[];
unsafe_html: UnsafeHTMLFlaw[];
+ unknown: GenericFlaw[];
}>;
export type Translation = {
diff --git a/package.json b/package.json
index 4e64897b3939..246ebefb8a14 100644
--- a/package.json
+++ b/package.json
@@ -1,49 +1,53 @@
{
"name": "@mdn/yari",
- "version": "2.65.1",
+ "version": "3.0.1",
"repository": "https://github.com/mdn/yari",
"license": "MPL-2.0",
"author": "MDN Web Docs",
"type": "module",
"bin": {
+ "rari-server": "server/cli.js",
"yari-build": "build/cli.js",
"yari-build-blog": "build/build-blog.js",
"yari-filecheck": "filecheck/cli.js",
- "yari-render-html": "build/cli-ssr.js",
+ "yari-render-html": "build/ssr-cli.js",
"yari-server": "server/index.js",
"yari-tool": "tool/cli.js"
},
"scripts": {
- "ai-help-macros": "cross-env NODE_OPTIONS='--no-warnings=ExperimentalWarning --loader ts-node/esm' node scripts/ai-help-macros.ts",
+ "ai-help-macros": "cross-env NODE_OPTIONS=\"--no-warnings=ExperimentalWarning --loader ts-node/esm\" node scripts/ai-help-macros.ts",
"analyze": "(test -f client/build/stats.json || cross-env ANALYZE_BUNDLE=true yarn build:client) && webpack-bundle-analyzer client/build/stats.json",
- "build": "cross-env NODE_ENV=production NODE_OPTIONS='--no-warnings=ExperimentalWarning --loader ts-node/esm' node build/cli.ts",
- "build:blog": "cross-env NODE_ENV=production NODE_OPTIONS='--no-warnings=ExperimentalWarning --loader ts-node/esm' node build/build-blog.ts",
+ "build": "cross-env NODE_ENV=production NODE_OPTIONS=\"--no-warnings=ExperimentalWarning --loader ts-node/esm\" node build/cli.ts",
+ "build:blog": "cross-env NODE_ENV=production NODE_OPTIONS=\"--no-warnings=ExperimentalWarning --loader ts-node/esm\" node build/build-blog.ts",
"build:client": "cd client && cross-env NODE_ENV=production BABEL_ENV=production node scripts/build.js",
- "build:curriculum": "cross-env NODE_ENV=production NODE_OPTIONS='--no-warnings=ExperimentalWarning --loader ts-node/esm' node build/build-curriculum.ts",
+ "build:curriculum": "cross-env NODE_ENV=production NODE_OPTIONS=\"--no-warnings=ExperimentalWarning --loader ts-node/esm\" node build/build-curriculum.ts",
"build:dist": "tsc -p tsconfig.dist.json",
- "build:docs": "cross-env NODE_ENV=production NODE_OPTIONS='--no-warnings=ExperimentalWarning --loader ts-node/esm' node build/cli.ts -n",
+ "build:docs": "cross-env NODE_ENV=production NODE_OPTIONS=\"--no-warnings=ExperimentalWarning --loader ts-node/esm\" node build/cli.ts -n",
"build:glean": "cd client && cross-env VIRTUAL_ENV=venv glean translate src/telemetry/metrics.yaml src/telemetry/pings.yaml -f typescript -o src/telemetry/generated",
"build:prepare": "yarn build:client && yarn build:ssr && yarn tool popularities && yarn tool spas && yarn tool gather-git-history && yarn tool build-robots-txt",
- "build:ssr": "cross-env NODE_ENV=production NODE_OPTIONS='--no-warnings=ExperimentalWarning --loader ts-node/esm' node ssr/prepare.ts && webpack --mode=production --config=ssr/webpack.config.js",
+ "build:ssr": "cross-env NODE_ENV=production NODE_OPTIONS=\"--no-warnings=ExperimentalWarning --loader ts-node/esm\" node ssr/prepare.ts && webpack --mode=production --config=ssr/webpack.config.js",
"build:sw": "cd client/pwa && yarn && yarn build:prod",
"build:sw-dev": "cd client/pwa && yarn && yarn build",
"check:tsc": "find . -name 'tsconfig.json' ! -wholename '**/node_modules/**' -print0 | xargs -n1 -P 2 -0 sh -c 'cd `dirname $0` && echo \"🔄 $(pwd)\" && npx tsc --noEmit && echo \"☑️ $(pwd)\" || exit 255'",
"dev": "yarn build:prepare && nf -j Procfile.dev start",
"eslint": "eslint .",
- "filecheck": "cross-env NODE_OPTIONS='--no-warnings=ExperimentalWarning --loader ts-node/esm' node filecheck/cli.ts",
+ "filecheck": "cross-env NODE_OPTIONS=\"--no-warnings=ExperimentalWarning --loader ts-node/esm\" node filecheck/cli.ts",
"install:all": "find . -mindepth 2 -name 'yarn.lock' ! -wholename '**/node_modules/**' -print0 | xargs -n1 -0 sh -cx 'yarn --cwd $(dirname $0) install'",
"install:all:npm": "find . -mindepth 2 -name 'package-lock.json' ! -wholename '**/node_modules/**' -print0 | xargs -n1 -0 sh -cx 'npm --prefix $(dirname $0) install'",
"jest": "node --experimental-vm-modules --expose-gc ./node_modules/.bin/jest --logHeapUsage",
- "m2h": "cross-env NODE_OPTIONS='--no-warnings=ExperimentalWarning --loader ts-node/esm' node markdown/m2h/cli.ts",
+ "m2h": "cross-env NODE_OPTIONS=\"--no-warnings=ExperimentalWarning --loader ts-node/esm\" node markdown/m2h/cli.ts",
"prepack": "yarn render:html && yarn build:dist",
"prepare": "(husky || true) && yarn install:all && yarn install:all:npm",
"prettier-check": "prettier --check .",
"prettier-format": "prettier --write .",
- "render:html": "cross-env NODE_ENV=production NODE_OPTIONS='--no-warnings=ExperimentalWarning --loader ts-node/esm' node build/ssr-cli.ts",
- "start": "(test -f client/build/asset-manifest.json || yarn build:client) && (test -f ssr/dist/main.js || yarn build:ssr) && (test -f popularities.json || yarn tool popularities) && (test -d client/build/en-us/_spas || yarn tool spas) && (test -d client/build/en-us/_spas/404.html || yarn render:html -s) && nf -j Procfile.start start",
+ "render:html": "cross-env NODE_ENV=production NODE_OPTIONS=\"--no-warnings=ExperimentalWarning --loader ts-node/esm\" node build/ssr-cli.ts",
+ "start": "(test -f client/build/asset-manifest.json || yarn build:client) && (test -f ssr/dist/main.js || yarn build:ssr) && (test -f popularities.json || yarn tool popularities) && (test -d client/build/en-us/404 || yarn tool spas) && (test -d client/build/en-us/404/index.html || yarn render:html -s) && nf -j Procfile.start start",
"start:client": "cd client && cross-env NODE_ENV=development BABEL_ENV=development PORT=3000 node scripts/start.js",
+ "start:rari": "(test -f client/build/asset-manifest.json || yarn build:client) && (test -f ssr/dist/main.js || yarn build:ssr) && cross-env RARI=true nf -j Procfile.rari start",
+ "start:rari-external": "(test -f client/build/asset-manifest.json || yarn build:client) && (test -f ssr/dist/main.js || yarn build:ssr) && cross-env RARI=true nf -j Procfile.start start",
+ "start:rari-server": "cross-env NODE_OPTIONS=\"--no-warnings=ExperimentalWarning --loader ts-node/esm\" node server/cli.ts",
"start:server": "node-dev --experimental-loader ts-node/esm server/index.ts",
- "start:static-server": "cross-env NODE_OPTIONS='--no-warnings=ExperimentalWarning --loader ts-node/esm' node server/static.ts",
+ "start:static-server": "cross-env NODE_OPTIONS=\"--no-warnings=ExperimentalWarning --loader ts-node/esm\" node server/static.ts",
"stylelint": "stylelint \"**/*.scss\"",
"test": "yarn prettier-check && yarn test:client && yarn test:kumascript && yarn test:libs && yarn test:content && yarn test:testing",
"test:client": "cd client && tsc --noEmit && cross-env NODE_ENV=test BABEL_ENV=test node scripts/test.js --env=jsdom",
@@ -54,7 +58,7 @@
"test:libs": "yarn jest --rootDir libs --env=node",
"test:prepare": "yarn build:prepare && yarn build:docs && yarn render:html && yarn start:static-server",
"test:testing": "yarn jest --rootDir testing",
- "tool": "cross-env NODE_OPTIONS='--no-warnings=ExperimentalWarning --loader ts-node/esm' node ./tool/cli.ts",
+ "tool": "cross-env NODE_OPTIONS=\"--no-warnings=ExperimentalWarning --loader ts-node/esm\" node ./tool/cli.ts",
"watch:ssr": "webpack --mode=production --watch --config=ssr/webpack.config.js"
},
"resolutions": {
@@ -73,13 +77,14 @@
"@inquirer/prompts": "^7.1.0",
"@lit/react": "^1.0.6",
"@mdn/bcd-utils-api": "^0.0.7",
- "@mdn/browser-compat-data": "^5.6.19",
+ "@mdn/browser-compat-data": "^5.6.21",
+ "@mdn/rari": "^0.1.0",
"@mozilla/glean": "5.0.3",
- "@sentry/node": "^8.41.0",
- "@stripe/stripe-js": "^4.10.0",
+ "@sentry/node": "^8.42.0",
+ "@stripe/stripe-js": "^5.2.0",
"@use-it/interval": "^1.0.0",
"@vscode/ripgrep": "^1.15.9",
- "@webref/css": "^6.17.4",
+ "@webref/css": "^6.17.5",
"accept-language-parser": "^1.5.0",
"async": "^3.2.6",
"chalk": "^5.3.0",
@@ -88,14 +93,15 @@
"codemirror": "^6.0.1",
"compression": "^1.7.5",
"compute-baseline": "^0.1.1",
+ "concurrently": "^9.1.0",
"cookie": "^0.7.2",
"cookie-parser": "^1.4.7",
"css-tree": "^2.3.1",
"dayjs": "^1.11.13",
"dexie": "^4.0.10",
- "dotenv": "^16.4.5",
+ "dotenv": "^16.4.7",
"ejs": "^3.1.10",
- "express": "^4.21.1",
+ "express": "^4.21.2",
"fdir": "^6.4.2",
"feed": "^4.2.2",
"file-type": "^19.6.0",
@@ -118,10 +124,10 @@
"md5-file": "^5.0.0",
"mdast-util-from-markdown": "^2.0.2",
"mdast-util-phrasing": "^4.1.0",
- "mdn-data": "^2.12.2",
+ "mdn-data": "^2.13.0",
"open": "^10.1.0",
"open-editor": "^5.0.0",
- "openai": "^4.73.1",
+ "openai": "^4.76.0",
"pg": "^8.13.1",
"pgvector": "^0.2.0",
"prism-svelte": "^0.5.0",
@@ -140,14 +146,14 @@
"remark-rehype": "^11.1.1",
"remark-stringify": "^11.0.0",
"sanitize-filename": "^1.6.3",
- "send": "^0.19.0",
+ "send": "^1.1.0",
"source-map-support": "^0.5.21",
"sse.js": "^2.5.0",
"tempy": "^3.1.0",
"unified": "^11.0.5",
"unist-builder": "^4.0.0",
"unist-util-visit": "^5.0.0",
- "web-features": "^2.8.0",
+ "web-features": "^2.11.0",
"web-specs": "^3.28.0"
},
"devDependencies": {
@@ -160,7 +166,7 @@
"@playwright/test": "^1.49.0",
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.15",
"@svgr/webpack": "^8.1.0",
- "@swc/core": "^1.9.3",
+ "@swc/core": "^1.10.0",
"@testing-library/react": "^15.0.7",
"@types/async": "^3.2.24",
"@types/cli-progress": "^3.11.6",
@@ -170,7 +176,7 @@
"@types/mdast": "^4.0.4",
"@types/node": "^18.19.67",
"@types/prismjs": "^1.26.5",
- "@types/react": "^18.3.12",
+ "@types/react": "^18.3.13",
"@types/react-dom": "^18.3.1",
"@types/react-modal": "^3.16.3",
"@types/webpack-bundle-analyzer": "^4.7.0",
@@ -195,17 +201,19 @@
"eslint-plugin-import": "^2.31.0",
"eslint-plugin-jest": "^28.9.0",
"eslint-plugin-jsx-a11y": "^6.10.2",
+ "eslint-plugin-lit": "^1.15.0",
"eslint-plugin-n": "^17.13.2",
"eslint-plugin-react": "^7.37.2",
"eslint-plugin-react-hooks": "^5.0.0",
"eslint-plugin-unicorn": "^56.0.1",
+ "eslint-plugin-wc": "^2.2.0",
"eslint-webpack-plugin": "^4.2.0",
"extend": "^3.0.2",
"file-loader": "^6.2.0",
"foreman": "^3.0.1",
"fork-ts-checker-webpack-plugin": "^9.0.2",
"history": "^5.2.0",
- "html-validate": "^8.26.0",
+ "html-validate": "^8.27.0",
"html-webpack-plugin": "^5.6.3",
"husky": "^9.1.7",
"identity-obj-proxy": "^3.0.0",
@@ -226,22 +234,22 @@
"postcss-loader": "^8.1.1",
"postcss-normalize": "^13.0.1",
"postcss-preset-env": "^10.1.1",
- "prettier": "^3.4.1",
+ "prettier": "^3.4.2",
"prettier-plugin-packagejson": "^2.5.6",
"prompts": "^2.4.2",
"react": "^18.3.1",
"react-app-polyfill": "^3.0.0",
"react-dom": "^18.3.1",
"react-is": "^18.3.1",
- "react-refresh": "^0.14",
- "react-router": "^6.17.0",
- "react-router-dom": "^6.28.0",
+ "react-refresh": "^0.16",
+ "react-router": "^7.0.2",
+ "react-router-dom": "^7.0.2",
"remark-prettier": "^2.0.0",
"resolve": "^1.22.8",
"resolve-url-loader": "^5.0.0",
"rough-notation": "^0.5.1",
- "sass": "^1.81.0",
- "sass-loader": "^16.0.3",
+ "sass": "^1.82.0",
+ "sass-loader": "^16.0.4",
"source-map-loader": "^5.0.0",
"style-loader": "^3.3.4",
"stylelint": "^15.11.0",
@@ -256,11 +264,12 @@
"terser-loader": "^2.0.3",
"terser-webpack-plugin": "^5.3.10",
"ts-jest": "^29.2.5",
+ "ts-lit-plugin": "^2.0.2",
"ts-loader": "^9.5.1",
"ts-node": "^10.9.2",
- "typescript": "^5.6.3",
- "typescript-eslint": "^8.16.0",
- "webpack": "^5.96.1",
+ "typescript": "^5.7.2",
+ "typescript-eslint": "^8.17.0",
+ "webpack": "^5.97.1",
"webpack-bundle-analyzer": "^4.10.2",
"webpack-cli": "^5.1.4",
"webpack-dev-server": "^5.1.0",
diff --git a/scripts/ai-help-macros.ts b/scripts/ai-help-macros.ts
index d2cea614d758..a7da8af2306b 100644
--- a/scripts/ai-help-macros.ts
+++ b/scripts/ai-help-macros.ts
@@ -6,7 +6,7 @@ import pg from "pg";
import pgvector from "pgvector/pg";
import { fdir } from "fdir";
import OpenAI from "openai";
-import { load as cheerio } from "cheerio";
+import { load as cheerio, CheerioAPI } from "cheerio";
import { DocMetadata } from "../libs/types/document.js";
import { BUILD_OUT_ROOT, OPENAI_KEY, PG_URI } from "../libs/env/index.js";
@@ -21,6 +21,7 @@ import {
VersionValue,
} from "@mdn/browser-compat-data/types";
import { h2mSync } from "../markdown/index.js";
+import { Doc as JSONDoc } from "../libs/types/document.js";
const EMBEDDING_MODEL = "text-embedding-3-small";
const EMBEDDING_MODEL_NEXT = "text-embedding-3-small";
@@ -60,7 +61,8 @@ type EmbeddingUpdate = Pick & {
export async function updateEmbeddings(
directory: string,
- updateFormatting: boolean
+ updateFormatting: boolean,
+ usePlainHtml: boolean
) {
if (!OPENAI_KEY || !PG_URI) {
throw Error("Please set these environment variables: OPENAI_KEY, PG_URI");
@@ -125,7 +127,8 @@ export async function updateEmbeddings(
const embeddingUpdates: EmbeddingUpdate[] = [];
for await (const { mdn_url, title, title_short, markdown, text } of builtDocs(
- directory
+ directory,
+ usePlainHtml
)) {
seenUrls.add(mdn_url);
@@ -379,8 +382,8 @@ export async function updateEmbeddings(
pgClient.end();
}
-async function formatDocs(directory: string) {
- for await (const { markdown, text } of builtDocs(directory)) {
+async function formatDocs(directory: string, usePlainHtml: boolean) {
+ for await (const { markdown, text } of builtDocs(directory, usePlainHtml)) {
console.log(markdown, text);
}
}
@@ -399,19 +402,55 @@ async function* builtPaths(directory: string) {
}
}
-async function* builtDocs(directory: string) {
+async function* builtDocs(directory: string, usePlainHtml: boolean) {
for await (const metadataPath of builtPaths(directory)) {
try {
const raw = await readFile(metadataPath, "utf-8");
const { title, short_title, mdn_url, hash } = JSON.parse(
raw
) as DocMetadata;
-
- const plainPath = path.join(path.dirname(metadataPath), "plain.html");
- const plainHTML = await readFile(plainPath, "utf-8");
-
- // reformat HTML version, used as context
- const $ = cheerio(plainHTML);
+ let $: CheerioAPI;
+
+ if (usePlainHtml) {
+ const plainPath = path.join(path.dirname(metadataPath), "plain.html");
+ const plainHTML = await readFile(plainPath, "utf-8");
+
+ // reformat HTML version, used as context
+ $ = cheerio(plainHTML);
+ } else {
+ const jsonPath = path.join(path.dirname(metadataPath), "index.json");
+ const json = JSON.parse(await readFile(jsonPath, "utf-8"));
+ const doc = json.doc as JSONDoc;
+
+ // Assemble the interim HTML from the json data
+ $ = cheerio("");
+ for (const section of doc.body) {
+ const tag = section.value.isH3 ? "h3" : "h2";
+ if (section.value.title) {
+ $("body").append("\n");
+ $("body").append(
+ `<${tag} id="${section.value.id ?? ""}">${section.value.title}${tag}>`
+ );
+ }
+ switch (section.type) {
+ case "prose": {
+ $("body").append("\n");
+ $("body").append(section.value.content);
+ break;
+ }
+ case "specifications":
+ break;
+ case "browser_compatibility": {
+ $("body").append("\n");
+ $("body").append(
+ ` ${buildBCDTable(section.value.query)}
`
+ );
+ break;
+ }
+ }
+ }
+ $("span.language-name").remove();
+ }
$("#specifications, .bc-specs").remove();
$("body").prepend(`${title}
`);
$("head").prepend(`${title}`);
@@ -422,6 +461,7 @@ async function* builtDocs(directory: string) {
$(".bc-data[data-query]").each((_, el) => {
$(el).replaceWith(buildBCDTable($(el).data("query") as string));
});
+
const html = $.html();
const markdown = h2mSync(html);
@@ -672,24 +712,37 @@ program
.argument("", "Path in which to execute it", {
default: path.join(BUILD_OUT_ROOT, "en-us", "docs"),
})
+ .option(
+ "--use-plain-html",
+ "Use `plain.html` files instead of `index.json` files."
+ )
.option(
"--update-formatting",
"Even if hashes match, update without generating a new embedding."
)
.action(function (params) {
const { directory } = params.args as { directory: string };
- const { updateFormatting } = params.options as {
+ const { updateFormatting, usePlainHtml } = params.options as {
updateFormatting: boolean;
+ usePlainHtml: boolean;
};
- return updateEmbeddings(directory, updateFormatting);
+ return updateEmbeddings(directory, updateFormatting, usePlainHtml);
})
+
.command("format-docs", "Generates formatted docs for local debugging")
.argument("", "Path in which to execute it", {
default: path.join(BUILD_OUT_ROOT, "en-us", "docs"),
})
+ .option(
+ "--use-plain-html",
+ "Use `plain.html` files instead of `index.json` files."
+ )
.action(function (params) {
- const { directory } = params.args as { directory: string };
- return formatDocs(directory);
+ const { directory, usePlainHtml } = params.args as {
+ directory: string;
+ usePlainHtml: boolean;
+ };
+ return formatDocs(directory, usePlainHtml);
});
program.run();
diff --git a/scripts/reorder-search-index.mjs b/scripts/reorder-search-index.mjs
new file mode 100644
index 000000000000..33fef2c1819e
--- /dev/null
+++ b/scripts/reorder-search-index.mjs
@@ -0,0 +1,35 @@
+import { readFileSync, writeFileSync } from "node:fs";
+
+async function main() {
+ const [refPath, inputPath, outputPath = null] = process.argv.slice(2);
+
+ const readJson = (path) => JSON.parse(readFileSync(path, "utf-8"));
+ const getSlug = ({ url }) => url.replace(/^\/[^/]+\/docs\//, "");
+
+ // Read reference (e.g. "client/build/en-us/search-index.json").
+ const ref = readJson(refPath).map(getSlug);
+
+ // Read index (e.g. "client/build/de/search-index.json").
+ const input = readJson(inputPath);
+
+ const getIndex = (slug) => ref.indexOf(slug);
+
+ const result = [];
+ for (const [fromIndex, toIndex] of input
+ .map(getSlug)
+ .map(getIndex)
+ .entries()) {
+ result[toIndex] = input[fromIndex];
+ }
+
+ writeFileSync(outputPath ?? inputPath, JSON.stringify(result), "utf-8");
+}
+
+try {
+ main();
+} catch (e) {
+ console.error(e);
+ if (process.env.GITHUB_ACTIONS) {
+ console.log(`::error::${e.toString()} `);
+ }
+}
diff --git a/server/cli.ts b/server/cli.ts
new file mode 100644
index 000000000000..799e0b04d1ab
--- /dev/null
+++ b/server/cli.ts
@@ -0,0 +1,42 @@
+#!/usr/bin/env node
+import { concurrently } from "concurrently";
+import { rariBin } from "@mdn/rari";
+import { filename } from "./filename.js";
+
+const { commands, result } = concurrently(
+ [
+ {
+ command: `node ${filename}`,
+ name: "server",
+ env: {
+ RARI: true,
+ },
+ prefixColor: "red",
+ },
+ {
+ command: `${rariBin} serve -vv`,
+ name: "rari",
+ prefixColor: "blue",
+ },
+ ],
+ {
+ killOthers: ["failure", "success"],
+ restartTries: 0,
+ handleInput: true,
+ inputStream: process.stdin,
+ }
+);
+
+const stop = new Promise((resolve, reject) => {
+ process.on("SIGINT", () => {
+ commands.forEach((cmd) => cmd.kill()); // Terminate all concurrently-run processes
+ reject();
+ });
+ result.finally(() => resolve(null));
+});
+try {
+ await stop;
+ console.log("All tasks completed successfully.");
+} catch {
+ console.log("Killed ☠️");
+}
diff --git a/server/filename.ts b/server/filename.ts
new file mode 100644
index 000000000000..abc56988399e
--- /dev/null
+++ b/server/filename.ts
@@ -0,0 +1,2 @@
+import { fileURLToPath } from "node:url";
+export const filename = fileURLToPath(import.meta.resolve("./index.js"));
diff --git a/server/index.ts b/server/index.ts
index f2e1535b9e2c..b852678fd73d 100644
--- a/server/index.ts
+++ b/server/index.ts
@@ -33,6 +33,8 @@ import {
CONTENT_TRANSLATED_ROOT,
BLOG_ROOT,
CURRICULUM_ROOT,
+ EXTERNAL_DEV_SERVER,
+ RARI,
} from "../libs/env/index.js";
import { PLAYGROUND_UNSAFE_CSP_VALUE } from "../libs/play/index.js";
@@ -55,28 +57,43 @@ import {
import { findCurriculumPageBySlug } from "../build/curriculum.js";
import { handleRunner } from "../libs/play/index.js";
+async function fetch_from_rari(path: string) {
+ const external_url = `${EXTERNAL_DEV_SERVER}${path}`;
+ console.log(`using ${external_url}`);
+ // eslint-disable-next-line n/no-unsupported-features/node-builtins
+ return await (await fetch(external_url)).json();
+}
+
async function buildDocumentFromURL(url: string) {
try {
console.time(`buildDocumentFromURL(${url})`);
- const document = Document.findByURL(url);
- if (!document) {
- return null;
- }
- const documentOptions = {};
- if (CONTENT_TRANSLATED_ROOT) {
- // When you're running the dev server and build documents
- // every time a URL is requested, you won't have had the chance to do
- // the phase that happens when you do a regular `yarn build`.
- document.translations = findTranslations(
- document.metadata.slug,
- document.metadata.locale
- );
+ let built;
+ if (!RARI) {
+ const document = Document.findByURL(url);
+ if (!document) {
+ return null;
+ }
+ const documentOptions = {};
+ if (CONTENT_TRANSLATED_ROOT) {
+ // When you're running the dev server and build documents
+ // every time a URL is requested, you won't have had the chance to do
+ // the phase that happens when you do a regular `yarn build`.
+ document.translations = findTranslations(
+ document.metadata.slug,
+ document.metadata.locale
+ );
+ }
+ built = await buildDocument(document, documentOptions);
+ if (built) {
+ return { doc: built?.doc, url };
+ }
+ } else {
+ built = await fetch_from_rari(url);
+ if (built) {
+ return built;
+ }
}
- const built = await buildDocument(document, documentOptions);
-
- if (built) {
- return { doc: built?.doc, url };
- } else if (
+ if (
url.split("/")[1] &&
url.split("/")[1].toLowerCase() !== DEFAULT_LOCALE.toLowerCase() &&
!CONTENT_TRANSLATED_ROOT
@@ -97,19 +114,29 @@ async function buildDocumentFromURL(url: string) {
}
}
-function redirectOr404(res: express.Response, url, suffix = "") {
+async function redirectOr404(res: express.Response, url, suffix = "") {
const redirectURL = Redirect.resolve(url);
if (redirectURL !== url) {
// This was and is broken for redirects with anchors...
return res.redirect(301, redirectURL + suffix);
}
- return send404(res);
+ return await send404(res);
}
-function send404(res: express.Response) {
- return res
- .status(404)
- .sendFile(path.join(STATIC_ROOT, "en-us", "_spas", "404.html"));
+async function send404(res: express.Response) {
+ if (!RARI) {
+ return res
+ .status(404)
+ .sendFile(path.join(STATIC_ROOT, "en-us", "404", "index.html"));
+ } else {
+ try {
+ const index = await fetch_from_rari("/en-US/404");
+ res.header("Content-Security-Policy", CSP_VALUE);
+ return res.send(renderHTML(index));
+ } catch (error) {
+ return res.status(500).json(JSON.stringify(error.toString()));
+ }
+ }
}
const app = express();
@@ -250,29 +277,55 @@ app.get("/_open", (req, res) => {
res.status(200).send(`Tried to open ${spec} in ${process.env.EDITOR}`);
});
-app.use("/:locale/search-index.json", searchIndexRoute);
+if (!RARI) {
+ app.use("/:locale/search-index.json", searchIndexRoute);
+} else {
+ app.use("/:locale/search-index.json", async (req, res) => {
+ const { locale } = req.params;
+ try {
+ const json = await fetch_from_rari(`/${locale}/search-index.json`);
+ res.setHeader("Access-Control-Allow-Origin", "*");
+ return res.json(json);
+ } catch (error) {
+ return res.status(500).json(JSON.stringify(error.toString()));
+ }
+ });
+}
app.get("/_flaws", flawsRoute);
app.use("/_translations", translationsRouter);
app.get("/*/contributors.txt", async (req, res) => {
- const url = req.path.replace(/\/contributors\.txt$/, "");
- const document = Document.findByURL(url);
- res.setHeader("content-type", "text/plain");
- if (!document) {
- return res.status(404).send(`Document not found by URL (${url})`);
- }
- try {
- const { doc: builtDocument } = await buildDocument(document);
- res.send(
- renderContributorsTxt(
- document.metadata.contributors,
- builtDocument.source.github_url.replace("/blob/", "/commits/")
- )
- );
- } catch (error) {
- return res.status(500).json(JSON.stringify(error.toString()));
+ if (!RARI) {
+ const url = req.path.replace(/\/contributors\.txt$/, "");
+ const document = Document.findByURL(url);
+ res.setHeader("content-type", "text/plain");
+ if (!document) {
+ return res.status(404).send(`Document not found by URL (${url})`);
+ }
+ try {
+ const { doc: builtDocument } = await buildDocument(document);
+ res.send(
+ renderContributorsTxt(
+ document.metadata.contributors,
+ builtDocument.source.github_url.replace("/blob/", "/commits/")
+ )
+ );
+ } catch (error) {
+ return res.status(500).json(JSON.stringify(error.toString()));
+ }
+ } else {
+ try {
+ const external_url = `${EXTERNAL_DEV_SERVER}${req.path}`;
+ console.log(`contributors.txt: using ${external_url}`);
+ // eslint-disable-next-line n/no-unsupported-features/node-builtins
+ const text = await (await fetch(external_url)).text();
+ res.setHeader("content-type", "text/plain");
+ return res.send(text);
+ } catch (error) {
+ return res.status(500).json(JSON.stringify(error.toString()));
+ }
}
});
@@ -287,8 +340,17 @@ if (CURRICULUM_ROOT) {
"/:locale/curriculum/index.json",
],
async (req, res) => {
- const { slug = "" } = req.params;
- const data = await findCurriculumPageBySlug(slug);
+ let data;
+ if (!RARI) {
+ const { slug = "" } = req.params;
+ data = await findCurriculumPageBySlug(slug);
+ } else {
+ try {
+ data = await fetch_from_rari(req.path);
+ } catch (error) {
+ return res.status(500).json(JSON.stringify(error.toString()));
+ }
+ }
if (!data) {
return res.status(404).send("Nothing here 🤷♂️");
}
@@ -296,19 +358,28 @@ if (CURRICULUM_ROOT) {
}
);
} else {
- app.get("/[^/]+/curriculum/*", (_, res) => {
+ app.get("/[^/]+/curriculum/*", async (_, res) => {
console.warn("'CURRICULUM_ROOT' not set in .env file");
- return send404(res);
+ return await send404(res);
});
}
if (BLOG_ROOT) {
- app.get("/:locale/blog/index.json", async (_, res) => {
- const posts = await allPostFrontmatter(
- { includeUnpublished: true },
- MEMOIZE_INVALIDATE
- );
- return res.json({ hyData: { posts } });
+ app.get("/:locale/blog/index.json", async (req, res) => {
+ if (!RARI) {
+ const posts = await allPostFrontmatter(
+ { includeUnpublished: true },
+ MEMOIZE_INVALIDATE
+ );
+ return res.json({ hyData: { posts } });
+ } else {
+ try {
+ const index = await fetch_from_rari(req.path);
+ return res.json(index);
+ } catch (error) {
+ return res.status(500).json(JSON.stringify(error.toString()));
+ }
+ }
});
app.get("/:locale/blog/author/:slug/:asset", async (req, res) => {
const { slug, asset } = req.params;
@@ -324,12 +395,21 @@ if (BLOG_ROOT) {
).pipe(res);
});
app.get("/:locale/blog/:slug/index.json", async (req, res) => {
- const { slug } = req.params;
- const data = await findPostBySlug(slug);
- if (!data) {
- return res.status(404).send("Nothing here 🤷♂️");
+ if (!RARI) {
+ const { slug } = req.params;
+ const data = await findPostBySlug(slug);
+ if (!data) {
+ return res.status(404).send("Nothing here 🤷♂️");
+ }
+ return res.json(data);
+ } else {
+ try {
+ const index = await fetch_from_rari(req.path);
+ return res.json(index);
+ } catch (error) {
+ return res.status(500).json(JSON.stringify(error.toString()));
+ }
}
- return res.json(data);
});
app.get("/:locale/blog/:slug/:asset", async (req, res) => {
const { slug, asset } = req.params;
@@ -343,9 +423,9 @@ if (BLOG_ROOT) {
return res.status(404).send("Nothing here 🤷♂️");
});
} else {
- app.get("/[^/]+/blog/*", (_, res) => {
+ app.get("/[^/]+/blog/*", async (_, res) => {
console.warn("'BLOG_ROOT' not set in .env file");
- return send404(res);
+ return await send404(res);
});
}
@@ -370,7 +450,7 @@ if (contentProxy) {
try {
const doc = await buildDocumentFromURL(url);
if (!doc) {
- return redirectOr404(res, url, "/index.json");
+ return await redirectOr404(res, url, "/index.json");
}
return res.json(doc);
} catch (error) {
@@ -381,7 +461,7 @@ if (contentProxy) {
const url = decodeURI(req.path.replace(/\/metadata.json$/, ""));
const doc = await buildDocumentFromURL(url);
if (!doc?.doc) {
- return redirectOr404(res, url, "/metadata.json");
+ return await redirectOr404(res, url, "/metadata.json");
}
const docString = JSON.stringify(doc);
@@ -410,7 +490,7 @@ if (contentProxy) {
try {
const doc = await buildDocumentFromURL(url);
if (!doc) {
- return redirectOr404(res, url);
+ return await redirectOr404(res, url);
}
res.header("Content-Security-Policy", CSP_VALUE);
return res.send(renderHTML(doc));
@@ -420,9 +500,35 @@ if (contentProxy) {
});
}
+if (RARI) {
+ app.get(
+ [
+ "/en-US/about",
+ "/en-US/about/index.json",
+ "/en-US/community",
+ "/en-US/community/index.json",
+ "/en-US/plus/docs/*",
+ "/en-US/observatory/docs/*",
+ "/:locale/",
+ ],
+ async (req, res) => {
+ try {
+ const index = await fetch_from_rari(req.path);
+ if (req.path.endsWith(".json")) {
+ return res.json(index);
+ }
+ res.header("Content-Security-Policy", CSP_VALUE);
+ return res.send(renderHTML(index));
+ } catch (error) {
+ return res.status(500).json(JSON.stringify(error.toString()));
+ }
+ }
+ );
+}
+
app.use(staticMiddlewares);
-app.get("/*", (_, res) => send404(res));
+app.get("/*", async (_, res) => await send404(res));
if (!fs.existsSync(path.resolve(CONTENT_ROOT))) {
throw new Error(`${path.resolve(CONTENT_ROOT)} does not exist!`);
diff --git a/server/static.ts b/server/static.ts
index fc9a864766e4..ab7fd7485877 100644
--- a/server/static.ts
+++ b/server/static.ts
@@ -250,7 +250,7 @@ app.get("/*", async (req, res) => {
console.log(`Don't know how to mock: ${req.path}`, req.query);
res
.status(404)
- .sendFile(path.join(BUILD_OUT_ROOT, "en-us", "_spas", "404.html"));
+ .sendFile(path.join(BUILD_OUT_ROOT, "en-us", "404", "index.html"));
});
const HOST = process.env.SERVER_HOST || undefined;
diff --git a/ssr/index.ts b/ssr/index.ts
index 60b1b81623bf..3ab09243c0cd 100644
--- a/ssr/index.ts
+++ b/ssr/index.ts
@@ -1,5 +1,5 @@
import React from "react";
-import { StaticRouter } from "react-router-dom/server";
+import { StaticRouter } from "react-router-dom";
import { App } from "../client/src/app";
import render from "./render";
diff --git a/ssr/render.tsx b/ssr/render.tsx
index 1bbf62e7894c..74bdc1416418 100644
--- a/ssr/render.tsx
+++ b/ssr/render.tsx
@@ -145,10 +145,6 @@ export default function render(
// Open Graph protocol expects `language_TERRITORY` format.
const ogLocale = locale.replace("-", "_");
- if (locale === "de") {
- // Prevent experimental German locale from being indexed.
- onlyFollow = true;
- }
const robotsContent =
!ALWAYS_ALLOW_ROBOTS || (doc && doc.noIndexing) || noIndexing
? "noindex, nofollow"
diff --git a/ssr/theme.js b/ssr/theme.js
index 827fc2231748..888cfbb9605c 100644
--- a/ssr/theme.js
+++ b/ssr/theme.js
@@ -1,3 +1,4 @@
+// @ts-nocheck
/* eslint-env browser */
/* eslint-disable n/no-unsupported-features/node-builtins */
/**
diff --git a/ssr/webpack.config.js b/ssr/webpack.config.js
index d0817c888a3c..8939420835b5 100644
--- a/ssr/webpack.config.js
+++ b/ssr/webpack.config.js
@@ -1,3 +1,4 @@
+// @ts-nocheck
import { fileURLToPath } from "node:url";
// TODO: fix nodeExternals (see note below, where it was used)
// import nodeExternals from "webpack-node-externals";
diff --git a/testing/integration/poetry.lock b/testing/integration/poetry.lock
index 352f9b5ab212..286d09f48f16 100644
--- a/testing/integration/poetry.lock
+++ b/testing/integration/poetry.lock
@@ -461,13 +461,13 @@ test = ["pytest", "pytest-cov", "requests", "webob", "webtest"]
[[package]]
name = "pytest"
-version = "8.3.3"
+version = "8.3.4"
description = "pytest: simple powerful testing with Python"
optional = false
python-versions = ">=3.8"
files = [
- {file = "pytest-8.3.3-py3-none-any.whl", hash = "sha256:a6853c7375b2663155079443d2e45de913a911a11d669df02a50814944db57b2"},
- {file = "pytest-8.3.3.tar.gz", hash = "sha256:70b98107bd648308a7952b06e6ca9a50bc660be218d53c257cc1fc94fda10181"},
+ {file = "pytest-8.3.4-py3-none-any.whl", hash = "sha256:50e16d954148559c9a74109af1eaf0c945ba2d8f30f0a3d3335edde19788b6f6"},
+ {file = "pytest-8.3.4.tar.gz", hash = "sha256:965370d062bce11e73868e0335abac31b4d3de0e82f4007408d242b4f8610761"},
]
[package.dependencies]
@@ -501,18 +501,18 @@ test = ["black (>=22.1.0)", "flake8 (>=4.0.1)", "pre-commit (>=2.17.0)", "pytest
[[package]]
name = "pytest-rerunfailures"
-version = "14.0"
+version = "15.0"
description = "pytest plugin to re-run tests to eliminate flaky failures"
optional = false
-python-versions = ">=3.8"
+python-versions = ">=3.9"
files = [
- {file = "pytest-rerunfailures-14.0.tar.gz", hash = "sha256:4a400bcbcd3c7a4ad151ab8afac123d90eca3abe27f98725dc4d9702887d2e92"},
- {file = "pytest_rerunfailures-14.0-py3-none-any.whl", hash = "sha256:4197bdd2eaeffdbf50b5ea6e7236f47ff0e44d1def8dae08e409f536d84e7b32"},
+ {file = "pytest-rerunfailures-15.0.tar.gz", hash = "sha256:2d9ac7baf59f4c13ac730b47f6fa80e755d1ba0581da45ce30b72fb3542b4474"},
+ {file = "pytest_rerunfailures-15.0-py3-none-any.whl", hash = "sha256:dd150c4795c229ef44320adc9a0c0532c51b78bb7a6843a8c53556b9a611df1a"},
]
[package.dependencies]
packaging = ">=17.1"
-pytest = ">=7.2"
+pytest = ">=7.4,<8.2.2 || >8.2.2"
[[package]]
name = "requests"
@@ -576,4 +576,4 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
[metadata]
lock-version = "2.0"
python-versions = "^3.10"
-content-hash = "28e89763e29cd386f8c987d51108ae51cf0df12434a8b24149466ada50f7298e"
+content-hash = "bfc7e8ddde9e6e22f07b357f7798ab575a12e5396e5af22e9ef963cdfde5ab1b"
diff --git a/testing/integration/pyproject.toml b/testing/integration/pyproject.toml
index 92f9d0ba017f..319ed5b8147e 100644
--- a/testing/integration/pyproject.toml
+++ b/testing/integration/pyproject.toml
@@ -9,9 +9,9 @@ readme = "README.md"
[tool.poetry.dependencies]
python = "^3.10"
-pytest = "^8.3.3"
+pytest = "^8.3.4"
pytest-base-url = "^2.1.0"
-pytest-rerunfailures = "^14.0"
+pytest-rerunfailures = "^15.0"
requests = "^2.32.3"
pyquery = "^2.0.1"
braceexpand = "^0.1.7"
diff --git a/testing/tests/index.test.ts b/testing/tests/index.test.ts
index e23c9e368024..b2e997e53597 100644
--- a/testing/tests/index.test.ts
+++ b/testing/tests/index.test.ts
@@ -1173,9 +1173,9 @@ test("images that are in the folder but not in tags", () => {
});
test("404 page", () => {
- const builtFolder = path.join(buildRoot, "en-us", "_spas");
+ const builtFolder = path.join(buildRoot, "en-us");
expect(fs.existsSync(builtFolder)).toBeTruthy();
- const htmlFile = path.join(builtFolder, "404.html");
+ const htmlFile = path.join(builtFolder, "404", "index.html");
const html = fs.readFileSync(htmlFile, "utf-8");
const $ = cheerio.load(html);
expect($("title").text()).toContain("Page not found");
diff --git a/tool/popularities.ts b/tool/popularities.ts
index 87a010ac7514..2b020ba4defb 100644
--- a/tool/popularities.ts
+++ b/tool/popularities.ts
@@ -69,7 +69,14 @@ export async function runMakePopularitiesFile({
pageviews.slice(0, maxUris).forEach(([uri, popularity]) => {
popularities[uri] = parseFloat(popularity.toFixed(5));
});
- fs.writeFileSync(outfile, JSON.stringify(popularities, null, 2));
+ fs.writeFileSync(
+ outfile,
+ JSON.stringify(
+ { popularities: popularities, date: new Date().toISOString() },
+ null,
+ 2
+ )
+ );
resolve({ rowCount, popularities, pageviews });
});
});
diff --git a/yarn.lock b/yarn.lock
index edcc94452aef..7abb4de74a25 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -10,6 +10,15 @@
"@jridgewell/gen-mapping" "^0.3.5"
"@jridgewell/trace-mapping" "^0.3.24"
+"@apidevtools/json-schema-ref-parser@^11.5.5":
+ version "11.7.2"
+ resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.7.2.tgz#cdf3e0aded21492364a70e193b45b7cf4177f031"
+ integrity sha512-4gY54eEGEstClvEkGnwVkTkrx0sqwemEFG5OSRRn3tD91XH0+Q8XIkYIfo7IwEWPpJZwILb9GUXeShtplRc/eA==
+ dependencies:
+ "@jsdevtools/ono" "^7.1.3"
+ "@types/json-schema" "^7.0.15"
+ js-yaml "^4.1.0"
+
"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.25.9", "@babel/code-frame@^7.26.0":
version "7.26.2"
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.26.2.tgz#4b5fab97d33338eff916235055f0ebc21e573a85"
@@ -1053,7 +1062,7 @@
"@babel/plugin-transform-modules-commonjs" "^7.25.9"
"@babel/plugin-transform-typescript" "^7.25.9"
-"@babel/runtime@^7.12.5", "@babel/runtime@^7.14.8", "@babel/runtime@^7.16.3", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.4":
+"@babel/runtime@^7.10.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.14.8", "@babel/runtime@^7.16.3", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.4":
version "7.26.0"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.0.tgz#8600c2f595f277c60815256418b85356a65173c1"
integrity sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==
@@ -1815,6 +1824,13 @@
wrap-ansi "^8.1.0"
wrap-ansi-cjs "npm:wrap-ansi@^7.0.0"
+"@isaacs/fs-minipass@^4.0.0":
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz#2d59ae3ab4b38fb4270bfa23d30f8e2e86c7fe32"
+ integrity sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==
+ dependencies:
+ minipass "^7.0.4"
+
"@istanbuljs/load-nyc-config@^1.0.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced"
@@ -2079,6 +2095,11 @@
jsbi "^4.3.0"
tslib "^2.4.1"
+"@jsdevtools/ono@^7.1.3":
+ version "7.1.3"
+ resolved "https://registry.yarnpkg.com/@jsdevtools/ono/-/ono-7.1.3.tgz#9df03bbd7c696a5c58885c34aa06da41c8543796"
+ integrity sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==
+
"@jsonjoy.com/base64@^1.1.1":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@jsonjoy.com/base64/-/base64-1.1.2.tgz#cf8ea9dcb849b81c95f14fc0aaa151c6b54d2578"
@@ -2172,10 +2193,10 @@
resolved "https://registry.yarnpkg.com/@mdn/bcd-utils-api/-/bcd-utils-api-0.0.7.tgz#555e80c33df520df068943e6b18ebc07f0e24d19"
integrity sha512-IHkkypEjlIkBkx4mJ2//Xbzog9M/Lzne1Sl8db2cIHJ/5pe3NCqSLwSchmqzcUN+/WJr/U+V3tNAbWunk2xZcA==
-"@mdn/browser-compat-data@^5.6.19":
- version "5.6.19"
- resolved "https://registry.yarnpkg.com/@mdn/browser-compat-data/-/browser-compat-data-5.6.19.tgz#4822e7c27bd4da16de8d229a5c157ae436401442"
- integrity sha512-nov43xmgYccY9ePMQfqPD29ASOKbOhn3iOJxA5reOfC3wLbEM5an8Sn6A3Th1TuD3XfXc0hjrFQYbJ3qhyPhhQ==
+"@mdn/browser-compat-data@^5.6.21":
+ version "5.6.21"
+ resolved "https://registry.yarnpkg.com/@mdn/browser-compat-data/-/browser-compat-data-5.6.21.tgz#0c423a03d63a679df715d0eece14af38cb76e4d7"
+ integrity sha512-yFGyNC6llnRbCELh1vH5mhrdSkQCrBs+wOyFjcYa3E9K3qzz6aDKnUSlDfWx+7pMeVr/iSKIdl1P60g2Jxs5sg==
"@mdn/dinocons@^0.5.5":
version "0.5.5"
@@ -2187,6 +2208,17 @@
resolved "https://registry.yarnpkg.com/@mdn/minimalist/-/minimalist-2.0.4.tgz#6488ab0cb65b059446dcd9bf542246b81febe241"
integrity sha512-jocePw/fsGcBxO67D+iWQLZ0TQjwNVonaME2BFN98QIm/e1kTY1/k2s4fOqH5MMa3QYURxa098bI4sChn6s/7Q==
+"@mdn/rari@^0.1.0":
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/@mdn/rari/-/rari-0.1.0.tgz#39564c47eb5f6625bb3fe865c3bd5e26889c602b"
+ integrity sha512-cEunpHAv8f/LhxretdLXFPaWFjic8deB0i/Mq+N4N07L2oHIXhQvmhj1O/0BtaTogbj8JJv82Vu5yllK0NOsWw==
+ dependencies:
+ extract-zip "^2.0.1"
+ https-proxy-agent "^7.0.2"
+ json-schema-to-typescript "^15.0.0"
+ proxy-from-env "^1.1.0"
+ tar "^7.4.3"
+
"@mozilla/glean@5.0.3":
version "5.0.3"
resolved "https://registry.yarnpkg.com/@mozilla/glean/-/glean-5.0.3.tgz#eda7169f3e8f38a7d3019a1512b45778c4f05735"
@@ -2690,11 +2722,6 @@
"@opentelemetry/instrumentation" "^0.49 || ^0.50 || ^0.51 || ^0.52.0"
"@opentelemetry/sdk-trace-base" "^1.22"
-"@remix-run/router@1.21.0":
- version "1.21.0"
- resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.21.0.tgz#c65ae4262bdcfe415dbd4f64ec87676e4a56e2b5"
- integrity sha512-xfSkCAchbdG5PnbrKqFWwia4Bi61nH+wm8wLEqfHDyp7Y3dZzgqS2itV8i4gAq9pC2HsTpwyBC6Ds8VHZ96JlA==
-
"@rtsao/scc@^1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@rtsao/scc/-/scc-1.1.0.tgz#927dd2fae9bc3361403ac2c7a00c32ddce9ad7e8"
@@ -2710,17 +2737,15 @@
resolved "https://registry.yarnpkg.com/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz#60de891bb126abfdc5410fdc6166aca065f10a0c"
integrity sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==
-"@sentry/core@8.41.0":
- version "8.41.0"
- resolved "https://registry.yarnpkg.com/@sentry/core/-/core-8.41.0.tgz#e8a25cacd25fe4358f3179e85f3c2697427fe5a6"
- integrity sha512-3v7u3t4LozCA5SpZY4yqUN2U3jSrkXNoLgz6L2SUUiydyCuSwXZIFEwpLJfgQyidpNDifeQbBI5E1O910XkPsA==
- dependencies:
- "@sentry/types" "8.41.0"
+"@sentry/core@8.42.0":
+ version "8.42.0"
+ resolved "https://registry.yarnpkg.com/@sentry/core/-/core-8.42.0.tgz#9fc0db6794186dc2d1167cf82e579e387198ba77"
+ integrity sha512-ac6O3pgoIbU6rpwz6LlwW0wp3/GAHuSI0C5IsTgIY6baN8rOBnlAtG6KrHDDkGmUQ2srxkDJu9n1O6Td3cBCqw==
-"@sentry/node@^8.41.0":
- version "8.41.0"
- resolved "https://registry.yarnpkg.com/@sentry/node/-/node-8.41.0.tgz#52f970648d961f6e82a1b23a88c0000aa72ba21a"
- integrity sha512-eYD5S8Lti9efBHFSIhZ/0C5uI1DQtGqjuNWQ62CKC47G2qgJddBtb2HgqRFAnMajYL9FXEtiDT6uqQhKQnmLcQ==
+"@sentry/node@^8.42.0":
+ version "8.42.0"
+ resolved "https://registry.yarnpkg.com/@sentry/node/-/node-8.42.0.tgz#829a02ce322bf7ee13e2bd09acc2eb56a8e04525"
+ integrity sha512-MsNrmAIwDaxf1jTX1FsgZ+3mUq6G6IuU6FAqyp7TDnvUTsbWUtr0OM6EvVUz0zCImybIh9dcTQ+6KTmUyA7URw==
dependencies:
"@opentelemetry/api" "^1.9.0"
"@opentelemetry/context-async-hooks" "^1.25.1"
@@ -2754,23 +2779,16 @@
"@opentelemetry/sdk-trace-base" "^1.26.0"
"@opentelemetry/semantic-conventions" "^1.27.0"
"@prisma/instrumentation" "5.19.1"
- "@sentry/core" "8.41.0"
- "@sentry/opentelemetry" "8.41.0"
- "@sentry/types" "8.41.0"
+ "@sentry/core" "8.42.0"
+ "@sentry/opentelemetry" "8.42.0"
import-in-the-middle "^1.11.2"
-"@sentry/opentelemetry@8.41.0":
- version "8.41.0"
- resolved "https://registry.yarnpkg.com/@sentry/opentelemetry/-/opentelemetry-8.41.0.tgz#0e5c4bb8d5b58f07eb80e312fc66b8709a688c61"
- integrity sha512-Ld6KdBQsmSk2IfFSoZ7CMpmuQbfb3viV6nTDCz6+11wL9S+1b+hadCN+38yBW4CmI4/hEpYfwwWQPseQQTvBCg==
+"@sentry/opentelemetry@8.42.0":
+ version "8.42.0"
+ resolved "https://registry.yarnpkg.com/@sentry/opentelemetry/-/opentelemetry-8.42.0.tgz#d4a5e988689b3c64370eff5763e7cf3af4e43cba"
+ integrity sha512-QPb9kMFgl35TIwIz0u+BFTbPG461CofMiloidJ44GFZ9cB33T5cB0oIN7ut/5tsH/AvqUmucydsV/Nj3HNQx9g==
dependencies:
- "@sentry/core" "8.41.0"
- "@sentry/types" "8.41.0"
-
-"@sentry/types@8.41.0":
- version "8.41.0"
- resolved "https://registry.yarnpkg.com/@sentry/types/-/types-8.41.0.tgz#db40c93bcedad26569c5dfe10a4b31253c349a10"
- integrity sha512-eqdnGr9k9H++b9CjVUoTNUVahPVWeNnMy0YGkqS5+cjWWC+x43p56202oidGFmWo6702ub/xwUNH6M5PC4kq6A==
+ "@sentry/core" "8.42.0"
"@sidvind/better-ajv-errors@3.0.1":
version "3.0.1"
@@ -2823,10 +2841,10 @@
dependencies:
"@sinonjs/commons" "^3.0.0"
-"@stripe/stripe-js@^4.10.0":
- version "4.10.0"
- resolved "https://registry.yarnpkg.com/@stripe/stripe-js/-/stripe-js-4.10.0.tgz#5c785f9a5a500113d69d98c16061e0addd1c0305"
- integrity sha512-KrMOL+sH69htCIXCaZ4JluJ35bchuCCznyPyrbN8JXSGQfwBI1SuIEMZNwvy8L8ykj29t6sa5BAAiL7fNoLZ8A==
+"@stripe/stripe-js@^5.2.0":
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/@stripe/stripe-js/-/stripe-js-5.2.0.tgz#2d696ed622def8c4407c658d8294c3e0365b0f1b"
+ integrity sha512-2ZpEaezx3S0QPtnske175NDaLvUvaVKd4ePHpUN0QF/uV4BBBBRUy5BvQONDym+utbbW0QhSJoiRPnp4FS+4Vg==
"@svgr/babel-plugin-add-jsx-attribute@8.0.0":
version "8.0.0"
@@ -2934,74 +2952,74 @@
"@svgr/plugin-jsx" "8.1.0"
"@svgr/plugin-svgo" "8.1.0"
-"@swc/core-darwin-arm64@1.9.3":
- version "1.9.3"
- resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.9.3.tgz#cca13f7ce6e1099612a7ba017f4923857d3a4d5f"
- integrity sha512-hGfl/KTic/QY4tB9DkTbNuxy5cV4IeejpPD4zo+Lzt4iLlDWIeANL4Fkg67FiVceNJboqg48CUX+APhDHO5G1w==
-
-"@swc/core-darwin-x64@1.9.3":
- version "1.9.3"
- resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.9.3.tgz#01376c6c2caea5dd0c235f21ebc7e41238153c86"
- integrity sha512-IaRq05ZLdtgF5h9CzlcgaNHyg4VXuiStnOFpfNEMuI5fm5afP2S0FHq8WdakUz5WppsbddTdplL+vpeApt/WCQ==
-
-"@swc/core-linux-arm-gnueabihf@1.9.3":
- version "1.9.3"
- resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.9.3.tgz#4a9705903cebfc8e3e2bee71a42f7c88896e61df"
- integrity sha512-Pbwe7xYprj/nEnZrNBvZfjnTxlBIcfApAGdz2EROhjpPj+FBqBa3wOogqbsuGGBdCphf8S+KPprL1z+oDWkmSQ==
-
-"@swc/core-linux-arm64-gnu@1.9.3":
- version "1.9.3"
- resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.9.3.tgz#722aefc00a7abfb031fae7539226c7d7683f5c8d"
- integrity sha512-AQ5JZiwNGVV/2K2TVulg0mw/3LYfqpjZO6jDPtR2evNbk9Yt57YsVzS+3vHSlUBQDRV9/jqMuZYVU3P13xrk+g==
-
-"@swc/core-linux-arm64-musl@1.9.3":
- version "1.9.3"
- resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.9.3.tgz#6643f683311cc1dcee00970e3d6b4872225bdbd8"
- integrity sha512-tzVH480RY6RbMl/QRgh5HK3zn1ZTFsThuxDGo6Iuk1MdwIbdFYUY034heWUTI4u3Db97ArKh0hNL0xhO3+PZdg==
-
-"@swc/core-linux-x64-gnu@1.9.3":
- version "1.9.3"
- resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.9.3.tgz#e6f5cefa244409abe1451fbb4575696a870cbd7a"
- integrity sha512-ivXXBRDXDc9k4cdv10R21ccBmGebVOwKXT/UdH1PhxUn9m/h8erAWjz5pcELwjiMf27WokqPgaWVfaclDbgE+w==
-
-"@swc/core-linux-x64-musl@1.9.3":
- version "1.9.3"
- resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.9.3.tgz#4d45399f7a01389add61febd02da9b12f16abc81"
- integrity sha512-ILsGMgfnOz1HwdDz+ZgEuomIwkP1PHT6maigZxaCIuC6OPEhKE8uYna22uU63XvYcLQvZYDzpR3ms47WQPuNEg==
-
-"@swc/core-win32-arm64-msvc@1.9.3":
- version "1.9.3"
- resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.9.3.tgz#8c352bcea558b9a950877cd724f132d7d51a4d80"
- integrity sha512-e+XmltDVIHieUnNJHtspn6B+PCcFOMYXNJB1GqoCcyinkEIQNwC8KtWgMqUucUbEWJkPc35NHy9k8aCXRmw9Kg==
-
-"@swc/core-win32-ia32-msvc@1.9.3":
- version "1.9.3"
- resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.9.3.tgz#656f78b9c56413dbd590ac259dbe0d563cd8e166"
- integrity sha512-rqpzNfpAooSL4UfQnHhkW8aL+oyjqJniDP0qwZfGnjDoJSbtPysHg2LpcOBEdSnEH+uIZq6J96qf0ZFD8AGfXA==
-
-"@swc/core-win32-x64-msvc@1.9.3":
- version "1.9.3"
- resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.9.3.tgz#9595c177d2c11909558da93b18f37e7c5ae1909c"
- integrity sha512-3YJJLQ5suIEHEKc1GHtqVq475guiyqisKSoUnoaRtxkDaW5g1yvPt9IoSLOe2mRs7+FFhGGU693RsBUSwOXSdQ==
-
-"@swc/core@^1.9.3":
- version "1.9.3"
- resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.9.3.tgz#e5bc9b35df2f4a60026c6759c1a6575070339d4f"
- integrity sha512-oRj0AFePUhtatX+BscVhnzaAmWjpfAeySpM1TCbxA1rtBDeH/JDhi5yYzAKneDYtVtBvA7ApfeuzhMC9ye4xSg==
+"@swc/core-darwin-arm64@1.10.0":
+ version "1.10.0"
+ resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.10.0.tgz#39fd894356f8e858535e96111d34602da0a730c5"
+ integrity sha512-wCeUpanqZyzvgqWRtXIyhcFK3CqukAlYyP+fJpY2gWc/+ekdrenNIfZMwY7tyTFDkXDYEKzvn3BN/zDYNJFowQ==
+
+"@swc/core-darwin-x64@1.10.0":
+ version "1.10.0"
+ resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.10.0.tgz#d1b95c1db67ac328a96324b800843bc410d17f05"
+ integrity sha512-0CZPzqTynUBO+SHEl/qKsFSahp2Jv/P2ZRjFG0gwZY5qIcr1+B/v+o74/GyNMBGz9rft+F2WpU31gz2sJwyF4A==
+
+"@swc/core-linux-arm-gnueabihf@1.10.0":
+ version "1.10.0"
+ resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.10.0.tgz#e10510bb028bc3836948cb7345312269cd22295d"
+ integrity sha512-oq+DdMu5uJOFPtRkeiITc4kxmd+QSmK+v+OBzlhdGkSgoH3yRWZP+H2ao0cBXo93ZgCr2LfjiER0CqSKhjGuNA==
+
+"@swc/core-linux-arm64-gnu@1.10.0":
+ version "1.10.0"
+ resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.10.0.tgz#a4826c0b44db5b5a02826a0c47307f5969bcc353"
+ integrity sha512-Y6+PC8knchEViRxiCUj3j8wsGXaIhuvU+WqrFqV834eiItEMEI9+Vh3FovqJMBE3L7d4E4ZQtgImHCXjrHfxbw==
+
+"@swc/core-linux-arm64-musl@1.10.0":
+ version "1.10.0"
+ resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.10.0.tgz#d4adab4a646be095e3c64226a0150ebe4b874c1a"
+ integrity sha512-EbrX9A5U4cECCQQfky7945AW9GYnTXtCUXElWTkTYmmyQK87yCyFfY8hmZ9qMFIwxPOH6I3I2JwMhzdi8Qoz7g==
+
+"@swc/core-linux-x64-gnu@1.10.0":
+ version "1.10.0"
+ resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.10.0.tgz#278655c2b2abcb2e7ada031e75e6853777ebce4c"
+ integrity sha512-TaxpO6snTjjfLXFYh5EjZ78se69j2gDcqEM8yB9gguPYwkCHi2Ylfmh7iVaNADnDJFtjoAQp0L41bTV/Pfq9Cg==
+
+"@swc/core-linux-x64-musl@1.10.0":
+ version "1.10.0"
+ resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.10.0.tgz#7df236de40a685c1723a904d6dead99eea36a30f"
+ integrity sha512-IEGvDd6aEEKEyZFZ8oCKuik05G5BS7qwG5hO5PEMzdGeh8JyFZXxsfFXbfeAqjue4UaUUrhnoX+Ze3M2jBVMHw==
+
+"@swc/core-win32-arm64-msvc@1.10.0":
+ version "1.10.0"
+ resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.10.0.tgz#99278f8f02c79e03caeeb6d64941d0487e58d7e1"
+ integrity sha512-UkQ952GSpY+Z6XONj9GSW8xGSkF53jrCsuLj0nrcuw7Dvr1a816U/9WYZmmcYS8tnG2vHylhpm6csQkyS8lpCw==
+
+"@swc/core-win32-ia32-msvc@1.10.0":
+ version "1.10.0"
+ resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.10.0.tgz#a5cf2cfa3e31e8e01a3692d7e053aaa788d3cf3e"
+ integrity sha512-a2QpIZmTiT885u/mUInpeN2W9ClCnqrV2LnMqJR1/Fgx1Afw/hAtiDZPtQ0SqS8yDJ2VR5gfNZo3gpxWMrqdVA==
+
+"@swc/core-win32-x64-msvc@1.10.0":
+ version "1.10.0"
+ resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.10.0.tgz#ee1fdf8e6a627de33501b5a404465a7e676c8689"
+ integrity sha512-tZcCmMwf483nwsEBfUk5w9e046kMa1iSik4bP9Kwi2FGtOfHuDfIcwW4jek3hdcgF5SaBW1ktnK/lgQLDi5AtA==
+
+"@swc/core@^1.10.0":
+ version "1.10.0"
+ resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.10.0.tgz#9584465f7c5feaf34098466c7063c0044fa08bd8"
+ integrity sha512-+CuuTCmQFfzaNGg1JmcZvdUVITQXJk9sMnl1C2TiDLzOSVOJRwVD4dNo5dljX/qxpMAN+2BIYlwjlSkoGi6grg==
dependencies:
"@swc/counter" "^0.1.3"
"@swc/types" "^0.1.17"
optionalDependencies:
- "@swc/core-darwin-arm64" "1.9.3"
- "@swc/core-darwin-x64" "1.9.3"
- "@swc/core-linux-arm-gnueabihf" "1.9.3"
- "@swc/core-linux-arm64-gnu" "1.9.3"
- "@swc/core-linux-arm64-musl" "1.9.3"
- "@swc/core-linux-x64-gnu" "1.9.3"
- "@swc/core-linux-x64-musl" "1.9.3"
- "@swc/core-win32-arm64-msvc" "1.9.3"
- "@swc/core-win32-ia32-msvc" "1.9.3"
- "@swc/core-win32-x64-msvc" "1.9.3"
+ "@swc/core-darwin-arm64" "1.10.0"
+ "@swc/core-darwin-x64" "1.10.0"
+ "@swc/core-linux-arm-gnueabihf" "1.10.0"
+ "@swc/core-linux-arm64-gnu" "1.10.0"
+ "@swc/core-linux-arm64-musl" "1.10.0"
+ "@swc/core-linux-x64-gnu" "1.10.0"
+ "@swc/core-linux-x64-musl" "1.10.0"
+ "@swc/core-win32-arm64-msvc" "1.10.0"
+ "@swc/core-win32-ia32-msvc" "1.10.0"
+ "@swc/core-win32-x64-msvc" "1.10.0"
"@swc/counter@^0.1.3":
version "0.1.3"
@@ -3167,6 +3185,11 @@
dependencies:
"@types/node" "*"
+"@types/cookie@^0.6.0":
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.6.0.tgz#eac397f28bf1d6ae0ae081363eca2f425bedf0d5"
+ integrity sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==
+
"@types/debug@^4.0.0":
version "4.1.12"
resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.12.tgz#a155f21690871953410df4b6b6f53187f0500917"
@@ -3342,7 +3365,7 @@
"@types/tough-cookie" "*"
parse5 "^7.0.0"
-"@types/json-schema@*", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9":
+"@types/json-schema@*", "@types/json-schema@^7.0.15", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9":
version "7.0.15"
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
@@ -3352,7 +3375,7 @@
resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee"
integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==
-"@types/lodash@^4.14.149":
+"@types/lodash@^4.14.149", "@types/lodash@^4.17.7":
version "4.17.13"
resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.13.tgz#786e2d67cfd95e32862143abe7463a7f90c300eb"
integrity sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==
@@ -3506,10 +3529,10 @@
dependencies:
"@types/react" "*"
-"@types/react@*", "@types/react@^18.3.12":
- version "18.3.12"
- resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.12.tgz#99419f182ccd69151813b7ee24b792fe08774f60"
- integrity sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==
+"@types/react@*", "@types/react@^18.3.13":
+ version "18.3.13"
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.13.tgz#84c9690d9a271f548659760754ea8745701bfd82"
+ integrity sha512-ii/gswMmOievxAJed4PAHT949bpYjPKXvXo1v6cRB/kqc2ZR4n+SgyCyvyc5Fec5ez8VnUumI1Vk7j6fRyRogg==
dependencies:
"@types/prop-types" "*"
csstype "^3.0.2"
@@ -3642,16 +3665,23 @@
dependencies:
"@types/yargs-parser" "*"
-"@typescript-eslint/eslint-plugin@8.16.0":
- version "8.16.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.16.0.tgz#ac56825bcdf3b392fc76a94b1315d4a162f201a6"
- integrity sha512-5YTHKV8MYlyMI6BaEG7crQ9BhSc8RxzshOReKwZwRWN0+XvvTOm+L/UYLCYxFpfwYuAAqhxiq4yae0CMFwbL7Q==
+"@types/yauzl@^2.9.1":
+ version "2.10.3"
+ resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.3.tgz#e9b2808b4f109504a03cda958259876f61017999"
+ integrity sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==
+ dependencies:
+ "@types/node" "*"
+
+"@typescript-eslint/eslint-plugin@8.17.0":
+ version "8.17.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.17.0.tgz#2ee073c421f4e81e02d10e731241664b6253b23c"
+ integrity sha512-HU1KAdW3Tt8zQkdvNoIijfWDMvdSweFYm4hWh+KwhPstv+sCmWb89hCIP8msFm9N1R/ooh9honpSuvqKWlYy3w==
dependencies:
"@eslint-community/regexpp" "^4.10.0"
- "@typescript-eslint/scope-manager" "8.16.0"
- "@typescript-eslint/type-utils" "8.16.0"
- "@typescript-eslint/utils" "8.16.0"
- "@typescript-eslint/visitor-keys" "8.16.0"
+ "@typescript-eslint/scope-manager" "8.17.0"
+ "@typescript-eslint/type-utils" "8.17.0"
+ "@typescript-eslint/utils" "8.17.0"
+ "@typescript-eslint/visitor-keys" "8.17.0"
graphemer "^1.4.0"
ignore "^5.3.1"
natural-compare "^1.4.0"
@@ -3680,15 +3710,15 @@
dependencies:
"@typescript-eslint/utils" "5.62.0"
-"@typescript-eslint/parser@8.16.0":
- version "8.16.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.16.0.tgz#ee5b2d6241c1ab3e2e53f03fd5a32d8e266d8e06"
- integrity sha512-D7DbgGFtsqIPIFMPJwCad9Gfi/hC0PWErRRHFnaCWoEDYi5tQUDiJCTmGUbBiLzjqAck4KcXt9Ayj0CNlIrF+w==
+"@typescript-eslint/parser@8.17.0":
+ version "8.17.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.17.0.tgz#2ee972bb12fa69ac625b85813dc8d9a5a053ff52"
+ integrity sha512-Drp39TXuUlD49F7ilHHCG7TTg8IkA+hxCuULdmzWYICxGXvDXmDmWEjJYZQYgf6l/TFfYNE167m7isnc3xlIEg==
dependencies:
- "@typescript-eslint/scope-manager" "8.16.0"
- "@typescript-eslint/types" "8.16.0"
- "@typescript-eslint/typescript-estree" "8.16.0"
- "@typescript-eslint/visitor-keys" "8.16.0"
+ "@typescript-eslint/scope-manager" "8.17.0"
+ "@typescript-eslint/types" "8.17.0"
+ "@typescript-eslint/typescript-estree" "8.17.0"
+ "@typescript-eslint/visitor-keys" "8.17.0"
debug "^4.3.4"
"@typescript-eslint/parser@^5.5.0":
@@ -3709,13 +3739,13 @@
"@typescript-eslint/types" "5.62.0"
"@typescript-eslint/visitor-keys" "5.62.0"
-"@typescript-eslint/scope-manager@8.16.0":
- version "8.16.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.16.0.tgz#ebc9a3b399a69a6052f3d88174456dd399ef5905"
- integrity sha512-mwsZWubQvBki2t5565uxF0EYvG+FwdFb8bMtDuGQLdCCnGPrDEDvm1gtfynuKlnpzeBRqdFCkMf9jg1fnAK8sg==
+"@typescript-eslint/scope-manager@8.17.0":
+ version "8.17.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.17.0.tgz#a3f49bf3d4d27ff8d6b2ea099ba465ef4dbcaa3a"
+ integrity sha512-/ewp4XjvnxaREtqsZjF4Mfn078RD/9GmiEAtTeLQ7yFdKnqwTOgRMSvFz4et9U5RiJQ15WTGXPLj89zGusvxBg==
dependencies:
- "@typescript-eslint/types" "8.16.0"
- "@typescript-eslint/visitor-keys" "8.16.0"
+ "@typescript-eslint/types" "8.17.0"
+ "@typescript-eslint/visitor-keys" "8.17.0"
"@typescript-eslint/type-utils@5.62.0":
version "5.62.0"
@@ -3727,13 +3757,13 @@
debug "^4.3.4"
tsutils "^3.21.0"
-"@typescript-eslint/type-utils@8.16.0":
- version "8.16.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.16.0.tgz#585388735f7ac390f07c885845c3d185d1b64740"
- integrity sha512-IqZHGG+g1XCWX9NyqnI/0CX5LL8/18awQqmkZSl2ynn8F76j579dByc0jhfVSnSnhf7zv76mKBQv9HQFKvDCgg==
+"@typescript-eslint/type-utils@8.17.0":
+ version "8.17.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.17.0.tgz#d326569f498cdd0edf58d5bb6030b4ad914e63d3"
+ integrity sha512-q38llWJYPd63rRnJ6wY/ZQqIzPrBCkPdpIsaCfkR3Q4t3p6sb422zougfad4TFW9+ElIFLVDzWGiGAfbb/v2qw==
dependencies:
- "@typescript-eslint/typescript-estree" "8.16.0"
- "@typescript-eslint/utils" "8.16.0"
+ "@typescript-eslint/typescript-estree" "8.17.0"
+ "@typescript-eslint/utils" "8.17.0"
debug "^4.3.4"
ts-api-utils "^1.3.0"
@@ -3742,10 +3772,10 @@
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f"
integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==
-"@typescript-eslint/types@8.16.0":
- version "8.16.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.16.0.tgz#49c92ae1b57942458ab83d9ec7ccab3005e64737"
- integrity sha512-NzrHj6thBAOSE4d9bsuRNMvk+BvaQvmY4dDglgkgGC0EW/tB3Kelnp3tAKH87GEwzoxgeQn9fNGRyFJM/xd+GQ==
+"@typescript-eslint/types@8.17.0":
+ version "8.17.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.17.0.tgz#ef84c709ef8324e766878834970bea9a7e3b72cf"
+ integrity sha512-gY2TVzeve3z6crqh2Ic7Cr+CAv6pfb0Egee7J5UAVWCpVvDI/F71wNfolIim4FE6hT15EbpZFVUj9j5i38jYXA==
"@typescript-eslint/typescript-estree@5.62.0":
version "5.62.0"
@@ -3760,13 +3790,13 @@
semver "^7.3.7"
tsutils "^3.21.0"
-"@typescript-eslint/typescript-estree@8.16.0":
- version "8.16.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.16.0.tgz#9d741e56e5b13469b5190e763432ce5551a9300c"
- integrity sha512-E2+9IzzXMc1iaBy9zmo+UYvluE3TW7bCGWSF41hVWUE01o8nzr1rvOQYSxelxr6StUvRcTMe633eY8mXASMaNw==
+"@typescript-eslint/typescript-estree@8.17.0":
+ version "8.17.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.17.0.tgz#40b5903bc929b1e8dd9c77db3cb52cfb199a2a34"
+ integrity sha512-JqkOopc1nRKZpX+opvKqnM3XUlM7LpFMD0lYxTqOTKQfCWAmxw45e3qlOCsEqEB2yuacujivudOFpCnqkBDNMw==
dependencies:
- "@typescript-eslint/types" "8.16.0"
- "@typescript-eslint/visitor-keys" "8.16.0"
+ "@typescript-eslint/types" "8.17.0"
+ "@typescript-eslint/visitor-keys" "8.17.0"
debug "^4.3.4"
fast-glob "^3.3.2"
is-glob "^4.0.3"
@@ -3788,15 +3818,15 @@
eslint-scope "^5.1.1"
semver "^7.3.7"
-"@typescript-eslint/utils@8.16.0", "@typescript-eslint/utils@^6.0.0 || ^7.0.0 || ^8.0.0":
- version "8.16.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.16.0.tgz#c71264c437157feaa97842809836254a6fc833c3"
- integrity sha512-C1zRy/mOL8Pj157GiX4kaw7iyRLKfJXBR3L82hk5kS/GyHcOFmy4YUq/zfZti72I9wnuQtA/+xzft4wCC8PJdA==
+"@typescript-eslint/utils@8.17.0", "@typescript-eslint/utils@^6.0.0 || ^7.0.0 || ^8.0.0":
+ version "8.17.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.17.0.tgz#41c05105a2b6ab7592f513d2eeb2c2c0236d8908"
+ integrity sha512-bQC8BnEkxqG8HBGKwG9wXlZqg37RKSMY7v/X8VEWD8JG2JuTHuNK0VFvMPMUKQcbk6B+tf05k+4AShAEtCtJ/w==
dependencies:
"@eslint-community/eslint-utils" "^4.4.0"
- "@typescript-eslint/scope-manager" "8.16.0"
- "@typescript-eslint/types" "8.16.0"
- "@typescript-eslint/typescript-estree" "8.16.0"
+ "@typescript-eslint/scope-manager" "8.17.0"
+ "@typescript-eslint/types" "8.17.0"
+ "@typescript-eslint/typescript-estree" "8.17.0"
"@typescript-eslint/visitor-keys@5.62.0":
version "5.62.0"
@@ -3806,12 +3836,12 @@
"@typescript-eslint/types" "5.62.0"
eslint-visitor-keys "^3.3.0"
-"@typescript-eslint/visitor-keys@8.16.0":
- version "8.16.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.16.0.tgz#d5086afc060b01ff7a4ecab8d49d13d5a7b07705"
- integrity sha512-pq19gbaMOmFE3CbL0ZB8J8BFCo2ckfHBfaIsaOZgBIF4EoISJIdLX5xRhd0FGB0LlHReNRuzoJoMGpTjq8F2CQ==
+"@typescript-eslint/visitor-keys@8.17.0":
+ version "8.17.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.17.0.tgz#4dbcd0e28b9bf951f4293805bf34f98df45e1aa8"
+ integrity sha512-1Hm7THLpO6ww5QU6H/Qp+AusUUl+z/CAm3cNZZ0jQvon9yicgO7Rwd+/WWRpMKLYV6p2UvdbR27c86rzCPpreg==
dependencies:
- "@typescript-eslint/types" "8.16.0"
+ "@typescript-eslint/types" "8.17.0"
eslint-visitor-keys "^4.2.0"
"@ungap/structured-clone@^1.0.0", "@ungap/structured-clone@^1.2.0":
@@ -3833,7 +3863,12 @@
proxy-from-env "^1.1.0"
yauzl "^2.9.2"
-"@webassemblyjs/ast@1.14.1", "@webassemblyjs/ast@^1.12.1":
+"@vscode/web-custom-data@^0.4.2":
+ version "0.4.12"
+ resolved "https://registry.yarnpkg.com/@vscode/web-custom-data/-/web-custom-data-0.4.12.tgz#11026146d58d82f6dcf543e1e155a288c2b5c9e9"
+ integrity sha512-bCemuvwCC84wJQbJoaPou86sjz9DUvZgGa6sAWQwzw7oIELD7z+WnUj2Rdsu8/8XPhKLcg3IswQ2+Pm3OMinIg==
+
+"@webassemblyjs/ast@1.14.1", "@webassemblyjs/ast@^1.14.1":
version "1.14.1"
resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.14.1.tgz#a9f6a07f2b03c95c8d38c4536a1fdfb521ff55b6"
integrity sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==
@@ -3899,7 +3934,7 @@
resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.13.2.tgz#917a20e93f71ad5602966c2d685ae0c6c21f60f1"
integrity sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==
-"@webassemblyjs/wasm-edit@^1.12.1":
+"@webassemblyjs/wasm-edit@^1.14.1":
version "1.14.1"
resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz#ac6689f502219b59198ddec42dcd496b1004d597"
integrity sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==
@@ -3934,7 +3969,7 @@
"@webassemblyjs/wasm-gen" "1.14.1"
"@webassemblyjs/wasm-parser" "1.14.1"
-"@webassemblyjs/wasm-parser@1.14.1", "@webassemblyjs/wasm-parser@^1.12.1":
+"@webassemblyjs/wasm-parser@1.14.1", "@webassemblyjs/wasm-parser@^1.14.1":
version "1.14.1"
resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz#b3e13f1893605ca78b52c68e54cf6a865f90b9fb"
integrity sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==
@@ -3969,10 +4004,10 @@
resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-2.0.5.tgz#325db42395cd49fe6c14057f9a900e427df8810e"
integrity sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==
-"@webref/css@^6.17.4":
- version "6.17.4"
- resolved "https://registry.yarnpkg.com/@webref/css/-/css-6.17.4.tgz#1722ced57468d44ea7ee230dd458657534710206"
- integrity sha512-c7HoBCO3RCIOeeM0aBxCXhfljwwnDCjZAYKxHsmvymu5/nmk4uQDTM4uecIu/SUiAmYCb7a1DGKN6mCKg489kA==
+"@webref/css@^6.17.5":
+ version "6.17.5"
+ resolved "https://registry.yarnpkg.com/@webref/css/-/css-6.17.5.tgz#8a2fd737c0dc83f4f317a7e2d5e6a9eeeda033cb"
+ integrity sha512-5DGRIMChcxpYukzLaIlJRrvhsOKgmp9gFsMBwRpXrUSDgls4k719vaXel9FKdBNN4GZd5kelx84ptFCdSShyiA==
"@xtuc/ieee754@^1.2.0":
version "1.2.0"
@@ -4991,6 +5026,11 @@ chokidar@^4.0.0:
dependencies:
readdirp "^4.0.1"
+chownr@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/chownr/-/chownr-3.0.0.tgz#9855e64ecd240a9cc4267ce8a4aa5d24a1da15e4"
+ integrity sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==
+
chrome-trace-event@^1.0.2:
version "1.0.4"
resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz#05bffd7ff928465093314708c93bdfa9bd1f0f5b"
@@ -5260,6 +5300,19 @@ concat-map@0.0.1:
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
+concurrently@^9.1.0:
+ version "9.1.0"
+ resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-9.1.0.tgz#8da6d609f4321752912dab9be8710232ac496aa0"
+ integrity sha512-VxkzwMAn4LP7WyMnJNbHN5mKV9L2IbyDjpzemKr99sXNR3GqRNMMHdm7prV1ws9wg7ETj6WUkNOigZVsptwbgg==
+ dependencies:
+ chalk "^4.1.2"
+ lodash "^4.17.21"
+ rxjs "^7.8.1"
+ shell-quote "^1.8.1"
+ supports-color "^8.1.1"
+ tree-kill "^1.2.2"
+ yargs "^17.7.2"
+
config-chain@^1.1.11:
version "1.1.13"
resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4"
@@ -5328,6 +5381,11 @@ cookie@0.7.2, cookie@^0.7.2:
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.2.tgz#556369c472a2ba910f2979891b526b3436237ed7"
integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==
+cookie@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/cookie/-/cookie-1.0.2.tgz#27360701532116bd3f1f9416929d176afe1e4610"
+ integrity sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==
+
core-js-compat@^3.38.0, core-js-compat@^3.38.1:
version "3.39.0"
resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.39.0.tgz#b12dccb495f2601dc860bdbe7b4e3ffa8ba63f61"
@@ -5905,7 +5963,7 @@ dequal@^2.0.0, dequal@^2.0.3:
resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be"
integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==
-destroy@1.2.0:
+destroy@1.2.0, destroy@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015"
integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==
@@ -5947,6 +6005,15 @@ dexie@^4.0.10:
resolved "https://registry.yarnpkg.com/dexie/-/dexie-4.0.10.tgz#979e3ee75993b44eea3852f97ceb198019d5b287"
integrity sha512-eM2RzuR3i+M046r2Q0Optl3pS31qTWf8aFuA7H9wnsHTwl8EPvroVLwvQene/6paAs39Tbk6fWZcn2aZaHkc/w==
+didyoumean2@4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/didyoumean2/-/didyoumean2-4.1.0.tgz#f813cb7c82c249443e599be077f76e88f24b85e4"
+ integrity sha512-qTBmfQoXvhKO75D/05C8m+fteQmn4U46FWYiLhXtZQInzitXLWY0EQ/2oKnpAz9g2lQWW8jYcLcT+hPJGT+kig==
+ dependencies:
+ "@babel/runtime" "^7.10.2"
+ leven "^3.1.0"
+ lodash.deburr "^4.1.0"
+
diff-sequences@^29.6.3:
version "29.6.3"
resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921"
@@ -6079,10 +6146,10 @@ dot-prop@^8.0.2:
dependencies:
type-fest "^3.8.0"
-dotenv@^16.4.5:
- version "16.4.5"
- resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.5.tgz#cdd3b3b604cb327e286b4762e13502f717cb099f"
- integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==
+dotenv@^16.4.7:
+ version "16.4.7"
+ resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.7.tgz#0e20c5b82950140aa99be360a8a5f52335f53c26"
+ integrity sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==
download@^6.2.2:
version "6.2.5"
@@ -6204,16 +6271,16 @@ enabled@2.0.x:
resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2"
integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==
+encodeurl@^2.0.0, encodeurl@~2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58"
+ integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==
+
encodeurl@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==
-encodeurl@~2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58"
- integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==
-
end-of-stream@^1.0.0, end-of-stream@^1.1.0:
version "1.4.4"
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
@@ -6405,7 +6472,7 @@ escalade@^3.1.1, escalade@^3.2.0:
resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5"
integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==
-escape-html@~1.0.3:
+escape-html@^1.0.3, escape-html@~1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==
@@ -6570,6 +6637,15 @@ eslint-plugin-jsx-a11y@^6.10.2, eslint-plugin-jsx-a11y@^6.5.1:
safe-regex-test "^1.0.3"
string.prototype.includes "^2.0.1"
+eslint-plugin-lit@^1.15.0:
+ version "1.15.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-lit/-/eslint-plugin-lit-1.15.0.tgz#b03728313cb12130f4d264c442bd9f5d4f407d14"
+ integrity sha512-Yhr2MYNz6Ln8megKcX503aVZQln8wsywCG49g0heiJ/Qr5UjkE4pGr4Usez2anNcc7NvlvHbQWMYwWcgH3XRKA==
+ dependencies:
+ parse5 "^6.0.1"
+ parse5-htmlparser2-tree-adapter "^6.0.1"
+ requireindex "^1.2.0"
+
eslint-plugin-n@^17.13.2:
version "17.14.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-n/-/eslint-plugin-n-17.14.0.tgz#162a7c17a7ce7e3834af537bca68ab8b6aa26edc"
@@ -6647,6 +6723,14 @@ eslint-plugin-unicorn@^56.0.1:
semver "^7.6.3"
strip-indent "^3.0.0"
+eslint-plugin-wc@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-wc/-/eslint-plugin-wc-2.2.0.tgz#a93c3dfd9409ff57f421ad8f3313a69a71553cbc"
+ integrity sha512-kjPp+aXz23fOl0JZJOJS+6adwhEv98KjZ2FJqWpc4vtmk4Oenz/JJmmNZrGSARgtyR0BLIF/kVWC6GSlHA+5MA==
+ dependencies:
+ is-valid-element-name "^1.0.0"
+ js-levenshtein-esm "^1.2.0"
+
eslint-scope@5.1.1, eslint-scope@^5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
@@ -6781,7 +6865,7 @@ esutils@^2.0.2:
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
-etag@~1.8.1:
+etag@^1.8.1, etag@~1.8.1:
version "1.8.1"
resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==
@@ -6923,10 +7007,10 @@ expect@^29.0.0, expect@^29.7.0:
jest-message-util "^29.7.0"
jest-util "^29.7.0"
-express@^4.19.2, express@^4.21.1:
- version "4.21.1"
- resolved "https://registry.yarnpkg.com/express/-/express-4.21.1.tgz#9dae5dda832f16b4eec941a4e44aa89ec481b281"
- integrity sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==
+express@^4.19.2, express@^4.21.2:
+ version "4.21.2"
+ resolved "https://registry.yarnpkg.com/express/-/express-4.21.2.tgz#cf250e48362174ead6cea4a566abef0162c1ec32"
+ integrity sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==
dependencies:
accepts "~1.3.8"
array-flatten "1.1.1"
@@ -6947,7 +7031,7 @@ express@^4.19.2, express@^4.21.1:
methods "~1.1.2"
on-finished "2.4.1"
parseurl "~1.3.3"
- path-to-regexp "0.1.10"
+ path-to-regexp "0.1.12"
proxy-addr "~2.0.7"
qs "6.13.0"
range-parser "~1.2.1"
@@ -6989,6 +7073,17 @@ external-editor@^3.0.3, external-editor@^3.1.0:
iconv-lite "^0.4.24"
tmp "^0.0.33"
+extract-zip@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a"
+ integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==
+ dependencies:
+ debug "^4.1.1"
+ get-stream "^5.1.0"
+ yauzl "^2.10.0"
+ optionalDependencies:
+ "@types/yauzl" "^2.9.1"
+
fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
version "3.1.3"
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
@@ -7004,7 +7099,7 @@ fast-equals@^5.0.1:
resolved "https://registry.yarnpkg.com/fast-equals/-/fast-equals-5.0.1.tgz#a4eefe3c5d1c0d021aeed0bc10ba5e0c12ee405d"
integrity sha512-WF1Wi8PwwSY7/6Kx0vKXtw8RwuSGoM1bvDaJbu7MxDlR1vovZjIAKrnzyrThgAjm6JDTu0fVgWXDlMGspodfoQ==
-fast-glob@^3.2.2, fast-glob@^3.2.9, fast-glob@^3.3.1, fast-glob@^3.3.2:
+fast-glob@^3.2.11, fast-glob@^3.2.2, fast-glob@^3.2.9, fast-glob@^3.3.1, fast-glob@^3.3.2:
version "3.3.2"
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129"
integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==
@@ -7364,7 +7459,7 @@ fraction.js@^4.3.7:
resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7"
integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==
-fresh@0.5.2:
+fresh@0.5.2, fresh@^0.5.2:
version "0.5.2"
resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==
@@ -7515,6 +7610,13 @@ get-stream@^4.0.0:
dependencies:
pump "^3.0.0"
+get-stream@^5.1.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"
+ integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
+ dependencies:
+ pump "^3.0.0"
+
get-stream@^6.0.0, get-stream@^6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
@@ -7582,7 +7684,7 @@ glob-to-regexp@^0.4.1:
resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e"
integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==
-glob@^10.0.0:
+glob@^10.0.0, glob@^10.3.7:
version "10.4.5"
resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956"
integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==
@@ -8143,10 +8245,10 @@ html-url-attributes@^3.0.0:
resolved "https://registry.yarnpkg.com/html-url-attributes/-/html-url-attributes-3.0.1.tgz#83b052cd5e437071b756cd74ae70f708870c2d87"
integrity sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==
-html-validate@^8.26.0:
- version "8.26.0"
- resolved "https://registry.yarnpkg.com/html-validate/-/html-validate-8.26.0.tgz#9e5df35e8cd36ad156d7e3d9180e1d2bad81ba0a"
- integrity sha512-nDUlsXbASFM78uPisYjw9q4vildzQnAdBp1WsSVoCl4wlbwRAb1pyM3MWSG/G7o/Dk7ZfvVrCV571U7z/U4sig==
+html-validate@^8.27.0:
+ version "8.27.0"
+ resolved "https://registry.yarnpkg.com/html-validate/-/html-validate-8.27.0.tgz#8ac2d1eda6aa294918d1d0da8c21d85486de4811"
+ integrity sha512-T384MYvG4hUfWxLY6QSlcxfpGYFUJqA+yI4eBDlk5KfjMJco256SvdbJo1pLJUuQCESNbThf60svykdJFidcSA==
dependencies:
"@html-validate/stylish" "^4.1.0"
"@sidvind/better-ajv-errors" "3.0.1"
@@ -8208,7 +8310,7 @@ http-deceiver@^1.2.7:
resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87"
integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==
-http-errors@2.0.0:
+http-errors@2.0.0, http-errors@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3"
integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==
@@ -8854,7 +8956,7 @@ is-png@^3.0.1:
resolved "https://registry.yarnpkg.com/is-png/-/is-png-3.0.1.tgz#423643ad42bf9420a8ccfb4c1dc6c15fac31710b"
integrity sha512-8TqC8+bdsm3YkpI2aECCDycFDl1hTB0HMVRnP3xRRa3Tqx2oVE7sBi1G6CuO9IqEyWSzbBZr1mGqdb3it9h/pg==
-is-potential-custom-element-name@^1.0.1:
+is-potential-custom-element-name@^1.0.0, is-potential-custom-element-name@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5"
integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==
@@ -8937,6 +9039,13 @@ is-unicode-supported@^2.0.0:
resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz#09f0ab0de6d3744d48d265ebb98f65d11f2a9b3a"
integrity sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==
+is-valid-element-name@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-valid-element-name/-/is-valid-element-name-1.0.0.tgz#26ef3fd76cdf1f122d105406e32d35b0de005981"
+ integrity sha512-GZITEJY2LkSjQfaIPBha7eyZv+ge0PhBR7KITeCCWvy7VBQrCUdFkvpI+HrAPQjVtVjy1LvlEkqQTHckoszruw==
+ dependencies:
+ is-potential-custom-element-name "^1.0.0"
+
is-weakmap@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.2.tgz#bf72615d649dfe5f699079c54b83e47d1ae19cfd"
@@ -9488,6 +9597,11 @@ jiti@^1.20.0:
resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.6.tgz#6c7f7398dd4b3142767f9a168af2f317a428d268"
integrity sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==
+js-levenshtein-esm@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/js-levenshtein-esm/-/js-levenshtein-esm-1.2.0.tgz#96532c34e0c90df198c9419963c64ca3cf43ae92"
+ integrity sha512-fzreKVq1eD7eGcQr7MtRpQH94f8gIfhdrc7yeih38xh684TNMK9v5aAu2wxfIRMk/GpAJRrzcirMAPIaSDaByQ==
+
"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
@@ -9597,6 +9711,21 @@ json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1:
resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
+json-schema-to-typescript@^15.0.0:
+ version "15.0.3"
+ resolved "https://registry.yarnpkg.com/json-schema-to-typescript/-/json-schema-to-typescript-15.0.3.tgz#a58bc3e00e4480e76a8ee79471c01233494913be"
+ integrity sha512-iOKdzTUWEVM4nlxpFudFsWyUiu/Jakkga4OZPEt7CGoSEsAsUgdOZqR6pcgx2STBek9Gm4hcarJpXSzIvZ/hKA==
+ dependencies:
+ "@apidevtools/json-schema-ref-parser" "^11.5.5"
+ "@types/json-schema" "^7.0.15"
+ "@types/lodash" "^4.17.7"
+ is-glob "^4.0.3"
+ js-yaml "^4.1.0"
+ lodash "^4.17.21"
+ minimist "^1.2.8"
+ prettier "^3.2.5"
+ tinyglobby "^0.2.9"
+
json-schema-traverse@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
@@ -9765,6 +9894,21 @@ listr2@~8.2.4:
rfdc "^1.4.1"
wrap-ansi "^9.0.0"
+lit-analyzer@^2.0.1:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/lit-analyzer/-/lit-analyzer-2.0.3.tgz#15560ccfb0e1b66fc5521330fc73502b1678621e"
+ integrity sha512-XiAjnwVipNrKav7r3CSEZpWt+mwYxrhPRVC7h8knDmn/HWTzzWJvPe+mwBcL2brn4xhItAMzZhFC8tzzqHKmiQ==
+ dependencies:
+ "@vscode/web-custom-data" "^0.4.2"
+ chalk "^2.4.2"
+ didyoumean2 "4.1.0"
+ fast-glob "^3.2.11"
+ parse5 "5.1.0"
+ ts-simple-type "~2.0.0-next.0"
+ vscode-css-languageservice "4.3.0"
+ vscode-html-languageservice "3.1.0"
+ web-component-analyzer "^2.0.0"
+
lit-element@^4.1.0:
version "4.1.1"
resolved "https://registry.yarnpkg.com/lit-element/-/lit-element-4.1.1.tgz#07905992815076e388cf6f1faffc7d6866c82007"
@@ -9830,6 +9974,11 @@ lodash.debounce@^4.0.8:
resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==
+lodash.deburr@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/lodash.deburr/-/lodash.deburr-4.1.0.tgz#ddb1bbb3ef07458c0177ba07de14422cb033ff9b"
+ integrity sha512-m/M1U1f3ddMCs6Hq2tAsYThTBDaAKFDX3dwDo97GEYzamXi9SqUpjWi/Rrj/gf3X2n8ktwgZrlP1z6E3v/IExQ==
+
lodash.escaperegexp@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz#64762c48618082518ac3df4ccf5d5886dae20347"
@@ -10244,10 +10393,10 @@ mdn-data@2.0.30:
resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc"
integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==
-mdn-data@^2.12.2:
- version "2.12.2"
- resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.12.2.tgz#9ae6c41a9e65adf61318b32bff7b64fbfb13f8cf"
- integrity sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==
+mdn-data@^2.13.0:
+ version "2.13.0"
+ resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.13.0.tgz#10af1de5d0d5e4ceb4fe01f3086b34f1178473d9"
+ integrity sha512-OmD1FDyP706JqPqtLqgev/QCK0qudBdUuKKag6InQ/elEw3Cm2AhXYktcSggdc/vWniYqIsofkcteMEOioW5vQ==
media-typer@0.3.0:
version "0.3.0"
@@ -10635,7 +10784,7 @@ mime-db@1.52.0:
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.53.0.tgz#3cb63cd820fc29896d9d4e8c32ab4fcd74ccb447"
integrity sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==
-mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34:
+mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@^2.1.35, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34:
version "2.1.35"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
@@ -10730,16 +10879,24 @@ minimist-options@4.1.0:
is-plain-obj "^1.1.0"
kind-of "^6.0.3"
-minimist@^1.2.0, minimist@^1.2.6:
+minimist@^1.2.0, minimist@^1.2.6, minimist@^1.2.8:
version "1.2.8"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
-"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2:
+"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.4, minipass@^7.1.2:
version "7.1.2"
resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707"
integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==
+minizlib@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-3.0.1.tgz#46d5329d1eb3c83924eff1d3b858ca0a31581012"
+ integrity sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==
+ dependencies:
+ minipass "^7.0.4"
+ rimraf "^5.0.5"
+
mkdirp@^0.5.1:
version "0.5.6"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6"
@@ -10747,6 +10904,11 @@ mkdirp@^0.5.1:
dependencies:
minimist "^1.2.6"
+mkdirp@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-3.0.1.tgz#e44e4c5607fb279c168241713cc6e0fea9adcb50"
+ integrity sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==
+
module-details-from-path@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/module-details-from-path/-/module-details-from-path-1.0.3.tgz#114c949673e2a8a35e9d35788527aa37b679da2b"
@@ -11138,10 +11300,10 @@ open@^10.0.3, open@^10.1.0:
is-inside-container "^1.0.0"
is-wsl "^3.1.0"
-openai@^4.73.1:
- version "4.73.1"
- resolved "https://registry.yarnpkg.com/openai/-/openai-4.73.1.tgz#532bd000d5f1a558e4fff1119da6749992ac41e4"
- integrity sha512-nWImDJBcUsqrhy7yJScXB4+iqjzbUEgzfA3un/6UnHFdwWhjX24oztj69Ped/njABfOdLcO/F7CeWTI5dt8Xmg==
+openai@^4.76.0:
+ version "4.76.0"
+ resolved "https://registry.yarnpkg.com/openai/-/openai-4.76.0.tgz#0ba135ff6452eadbce980c604f98799dfa239325"
+ integrity sha512-QBGIetjX1C9xDp5XGa/3mPnfKI9BgAe2xHQX6PmO98wuW9qQaurBaumcYptQWc9LHZZq7cH/Y1Rjnsr6uUDdVw==
dependencies:
"@types/node" "^18.11.18"
"@types/node-fetch" "^2.6.4"
@@ -11367,6 +11529,13 @@ parse-ms@^4.0.0:
resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-4.0.0.tgz#c0c058edd47c2a590151a718990533fd62803df4"
integrity sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==
+parse5-htmlparser2-tree-adapter@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6"
+ integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==
+ dependencies:
+ parse5 "^6.0.1"
+
parse5-htmlparser2-tree-adapter@^7.0.0:
version "7.1.0"
resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz#b5a806548ed893a43e24ccb42fbb78069311e81b"
@@ -11375,6 +11544,16 @@ parse5-htmlparser2-tree-adapter@^7.0.0:
domhandler "^5.0.3"
parse5 "^7.0.0"
+parse5@5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2"
+ integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==
+
+parse5@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b"
+ integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==
+
parse5@^7.0.0, parse5@^7.1.1, parse5@^7.1.2:
version "7.2.1"
resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.2.1.tgz#8928f55915e6125f430cc44309765bf17556a33a"
@@ -11438,10 +11617,10 @@ path-scurry@^1.11.1:
lru-cache "^10.2.0"
minipass "^5.0.0 || ^6.0.2 || ^7.0.0"
-path-to-regexp@0.1.10:
- version "0.1.10"
- resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.10.tgz#67e9108c5c0551b9e5326064387de4763c4d5f8b"
- integrity sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==
+path-to-regexp@0.1.12:
+ version "0.1.12"
+ resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.12.tgz#d5e1a12e478a976d432ef3c58d534b9923164bb7"
+ integrity sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==
path-type@^4.0.0:
version "4.0.0"
@@ -12303,10 +12482,10 @@ prettier-plugin-packagejson@^2.5.6:
sort-package-json "2.12.0"
synckit "0.9.2"
-prettier@^3.4.1:
- version "3.4.1"
- resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.4.1.tgz#e211d451d6452db0a291672ca9154bc8c2579f7b"
- integrity sha512-G+YdqtITVZmOJje6QkXQWzl3fSfMxFwm1tjTyo9exhkmWSqC4Yhd1+lug++IlR2mvRVAxEDDWYkQdeSztajqgg==
+prettier@^3.2.5, prettier@^3.4.2:
+ version "3.4.2"
+ resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.4.2.tgz#a5ce1fb522a588bf2b78ca44c6e6fe5aa5a2b13f"
+ integrity sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==
pretty-error@^4.0.0:
version "4.0.0"
@@ -12566,25 +12745,27 @@ react-modal@^3.16.1:
react-lifecycles-compat "^3.0.0"
warning "^4.0.3"
-react-refresh@^0.14:
- version "0.14.2"
- resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.2.tgz#3833da01ce32da470f1f936b9d477da5c7028bf9"
- integrity sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==
+react-refresh@^0.16:
+ version "0.16.0"
+ resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.16.0.tgz#e7d45625f05c9709466d09348a25d22f79b2ad23"
+ integrity sha512-FPvF2XxTSikpJxcr+bHut2H4gJ17+18Uy20D5/F+SKzFap62R3cM5wH6b8WN3LyGSYeQilLEcJcR1fjBSI2S1A==
-react-router-dom@^6.28.0:
- version "6.28.0"
- resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.28.0.tgz#f73ebb3490e59ac9f299377062ad1d10a9f579e6"
- integrity sha512-kQ7Unsl5YdyOltsPGl31zOjLrDv+m2VcIEcIHqYYD3Lp0UppLjrzcfJqDJwXxFw3TH/yvapbnUvPlAj7Kx5nbg==
+react-router-dom@^7.0.2:
+ version "7.0.2"
+ resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-7.0.2.tgz#cbd7ce2db7112f1bc3e9eee3657ad32d7515a913"
+ integrity sha512-VJOQ+CDWFDGaWdrG12Nl+d7yHtLaurNgAQZVgaIy7/Xd+DojgmYLosFfZdGz1wpxmjJIAkAMVTKWcvkx1oggAw==
dependencies:
- "@remix-run/router" "1.21.0"
- react-router "6.28.0"
+ react-router "7.0.2"
-react-router@6.28.0, react-router@^6.17.0:
- version "6.28.0"
- resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.28.0.tgz#29247c86d7ba901d7e5a13aa79a96723c3e59d0d"
- integrity sha512-HrYdIFqdrnhDw0PqG/AKjAqEqM7AvxCz0DQ4h2W8k6nqmc5uRBYDag0SBxx9iYz5G8gnuNVLzUe13wl9eAsXXg==
+react-router@7.0.2, react-router@^7.0.2:
+ version "7.0.2"
+ resolved "https://registry.yarnpkg.com/react-router/-/react-router-7.0.2.tgz#2820e107cb8cec8acc5db15a17470c056ea86022"
+ integrity sha512-m5AcPfTRUcjwmhBzOJGEl6Y7+Crqyju0+TgTQxoS4SO+BkWbhOrcfZNq6wSWdl2BBbJbsAoBUb8ZacOFT+/JlA==
dependencies:
- "@remix-run/router" "1.21.0"
+ "@types/cookie" "^0.6.0"
+ cookie "^1.0.1"
+ set-cookie-parser "^2.6.0"
+ turbo-stream "2.4.0"
react@^18.3.1:
version "18.3.1"
@@ -12928,6 +13109,11 @@ require-in-the-middle@^7.1.1:
module-details-from-path "^1.0.3"
resolve "^1.22.8"
+requireindex@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.2.0.tgz#3463cdb22ee151902635aa6c9535d4de9c2ef1ef"
+ integrity sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==
+
requires-port@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
@@ -13051,6 +13237,13 @@ rimraf@^3.0.2:
dependencies:
glob "^7.1.3"
+rimraf@^5.0.5:
+ version "5.0.10"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-5.0.10.tgz#23b9843d3dc92db71f96e1a2ce92e39fd2a8221c"
+ integrity sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==
+ dependencies:
+ glob "^10.3.7"
+
rough-notation@^0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/rough-notation/-/rough-notation-0.5.1.tgz#32abbb16b973fb00fba83ab96b18704e98620e95"
@@ -13085,6 +13278,13 @@ rxjs@^6.4.0:
dependencies:
tslib "^1.9.0"
+rxjs@^7.8.1:
+ version "7.8.1"
+ resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543"
+ integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==
+ dependencies:
+ tslib "^2.1.0"
+
safe-array-concat@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.2.tgz#81d77ee0c4e8b863635227c721278dd524c20edb"
@@ -13136,17 +13336,17 @@ sanitize.css@13.0.0:
resolved "https://registry.yarnpkg.com/sanitize.css/-/sanitize.css-13.0.0.tgz#2675553974b27964c75562ade3bd85d79879f173"
integrity sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==
-sass-loader@^16.0.3:
- version "16.0.3"
- resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-16.0.3.tgz#17b944fab6702dc7a52c5d2a88cbfa38c39cdc75"
- integrity sha512-gosNorT1RCkuCMyihv6FBRR7BMV06oKRAs+l4UMp1mlcVg9rWN6KMmUj3igjQwmYys4mDP3etEYJgiHRbgHCHA==
+sass-loader@^16.0.4:
+ version "16.0.4"
+ resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-16.0.4.tgz#5c2afb755fbc0a45a004369efa11579518a39a45"
+ integrity sha512-LavLbgbBGUt3wCiYzhuLLu65+fWXaXLmq7YxivLhEqmiupCFZ5sKUAipK3do6V80YSU0jvSxNhEdT13IXNr3rg==
dependencies:
neo-async "^2.6.2"
-sass@^1.81.0:
- version "1.81.0"
- resolved "https://registry.yarnpkg.com/sass/-/sass-1.81.0.tgz#a9010c0599867909dfdbad057e4a6fbdd5eec941"
- integrity sha512-Q4fOxRfhmv3sqCLoGfvrC9pRV8btc0UtqL9mN6Yrv6Qi9ScL55CVH1vlPP863ISLEEMNLLuu9P+enCeGHlnzhA==
+sass@^1.82.0:
+ version "1.82.0"
+ resolved "https://registry.yarnpkg.com/sass/-/sass-1.82.0.tgz#30da277af3d0fa6042e9ceabd0d984ed6d07df70"
+ integrity sha512-j4GMCTa8elGyN9A7x7bEglx0VgSpNUG4W4wNedQ33wSMdnkqQCT8HTwOaVSV4e6yQovcu/3Oc4coJP/l0xhL2Q==
dependencies:
chokidar "^4.0.0"
immutable "^5.0.2"
@@ -13258,24 +13458,23 @@ send@0.19.0:
range-parser "~1.2.1"
statuses "2.0.1"
-send@^0.19.0:
- version "0.19.1"
- resolved "https://registry.yarnpkg.com/send/-/send-0.19.1.tgz#1c2563b2ee4fe510b806b21ec46f355005a369f9"
- integrity sha512-p4rRk4f23ynFEfcD9LA0xRYngj+IyGiEYyqqOak8kaN0TvNmuxC2dcVeBn62GpCeR2CpWqyHCNScTP91QbAVFg==
+send@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/send/-/send-1.1.0.tgz#4efe6ff3bb2139b0e5b2648d8b18d4dec48fc9c5"
+ integrity sha512-v67WcEouB5GxbTWL/4NeToqcZiAWEq90N888fczVArY8A79J0L4FD7vj5hm3eUMua5EpoQ59wa/oovY6TLvRUA==
dependencies:
- debug "2.6.9"
- depd "2.0.0"
- destroy "1.2.0"
- encodeurl "~2.0.0"
- escape-html "~1.0.3"
- etag "~1.8.1"
- fresh "0.5.2"
- http-errors "2.0.0"
- mime "1.6.0"
- ms "2.1.3"
- on-finished "2.4.1"
- range-parser "~1.2.1"
- statuses "2.0.1"
+ debug "^4.3.5"
+ destroy "^1.2.0"
+ encodeurl "^2.0.0"
+ escape-html "^1.0.3"
+ etag "^1.8.1"
+ fresh "^0.5.2"
+ http-errors "^2.0.0"
+ mime-types "^2.1.35"
+ ms "^2.1.3"
+ on-finished "^2.4.1"
+ range-parser "^1.2.1"
+ statuses "^2.0.1"
serialize-javascript@^6.0.1, serialize-javascript@^6.0.2:
version "6.0.2"
@@ -13307,6 +13506,11 @@ serve-static@1.16.2:
parseurl "~1.3.3"
send "0.19.0"
+set-cookie-parser@^2.6.0:
+ version "2.7.1"
+ resolved "https://registry.yarnpkg.com/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz#3016f150072202dfbe90fadee053573cc89d2943"
+ integrity sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==
+
set-function-length@^1.2.1:
version "1.2.2"
resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449"
@@ -13662,7 +13866,7 @@ stackframe@^1.3.4:
resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.3.4.tgz#b881a004c8c149a5e8efef37d51b16e412943310"
integrity sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==
-statuses@2.0.1:
+statuses@2.0.1, statuses@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63"
integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==
@@ -14118,7 +14322,7 @@ supports-color@^7.0.0, supports-color@^7.1.0:
dependencies:
has-flag "^4.0.0"
-supports-color@^8.0.0:
+supports-color@^8.0.0, supports-color@^8.1.1:
version "8.1.1"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c"
integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
@@ -14233,6 +14437,18 @@ tar-stream@^1.5.2:
to-buffer "^1.1.1"
xtend "^4.0.0"
+tar@^7.4.3:
+ version "7.4.3"
+ resolved "https://registry.yarnpkg.com/tar/-/tar-7.4.3.tgz#88bbe9286a3fcd900e94592cda7a22b192e80571"
+ integrity sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==
+ dependencies:
+ "@isaacs/fs-minipass" "^4.0.0"
+ chownr "^3.0.0"
+ minipass "^7.1.2"
+ minizlib "^3.0.1"
+ mkdirp "^3.0.1"
+ yallist "^5.0.0"
+
temp-dir@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d"
@@ -14440,6 +14656,11 @@ tree-dump@^1.0.1:
resolved "https://registry.yarnpkg.com/tree-dump/-/tree-dump-1.0.2.tgz#c460d5921caeb197bde71d0e9a7b479848c5b8ac"
integrity sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==
+tree-kill@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc"
+ integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==
+
trim-lines@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338"
@@ -14499,6 +14720,14 @@ ts-jest@^29.2.5:
semver "^7.6.3"
yargs-parser "^21.1.1"
+ts-lit-plugin@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/ts-lit-plugin/-/ts-lit-plugin-2.0.2.tgz#dbf28cf9c81cad626a7b1d9d880db6df4ce66259"
+ integrity sha512-DPXlVxhjWHxg8AyBLcfSYt2JXgpANV1ssxxwjY98o26gD8MzeiM68HFW9c2VeDd1CjoR3w7B/6/uKxwBQe+ioA==
+ dependencies:
+ lit-analyzer "^2.0.1"
+ web-component-analyzer "^2.0.0"
+
ts-loader@^9.5.1:
version "9.5.1"
resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.5.1.tgz#63d5912a86312f1fbe32cef0859fb8b2193d9b89"
@@ -14529,6 +14758,11 @@ ts-node@^10.9.2:
v8-compile-cache-lib "^3.0.1"
yn "3.1.1"
+ts-simple-type@2.0.0-next.0, ts-simple-type@~2.0.0-next.0:
+ version "2.0.0-next.0"
+ resolved "https://registry.yarnpkg.com/ts-simple-type/-/ts-simple-type-2.0.0-next.0.tgz#262a321ba2a17aa57f88ef31e30453beff5be246"
+ integrity sha512-A+hLX83gS+yH6DtzNAhzZbPfU+D9D8lHlTSd7GeoMRBjOt3GRylDqLTYbdmjA4biWvq2xSfpqfIDj2l0OA/BVg==
+
tsconfig-paths@^3.15.0:
version "3.15.0"
resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4"
@@ -14549,6 +14783,11 @@ tslib@^2.0.0, tslib@^2.0.3, tslib@^2.3.0, tslib@^2.3.1, tslib@^2.4.1, tslib@^2.6
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f"
integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==
+tslib@^2.1.0:
+ version "2.8.0"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.0.tgz#d124c86c3c05a40a91e6fdea4021bd31d377971b"
+ integrity sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==
+
tsutils@^3.21.0:
version "3.21.0"
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623"
@@ -14563,6 +14802,11 @@ tunnel-agent@^0.6.0:
dependencies:
safe-buffer "^5.0.1"
+turbo-stream@2.4.0:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/turbo-stream/-/turbo-stream-2.4.0.tgz#1e4fca6725e90fa14ac4adb782f2d3759a5695f0"
+ integrity sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==
+
type-check@^0.4.0, type-check@~0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
@@ -14662,19 +14906,24 @@ typed-array-length@^1.0.6:
is-typed-array "^1.1.13"
possible-typed-array-names "^1.0.0"
-typescript-eslint@^8.16.0:
- version "8.16.0"
- resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.16.0.tgz#d608c972d6b2461ca10ec30fd3fa62a080baba19"
- integrity sha512-wDkVmlY6O2do4V+lZd0GtRfbtXbeD0q9WygwXXSJnC1xorE8eqyC2L1tJimqpSeFrOzRlYtWnUp/uzgHQOgfBQ==
+typescript-eslint@^8.17.0:
+ version "8.17.0"
+ resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.17.0.tgz#fa4033c26b3b40f778287bc12918d985481b220b"
+ integrity sha512-409VXvFd/f1br1DCbuKNFqQpXICoTB+V51afcwG1pn1a3Cp92MqAUges3YjwEdQ0cMUoCIodjVDAYzyD8h3SYA==
dependencies:
- "@typescript-eslint/eslint-plugin" "8.16.0"
- "@typescript-eslint/parser" "8.16.0"
- "@typescript-eslint/utils" "8.16.0"
+ "@typescript-eslint/eslint-plugin" "8.17.0"
+ "@typescript-eslint/parser" "8.17.0"
+ "@typescript-eslint/utils" "8.17.0"
-typescript@^5.6.3:
- version "5.6.3"
- resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.6.3.tgz#5f3449e31c9d94febb17de03cc081dd56d81db5b"
- integrity sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==
+typescript@^5.7.2:
+ version "5.7.2"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.7.2.tgz#3169cf8c4c8a828cde53ba9ecb3d2b1d5dd67be6"
+ integrity sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==
+
+typescript@~5.2.0:
+ version "5.2.2"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78"
+ integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==
uint8array-extras@^1.1.0, uint8array-extras@^1.3.0:
version "1.4.0"
@@ -15025,6 +15274,46 @@ vfile@^6.0.0:
"@types/unist" "^3.0.0"
vfile-message "^4.0.0"
+vscode-css-languageservice@4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/vscode-css-languageservice/-/vscode-css-languageservice-4.3.0.tgz#40c797d664ab6188cace33cfbb19b037580a9318"
+ integrity sha512-BkQAMz4oVHjr0oOAz5PdeE72txlLQK7NIwzmclfr+b6fj6I8POwB+VoXvrZLTbWt9hWRgfvgiQRkh5JwrjPJ5A==
+ dependencies:
+ vscode-languageserver-textdocument "^1.0.1"
+ vscode-languageserver-types "3.16.0-next.2"
+ vscode-nls "^4.1.2"
+ vscode-uri "^2.1.2"
+
+vscode-html-languageservice@3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/vscode-html-languageservice/-/vscode-html-languageservice-3.1.0.tgz#265b53bda595e6947b16b0fb8c604e1e58685393"
+ integrity sha512-QAyRHI98bbEIBCqTzZVA0VblGU40na0txggongw5ZgTj9UVsVk5XbLT16O9OTcbqBGSqn0oWmFDNjK/XGIDcqg==
+ dependencies:
+ vscode-languageserver-textdocument "^1.0.1"
+ vscode-languageserver-types "3.16.0-next.2"
+ vscode-nls "^4.1.2"
+ vscode-uri "^2.1.2"
+
+vscode-languageserver-textdocument@^1.0.1:
+ version "1.0.12"
+ resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz#457ee04271ab38998a093c68c2342f53f6e4a631"
+ integrity sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==
+
+vscode-languageserver-types@3.16.0-next.2:
+ version "3.16.0-next.2"
+ resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0-next.2.tgz#940bd15c992295a65eae8ab6b8568a1e8daa3083"
+ integrity sha512-QjXB7CKIfFzKbiCJC4OWC8xUncLsxo19FzGVp/ADFvvi87PlmBSCAtZI5xwGjF5qE0xkLf0jjKUn3DzmpDP52Q==
+
+vscode-nls@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-4.1.2.tgz#ca8bf8bb82a0987b32801f9fddfdd2fb9fd3c167"
+ integrity sha512-7bOHxPsfyuCqmP+hZXscLhiHwe7CSuFE4hyhbs22xPIhQ4jv99FcR4eBzfYYVLP356HNFpdvz63FFb/xw6T4Iw==
+
+vscode-uri@^2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-2.1.2.tgz#c8d40de93eb57af31f3c715dd650e2ca2c096f1c"
+ integrity sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==
+
w3c-keyname@^2.2.4:
version "2.2.8"
resolved "https://registry.yarnpkg.com/w3c-keyname/-/w3c-keyname-2.2.8.tgz#7b17c8c6883d4e8b86ac8aba79d39e880f8869c5"
@@ -15073,10 +15362,20 @@ wbuf@^1.1.0, wbuf@^1.7.3:
dependencies:
minimalistic-assert "^1.0.0"
-web-features@^2.8.0:
- version "2.8.0"
- resolved "https://registry.yarnpkg.com/web-features/-/web-features-2.8.0.tgz#6b1b79e30ca7e7e0160f2d3527b1dfc5275c6a64"
- integrity sha512-KR0C0mFyTw83pJmBX/Zrymak5ip79wlq3gSoLJhY4T9+AnVc60RRUv4/aBUxERPjw/jQEGxd2sfRRv4Y2/QZkA==
+web-component-analyzer@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/web-component-analyzer/-/web-component-analyzer-2.0.0.tgz#38a66055ae2340fceaea84f19f9ee3f15233ba28"
+ integrity sha512-UEvwfpD+XQw99sLKiH5B1T4QwpwNyWJxp59cnlRwFfhUW6JsQpw5jMeMwi7580sNou8YL3kYoS7BWLm+yJ/jVQ==
+ dependencies:
+ fast-glob "^3.2.2"
+ ts-simple-type "2.0.0-next.0"
+ typescript "~5.2.0"
+ yargs "^17.7.2"
+
+web-features@^2.11.0:
+ version "2.11.0"
+ resolved "https://registry.yarnpkg.com/web-features/-/web-features-2.11.0.tgz#ce7eae2c6978cc8789fa3f2911307f1cb7874cb4"
+ integrity sha512-uc/qCCyT4bK4qSo1hvHtH4fYYoAtR2+Bx0MksgHn/5gLmTyIL4L4r+UQIhMDNC/73/gd9Y6vsiITOlrou5mk2A==
web-namespaces@^2.0.0:
version "2.0.1"
@@ -15221,16 +15520,16 @@ webpack-sources@^3.2.3:
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde"
integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==
-webpack@^5, webpack@^5.96.1:
- version "5.96.1"
- resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.96.1.tgz#3676d1626d8312b6b10d0c18cc049fba7ac01f0c"
- integrity sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA==
+webpack@^5, webpack@^5.97.1:
+ version "5.97.1"
+ resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.97.1.tgz#972a8320a438b56ff0f1d94ade9e82eac155fa58"
+ integrity sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg==
dependencies:
"@types/eslint-scope" "^3.7.7"
"@types/estree" "^1.0.6"
- "@webassemblyjs/ast" "^1.12.1"
- "@webassemblyjs/wasm-edit" "^1.12.1"
- "@webassemblyjs/wasm-parser" "^1.12.1"
+ "@webassemblyjs/ast" "^1.14.1"
+ "@webassemblyjs/wasm-edit" "^1.14.1"
+ "@webassemblyjs/wasm-parser" "^1.14.1"
acorn "^8.14.0"
browserslist "^4.24.0"
chrome-trace-event "^1.0.2"
@@ -15545,6 +15844,11 @@ yallist@^4.0.0:
resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
+yallist@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/yallist/-/yallist-5.0.0.tgz#00e2de443639ed0d78fd87de0d27469fbcffb533"
+ integrity sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==
+
yaml@^1.10.0:
version "1.10.2"
resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
@@ -15565,7 +15869,7 @@ yargs-parser@^21.1.1:
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35"
integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==
-yargs@^17.3.1:
+yargs@^17.3.1, yargs@^17.7.2:
version "17.7.2"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269"
integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==
@@ -15578,7 +15882,7 @@ yargs@^17.3.1:
y18n "^5.0.5"
yargs-parser "^21.1.1"
-yauzl@^2.4.2, yauzl@^2.9.2:
+yauzl@^2.10.0, yauzl@^2.4.2, yauzl@^2.9.2:
version "2.10.0"
resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"
integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==