From fde2c23eba3e5bcc46417ad52b47880c7b7d16bd Mon Sep 17 00:00:00 2001 From: David Darke Date: Wed, 18 Mar 2026 20:47:06 +0000 Subject: [PATCH 01/62] Added a working version of an "add media proxy" command. But needs to be a toggle and not rely on .env files --- packages/cli/src/commands/add-media-proxy.ts | 98 ++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 packages/cli/src/commands/add-media-proxy.ts diff --git a/packages/cli/src/commands/add-media-proxy.ts b/packages/cli/src/commands/add-media-proxy.ts new file mode 100644 index 00000000..8fb77457 --- /dev/null +++ b/packages/cli/src/commands/add-media-proxy.ts @@ -0,0 +1,98 @@ +import { readFile, writeFile } from "node:fs/promises"; +import { homedir } from "node:os"; +import { join } from "node:path"; +import { getSmashConfig } from "@atomicsmash/smash-config"; + +const PROXY_MARKER = "location @uploadsproxy"; + +function buildProxyBlock(stagingUrl: string) { + return ` + location ^~ /wp-content/uploads/ { + try_files $uri @uploadsproxy; + } + + location @uploadsproxy { + resolver 8.8.8.8 ipv6=off; + resolver_timeout 10s; + proxy_http_version 1.1; + proxy_ssl_server_name on; + proxy_pass https:${stagingUrl}$uri$is_args$args; + proxy_ssl_verify off; + proxy_set_header Referer ""; + proxy_set_header User-Agent "Mozilla/5.0"; + }`; +} + +export const command = "add-media-proxy"; +export const describe = + "Update the local NGINX config within Herd to add a media proxy."; +export async function handler() { + const smashConfig = await getSmashConfig(); + if (!smashConfig) { + throw new Error( + "Unable to determine project setup information. Please add a smash.config.ts file with the required info.", + ); + } + + const stagingUrl = process.env.STAGING_URL?.endsWith("/") + ? process.env.STAGING_URL.slice(0, -1) + : process.env.STAGING_URL; + + if (!stagingUrl) { + throw new Error("STAGING_URL is missing from .env file."); + } + + const { projectName } = smashConfig; + const nginxConfigPath = join( + homedir(), + "Library/Application Support/Herd/config/valet/Nginx", + `${projectName}.test`, + ); + + let config: string; + try { + config = await readFile(nginxConfigPath, "utf-8"); + } catch { + throw new Error( + `Could not read NGINX config at: ${nginxConfigPath}\nMake sure the site exists in Herd.`, + ); + } + + if (config.includes(PROXY_MARKER)) { + console.log("Media proxy block already exists in NGINX config. Nothing to do."); + return; + } + + // Find the SSL server block by locating the listen directive. + const listenDirective = "listen 127.0.0.1:443 ssl;"; + const listenIndex = config.indexOf(listenDirective); + if (listenIndex === -1) { + throw new Error( + "Could not locate the SSL server block (listen 127.0.0.1:443 ssl;) in the NGINX config.", + ); + } + + // The Herd-generated config has intentionally unclosed nested location blocks, + // so brace counting won't work. Instead, find the boundary of this server block + // by looking for the next top-level `server {` after the listen directive + // (or end of file), then scan backwards for the last `}` before that boundary. + const nextServerBlockIndex = config.indexOf("\nserver", listenIndex); + const searchUpTo = + nextServerBlockIndex !== -1 ? nextServerBlockIndex : config.length; + + const serverBlockEnd = config.lastIndexOf("}", searchUpTo); + if (serverBlockEnd === -1 || serverBlockEnd < listenIndex) { + throw new Error("Could not locate the closing brace of the SSL server block."); + } + + const proxyBlock = buildProxyBlock(stagingUrl); + const updatedConfig = + config.slice(0, serverBlockEnd) + + proxyBlock + + "\n" + + config.slice(serverBlockEnd); + + await writeFile(nginxConfigPath, updatedConfig, "utf-8"); + console.log(`Media proxy added to ${nginxConfigPath}`); + console.log("Run `herd restart` or restart Herd via the UI for the changes to take effect."); +} From 6e12ed6240493e8a13d9b7cb063ceae8f028ad46 Mon Sep 17 00:00:00 2001 From: David Darke Date: Wed, 18 Mar 2026 22:02:46 +0000 Subject: [PATCH 02/62] Shifted this to a toggle functionality --- .changeset/lucky-games-pump.md | 5 + ...d-media-proxy.ts => toggle-media-proxy.ts} | 92 +++++++++++-------- 2 files changed, 57 insertions(+), 40 deletions(-) create mode 100644 .changeset/lucky-games-pump.md rename packages/cli/src/commands/{add-media-proxy.ts => toggle-media-proxy.ts} (64%) diff --git a/.changeset/lucky-games-pump.md b/.changeset/lucky-games-pump.md new file mode 100644 index 00000000..f0da46c1 --- /dev/null +++ b/.changeset/lucky-games-pump.md @@ -0,0 +1,5 @@ +--- +"@atomicsmash/cli": major +--- + +Added new toggle media proxy function diff --git a/packages/cli/src/commands/add-media-proxy.ts b/packages/cli/src/commands/toggle-media-proxy.ts similarity index 64% rename from packages/cli/src/commands/add-media-proxy.ts rename to packages/cli/src/commands/toggle-media-proxy.ts index 8fb77457..08a8a669 100644 --- a/packages/cli/src/commands/add-media-proxy.ts +++ b/packages/cli/src/commands/toggle-media-proxy.ts @@ -3,9 +3,9 @@ import { homedir } from "node:os"; import { join } from "node:path"; import { getSmashConfig } from "@atomicsmash/smash-config"; -const PROXY_MARKER = "location @uploadsproxy"; +export const PROXY_MARKER = "location @uploadsproxy"; -function buildProxyBlock(stagingUrl: string) { +export function buildProxyBlock(stagingUrl: string) { return ` location ^~ /wp-content/uploads/ { try_files $uri @uploadsproxy; @@ -17,15 +17,50 @@ function buildProxyBlock(stagingUrl: string) { proxy_http_version 1.1; proxy_ssl_server_name on; proxy_pass https:${stagingUrl}$uri$is_args$args; - proxy_ssl_verify off; - proxy_set_header Referer ""; - proxy_set_header User-Agent "Mozilla/5.0"; + proxy_ssl_verify off; + proxy_set_header Referer ""; + proxy_set_header User-Agent "Mozilla/5.0"; }`; } -export const command = "add-media-proxy"; +export function addProxyBlock(config: string, stagingUrl: string): string { + const listenDirective = "listen 127.0.0.1:443 ssl;"; + const listenIndex = config.indexOf(listenDirective); + if (listenIndex === -1) { + throw new Error( + "Could not locate the SSL server block (listen 127.0.0.1:443 ssl;) in the NGINX config.", + ); + } + + const nextServerBlockIndex = config.indexOf("\nserver", listenIndex); + const searchUpTo = + nextServerBlockIndex !== -1 ? nextServerBlockIndex : config.length; + + const serverBlockEnd = config.lastIndexOf("}", searchUpTo); + if (serverBlockEnd === -1 || serverBlockEnd < listenIndex) { + throw new Error( + "Could not locate the closing brace of the SSL server block.", + ); + } + + return ( + config.slice(0, serverBlockEnd) + + buildProxyBlock(stagingUrl) + + "\n" + + config.slice(serverBlockEnd) + ); +} + +export function removeProxyBlock(config: string): string { + return config.replace( + /\n\s*location \^~ \/wp-content\/uploads\/\s*\{[\s\S]*?location @uploadsproxy\s*\{[\s\S]*?\}/, + "", + ); +} + +export const command = "toggle-media-proxy"; export const describe = - "Update the local NGINX config within Herd to add a media proxy."; + "Toggle the media proxy in the local NGINX config within Herd."; export async function handler() { const smashConfig = await getSmashConfig(); if (!smashConfig) { @@ -58,41 +93,18 @@ export async function handler() { ); } - if (config.includes(PROXY_MARKER)) { - console.log("Media proxy block already exists in NGINX config. Nothing to do."); - return; - } - - // Find the SSL server block by locating the listen directive. - const listenDirective = "listen 127.0.0.1:443 ssl;"; - const listenIndex = config.indexOf(listenDirective); - if (listenIndex === -1) { - throw new Error( - "Could not locate the SSL server block (listen 127.0.0.1:443 ssl;) in the NGINX config.", - ); - } + let updatedConfig: string; - // The Herd-generated config has intentionally unclosed nested location blocks, - // so brace counting won't work. Instead, find the boundary of this server block - // by looking for the next top-level `server {` after the listen directive - // (or end of file), then scan backwards for the last `}` before that boundary. - const nextServerBlockIndex = config.indexOf("\nserver", listenIndex); - const searchUpTo = - nextServerBlockIndex !== -1 ? nextServerBlockIndex : config.length; - - const serverBlockEnd = config.lastIndexOf("}", searchUpTo); - if (serverBlockEnd === -1 || serverBlockEnd < listenIndex) { - throw new Error("Could not locate the closing brace of the SSL server block."); + if (config.includes(PROXY_MARKER)) { + updatedConfig = removeProxyBlock(config); + console.log("Media proxy removed from NGINX config."); + } else { + updatedConfig = addProxyBlock(config, stagingUrl); + console.log("Media proxy added to NGINX config."); } - const proxyBlock = buildProxyBlock(stagingUrl); - const updatedConfig = - config.slice(0, serverBlockEnd) + - proxyBlock + - "\n" + - config.slice(serverBlockEnd); - await writeFile(nginxConfigPath, updatedConfig, "utf-8"); - console.log(`Media proxy added to ${nginxConfigPath}`); - console.log("Run `herd restart` or restart Herd via the UI for the changes to take effect."); + console.log( + "Run `herd restart` or restart Herd via the UI for the changes to take effect.", + ); } From e94da6a4ed480034721a24d75c58e2547fe01ea5 Mon Sep 17 00:00:00 2001 From: David Darke Date: Wed, 8 Apr 2026 21:48:10 +0100 Subject: [PATCH 03/62] Added HTTP auth process to proxy --- .changeset/itchy-eagles-give.md | 5 ++++ .../cli/src/commands/toggle-media-proxy.ts | 28 +++++++++++++++---- 2 files changed, 27 insertions(+), 6 deletions(-) create mode 100644 .changeset/itchy-eagles-give.md diff --git a/.changeset/itchy-eagles-give.md b/.changeset/itchy-eagles-give.md new file mode 100644 index 00000000..fec577be --- /dev/null +++ b/.changeset/itchy-eagles-give.md @@ -0,0 +1,5 @@ +--- +"@atomicsmash/cli": minor +--- + +Added a new media proxy command diff --git a/packages/cli/src/commands/toggle-media-proxy.ts b/packages/cli/src/commands/toggle-media-proxy.ts index 08a8a669..e2365269 100644 --- a/packages/cli/src/commands/toggle-media-proxy.ts +++ b/packages/cli/src/commands/toggle-media-proxy.ts @@ -5,7 +5,10 @@ import { getSmashConfig } from "@atomicsmash/smash-config"; export const PROXY_MARKER = "location @uploadsproxy"; -export function buildProxyBlock(stagingUrl: string) { +export function buildProxyBlock(stagingUrl: string, httpAuth?: string) { + const authHeader = httpAuth + ? `\n proxy_set_header Authorization "Basic ${httpAuth}";` + : ""; return ` location ^~ /wp-content/uploads/ { try_files $uri @uploadsproxy; @@ -19,11 +22,11 @@ export function buildProxyBlock(stagingUrl: string) { proxy_pass https:${stagingUrl}$uri$is_args$args; proxy_ssl_verify off; proxy_set_header Referer ""; - proxy_set_header User-Agent "Mozilla/5.0"; + proxy_set_header User-Agent "Mozilla/5.0";${authHeader} }`; } -export function addProxyBlock(config: string, stagingUrl: string): string { +export function addProxyBlock(config: string, stagingUrl: string, httpAuth?: string): string { const listenDirective = "listen 127.0.0.1:443 ssl;"; const listenIndex = config.indexOf(listenDirective); if (listenIndex === -1) { @@ -45,7 +48,7 @@ export function addProxyBlock(config: string, stagingUrl: string): string { return ( config.slice(0, serverBlockEnd) + - buildProxyBlock(stagingUrl) + + buildProxyBlock(stagingUrl, httpAuth) + "\n" + config.slice(serverBlockEnd) ); @@ -93,14 +96,27 @@ export async function handler() { ); } + const httpAuthUsername = process.env.STAGING_HTTP_AUTH_USERNAME; + const httpAuthPassword = process.env.STAGING_HTTP_AUTH_PASSWORD; + const httpAuth = + httpAuthUsername && httpAuthPassword + ? Buffer.from(`${httpAuthUsername}:${httpAuthPassword}`).toString("base64") + : undefined; + let updatedConfig: string; if (config.includes(PROXY_MARKER)) { updatedConfig = removeProxyBlock(config); console.log("Media proxy removed from NGINX config."); } else { - updatedConfig = addProxyBlock(config, stagingUrl); - console.log("Media proxy added to NGINX config."); + updatedConfig = addProxyBlock(config, stagingUrl, httpAuth); + if (httpAuth) { + console.log("Media proxy added to NGINX config (with HTTP auth)."); + } else { + console.log( + "Media proxy added to NGINX config (no HTTP auth — STAGING_HTTP_AUTH_USERNAME and STAGING_HTTP_AUTH_PASSWORD not set).", + ); + } } await writeFile(nginxConfigPath, updatedConfig, "utf-8"); From 7979fa553063c3c071fba683e274351d15237d97 Mon Sep 17 00:00:00 2001 From: William Leighton Date: Wed, 27 May 2026 10:33:19 +0100 Subject: [PATCH 04/62] remove exports for local vars --- packages/cli/src/commands/toggle-media-proxy.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/cli/src/commands/toggle-media-proxy.ts b/packages/cli/src/commands/toggle-media-proxy.ts index e2365269..7bed0805 100644 --- a/packages/cli/src/commands/toggle-media-proxy.ts +++ b/packages/cli/src/commands/toggle-media-proxy.ts @@ -3,9 +3,9 @@ import { homedir } from "node:os"; import { join } from "node:path"; import { getSmashConfig } from "@atomicsmash/smash-config"; -export const PROXY_MARKER = "location @uploadsproxy"; +const PROXY_MARKER = "location @uploadsproxy"; -export function buildProxyBlock(stagingUrl: string, httpAuth?: string) { +function buildProxyBlock(stagingUrl: string, httpAuth?: string) { const authHeader = httpAuth ? `\n proxy_set_header Authorization "Basic ${httpAuth}";` : ""; @@ -26,7 +26,7 @@ export function buildProxyBlock(stagingUrl: string, httpAuth?: string) { }`; } -export function addProxyBlock(config: string, stagingUrl: string, httpAuth?: string): string { +function addProxyBlock(config: string, stagingUrl: string, httpAuth?: string): string { const listenDirective = "listen 127.0.0.1:443 ssl;"; const listenIndex = config.indexOf(listenDirective); if (listenIndex === -1) { @@ -54,7 +54,7 @@ export function addProxyBlock(config: string, stagingUrl: string, httpAuth?: str ); } -export function removeProxyBlock(config: string): string { +function removeProxyBlock(config: string): string { return config.replace( /\n\s*location \^~ \/wp-content\/uploads\/\s*\{[\s\S]*?location @uploadsproxy\s*\{[\s\S]*?\}/, "", @@ -64,6 +64,7 @@ export function removeProxyBlock(config: string): string { export const command = "toggle-media-proxy"; export const describe = "Toggle the media proxy in the local NGINX config within Herd."; + export async function handler() { const smashConfig = await getSmashConfig(); if (!smashConfig) { From 39a0e4c81de453c50076dfe1d5578a1fcc3249c4 Mon Sep 17 00:00:00 2001 From: William Leighton Date: Wed, 27 May 2026 10:47:05 +0100 Subject: [PATCH 05/62] check for windows nginx location --- packages/cli/src/commands/toggle-media-proxy.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/cli/src/commands/toggle-media-proxy.ts b/packages/cli/src/commands/toggle-media-proxy.ts index 7bed0805..e57545da 100644 --- a/packages/cli/src/commands/toggle-media-proxy.ts +++ b/packages/cli/src/commands/toggle-media-proxy.ts @@ -1,9 +1,11 @@ import { readFile, writeFile } from "node:fs/promises"; -import { homedir } from "node:os"; +import { homedir, type } from "node:os"; import { join } from "node:path"; import { getSmashConfig } from "@atomicsmash/smash-config"; + const PROXY_MARKER = "location @uploadsproxy"; +const isWindows = type() === "Darwin"; function buildProxyBlock(stagingUrl: string, httpAuth?: string) { const authHeader = httpAuth @@ -84,7 +86,7 @@ export async function handler() { const { projectName } = smashConfig; const nginxConfigPath = join( homedir(), - "Library/Application Support/Herd/config/valet/Nginx", + isWindows ? "Library/Application Support/Herd/config/valet/Nginx" : ".config\\herd\\config\\nginx", `${projectName}.test`, ); From 8476470fac27eb695726550ffa1f26f079d6976f Mon Sep 17 00:00:00 2001 From: William Leighton Date: Wed, 27 May 2026 12:18:21 +0100 Subject: [PATCH 06/62] execute herd restart in toggle-media-proxy --- packages/cli/src/commands/toggle-media-proxy.ts | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/packages/cli/src/commands/toggle-media-proxy.ts b/packages/cli/src/commands/toggle-media-proxy.ts index e57545da..7fb2728b 100644 --- a/packages/cli/src/commands/toggle-media-proxy.ts +++ b/packages/cli/src/commands/toggle-media-proxy.ts @@ -1,11 +1,14 @@ +import { exec } from "node:child_process"; import { readFile, writeFile } from "node:fs/promises"; import { homedir, type } from "node:os"; import { join } from "node:path"; +import { promisify } from "node:util"; import { getSmashConfig } from "@atomicsmash/smash-config"; const PROXY_MARKER = "location @uploadsproxy"; const isWindows = type() === "Darwin"; +const execute = promisify(exec); function buildProxyBlock(stagingUrl: string, httpAuth?: string) { const authHeader = httpAuth @@ -123,7 +126,14 @@ export async function handler() { } await writeFile(nginxConfigPath, updatedConfig, "utf-8"); - console.log( - "Run `herd restart` or restart Herd via the UI for the changes to take effect.", - ); + + console.log("Restarting Herd..."); + await execute("herd restart") + .then(() => { + console.log("Herd restarted successfully."); + }) + .catch(() => { + console.log("Failed to restart Herd automatically.") + }); } + From 853bb32acd52a07f2eda0353ed9fe2f5b496ee94 Mon Sep 17 00:00:00 2001 From: William Leighton Date: Wed, 27 May 2026 12:33:54 +0100 Subject: [PATCH 07/62] remove duplicate changeset minor change --- .changeset/itchy-eagles-give.md | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 .changeset/itchy-eagles-give.md diff --git a/.changeset/itchy-eagles-give.md b/.changeset/itchy-eagles-give.md deleted file mode 100644 index fec577be..00000000 --- a/.changeset/itchy-eagles-give.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@atomicsmash/cli": minor ---- - -Added a new media proxy command From f39607dedba41bc07638fb93483ce5605b8aa91d Mon Sep 17 00:00:00 2001 From: William Leighton Date: Wed, 27 May 2026 13:59:57 +0100 Subject: [PATCH 08/62] add staging http auth to smash config --- packages/cli/src/commands/toggle-media-proxy.ts | 5 +++-- packages/smash-config/src/index.ts | 12 ++++++++++++ packages/smash-config/src/utils.ts | 12 ++++++++++++ 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/packages/cli/src/commands/toggle-media-proxy.ts b/packages/cli/src/commands/toggle-media-proxy.ts index 7fb2728b..b0ad0ef3 100644 --- a/packages/cli/src/commands/toggle-media-proxy.ts +++ b/packages/cli/src/commands/toggle-media-proxy.ts @@ -102,8 +102,9 @@ export async function handler() { ); } - const httpAuthUsername = process.env.STAGING_HTTP_AUTH_USERNAME; - const httpAuthPassword = process.env.STAGING_HTTP_AUTH_PASSWORD; + const httpAuthUsername = smashConfig.staging.httpAuth.username; + const httpAuthPassword = smashConfig.staging.httpAuth.password; + const httpAuth = httpAuthUsername && httpAuthPassword ? Buffer.from(`${httpAuthUsername}:${httpAuthPassword}`).toString("base64") diff --git a/packages/smash-config/src/index.ts b/packages/smash-config/src/index.ts index c18160c7..73bdacd4 100644 --- a/packages/smash-config/src/index.ts +++ b/packages/smash-config/src/index.ts @@ -13,6 +13,18 @@ export type SmashConfig = { npmInstallPaths?: string[]; composerInstallPaths?: string[]; scssAliases?: SCSSAliases; + staging: { + ssh: { + username: string, + host: string, + port: string, + url: string, + } + httpAuth: { + username: string, + password: string + } + } }; export { getSmashConfig } from "./utils.js"; diff --git a/packages/smash-config/src/utils.ts b/packages/smash-config/src/utils.ts index 01207b77..965bca19 100644 --- a/packages/smash-config/src/utils.ts +++ b/packages/smash-config/src/utils.ts @@ -90,6 +90,18 @@ export async function getSmashConfig(): Promise | null> { npmInstallPaths: [], composerInstallPaths: [], scssAliases: getDefaultSCSSAliases(themePath), + staging: { + ssh: { + username: "", + host: "", + port: "", + url: "", + }, + httpAuth: { + username: "", + password: "", + }, + } }; return defaultConfig; }); From 2a5e09c31e2d2b9ee3652e61a6c88332d4c69e1e Mon Sep 17 00:00:00 2001 From: William Leighton Date: Wed, 27 May 2026 14:30:01 +0100 Subject: [PATCH 09/62] move staging url config location --- packages/smash-config/src/index.ts | 2 +- packages/smash-config/src/utils.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/smash-config/src/index.ts b/packages/smash-config/src/index.ts index 73bdacd4..c628a8f0 100644 --- a/packages/smash-config/src/index.ts +++ b/packages/smash-config/src/index.ts @@ -14,11 +14,11 @@ export type SmashConfig = { composerInstallPaths?: string[]; scssAliases?: SCSSAliases; staging: { + url: string, ssh: { username: string, host: string, port: string, - url: string, } httpAuth: { username: string, diff --git a/packages/smash-config/src/utils.ts b/packages/smash-config/src/utils.ts index 965bca19..e2dad0a7 100644 --- a/packages/smash-config/src/utils.ts +++ b/packages/smash-config/src/utils.ts @@ -91,11 +91,11 @@ export async function getSmashConfig(): Promise | null> { composerInstallPaths: [], scssAliases: getDefaultSCSSAliases(themePath), staging: { + url: "", ssh: { username: "", host: "", port: "", - url: "", }, httpAuth: { username: "", From 93f4889497ac6f6a588f2a0241b9e18f557c0344 Mon Sep 17 00:00:00 2001 From: William Leighton Date: Wed, 27 May 2026 14:37:30 +0100 Subject: [PATCH 10/62] use staging url from smash config --- packages/cli/src/commands/toggle-media-proxy.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/cli/src/commands/toggle-media-proxy.ts b/packages/cli/src/commands/toggle-media-proxy.ts index b0ad0ef3..6d022de8 100644 --- a/packages/cli/src/commands/toggle-media-proxy.ts +++ b/packages/cli/src/commands/toggle-media-proxy.ts @@ -78,12 +78,14 @@ export async function handler() { ); } - const stagingUrl = process.env.STAGING_URL?.endsWith("/") - ? process.env.STAGING_URL.slice(0, -1) - : process.env.STAGING_URL; + const stagingUrl = smashConfig.staging.url ? + smashConfig.staging.url.endsWith("/") + ? smashConfig.staging.url.slice(0, -1) + : smashConfig.staging.url + : undefined; if (!stagingUrl) { - throw new Error("STAGING_URL is missing from .env file."); + throw new Error("staging.url is missing from the smash config"); } const { projectName } = smashConfig; From e53a9f91a5c09c39537dc57cdcb5ac501501f1db Mon Sep 17 00:00:00 2001 From: William Leighton Date: Wed, 27 May 2026 14:38:23 +0100 Subject: [PATCH 11/62] error message tweak --- packages/cli/src/commands/toggle-media-proxy.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cli/src/commands/toggle-media-proxy.ts b/packages/cli/src/commands/toggle-media-proxy.ts index 6d022de8..b93a3ed0 100644 --- a/packages/cli/src/commands/toggle-media-proxy.ts +++ b/packages/cli/src/commands/toggle-media-proxy.ts @@ -85,7 +85,7 @@ export async function handler() { : undefined; if (!stagingUrl) { - throw new Error("staging.url is missing from the smash config"); + throw new Error("staging.url is missing from smash.config.ts"); } const { projectName } = smashConfig; From ef059c7e83b75dc78148987ca5114cc46ee64a95 Mon Sep 17 00:00:00 2001 From: William Leighton Date: Wed, 27 May 2026 15:58:38 +0100 Subject: [PATCH 12/62] create config getter and refactor db pull and toggle media to use it --- packages/cli/src/commands/pull-database.ts | 267 +++++++++--------- .../cli/src/commands/toggle-media-proxy.ts | 17 +- packages/smash-config/src/getConfigVar.ts | 45 +++ packages/smash-config/src/getStagingUrl.ts | 9 + packages/smash-config/src/index.ts | 6 +- packages/smash-config/src/utils.ts | 6 + 6 files changed, 203 insertions(+), 147 deletions(-) create mode 100644 packages/smash-config/src/getConfigVar.ts create mode 100644 packages/smash-config/src/getStagingUrl.ts diff --git a/packages/cli/src/commands/pull-database.ts b/packages/cli/src/commands/pull-database.ts index 680e318c..d39d20f0 100644 --- a/packages/cli/src/commands/pull-database.ts +++ b/packages/cli/src/commands/pull-database.ts @@ -2,154 +2,155 @@ import { exec } from "node:child_process"; import { unlink as deleteFile } from "node:fs/promises"; import { performance } from "node:perf_hooks"; import { promisify } from "node:util"; -import { getSmashConfig } from "@atomicsmash/smash-config"; +import { getConfigs, getSmashConfig, getStagingUrl } from "@atomicsmash/smash-config"; import { convertMeasureToPrettyString, startRunningMessage } from "../utils.js"; -export const command = "pull-database"; +export const command = " "; export const describe = "Pull the database down from staging and replace local database."; export async function handler() { const execute = promisify(exec); const smashConfig = await getSmashConfig(); - const stagingSSHUsername = process.env.STAGING_SSH_USERNAME; - const stagingSSHHost = process.env.STAGING_SSH_HOST; - const stagingSSHPort = process.env.STAGING_SSH_PORT; - const stagingDBPrefix = process.env.STAGING_DB_PREFIX ?? "wp_"; - const stagingWebRoot = process.env.STAGING_WEB_ROOT ?? "public/current"; - const stagingUrl = process.env.STAGING_URL?.endsWith("/") - ? process.env.STAGING_URL.slice(0, -1) - : process.env.STAGING_URL; + if (!smashConfig) { throw new Error( "Unable to determine project setup information. Please add a smash.config.ts file with the required info.", ); - } else if (!stagingSSHUsername) { - throw new Error("STAGING_SSH_USERNAME is missing from .env file."); - } else if (!stagingSSHHost) { - throw new Error("STAGING_SSH_HOST is missing from .env file."); - } else if (!stagingSSHPort) { - throw new Error("STAGING_SSH_PORT is missing from .env file."); - } else if (!stagingUrl) { - throw new Error("STAGING_URL is missing from .env file."); - } else { - const { projectName } = smashConfig; - const stopRunningMessage = startRunningMessage( - "Pulling database from staging", - ); - performance.mark("Start"); - await (async () => { - const tmpFile = "/tmp/staging-database.sql"; - const dbPrefixFile = "/tmp/db-prefix.txt"; - const tablesToExclude = [ - // WordFence - "wfauditevents", - "wfblockediplog", - "wfblocks7", - "wfconfig", - "wfcrawlers", - "wffilemods", - "wfhits", - "wfhoover", - "wfissues", - "wfknownfilelist", - "wflivetraffichuman", - "wflocs", - "wflogins", - "wfls_2fa_secrets", - "wfls_role_counts", - "wfls_settings", - "wfnotifications", - "wfpendingissues", - "wfreversecache", - "wfsecurityevents", - "wfsnipcache", - "wfstatus", - "wftrafficrates", - "wfwaffailures", - // WP All Import/Export - "pmxi_files", - "pmxi_geocoding", - "pmxi_hash", - "pmxi_history", - "pmxi_images", - "pmxi_imports", - "pmxi_posts", - "pmxi_templates", - ].map((tableName) => stagingDBPrefix + tableName); - await execute( - `ssh -o "StrictHostKeyChecking no" ${stagingSSHUsername}@${stagingSSHHost} -p ${stagingSSHPort} "${stagingWebRoot !== "" ? `cd ${stagingWebRoot} && ` : ""}wp db export - --add-drop-table --exclude_tables=${tablesToExclude.join(",")}" > ${tmpFile}`, - ) - .then(async () => { - await stopRunningMessage(); - console.log("Database downloaded."); - await execute(`wp db check`).catch(async () => { - await execute(`wp db create`); - console.log("Local database created."); + } + const [ + stagingSSHUsername, + stagingSSHHost, + stagingSSHPort, + stagingDBPrefix, + stagingWebRoot, + ] = getConfigs(smashConfig, [ + "staging.ssh.username", + "staging.ssh.host", + "staging.ssh.port", + "staging.dbPrefix", + "staging.webRoot" + ]); + + const stagingUrl = getStagingUrl(smashConfig); + + const { projectName } = smashConfig; + const stopRunningMessage = startRunningMessage( + "Pulling database from staging", + ); + performance.mark("Start"); + await (async () => { + const tmpFile = "/tmp/staging-database.sql"; + const dbPrefixFile = "/tmp/db-prefix.txt"; + const tablesToExclude = [ + // WordFence + "wfauditevents", + "wfblockediplog", + "wfblocks7", + "wfconfig", + "wfcrawlers", + "wffilemods", + "wfhits", + "wfhoover", + "wfissues", + "wfknownfilelist", + "wflivetraffichuman", + "wflocs", + "wflogins", + "wfls_2fa_secrets", + "wfls_role_counts", + "wfls_settings", + "wfnotifications", + "wfpendingissues", + "wfreversecache", + "wfsecurityevents", + "wfsnipcache", + "wfstatus", + "wftrafficrates", + "wfwaffailures", + // WP All Import/Export + "pmxi_files", + "pmxi_geocoding", + "pmxi_hash", + "pmxi_history", + "pmxi_images", + "pmxi_imports", + "pmxi_posts", + "pmxi_templates", + ].map((tableName) => stagingDBPrefix + tableName); + await execute( + `ssh -o "StrictHostKeyChecking no" ${stagingSSHUsername}@${stagingSSHHost} -p ${stagingSSHPort} "${stagingWebRoot !== "" ? `cd ${stagingWebRoot} && ` : ""}wp db export - --add-drop-table --exclude_tables=${tablesToExclude.join(",")}" > ${tmpFile}`, + ) + .then(async () => { + await stopRunningMessage(); + console.log("Database downloaded."); + await execute(`wp db check`).catch(async () => { + await execute(`wp db create`); + console.log("Local database created."); + }); + const stopRunningMessage2 = startRunningMessage("Importing database"); + await execute(`wp db query < ${tmpFile}`) + .then(async () => { + await stopRunningMessage2(); + console.log("Database imported."); + }) + .catch(async (error) => { + await stopRunningMessage2(); + throw error; }); - const stopRunningMessage2 = startRunningMessage("Importing database"); - await execute(`wp db query < ${tmpFile}`) - .then(async () => { - await stopRunningMessage2(); - console.log("Database imported."); - }) - .catch(async (error) => { - await stopRunningMessage2(); - throw error; - }); - }) - .then(async () => { - const stopRunningMessage3 = startRunningMessage( - "Running search and replace", - ); - await execute( - `wp search-replace --url=${projectName}.test ${stagingUrl} '//${projectName}.test' --skip-columns=guid`, - ) - .then(async () => { - await stopRunningMessage3(); - console.log("Search and replace completed."); - }) - .catch(async (error) => { - await stopRunningMessage3(); - throw error; - }); - }) - .then(async () => { - const stopRunningMessage4 = startRunningMessage("Cleaning up"); - await Promise.allSettled([ - deleteFile(tmpFile), - deleteFile(dbPrefixFile), - ]).then(async () => { - await stopRunningMessage4(); + }) + .then(async () => { + const stopRunningMessage3 = startRunningMessage( + "Running search and replace", + ); + await execute( + `wp search-replace --url=${projectName}.test ${stagingUrl} '//${projectName}.test' --skip-columns=guid`, + ) + .then(async () => { + await stopRunningMessage3(); + console.log("Search and replace completed."); + }) + .catch(async (error) => { + await stopRunningMessage3(); + throw error; }); + }) + .then(async () => { + const stopRunningMessage4 = startRunningMessage("Cleaning up"); + await Promise.allSettled([ + deleteFile(tmpFile), + deleteFile(dbPrefixFile), + ]).then(async () => { + await stopRunningMessage4(); + }); - console.log( - `Database import complete! ${convertMeasureToPrettyString( - performance.measure("everything", "Start"), - )}`, - ); - console.log( - "If you want to download recent media you can use `npm run pull:media`, you can also change the number of months to download in your `.env` file.", - ); - }) - .catch(async (error) => { - await stopRunningMessage(); - console.error("Error during database pull:", error); + console.log( + `Database import complete! ${convertMeasureToPrettyString( + performance.measure("everything", "Start"), + )}`, + ); + console.log( + "If you want to download recent media you can use `npm run pull:media`, you can also change the number of months to download in your `.env` file.", + ); + }) + .catch(async (error) => { + await stopRunningMessage(); + console.error("Error during database pull:", error); - const cleanupResults = await Promise.allSettled([ - deleteFile(tmpFile), - deleteFile(dbPrefixFile), - ]); + const cleanupResults = await Promise.allSettled([ + deleteFile(tmpFile), + deleteFile(dbPrefixFile), + ]); - const failedCleanups = cleanupResults.filter( - (result) => result.status === "rejected", + const failedCleanups = cleanupResults.filter( + (result) => result.status === "rejected", + ); + if (failedCleanups.length > 0) { + console.warn( + `Warning: Failed to delete ${failedCleanups.length} temporary file(s). You may need to clean them up manually.`, ); - if (failedCleanups.length > 0) { - console.warn( - `Warning: Failed to delete ${failedCleanups.length} temporary file(s). You may need to clean them up manually.`, - ); - } - process.exitCode = 1; - }); - })(); - } + } + process.exitCode = 1; + }); + })(); + } diff --git a/packages/cli/src/commands/toggle-media-proxy.ts b/packages/cli/src/commands/toggle-media-proxy.ts index b93a3ed0..b51b7663 100644 --- a/packages/cli/src/commands/toggle-media-proxy.ts +++ b/packages/cli/src/commands/toggle-media-proxy.ts @@ -3,7 +3,8 @@ import { readFile, writeFile } from "node:fs/promises"; import { homedir, type } from "node:os"; import { join } from "node:path"; import { promisify } from "node:util"; -import { getSmashConfig } from "@atomicsmash/smash-config"; +import { getConfigs, getSmashConfig, getStagingUrl } from "@atomicsmash/smash-config"; + const PROXY_MARKER = "location @uploadsproxy"; @@ -77,16 +78,7 @@ export async function handler() { "Unable to determine project setup information. Please add a smash.config.ts file with the required info.", ); } - - const stagingUrl = smashConfig.staging.url ? - smashConfig.staging.url.endsWith("/") - ? smashConfig.staging.url.slice(0, -1) - : smashConfig.staging.url - : undefined; - - if (!stagingUrl) { - throw new Error("staging.url is missing from smash.config.ts"); - } + const stagingUrl = getStagingUrl(smashConfig); const { projectName } = smashConfig; const nginxConfigPath = join( @@ -104,8 +96,7 @@ export async function handler() { ); } - const httpAuthUsername = smashConfig.staging.httpAuth.username; - const httpAuthPassword = smashConfig.staging.httpAuth.password; + const [httpAuthUsername, httpAuthPassword] = getConfigs(smashConfig, ["staging.httpAuth.username", "staging.httpAuth.password"]); const httpAuth = httpAuthUsername && httpAuthPassword diff --git a/packages/smash-config/src/getConfigVar.ts b/packages/smash-config/src/getConfigVar.ts new file mode 100644 index 00000000..62cddcb6 --- /dev/null +++ b/packages/smash-config/src/getConfigVar.ts @@ -0,0 +1,45 @@ +import { SmashConfig } from "."; + +// Recursive type to get all dot-notation paths in an object +type DotNotationPaths = { + [K in keyof T & string]: T[K] extends object + ? DotNotationPaths | `${Prefix}${K}` + : `${Prefix}${K}`; +}[keyof T & string]; + +// Recursive type to get the value at a given dot-notation path +type PathValue = + P extends `${infer Key}.${infer Rest}` + ? Key extends keyof T + ? PathValue + : never + : P extends keyof T + ? T[P] + : never; + +// Map an array of paths to an object of { path: value } pairs +type PathsToTuple[]> = { + [I in keyof Paths]: PathValue; +}; + +type SmashConfigPaths = DotNotationPaths; + +export function getConfig

( + config: SmashConfig, + path: P +): PathValue { + const value = path.split(".").reduce((acc, key) => (acc as any)?.[key], config as any); + + if (value === undefined) { + throw new Error(`Missing config value at path: "${path}"`); + } + + return value as unknown as PathValue; +} + +export function getConfigs

( + config: SmashConfig, + paths: [...P] +): PathsToTuple { + return paths.map((path) => getConfig(config, path)) as PathsToTuple; +} \ No newline at end of file diff --git a/packages/smash-config/src/getStagingUrl.ts b/packages/smash-config/src/getStagingUrl.ts new file mode 100644 index 00000000..499a76d8 --- /dev/null +++ b/packages/smash-config/src/getStagingUrl.ts @@ -0,0 +1,9 @@ +import { SmashConfig } from "."; +import { getConfig } from "."; + +export function getStagingUrl(config: SmashConfig): string { + const value = getConfig(config, "staging.url"); + return value.endsWith("/") + ? value.slice(0, -1) + : value; +} \ No newline at end of file diff --git a/packages/smash-config/src/index.ts b/packages/smash-config/src/index.ts index c628a8f0..e86882d7 100644 --- a/packages/smash-config/src/index.ts +++ b/packages/smash-config/src/index.ts @@ -15,6 +15,8 @@ export type SmashConfig = { scssAliases?: SCSSAliases; staging: { url: string, + webRoot: string, + dbPrefix: string, ssh: { username: string, host: string, @@ -27,4 +29,6 @@ export type SmashConfig = { } }; -export { getSmashConfig } from "./utils.js"; +export {getConfig, getConfigs} from "./getConfigVar.js" +export {getStagingUrl } from "./getStagingUrl.js"; +export { getSmashConfig } from "./utils.js"; \ No newline at end of file diff --git a/packages/smash-config/src/utils.ts b/packages/smash-config/src/utils.ts index e2dad0a7..9a96e745 100644 --- a/packages/smash-config/src/utils.ts +++ b/packages/smash-config/src/utils.ts @@ -92,6 +92,8 @@ export async function getSmashConfig(): Promise | null> { scssAliases: getDefaultSCSSAliases(themePath), staging: { url: "", + dbPrefix: "", + webRoot: "", ssh: { username: "", host: "", @@ -118,3 +120,7 @@ function isValidSmashConfig(config: unknown): config is SmashConfig { typeof config.themePath === "string" ); } + + +// Fetch config vars from smash config + From 19cf2ed7d537c26f1fa62a5eb16b1ba05dd91561 Mon Sep 17 00:00:00 2001 From: William Leighton Date: Thu, 28 May 2026 09:34:37 +0100 Subject: [PATCH 13/62] whitespace fixes --- packages/smash-config/src/index.ts | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/packages/smash-config/src/index.ts b/packages/smash-config/src/index.ts index e86882d7..cfda19b2 100644 --- a/packages/smash-config/src/index.ts +++ b/packages/smash-config/src/index.ts @@ -14,21 +14,21 @@ export type SmashConfig = { composerInstallPaths?: string[]; scssAliases?: SCSSAliases; staging: { - url: string, - webRoot: string, - dbPrefix: string, + url: string; + webRoot: string; + dbPrefix: string; ssh: { - username: string, - host: string, - port: string, - } + username: string; + host: string; + port: string; + }; httpAuth: { - username: string, - password: string - } - } + username: string; + password: string; + }; + }; }; -export {getConfig, getConfigs} from "./getConfigVar.js" -export {getStagingUrl } from "./getStagingUrl.js"; -export { getSmashConfig } from "./utils.js"; \ No newline at end of file +export { getConfig, getConfigs } from "./getConfigVar.js"; +export { getStagingUrl } from "./getStagingUrl.js"; +export { getSmashConfig } from "./utils.js"; From a5022d890fa5c684d38efa0a6babce088d6b4307 Mon Sep 17 00:00:00 2001 From: William Leighton Date: Thu, 28 May 2026 09:35:01 +0100 Subject: [PATCH 14/62] fix esm import fails --- packages/smash-config/src/getStagingUrl.ts | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/packages/smash-config/src/getStagingUrl.ts b/packages/smash-config/src/getStagingUrl.ts index 499a76d8..41d44841 100644 --- a/packages/smash-config/src/getStagingUrl.ts +++ b/packages/smash-config/src/getStagingUrl.ts @@ -1,9 +1,7 @@ -import { SmashConfig } from "."; -import { getConfig } from "."; +import { getConfig } from "./getConfigVar.js"; +import { SmashConfig } from "./index.js"; export function getStagingUrl(config: SmashConfig): string { - const value = getConfig(config, "staging.url"); - return value.endsWith("/") - ? value.slice(0, -1) - : value; -} \ No newline at end of file + const value = getConfig(config, "staging.url"); + return value.endsWith("/") ? value.slice(0, -1) : value; +} From deeb61484df0239d30b1f108f2210e478665dd3d Mon Sep 17 00:00:00 2001 From: William Leighton Date: Thu, 28 May 2026 09:35:37 +0100 Subject: [PATCH 15/62] ts lint fixes --- packages/smash-config/src/getConfigVar.ts | 57 +++++++++++++---------- 1 file changed, 32 insertions(+), 25 deletions(-) diff --git a/packages/smash-config/src/getConfigVar.ts b/packages/smash-config/src/getConfigVar.ts index 62cddcb6..ba1b200b 100644 --- a/packages/smash-config/src/getConfigVar.ts +++ b/packages/smash-config/src/getConfigVar.ts @@ -1,45 +1,52 @@ -import { SmashConfig } from "."; +import { SmashConfig } from "./index.js"; // Recursive type to get all dot-notation paths in an object type DotNotationPaths = { - [K in keyof T & string]: T[K] extends object - ? DotNotationPaths | `${Prefix}${K}` - : `${Prefix}${K}`; + [K in keyof T & string]: T[K] extends object + ? DotNotationPaths | `${Prefix}${K}` + : `${Prefix}${K}`; }[keyof T & string]; // Recursive type to get the value at a given dot-notation path -type PathValue = - P extends `${infer Key}.${infer Rest}` - ? Key extends keyof T - ? PathValue - : never - : P extends keyof T - ? T[P] - : never; +type PathValue = P extends `${infer Key}.${infer Rest}` + ? Key extends keyof T + ? PathValue + : never + : P extends keyof T + ? T[P] + : never; // Map an array of paths to an object of { path: value } pairs type PathsToTuple[]> = { - [I in keyof Paths]: PathValue; + [I in keyof Paths]: PathValue; }; type SmashConfigPaths = DotNotationPaths; export function getConfig

( - config: SmashConfig, - path: P + config: SmashConfig, + path: P, ): PathValue { - const value = path.split(".").reduce((acc, key) => (acc as any)?.[key], config as any); - - if (value === undefined) { - throw new Error(`Missing config value at path: "${path}"`); - } + const value = path.split(".").reduce((acc, key) => { + if (acc && typeof acc === "object" && key in acc) { + return (acc as Record)[key]; + } + return undefined; + }, config); - return value as unknown as PathValue; + if (value === undefined) { + throw new Error(`Missing config value at path: "${path}"`); + } + + return value as unknown as PathValue; } export function getConfigs

( - config: SmashConfig, - paths: [...P] + config: SmashConfig, + paths: [...P], ): PathsToTuple { - return paths.map((path) => getConfig(config, path)) as PathsToTuple; -} \ No newline at end of file + return paths.map((path) => getConfig(config, path)) as PathsToTuple< + SmashConfig, + P + >; +} From 6eba60fa4eb4bb402a7a1d195a08295b8b55a26e Mon Sep 17 00:00:00 2001 From: William Leighton Date: Thu, 28 May 2026 09:37:17 +0100 Subject: [PATCH 16/62] put back command typo --- packages/cli/src/commands/pull-database.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cli/src/commands/pull-database.ts b/packages/cli/src/commands/pull-database.ts index d39d20f0..a6646095 100644 --- a/packages/cli/src/commands/pull-database.ts +++ b/packages/cli/src/commands/pull-database.ts @@ -5,7 +5,7 @@ import { promisify } from "node:util"; import { getConfigs, getSmashConfig, getStagingUrl } from "@atomicsmash/smash-config"; import { convertMeasureToPrettyString, startRunningMessage } from "../utils.js"; -export const command = " "; +export const command = "pull-database"; export const describe = "Pull the database down from staging and replace local database."; export async function handler() { From 5aa1101c7db21d4303002c9b4670d4119f122a43 Mon Sep 17 00:00:00 2001 From: William Leighton Date: Thu, 28 May 2026 09:38:03 +0100 Subject: [PATCH 17/62] whitespace --- packages/cli/src/commands/pull-database.ts | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/packages/cli/src/commands/pull-database.ts b/packages/cli/src/commands/pull-database.ts index a6646095..e3854bcf 100644 --- a/packages/cli/src/commands/pull-database.ts +++ b/packages/cli/src/commands/pull-database.ts @@ -2,12 +2,17 @@ import { exec } from "node:child_process"; import { unlink as deleteFile } from "node:fs/promises"; import { performance } from "node:perf_hooks"; import { promisify } from "node:util"; -import { getConfigs, getSmashConfig, getStagingUrl } from "@atomicsmash/smash-config"; +import { + getConfigs, + getSmashConfig, + getStagingUrl, +} from "@atomicsmash/smash-config"; import { convertMeasureToPrettyString, startRunningMessage } from "../utils.js"; export const command = "pull-database"; export const describe = "Pull the database down from staging and replace local database."; + export async function handler() { const execute = promisify(exec); const smashConfig = await getSmashConfig(); @@ -16,7 +21,7 @@ export async function handler() { throw new Error( "Unable to determine project setup information. Please add a smash.config.ts file with the required info.", ); - } + } const [ stagingSSHUsername, stagingSSHHost, @@ -28,7 +33,7 @@ export async function handler() { "staging.ssh.host", "staging.ssh.port", "staging.dbPrefix", - "staging.webRoot" + "staging.webRoot", ]); const stagingUrl = getStagingUrl(smashConfig); @@ -43,7 +48,7 @@ export async function handler() { const dbPrefixFile = "/tmp/db-prefix.txt"; const tablesToExclude = [ // WordFence - "wfauditevents", + "wfauditevents", "wfblockediplog", "wfblocks7", "wfconfig", @@ -152,5 +157,4 @@ export async function handler() { process.exitCode = 1; }); })(); - } From 6e8b44170827f72dc206996fc7bd923af307aaff Mon Sep 17 00:00:00 2001 From: William Leighton Date: Thu, 28 May 2026 10:33:28 +0100 Subject: [PATCH 18/62] improve staging url prefix handling --- packages/cli/src/commands/pull-database.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/cli/src/commands/pull-database.ts b/packages/cli/src/commands/pull-database.ts index e3854bcf..8986b20b 100644 --- a/packages/cli/src/commands/pull-database.ts +++ b/packages/cli/src/commands/pull-database.ts @@ -107,8 +107,13 @@ export async function handler() { const stopRunningMessage3 = startRunningMessage( "Running search and replace", ); + + const composeStagingUrl = stagingUrl + .replace(/^https?:\/\//, "") + .replace(/^www\./, ""); + await execute( - `wp search-replace --url=${projectName}.test ${stagingUrl} '//${projectName}.test' --skip-columns=guid`, + `wp search-replace --url=${projectName}.test //${composeStagingUrl} '//${projectName}.test' --skip-columns=guid`, ) .then(async () => { await stopRunningMessage3(); From cd29bdb85515f6523a2499eef45c5711b744892b Mon Sep 17 00:00:00 2001 From: William Leighton Date: Thu, 28 May 2026 11:03:02 +0100 Subject: [PATCH 19/62] improve staging url prefix handling --- packages/cli/src/commands/pull-database.ts | 8 ++------ packages/cli/src/commands/toggle-media-proxy.ts | 2 +- packages/smash-config/src/getStagingUrl.ts | 5 ++++- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/packages/cli/src/commands/pull-database.ts b/packages/cli/src/commands/pull-database.ts index 8986b20b..e0440642 100644 --- a/packages/cli/src/commands/pull-database.ts +++ b/packages/cli/src/commands/pull-database.ts @@ -36,8 +36,6 @@ export async function handler() { "staging.webRoot", ]); - const stagingUrl = getStagingUrl(smashConfig); - const { projectName } = smashConfig; const stopRunningMessage = startRunningMessage( "Pulling database from staging", @@ -108,12 +106,10 @@ export async function handler() { "Running search and replace", ); - const composeStagingUrl = stagingUrl - .replace(/^https?:\/\//, "") - .replace(/^www\./, ""); + const stagingUrl = getStagingUrl(smashConfig); await execute( - `wp search-replace --url=${projectName}.test //${composeStagingUrl} '//${projectName}.test' --skip-columns=guid`, + `wp search-replace --url=${projectName}.test //${stagingUrl} '//${projectName}.test' --skip-columns=guid`, ) .then(async () => { await stopRunningMessage3(); diff --git a/packages/cli/src/commands/toggle-media-proxy.ts b/packages/cli/src/commands/toggle-media-proxy.ts index b51b7663..bbeb656a 100644 --- a/packages/cli/src/commands/toggle-media-proxy.ts +++ b/packages/cli/src/commands/toggle-media-proxy.ts @@ -25,7 +25,7 @@ function buildProxyBlock(stagingUrl: string, httpAuth?: string) { resolver_timeout 10s; proxy_http_version 1.1; proxy_ssl_server_name on; - proxy_pass https:${stagingUrl}$uri$is_args$args; + proxy_pass https://${stagingUrl}$uri$is_args$args; proxy_ssl_verify off; proxy_set_header Referer ""; proxy_set_header User-Agent "Mozilla/5.0";${authHeader} diff --git a/packages/smash-config/src/getStagingUrl.ts b/packages/smash-config/src/getStagingUrl.ts index 41d44841..b83b8f51 100644 --- a/packages/smash-config/src/getStagingUrl.ts +++ b/packages/smash-config/src/getStagingUrl.ts @@ -3,5 +3,8 @@ import { SmashConfig } from "./index.js"; export function getStagingUrl(config: SmashConfig): string { const value = getConfig(config, "staging.url"); - return value.endsWith("/") ? value.slice(0, -1) : value; + return value + .replace(/^https?:\/\//, "") + .replace(/^www\./, "") + .replace(/\/$/, ""); } From f40d426d63bf2a2a124661d77daa4825232db6bf Mon Sep 17 00:00:00 2001 From: William Leighton Date: Thu, 28 May 2026 11:11:47 +0100 Subject: [PATCH 20/62] whitespace --- .../cli/src/commands/toggle-media-proxy.ts | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/packages/cli/src/commands/toggle-media-proxy.ts b/packages/cli/src/commands/toggle-media-proxy.ts index bbeb656a..d175c39d 100644 --- a/packages/cli/src/commands/toggle-media-proxy.ts +++ b/packages/cli/src/commands/toggle-media-proxy.ts @@ -3,9 +3,11 @@ import { readFile, writeFile } from "node:fs/promises"; import { homedir, type } from "node:os"; import { join } from "node:path"; import { promisify } from "node:util"; -import { getConfigs, getSmashConfig, getStagingUrl } from "@atomicsmash/smash-config"; - - +import { + getConfigs, + getSmashConfig, + getStagingUrl, +} from "@atomicsmash/smash-config"; const PROXY_MARKER = "location @uploadsproxy"; const isWindows = type() === "Darwin"; @@ -32,7 +34,11 @@ function buildProxyBlock(stagingUrl: string, httpAuth?: string) { }`; } -function addProxyBlock(config: string, stagingUrl: string, httpAuth?: string): string { +function addProxyBlock( + config: string, + stagingUrl: string, + httpAuth?: string, +): string { const listenDirective = "listen 127.0.0.1:443 ssl;"; const listenIndex = config.indexOf(listenDirective); if (listenIndex === -1) { @@ -83,7 +89,9 @@ export async function handler() { const { projectName } = smashConfig; const nginxConfigPath = join( homedir(), - isWindows ? "Library/Application Support/Herd/config/valet/Nginx" : ".config\\herd\\config\\nginx", + isWindows + ? "Library/Application Support/Herd/config/valet/Nginx" + : ".config\\herd\\config\\nginx", `${projectName}.test`, ); @@ -96,7 +104,10 @@ export async function handler() { ); } - const [httpAuthUsername, httpAuthPassword] = getConfigs(smashConfig, ["staging.httpAuth.username", "staging.httpAuth.password"]); + const [httpAuthUsername, httpAuthPassword] = getConfigs(smashConfig, [ + "staging.httpAuth.username", + "staging.httpAuth.password", + ]); const httpAuth = httpAuthUsername && httpAuthPassword @@ -127,7 +138,6 @@ export async function handler() { console.log("Herd restarted successfully."); }) .catch(() => { - console.log("Failed to restart Herd automatically.") + console.log("Failed to restart Herd automatically."); }); } - From f546b95a90fc9c5c95629c45e654a962fdd682f5 Mon Sep 17 00:00:00 2001 From: William Leighton Date: Thu, 28 May 2026 13:48:44 +0100 Subject: [PATCH 21/62] smash-config package refactor - tidy index and move utils into folder --- packages/smash-config/src/getStagingUrl.ts | 10 ----- packages/smash-config/src/index.ts | 38 ++----------------- packages/smash-config/src/types.ts | 30 +++++++++++++++ .../getConfigValue.ts} | 33 +++++++++++++++- .../src/{utils.ts => utils/getSmashConfig.ts} | 11 ++---- .../smash-config/src/utils/getStagingUrl.ts | 10 +++++ 6 files changed, 80 insertions(+), 52 deletions(-) delete mode 100644 packages/smash-config/src/getStagingUrl.ts create mode 100644 packages/smash-config/src/types.ts rename packages/smash-config/src/{getConfigVar.ts => utils/getConfigValue.ts} (59%) rename packages/smash-config/src/{utils.ts => utils/getSmashConfig.ts} (94%) create mode 100644 packages/smash-config/src/utils/getStagingUrl.ts diff --git a/packages/smash-config/src/getStagingUrl.ts b/packages/smash-config/src/getStagingUrl.ts deleted file mode 100644 index b83b8f51..00000000 --- a/packages/smash-config/src/getStagingUrl.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { getConfig } from "./getConfigVar.js"; -import { SmashConfig } from "./index.js"; - -export function getStagingUrl(config: SmashConfig): string { - const value = getConfig(config, "staging.url"); - return value - .replace(/^https?:\/\//, "") - .replace(/^www\./, "") - .replace(/\/$/, ""); -} diff --git a/packages/smash-config/src/index.ts b/packages/smash-config/src/index.ts index cfda19b2..c76b0642 100644 --- a/packages/smash-config/src/index.ts +++ b/packages/smash-config/src/index.ts @@ -1,34 +1,4 @@ -import { Options } from "sass"; - -export type SCSSAliases = { - loadPaths?: Options<"async">["loadPaths"]; - importers?: Options<"async">["importers"]; -}; - -export type SmashConfig = { - projectName: string; - themePath: string; - themeFolderName?: string; - assetsOutputFolder?: string; - npmInstallPaths?: string[]; - composerInstallPaths?: string[]; - scssAliases?: SCSSAliases; - staging: { - url: string; - webRoot: string; - dbPrefix: string; - ssh: { - username: string; - host: string; - port: string; - }; - httpAuth: { - username: string; - password: string; - }; - }; -}; - -export { getConfig, getConfigs } from "./getConfigVar.js"; -export { getStagingUrl } from "./getStagingUrl.js"; -export { getSmashConfig } from "./utils.js"; +export * from "./types.js"; +export { getConfig, getConfigs } from "./utils/getConfigValue.js"; +export { default as getStagingUrl } from "./utils/getStagingUrl.js"; +export { default as getSmashConfig } from "./utils/getSmashConfig.js"; diff --git a/packages/smash-config/src/types.ts b/packages/smash-config/src/types.ts new file mode 100644 index 00000000..d78b0926 --- /dev/null +++ b/packages/smash-config/src/types.ts @@ -0,0 +1,30 @@ +import { Options } from "sass"; + +export type SCSSAliases = { + loadPaths?: Options<"async">["loadPaths"]; + importers?: Options<"async">["importers"]; +}; + +export type SmashConfig = { + projectName: string; + themePath: string; + themeFolderName?: string; + assetsOutputFolder?: string; + npmInstallPaths?: string[]; + composerInstallPaths?: string[]; + scssAliases?: SCSSAliases; + staging: { + url: string; + webRoot: string; + dbPrefix: string; + ssh: { + username: string; + host: string; + port: string; + }; + httpAuth: { + username: string; + password: string; + }; + }; +}; diff --git a/packages/smash-config/src/getConfigVar.ts b/packages/smash-config/src/utils/getConfigValue.ts similarity index 59% rename from packages/smash-config/src/getConfigVar.ts rename to packages/smash-config/src/utils/getConfigValue.ts index ba1b200b..4b5392b4 100644 --- a/packages/smash-config/src/getConfigVar.ts +++ b/packages/smash-config/src/utils/getConfigValue.ts @@ -1,4 +1,11 @@ -import { SmashConfig } from "./index.js"; +import { SmashConfig } from "../types"; + +/* + +Allows getting of values from the smash config using dot.notation and fully typed + + +*/ // Recursive type to get all dot-notation paths in an object type DotNotationPaths = { @@ -23,6 +30,21 @@ type PathsToTuple[]> = { type SmashConfigPaths = DotNotationPaths; +/* + +Get One + +*/ + +/** + * Get a single configuration value using dot-notation path syntax + * @param config - The SmashConfig object to retrieve from + * @param path - The dot-notation path to the configuration value + * @returns The value at the specified path + * @throws {Error} If the configuration value is not found at the specified path + * @example + * const apiUrl = getConfig(config, "server.api.url"); + */ export function getConfig

( config: SmashConfig, path: P, @@ -41,6 +63,15 @@ export function getConfig

( return value as unknown as PathValue; } +/** + * Get multiple configuration values using dot-notation path syntax + * @param config - The SmashConfig object to retrieve from + * @param paths - Array of dot-notation paths to retrieve + * @returns Array of values corresponding to the specified paths + * @throws {Error} If any configuration value is not found at the specified paths + * @example + * const [apiUrl, timeout] = getConfigs(config, ["server.api.url", "server.timeout"]); + */ export function getConfigs

( config: SmashConfig, paths: [...P], diff --git a/packages/smash-config/src/utils.ts b/packages/smash-config/src/utils/getSmashConfig.ts similarity index 94% rename from packages/smash-config/src/utils.ts rename to packages/smash-config/src/utils/getSmashConfig.ts index 9a96e745..8c01fa30 100644 --- a/packages/smash-config/src/utils.ts +++ b/packages/smash-config/src/utils/getSmashConfig.ts @@ -1,4 +1,5 @@ -import type { SCSSAliases, SmashConfig } from "./index.js"; +import type { SCSSAliases, SmashConfig } from "../types.js"; + import { normalize, resolve } from "node:path"; import { pathToFileURL } from "node:url"; import { cosmiconfig } from "cosmiconfig"; @@ -26,7 +27,7 @@ const getDefaultSCSSAliases = (themePath: string): SCSSAliases => ({ ], }); -export async function getSmashConfig(): Promise | null> { +export default async function getSmashConfig(): Promise | null> { const explorer = cosmiconfig("smash"); const config = await explorer .load(resolve(process.cwd(), "smash.config.ts")) @@ -103,7 +104,7 @@ export async function getSmashConfig(): Promise | null> { username: "", password: "", }, - } + }, }; return defaultConfig; }); @@ -120,7 +121,3 @@ function isValidSmashConfig(config: unknown): config is SmashConfig { typeof config.themePath === "string" ); } - - -// Fetch config vars from smash config - diff --git a/packages/smash-config/src/utils/getStagingUrl.ts b/packages/smash-config/src/utils/getStagingUrl.ts new file mode 100644 index 00000000..387b4e03 --- /dev/null +++ b/packages/smash-config/src/utils/getStagingUrl.ts @@ -0,0 +1,10 @@ +import { SmashConfig } from "../"; +import { getConfigs } from "../"; + +export default function getStagingUrl(config: SmashConfig): string { + const [value] = getConfigs(config, ["staging.url"]); + return value + .replace(/^https?:\/\//, "") + .replace(/^www\./, "") + .replace(/\/$/, ""); +} From f012ee2704c7afc0611ed4ef60af251d5745d164 Mon Sep 17 00:00:00 2001 From: William Leighton Date: Thu, 28 May 2026 14:15:30 +0100 Subject: [PATCH 22/62] git linting errors from merge --- packages/cli/src/commands/pull-database.ts | 8 ++++---- packages/smash-config/src/types.ts | 2 +- packages/smash-config/src/utils/getConfigValue.ts | 2 +- packages/smash-config/src/utils/getStagingUrl.ts | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/cli/src/commands/pull-database.ts b/packages/cli/src/commands/pull-database.ts index b17d649b..0599a9f2 100644 --- a/packages/cli/src/commands/pull-database.ts +++ b/packages/cli/src/commands/pull-database.ts @@ -97,7 +97,7 @@ export async function handler() { await stopRunningMessage2(); console.log("Database imported."); }) - .catch(async (error) => { + .catch(async (error: unknown) => { await stopRunningMessage2(); throw error; }); @@ -116,7 +116,7 @@ export async function handler() { await stopRunningMessage3(); console.log("Search and replace completed."); }) - .catch(async (error) => { + .catch(async (error: unknown) => { await stopRunningMessage3(); throw error; }); @@ -139,7 +139,7 @@ export async function handler() { "If you want to download recent media you can use `npm run pull:media`, you can also change the number of months to download in your `.env` file.", ); }) - .catch(async (error) => { + .catch(async (error: unknown) => { await stopRunningMessage(); console.error("Error during database pull:", error); @@ -153,7 +153,7 @@ export async function handler() { ); if (failedCleanups.length > 0) { console.warn( - `Warning: Failed to delete ${failedCleanups.length} temporary file(s). You may need to clean them up manually.`, + `Warning: Failed to delete ${failedCleanups.length.toString()} temporary file(s). You may need to clean them up manually.`, ); } process.exitCode = 1; diff --git a/packages/smash-config/src/types.ts b/packages/smash-config/src/types.ts index d78b0926..9ec587ce 100644 --- a/packages/smash-config/src/types.ts +++ b/packages/smash-config/src/types.ts @@ -1,4 +1,4 @@ -import { Options } from "sass"; +import type { Options } from "sass"; export type SCSSAliases = { loadPaths?: Options<"async">["loadPaths"]; diff --git a/packages/smash-config/src/utils/getConfigValue.ts b/packages/smash-config/src/utils/getConfigValue.ts index 4b5392b4..e31a55fb 100644 --- a/packages/smash-config/src/utils/getConfigValue.ts +++ b/packages/smash-config/src/utils/getConfigValue.ts @@ -1,4 +1,4 @@ -import { SmashConfig } from "../types"; +import type { SmashConfig } from "../types"; /* diff --git a/packages/smash-config/src/utils/getStagingUrl.ts b/packages/smash-config/src/utils/getStagingUrl.ts index 387b4e03..7ced9194 100644 --- a/packages/smash-config/src/utils/getStagingUrl.ts +++ b/packages/smash-config/src/utils/getStagingUrl.ts @@ -1,4 +1,4 @@ -import { SmashConfig } from "../"; +import type { SmashConfig } from "../"; import { getConfigs } from "../"; export default function getStagingUrl(config: SmashConfig): string { From 6a4a9ea467c7484c4ac455a6600e0a0698788945 Mon Sep 17 00:00:00 2001 From: William Leighton Date: Thu, 28 May 2026 14:22:48 +0100 Subject: [PATCH 23/62] import fix --- packages/smash-config/src/utils/getStagingUrl.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/smash-config/src/utils/getStagingUrl.ts b/packages/smash-config/src/utils/getStagingUrl.ts index 7ced9194..51e7e471 100644 --- a/packages/smash-config/src/utils/getStagingUrl.ts +++ b/packages/smash-config/src/utils/getStagingUrl.ts @@ -1,5 +1,5 @@ -import type { SmashConfig } from "../"; -import { getConfigs } from "../"; +import type { SmashConfig } from "../index.js"; +import { getConfigs } from "../index.js"; export default function getStagingUrl(config: SmashConfig): string { const [value] = getConfigs(config, ["staging.url"]); From a7df011bfc6fe7aa2c205e020804089c7f0078a6 Mon Sep 17 00:00:00 2001 From: William Leighton Date: Thu, 28 May 2026 15:53:44 +0100 Subject: [PATCH 24/62] remove --skip-columns=guuid from the search and replace --- packages/cli/src/commands/pull-database.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cli/src/commands/pull-database.ts b/packages/cli/src/commands/pull-database.ts index 0599a9f2..d9dd8068 100644 --- a/packages/cli/src/commands/pull-database.ts +++ b/packages/cli/src/commands/pull-database.ts @@ -110,7 +110,7 @@ export async function handler() { const stagingUrl = getStagingUrl(smashConfig); await execute( - `wp search-replace --url=${projectName}.test //${stagingUrl} '//${projectName}.test' --skip-columns=guid`, + `wp search-replace --url=${projectName}.test //${stagingUrl} '//${projectName}.test'`, ) .then(async () => { await stopRunningMessage3(); From 4e514aecb683bfe6c4e83714a5803faedcea4186 Mon Sep 17 00:00:00 2001 From: William Leighton Date: Mon, 1 Jun 2026 15:49:54 +0100 Subject: [PATCH 25/62] remove www --- packages/smash-config/src/utils/getStagingUrl.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/smash-config/src/utils/getStagingUrl.ts b/packages/smash-config/src/utils/getStagingUrl.ts index 51e7e471..9ef53501 100644 --- a/packages/smash-config/src/utils/getStagingUrl.ts +++ b/packages/smash-config/src/utils/getStagingUrl.ts @@ -3,8 +3,5 @@ import { getConfigs } from "../index.js"; export default function getStagingUrl(config: SmashConfig): string { const [value] = getConfigs(config, ["staging.url"]); - return value - .replace(/^https?:\/\//, "") - .replace(/^www\./, "") - .replace(/\/$/, ""); + return value.replace(/^https?:\/\//, "").replace(/\/$/, ""); } From 3e331f674654a701b6981c88159b25e5abeae848 Mon Sep 17 00:00:00 2001 From: William Leighton Date: Mon, 1 Jun 2026 15:56:37 +0100 Subject: [PATCH 26/62] remove getConfigs helper function --- packages/cli/src/commands/pull-database.ts | 33 ++++---- .../cli/src/commands/toggle-media-proxy.ts | 24 +++--- packages/smash-config/src/index.ts | 2 +- .../smash-config/src/utils/getConfigValue.ts | 83 ------------------- .../smash-config/src/utils/getStagingUrl.ts | 7 +- 5 files changed, 33 insertions(+), 116 deletions(-) delete mode 100644 packages/smash-config/src/utils/getConfigValue.ts diff --git a/packages/cli/src/commands/pull-database.ts b/packages/cli/src/commands/pull-database.ts index d9dd8068..39bca5e4 100644 --- a/packages/cli/src/commands/pull-database.ts +++ b/packages/cli/src/commands/pull-database.ts @@ -2,11 +2,7 @@ import { exec } from "node:child_process"; import { unlink as deleteFile } from "node:fs/promises"; import { performance } from "node:perf_hooks"; import { promisify } from "node:util"; -import { - getConfigs, - getSmashConfig, - getStagingUrl, -} from "@atomicsmash/smash-config"; +import { getSmashConfig, getStagingUrl } from "@atomicsmash/smash-config"; import { convertMeasureToPrettyString, startRunningMessage } from "../utils.js"; export const command = "pull-database"; @@ -23,24 +19,23 @@ export async function handler() { ); } - const [ - stagingSSHUsername, - stagingSSHHost, - stagingSSHPort, - stagingDBPrefix, - stagingWebRoot, - ] = getConfigs(smashConfig, [ - "staging.ssh.username", - "staging.ssh.host", - "staging.ssh.port", - "staging.dbPrefix", - "staging.webRoot", - ]); + const { + projectName, + staging: { + dbPrefix: stagingDBPrefix, + webRoot: stagingWebRoot, + ssh: { + username: stagingSSHUsername, + host: stagingSSHHost, + port: stagingSSHPort, + }, + }, + } = smashConfig; - const { projectName } = smashConfig; const stopRunningMessage = startRunningMessage( "Pulling database from staging", ); + performance.mark("Start"); await (async () => { const tmpFile = "/tmp/staging-database.sql"; diff --git a/packages/cli/src/commands/toggle-media-proxy.ts b/packages/cli/src/commands/toggle-media-proxy.ts index d175c39d..3b67b8eb 100644 --- a/packages/cli/src/commands/toggle-media-proxy.ts +++ b/packages/cli/src/commands/toggle-media-proxy.ts @@ -3,11 +3,7 @@ import { readFile, writeFile } from "node:fs/promises"; import { homedir, type } from "node:os"; import { join } from "node:path"; import { promisify } from "node:util"; -import { - getConfigs, - getSmashConfig, - getStagingUrl, -} from "@atomicsmash/smash-config"; +import { getSmashConfig, getStagingUrl } from "@atomicsmash/smash-config"; const PROXY_MARKER = "location @uploadsproxy"; const isWindows = type() === "Darwin"; @@ -104,14 +100,22 @@ export async function handler() { ); } - const [httpAuthUsername, httpAuthPassword] = getConfigs(smashConfig, [ - "staging.httpAuth.username", - "staging.httpAuth.password", - ]); + // const [httpAuthUsername, httpAuthPassword] = getConfigs(smashConfig, [ + // "staging.httpAuth.username", + // "staging.httpAuth.password", + // ]); + + const { + staging: { + httpAuth: { username: httpAuthUsername, password: httpAuthPassword }, + }, + } = smashConfig; const httpAuth = httpAuthUsername && httpAuthPassword - ? Buffer.from(`${httpAuthUsername}:${httpAuthPassword}`).toString("base64") + ? Buffer.from(`${httpAuthUsername}:${httpAuthPassword}`).toString( + "base64", + ) : undefined; let updatedConfig: string; diff --git a/packages/smash-config/src/index.ts b/packages/smash-config/src/index.ts index c76b0642..6db13e77 100644 --- a/packages/smash-config/src/index.ts +++ b/packages/smash-config/src/index.ts @@ -1,4 +1,4 @@ export * from "./types.js"; -export { getConfig, getConfigs } from "./utils/getConfigValue.js"; + export { default as getStagingUrl } from "./utils/getStagingUrl.js"; export { default as getSmashConfig } from "./utils/getSmashConfig.js"; diff --git a/packages/smash-config/src/utils/getConfigValue.ts b/packages/smash-config/src/utils/getConfigValue.ts deleted file mode 100644 index e31a55fb..00000000 --- a/packages/smash-config/src/utils/getConfigValue.ts +++ /dev/null @@ -1,83 +0,0 @@ -import type { SmashConfig } from "../types"; - -/* - -Allows getting of values from the smash config using dot.notation and fully typed - - -*/ - -// Recursive type to get all dot-notation paths in an object -type DotNotationPaths = { - [K in keyof T & string]: T[K] extends object - ? DotNotationPaths | `${Prefix}${K}` - : `${Prefix}${K}`; -}[keyof T & string]; - -// Recursive type to get the value at a given dot-notation path -type PathValue = P extends `${infer Key}.${infer Rest}` - ? Key extends keyof T - ? PathValue - : never - : P extends keyof T - ? T[P] - : never; - -// Map an array of paths to an object of { path: value } pairs -type PathsToTuple[]> = { - [I in keyof Paths]: PathValue; -}; - -type SmashConfigPaths = DotNotationPaths; - -/* - -Get One - -*/ - -/** - * Get a single configuration value using dot-notation path syntax - * @param config - The SmashConfig object to retrieve from - * @param path - The dot-notation path to the configuration value - * @returns The value at the specified path - * @throws {Error} If the configuration value is not found at the specified path - * @example - * const apiUrl = getConfig(config, "server.api.url"); - */ -export function getConfig

( - config: SmashConfig, - path: P, -): PathValue { - const value = path.split(".").reduce((acc, key) => { - if (acc && typeof acc === "object" && key in acc) { - return (acc as Record)[key]; - } - return undefined; - }, config); - - if (value === undefined) { - throw new Error(`Missing config value at path: "${path}"`); - } - - return value as unknown as PathValue; -} - -/** - * Get multiple configuration values using dot-notation path syntax - * @param config - The SmashConfig object to retrieve from - * @param paths - Array of dot-notation paths to retrieve - * @returns Array of values corresponding to the specified paths - * @throws {Error} If any configuration value is not found at the specified paths - * @example - * const [apiUrl, timeout] = getConfigs(config, ["server.api.url", "server.timeout"]); - */ -export function getConfigs

( - config: SmashConfig, - paths: [...P], -): PathsToTuple { - return paths.map((path) => getConfig(config, path)) as PathsToTuple< - SmashConfig, - P - >; -} diff --git a/packages/smash-config/src/utils/getStagingUrl.ts b/packages/smash-config/src/utils/getStagingUrl.ts index 9ef53501..b684580d 100644 --- a/packages/smash-config/src/utils/getStagingUrl.ts +++ b/packages/smash-config/src/utils/getStagingUrl.ts @@ -1,7 +1,8 @@ import type { SmashConfig } from "../index.js"; -import { getConfigs } from "../index.js"; export default function getStagingUrl(config: SmashConfig): string { - const [value] = getConfigs(config, ["staging.url"]); - return value.replace(/^https?:\/\//, "").replace(/\/$/, ""); + const { + staging: { url }, + } = config; + return url.replace(/^https?:\/\//, "").replace(/\/$/, ""); } From a7fe5899e1c3f4d839fefcfe9f4019004ccb44eb Mon Sep 17 00:00:00 2001 From: William Leighton Date: Mon, 1 Jun 2026 16:10:16 +0100 Subject: [PATCH 27/62] remove commented out code --- packages/cli/src/commands/toggle-media-proxy.ts | 5 ----- 1 file changed, 5 deletions(-) diff --git a/packages/cli/src/commands/toggle-media-proxy.ts b/packages/cli/src/commands/toggle-media-proxy.ts index 3b67b8eb..6c3d7b74 100644 --- a/packages/cli/src/commands/toggle-media-proxy.ts +++ b/packages/cli/src/commands/toggle-media-proxy.ts @@ -100,11 +100,6 @@ export async function handler() { ); } - // const [httpAuthUsername, httpAuthPassword] = getConfigs(smashConfig, [ - // "staging.httpAuth.username", - // "staging.httpAuth.password", - // ]); - const { staging: { httpAuth: { username: httpAuthUsername, password: httpAuthPassword }, From 3fa960e78d565ac56bd0ce850eda1a65f1119cd2 Mon Sep 17 00:00:00 2001 From: William Leighton Date: Tue, 2 Jun 2026 16:01:38 +0100 Subject: [PATCH 28/62] fix isWindows check --- packages/cli/src/commands/toggle-media-proxy.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/cli/src/commands/toggle-media-proxy.ts b/packages/cli/src/commands/toggle-media-proxy.ts index 6c3d7b74..6ca8716e 100644 --- a/packages/cli/src/commands/toggle-media-proxy.ts +++ b/packages/cli/src/commands/toggle-media-proxy.ts @@ -6,7 +6,7 @@ import { promisify } from "node:util"; import { getSmashConfig, getStagingUrl } from "@atomicsmash/smash-config"; const PROXY_MARKER = "location @uploadsproxy"; -const isWindows = type() === "Darwin"; + const execute = promisify(exec); function buildProxyBlock(stagingUrl: string, httpAuth?: string) { @@ -81,8 +81,10 @@ export async function handler() { ); } const stagingUrl = getStagingUrl(smashConfig); - const { projectName } = smashConfig; + + const isWindows = type() !== "Windows_NT"; + const nginxConfigPath = join( homedir(), isWindows From 55ccec38dfb263aea890c8989bd4de41bd8a046d Mon Sep 17 00:00:00 2001 From: William Leighton Date: Tue, 2 Jun 2026 16:03:40 +0100 Subject: [PATCH 29/62] use named exports --- packages/smash-config/src/index.ts | 4 ++-- packages/smash-config/src/utils/getSmashConfig.ts | 2 +- packages/smash-config/src/utils/getStagingUrl.ts | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/smash-config/src/index.ts b/packages/smash-config/src/index.ts index 6db13e77..c9696268 100644 --- a/packages/smash-config/src/index.ts +++ b/packages/smash-config/src/index.ts @@ -1,4 +1,4 @@ export * from "./types.js"; -export { default as getStagingUrl } from "./utils/getStagingUrl.js"; -export { default as getSmashConfig } from "./utils/getSmashConfig.js"; +export { getStagingUrl } from "./utils/getStagingUrl.js"; +export { getSmashConfig } from "./utils/getSmashConfig.js"; diff --git a/packages/smash-config/src/utils/getSmashConfig.ts b/packages/smash-config/src/utils/getSmashConfig.ts index 8c01fa30..c31c211b 100644 --- a/packages/smash-config/src/utils/getSmashConfig.ts +++ b/packages/smash-config/src/utils/getSmashConfig.ts @@ -27,7 +27,7 @@ const getDefaultSCSSAliases = (themePath: string): SCSSAliases => ({ ], }); -export default async function getSmashConfig(): Promise | null> { +export async function getSmashConfig(): Promise | null> { const explorer = cosmiconfig("smash"); const config = await explorer .load(resolve(process.cwd(), "smash.config.ts")) diff --git a/packages/smash-config/src/utils/getStagingUrl.ts b/packages/smash-config/src/utils/getStagingUrl.ts index b684580d..c983a0ba 100644 --- a/packages/smash-config/src/utils/getStagingUrl.ts +++ b/packages/smash-config/src/utils/getStagingUrl.ts @@ -1,6 +1,6 @@ import type { SmashConfig } from "../index.js"; -export default function getStagingUrl(config: SmashConfig): string { +export function getStagingUrl(config: SmashConfig): string { const { staging: { url }, } = config; From 971491ef0daa54799ef9f7a4607bf50200c885d6 Mon Sep 17 00:00:00 2001 From: William Leighton Date: Wed, 3 Jun 2026 10:17:00 +0100 Subject: [PATCH 30/62] make port optional --- packages/cli/src/commands/pull-database.ts | 5 ++++- packages/smash-config/src/types.ts | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/cli/src/commands/pull-database.ts b/packages/cli/src/commands/pull-database.ts index 39bca5e4..f899a4cb 100644 --- a/packages/cli/src/commands/pull-database.ts +++ b/packages/cli/src/commands/pull-database.ts @@ -76,8 +76,11 @@ export async function handler() { "pmxi_posts", "pmxi_templates", ].map((tableName) => stagingDBPrefix + tableName); + + const port = + stagingSSHPort && stagingSSHPort.length > 0 ? `-p ${stagingSSHPort}` : ``; await execute( - `ssh -o "StrictHostKeyChecking no" ${stagingSSHUsername}@${stagingSSHHost} -p ${stagingSSHPort} "${stagingWebRoot !== "" ? `cd ${stagingWebRoot} && ` : ""}wp db export - --add-drop-table --exclude_tables=${tablesToExclude.join(",")}" > ${tmpFile}`, + `ssh -o "StrictHostKeyChecking no" ${stagingSSHUsername}@${stagingSSHHost} ${port} "${stagingWebRoot !== "" ? `cd ${stagingWebRoot} && ` : ""} wp db export - --add-drop-table --exclude_tables=${tablesToExclude.join(",")}" > ${tmpFile}`, ) .then(async () => { await stopRunningMessage(); diff --git a/packages/smash-config/src/types.ts b/packages/smash-config/src/types.ts index 9ec587ce..24cd00ad 100644 --- a/packages/smash-config/src/types.ts +++ b/packages/smash-config/src/types.ts @@ -20,7 +20,7 @@ export type SmashConfig = { ssh: { username: string; host: string; - port: string; + port?: string; }; httpAuth: { username: string; From 0827713cf5aa301dad4746c7693e837d37fcd90b Mon Sep 17 00:00:00 2001 From: Mikey Binns <38146638+mikeybinns@users.noreply.github.com> Date: Wed, 10 Jun 2026 15:20:07 +0100 Subject: [PATCH 31/62] Add smash config version handler, remove .env vars fallback and make changes to smash config types and validation --- .gitignore | 2 +- packages/cli/src/commands/pull-database.ts | 18 +- packages/cli/src/commands/setup-database.ts | 200 ++++---- packages/cli/src/commands/setup.ts | 439 +++++++++--------- .../cli/src/commands/toggle-media-proxy.ts | 47 +- packages/cli/src/main.test.ts | 26 +- packages/compiler/src/config.ts | 39 +- packages/compiler/src/tests/compiler.test.ts | 63 ++- packages/compiler/src/tests/smash.config.ts | 13 + .../{ => theme}/src/fonts/Roboto-Medium.ttf | Bin .../{ => theme}/src/fonts/Roboto-Regular.ttf | Bin .../{ => theme}/src/fonts/Roboto-SemiBold.ttf | Bin .../{ => theme}/src/fonts/Roboto-Thin.ttf | Bin .../{ => theme}/src/icons/ArrowRight.svg | 0 .../{ => theme}/src/icons/CardMastercard.svg | 0 .../tests/{ => theme}/src/icons/Thumbtack.svg | 0 .../{ => theme}/src/images/image-01.jpeg | Bin .../tests/{ => theme}/src/images/image-02.png | Bin .../src/scripts/_modules/js-module.js | 0 .../src/scripts/_modules/ts-module.ts | 0 .../{ => theme}/src/scripts/javascript.js | 0 .../scripts/subfoldercompiled/javascript.js | 0 .../scripts/subfoldercompiled/typescript.ts | 0 .../{ => theme}/src/scripts/typescript.ts | 0 .../_subfoldernotcompiled/_partial2.scss | 0 .../styles/_subfoldernotcompiled/failure.css | 0 .../style-subfoldernotcompiled.scss | 0 .../src/tests/{ => theme}/src/styles/pure.css | 0 .../tests/{ => theme}/src/styles/style.scss | 0 .../styles/subfoldercompiled/_partial.scss | 0 .../src/styles/subfoldercompiled/allowed.css | 0 .../style-subfoldercompiled.scss | 0 packages/smash-config/src/index.ts | 1 - .../artifacts/no-version/smash.config.ts | 5 + .../src/tests/artifacts/v1/smash.config.ts | 6 + .../src/tests/artifacts/v2/smash.config.ts | 14 + .../src/tests/getSmashConfig.test.ts | 100 ++++ .../src/tests/normaliseStagingURL.test.ts | 11 + packages/smash-config/src/types.ts | 56 ++- .../smash-config/src/utils/getSmashConfig.ts | 121 ++--- .../smash-config/src/utils/getStagingUrl.ts | 8 - .../src/utils/normaliseStagingURL.ts | 6 + packages/smash-config/vitest.config.ts | 7 + 43 files changed, 674 insertions(+), 508 deletions(-) create mode 100644 packages/compiler/src/tests/smash.config.ts rename packages/compiler/src/tests/{ => theme}/src/fonts/Roboto-Medium.ttf (100%) rename packages/compiler/src/tests/{ => theme}/src/fonts/Roboto-Regular.ttf (100%) rename packages/compiler/src/tests/{ => theme}/src/fonts/Roboto-SemiBold.ttf (100%) rename packages/compiler/src/tests/{ => theme}/src/fonts/Roboto-Thin.ttf (100%) rename packages/compiler/src/tests/{ => theme}/src/icons/ArrowRight.svg (100%) rename packages/compiler/src/tests/{ => theme}/src/icons/CardMastercard.svg (100%) rename packages/compiler/src/tests/{ => theme}/src/icons/Thumbtack.svg (100%) rename packages/compiler/src/tests/{ => theme}/src/images/image-01.jpeg (100%) rename packages/compiler/src/tests/{ => theme}/src/images/image-02.png (100%) rename packages/compiler/src/tests/{ => theme}/src/scripts/_modules/js-module.js (100%) rename packages/compiler/src/tests/{ => theme}/src/scripts/_modules/ts-module.ts (100%) rename packages/compiler/src/tests/{ => theme}/src/scripts/javascript.js (100%) rename packages/compiler/src/tests/{ => theme}/src/scripts/subfoldercompiled/javascript.js (100%) rename packages/compiler/src/tests/{ => theme}/src/scripts/subfoldercompiled/typescript.ts (100%) rename packages/compiler/src/tests/{ => theme}/src/scripts/typescript.ts (100%) rename packages/compiler/src/tests/{ => theme}/src/styles/_subfoldernotcompiled/_partial2.scss (100%) rename packages/compiler/src/tests/{ => theme}/src/styles/_subfoldernotcompiled/failure.css (100%) rename packages/compiler/src/tests/{ => theme}/src/styles/_subfoldernotcompiled/style-subfoldernotcompiled.scss (100%) rename packages/compiler/src/tests/{ => theme}/src/styles/pure.css (100%) rename packages/compiler/src/tests/{ => theme}/src/styles/style.scss (100%) rename packages/compiler/src/tests/{ => theme}/src/styles/subfoldercompiled/_partial.scss (100%) rename packages/compiler/src/tests/{ => theme}/src/styles/subfoldercompiled/allowed.css (100%) rename packages/compiler/src/tests/{ => theme}/src/styles/subfoldercompiled/style-subfoldercompiled.scss (100%) create mode 100644 packages/smash-config/src/tests/artifacts/no-version/smash.config.ts create mode 100644 packages/smash-config/src/tests/artifacts/v1/smash.config.ts create mode 100644 packages/smash-config/src/tests/artifacts/v2/smash.config.ts create mode 100644 packages/smash-config/src/tests/getSmashConfig.test.ts create mode 100644 packages/smash-config/src/tests/normaliseStagingURL.test.ts delete mode 100644 packages/smash-config/src/utils/getStagingUrl.ts create mode 100644 packages/smash-config/src/utils/normaliseStagingURL.ts create mode 100644 packages/smash-config/vitest.config.ts diff --git a/.gitignore b/.gitignore index 36d04958..67d32f7e 100644 --- a/.gitignore +++ b/.gitignore @@ -30,4 +30,4 @@ packages/cli/src/tests/package-lock.json .cache/ # Compiler package -packages/compiler/src/tests/dist +packages/compiler/src/tests/theme/dist diff --git a/packages/cli/src/commands/pull-database.ts b/packages/cli/src/commands/pull-database.ts index f899a4cb..94ed7502 100644 --- a/packages/cli/src/commands/pull-database.ts +++ b/packages/cli/src/commands/pull-database.ts @@ -2,7 +2,7 @@ import { exec } from "node:child_process"; import { unlink as deleteFile } from "node:fs/promises"; import { performance } from "node:perf_hooks"; import { promisify } from "node:util"; -import { getSmashConfig, getStagingUrl } from "@atomicsmash/smash-config"; +import { getSmashConfig } from "@atomicsmash/smash-config"; import { convertMeasureToPrettyString, startRunningMessage } from "../utils.js"; export const command = "pull-database"; @@ -11,17 +11,12 @@ export const describe = export async function handler() { const execute = promisify(exec); - const smashConfig = await getSmashConfig(); - - if (!smashConfig) { - throw new Error( - "Unable to determine project setup information. Please add a smash.config.ts file with the required info.", - ); - } + const smashConfig = await getSmashConfig(2); const { projectName, staging: { + url: stagingURL, dbPrefix: stagingDBPrefix, webRoot: stagingWebRoot, ssh: { @@ -77,8 +72,7 @@ export async function handler() { "pmxi_templates", ].map((tableName) => stagingDBPrefix + tableName); - const port = - stagingSSHPort && stagingSSHPort.length > 0 ? `-p ${stagingSSHPort}` : ``; + const port = stagingSSHPort ? `-p ${stagingSSHPort.toString()}` : ``; await execute( `ssh -o "StrictHostKeyChecking no" ${stagingSSHUsername}@${stagingSSHHost} ${port} "${stagingWebRoot !== "" ? `cd ${stagingWebRoot} && ` : ""} wp db export - --add-drop-table --exclude_tables=${tablesToExclude.join(",")}" > ${tmpFile}`, ) @@ -105,10 +99,8 @@ export async function handler() { "Running search and replace", ); - const stagingUrl = getStagingUrl(smashConfig); - await execute( - `wp search-replace --url=${projectName}.test //${stagingUrl} '//${projectName}.test'`, + `wp search-replace --url=${projectName}.test //${stagingURL} '//${projectName}.test'`, ) .then(async () => { await stopRunningMessage3(); diff --git a/packages/cli/src/commands/setup-database.ts b/packages/cli/src/commands/setup-database.ts index 2567096a..2b62e4c1 100644 --- a/packages/cli/src/commands/setup-database.ts +++ b/packages/cli/src/commands/setup-database.ts @@ -100,114 +100,108 @@ export async function handler() { } : null; - if (!smashConfig) { - throw new Error( - "Unable to determine project setup information. Please add a smash.config.ts file with the required info.", - ); - } else { - const { projectName, themeFolderName } = smashConfig; - const stopRunningMessage = startRunningMessage("Initialising database"); - performance.mark("Start"); - await execute("wp db create") - .then(() => { + const { projectName, themeFolderName } = smashConfig; + const stopRunningMessage = startRunningMessage("Initialising database"); + performance.mark("Start"); + await execute("wp db create") + .then(() => { + return execute( + `wp core install --url=http://${process.env.CI ? "127.0.0.1" : `${projectName}.test`}/ --title=Temp --admin_user=Bot --admin_email=fake@fake.com --admin_password=password`, + ); + }) + .then(() => { + performance.mark("wordpress-tables"); + console.log( + `Wordpress database tables installed. (${convertMeasureToPrettyString( + performance.measure("wordpress-tables", "Start"), + )})`, + ); + if (newUserToAdd) { return execute( - `wp core install --url=http://${process.env.CI ? "127.0.0.1" : `${projectName}.test`}/ --title=Temp --admin_user=Bot --admin_email=fake@fake.com --admin_password=password`, + `wp user create ${newUserToAdd.user} ${newUserToAdd.email} --user_pass=${newUserToAdd.password} --role=administrator`, ); - }) - .then(() => { - performance.mark("wordpress-tables"); + } + }) + .then(async () => { + if (newUserToAdd) { + performance.mark("add-custom-user"); console.log( - `Wordpress database tables installed. (${convertMeasureToPrettyString( - performance.measure("wordpress-tables", "Start"), + `Custom user ${newUserToAdd.user} added. (${convertMeasureToPrettyString( + performance.measure("add-custom-user", "wordpress-tables"), )})`, ); - if (newUserToAdd) { - return execute( - `wp user create ${newUserToAdd.user} ${newUserToAdd.email} --user_pass=${newUserToAdd.password} --role=administrator`, - ); - } - }) - .then(async () => { - if (newUserToAdd) { - performance.mark("add-custom-user"); - console.log( - `Custom user ${newUserToAdd.user} added. (${convertMeasureToPrettyString( - performance.measure("add-custom-user", "wordpress-tables"), - )})`, - ); - } + } - const excludedPlugins = [ - "stream", - "shortpixel-image-optimiser", - "wordfence", - "wp-mail-smtp", - "modular-connector", - ]; - const { stdout: pluginList } = await execute( - "wp plugin list --format=json", - ); - const allPlugins: { name: string; status: string }[] = JSON.parse( - pluginList, - ) as { name: string; status: string }[]; - - // Filter out excluded plugins and already active plugins - const pluginsToActivate = allPlugins - .filter( - (plugin) => - !excludedPlugins.includes(plugin.name) && - plugin.status !== "active", - ) - .map((plugin) => plugin.name); - - await activatePluginsWithRetry( - execute, - pluginsToActivate, - excludedPlugins, - ); - }) - .then(() => { - performance.mark("plugins"); - console.log( - `Plugins activated. (${convertMeasureToPrettyString( - performance.measure( - "plugins", - newUserToAdd ? "add-custom-user" : "wordpress-tables", - ), - )})`, + const excludedPlugins = [ + "stream", + "shortpixel-image-optimiser", + "wordfence", + "wp-mail-smtp", + "modular-connector", + ]; + const { stdout: pluginList } = await execute( + "wp plugin list --format=json", + ); + const allPlugins: { name: string; status: string }[] = JSON.parse( + pluginList, + ) as { name: string; status: string }[]; + + // Filter out excluded plugins and already active plugins + const pluginsToActivate = allPlugins + .filter( + (plugin) => + !excludedPlugins.includes(plugin.name) && + plugin.status !== "active", + ) + .map((plugin) => plugin.name); + + await activatePluginsWithRetry( + execute, + pluginsToActivate, + excludedPlugins, + ); + }) + .then(() => { + performance.mark("plugins"); + console.log( + `Plugins activated. (${convertMeasureToPrettyString( + performance.measure( + "plugins", + newUserToAdd ? "add-custom-user" : "wordpress-tables", + ), + )})`, + ); + return execute(`wp theme activate ${themeFolderName}`); + }) + .then(async () => { + performance.mark("theme"); + console.log( + `Theme activated. (${convertMeasureToPrettyString( + performance.measure("theme", "plugins"), + )})`, + ); + await stopRunningMessage(); + console.log( + `Database set up${newUserToAdd ? ` and ${newUserToAdd.user} user added` : !process.env.CI ? ". To set up a user, run the `wp user create` command." : ""}. (${convertMeasureToPrettyString( + performance.measure("everything", "Start"), + )})`, + ); + }) + .catch(async (error: unknown) => { + await stopRunningMessage(); + if ( + typeof error === "object" && + error && + "stderr" in error && + typeof error.stderr === "string" && + error.stderr.startsWith("ERROR 1007") + ) { + console.error( + "Database already exists with the name in the wp-config. Please delete that database first with `wp db drop --yes`", ); - return execute(`wp theme activate ${themeFolderName}`); - }) - .then(async () => { - performance.mark("theme"); - console.log( - `Theme activated. (${convertMeasureToPrettyString( - performance.measure("theme", "plugins"), - )})`, - ); - await stopRunningMessage(); - console.log( - `Database set up${newUserToAdd ? ` and ${newUserToAdd.user} user added` : !process.env.CI ? ". To set up a user, run the `wp user create` command." : ""}. (${convertMeasureToPrettyString( - performance.measure("everything", "Start"), - )})`, - ); - }) - .catch(async (error: unknown) => { - await stopRunningMessage(); - if ( - typeof error === "object" && - error && - "stderr" in error && - typeof error.stderr === "string" && - error.stderr.startsWith("ERROR 1007") - ) { - console.error( - "Database already exists with the name in the wp-config. Please delete that database first with `wp db drop --yes`", - ); - } else { - console.error(error); - process.exitCode = 1; - } - }); - } + } else { + console.error(error); + process.exitCode = 1; + } + }); } diff --git a/packages/cli/src/commands/setup.ts b/packages/cli/src/commands/setup.ts index 5b43f7ef..8a612fbe 100644 --- a/packages/cli/src/commands/setup.ts +++ b/packages/cli/src/commands/setup.ts @@ -26,252 +26,247 @@ export async function handler() { }); const isCI = process.env.CI ?? false; const smashConfig = await getSmashConfig(); - if (!smashConfig) { - throw new Error( - "Unable to determine project setup information. Please add a smash.config.ts file with the required info.", - ); - } else { - const { projectName, composerInstallPaths, npmInstallPaths } = smashConfig; - const stopRunningMessage = startRunningMessage("Running setup"); - performance.mark("Start"); - await Promise.allSettled([ - ...(isCI || shouldInstallAndBuildOnly - ? [] - : [ - (async () => { - if (existsSync(".env.example")) { - if (existsSync(".config/environments/.env.dev")) { - throw new Error( - "Both .env.example and .config/environments/.env.dev files found. Please copy values from the .env.example to the .config/environments/.env.dev file and then delete the .env.example file.", - ); - } else { + + const { projectName, composerInstallPaths, npmInstallPaths } = smashConfig; + const stopRunningMessage = startRunningMessage("Running setup"); + performance.mark("Start"); + await Promise.allSettled([ + ...(isCI || shouldInstallAndBuildOnly + ? [] + : [ + (async () => { + if (existsSync(".env.example")) { + if (existsSync(".config/environments/.env.dev")) { + throw new Error( + "Both .env.example and .config/environments/.env.dev files found. Please copy values from the .env.example to the .config/environments/.env.dev file and then delete the .env.example file.", + ); + } else { + console.log( + "Moving .env.example to .config/environments/.env.dev", + ); + if (!existsSync(".config/environments")) { + await mkdir(".config/environments", { recursive: true }); + } + await copyFile( + ".env.example", + ".config/environments/.env.dev", + constants.COPYFILE_EXCL, + ); + await deleteFile(".env.example"); + } + } + await copyFile( + ".config/environments/.env.dev", + ".env", + constants.COPYFILE_EXCL, + ) + .then(() => { + console.log( + `.config/environments/.env.dev file copied to .env. (${convertMeasureToPrettyString( + performance.measure("Copy env file", "Start"), + )})`, + ); + }) + .catch((error: unknown) => { + if ( + error instanceof Error && + "code" in error && + error.code === "EEXIST" + ) { console.log( - "Moving .env.example to .config/environments/.env.dev", - ); - if (!existsSync(".config/environments")) { - await mkdir(".config/environments", { recursive: true }); - } - await copyFile( - ".env.example", - ".config/environments/.env.dev", - constants.COPYFILE_EXCL, + `Didn't copy .env file because one already exists. (${convertMeasureToPrettyString( + performance.measure("Copy env file", "Start"), + )})`, ); - await deleteFile(".env.example"); + return; } + console.error(error); + throw new Error("Failed to copy .env file."); + }); + })(), + (async () => { + const ONE_MINUTE_IN_MS = 60000; + const timeout = setTimeout(() => { + throw new Error( + "Herd/Valet commands timed out. Please try again.", + ); + }, ONE_MINUTE_IN_MS * 1.5); + if ( + await execute(`herd --version`) + .then(() => true) + .catch(() => false) + ) { + if ( + !existsSync(resolve(process.cwd(), "herd.yaml")) && + !existsSync(resolve(process.cwd(), "herd.yml")) + ) { + throw new Error( + "Herd is present on your machine, but the project is missing a herd.yaml file. Please do the initial setup by running herd init.", + ); } - await copyFile( - ".config/environments/.env.dev", - ".env", - constants.COPYFILE_EXCL, - ) + await execute(`herd link ${projectName} --secure`) .then(() => { + performance.mark("herd link done"); console.log( - `.config/environments/.env.dev file copied to .env. (${convertMeasureToPrettyString( - performance.measure("Copy env file", "Start"), + `Herd is linked and secured. (${convertMeasureToPrettyString( + performance.measure("herd link", "Start"), )})`, ); }) .catch((error: unknown) => { - if ( - error instanceof Error && - "code" in error && - error.code === "EEXIST" - ) { - console.log( - `Didn't copy .env file because one already exists. (${convertMeasureToPrettyString( - performance.measure("Copy env file", "Start"), - )})`, - ); - return; - } console.error(error); - throw new Error("Failed to copy .env file."); + throw new Error("Failed to link the site using Herd."); }); - })(), - (async () => { - const ONE_MINUTE_IN_MS = 60000; - const timeout = setTimeout(() => { - throw new Error( - "Herd/Valet commands timed out. Please try again.", - ); - }, ONE_MINUTE_IN_MS * 1.5); - if ( - await execute(`herd --version`) - .then(() => true) - .catch(() => false) - ) { - if ( - !existsSync(resolve(process.cwd(), "herd.yaml")) && - !existsSync(resolve(process.cwd(), "herd.yml")) - ) { - throw new Error( - "Herd is present on your machine, but the project is missing a herd.yaml file. Please do the initial setup by running herd init.", + await execute(`herd isolate --site=${projectName}`) + .then(() => { + console.log( + `Herd is isolated. (${convertMeasureToPrettyString( + performance.measure("herd isolate", "herd link done"), + )})`, ); - } - await execute(`herd link ${projectName} --secure`) - .then(() => { - performance.mark("herd link done"); - console.log( - `Herd is linked and secured. (${convertMeasureToPrettyString( - performance.measure("herd link", "Start"), - )})`, - ); - }) - .catch((error: unknown) => { - console.error(error); - throw new Error("Failed to link the site using Herd."); - }); - await execute(`herd isolate --site=${projectName}`) - .then(() => { - console.log( - `Herd is isolated. (${convertMeasureToPrettyString( - performance.measure("herd isolate", "herd link done"), - )})`, - ); - clearTimeout(timeout); - }) - .catch((error: unknown) => { - console.error(error); - throw new Error("Failed to isolate the site using Herd."); - }); - } else if ( - await execute(`valet --version`) - .then(() => true) - .catch(() => false) - ) { - await execute(`valet link ${projectName} --secure --isolate`) - .then(() => { - clearTimeout(timeout); - console.log( - `Valet is linked, secured and isolated. (${convertMeasureToPrettyString( - performance.measure("herd-or-valet", "Start"), - )})`, - ); - }) - .catch((error: unknown) => { - console.error(error); - throw new Error("Failed to link the site using valet."); - }); - } else { - throw new Error( - `Neither Herd nor Valet is present on your machine, check everything is installed correctly.`, - ); - } - })(), - ]), - execute(`composer install${isCI ? " --prefer-dist" : ""}`) + clearTimeout(timeout); + }) + .catch((error: unknown) => { + console.error(error); + throw new Error("Failed to isolate the site using Herd."); + }); + } else if ( + await execute(`valet --version`) + .then(() => true) + .catch(() => false) + ) { + await execute(`valet link ${projectName} --secure --isolate`) + .then(() => { + clearTimeout(timeout); + console.log( + `Valet is linked, secured and isolated. (${convertMeasureToPrettyString( + performance.measure("herd-or-valet", "Start"), + )})`, + ); + }) + .catch((error: unknown) => { + console.error(error); + throw new Error("Failed to link the site using valet."); + }); + } else { + throw new Error( + `Neither Herd nor Valet is present on your machine, check everything is installed correctly.`, + ); + } + })(), + ]), + execute(`composer install${isCI ? " --prefer-dist" : ""}`) + .then(() => { + console.log( + `Root composer install done. (${convertMeasureToPrettyString( + performance.measure("root composer install", "Start"), + )})`, + ); + }) + .catch((error: unknown) => { + console.error(error); + throw new Error( + "Failed to run composer install in the root directory.", + ); + }), + ...composerInstallPaths.map((path, index) => { + return execute( + `cd "${resolve(process.cwd(), path)}"; composer install${isCI ? " --no-dev --classmap-authoritative" : ""}`, + ) .then(() => { console.log( - `Root composer install done. (${convertMeasureToPrettyString( - performance.measure("root composer install", "Start"), + `Additional composer install ${(index + 1).toString()} done. (${convertMeasureToPrettyString( + performance.measure( + `additional composer install ${(index + 1).toString()}`, + "Start", + ), )})`, ); }) .catch((error: unknown) => { console.error(error); throw new Error( - "Failed to run composer install in the root directory.", + `Failed to run additional composer install ${(index + 1).toString()}.`, ); - }), - ...composerInstallPaths.map((path, index) => { - return execute( - `cd "${resolve(process.cwd(), path)}"; composer install${isCI ? " --no-dev --classmap-authoritative" : ""}`, - ) - .then(() => { - console.log( - `Additional composer install ${(index + 1).toString()} done. (${convertMeasureToPrettyString( - performance.measure( - `additional composer install ${(index + 1).toString()}`, - "Start", - ), - )})`, - ); - }) - .catch((error: unknown) => { - console.error(error); - throw new Error( - `Failed to run additional composer install ${(index + 1).toString()}.`, - ); - }); - }), - (async () => { - await execute(`npm ${isCI ? "ci" : "install"}`) - .then(() => { - performance.mark("root npm install done"); - console.log( - `Root npm install done. (${convertMeasureToPrettyString( - performance.measure("root npm install", "Start"), - )})`, - ); - }) - .catch((error: unknown) => { - console.error(error); - throw new Error("Failed to run npm install in the root directory."); - }); - await execute("npm run build") - .then(() => { - console.log( - `Initial build done. (${convertMeasureToPrettyString( - performance.measure("build", "root npm install done"), - )})`, - ); - }) - .catch((error: unknown) => { - console.error(error); - throw new Error("Failed to run a build after installing."); - }); - })().catch((reason: unknown) => { - if (typeof reason === "string") { - throw new Error(reason); - } - throw reason; - }), - ...npmInstallPaths.map((path, index) => { - return execute( - `cd "${resolve(process.cwd(), path)}"; npm ${isCI ? "ci --omit=dev" : "install"}`, - ) - .then(() => { - console.log( - `Additional npm install ${(index + 1).toString()} done. (${convertMeasureToPrettyString( - performance.measure( - `additional npm install ${(index + 1).toString()}`, - "Start", - ), - )})`, - ); - }) - .catch((error: unknown) => { - console.error(error); - throw new Error( - `Failed to run additional npm install ${(index + 1).toString()}.`, - ); - }); - }), - ]) - .then(async (results) => { - await stopRunningMessage(); - if (results.some((result) => result.status === "rejected")) { - process.exitCode = 1; - console.error("Setup failed with the following errors:\n"); - console.error( - results - .filter((result) => result.status === "rejected") - .map((result) => { - return `- ${typeof result.reason === "string" ? result.reason : "Unknown reason."}`; - }) - .join(`\n`), + }); + }), + (async () => { + await execute(`npm ${isCI ? "ci" : "install"}`) + .then(() => { + performance.mark("root npm install done"); + console.log( + `Root npm install done. (${convertMeasureToPrettyString( + performance.measure("root npm install", "Start"), + )})`, + ); + }) + .catch((error: unknown) => { + console.error(error); + throw new Error("Failed to run npm install in the root directory."); + }); + await execute("npm run build") + .then(() => { + console.log( + `Initial build done. (${convertMeasureToPrettyString( + performance.measure("build", "root npm install done"), + )})`, ); - } else { + }) + .catch((error: unknown) => { + console.error(error); + throw new Error("Failed to run a build after installing."); + }); + })().catch((reason: unknown) => { + if (typeof reason === "string") { + throw new Error(reason); + } + throw reason; + }), + ...npmInstallPaths.map((path, index) => { + return execute( + `cd "${resolve(process.cwd(), path)}"; npm ${isCI ? "ci --omit=dev" : "install"}`, + ) + .then(() => { console.log( - `Setup is complete. ${convertMeasureToPrettyString( - performance.measure("everything", "Start"), - )}`, + `Additional npm install ${(index + 1).toString()} done. (${convertMeasureToPrettyString( + performance.measure( + `additional npm install ${(index + 1).toString()}`, + "Start", + ), + )})`, ); - } - }) - .catch((error: unknown) => { - console.error(error); + }) + .catch((error: unknown) => { + console.error(error); + throw new Error( + `Failed to run additional npm install ${(index + 1).toString()}.`, + ); + }); + }), + ]) + .then(async (results) => { + await stopRunningMessage(); + if (results.some((result) => result.status === "rejected")) { process.exitCode = 1; - }); - } + console.error("Setup failed with the following errors:\n"); + console.error( + results + .filter((result) => result.status === "rejected") + .map((result) => { + return `- ${typeof result.reason === "string" ? result.reason : "Unknown reason."}`; + }) + .join(`\n`), + ); + } else { + console.log( + `Setup is complete. ${convertMeasureToPrettyString( + performance.measure("everything", "Start"), + )}`, + ); + } + }) + .catch((error: unknown) => { + console.error(error); + process.exitCode = 1; + }); } diff --git a/packages/cli/src/commands/toggle-media-proxy.ts b/packages/cli/src/commands/toggle-media-proxy.ts index 6ca8716e..1cbf664f 100644 --- a/packages/cli/src/commands/toggle-media-proxy.ts +++ b/packages/cli/src/commands/toggle-media-proxy.ts @@ -3,13 +3,13 @@ import { readFile, writeFile } from "node:fs/promises"; import { homedir, type } from "node:os"; import { join } from "node:path"; import { promisify } from "node:util"; -import { getSmashConfig, getStagingUrl } from "@atomicsmash/smash-config"; +import { getSmashConfig } from "@atomicsmash/smash-config"; const PROXY_MARKER = "location @uploadsproxy"; const execute = promisify(exec); -function buildProxyBlock(stagingUrl: string, httpAuth?: string) { +function buildProxyBlock(stagingURL: string, httpAuth?: string) { const authHeader = httpAuth ? `\n proxy_set_header Authorization "Basic ${httpAuth}";` : ""; @@ -23,7 +23,7 @@ function buildProxyBlock(stagingUrl: string, httpAuth?: string) { resolver_timeout 10s; proxy_http_version 1.1; proxy_ssl_server_name on; - proxy_pass https://${stagingUrl}$uri$is_args$args; + proxy_pass https://${stagingURL}$uri$is_args$args; proxy_ssl_verify off; proxy_set_header Referer ""; proxy_set_header User-Agent "Mozilla/5.0";${authHeader} @@ -32,7 +32,7 @@ function buildProxyBlock(stagingUrl: string, httpAuth?: string) { function addProxyBlock( config: string, - stagingUrl: string, + stagingURL: string, httpAuth?: string, ): string { const listenDirective = "listen 127.0.0.1:443 ssl;"; @@ -56,7 +56,7 @@ function addProxyBlock( return ( config.slice(0, serverBlockEnd) + - buildProxyBlock(stagingUrl, httpAuth) + + buildProxyBlock(stagingURL, httpAuth) + "\n" + config.slice(serverBlockEnd) ); @@ -74,20 +74,18 @@ export const describe = "Toggle the media proxy in the local NGINX config within Herd."; export async function handler() { - const smashConfig = await getSmashConfig(); - if (!smashConfig) { - throw new Error( - "Unable to determine project setup information. Please add a smash.config.ts file with the required info.", - ); - } - const stagingUrl = getStagingUrl(smashConfig); - const { projectName } = smashConfig; + const smashConfig = await getSmashConfig(2); - const isWindows = type() !== "Windows_NT"; + const { + projectName, + staging: { url: stagingURL, httpAuth: stagingHttpAuth }, + } = smashConfig; + + const isMacOS = type() === "Darwin"; const nginxConfigPath = join( homedir(), - isWindows + isMacOS ? "Library/Application Support/Herd/config/valet/Nginx" : ".config\\herd\\config\\nginx", `${projectName}.test`, @@ -102,18 +100,11 @@ export async function handler() { ); } - const { - staging: { - httpAuth: { username: httpAuthUsername, password: httpAuthPassword }, - }, - } = smashConfig; - - const httpAuth = - httpAuthUsername && httpAuthPassword - ? Buffer.from(`${httpAuthUsername}:${httpAuthPassword}`).toString( - "base64", - ) - : undefined; + const httpAuth = stagingHttpAuth + ? Buffer.from( + `${stagingHttpAuth.username}:${stagingHttpAuth.password}`, + ).toString("base64") + : undefined; let updatedConfig: string; @@ -121,7 +112,7 @@ export async function handler() { updatedConfig = removeProxyBlock(config); console.log("Media proxy removed from NGINX config."); } else { - updatedConfig = addProxyBlock(config, stagingUrl, httpAuth); + updatedConfig = addProxyBlock(config, stagingURL, httpAuth); if (httpAuth) { console.log("Media proxy added to NGINX config (with HTTP auth)."); } else { diff --git a/packages/cli/src/main.test.ts b/packages/cli/src/main.test.ts index 851a2c39..7969614f 100644 --- a/packages/cli/src/main.test.ts +++ b/packages/cli/src/main.test.ts @@ -29,12 +29,13 @@ describe.concurrent("Base CLI helpers work as intended", () => { "stdout": "smash-cli Commands: - smash-cli pull-database Pull the database down from staging and replace local database. - smash-cli pull-media Pull the media items from the staging site. - smash-cli setup-database Create a new database and initialise the site with no content. - smash-cli setup Run all the common setup tasks for a project. - smash-cli svg Generate an SVG sprite from a group of SVGs. [deprecated: Migrate to using @atomicsmash/compiler, which supports an icons folder in the src folder.] - smash-cli completion generate completion script + smash-cli pull-database Pull the database down from staging and replace local database. + smash-cli pull-media Pull the media items from the staging site. + smash-cli setup-database Create a new database and initialise the site with no content. + smash-cli setup Run all the common setup tasks for a project. + smash-cli svg Generate an SVG sprite from a group of SVGs. [deprecated: Migrate to using @atomicsmash/compiler, which supports an icons folder in the src folder.] + smash-cli toggle-media-proxy Toggle the media proxy in the local NGINX config within Herd. + smash-cli completion generate completion script Options: -h, --help Show help [boolean] @@ -52,12 +53,13 @@ describe.concurrent("Base CLI helpers work as intended", () => { "stdout": "smash-cli Commands: - smash-cli pull-database Pull the database down from staging and replace local database. - smash-cli pull-media Pull the media items from the staging site. - smash-cli setup-database Create a new database and initialise the site with no content. - smash-cli setup Run all the common setup tasks for a project. - smash-cli svg Generate an SVG sprite from a group of SVGs. [deprecated: Migrate to using @atomicsmash/compiler, which supports an icons folder in the src folder.] - smash-cli completion generate completion script + smash-cli pull-database Pull the database down from staging and replace local database. + smash-cli pull-media Pull the media items from the staging site. + smash-cli setup-database Create a new database and initialise the site with no content. + smash-cli setup Run all the common setup tasks for a project. + smash-cli svg Generate an SVG sprite from a group of SVGs. [deprecated: Migrate to using @atomicsmash/compiler, which supports an icons folder in the src folder.] + smash-cli toggle-media-proxy Toggle the media proxy in the local NGINX config within Herd. + smash-cli completion generate completion script Options: -h, --help Show help [boolean] diff --git a/packages/compiler/src/config.ts b/packages/compiler/src/config.ts index 027d2c8c..e5bd02e3 100644 --- a/packages/compiler/src/config.ts +++ b/packages/compiler/src/config.ts @@ -1,4 +1,3 @@ -import type { SCSSAliases } from "@atomicsmash/smash-config"; import type { Configuration, PathData, RuleSetRule } from "webpack"; import { sep as pathSeparator, @@ -7,7 +6,6 @@ import { relative, join, } from "node:path"; -import { pathToFileURL } from "node:url"; import { getSmashConfig } from "@atomicsmash/smash-config"; import DependencyExtractionWebpackPlugin from "@wordpress/dependency-extraction-webpack-plugin"; import browserslistToEsbuild from "browserslist-to-esbuild"; @@ -62,12 +60,12 @@ export async function config(options: { const srcFolder = argv.in ? resolvePath(argv.in) - : smashConfig?.themePath + : smashConfig.themePath ? resolvePath(join(smashConfig.themePath, "src")) : null; const distFolder = argv.out ? resolvePath(argv.out) - : smashConfig?.themePath + : smashConfig.themePath ? resolvePath(join(smashConfig.themePath, smashConfig.assetsOutputFolder)) : null; if (!srcFolder || !distFolder) { @@ -309,7 +307,7 @@ export async function config(options: { loader: "sass-loader", options: { sourceMap: MODE === "development", - sassOptions: await getSassOptions(srcFolder), + sassOptions: smashConfig.scssAliases, }, }, ], @@ -466,34 +464,3 @@ export async function config(options: { }, } satisfies Configuration; } - -async function getSassOptions(srcFolder: string) { - const smashConfig = await getSmashConfig(); - if (smashConfig) { - return smashConfig.scssAliases; - } - - const defaultConfig: SCSSAliases = { - importers: [ - { - findFileUrl(url) { - if (!url.startsWith("sitecss:")) return null; - const pathname = url.substring(8); - return pathToFileURL( - `${resolvePath(srcFolder, "../css")}${pathname.startsWith("/") ? pathname : `/${pathname}`}`, - ); - }, - }, - { - findFileUrl(url) { - if (!url.startsWith("launchpad:")) return null; - const pathname = url.substring(10); - return pathToFileURL( - `${resolvePath(process.cwd(), "public/wp-content/themes/launchpad/src/styles")}${pathname.startsWith("/") ? pathname : `/${pathname}`}`, - ); - }, - }, - ], - }; - return defaultConfig; -} diff --git a/packages/compiler/src/tests/compiler.test.ts b/packages/compiler/src/tests/compiler.test.ts index 6d9614bb..427e0637 100644 --- a/packages/compiler/src/tests/compiler.test.ts +++ b/packages/compiler/src/tests/compiler.test.ts @@ -5,7 +5,7 @@ import { expect, test, describe, beforeAll, afterAll } from "vitest"; import { execute } from "../utils"; async function tearDown() { - await deleteDir(`${import.meta.dirname}/dist/`, { + await deleteDir(`${import.meta.dirname}/theme/dist/`, { recursive: true, force: true, }).catch(() => { @@ -19,10 +19,10 @@ describe("Compiler tests", () => { beforeAll(async () => { await execute( // Node env must be set to enable the correct browserslist config. - `cd ${import.meta.dirname} && NODE_ENV=production node ${resolve(import.meta.dirname, "../../dist/cli.js")} --in src --out dist`, + `cd ${import.meta.dirname} && NODE_ENV=production node ${resolve(import.meta.dirname, "../../dist/cli.js")}`, ); manifest = await readFile( - resolve(import.meta.dirname, "dist/assets-manifest.json"), + resolve(import.meta.dirname, "theme/dist/assets-manifest.json"), { encoding: "utf8", }, @@ -33,7 +33,10 @@ describe("Compiler tests", () => { test("Testing CSS output", async () => { const pure = await readFile( - resolve(import.meta.dirname, `dist/${manifest["styles/pure.css"] ?? ""}`), + resolve( + import.meta.dirname, + `theme/dist/${manifest["styles/pure.css"] ?? ""}`, + ), { encoding: "utf8", }, @@ -41,7 +44,7 @@ describe("Compiler tests", () => { const style = await readFile( resolve( import.meta.dirname, - `dist/${manifest["styles/style.scss"] ?? ""}`, + `theme/dist/${manifest["styles/style.scss"] ?? ""}`, ), { encoding: "utf8", @@ -50,7 +53,7 @@ describe("Compiler tests", () => { const subfolderCSS = await readFile( resolve( import.meta.dirname, - `dist/${manifest["styles/subfoldercompiled/allowed.css"] ?? ""}`, + `theme/dist/${manifest["styles/subfoldercompiled/allowed.css"] ?? ""}`, ), { encoding: "utf8", @@ -59,7 +62,7 @@ describe("Compiler tests", () => { const subfolderSCSS = await readFile( resolve( import.meta.dirname, - `dist/${manifest["styles/subfoldercompiled/style-subfoldercompiled.scss"] ?? ""}`, + `theme/dist/${manifest["styles/subfoldercompiled/style-subfoldercompiled.scss"] ?? ""}`, ), { encoding: "utf8", @@ -93,12 +96,12 @@ describe("Compiler tests", () => { test("Test scripts", async () => { const jsFileName = manifest["scripts/javascript.js"] ?? ""; - expect(existsSync(resolve(import.meta.dirname, `dist/${jsFileName}`))).toBe( - true, - ); + expect( + existsSync(resolve(import.meta.dirname, `theme/dist/${jsFileName}`)), + ).toBe(true); await expect( execute( - `node ${resolve(import.meta.dirname, `dist/${jsFileName}`)}`, + `node ${resolve(import.meta.dirname, `theme/dist/${jsFileName}`)}`, ).then((output) => output.stdout), ).resolves.toMatchInlineSnapshot(` "Hello this is a console log.${" "} @@ -106,12 +109,12 @@ describe("Compiler tests", () => { " `); const tsFileName = manifest["scripts/typescript.ts"] ?? ""; - expect(existsSync(resolve(import.meta.dirname, `dist/${tsFileName}`))).toBe( - true, - ); + expect( + existsSync(resolve(import.meta.dirname, `theme/dist/${tsFileName}`)), + ).toBe(true); await expect( execute( - `node ${resolve(import.meta.dirname, `dist/${tsFileName}`)}`, + `node ${resolve(import.meta.dirname, `theme/dist/${tsFileName}`)}`, ).then((output) => output.stdout), ).resolves.toMatchInlineSnapshot(` "Hello this is a console log.${" "} @@ -121,11 +124,13 @@ describe("Compiler tests", () => { const jsInSubfolderFileName = manifest["scripts/subfoldercompiled/javascript.js"] ?? ""; expect( - existsSync(resolve(import.meta.dirname, `dist/${jsInSubfolderFileName}`)), + existsSync( + resolve(import.meta.dirname, `theme/dist/${jsInSubfolderFileName}`), + ), ).toBe(true); await expect( execute( - `node ${resolve(import.meta.dirname, `dist/${jsInSubfolderFileName}`)}`, + `node ${resolve(import.meta.dirname, `theme/dist/${jsInSubfolderFileName}`)}`, ).then((output) => output.stdout), ).resolves.toMatchInlineSnapshot(` "Hello this is a console log.${" "} @@ -135,11 +140,13 @@ describe("Compiler tests", () => { const tsInSubfolderFileName = manifest["scripts/subfoldercompiled/typescript.ts"] ?? ""; expect( - existsSync(resolve(import.meta.dirname, `dist/${tsInSubfolderFileName}`)), + existsSync( + resolve(import.meta.dirname, `theme/dist/${tsInSubfolderFileName}`), + ), ).toBe(true); await expect( execute( - `node ${resolve(import.meta.dirname, `dist/${tsInSubfolderFileName}`)}`, + `node ${resolve(import.meta.dirname, `theme/dist/${tsInSubfolderFileName}`)}`, ).then((output) => output.stdout), ).resolves.toMatchInlineSnapshot(` "Hello this is a console log.${" "} @@ -150,19 +157,27 @@ describe("Compiler tests", () => { test("Test fonts", () => { expect( - existsSync(resolve(import.meta.dirname, "dist/fonts/Roboto-Regular.ttf")), + existsSync( + resolve(import.meta.dirname, "theme/dist/fonts/Roboto-Regular.ttf"), + ), ).toBe(true); expect( - existsSync(resolve(import.meta.dirname, "dist/fonts/Roboto-Medium.ttf")), + existsSync( + resolve(import.meta.dirname, "theme/dist/fonts/Roboto-Medium.ttf"), + ), ).toBe(true); }); test("Test images", () => { expect( - existsSync(resolve(import.meta.dirname, "dist/images/image-01.jpeg")), + existsSync( + resolve(import.meta.dirname, "theme/dist/images/image-01.jpeg"), + ), ).toBe(true); expect( - existsSync(resolve(import.meta.dirname, "dist/images/image-02.png")), + existsSync( + resolve(import.meta.dirname, "theme/dist/images/image-02.png"), + ), ).toBe(true); }); @@ -171,7 +186,7 @@ describe("Compiler tests", () => { existsSync( resolve( import.meta.dirname, - `dist/${manifest["icons/sprite.svg"] ?? ""}`, + `theme/dist/${manifest["icons/sprite.svg"] ?? ""}`, ), ), ).toBe(true); diff --git a/packages/compiler/src/tests/smash.config.ts b/packages/compiler/src/tests/smash.config.ts new file mode 100644 index 00000000..dfa44c44 --- /dev/null +++ b/packages/compiler/src/tests/smash.config.ts @@ -0,0 +1,13 @@ +import type { SmashConfig } from "../../../smash-config"; +export default { + projectName: "compiler-tests", + themePath: "theme", + staging: { + url: "compiler.test", + webRoot: "/test/", + ssh: { + username: "test", + host: "000.000.000.000", + }, + }, +} satisfies SmashConfig; diff --git a/packages/compiler/src/tests/src/fonts/Roboto-Medium.ttf b/packages/compiler/src/tests/theme/src/fonts/Roboto-Medium.ttf similarity index 100% rename from packages/compiler/src/tests/src/fonts/Roboto-Medium.ttf rename to packages/compiler/src/tests/theme/src/fonts/Roboto-Medium.ttf diff --git a/packages/compiler/src/tests/src/fonts/Roboto-Regular.ttf b/packages/compiler/src/tests/theme/src/fonts/Roboto-Regular.ttf similarity index 100% rename from packages/compiler/src/tests/src/fonts/Roboto-Regular.ttf rename to packages/compiler/src/tests/theme/src/fonts/Roboto-Regular.ttf diff --git a/packages/compiler/src/tests/src/fonts/Roboto-SemiBold.ttf b/packages/compiler/src/tests/theme/src/fonts/Roboto-SemiBold.ttf similarity index 100% rename from packages/compiler/src/tests/src/fonts/Roboto-SemiBold.ttf rename to packages/compiler/src/tests/theme/src/fonts/Roboto-SemiBold.ttf diff --git a/packages/compiler/src/tests/src/fonts/Roboto-Thin.ttf b/packages/compiler/src/tests/theme/src/fonts/Roboto-Thin.ttf similarity index 100% rename from packages/compiler/src/tests/src/fonts/Roboto-Thin.ttf rename to packages/compiler/src/tests/theme/src/fonts/Roboto-Thin.ttf diff --git a/packages/compiler/src/tests/src/icons/ArrowRight.svg b/packages/compiler/src/tests/theme/src/icons/ArrowRight.svg similarity index 100% rename from packages/compiler/src/tests/src/icons/ArrowRight.svg rename to packages/compiler/src/tests/theme/src/icons/ArrowRight.svg diff --git a/packages/compiler/src/tests/src/icons/CardMastercard.svg b/packages/compiler/src/tests/theme/src/icons/CardMastercard.svg similarity index 100% rename from packages/compiler/src/tests/src/icons/CardMastercard.svg rename to packages/compiler/src/tests/theme/src/icons/CardMastercard.svg diff --git a/packages/compiler/src/tests/src/icons/Thumbtack.svg b/packages/compiler/src/tests/theme/src/icons/Thumbtack.svg similarity index 100% rename from packages/compiler/src/tests/src/icons/Thumbtack.svg rename to packages/compiler/src/tests/theme/src/icons/Thumbtack.svg diff --git a/packages/compiler/src/tests/src/images/image-01.jpeg b/packages/compiler/src/tests/theme/src/images/image-01.jpeg similarity index 100% rename from packages/compiler/src/tests/src/images/image-01.jpeg rename to packages/compiler/src/tests/theme/src/images/image-01.jpeg diff --git a/packages/compiler/src/tests/src/images/image-02.png b/packages/compiler/src/tests/theme/src/images/image-02.png similarity index 100% rename from packages/compiler/src/tests/src/images/image-02.png rename to packages/compiler/src/tests/theme/src/images/image-02.png diff --git a/packages/compiler/src/tests/src/scripts/_modules/js-module.js b/packages/compiler/src/tests/theme/src/scripts/_modules/js-module.js similarity index 100% rename from packages/compiler/src/tests/src/scripts/_modules/js-module.js rename to packages/compiler/src/tests/theme/src/scripts/_modules/js-module.js diff --git a/packages/compiler/src/tests/src/scripts/_modules/ts-module.ts b/packages/compiler/src/tests/theme/src/scripts/_modules/ts-module.ts similarity index 100% rename from packages/compiler/src/tests/src/scripts/_modules/ts-module.ts rename to packages/compiler/src/tests/theme/src/scripts/_modules/ts-module.ts diff --git a/packages/compiler/src/tests/src/scripts/javascript.js b/packages/compiler/src/tests/theme/src/scripts/javascript.js similarity index 100% rename from packages/compiler/src/tests/src/scripts/javascript.js rename to packages/compiler/src/tests/theme/src/scripts/javascript.js diff --git a/packages/compiler/src/tests/src/scripts/subfoldercompiled/javascript.js b/packages/compiler/src/tests/theme/src/scripts/subfoldercompiled/javascript.js similarity index 100% rename from packages/compiler/src/tests/src/scripts/subfoldercompiled/javascript.js rename to packages/compiler/src/tests/theme/src/scripts/subfoldercompiled/javascript.js diff --git a/packages/compiler/src/tests/src/scripts/subfoldercompiled/typescript.ts b/packages/compiler/src/tests/theme/src/scripts/subfoldercompiled/typescript.ts similarity index 100% rename from packages/compiler/src/tests/src/scripts/subfoldercompiled/typescript.ts rename to packages/compiler/src/tests/theme/src/scripts/subfoldercompiled/typescript.ts diff --git a/packages/compiler/src/tests/src/scripts/typescript.ts b/packages/compiler/src/tests/theme/src/scripts/typescript.ts similarity index 100% rename from packages/compiler/src/tests/src/scripts/typescript.ts rename to packages/compiler/src/tests/theme/src/scripts/typescript.ts diff --git a/packages/compiler/src/tests/src/styles/_subfoldernotcompiled/_partial2.scss b/packages/compiler/src/tests/theme/src/styles/_subfoldernotcompiled/_partial2.scss similarity index 100% rename from packages/compiler/src/tests/src/styles/_subfoldernotcompiled/_partial2.scss rename to packages/compiler/src/tests/theme/src/styles/_subfoldernotcompiled/_partial2.scss diff --git a/packages/compiler/src/tests/src/styles/_subfoldernotcompiled/failure.css b/packages/compiler/src/tests/theme/src/styles/_subfoldernotcompiled/failure.css similarity index 100% rename from packages/compiler/src/tests/src/styles/_subfoldernotcompiled/failure.css rename to packages/compiler/src/tests/theme/src/styles/_subfoldernotcompiled/failure.css diff --git a/packages/compiler/src/tests/src/styles/_subfoldernotcompiled/style-subfoldernotcompiled.scss b/packages/compiler/src/tests/theme/src/styles/_subfoldernotcompiled/style-subfoldernotcompiled.scss similarity index 100% rename from packages/compiler/src/tests/src/styles/_subfoldernotcompiled/style-subfoldernotcompiled.scss rename to packages/compiler/src/tests/theme/src/styles/_subfoldernotcompiled/style-subfoldernotcompiled.scss diff --git a/packages/compiler/src/tests/src/styles/pure.css b/packages/compiler/src/tests/theme/src/styles/pure.css similarity index 100% rename from packages/compiler/src/tests/src/styles/pure.css rename to packages/compiler/src/tests/theme/src/styles/pure.css diff --git a/packages/compiler/src/tests/src/styles/style.scss b/packages/compiler/src/tests/theme/src/styles/style.scss similarity index 100% rename from packages/compiler/src/tests/src/styles/style.scss rename to packages/compiler/src/tests/theme/src/styles/style.scss diff --git a/packages/compiler/src/tests/src/styles/subfoldercompiled/_partial.scss b/packages/compiler/src/tests/theme/src/styles/subfoldercompiled/_partial.scss similarity index 100% rename from packages/compiler/src/tests/src/styles/subfoldercompiled/_partial.scss rename to packages/compiler/src/tests/theme/src/styles/subfoldercompiled/_partial.scss diff --git a/packages/compiler/src/tests/src/styles/subfoldercompiled/allowed.css b/packages/compiler/src/tests/theme/src/styles/subfoldercompiled/allowed.css similarity index 100% rename from packages/compiler/src/tests/src/styles/subfoldercompiled/allowed.css rename to packages/compiler/src/tests/theme/src/styles/subfoldercompiled/allowed.css diff --git a/packages/compiler/src/tests/src/styles/subfoldercompiled/style-subfoldercompiled.scss b/packages/compiler/src/tests/theme/src/styles/subfoldercompiled/style-subfoldercompiled.scss similarity index 100% rename from packages/compiler/src/tests/src/styles/subfoldercompiled/style-subfoldercompiled.scss rename to packages/compiler/src/tests/theme/src/styles/subfoldercompiled/style-subfoldercompiled.scss diff --git a/packages/smash-config/src/index.ts b/packages/smash-config/src/index.ts index c9696268..cf72cbf9 100644 --- a/packages/smash-config/src/index.ts +++ b/packages/smash-config/src/index.ts @@ -1,4 +1,3 @@ export * from "./types.js"; -export { getStagingUrl } from "./utils/getStagingUrl.js"; export { getSmashConfig } from "./utils/getSmashConfig.js"; diff --git a/packages/smash-config/src/tests/artifacts/no-version/smash.config.ts b/packages/smash-config/src/tests/artifacts/no-version/smash.config.ts new file mode 100644 index 00000000..d867d895 --- /dev/null +++ b/packages/smash-config/src/tests/artifacts/no-version/smash.config.ts @@ -0,0 +1,5 @@ +import type { SmashConfig } from "../../../types"; +export default { + projectName: "smash-config-tests", + themePath: "theme", +} satisfies SmashConfig; diff --git a/packages/smash-config/src/tests/artifacts/v1/smash.config.ts b/packages/smash-config/src/tests/artifacts/v1/smash.config.ts new file mode 100644 index 00000000..bf1489fa --- /dev/null +++ b/packages/smash-config/src/tests/artifacts/v1/smash.config.ts @@ -0,0 +1,6 @@ +import type { SmashConfig } from "../../../types"; +export default { + version: 1, + projectName: "smash-config-tests", + themePath: "theme", +} satisfies SmashConfig; diff --git a/packages/smash-config/src/tests/artifacts/v2/smash.config.ts b/packages/smash-config/src/tests/artifacts/v2/smash.config.ts new file mode 100644 index 00000000..aea068b2 --- /dev/null +++ b/packages/smash-config/src/tests/artifacts/v2/smash.config.ts @@ -0,0 +1,14 @@ +import type { SmashConfig } from "../../../types"; +export default { + version: 2, + projectName: "smash-config-tests", + themePath: "theme", + staging: { + url: "smash-config.test", + webRoot: "/test/", + ssh: { + username: "test", + host: "000.000.000.000", + }, + }, +} satisfies SmashConfig; diff --git a/packages/smash-config/src/tests/getSmashConfig.test.ts b/packages/smash-config/src/tests/getSmashConfig.test.ts new file mode 100644 index 00000000..106b5766 --- /dev/null +++ b/packages/smash-config/src/tests/getSmashConfig.test.ts @@ -0,0 +1,100 @@ +import { expect, test, describe, beforeAll, afterAll } from "vitest"; +import { getSmashConfig } from "../utils/getSmashConfig"; + +let originalCWDFunction: typeof process.cwd; + +describe.sequential("getSmashConfig()", () => { + beforeAll(() => { + originalCWDFunction = process.cwd.bind(this); + }); + afterAll(() => { + process.cwd = originalCWDFunction; + }); + test("No version", async () => { + process.cwd = () => `${import.meta.dirname}/artifacts/no-version`; + await expect(getSmashConfig()).resolves.toMatchInlineSnapshot(` + { + "assetsOutputFolder": "dist", + "composerInstallPaths": [], + "npmInstallPaths": [], + "projectName": "smash-config-tests", + "scssAliases": { + "importers": [ + { + "findFileUrl": [Function], + }, + { + "findFileUrl": [Function], + }, + ], + }, + "themeFolderName": "smash-config-tests", + "themePath": "theme", + "version": 1, + } + `); + }); + test("v1", async () => { + process.cwd = () => `${import.meta.dirname}/artifacts/v1`; + await expect(getSmashConfig()).resolves.toMatchInlineSnapshot(` + { + "assetsOutputFolder": "dist", + "composerInstallPaths": [], + "npmInstallPaths": [], + "projectName": "smash-config-tests", + "scssAliases": { + "importers": [ + { + "findFileUrl": [Function], + }, + { + "findFileUrl": [Function], + }, + ], + }, + "themeFolderName": "smash-config-tests", + "themePath": "theme", + "version": 1, + } + `); + }); + test("v2", async () => { + process.cwd = () => `${import.meta.dirname}/artifacts/v2`; + await expect(getSmashConfig()).resolves.toMatchInlineSnapshot(` + { + "assetsOutputFolder": "dist", + "composerInstallPaths": [], + "npmInstallPaths": [], + "projectName": "smash-config-tests", + "scssAliases": { + "importers": [ + { + "findFileUrl": [Function], + }, + { + "findFileUrl": [Function], + }, + ], + }, + "staging": { + "dbPrefix": "wp_", + "ssh": { + "host": "000.000.000.000", + "username": "test", + }, + "url": "smash-config.test", + "webRoot": "/test/", + }, + "themeFolderName": "smash-config-tests", + "themePath": "theme", + "version": 2, + } + `); + }); + test("v1 fails if v2 needed", async () => { + process.cwd = () => `${import.meta.dirname}/artifacts/v1`; + await expect(getSmashConfig(2)).rejects.toMatchInlineSnapshot( + `[Error: A smash config was found but it is not up to date. Please update to at least version 2.]`, + ); + }); +}); diff --git a/packages/smash-config/src/tests/normaliseStagingURL.test.ts b/packages/smash-config/src/tests/normaliseStagingURL.test.ts new file mode 100644 index 00000000..f2b75cb6 --- /dev/null +++ b/packages/smash-config/src/tests/normaliseStagingURL.test.ts @@ -0,0 +1,11 @@ +import { normaliseStagingURL } from "../utils/normaliseStagingURL"; +import { expect, test } from "vitest"; + +test("normaliseStagingURL()", () => { + expect(normaliseStagingURL("https://www.google.com/")).toBe("www.google.com"); + expect(normaliseStagingURL("https://www.google.com")).toBe("www.google.com"); + expect(normaliseStagingURL("//www.google.com/")).toBe("www.google.com"); + expect(normaliseStagingURL("//www.google.com")).toBe("www.google.com"); + expect(normaliseStagingURL("www.google.com/")).toBe("www.google.com"); + expect(normaliseStagingURL("www.google.com")).toBe("www.google.com"); +}); diff --git a/packages/smash-config/src/types.ts b/packages/smash-config/src/types.ts index 24cd00ad..ddda093a 100644 --- a/packages/smash-config/src/types.ts +++ b/packages/smash-config/src/types.ts @@ -5,7 +5,8 @@ export type SCSSAliases = { importers?: Options<"async">["importers"]; }; -export type SmashConfig = { +export type SmashConfigV1 = { + version?: 1 | undefined; projectName: string; themePath: string; themeFolderName?: string; @@ -13,6 +14,55 @@ export type SmashConfig = { npmInstallPaths?: string[]; composerInstallPaths?: string[]; scssAliases?: SCSSAliases; +}; + +export type SmashConfigV2 = { + version: 2; + projectName: string; + themePath: string; + themeFolderName?: string; + assetsOutputFolder?: string; + npmInstallPaths?: string[]; + composerInstallPaths?: string[]; + scssAliases?: SCSSAliases; + staging: { + url: string; + webRoot: string; + dbPrefix?: string; + ssh: { + username: string; + host: string; + port?: number; + }; + httpAuth?: { + username: string; + password: string; + }; + }; +}; + +export type SmashConfig = SmashConfigV1 | SmashConfigV2; + +export type SmashConfigV1Resolved = { + version: 1; + projectName: string; + themePath: string; + themeFolderName: string; + assetsOutputFolder: string; + npmInstallPaths: string[]; + composerInstallPaths: string[]; + scssAliases: SCSSAliases; +}; + +export type SmashConfigV2Resolved = { + version: 2; + projectName: string; + themePath: string; + themeFolderName: string; + assetsOutputFolder: string; + npmInstallPaths: string[]; + composerInstallPaths: string[]; + scssAliases: SCSSAliases; staging: { url: string; webRoot: string; @@ -20,9 +70,9 @@ export type SmashConfig = { ssh: { username: string; host: string; - port?: string; + port?: number; }; - httpAuth: { + httpAuth?: { username: string; password: string; }; diff --git a/packages/smash-config/src/utils/getSmashConfig.ts b/packages/smash-config/src/utils/getSmashConfig.ts index c31c211b..c2461672 100644 --- a/packages/smash-config/src/utils/getSmashConfig.ts +++ b/packages/smash-config/src/utils/getSmashConfig.ts @@ -1,5 +1,11 @@ -import type { SCSSAliases, SmashConfig } from "../types.js"; - +import type { + SCSSAliases, + SmashConfigV1, + SmashConfigV2, + SmashConfigV1Resolved, + SmashConfigV2Resolved, +} from "../types.js"; +import { normaliseStagingURL } from "./normaliseStagingURL.js"; import { normalize, resolve } from "node:path"; import { pathToFileURL } from "node:url"; import { cosmiconfig } from "cosmiconfig"; @@ -27,17 +33,21 @@ const getDefaultSCSSAliases = (themePath: string): SCSSAliases => ({ ], }); -export async function getSmashConfig(): Promise | null> { +export async function getSmashConfig( + minVersion?: MinVersion, +) { const explorer = cosmiconfig("smash"); const config = await explorer .load(resolve(process.cwd(), "smash.config.ts")) .then((result) => { if (!result || result.isEmpty) { - throw new Error("Return default config."); + throw new Error( + "Failed to get config. Please make sure smash.config.ts exists and exports a valid smash config configuration object.", + ); } const config = result.config as unknown; - if (isValidSmashConfig(config)) { - const fullConfig: Required = { + if (isValidSmashConfigV2(config)) { + const fullConfig: SmashConfigV2Resolved = { scssAliases: getDefaultSCSSAliases(config.themePath), themeFolderName: config.projectName, ...config, @@ -53,68 +63,65 @@ export async function getSmashConfig(): Promise | null> { assetsOutputFolder: config.assetsOutputFolder ? normalize(config.assetsOutputFolder) : "dist", + staging: { + ...config.staging, + url: normaliseStagingURL(config.staging.url), + dbPrefix: config.staging.dbPrefix ?? "wp_", + }, }; return fullConfig; } - throw new Error("Return default config."); - }) - .catch(async () => { - const { themeName, themePath } = await import("dotenv") - .then((dotenv) => { - dotenv.config(); - const themeName = - process.env.THEME_NAME ?? process.env.npm_package_config_theme_name; - const themePath = - process.env.THEME_PATH ?? process.env.npm_package_config_theme_path; - return { - themeName, - themePath, - }; - }) - .catch(() => { - return { - themeName: false as const, - themePath: false as const, - }; - }); - if (!themeName || !themePath) { - return null; + if (isValidSmashConfigV1(config)) { + const fullConfig: SmashConfigV1Resolved = { + version: 1, + scssAliases: getDefaultSCSSAliases(config.themePath), + themeFolderName: config.projectName, + ...config, + // Normalize and resolve paths to cwd. + npmInstallPaths: + config.npmInstallPaths?.map((path) => { + return normalize(resolve(process.cwd(), path)); + }) ?? [], + composerInstallPaths: + config.composerInstallPaths?.map((path) => { + return normalize(resolve(process.cwd(), path)); + }) ?? [], + assetsOutputFolder: config.assetsOutputFolder + ? normalize(config.assetsOutputFolder) + : "dist", + }; + return fullConfig; } - console.warn( - "Using env vars for theme name and path is deprecated and will be removed in a future version. Create a smash.config.ts file with the relevant properties in it instead.", + throw new Error( + "Failed to get valid config. Please check that your smash.config.ts exports a valid smash config configuration object.", ); - const defaultConfig: Required = { - projectName: themeName, - themePath, - themeFolderName: themeName, - assetsOutputFolder: "dist", - npmInstallPaths: [], - composerInstallPaths: [], - scssAliases: getDefaultSCSSAliases(themePath), - staging: { - url: "", - dbPrefix: "", - webRoot: "", - ssh: { - username: "", - host: "", - port: "", - }, - httpAuth: { - username: "", - password: "", - }, - }, - }; - return defaultConfig; }); - return config; + if (minVersion && config.version < minVersion) { + throw new Error( + `A smash config was found but it is not up to date. Please update to at least version ${minVersion.toString()}.`, + ); + } + return config as MinVersion extends 2 + ? SmashConfigV2Resolved + : SmashConfigV2Resolved | SmashConfigV1Resolved; } -function isValidSmashConfig(config: unknown): config is SmashConfig { +function isValidSmashConfigV1(config: unknown): config is SmashConfigV1 { + return ( + typeof config === "object" && + config !== null && + "projectName" in config && + typeof config.projectName === "string" && + "themePath" in config && + typeof config.themePath === "string" + ); +} +function isValidSmashConfigV2(config: unknown): config is SmashConfigV2 { return ( typeof config === "object" && config !== null && + "version" in config && + config.version === 2 && "projectName" in config && typeof config.projectName === "string" && "themePath" in config && diff --git a/packages/smash-config/src/utils/getStagingUrl.ts b/packages/smash-config/src/utils/getStagingUrl.ts deleted file mode 100644 index c983a0ba..00000000 --- a/packages/smash-config/src/utils/getStagingUrl.ts +++ /dev/null @@ -1,8 +0,0 @@ -import type { SmashConfig } from "../index.js"; - -export function getStagingUrl(config: SmashConfig): string { - const { - staging: { url }, - } = config; - return url.replace(/^https?:\/\//, "").replace(/\/$/, ""); -} diff --git a/packages/smash-config/src/utils/normaliseStagingURL.ts b/packages/smash-config/src/utils/normaliseStagingURL.ts new file mode 100644 index 00000000..cb7643ea --- /dev/null +++ b/packages/smash-config/src/utils/normaliseStagingURL.ts @@ -0,0 +1,6 @@ +export function normaliseStagingURL(stagingURL: string): string { + return stagingURL + .replace(/^https?:\/\//, "") + .replace(/^\/\//, "") + .replace(/\/$/, ""); +} diff --git a/packages/smash-config/vitest.config.ts b/packages/smash-config/vitest.config.ts new file mode 100644 index 00000000..13987503 --- /dev/null +++ b/packages/smash-config/vitest.config.ts @@ -0,0 +1,7 @@ +import { defineProject } from "vitest/config"; + +export default defineProject({ + test: { + include: ["src/tests/**/*.test.{js,mjs,cjs,ts,jsx,tsx}"], + }, +}); From 4cb7d26118c9122501d5137d1a9a45b7a329e008 Mon Sep 17 00:00:00 2001 From: Mikey Binns <38146638+mikeybinns@users.noreply.github.com> Date: Wed, 10 Jun 2026 15:52:37 +0100 Subject: [PATCH 32/62] update pull media command --- packages/cli/src/commands/pull-media.ts | 142 ++++++++---------- packages/smash-config/src/types.ts | 10 ++ .../smash-config/src/utils/getSmashConfig.ts | 8 +- 3 files changed, 79 insertions(+), 81 deletions(-) diff --git a/packages/cli/src/commands/pull-media.ts b/packages/cli/src/commands/pull-media.ts index 5634472d..ec680a9c 100644 --- a/packages/cli/src/commands/pull-media.ts +++ b/packages/cli/src/commands/pull-media.ts @@ -4,25 +4,24 @@ import { resolve } from "node:path"; import { performance } from "node:perf_hooks"; import { promisify } from "node:util"; import { startRunningMessage } from "../utils.js"; +import type { SmashConfigV2Resolved } from "@atomicsmash/smash-config"; +import { getSmashConfig } from "@atomicsmash/smash-config"; const execute = promisify(exec); async function downloadFiles( remotePath: string, localPath: string, - ssh: { - port: string; - username: string; - host: string; - }, + ssh: SmashConfigV2Resolved["staging"]["ssh"], ) { + const port = ssh.port ? `-P ${ssh.port.toString()}` : ``; try { // Create local directory if it doesn't exist await mkdir(localPath, { recursive: true }); // Download files using scp await execute( - `scp -r -p -O -o "StrictHostKeyChecking no" -P ${ssh.port} "${ssh.username}@${ssh.host}:${remotePath}" "${localPath}"`, + `scp -r -p -O -o "StrictHostKeyChecking no" ${port} "${ssh.username}@${ssh.host}:${remotePath}" "${localPath}"`, ); } catch (error) { console.log(`Failed to download ${remotePath}`); @@ -36,82 +35,65 @@ async function downloadFiles( export const command = "pull-media"; export const describe = "Pull the media items from the staging site."; export async function handler() { - const stagingSSHUsername = process.env.STAGING_SSH_USERNAME; - const stagingSSHHost = process.env.STAGING_SSH_HOST; - const stagingSSHPort = process.env.STAGING_SSH_PORT; - const stagingUrl = process.env.STAGING_URL?.endsWith("/") - ? process.env.STAGING_URL.slice(0, -1) - : process.env.STAGING_URL; - const mediaMonths = parseInt(process.env.MEDIA_DOWNLOAD_MONTHS ?? "-1"); - const mediaPath = process.env.MEDIA_DOWNLOAD_PATH; - const mediaLocalPath = process.env.MEDIA_DOWNLOAD_LOCAL_PATH; - if (!stagingSSHUsername) { - throw new Error("STAGING_SSH_USERNAME is missing from .env file."); - } else if (!stagingSSHHost) { - throw new Error("STAGING_SSH_HOST is missing from .env file."); - } else if (!stagingSSHPort) { - throw new Error("STAGING_SSH_PORT is missing from .env file."); - } else if (!stagingUrl) { - throw new Error("STAGING_URL is missing from .env file."); - } else if (!mediaPath) { - throw new Error("MEDIA_DOWNLOAD_PATH is missing from .env file."); - } else if (!mediaLocalPath) { - throw new Error("MEDIA_DOWNLOAD_LOCAL_PATH is missing from .env file."); - } else { - const ssh = { - port: stagingSSHPort, - host: stagingSSHHost, - username: stagingSSHUsername, - }; - const stopRunningMessage = startRunningMessage( - "Pulling media from staging", - ); - performance.mark("Start"); - await (async () => { - if (mediaMonths === -1) { - console.log("Downloading entire uploads directory..."); - const localPath = resolve(mediaLocalPath, ".."); + const { + uploadsPath: uploadsPath, + staging: { + uploadsPath: stagingUploadsPath, + webRoot: stagingWebRoot, + ssh: stagingSSHDetails, + }, + pullMedia: { monthsToPull }, + } = await getSmashConfig(2); + const mediaMonths = monthsToPull; + const mediaServerPath = `${stagingWebRoot}/${stagingUploadsPath}`; + const mediaLocalPath = uploadsPath; + + const stopRunningMessage = startRunningMessage("Pulling media from staging"); + performance.mark("Start"); + await (async () => { + if (mediaMonths === -1) { + console.log("Downloading entire uploads directory..."); + const localPath = resolve(mediaLocalPath, ".."); - console.log( - `Downloading entire uploads directory: ${mediaPath} -> ${localPath}`, - ); - await downloadFiles(mediaPath, localPath, ssh); - } else { - console.log( - `Downloading media for the last ${mediaMonths.toString()} months...`, - ); - // Download media for each month - for (let i = 0; i < mediaMonths; i++) { - const date = new Date(); - date.setMonth(date.getMonth() - i); - const year = date.getFullYear(); - const month = String(date.getMonth() + 1).padStart(2, "0"); - const remotePath = `${mediaPath}/${year.toString()}/${month}`; - const localPath = `${mediaLocalPath}/${year.toString()}`; + console.log( + `Downloading entire uploads directory: ${mediaServerPath} -> ${localPath}`, + ); + await downloadFiles(mediaServerPath, localPath, stagingSSHDetails); + } else { + console.log( + `Downloading media for the last ${mediaMonths.toString()} months...`, + ); + // Download media for each month + for (let i = 0; i < mediaMonths; i++) { + const date = new Date(); + date.setMonth(date.getMonth() - i); + const year = date.getFullYear(); + const month = String(date.getMonth() + 1).padStart(2, "0"); + const remotePath = `${mediaServerPath}/${year.toString()}/${month}`; + const localPath = `${mediaLocalPath}/${year.toString()}`; - console.log(`Attempting to download: ${remotePath} -> ${localPath}`); - try { - await downloadFiles(remotePath, localPath, ssh); - } catch { - console.log( - `Skipping uploads/${year.toString()}/${month} - directory does not exist on remote server`, - ); - return; // Skip to next iteration - } + console.log(`Attempting to download: ${remotePath} -> ${localPath}`); + try { + await downloadFiles(remotePath, localPath, stagingSSHDetails); + } catch { + console.log( + `Skipping uploads/${year.toString()}/${month} - directory does not exist on remote server`, + ); + return; // Skip to next iteration } - console.log("Finished attempting to download all requested months"); } - })() - .then(async () => { - await stopRunningMessage(); - console.log("Media download complete!"); - }) - .catch(async () => { - await stopRunningMessage(); - console.log( - "There was an error downloading the media, see the message above.", - ); - process.exitCode = 1; - }); - } + console.log("Finished attempting to download all requested months"); + } + })() + .then(async () => { + await stopRunningMessage(); + console.log("Media download complete!"); + }) + .catch(async () => { + await stopRunningMessage(); + console.log( + "There was an error downloading the media, see the message above.", + ); + process.exitCode = 1; + }); } diff --git a/packages/smash-config/src/types.ts b/packages/smash-config/src/types.ts index ddda093a..c03cb90a 100644 --- a/packages/smash-config/src/types.ts +++ b/packages/smash-config/src/types.ts @@ -25,10 +25,15 @@ export type SmashConfigV2 = { npmInstallPaths?: string[]; composerInstallPaths?: string[]; scssAliases?: SCSSAliases; + uploadsPath?: string; + pullMedia: { + monthsToPull?: number; + }; staging: { url: string; webRoot: string; dbPrefix?: string; + uploadsPath?: string; ssh: { username: string; host: string; @@ -63,10 +68,15 @@ export type SmashConfigV2Resolved = { npmInstallPaths: string[]; composerInstallPaths: string[]; scssAliases: SCSSAliases; + uploadsPath: string; + pullMedia: { + monthsToPull: number; + }; staging: { url: string; webRoot: string; dbPrefix: string; + uploadsPath: string; ssh: { username: string; host: string; diff --git a/packages/smash-config/src/utils/getSmashConfig.ts b/packages/smash-config/src/utils/getSmashConfig.ts index c2461672..4d3dffd7 100644 --- a/packages/smash-config/src/utils/getSmashConfig.ts +++ b/packages/smash-config/src/utils/getSmashConfig.ts @@ -50,6 +50,7 @@ export async function getSmashConfig( const fullConfig: SmashConfigV2Resolved = { scssAliases: getDefaultSCSSAliases(config.themePath), themeFolderName: config.projectName, + uploadsPath: `public/wp-content/uploads`, ...config, // Normalize and resolve paths to cwd. npmInstallPaths: @@ -64,9 +65,14 @@ export async function getSmashConfig( ? normalize(config.assetsOutputFolder) : "dist", staging: { + uploadsPath: `public/wp-content/uploads`, + dbPrefix: "wp_", ...config.staging, url: normaliseStagingURL(config.staging.url), - dbPrefix: config.staging.dbPrefix ?? "wp_", + }, + pullMedia: { + monthsToPull: -1, + ...config.pullMedia, }, }; return fullConfig; From 27f347d34345055fbc5f570365656dcc75c3034b Mon Sep 17 00:00:00 2001 From: Mikey Binns <38146638+mikeybinns@users.noreply.github.com> Date: Wed, 10 Jun 2026 15:55:10 +0100 Subject: [PATCH 33/62] Enter pre-release --- .changeset/pre.json | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 .changeset/pre.json diff --git a/.changeset/pre.json b/.changeset/pre.json new file mode 100644 index 00000000..cded50a6 --- /dev/null +++ b/.changeset/pre.json @@ -0,0 +1,17 @@ +{ + "mode": "pre", + "tag": "beta", + "initialVersions": { + "@atomicsmash/blocks-helpers": "7.2.2", + "@atomicsmash/browserslist-config": "18.0.0", + "@atomicsmash/cli": "11.0.0", + "@atomicsmash/coding-standards": "18.0.0", + "@atomicsmash/compiler": "4.0.0", + "@atomicsmash/date-php": "2.2.0", + "@atomicsmash/init-testing": "2.1.3", + "@atomicsmash/smash-config": "1.0.2", + "@atomicsmash/test-utils": "6.0.0", + "@atomicsmash/wordpress-tests-helper": "1.2.0" + }, + "changesets": [] +} From 61e93cfbe182a5cb590f49bdecb38ee46e4e6b28 Mon Sep 17 00:00:00 2001 From: Mikey Binns <38146638+mikeybinns@users.noreply.github.com> Date: Wed, 10 Jun 2026 15:58:25 +0100 Subject: [PATCH 34/62] fix smash config test --- packages/smash-config/src/tests/getSmashConfig.test.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/smash-config/src/tests/getSmashConfig.test.ts b/packages/smash-config/src/tests/getSmashConfig.test.ts index 106b5766..3c42f0f1 100644 --- a/packages/smash-config/src/tests/getSmashConfig.test.ts +++ b/packages/smash-config/src/tests/getSmashConfig.test.ts @@ -66,6 +66,9 @@ describe.sequential("getSmashConfig()", () => { "composerInstallPaths": [], "npmInstallPaths": [], "projectName": "smash-config-tests", + "pullMedia": { + "monthsToPull": -1, + }, "scssAliases": { "importers": [ { @@ -82,11 +85,13 @@ describe.sequential("getSmashConfig()", () => { "host": "000.000.000.000", "username": "test", }, + "uploadsPath": "public/wp-content/uploads", "url": "smash-config.test", "webRoot": "/test/", }, "themeFolderName": "smash-config-tests", "themePath": "theme", + "uploadsPath": "public/wp-content/uploads", "version": 2, } `); From ed327d13682d1373b031979317686214da94e897 Mon Sep 17 00:00:00 2001 From: Mikey Binns <38146638+mikeybinns@users.noreply.github.com> Date: Wed, 10 Jun 2026 16:12:35 +0100 Subject: [PATCH 35/62] default staging uploads path to standard uploads path if set --- packages/smash-config/src/utils/getSmashConfig.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/smash-config/src/utils/getSmashConfig.ts b/packages/smash-config/src/utils/getSmashConfig.ts index 4d3dffd7..ade11bed 100644 --- a/packages/smash-config/src/utils/getSmashConfig.ts +++ b/packages/smash-config/src/utils/getSmashConfig.ts @@ -65,7 +65,7 @@ export async function getSmashConfig( ? normalize(config.assetsOutputFolder) : "dist", staging: { - uploadsPath: `public/wp-content/uploads`, + uploadsPath: config.uploadsPath ?? `public/wp-content/uploads`, dbPrefix: "wp_", ...config.staging, url: normaliseStagingURL(config.staging.url), From 42d3af4c6c08b79d729d20bb088fc667d8ccb692 Mon Sep 17 00:00:00 2001 From: Mikey Binns <38146638+mikeybinns@users.noreply.github.com> Date: Wed, 10 Jun 2026 16:18:25 +0100 Subject: [PATCH 36/62] Add whitespace to improve commit diffs, will sort after PR is approved and merged --- packages/cli/src/commands/pull-database.ts | 250 +++++------ packages/cli/src/commands/pull-media.ts | 112 ++--- packages/cli/src/commands/setup-database.ts | 194 ++++----- packages/cli/src/commands/setup.ts | 432 ++++++++++---------- 4 files changed, 494 insertions(+), 494 deletions(-) diff --git a/packages/cli/src/commands/pull-database.ts b/packages/cli/src/commands/pull-database.ts index 94ed7502..fea49501 100644 --- a/packages/cli/src/commands/pull-database.ts +++ b/packages/cli/src/commands/pull-database.ts @@ -13,140 +13,140 @@ export async function handler() { const execute = promisify(exec); const smashConfig = await getSmashConfig(2); - const { - projectName, - staging: { - url: stagingURL, - dbPrefix: stagingDBPrefix, - webRoot: stagingWebRoot, - ssh: { - username: stagingSSHUsername, - host: stagingSSHHost, - port: stagingSSHPort, + const { + projectName, + staging: { + url: stagingURL, + dbPrefix: stagingDBPrefix, + webRoot: stagingWebRoot, + ssh: { + username: stagingSSHUsername, + host: stagingSSHHost, + port: stagingSSHPort, + }, }, - }, - } = smashConfig; + } = smashConfig; - const stopRunningMessage = startRunningMessage( - "Pulling database from staging", - ); + const stopRunningMessage = startRunningMessage( + "Pulling database from staging", + ); - performance.mark("Start"); - await (async () => { - const tmpFile = "/tmp/staging-database.sql"; - const dbPrefixFile = "/tmp/db-prefix.txt"; - const tablesToExclude = [ - // WordFence - "wfauditevents", - "wfblockediplog", - "wfblocks7", - "wfconfig", - "wfcrawlers", - "wffilemods", - "wfhits", - "wfhoover", - "wfissues", - "wfknownfilelist", - "wflivetraffichuman", - "wflocs", - "wflogins", - "wfls_2fa_secrets", - "wfls_role_counts", - "wfls_settings", - "wfnotifications", - "wfpendingissues", - "wfreversecache", - "wfsecurityevents", - "wfsnipcache", - "wfstatus", - "wftrafficrates", - "wfwaffailures", - // WP All Import/Export - "pmxi_files", - "pmxi_geocoding", - "pmxi_hash", - "pmxi_history", - "pmxi_images", - "pmxi_imports", - "pmxi_posts", - "pmxi_templates", - ].map((tableName) => stagingDBPrefix + tableName); + performance.mark("Start"); + await (async () => { + const tmpFile = "/tmp/staging-database.sql"; + const dbPrefixFile = "/tmp/db-prefix.txt"; + const tablesToExclude = [ + // WordFence + "wfauditevents", + "wfblockediplog", + "wfblocks7", + "wfconfig", + "wfcrawlers", + "wffilemods", + "wfhits", + "wfhoover", + "wfissues", + "wfknownfilelist", + "wflivetraffichuman", + "wflocs", + "wflogins", + "wfls_2fa_secrets", + "wfls_role_counts", + "wfls_settings", + "wfnotifications", + "wfpendingissues", + "wfreversecache", + "wfsecurityevents", + "wfsnipcache", + "wfstatus", + "wftrafficrates", + "wfwaffailures", + // WP All Import/Export + "pmxi_files", + "pmxi_geocoding", + "pmxi_hash", + "pmxi_history", + "pmxi_images", + "pmxi_imports", + "pmxi_posts", + "pmxi_templates", + ].map((tableName) => stagingDBPrefix + tableName); - const port = stagingSSHPort ? `-p ${stagingSSHPort.toString()}` : ``; - await execute( - `ssh -o "StrictHostKeyChecking no" ${stagingSSHUsername}@${stagingSSHHost} ${port} "${stagingWebRoot !== "" ? `cd ${stagingWebRoot} && ` : ""} wp db export - --add-drop-table --exclude_tables=${tablesToExclude.join(",")}" > ${tmpFile}`, - ) - .then(async () => { - await stopRunningMessage(); - console.log("Database downloaded."); - await execute(`wp db check`).catch(async () => { - await execute(`wp db create`); - console.log("Local database created."); - }); - const stopRunningMessage2 = startRunningMessage("Importing database"); - await execute(`wp db query < ${tmpFile}`) - .then(async () => { - await stopRunningMessage2(); - console.log("Database imported."); - }) - .catch(async (error: unknown) => { - await stopRunningMessage2(); - throw error; + const port = stagingSSHPort ? `-p ${stagingSSHPort.toString()}` : ``; + await execute( + `ssh -o "StrictHostKeyChecking no" ${stagingSSHUsername}@${stagingSSHHost} ${port} "${stagingWebRoot !== "" ? `cd ${stagingWebRoot} && ` : ""} wp db export - --add-drop-table --exclude_tables=${tablesToExclude.join(",")}" > ${tmpFile}`, + ) + .then(async () => { + await stopRunningMessage(); + console.log("Database downloaded."); + await execute(`wp db check`).catch(async () => { + await execute(`wp db create`); + console.log("Local database created."); }); - }) - .then(async () => { - const stopRunningMessage3 = startRunningMessage( - "Running search and replace", - ); + const stopRunningMessage2 = startRunningMessage("Importing database"); + await execute(`wp db query < ${tmpFile}`) + .then(async () => { + await stopRunningMessage2(); + console.log("Database imported."); + }) + .catch(async (error: unknown) => { + await stopRunningMessage2(); + throw error; + }); + }) + .then(async () => { + const stopRunningMessage3 = startRunningMessage( + "Running search and replace", + ); - await execute( - `wp search-replace --url=${projectName}.test //${stagingURL} '//${projectName}.test'`, - ) - .then(async () => { - await stopRunningMessage3(); - console.log("Search and replace completed."); - }) - .catch(async (error: unknown) => { - await stopRunningMessage3(); - throw error; + await execute( + `wp search-replace --url=${projectName}.test //${stagingURL} '//${projectName}.test'`, + ) + .then(async () => { + await stopRunningMessage3(); + console.log("Search and replace completed."); + }) + .catch(async (error: unknown) => { + await stopRunningMessage3(); + throw error; + }); + }) + .then(async () => { + const stopRunningMessage4 = startRunningMessage("Cleaning up"); + await Promise.allSettled([ + deleteFile(tmpFile), + deleteFile(dbPrefixFile), + ]).then(async () => { + await stopRunningMessage4(); }); - }) - .then(async () => { - const stopRunningMessage4 = startRunningMessage("Cleaning up"); - await Promise.allSettled([ - deleteFile(tmpFile), - deleteFile(dbPrefixFile), - ]).then(async () => { - await stopRunningMessage4(); - }); - console.log( - `Database import complete! ${convertMeasureToPrettyString( - performance.measure("everything", "Start"), - )}`, - ); - console.log( - "If you want to download recent media you can use `npm run pull:media`, you can also change the number of months to download in your `.env` file.", - ); - }) - .catch(async (error: unknown) => { - await stopRunningMessage(); - console.error("Error during database pull:", error); + console.log( + `Database import complete! ${convertMeasureToPrettyString( + performance.measure("everything", "Start"), + )}`, + ); + console.log( + "If you want to download recent media you can use `npm run pull:media`, you can also change the number of months to download in your `.env` file.", + ); + }) + .catch(async (error: unknown) => { + await stopRunningMessage(); + console.error("Error during database pull:", error); - const cleanupResults = await Promise.allSettled([ - deleteFile(tmpFile), - deleteFile(dbPrefixFile), - ]); + const cleanupResults = await Promise.allSettled([ + deleteFile(tmpFile), + deleteFile(dbPrefixFile), + ]); - const failedCleanups = cleanupResults.filter( - (result) => result.status === "rejected", - ); - if (failedCleanups.length > 0) { - console.warn( - `Warning: Failed to delete ${failedCleanups.length.toString()} temporary file(s). You may need to clean them up manually.`, + const failedCleanups = cleanupResults.filter( + (result) => result.status === "rejected", ); - } - process.exitCode = 1; - }); - })(); + if (failedCleanups.length > 0) { + console.warn( + `Warning: Failed to delete ${failedCleanups.length.toString()} temporary file(s). You may need to clean them up manually.`, + ); + } + process.exitCode = 1; + }); + })(); } diff --git a/packages/cli/src/commands/pull-media.ts b/packages/cli/src/commands/pull-media.ts index ec680a9c..ebf04050 100644 --- a/packages/cli/src/commands/pull-media.ts +++ b/packages/cli/src/commands/pull-media.ts @@ -35,65 +35,65 @@ async function downloadFiles( export const command = "pull-media"; export const describe = "Pull the media items from the staging site."; export async function handler() { - const { - uploadsPath: uploadsPath, - staging: { - uploadsPath: stagingUploadsPath, - webRoot: stagingWebRoot, - ssh: stagingSSHDetails, - }, - pullMedia: { monthsToPull }, - } = await getSmashConfig(2); - const mediaMonths = monthsToPull; - const mediaServerPath = `${stagingWebRoot}/${stagingUploadsPath}`; - const mediaLocalPath = uploadsPath; + const { + uploadsPath: uploadsPath, + staging: { + uploadsPath: stagingUploadsPath, + webRoot: stagingWebRoot, + ssh: stagingSSHDetails, + }, + pullMedia: { monthsToPull }, + } = await getSmashConfig(2); + const mediaMonths = monthsToPull; + const mediaServerPath = `${stagingWebRoot}/${stagingUploadsPath}`; + const mediaLocalPath = uploadsPath; - const stopRunningMessage = startRunningMessage("Pulling media from staging"); - performance.mark("Start"); - await (async () => { - if (mediaMonths === -1) { - console.log("Downloading entire uploads directory..."); - const localPath = resolve(mediaLocalPath, ".."); + const stopRunningMessage = startRunningMessage("Pulling media from staging"); + performance.mark("Start"); + await (async () => { + if (mediaMonths === -1) { + console.log("Downloading entire uploads directory..."); + const localPath = resolve(mediaLocalPath, ".."); - console.log( - `Downloading entire uploads directory: ${mediaServerPath} -> ${localPath}`, - ); - await downloadFiles(mediaServerPath, localPath, stagingSSHDetails); - } else { - console.log( - `Downloading media for the last ${mediaMonths.toString()} months...`, - ); - // Download media for each month - for (let i = 0; i < mediaMonths; i++) { - const date = new Date(); - date.setMonth(date.getMonth() - i); - const year = date.getFullYear(); - const month = String(date.getMonth() + 1).padStart(2, "0"); - const remotePath = `${mediaServerPath}/${year.toString()}/${month}`; - const localPath = `${mediaLocalPath}/${year.toString()}`; + console.log( + `Downloading entire uploads directory: ${mediaServerPath} -> ${localPath}`, + ); + await downloadFiles(mediaServerPath, localPath, stagingSSHDetails); + } else { + console.log( + `Downloading media for the last ${mediaMonths.toString()} months...`, + ); + // Download media for each month + for (let i = 0; i < mediaMonths; i++) { + const date = new Date(); + date.setMonth(date.getMonth() - i); + const year = date.getFullYear(); + const month = String(date.getMonth() + 1).padStart(2, "0"); + const remotePath = `${mediaServerPath}/${year.toString()}/${month}`; + const localPath = `${mediaLocalPath}/${year.toString()}`; - console.log(`Attempting to download: ${remotePath} -> ${localPath}`); - try { - await downloadFiles(remotePath, localPath, stagingSSHDetails); - } catch { - console.log( - `Skipping uploads/${year.toString()}/${month} - directory does not exist on remote server`, - ); - return; // Skip to next iteration + console.log(`Attempting to download: ${remotePath} -> ${localPath}`); + try { + await downloadFiles(remotePath, localPath, stagingSSHDetails); + } catch { + console.log( + `Skipping uploads/${year.toString()}/${month} - directory does not exist on remote server`, + ); + return; // Skip to next iteration + } } + console.log("Finished attempting to download all requested months"); } - console.log("Finished attempting to download all requested months"); - } - })() - .then(async () => { - await stopRunningMessage(); - console.log("Media download complete!"); - }) - .catch(async () => { - await stopRunningMessage(); - console.log( - "There was an error downloading the media, see the message above.", - ); - process.exitCode = 1; - }); + })() + .then(async () => { + await stopRunningMessage(); + console.log("Media download complete!"); + }) + .catch(async () => { + await stopRunningMessage(); + console.log( + "There was an error downloading the media, see the message above.", + ); + process.exitCode = 1; + }); } diff --git a/packages/cli/src/commands/setup-database.ts b/packages/cli/src/commands/setup-database.ts index 2b62e4c1..ff6282b0 100644 --- a/packages/cli/src/commands/setup-database.ts +++ b/packages/cli/src/commands/setup-database.ts @@ -100,108 +100,108 @@ export async function handler() { } : null; - const { projectName, themeFolderName } = smashConfig; - const stopRunningMessage = startRunningMessage("Initialising database"); - performance.mark("Start"); - await execute("wp db create") - .then(() => { - return execute( - `wp core install --url=http://${process.env.CI ? "127.0.0.1" : `${projectName}.test`}/ --title=Temp --admin_user=Bot --admin_email=fake@fake.com --admin_password=password`, - ); - }) - .then(() => { - performance.mark("wordpress-tables"); - console.log( - `Wordpress database tables installed. (${convertMeasureToPrettyString( - performance.measure("wordpress-tables", "Start"), - )})`, - ); - if (newUserToAdd) { + const { projectName, themeFolderName } = smashConfig; + const stopRunningMessage = startRunningMessage("Initialising database"); + performance.mark("Start"); + await execute("wp db create") + .then(() => { return execute( - `wp user create ${newUserToAdd.user} ${newUserToAdd.email} --user_pass=${newUserToAdd.password} --role=administrator`, + `wp core install --url=http://${process.env.CI ? "127.0.0.1" : `${projectName}.test`}/ --title=Temp --admin_user=Bot --admin_email=fake@fake.com --admin_password=password`, ); - } - }) - .then(async () => { - if (newUserToAdd) { - performance.mark("add-custom-user"); + }) + .then(() => { + performance.mark("wordpress-tables"); console.log( - `Custom user ${newUserToAdd.user} added. (${convertMeasureToPrettyString( - performance.measure("add-custom-user", "wordpress-tables"), + `Wordpress database tables installed. (${convertMeasureToPrettyString( + performance.measure("wordpress-tables", "Start"), )})`, ); - } + if (newUserToAdd) { + return execute( + `wp user create ${newUserToAdd.user} ${newUserToAdd.email} --user_pass=${newUserToAdd.password} --role=administrator`, + ); + } + }) + .then(async () => { + if (newUserToAdd) { + performance.mark("add-custom-user"); + console.log( + `Custom user ${newUserToAdd.user} added. (${convertMeasureToPrettyString( + performance.measure("add-custom-user", "wordpress-tables"), + )})`, + ); + } - const excludedPlugins = [ - "stream", - "shortpixel-image-optimiser", - "wordfence", - "wp-mail-smtp", - "modular-connector", - ]; - const { stdout: pluginList } = await execute( - "wp plugin list --format=json", - ); - const allPlugins: { name: string; status: string }[] = JSON.parse( - pluginList, - ) as { name: string; status: string }[]; - - // Filter out excluded plugins and already active plugins - const pluginsToActivate = allPlugins - .filter( - (plugin) => - !excludedPlugins.includes(plugin.name) && - plugin.status !== "active", - ) - .map((plugin) => plugin.name); - - await activatePluginsWithRetry( - execute, - pluginsToActivate, - excludedPlugins, - ); - }) - .then(() => { - performance.mark("plugins"); - console.log( - `Plugins activated. (${convertMeasureToPrettyString( - performance.measure( - "plugins", - newUserToAdd ? "add-custom-user" : "wordpress-tables", - ), - )})`, - ); - return execute(`wp theme activate ${themeFolderName}`); - }) - .then(async () => { - performance.mark("theme"); - console.log( - `Theme activated. (${convertMeasureToPrettyString( - performance.measure("theme", "plugins"), - )})`, - ); - await stopRunningMessage(); - console.log( - `Database set up${newUserToAdd ? ` and ${newUserToAdd.user} user added` : !process.env.CI ? ". To set up a user, run the `wp user create` command." : ""}. (${convertMeasureToPrettyString( - performance.measure("everything", "Start"), - )})`, - ); - }) - .catch(async (error: unknown) => { - await stopRunningMessage(); - if ( - typeof error === "object" && - error && - "stderr" in error && - typeof error.stderr === "string" && - error.stderr.startsWith("ERROR 1007") - ) { - console.error( - "Database already exists with the name in the wp-config. Please delete that database first with `wp db drop --yes`", + const excludedPlugins = [ + "stream", + "shortpixel-image-optimiser", + "wordfence", + "wp-mail-smtp", + "modular-connector", + ]; + const { stdout: pluginList } = await execute( + "wp plugin list --format=json", ); - } else { - console.error(error); - process.exitCode = 1; - } - }); + const allPlugins: { name: string; status: string }[] = JSON.parse( + pluginList, + ) as { name: string; status: string }[]; + + // Filter out excluded plugins and already active plugins + const pluginsToActivate = allPlugins + .filter( + (plugin) => + !excludedPlugins.includes(plugin.name) && + plugin.status !== "active", + ) + .map((plugin) => plugin.name); + + await activatePluginsWithRetry( + execute, + pluginsToActivate, + excludedPlugins, + ); + }) + .then(() => { + performance.mark("plugins"); + console.log( + `Plugins activated. (${convertMeasureToPrettyString( + performance.measure( + "plugins", + newUserToAdd ? "add-custom-user" : "wordpress-tables", + ), + )})`, + ); + return execute(`wp theme activate ${themeFolderName}`); + }) + .then(async () => { + performance.mark("theme"); + console.log( + `Theme activated. (${convertMeasureToPrettyString( + performance.measure("theme", "plugins"), + )})`, + ); + await stopRunningMessage(); + console.log( + `Database set up${newUserToAdd ? ` and ${newUserToAdd.user} user added` : !process.env.CI ? ". To set up a user, run the `wp user create` command." : ""}. (${convertMeasureToPrettyString( + performance.measure("everything", "Start"), + )})`, + ); + }) + .catch(async (error: unknown) => { + await stopRunningMessage(); + if ( + typeof error === "object" && + error && + "stderr" in error && + typeof error.stderr === "string" && + error.stderr.startsWith("ERROR 1007") + ) { + console.error( + "Database already exists with the name in the wp-config. Please delete that database first with `wp db drop --yes`", + ); + } else { + console.error(error); + process.exitCode = 1; + } + }); } diff --git a/packages/cli/src/commands/setup.ts b/packages/cli/src/commands/setup.ts index 8a612fbe..8d5607de 100644 --- a/packages/cli/src/commands/setup.ts +++ b/packages/cli/src/commands/setup.ts @@ -27,246 +27,246 @@ export async function handler() { const isCI = process.env.CI ?? false; const smashConfig = await getSmashConfig(); - const { projectName, composerInstallPaths, npmInstallPaths } = smashConfig; - const stopRunningMessage = startRunningMessage("Running setup"); - performance.mark("Start"); - await Promise.allSettled([ - ...(isCI || shouldInstallAndBuildOnly - ? [] - : [ - (async () => { - if (existsSync(".env.example")) { - if (existsSync(".config/environments/.env.dev")) { - throw new Error( - "Both .env.example and .config/environments/.env.dev files found. Please copy values from the .env.example to the .config/environments/.env.dev file and then delete the .env.example file.", - ); - } else { - console.log( - "Moving .env.example to .config/environments/.env.dev", - ); - if (!existsSync(".config/environments")) { - await mkdir(".config/environments", { recursive: true }); - } - await copyFile( - ".env.example", - ".config/environments/.env.dev", - constants.COPYFILE_EXCL, - ); - await deleteFile(".env.example"); - } - } - await copyFile( - ".config/environments/.env.dev", - ".env", - constants.COPYFILE_EXCL, - ) - .then(() => { - console.log( - `.config/environments/.env.dev file copied to .env. (${convertMeasureToPrettyString( - performance.measure("Copy env file", "Start"), - )})`, - ); - }) - .catch((error: unknown) => { - if ( - error instanceof Error && - "code" in error && - error.code === "EEXIST" - ) { + const { projectName, composerInstallPaths, npmInstallPaths } = smashConfig; + const stopRunningMessage = startRunningMessage("Running setup"); + performance.mark("Start"); + await Promise.allSettled([ + ...(isCI || shouldInstallAndBuildOnly + ? [] + : [ + (async () => { + if (existsSync(".env.example")) { + if (existsSync(".config/environments/.env.dev")) { + throw new Error( + "Both .env.example and .config/environments/.env.dev files found. Please copy values from the .env.example to the .config/environments/.env.dev file and then delete the .env.example file.", + ); + } else { console.log( - `Didn't copy .env file because one already exists. (${convertMeasureToPrettyString( - performance.measure("Copy env file", "Start"), - )})`, + "Moving .env.example to .config/environments/.env.dev", + ); + if (!existsSync(".config/environments")) { + await mkdir(".config/environments", { recursive: true }); + } + await copyFile( + ".env.example", + ".config/environments/.env.dev", + constants.COPYFILE_EXCL, ); - return; + await deleteFile(".env.example"); } - console.error(error); - throw new Error("Failed to copy .env file."); - }); - })(), - (async () => { - const ONE_MINUTE_IN_MS = 60000; - const timeout = setTimeout(() => { - throw new Error( - "Herd/Valet commands timed out. Please try again.", - ); - }, ONE_MINUTE_IN_MS * 1.5); - if ( - await execute(`herd --version`) - .then(() => true) - .catch(() => false) - ) { - if ( - !existsSync(resolve(process.cwd(), "herd.yaml")) && - !existsSync(resolve(process.cwd(), "herd.yml")) - ) { - throw new Error( - "Herd is present on your machine, but the project is missing a herd.yaml file. Please do the initial setup by running herd init.", - ); } - await execute(`herd link ${projectName} --secure`) - .then(() => { - performance.mark("herd link done"); - console.log( - `Herd is linked and secured. (${convertMeasureToPrettyString( - performance.measure("herd link", "Start"), - )})`, - ); - }) - .catch((error: unknown) => { - console.error(error); - throw new Error("Failed to link the site using Herd."); - }); - await execute(`herd isolate --site=${projectName}`) + await copyFile( + ".config/environments/.env.dev", + ".env", + constants.COPYFILE_EXCL, + ) .then(() => { console.log( - `Herd is isolated. (${convertMeasureToPrettyString( - performance.measure("herd isolate", "herd link done"), + `.config/environments/.env.dev file copied to .env. (${convertMeasureToPrettyString( + performance.measure("Copy env file", "Start"), )})`, ); - clearTimeout(timeout); }) .catch((error: unknown) => { + if ( + error instanceof Error && + "code" in error && + error.code === "EEXIST" + ) { + console.log( + `Didn't copy .env file because one already exists. (${convertMeasureToPrettyString( + performance.measure("Copy env file", "Start"), + )})`, + ); + return; + } console.error(error); - throw new Error("Failed to isolate the site using Herd."); + throw new Error("Failed to copy .env file."); }); - } else if ( - await execute(`valet --version`) - .then(() => true) - .catch(() => false) - ) { - await execute(`valet link ${projectName} --secure --isolate`) - .then(() => { - clearTimeout(timeout); - console.log( - `Valet is linked, secured and isolated. (${convertMeasureToPrettyString( - performance.measure("herd-or-valet", "Start"), - )})`, + })(), + (async () => { + const ONE_MINUTE_IN_MS = 60000; + const timeout = setTimeout(() => { + throw new Error( + "Herd/Valet commands timed out. Please try again.", + ); + }, ONE_MINUTE_IN_MS * 1.5); + if ( + await execute(`herd --version`) + .then(() => true) + .catch(() => false) + ) { + if ( + !existsSync(resolve(process.cwd(), "herd.yaml")) && + !existsSync(resolve(process.cwd(), "herd.yml")) + ) { + throw new Error( + "Herd is present on your machine, but the project is missing a herd.yaml file. Please do the initial setup by running herd init.", ); - }) - .catch((error: unknown) => { - console.error(error); - throw new Error("Failed to link the site using valet."); - }); - } else { - throw new Error( - `Neither Herd nor Valet is present on your machine, check everything is installed correctly.`, - ); - } - })(), - ]), - execute(`composer install${isCI ? " --prefer-dist" : ""}`) - .then(() => { - console.log( - `Root composer install done. (${convertMeasureToPrettyString( - performance.measure("root composer install", "Start"), - )})`, - ); - }) - .catch((error: unknown) => { - console.error(error); - throw new Error( - "Failed to run composer install in the root directory.", - ); - }), - ...composerInstallPaths.map((path, index) => { - return execute( - `cd "${resolve(process.cwd(), path)}"; composer install${isCI ? " --no-dev --classmap-authoritative" : ""}`, - ) + } + await execute(`herd link ${projectName} --secure`) + .then(() => { + performance.mark("herd link done"); + console.log( + `Herd is linked and secured. (${convertMeasureToPrettyString( + performance.measure("herd link", "Start"), + )})`, + ); + }) + .catch((error: unknown) => { + console.error(error); + throw new Error("Failed to link the site using Herd."); + }); + await execute(`herd isolate --site=${projectName}`) + .then(() => { + console.log( + `Herd is isolated. (${convertMeasureToPrettyString( + performance.measure("herd isolate", "herd link done"), + )})`, + ); + clearTimeout(timeout); + }) + .catch((error: unknown) => { + console.error(error); + throw new Error("Failed to isolate the site using Herd."); + }); + } else if ( + await execute(`valet --version`) + .then(() => true) + .catch(() => false) + ) { + await execute(`valet link ${projectName} --secure --isolate`) + .then(() => { + clearTimeout(timeout); + console.log( + `Valet is linked, secured and isolated. (${convertMeasureToPrettyString( + performance.measure("herd-or-valet", "Start"), + )})`, + ); + }) + .catch((error: unknown) => { + console.error(error); + throw new Error("Failed to link the site using valet."); + }); + } else { + throw new Error( + `Neither Herd nor Valet is present on your machine, check everything is installed correctly.`, + ); + } + })(), + ]), + execute(`composer install${isCI ? " --prefer-dist" : ""}`) .then(() => { console.log( - `Additional composer install ${(index + 1).toString()} done. (${convertMeasureToPrettyString( - performance.measure( - `additional composer install ${(index + 1).toString()}`, - "Start", - ), + `Root composer install done. (${convertMeasureToPrettyString( + performance.measure("root composer install", "Start"), )})`, ); }) .catch((error: unknown) => { console.error(error); throw new Error( - `Failed to run additional composer install ${(index + 1).toString()}.`, - ); - }); - }), - (async () => { - await execute(`npm ${isCI ? "ci" : "install"}`) - .then(() => { - performance.mark("root npm install done"); - console.log( - `Root npm install done. (${convertMeasureToPrettyString( - performance.measure("root npm install", "Start"), - )})`, + "Failed to run composer install in the root directory.", ); - }) - .catch((error: unknown) => { - console.error(error); - throw new Error("Failed to run npm install in the root directory."); - }); - await execute("npm run build") - .then(() => { - console.log( - `Initial build done. (${convertMeasureToPrettyString( - performance.measure("build", "root npm install done"), - )})`, + }), + ...composerInstallPaths.map((path, index) => { + return execute( + `cd "${resolve(process.cwd(), path)}"; composer install${isCI ? " --no-dev --classmap-authoritative" : ""}`, + ) + .then(() => { + console.log( + `Additional composer install ${(index + 1).toString()} done. (${convertMeasureToPrettyString( + performance.measure( + `additional composer install ${(index + 1).toString()}`, + "Start", + ), + )})`, + ); + }) + .catch((error: unknown) => { + console.error(error); + throw new Error( + `Failed to run additional composer install ${(index + 1).toString()}.`, + ); + }); + }), + (async () => { + await execute(`npm ${isCI ? "ci" : "install"}`) + .then(() => { + performance.mark("root npm install done"); + console.log( + `Root npm install done. (${convertMeasureToPrettyString( + performance.measure("root npm install", "Start"), + )})`, + ); + }) + .catch((error: unknown) => { + console.error(error); + throw new Error("Failed to run npm install in the root directory."); + }); + await execute("npm run build") + .then(() => { + console.log( + `Initial build done. (${convertMeasureToPrettyString( + performance.measure("build", "root npm install done"), + )})`, + ); + }) + .catch((error: unknown) => { + console.error(error); + throw new Error("Failed to run a build after installing."); + }); + })().catch((reason: unknown) => { + if (typeof reason === "string") { + throw new Error(reason); + } + throw reason; + }), + ...npmInstallPaths.map((path, index) => { + return execute( + `cd "${resolve(process.cwd(), path)}"; npm ${isCI ? "ci --omit=dev" : "install"}`, + ) + .then(() => { + console.log( + `Additional npm install ${(index + 1).toString()} done. (${convertMeasureToPrettyString( + performance.measure( + `additional npm install ${(index + 1).toString()}`, + "Start", + ), + )})`, + ); + }) + .catch((error: unknown) => { + console.error(error); + throw new Error( + `Failed to run additional npm install ${(index + 1).toString()}.`, + ); + }); + }), + ]) + .then(async (results) => { + await stopRunningMessage(); + if (results.some((result) => result.status === "rejected")) { + process.exitCode = 1; + console.error("Setup failed with the following errors:\n"); + console.error( + results + .filter((result) => result.status === "rejected") + .map((result) => { + return `- ${typeof result.reason === "string" ? result.reason : "Unknown reason."}`; + }) + .join(`\n`), ); - }) - .catch((error: unknown) => { - console.error(error); - throw new Error("Failed to run a build after installing."); - }); - })().catch((reason: unknown) => { - if (typeof reason === "string") { - throw new Error(reason); - } - throw reason; - }), - ...npmInstallPaths.map((path, index) => { - return execute( - `cd "${resolve(process.cwd(), path)}"; npm ${isCI ? "ci --omit=dev" : "install"}`, - ) - .then(() => { + } else { console.log( - `Additional npm install ${(index + 1).toString()} done. (${convertMeasureToPrettyString( - performance.measure( - `additional npm install ${(index + 1).toString()}`, - "Start", - ), - )})`, + `Setup is complete. ${convertMeasureToPrettyString( + performance.measure("everything", "Start"), + )}`, ); - }) - .catch((error: unknown) => { - console.error(error); - throw new Error( - `Failed to run additional npm install ${(index + 1).toString()}.`, - ); - }); - }), - ]) - .then(async (results) => { - await stopRunningMessage(); - if (results.some((result) => result.status === "rejected")) { + } + }) + .catch((error: unknown) => { + console.error(error); process.exitCode = 1; - console.error("Setup failed with the following errors:\n"); - console.error( - results - .filter((result) => result.status === "rejected") - .map((result) => { - return `- ${typeof result.reason === "string" ? result.reason : "Unknown reason."}`; - }) - .join(`\n`), - ); - } else { - console.log( - `Setup is complete. ${convertMeasureToPrettyString( - performance.measure("everything", "Start"), - )}`, - ); - } - }) - .catch((error: unknown) => { - console.error(error); - process.exitCode = 1; - }); + }); } From 9d9e79efef6c94cf3f930d92a7b22e31e5e8833c Mon Sep 17 00:00:00 2001 From: Mikey Binns <38146638+mikeybinns@users.noreply.github.com> Date: Wed, 10 Jun 2026 16:23:33 +0100 Subject: [PATCH 37/62] make pull media config optional --- packages/smash-config/src/types.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/smash-config/src/types.ts b/packages/smash-config/src/types.ts index c03cb90a..039b0831 100644 --- a/packages/smash-config/src/types.ts +++ b/packages/smash-config/src/types.ts @@ -26,7 +26,7 @@ export type SmashConfigV2 = { composerInstallPaths?: string[]; scssAliases?: SCSSAliases; uploadsPath?: string; - pullMedia: { + pullMedia?: { monthsToPull?: number; }; staging: { From 24dddc569fdadd0b248a7fb717014537aad10175 Mon Sep 17 00:00:00 2001 From: Mikey Binns <38146638+mikeybinns@users.noreply.github.com> Date: Fri, 12 Jun 2026 12:20:42 +0100 Subject: [PATCH 38/62] remove SVG command --- .changeset/eight-lions-argue.md | 5 ++ packages/cli/src/commands/svg.test.ts | 103 -------------------------- packages/cli/src/commands/svg.ts | 100 ------------------------- packages/cli/src/main.test.ts | 2 - 4 files changed, 5 insertions(+), 205 deletions(-) create mode 100644 .changeset/eight-lions-argue.md delete mode 100644 packages/cli/src/commands/svg.test.ts delete mode 100644 packages/cli/src/commands/svg.ts diff --git a/.changeset/eight-lions-argue.md b/.changeset/eight-lions-argue.md new file mode 100644 index 00000000..d22b3963 --- /dev/null +++ b/.changeset/eight-lions-argue.md @@ -0,0 +1,5 @@ +--- +"@atomicsmash/cli": major +--- + +Remove SVG command diff --git a/packages/cli/src/commands/svg.test.ts b/packages/cli/src/commands/svg.test.ts deleted file mode 100644 index 02c14ded..00000000 --- a/packages/cli/src/commands/svg.test.ts +++ /dev/null @@ -1,103 +0,0 @@ -import { existsSync, unlink, readFileSync } from "node:fs"; -import { resolve as resolvePath } from "node:path"; -import { expect, test, describe, afterAll } from "vitest"; -import { testCommand, execute } from "../utils.js"; - -const testSVGsIn = resolvePath(import.meta.dirname, "../tests/svg/in"); -const testSVGsOut = resolvePath(import.meta.dirname, "../tests/svg/out"); - -describe("SVG command works as intended", () => { - afterAll(() => { - // Delete sprite once all tests are complete to avoid false positives on subsequent tests - unlink(`${testSVGsOut}/sprite.svg`, (err) => { - if (err) throw err; - console.log("Successfully deleted sprite.svg"); - }); - }); - - test("svg command correctly displays help message", async () => { - await expect(execute(`${testCommand} svg --help`)).resolves - .toMatchInlineSnapshot(` - { - "error": null, - "stderr": "", - "stdout": "smash-cli svg - - Generate an SVG sprite from a group of SVGs. - - Options: - --in The directory where the SVGs can be found. [string] [required] - --out The directory where the SVG sprite will be output. [string] [required] - -h, --help Show help [boolean] - -v, --version Show version number [boolean] - - Examples: - smash-cli svg --in icons --out public/assets - ", - } - `); - }); - - test("svg command correctly displays --in flag missing error if no flags added", async () => { - const command = `${testCommand} svg`; - await expect(execute(command)).rejects.toThrowErrorMatchingInlineSnapshot(` - { - "error": [Error: Command failed: ${testCommand} svg - Missing required arguments: in, out - - Specify --help to see the available commands. - ], - "stderr": "Missing required arguments: in, out - - Specify --help to see the available commands. - ", - "stdout": "", - } - `); - }); - - test("svg command correctly displays --in flag missing error if in flag is missing", async () => { - const command = `${testCommand} svg --out ${testSVGsOut}`; - await expect(execute(command)).rejects.toThrowErrorMatchingInlineSnapshot(` - { - "error": [Error: Command failed: ${testCommand} svg --out ${testSVGsOut} - Missing required argument: in - - Specify --help to see the available commands. - ], - "stderr": "Missing required argument: in - - Specify --help to see the available commands. - ", - "stdout": "", - } - `); - }); - - test("svg command correctly displays --out flag missing error if out flag is missing", async () => { - const command = `${testCommand} svg --in ${testSVGsIn}`; - await expect(execute(command)).rejects.toThrowErrorMatchingInlineSnapshot(` - { - "error": [Error: Command failed: ${testCommand} svg --in ${testSVGsIn} - Missing required argument: out - - Specify --help to see the available commands. - ], - "stderr": "Missing required argument: out - - Specify --help to see the available commands. - ", - "stdout": "", - } - `); - }); - - test("svg command produces the correct svg output", async () => { - await execute(`${testCommand} svg --in ${testSVGsIn} --out ${testSVGsOut}`); - expect(existsSync(`${testSVGsOut}/sprite.svg`)).toBe(true); - expect(readFileSync(`${testSVGsOut}/sprite.svg`, "utf8")).toBe( - // spellchecker: disable-next-line - '', - ); - }); -}); diff --git a/packages/cli/src/commands/svg.ts b/packages/cli/src/commands/svg.ts deleted file mode 100644 index 0648802f..00000000 --- a/packages/cli/src/commands/svg.ts +++ /dev/null @@ -1,100 +0,0 @@ -import type { YargsInstance } from "../cli.js"; -import type { ArgumentsCamelCase } from "yargs"; -import { readFileSync, mkdirSync, writeFileSync } from "node:fs"; -import { resolve as resolvePath, join as joinPath, dirname } from "path"; -import glob from "glob-promise"; -import SVGSpriter from "svg-sprite"; -import File from "vinyl"; - -export const command = "svg"; -export const describe = "Generate an SVG sprite from a group of SVGs."; -export const deprecated = - "Migrate to using @atomicsmash/compiler, which supports an icons folder in the src folder."; -export const builder = function (yargs: YargsInstance) { - return yargs - .options({ - in: { - demandOption: true, - string: true, - normalize: true, - description: "The directory where the SVGs can be found.", - }, - out: { - demandOption: true, - string: true, - normalize: true, - description: "The directory where the SVG sprite will be output.", - }, - }) - .example("$0 svg --in icons --out public/assets", ""); -}; - -export function handler( - args: ArgumentsCamelCase["argv"]>>, -) { - const config = { - dest: args.out, - shape: { - dimension: { - attributes: false, - }, - transform: [ - { - svgo: {}, - }, - ], - }, - mode: { - symbol: { - dest: "", - sprite: "sprite.svg", - }, - }, - }; - const spriter = new SVGSpriter(config); - - const cwd = resolvePath(args.in); - // Find SVG files recursively via `glob` - glob("**/*.svg", { cwd }) - .then(async (files) => { - await new Promise((resolve) => { - files.forEach((file) => { - // Create and add a vinyl file instance for each SVG - spriter.add( - new File({ - path: joinPath(cwd, file), // Absolute path to the SVG file - base: cwd, // Base path (see `name` argument) - contents: readFileSync(joinPath(cwd, file)), // SVG file contents - }), - ); - }); - resolve(); - }) - .then(async () => { - await spriter - .compileAsync() - .then( - (compiledResponse: { - result: { symbol: Record }; - }) => { - const { result } = compiledResponse; - for (const type of Object.values(result.symbol)) { - if (type.contents) { - mkdirSync(dirname(type.path), { recursive: true }); - // TODO: find out how to remove this error. - // eslint-disable-next-line @typescript-eslint/no-base-to-string -- This works despite this error. - writeFileSync(type.path, type.contents.toString()); - } - } - }, - ); - }) - .then(() => { - console.log(`SVG sprite was successfully generated in ${args.out}.`); - }); - }) - .catch((error: unknown) => { - console.error({ error }); - throw error; - }); -} diff --git a/packages/cli/src/main.test.ts b/packages/cli/src/main.test.ts index 7969614f..7f6eaef0 100644 --- a/packages/cli/src/main.test.ts +++ b/packages/cli/src/main.test.ts @@ -33,7 +33,6 @@ describe.concurrent("Base CLI helpers work as intended", () => { smash-cli pull-media Pull the media items from the staging site. smash-cli setup-database Create a new database and initialise the site with no content. smash-cli setup Run all the common setup tasks for a project. - smash-cli svg Generate an SVG sprite from a group of SVGs. [deprecated: Migrate to using @atomicsmash/compiler, which supports an icons folder in the src folder.] smash-cli toggle-media-proxy Toggle the media proxy in the local NGINX config within Herd. smash-cli completion generate completion script @@ -57,7 +56,6 @@ describe.concurrent("Base CLI helpers work as intended", () => { smash-cli pull-media Pull the media items from the staging site. smash-cli setup-database Create a new database and initialise the site with no content. smash-cli setup Run all the common setup tasks for a project. - smash-cli svg Generate an SVG sprite from a group of SVGs. [deprecated: Migrate to using @atomicsmash/compiler, which supports an icons folder in the src folder.] smash-cli toggle-media-proxy Toggle the media proxy in the local NGINX config within Herd. smash-cli completion generate completion script From affcda8a6927981cbdfc1acd85a85672e921f883 Mon Sep 17 00:00:00 2001 From: Mikey Binns <38146638+mikeybinns@users.noreply.github.com> Date: Tue, 16 Jun 2026 13:59:20 +0100 Subject: [PATCH 39/62] deprecate setup database command --- .changeset/jolly-frogs-drum.md | 5 +++++ packages/cli/src/commands/setup-database.ts | 2 ++ packages/cli/src/main.test.ts | 4 ++-- 3 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 .changeset/jolly-frogs-drum.md diff --git a/.changeset/jolly-frogs-drum.md b/.changeset/jolly-frogs-drum.md new file mode 100644 index 00000000..0a478f37 --- /dev/null +++ b/.changeset/jolly-frogs-drum.md @@ -0,0 +1,5 @@ +--- +"@atomicsmash/cli": minor +--- + +Deprecate setup-database command diff --git a/packages/cli/src/commands/setup-database.ts b/packages/cli/src/commands/setup-database.ts index ff6282b0..e61c396f 100644 --- a/packages/cli/src/commands/setup-database.ts +++ b/packages/cli/src/commands/setup-database.ts @@ -85,6 +85,8 @@ async function activatePluginsWithRetry( export const command = "setup-database"; export const describe = "Create a new database and initialise the site with no content."; +export const deprecated = + "You probably no longer need this with changes to the pull database script. If you do, migrate a copy of these commands into a local project script."; export async function handler() { const execute = promisify(exec); const smashConfig = await getSmashConfig(); diff --git a/packages/cli/src/main.test.ts b/packages/cli/src/main.test.ts index 7f6eaef0..ab8c1170 100644 --- a/packages/cli/src/main.test.ts +++ b/packages/cli/src/main.test.ts @@ -31,7 +31,7 @@ describe.concurrent("Base CLI helpers work as intended", () => { Commands: smash-cli pull-database Pull the database down from staging and replace local database. smash-cli pull-media Pull the media items from the staging site. - smash-cli setup-database Create a new database and initialise the site with no content. + smash-cli setup-database Create a new database and initialise the site with no content. [deprecated: You probably no longer need this with changes to the pull database script. If you do, migrate a copy of these commands into a local project script.] smash-cli setup Run all the common setup tasks for a project. smash-cli toggle-media-proxy Toggle the media proxy in the local NGINX config within Herd. smash-cli completion generate completion script @@ -54,7 +54,7 @@ describe.concurrent("Base CLI helpers work as intended", () => { Commands: smash-cli pull-database Pull the database down from staging and replace local database. smash-cli pull-media Pull the media items from the staging site. - smash-cli setup-database Create a new database and initialise the site with no content. + smash-cli setup-database Create a new database and initialise the site with no content. [deprecated: You probably no longer need this with changes to the pull database script. If you do, migrate a copy of these commands into a local project script.] smash-cli setup Run all the common setup tasks for a project. smash-cli toggle-media-proxy Toggle the media proxy in the local NGINX config within Herd. smash-cli completion generate completion script From 75d770827b62d28a0b686d15117a0dc0da021223 Mon Sep 17 00:00:00 2001 From: Mikey Binns <38146638+mikeybinns@users.noreply.github.com> Date: Tue, 16 Jun 2026 14:05:50 +0100 Subject: [PATCH 40/62] Remove unnecessary ternaries for src and dist folders now paths are always set in smash config --- packages/compiler/src/config.ts | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/packages/compiler/src/config.ts b/packages/compiler/src/config.ts index e5bd02e3..6bfa88e4 100644 --- a/packages/compiler/src/config.ts +++ b/packages/compiler/src/config.ts @@ -60,19 +60,10 @@ export async function config(options: { const srcFolder = argv.in ? resolvePath(argv.in) - : smashConfig.themePath - ? resolvePath(join(smashConfig.themePath, "src")) - : null; + : resolvePath(join(smashConfig.themePath, "src")); const distFolder = argv.out ? resolvePath(argv.out) - : smashConfig.themePath - ? resolvePath(join(smashConfig.themePath, smashConfig.assetsOutputFolder)) - : null; - if (!srcFolder || !distFolder) { - throw new Error( - "Failed to get the in or out folders for the blocks. Please add a smash.config.ts file to your project with a themeName and a themePath.", - ); - } + : resolvePath(join(smashConfig.themePath, smashConfig.assetsOutputFolder)); // Add optional support for Tailwind if tailwind postcss plugin is installed const tailwindPostCSSPlugin = await import("@tailwindcss/postcss") From 89f68330511acb55de25fc37bbc6c6b488811695 Mon Sep 17 00:00:00 2001 From: Mikey Binns <38146638+mikeybinns@users.noreply.github.com> Date: Tue, 16 Jun 2026 14:11:51 +0100 Subject: [PATCH 41/62] nest pull media config inside a cli object --- packages/cli/src/commands/pull-media.ts | 112 +++++++++--------- .../src/tests/getSmashConfig.test.ts | 8 +- packages/smash-config/src/types.ts | 12 +- .../smash-config/src/utils/getSmashConfig.ts | 9 +- 4 files changed, 76 insertions(+), 65 deletions(-) diff --git a/packages/cli/src/commands/pull-media.ts b/packages/cli/src/commands/pull-media.ts index ebf04050..1764bbe2 100644 --- a/packages/cli/src/commands/pull-media.ts +++ b/packages/cli/src/commands/pull-media.ts @@ -35,65 +35,67 @@ async function downloadFiles( export const command = "pull-media"; export const describe = "Pull the media items from the staging site."; export async function handler() { - const { - uploadsPath: uploadsPath, - staging: { - uploadsPath: stagingUploadsPath, - webRoot: stagingWebRoot, - ssh: stagingSSHDetails, - }, + const { + uploadsPath: uploadsPath, + staging: { + uploadsPath: stagingUploadsPath, + webRoot: stagingWebRoot, + ssh: stagingSSHDetails, + }, + cli: { pullMedia: { monthsToPull }, - } = await getSmashConfig(2); - const mediaMonths = monthsToPull; - const mediaServerPath = `${stagingWebRoot}/${stagingUploadsPath}`; - const mediaLocalPath = uploadsPath; + }, + } = await getSmashConfig(2); + const mediaMonths = monthsToPull; + const mediaServerPath = `${stagingWebRoot}/${stagingUploadsPath}`; + const mediaLocalPath = uploadsPath; - const stopRunningMessage = startRunningMessage("Pulling media from staging"); - performance.mark("Start"); - await (async () => { - if (mediaMonths === -1) { - console.log("Downloading entire uploads directory..."); - const localPath = resolve(mediaLocalPath, ".."); + const stopRunningMessage = startRunningMessage("Pulling media from staging"); + performance.mark("Start"); + await (async () => { + if (mediaMonths === -1) { + console.log("Downloading entire uploads directory..."); + const localPath = resolve(mediaLocalPath, ".."); - console.log( - `Downloading entire uploads directory: ${mediaServerPath} -> ${localPath}`, - ); - await downloadFiles(mediaServerPath, localPath, stagingSSHDetails); - } else { - console.log( - `Downloading media for the last ${mediaMonths.toString()} months...`, - ); - // Download media for each month - for (let i = 0; i < mediaMonths; i++) { - const date = new Date(); - date.setMonth(date.getMonth() - i); - const year = date.getFullYear(); - const month = String(date.getMonth() + 1).padStart(2, "0"); - const remotePath = `${mediaServerPath}/${year.toString()}/${month}`; - const localPath = `${mediaLocalPath}/${year.toString()}`; + console.log( + `Downloading entire uploads directory: ${mediaServerPath} -> ${localPath}`, + ); + await downloadFiles(mediaServerPath, localPath, stagingSSHDetails); + } else { + console.log( + `Downloading media for the last ${mediaMonths.toString()} months...`, + ); + // Download media for each month + for (let i = 0; i < mediaMonths; i++) { + const date = new Date(); + date.setMonth(date.getMonth() - i); + const year = date.getFullYear(); + const month = String(date.getMonth() + 1).padStart(2, "0"); + const remotePath = `${mediaServerPath}/${year.toString()}/${month}`; + const localPath = `${mediaLocalPath}/${year.toString()}`; - console.log(`Attempting to download: ${remotePath} -> ${localPath}`); - try { - await downloadFiles(remotePath, localPath, stagingSSHDetails); - } catch { - console.log( - `Skipping uploads/${year.toString()}/${month} - directory does not exist on remote server`, - ); - return; // Skip to next iteration - } + console.log(`Attempting to download: ${remotePath} -> ${localPath}`); + try { + await downloadFiles(remotePath, localPath, stagingSSHDetails); + } catch { + console.log( + `Skipping uploads/${year.toString()}/${month} - directory does not exist on remote server`, + ); + return; // Skip to next iteration } - console.log("Finished attempting to download all requested months"); } - })() - .then(async () => { - await stopRunningMessage(); - console.log("Media download complete!"); - }) - .catch(async () => { - await stopRunningMessage(); - console.log( - "There was an error downloading the media, see the message above.", - ); - process.exitCode = 1; - }); + console.log("Finished attempting to download all requested months"); + } + })() + .then(async () => { + await stopRunningMessage(); + console.log("Media download complete!"); + }) + .catch(async () => { + await stopRunningMessage(); + console.log( + "There was an error downloading the media, see the message above.", + ); + process.exitCode = 1; + }); } diff --git a/packages/smash-config/src/tests/getSmashConfig.test.ts b/packages/smash-config/src/tests/getSmashConfig.test.ts index 3c42f0f1..e99f021d 100644 --- a/packages/smash-config/src/tests/getSmashConfig.test.ts +++ b/packages/smash-config/src/tests/getSmashConfig.test.ts @@ -63,12 +63,14 @@ describe.sequential("getSmashConfig()", () => { await expect(getSmashConfig()).resolves.toMatchInlineSnapshot(` { "assetsOutputFolder": "dist", + "cli": { + "pullMedia": { + "monthsToPull": -1, + }, + }, "composerInstallPaths": [], "npmInstallPaths": [], "projectName": "smash-config-tests", - "pullMedia": { - "monthsToPull": -1, - }, "scssAliases": { "importers": [ { diff --git a/packages/smash-config/src/types.ts b/packages/smash-config/src/types.ts index 039b0831..44215a97 100644 --- a/packages/smash-config/src/types.ts +++ b/packages/smash-config/src/types.ts @@ -26,8 +26,10 @@ export type SmashConfigV2 = { composerInstallPaths?: string[]; scssAliases?: SCSSAliases; uploadsPath?: string; - pullMedia?: { - monthsToPull?: number; + cli?: { + pullMedia?: { + monthsToPull?: number; + }; }; staging: { url: string; @@ -69,8 +71,10 @@ export type SmashConfigV2Resolved = { composerInstallPaths: string[]; scssAliases: SCSSAliases; uploadsPath: string; - pullMedia: { - monthsToPull: number; + cli: { + pullMedia: { + monthsToPull: number; + }; }; staging: { url: string; diff --git a/packages/smash-config/src/utils/getSmashConfig.ts b/packages/smash-config/src/utils/getSmashConfig.ts index ade11bed..32a59ff1 100644 --- a/packages/smash-config/src/utils/getSmashConfig.ts +++ b/packages/smash-config/src/utils/getSmashConfig.ts @@ -70,9 +70,12 @@ export async function getSmashConfig( ...config.staging, url: normaliseStagingURL(config.staging.url), }, - pullMedia: { - monthsToPull: -1, - ...config.pullMedia, + cli: { + ...config.cli, + pullMedia: { + monthsToPull: -1, + ...config.cli?.pullMedia, + }, }, }; return fullConfig; From 61845d49c0bea9f110d374d0e711f01166a9788e Mon Sep 17 00:00:00 2001 From: Mikey Binns <38146638+mikeybinns@users.noreply.github.com> Date: Tue, 16 Jun 2026 14:12:55 +0100 Subject: [PATCH 42/62] add changesets --- .changeset/huge-rules-kiss.md | 5 +++++ .changeset/legal-groups-notice.md | 5 +++++ .changeset/olive-apples-ring.md | 5 +++++ .changeset/rare-eagles-move.md | 5 +++++ .changeset/silver-glasses-shine.md | 5 +++++ .changeset/tasty-coins-cry.md | 5 +++++ .changeset/violet-paws-flow.md | 5 +++++ 7 files changed, 35 insertions(+) create mode 100644 .changeset/huge-rules-kiss.md create mode 100644 .changeset/legal-groups-notice.md create mode 100644 .changeset/olive-apples-ring.md create mode 100644 .changeset/rare-eagles-move.md create mode 100644 .changeset/silver-glasses-shine.md create mode 100644 .changeset/tasty-coins-cry.md create mode 100644 .changeset/violet-paws-flow.md diff --git a/.changeset/huge-rules-kiss.md b/.changeset/huge-rules-kiss.md new file mode 100644 index 00000000..5965f2c0 --- /dev/null +++ b/.changeset/huge-rules-kiss.md @@ -0,0 +1,5 @@ +--- +"@atomicsmash/cli": major +--- + +Update pull database and pull media commands to use Smash Config V2 and remove .env variable support. diff --git a/.changeset/legal-groups-notice.md b/.changeset/legal-groups-notice.md new file mode 100644 index 00000000..4184002b --- /dev/null +++ b/.changeset/legal-groups-notice.md @@ -0,0 +1,5 @@ +--- +"@atomicsmash/smash-config": minor +--- + +Add option to get a Smash Config of a minimum version diff --git a/.changeset/olive-apples-ring.md b/.changeset/olive-apples-ring.md new file mode 100644 index 00000000..9173b646 --- /dev/null +++ b/.changeset/olive-apples-ring.md @@ -0,0 +1,5 @@ +--- +"@atomicsmash/smash-config": minor +--- + +Add Smash Config V2 types and validation diff --git a/.changeset/rare-eagles-move.md b/.changeset/rare-eagles-move.md new file mode 100644 index 00000000..0089edd8 --- /dev/null +++ b/.changeset/rare-eagles-move.md @@ -0,0 +1,5 @@ +--- +"@atomicsmash/smash-config": major +--- + +Get smash config now always returns a smash config or throws an error, it no longer returns null for custom errors. diff --git a/.changeset/silver-glasses-shine.md b/.changeset/silver-glasses-shine.md new file mode 100644 index 00000000..56964ef0 --- /dev/null +++ b/.changeset/silver-glasses-shine.md @@ -0,0 +1,5 @@ +--- +"@atomicsmash/smash-config": major +--- + +Removed smash config fallbacks for .env and package.json diff --git a/.changeset/tasty-coins-cry.md b/.changeset/tasty-coins-cry.md new file mode 100644 index 00000000..52ffba34 --- /dev/null +++ b/.changeset/tasty-coins-cry.md @@ -0,0 +1,5 @@ +--- +"@atomicsmash/compiler": major +--- + +The compiler now requires that a smash config is set, if not set, it will throw an error. Fallback for scssAliases removed. diff --git a/.changeset/violet-paws-flow.md b/.changeset/violet-paws-flow.md new file mode 100644 index 00000000..91cf9c7e --- /dev/null +++ b/.changeset/violet-paws-flow.md @@ -0,0 +1,5 @@ +--- +"@atomicsmash/cli": patch +--- + +Update setup and setup database commands in line with the changes to smash config. From 87c5a1758cd5cb0a73f0754649788182e316a038 Mon Sep 17 00:00:00 2001 From: Mikey Binns <38146638+mikeybinns@users.noreply.github.com> Date: Tue, 16 Jun 2026 15:32:54 +0100 Subject: [PATCH 43/62] Update deps --- .changeset/giant-plants-mix.md | 12 + package-lock.json | 9165 +++++++++-------- package.json | 8 +- packages/blocks-helpers/package.json | 10 +- packages/browserslist-config/package.json | 2 +- packages/cli/package.json | 7 +- packages/coding-standards/package.json | 16 +- packages/compiler/package.json | 22 +- packages/compiler/src/tests/compiler.test.ts | 4 +- packages/init-testing/package.json | 2 +- packages/init-testing/src/utils.test.ts | 4 +- packages/smash-config/package.json | 5 +- .../src/tests/getSmashConfig.test.ts | 2 +- packages/test-utils/package.json | 6 +- packages/test-utils/src/index.ts | 6 +- 15 files changed, 4694 insertions(+), 4577 deletions(-) create mode 100644 .changeset/giant-plants-mix.md diff --git a/.changeset/giant-plants-mix.md b/.changeset/giant-plants-mix.md new file mode 100644 index 00000000..d5cccd1b --- /dev/null +++ b/.changeset/giant-plants-mix.md @@ -0,0 +1,12 @@ +--- +"@atomicsmash/browserslist-config": patch +"@atomicsmash/coding-standards": patch +"@atomicsmash/blocks-helpers": patch +"@atomicsmash/init-testing": patch +"@atomicsmash/smash-config": patch +"@atomicsmash/test-utils": patch +"@atomicsmash/compiler": patch +"@atomicsmash/cli": patch +--- + +Update deps diff --git a/package-lock.json b/package-lock.json index e04c14b3..b7024581 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,14 +19,14 @@ "packages/smash-config" ], "devDependencies": { - "@changesets/changelog-github": "^0.5.2", - "@changesets/cli": "^2.30.0", - "@types/node": "^22.19.15", + "@changesets/changelog-github": "^0.7.0", + "@changesets/cli": "^2.31.0", + "@types/node": "^24.13.2", "@vitest/coverage-v8": "^4.1.0", "@vitest/ui": "^4.0.15", "cross-env": "^10.1.0", "del-cli": "^7.0.0", - "dotenv": "^17.3.1", + "dotenv": "^17.4.2", "husky": "^9.1.7", "npm-run-all": "^4.1.5", "vitest": "^4.0.15" @@ -48,21 +48,25 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@ariakit/core": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/@ariakit/core/-/core-0.4.18.tgz", - "integrity": "sha512-9urEa+GbZTSyredq3B/3thQjTcSZSUC68XctwCkJNH/xNfKN5O+VThiem2rcJxpsGw8sRUQenhagZi0yB4foyg==", + "node_modules/@ariakit/components": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@ariakit/components/-/components-0.1.2.tgz", + "integrity": "sha512-tvh2P0x1cJnoPXnmDEJwdRk3z7x6cTB8ArctcZdAUXlRg9tuwW/rJoBFJMzD5qMI9CDDlQ3Zctx58HvENw4BYw==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "@ariakit/store": "0.1.2", + "@ariakit/utils": "0.1.2" + } }, "node_modules/@ariakit/react": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/@ariakit/react/-/react-0.4.23.tgz", - "integrity": "sha512-zokuZ7C/pUtFi5x1d/0h5ulLGlJpnPXG1aFKU3F4Sj6sD9uNN/J+fXFsg3sZlWdg7u9ZhBLcjsheLypDjjf6WQ==", + "version": "0.4.29", + "resolved": "https://registry.npmjs.org/@ariakit/react/-/react-0.4.29.tgz", + "integrity": "sha512-SLXlsddWHSwfUol4Yi0zULlalNWjzWjpS3zg7B7aaPd64saONQ5ktWf9KMxqBklcpjMLeF2dB9BAHAvpPVdCIQ==", "dev": true, "license": "MIT", "dependencies": { - "@ariakit/react-core": "0.4.23" + "@ariakit/react-components": "0.1.2" }, "funding": { "type": "opencollective", @@ -73,22 +77,72 @@ "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" } }, - "node_modules/@ariakit/react-core": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/@ariakit/react-core/-/react-core-0.4.23.tgz", - "integrity": "sha512-cqcgYBgn+rCsZ05o8f3qKQW4ukOdZPgGgiu2BXv889LksbdjdvTMZ6Fd6JTHXm2vmqdnAkmpVulrhKe6NMETDQ==", + "node_modules/@ariakit/react-components": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@ariakit/react-components/-/react-components-0.1.2.tgz", + "integrity": "sha512-SM+SPMAVlOZmGAfWNBza+0k9y4mkA5/dJhDoOyhE96cbNARy665uLdwowSJl1JGuFfcZzuzAwGon7f/rYeyfkQ==", "dev": true, "license": "MIT", "dependencies": { - "@ariakit/core": "0.4.18", - "@floating-ui/dom": "^1.0.0", - "use-sync-external-store": "^1.2.0" + "@ariakit/components": "0.1.2", + "@ariakit/react-store": "0.1.2", + "@ariakit/react-utils": "0.1.2", + "@ariakit/store": "0.1.2", + "@ariakit/utils": "0.1.2", + "@floating-ui/dom": "^1.0.0" }, "peerDependencies": { "react": "^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" } }, + "node_modules/@ariakit/react-store": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@ariakit/react-store/-/react-store-0.1.2.tgz", + "integrity": "sha512-1r1Gn0tqhnOS0LFvHNGzn5/8C5aOANO5vb0Gxh94oR/be4zwCSE2zfQjOjRfpL+BBDhOcProME2+G6UslEJxbg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ariakit/react-utils": "0.1.2", + "@ariakit/store": "0.1.2", + "@ariakit/utils": "0.1.2", + "use-sync-external-store": "^1.6.0" + }, + "peerDependencies": { + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@ariakit/react-utils": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@ariakit/react-utils/-/react-utils-0.1.2.tgz", + "integrity": "sha512-Rnl6D1542Mqu80xK++oUv1JXS0PtNmKXd9nkdud5nyvySiBDTrmPqRW44/D+5GbuZrboreQuY3tPYwKL7a7onQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ariakit/store": "0.1.2", + "@ariakit/utils": "0.1.2" + }, + "peerDependencies": { + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@ariakit/store": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@ariakit/store/-/store-0.1.2.tgz", + "integrity": "sha512-SS7bV4+a+1q9M9i0WV6DD4P/ypRKlCvII8soo2UMe1yuaxZA/Fc0htHe+EZwjJ6TMLjHfHh2TDSnXyrjC7QImA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ariakit/utils": "0.1.2" + } + }, + "node_modules/@ariakit/utils": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@ariakit/utils/-/utils-0.1.2.tgz", + "integrity": "sha512-lBJhtBWpKjIck/9i7G8cahvaUgLsyGklI/Pjv+VtY9KTzyuzX5GpRbbLKMS/e1qLnFPS4C3CybYB70b1bVcAkw==", + "dev": true, + "license": "MIT" + }, "node_modules/@atomicsmash/blocks-helpers": { "resolved": "packages/blocks-helpers", "link": true @@ -130,24 +184,24 @@ "link": true }, "node_modules/@axe-core/playwright": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/@axe-core/playwright/-/playwright-4.11.1.tgz", - "integrity": "sha512-mKEfoUIB1MkVTht0BGZFXtSAEKXMJoDkyV5YZ9jbBmZCcWDz71tegNsdTkIN8zc/yMi5Gm2kx7Z5YQ9PfWNAWw==", + "version": "4.11.3", + "resolved": "https://registry.npmjs.org/@axe-core/playwright/-/playwright-4.11.3.tgz", + "integrity": "sha512-h/kfksv4F0cVIDlKpT4700OehdRgpvuVskuQ2nb7/JmtWUXpe9ftHAPtwyXGvVSsa6SJ64A9ER7Zrzc/sIvC4w==", "license": "MPL-2.0", "dependencies": { - "axe-core": "~4.11.1" + "axe-core": "~4.11.4" }, "peerDependencies": { "playwright-core": ">= 1.0.0" } }, "node_modules/@babel/code-frame": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", - "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.28.5", + "@babel/helper-validator-identifier": "^7.29.7", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" }, @@ -162,9 +216,9 @@ "license": "MIT" }, "node_modules/@babel/compat-data": { - "version": "7.29.3", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.3.tgz", - "integrity": "sha512-LIVqM46zQWZhj17qA8wb4nW/ixr2y1Nw+r1etiAWgRM6U1IqP+LNhL1yg440jYZR72jCWcWbLWzIosH+uP1fqg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz", + "integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==", "license": "MIT", "peer": true, "engines": { @@ -172,21 +226,21 @@ } }, "node_modules/@babel/core": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", - "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz", + "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==", "license": "MIT", "peer": true, "dependencies": { - "@babel/code-frame": "^7.29.0", - "@babel/generator": "^7.29.0", - "@babel/helper-compilation-targets": "^7.28.6", - "@babel/helper-module-transforms": "^7.28.6", - "@babel/helpers": "^7.28.6", - "@babel/parser": "^7.29.0", - "@babel/template": "^7.28.6", - "@babel/traverse": "^7.29.0", - "@babel/types": "^7.29.0", + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helpers": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", @@ -213,13 +267,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.29.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", - "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.7.tgz", + "integrity": "sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.29.0", - "@babel/types": "^7.29.0", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" @@ -229,14 +283,14 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", - "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz", + "integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==", "license": "MIT", "peer": true, "dependencies": { - "@babel/compat-data": "^7.28.6", - "@babel/helper-validator-option": "^7.27.1", + "@babel/compat-data": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -245,16 +299,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "license": "ISC", - "peer": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, "node_modules/@babel/helper-compilation-targets/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -266,37 +310,37 @@ } }, "node_modules/@babel/helper-globals": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", - "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz", + "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", - "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz", + "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==", "license": "MIT", "dependencies": { - "@babel/traverse": "^7.28.6", - "@babel/types": "^7.28.6" + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", - "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz", + "integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==", "license": "MIT", "peer": true, "dependencies": { - "@babel/helper-module-imports": "^7.28.6", - "@babel/helper-validator-identifier": "^7.28.5", - "@babel/traverse": "^7.28.6" + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -306,27 +350,27 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", - "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", - "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", - "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz", + "integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==", "license": "MIT", "peer": true, "engines": { @@ -334,26 +378,26 @@ } }, "node_modules/@babel/helpers": { - "version": "7.29.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.2.tgz", - "integrity": "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.7.tgz", + "integrity": "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==", "license": "MIT", "peer": true, "dependencies": { - "@babel/template": "^7.28.6", - "@babel/types": "^7.29.0" + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.0.tgz", - "integrity": "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz", + "integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==", "license": "MIT", "dependencies": { - "@babel/types": "^7.29.0" + "@babel/types": "^7.29.7" }, "bin": { "parser": "bin/babel-parser.js" @@ -363,9 +407,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.6.tgz", - "integrity": "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.7.tgz", + "integrity": "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==", "dev": true, "license": "MIT", "engines": { @@ -373,31 +417,31 @@ } }, "node_modules/@babel/template": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", - "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz", + "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.28.6", - "@babel/parser": "^7.28.6", - "@babel/types": "^7.28.6" + "@babel/code-frame": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", - "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.7.tgz", + "integrity": "sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.29.0", - "@babel/generator": "^7.29.0", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.29.0", - "@babel/template": "^7.28.6", - "@babel/types": "^7.29.0", + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-globals": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7", "debug": "^4.3.1" }, "engines": { @@ -405,129 +449,97 @@ } }, "node_modules/@babel/types": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", - "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz", + "integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==", "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.28.5" + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@base-ui/react": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@base-ui/react/-/react-1.3.0.tgz", - "integrity": "sha512-FwpKqZbPz14AITp1CVgf4AjhKPe1OeeVKSBMdgD10zbFlj3QSWelmtCMLi2+/PFZZcIm3l87G7rwtCZJwHyXWA==", + "node_modules/@bcoe/v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-1.0.2.tgz", + "integrity": "sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==", "dev": true, "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.28.6", - "@base-ui/utils": "0.2.6", - "@floating-ui/react-dom": "^2.1.8", - "@floating-ui/utils": "^0.2.11", - "tabbable": "^6.4.0", - "use-sync-external-store": "^1.6.0" - }, "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@types/react": "^17 || ^18 || ^19", - "react": "^17 || ^18 || ^19", - "react-dom": "^17 || ^18 || ^19" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "node": ">=18" } }, - "node_modules/@base-ui/react/node_modules/@floating-ui/react-dom": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.8.tgz", - "integrity": "sha512-cC52bHwM/n/CxS87FH0yWdngEZrjdtLW/qVruo68qg+prK7ZQ4YGdut2GyDVpoGeAYe/h899rVeOVm6Oi40k2A==", - "dev": true, + "node_modules/@cacheable/memory": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-2.0.9.tgz", + "integrity": "sha512-HdMx6DoGywB30vacDbBsITbIX4pgFqj1zsrV58jZBUw3klzkNoXhj7qOqAgledhxG7YZI5rBSJg7Zp8/VG0DuA==", "license": "MIT", + "peer": true, "dependencies": { - "@floating-ui/dom": "^1.7.6" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" + "@cacheable/utils": "^2.4.1", + "@keyv/bigmap": "^1.3.1", + "hookified": "^1.15.1", + "keyv": "^5.6.0" } }, - "node_modules/@base-ui/utils": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/@base-ui/utils/-/utils-0.2.6.tgz", - "integrity": "sha512-yQ+qeuqohwhsNpoYDqqXaLllYAkPCP4vYdDrVo8FQXaAPfHWm1pG/Vm+jmGTA5JFS0BAIjookyapuJFY8F9PIw==", - "dev": true, + "node_modules/@cacheable/memory/node_modules/@keyv/bigmap": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@keyv/bigmap/-/bigmap-1.3.1.tgz", + "integrity": "sha512-WbzE9sdmQtKy8vrNPa9BRnwZh5UF4s1KTmSK0KUVLo3eff5BlQNNWDnFOouNpKfPKDnms9xynJjsMYjMaT/aFQ==", "license": "MIT", + "peer": true, "dependencies": { - "@babel/runtime": "^7.28.6", - "@floating-ui/utils": "^0.2.11", - "reselect": "^5.1.1", - "use-sync-external-store": "^1.6.0" + "hashery": "^1.4.0", + "hookified": "^1.15.0" }, - "peerDependencies": { - "@types/react": "^17 || ^18 || ^19", - "react": "^17 || ^18 || ^19", - "react-dom": "^17 || ^18 || ^19" + "engines": { + "node": ">= 18" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "peerDependencies": { + "keyv": "^5.6.0" } }, - "node_modules/@bcoe/v8-coverage": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-1.0.2.tgz", - "integrity": "sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==", - "dev": true, + "node_modules/@cacheable/memory/node_modules/keyv": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.6.0.tgz", + "integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==", "license": "MIT", - "engines": { - "node": ">=18" + "peer": true, + "dependencies": { + "@keyv/serialize": "^1.1.1" } }, - "node_modules/@cacheable/memory": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-2.0.8.tgz", - "integrity": "sha512-FvEb29x5wVwu/Kf93IWwsOOEuhHh6dYCJF3vcKLzXc0KXIW181AOzv6ceT4ZpBHDvAfG60eqb+ekmrnLHIy+jw==", + "node_modules/@cacheable/utils": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-2.4.1.tgz", + "integrity": "sha512-eiFgzCbIneyMlLOmNG4g9xzF7Hv3Mga4LjxjcSC/ues6VYq2+gUbQI8JqNuw/ZM8tJIeIaBGpswAsqV2V7ApgA==", "license": "MIT", "peer": true, "dependencies": { - "@cacheable/utils": "^2.4.0", - "@keyv/bigmap": "^1.3.1", - "hookified": "^1.15.1", + "hashery": "^1.5.1", "keyv": "^5.6.0" } }, - "node_modules/@cacheable/utils": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-2.4.0.tgz", - "integrity": "sha512-PeMMsqjVq+bF0WBsxFBxr/WozBJiZKY0rUojuaCoIaKnEl3Ju1wfEwS+SV1DU/cSe8fqHIPiYJFif8T3MVt4cQ==", + "node_modules/@cacheable/utils/node_modules/keyv": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.6.0.tgz", + "integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==", "license": "MIT", "peer": true, "dependencies": { - "hashery": "^1.5.0", - "keyv": "^5.6.0" + "@keyv/serialize": "^1.1.1" } }, "node_modules/@changesets/apply-release-plan": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@changesets/apply-release-plan/-/apply-release-plan-7.1.0.tgz", - "integrity": "sha512-yq8ML3YS7koKQ/9bk1PqO0HMzApIFNwjlwCnwFEXMzNe8NpzeeYYKCmnhWJGkN8g7E51MnWaSbqRcTcdIxUgnQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@changesets/apply-release-plan/-/apply-release-plan-7.1.1.tgz", + "integrity": "sha512-9qPCm/rLx/xoOFXIHGB229+4GOL76S4MC+7tyOuTsR6+1jYlfFDQORdvwR5hDA6y4FL2BPt3qpbcQIS+dW85LA==", "dev": true, "license": "MIT", "dependencies": { - "@changesets/config": "^3.1.3", + "@changesets/config": "^3.1.4", "@changesets/get-version-range-type": "^0.4.0", "@changesets/git": "^3.0.4", "@changesets/should-skip-package": "^0.1.2", @@ -559,14 +571,14 @@ } }, "node_modules/@changesets/assemble-release-plan": { - "version": "6.0.9", - "resolved": "https://registry.npmjs.org/@changesets/assemble-release-plan/-/assemble-release-plan-6.0.9.tgz", - "integrity": "sha512-tPgeeqCHIwNo8sypKlS3gOPmsS3wP0zHt67JDuL20P4QcXiw/O4Hl7oXiuLnP9yg+rXLQ2sScdV1Kkzde61iSQ==", + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/@changesets/assemble-release-plan/-/assemble-release-plan-6.0.10.tgz", + "integrity": "sha512-rSDcqdJ9KbVyjpBIuCidhvZNIiVt1XaIYp73ycVQRIA5n/j6wQaEk0ChRLMUQ1vkxZe51PTQ9OIhbg6HQMW45A==", "dev": true, "license": "MIT", "dependencies": { "@changesets/errors": "^0.2.0", - "@changesets/get-dependents-graph": "^2.1.3", + "@changesets/get-dependents-graph": "^2.1.4", "@changesets/should-skip-package": "^0.1.2", "@changesets/types": "^6.1.0", "@manypkg/get-packages": "^1.1.3", @@ -584,13 +596,13 @@ } }, "node_modules/@changesets/changelog-github": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@changesets/changelog-github/-/changelog-github-0.5.2.tgz", - "integrity": "sha512-HeGeDl8HaIGj9fQHo/tv5XKQ2SNEi9+9yl1Bss1jttPqeiASRXhfi0A2wv8yFKCp07kR1gpOI5ge6+CWNm1jPw==", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@changesets/changelog-github/-/changelog-github-0.7.0.tgz", + "integrity": "sha512-rBsbRvc4TVn+FvFnOVM3LxlFJfTXXCp8gfVJ+0BubxWNSVnLuAzowi5j+IEraLLP52w8AAs9QfKbPS3MMiXQJA==", "dev": true, "license": "MIT", "dependencies": { - "@changesets/get-github-info": "^0.7.0", + "@changesets/get-github-info": "^0.8.0", "@changesets/types": "^6.1.0", "dotenv": "^8.1.0" } @@ -606,19 +618,19 @@ } }, "node_modules/@changesets/cli": { - "version": "2.30.0", - "resolved": "https://registry.npmjs.org/@changesets/cli/-/cli-2.30.0.tgz", - "integrity": "sha512-5D3Nk2JPqMI1wK25pEymeWRSlSMdo5QOGlyfrKg0AOufrUcjEE3RQgaCpHoBiM31CSNrtSgdJ0U6zL1rLDDfBA==", + "version": "2.31.0", + "resolved": "https://registry.npmjs.org/@changesets/cli/-/cli-2.31.0.tgz", + "integrity": "sha512-AhI4enNTgHu2IZr6K4WZyf0EPch4XVMn1yOMFmCD9gsfBGqMYaHXls5HyDv6/CL5axVQABz68eG30eCtbr2wFg==", "dev": true, "license": "MIT", "dependencies": { - "@changesets/apply-release-plan": "^7.1.0", - "@changesets/assemble-release-plan": "^6.0.9", + "@changesets/apply-release-plan": "^7.1.1", + "@changesets/assemble-release-plan": "^6.0.10", "@changesets/changelog-git": "^0.2.1", - "@changesets/config": "^3.1.3", + "@changesets/config": "^3.1.4", "@changesets/errors": "^0.2.0", - "@changesets/get-dependents-graph": "^2.1.3", - "@changesets/get-release-plan": "^4.0.15", + "@changesets/get-dependents-graph": "^2.1.4", + "@changesets/get-release-plan": "^4.0.16", "@changesets/git": "^3.0.4", "@changesets/logger": "^0.1.1", "@changesets/pre": "^2.0.2", @@ -644,14 +656,14 @@ } }, "node_modules/@changesets/config": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@changesets/config/-/config-3.1.3.tgz", - "integrity": "sha512-vnXjcey8YgBn2L1OPWd3ORs0bGC4LoYcK/ubpgvzNVr53JXV5GiTVj7fWdMRsoKUH7hhhMAQnsJUqLr21EncNw==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@changesets/config/-/config-3.1.4.tgz", + "integrity": "sha512-pf0bvD/v6WI2cRlZ6hzpjtZdSlXDXMAJ+Iz7xfFzV4ZxJ8OGGAON+1qYc99ZPrijnt4xp3VGG7eNvAOGS24V1Q==", "dev": true, "license": "MIT", "dependencies": { "@changesets/errors": "^0.2.0", - "@changesets/get-dependents-graph": "^2.1.3", + "@changesets/get-dependents-graph": "^2.1.4", "@changesets/logger": "^0.1.1", "@changesets/should-skip-package": "^0.1.2", "@changesets/types": "^6.1.0", @@ -671,9 +683,9 @@ } }, "node_modules/@changesets/get-dependents-graph": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@changesets/get-dependents-graph/-/get-dependents-graph-2.1.3.tgz", - "integrity": "sha512-gphr+v0mv2I3Oxt19VdWRRUxq3sseyUpX9DaHpTUmLj92Y10AGy+XOtV+kbM6L/fDcpx7/ISDFK6T8A/P3lOdQ==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@changesets/get-dependents-graph/-/get-dependents-graph-2.1.4.tgz", + "integrity": "sha512-ZsS00x6WvmHq3sQv8oCMwL0f/z3wbXCVuSVTJwCnnmbC/iBdNJGFx1EcbMG4PC6sXRyH69liM4A2WKXzn/kRPg==", "dev": true, "license": "MIT", "dependencies": { @@ -684,9 +696,9 @@ } }, "node_modules/@changesets/get-github-info": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@changesets/get-github-info/-/get-github-info-0.7.0.tgz", - "integrity": "sha512-+i67Bmhfj9V4KfDeS1+Tz3iF32btKZB2AAx+cYMqDSRFP7r3/ZdGbjCo+c6qkyViN9ygDuBjzageuPGJtKGe5A==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@changesets/get-github-info/-/get-github-info-0.8.0.tgz", + "integrity": "sha512-cRnC+xdF0JIik7coko3iUP9qbnfi1iJQ3sAa6dE+Tx3+ET8bjFEm63PA4WEohgjYcmsOikPHWzPsMWWiZmntOQ==", "dev": true, "license": "MIT", "dependencies": { @@ -695,14 +707,14 @@ } }, "node_modules/@changesets/get-release-plan": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/@changesets/get-release-plan/-/get-release-plan-4.0.15.tgz", - "integrity": "sha512-Q04ZaRPuEVZtA+auOYgFaVQQSA98dXiVe/yFaZfY7hoSmQICHGvP0TF4u3EDNHWmmCS4ekA/XSpKlSM2PyTS2g==", + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@changesets/get-release-plan/-/get-release-plan-4.0.16.tgz", + "integrity": "sha512-2K5Om6CrMPm45rtvckfzWo7e9jOVCKLCnXia5eUPaURH7/LWzri7pK1TycdzAuAtehLkW7VPbWLCSExTHmiI6g==", "dev": true, "license": "MIT", "dependencies": { - "@changesets/assemble-release-plan": "^6.0.9", - "@changesets/config": "^3.1.3", + "@changesets/assemble-release-plan": "^6.0.10", + "@changesets/config": "^3.1.4", "@changesets/pre": "^2.0.2", "@changesets/read": "^0.6.7", "@changesets/types": "^6.1.0", @@ -827,6 +839,13 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, + "node_modules/@colordx/core": { + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/@colordx/core/-/core-5.4.3.tgz", + "integrity": "sha512-kIxYSfA5T8HXjav55UaaH/o/cKivF6jCCGIb8eqtcsfI46wsvlSiT8jMDyrl779qLec3c2c2oHBZo4oAhvbjrQ==", + "dev": true, + "license": "MIT" + }, "node_modules/@colors/colors": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", @@ -837,13 +856,13 @@ } }, "node_modules/@cspell/cspell-types": { - "version": "9.7.0", - "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-9.7.0.tgz", - "integrity": "sha512-Tdfx4eH2uS+gv9V9NCr3Rz+c7RSS6ntXp3Blliud18ibRUlRxO9dTaOjG4iv4x0nAmMeedP1ORkEpeXSkh2QiQ==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-10.0.1.tgz", + "integrity": "sha512-kLgLShnWADDVreKC63pBrWkcvxgZzFIfO34Jhx/SWfuOIA3cD8AXT+HjyuLfoGJ7mUb58hv2kUziKzEy4INb1w==", "dev": true, "license": "MIT", "engines": { - "node": ">=20" + "node": ">=22.18.0" } }, "node_modules/@csstools/color-helpers": { @@ -889,9 +908,9 @@ } }, "node_modules/@csstools/css-syntax-patches-for-csstree": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.1.tgz", - "integrity": "sha512-BvqN0AMWNAnLk9G8jnUT77D+mUbY/H2b3uDTvg2isJkHaOufUE2R3AOwxWo7VBQKT1lOdwdvorddo2B/lk64+w==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.5.tgz", + "integrity": "sha512-oNjBvzLq2GPZtJphCjLqXow/cHySHSgtxvKZb7OqSZ/xHgw6NWNhfad+6AB9cLeVm6eA9d/qMll3JdEHjy6M+A==", "funding": [ { "type": "github", @@ -958,9 +977,9 @@ } }, "node_modules/@csstools/postcss-alpha-function": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@csstools/postcss-alpha-function/-/postcss-alpha-function-2.0.3.tgz", - "integrity": "sha512-8GqzD3JnfpKJSVxPIC0KadyAfB5VRzPZdv7XQ4zvK1q0ku+uHVUAS2N/IDavQkW40gkuUci64O0ea6QB/zgCSw==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@csstools/postcss-alpha-function/-/postcss-alpha-function-2.0.6.tgz", + "integrity": "sha512-XaMnJJqqZv4veulLELvM+5caEMcLTsFyqTrkwGKPMF+UbiM7dlQoe4K46EnwfSJIvnm91K1ZXsZSd3OuJ04p9w==", "funding": [ { "type": "github", @@ -973,10 +992,10 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^4.0.2", + "@csstools/css-color-parser": "^4.1.7", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", - "@csstools/postcss-progressive-custom-properties": "^5.0.0", + "@csstools/postcss-progressive-custom-properties": "^5.1.0", "@csstools/utilities": "^3.0.0" }, "engines": { @@ -987,9 +1006,9 @@ } }, "node_modules/@csstools/postcss-alpha-function/node_modules/@csstools/css-calc": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.1.1.tgz", - "integrity": "sha512-HJ26Z/vmsZQqs/o3a6bgKslXGFAungXGbinULZO3eMsOyNJHeBBZfup5FiZInOghgoM4Hwnmw+OgbJCNg1wwUQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.1.tgz", + "integrity": "sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==", "funding": [ { "type": "github", @@ -1010,9 +1029,9 @@ } }, "node_modules/@csstools/postcss-alpha-function/node_modules/@csstools/css-color-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.0.2.tgz", - "integrity": "sha512-0GEfbBLmTFf0dJlpsNU7zwxRIH0/BGEMuXLTCvFYxuL1tNhqzTbtnFICyJLTNK4a+RechKP75e7w42ClXSnJQw==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.7.tgz", + "integrity": "sha512-CmjJFQTFQx/U/xNJhSjCQ0ilpesPmNQ8+eOUeM/+kDOVW33qsIjeOXc27vrQDdWVkf83ZSWwtg7kXSUvKDJ8cQ==", "funding": [ { "type": "github", @@ -1026,7 +1045,7 @@ "license": "MIT", "dependencies": { "@csstools/color-helpers": "^6.0.2", - "@csstools/css-calc": "^3.1.1" + "@csstools/css-calc": "^3.2.1" }, "engines": { "node": ">=20.19.0" @@ -1126,9 +1145,9 @@ } }, "node_modules/@csstools/postcss-cascade-layers/node_modules/postcss-selector-parser": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", - "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz", + "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==", "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -1139,9 +1158,9 @@ } }, "node_modules/@csstools/postcss-color-function": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-5.0.2.tgz", - "integrity": "sha512-CjBdFemUFcAh3087MEJhZcO+QT1b8S75agysa1rU9TEC1YecznzwV+jpMxUc0JRBEV4ET2PjLssqmndR9IygeA==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-5.0.5.tgz", + "integrity": "sha512-s+9fU1+sZazUNk0WyKShlfmTLC0fosxNY5x7DiD637xXbZLX2lyce23QrdRhytP3Ja1G77qUk6cRD37N1gemdQ==", "funding": [ { "type": "github", @@ -1154,10 +1173,10 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^4.0.2", + "@csstools/css-color-parser": "^4.1.7", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", - "@csstools/postcss-progressive-custom-properties": "^5.0.0", + "@csstools/postcss-progressive-custom-properties": "^5.1.0", "@csstools/utilities": "^3.0.0" }, "engines": { @@ -1168,9 +1187,9 @@ } }, "node_modules/@csstools/postcss-color-function-display-p3-linear": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function-display-p3-linear/-/postcss-color-function-display-p3-linear-2.0.2.tgz", - "integrity": "sha512-TWUwSe1+2KdYGGWTx5LR4JQN07vKHAeSho+bGYRgow+9cs3dqgOqS1f/a1odiX30ESmZvwIudJ86wzeiDR6UGg==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function-display-p3-linear/-/postcss-color-function-display-p3-linear-2.0.5.tgz", + "integrity": "sha512-YzY5qI0S/CsvqvMSiDn85ZyTCRLdnywxQn+6Fv8AU17aCE/fjcor54OSdVb/HlABBTcBq+d8NlWcLz11Bmo2mQ==", "funding": [ { "type": "github", @@ -1183,10 +1202,10 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^4.0.2", + "@csstools/css-color-parser": "^4.1.7", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", - "@csstools/postcss-progressive-custom-properties": "^5.0.0", + "@csstools/postcss-progressive-custom-properties": "^5.1.0", "@csstools/utilities": "^3.0.0" }, "engines": { @@ -1197,9 +1216,9 @@ } }, "node_modules/@csstools/postcss-color-function-display-p3-linear/node_modules/@csstools/css-calc": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.1.1.tgz", - "integrity": "sha512-HJ26Z/vmsZQqs/o3a6bgKslXGFAungXGbinULZO3eMsOyNJHeBBZfup5FiZInOghgoM4Hwnmw+OgbJCNg1wwUQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.1.tgz", + "integrity": "sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==", "funding": [ { "type": "github", @@ -1220,9 +1239,9 @@ } }, "node_modules/@csstools/postcss-color-function-display-p3-linear/node_modules/@csstools/css-color-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.0.2.tgz", - "integrity": "sha512-0GEfbBLmTFf0dJlpsNU7zwxRIH0/BGEMuXLTCvFYxuL1tNhqzTbtnFICyJLTNK4a+RechKP75e7w42ClXSnJQw==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.7.tgz", + "integrity": "sha512-CmjJFQTFQx/U/xNJhSjCQ0ilpesPmNQ8+eOUeM/+kDOVW33qsIjeOXc27vrQDdWVkf83ZSWwtg7kXSUvKDJ8cQ==", "funding": [ { "type": "github", @@ -1236,7 +1255,7 @@ "license": "MIT", "dependencies": { "@csstools/color-helpers": "^6.0.2", - "@csstools/css-calc": "^3.1.1" + "@csstools/css-calc": "^3.2.1" }, "engines": { "node": ">=20.19.0" @@ -1288,9 +1307,9 @@ } }, "node_modules/@csstools/postcss-color-function/node_modules/@csstools/css-calc": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.1.1.tgz", - "integrity": "sha512-HJ26Z/vmsZQqs/o3a6bgKslXGFAungXGbinULZO3eMsOyNJHeBBZfup5FiZInOghgoM4Hwnmw+OgbJCNg1wwUQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.1.tgz", + "integrity": "sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==", "funding": [ { "type": "github", @@ -1311,9 +1330,9 @@ } }, "node_modules/@csstools/postcss-color-function/node_modules/@csstools/css-color-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.0.2.tgz", - "integrity": "sha512-0GEfbBLmTFf0dJlpsNU7zwxRIH0/BGEMuXLTCvFYxuL1tNhqzTbtnFICyJLTNK4a+RechKP75e7w42ClXSnJQw==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.7.tgz", + "integrity": "sha512-CmjJFQTFQx/U/xNJhSjCQ0ilpesPmNQ8+eOUeM/+kDOVW33qsIjeOXc27vrQDdWVkf83ZSWwtg7kXSUvKDJ8cQ==", "funding": [ { "type": "github", @@ -1327,7 +1346,7 @@ "license": "MIT", "dependencies": { "@csstools/color-helpers": "^6.0.2", - "@csstools/css-calc": "^3.1.1" + "@csstools/css-calc": "^3.2.1" }, "engines": { "node": ">=20.19.0" @@ -1379,9 +1398,9 @@ } }, "node_modules/@csstools/postcss-color-mix-function": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-4.0.2.tgz", - "integrity": "sha512-PFKQKswFqZrYKpajZsP4lhqjU/6+J5PTOWq1rKiFnniKsf4LgpGXrgHS/C6nn5Rc51LX0n4dWOWqY5ZN2i5IjA==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-4.0.5.tgz", + "integrity": "sha512-eBrrzTKudOlDl2XOJzW/pzHPIkC8tGkcGpNiFO/vmevb08U1huYEINhlxr8iz4OzSqs1GtiJx4d2v5iHFOZjNw==", "funding": [ { "type": "github", @@ -1394,10 +1413,10 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^4.0.2", + "@csstools/css-color-parser": "^4.1.7", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", - "@csstools/postcss-progressive-custom-properties": "^5.0.0", + "@csstools/postcss-progressive-custom-properties": "^5.1.0", "@csstools/utilities": "^3.0.0" }, "engines": { @@ -1408,9 +1427,9 @@ } }, "node_modules/@csstools/postcss-color-mix-function/node_modules/@csstools/css-calc": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.1.1.tgz", - "integrity": "sha512-HJ26Z/vmsZQqs/o3a6bgKslXGFAungXGbinULZO3eMsOyNJHeBBZfup5FiZInOghgoM4Hwnmw+OgbJCNg1wwUQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.1.tgz", + "integrity": "sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==", "funding": [ { "type": "github", @@ -1431,9 +1450,9 @@ } }, "node_modules/@csstools/postcss-color-mix-function/node_modules/@csstools/css-color-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.0.2.tgz", - "integrity": "sha512-0GEfbBLmTFf0dJlpsNU7zwxRIH0/BGEMuXLTCvFYxuL1tNhqzTbtnFICyJLTNK4a+RechKP75e7w42ClXSnJQw==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.7.tgz", + "integrity": "sha512-CmjJFQTFQx/U/xNJhSjCQ0ilpesPmNQ8+eOUeM/+kDOVW33qsIjeOXc27vrQDdWVkf83ZSWwtg7kXSUvKDJ8cQ==", "funding": [ { "type": "github", @@ -1447,7 +1466,7 @@ "license": "MIT", "dependencies": { "@csstools/color-helpers": "^6.0.2", - "@csstools/css-calc": "^3.1.1" + "@csstools/css-calc": "^3.2.1" }, "engines": { "node": ">=20.19.0" @@ -1499,9 +1518,9 @@ } }, "node_modules/@csstools/postcss-color-mix-variadic-function-arguments": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-variadic-function-arguments/-/postcss-color-mix-variadic-function-arguments-2.0.2.tgz", - "integrity": "sha512-zEchsghpDH/6SytyjKu9TIPm4hiiWcur102cENl54cyIwTZsa+2MBJl/vtyALZ+uQ17h27L4waD+0Ow96sgZow==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-variadic-function-arguments/-/postcss-color-mix-variadic-function-arguments-2.0.5.tgz", + "integrity": "sha512-O4tE1hZXfEAbTP1IC2R857KjPCLNtpsFUqY2dqgycF/3M6GuFyJI20EWwkxVZzlSFvWdIcNppwRf9pxPFn0qnA==", "funding": [ { "type": "github", @@ -1514,10 +1533,10 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^4.0.2", + "@csstools/css-color-parser": "^4.1.7", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", - "@csstools/postcss-progressive-custom-properties": "^5.0.0", + "@csstools/postcss-progressive-custom-properties": "^5.1.0", "@csstools/utilities": "^3.0.0" }, "engines": { @@ -1528,9 +1547,9 @@ } }, "node_modules/@csstools/postcss-color-mix-variadic-function-arguments/node_modules/@csstools/css-calc": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.1.1.tgz", - "integrity": "sha512-HJ26Z/vmsZQqs/o3a6bgKslXGFAungXGbinULZO3eMsOyNJHeBBZfup5FiZInOghgoM4Hwnmw+OgbJCNg1wwUQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.1.tgz", + "integrity": "sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==", "funding": [ { "type": "github", @@ -1551,9 +1570,9 @@ } }, "node_modules/@csstools/postcss-color-mix-variadic-function-arguments/node_modules/@csstools/css-color-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.0.2.tgz", - "integrity": "sha512-0GEfbBLmTFf0dJlpsNU7zwxRIH0/BGEMuXLTCvFYxuL1tNhqzTbtnFICyJLTNK4a+RechKP75e7w42ClXSnJQw==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.7.tgz", + "integrity": "sha512-CmjJFQTFQx/U/xNJhSjCQ0ilpesPmNQ8+eOUeM/+kDOVW33qsIjeOXc27vrQDdWVkf83ZSWwtg7kXSUvKDJ8cQ==", "funding": [ { "type": "github", @@ -1567,7 +1586,7 @@ "license": "MIT", "dependencies": { "@csstools/color-helpers": "^6.0.2", - "@csstools/css-calc": "^3.1.1" + "@csstools/css-calc": "^3.2.1" }, "engines": { "node": ">=20.19.0" @@ -1618,10 +1637,77 @@ "node": ">=20.19.0" } }, + "node_modules/@csstools/postcss-container-rule-prelude-list": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-container-rule-prelude-list/-/postcss-container-rule-prelude-list-1.0.1.tgz", + "integrity": "sha512-c5qlevVGKHU+zDbVoUGSZl1Mw7Vl1gVRKv6cdIYnaoyM+9Ou23Ian0H5Gr2ZF+lsDWovPK03hOSAbkw6HS8aTg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-parser-algorithms": "^4.0.0", + "@csstools/css-tokenizer": "^4.0.0" + }, + "engines": { + "node": ">=20.19.0" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-container-rule-prelude-list/node_modules/@csstools/css-parser-algorithms": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-4.0.0.tgz", + "integrity": "sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=20.19.0" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^4.0.0" + } + }, + "node_modules/@csstools/postcss-container-rule-prelude-list/node_modules/@csstools/css-tokenizer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-4.0.0.tgz", + "integrity": "sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=20.19.0" + } + }, "node_modules/@csstools/postcss-content-alt-text": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-3.0.0.tgz", - "integrity": "sha512-OHa+4aCcrJtHpPWB3zptScHwpS1TUbeLR4uO0ntIz0Su/zw9SoWkVu+tDMSySSAsNtNSI3kut4fTliFwIsrHxA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-3.0.1.tgz", + "integrity": "sha512-mK5lCgzgV/ZC+LgnFy4rAQVMcXR6HsnX3D1+4Q5gshSQsst5TtcvHbxTdzKy1XTv09sNZHJX8CO4CEQF9zA4ug==", "funding": [ { "type": "github", @@ -1636,7 +1722,7 @@ "dependencies": { "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", - "@csstools/postcss-progressive-custom-properties": "^5.0.0", + "@csstools/postcss-progressive-custom-properties": "^5.1.0", "@csstools/utilities": "^3.0.0" }, "engines": { @@ -1688,9 +1774,9 @@ } }, "node_modules/@csstools/postcss-contrast-color-function": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-contrast-color-function/-/postcss-contrast-color-function-3.0.2.tgz", - "integrity": "sha512-fwOz/m+ytFPz4aIph2foQS9nEDOdOjYcN5bgwbGR2jGUV8mYaeD/EaTVMHTRb/zqB65y2qNwmcFcE6VQty69Pw==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@csstools/postcss-contrast-color-function/-/postcss-contrast-color-function-3.0.5.tgz", + "integrity": "sha512-gfdTZ4a5ioL2zM/yN2FqExy6rql+6egkI5sDuK9MvrbfrVJMzB0OjiCkboT5UprU/P0JwfTiIutW1ZSyqK4Icw==", "funding": [ { "type": "github", @@ -1703,10 +1789,10 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^4.0.2", + "@csstools/css-color-parser": "^4.1.7", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", - "@csstools/postcss-progressive-custom-properties": "^5.0.0", + "@csstools/postcss-progressive-custom-properties": "^5.1.0", "@csstools/utilities": "^3.0.0" }, "engines": { @@ -1717,9 +1803,9 @@ } }, "node_modules/@csstools/postcss-contrast-color-function/node_modules/@csstools/css-calc": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.1.1.tgz", - "integrity": "sha512-HJ26Z/vmsZQqs/o3a6bgKslXGFAungXGbinULZO3eMsOyNJHeBBZfup5FiZInOghgoM4Hwnmw+OgbJCNg1wwUQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.1.tgz", + "integrity": "sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==", "funding": [ { "type": "github", @@ -1740,9 +1826,9 @@ } }, "node_modules/@csstools/postcss-contrast-color-function/node_modules/@csstools/css-color-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.0.2.tgz", - "integrity": "sha512-0GEfbBLmTFf0dJlpsNU7zwxRIH0/BGEMuXLTCvFYxuL1tNhqzTbtnFICyJLTNK4a+RechKP75e7w42ClXSnJQw==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.7.tgz", + "integrity": "sha512-CmjJFQTFQx/U/xNJhSjCQ0ilpesPmNQ8+eOUeM/+kDOVW33qsIjeOXc27vrQDdWVkf83ZSWwtg7kXSUvKDJ8cQ==", "funding": [ { "type": "github", @@ -1756,7 +1842,7 @@ "license": "MIT", "dependencies": { "@csstools/color-helpers": "^6.0.2", - "@csstools/css-calc": "^3.1.1" + "@csstools/css-calc": "^3.2.1" }, "engines": { "node": ">=20.19.0" @@ -1808,9 +1894,9 @@ } }, "node_modules/@csstools/postcss-exponential-functions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-3.0.1.tgz", - "integrity": "sha512-WHJ52Uk0AVUIICEYRY9xFHJZAuq0ZVg0f8xzqUN2zRFrZvGgRPpFwxK7h9FWvqKIOueOwN6hnJD23A8FwsUiVw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-3.0.3.tgz", + "integrity": "sha512-mB/NoeHLBHh0LZiVSrFdRDA/NxSfmg4tSN9117IJH9bdC2BzSTVgc82h3Gu/sdBXay6kDH2sA7fbkTigMiEi2A==", "funding": [ { "type": "github", @@ -1823,7 +1909,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-calc": "^3.1.1", + "@csstools/css-calc": "^3.2.1", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0" }, @@ -1835,9 +1921,9 @@ } }, "node_modules/@csstools/postcss-exponential-functions/node_modules/@csstools/css-calc": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.1.1.tgz", - "integrity": "sha512-HJ26Z/vmsZQqs/o3a6bgKslXGFAungXGbinULZO3eMsOyNJHeBBZfup5FiZInOghgoM4Hwnmw+OgbJCNg1wwUQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.1.tgz", + "integrity": "sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==", "funding": [ { "type": "github", @@ -1950,9 +2036,9 @@ } }, "node_modules/@csstools/postcss-gamut-mapping": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-3.0.2.tgz", - "integrity": "sha512-IrXAW3KQ3Sxm29C3/4mYQ/iA0Q5OH9YFOPQ2w24iIlXpD06A9MHvmQapP2vAGtQI3tlp2Xw5LIdm9F8khARfOA==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-3.0.5.tgz", + "integrity": "sha512-X6XkKkR9R8KyJey9n1ryEzzfX6WpihPz/JBsyIVvxAlztQcMjMA7I9mMybWVv3ZyRMC+0+H7RlIUe85vZkasNQ==", "funding": [ { "type": "github", @@ -1965,7 +2051,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^4.0.2", + "@csstools/css-color-parser": "^4.1.7", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0" }, @@ -1977,9 +2063,9 @@ } }, "node_modules/@csstools/postcss-gamut-mapping/node_modules/@csstools/css-calc": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.1.1.tgz", - "integrity": "sha512-HJ26Z/vmsZQqs/o3a6bgKslXGFAungXGbinULZO3eMsOyNJHeBBZfup5FiZInOghgoM4Hwnmw+OgbJCNg1wwUQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.1.tgz", + "integrity": "sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==", "funding": [ { "type": "github", @@ -2000,9 +2086,9 @@ } }, "node_modules/@csstools/postcss-gamut-mapping/node_modules/@csstools/css-color-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.0.2.tgz", - "integrity": "sha512-0GEfbBLmTFf0dJlpsNU7zwxRIH0/BGEMuXLTCvFYxuL1tNhqzTbtnFICyJLTNK4a+RechKP75e7w42ClXSnJQw==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.7.tgz", + "integrity": "sha512-CmjJFQTFQx/U/xNJhSjCQ0ilpesPmNQ8+eOUeM/+kDOVW33qsIjeOXc27vrQDdWVkf83ZSWwtg7kXSUvKDJ8cQ==", "funding": [ { "type": "github", @@ -2016,7 +2102,7 @@ "license": "MIT", "dependencies": { "@csstools/color-helpers": "^6.0.2", - "@csstools/css-calc": "^3.1.1" + "@csstools/css-calc": "^3.2.1" }, "engines": { "node": ">=20.19.0" @@ -2068,9 +2154,9 @@ } }, "node_modules/@csstools/postcss-gradients-interpolation-method": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-6.0.2.tgz", - "integrity": "sha512-saQHvD1PD/zCdn+kxCWCcQOdXZBljr8L6BKlCLs0w8GXYfo3SHdWL1HZQ+I1hVCPlU+MJPJJbZJjG/jHRJSlAw==", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-6.0.5.tgz", + "integrity": "sha512-wXiZI6bLRAGcw7XuzsqqPnTVNrHFkHTkcymK2su+ynJjemfCdpCD9HdG+ICikPqtQ782r6LSZdyC3cDhSQqF3Q==", "funding": [ { "type": "github", @@ -2083,10 +2169,10 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^4.0.2", + "@csstools/css-color-parser": "^4.1.7", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", - "@csstools/postcss-progressive-custom-properties": "^5.0.0", + "@csstools/postcss-progressive-custom-properties": "^5.1.0", "@csstools/utilities": "^3.0.0" }, "engines": { @@ -2097,9 +2183,9 @@ } }, "node_modules/@csstools/postcss-gradients-interpolation-method/node_modules/@csstools/css-calc": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.1.1.tgz", - "integrity": "sha512-HJ26Z/vmsZQqs/o3a6bgKslXGFAungXGbinULZO3eMsOyNJHeBBZfup5FiZInOghgoM4Hwnmw+OgbJCNg1wwUQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.1.tgz", + "integrity": "sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==", "funding": [ { "type": "github", @@ -2120,9 +2206,9 @@ } }, "node_modules/@csstools/postcss-gradients-interpolation-method/node_modules/@csstools/css-color-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.0.2.tgz", - "integrity": "sha512-0GEfbBLmTFf0dJlpsNU7zwxRIH0/BGEMuXLTCvFYxuL1tNhqzTbtnFICyJLTNK4a+RechKP75e7w42ClXSnJQw==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.7.tgz", + "integrity": "sha512-CmjJFQTFQx/U/xNJhSjCQ0ilpesPmNQ8+eOUeM/+kDOVW33qsIjeOXc27vrQDdWVkf83ZSWwtg7kXSUvKDJ8cQ==", "funding": [ { "type": "github", @@ -2136,7 +2222,7 @@ "license": "MIT", "dependencies": { "@csstools/color-helpers": "^6.0.2", - "@csstools/css-calc": "^3.1.1" + "@csstools/css-calc": "^3.2.1" }, "engines": { "node": ">=20.19.0" @@ -2188,9 +2274,9 @@ } }, "node_modules/@csstools/postcss-hwb-function": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-5.0.2.tgz", - "integrity": "sha512-ChR0+pKc/2cs900jakiv8dLrb69aez5P3T+g+wfJx1j6mreAe8orKTiMrVBk+DZvCRqpdOA2m8VoFms64A3Dew==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-5.0.5.tgz", + "integrity": "sha512-HeJOXAMr1nYHZ7gJT1+6d899X9Y+5qJcpbLJ8WzhujQOIB4oqbzeP3769sd1xl3eH4qbasxtewxr4crs08SEQw==", "funding": [ { "type": "github", @@ -2203,10 +2289,10 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^4.0.2", + "@csstools/css-color-parser": "^4.1.7", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", - "@csstools/postcss-progressive-custom-properties": "^5.0.0", + "@csstools/postcss-progressive-custom-properties": "^5.1.0", "@csstools/utilities": "^3.0.0" }, "engines": { @@ -2217,9 +2303,9 @@ } }, "node_modules/@csstools/postcss-hwb-function/node_modules/@csstools/css-calc": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.1.1.tgz", - "integrity": "sha512-HJ26Z/vmsZQqs/o3a6bgKslXGFAungXGbinULZO3eMsOyNJHeBBZfup5FiZInOghgoM4Hwnmw+OgbJCNg1wwUQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.1.tgz", + "integrity": "sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==", "funding": [ { "type": "github", @@ -2240,9 +2326,9 @@ } }, "node_modules/@csstools/postcss-hwb-function/node_modules/@csstools/css-color-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.0.2.tgz", - "integrity": "sha512-0GEfbBLmTFf0dJlpsNU7zwxRIH0/BGEMuXLTCvFYxuL1tNhqzTbtnFICyJLTNK4a+RechKP75e7w42ClXSnJQw==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.7.tgz", + "integrity": "sha512-CmjJFQTFQx/U/xNJhSjCQ0ilpesPmNQ8+eOUeM/+kDOVW33qsIjeOXc27vrQDdWVkf83ZSWwtg7kXSUvKDJ8cQ==", "funding": [ { "type": "github", @@ -2256,7 +2342,7 @@ "license": "MIT", "dependencies": { "@csstools/color-helpers": "^6.0.2", - "@csstools/css-calc": "^3.1.1" + "@csstools/css-calc": "^3.2.1" }, "engines": { "node": ">=20.19.0" @@ -2308,9 +2394,9 @@ } }, "node_modules/@csstools/postcss-ic-unit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-5.0.0.tgz", - "integrity": "sha512-/ws5d6c4uKqfM9zIL3ugcGI+3fvZEOOkJHNzAyTAGJIdZ+aSL9BVPNlHGV4QzmL0vqBSCOdU3+rhcMEj3+KzYw==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-5.0.1.tgz", + "integrity": "sha512-jmsVLXPdMBTlaJAhiEijhIR3qL0j75MrlRfhJEs91DF1Wlt2kpJTDsbpXQpYFzn1nPFHZC/WEf+Mw0I/HXkHzQ==", "funding": [ { "type": "github", @@ -2323,7 +2409,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^5.0.0", + "@csstools/postcss-progressive-custom-properties": "^5.1.0", "@csstools/utilities": "^3.0.0", "postcss-value-parser": "^4.2.0" }, @@ -2334,6 +2420,75 @@ "postcss": "^8.4" } }, + "node_modules/@csstools/postcss-image-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-image-function/-/postcss-image-function-1.0.0.tgz", + "integrity": "sha512-iuQztV6Cfeuc7NczazfickrzEhALOpxUS0yWgGkmRY1zZ0CKjBBFc/7WWSN9qupfpNAzHY7cPNcJCqUhtr+YMw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-parser-algorithms": "^4.0.0", + "@csstools/css-tokenizer": "^4.0.0", + "@csstools/postcss-progressive-custom-properties": "^5.1.0", + "@csstools/utilities": "^3.0.0" + }, + "engines": { + "node": ">=20.19.0" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-image-function/node_modules/@csstools/css-parser-algorithms": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-4.0.0.tgz", + "integrity": "sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=20.19.0" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^4.0.0" + } + }, + "node_modules/@csstools/postcss-image-function/node_modules/@csstools/css-tokenizer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-4.0.0.tgz", + "integrity": "sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=20.19.0" + } + }, "node_modules/@csstools/postcss-initial": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@csstools/postcss-initial/-/postcss-initial-3.0.0.tgz", @@ -2405,9 +2560,9 @@ } }, "node_modules/@csstools/postcss-is-pseudo-class/node_modules/postcss-selector-parser": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", - "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz", + "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==", "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -2418,9 +2573,9 @@ } }, "node_modules/@csstools/postcss-light-dark-function": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-3.0.0.tgz", - "integrity": "sha512-s++V5/hYazeRUCYIn2lsBVzUsxdeC46gtwpgW6lu5U/GlPOS5UTDT14kkEyPgXmFbCvaWLREqV7YTMJq1K3G6w==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-3.0.1.tgz", + "integrity": "sha512-tD2MMJmZ6XXCHgDythLHcXQDNi5z7KEEWPe7JeB3vPcw+YMuMabpW5ugRqndhIrui+vduhc0Md7f7yGPCmOErg==", "funding": [ { "type": "github", @@ -2435,7 +2590,7 @@ "dependencies": { "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", - "@csstools/postcss-progressive-custom-properties": "^5.0.0", + "@csstools/postcss-progressive-custom-properties": "^5.1.0", "@csstools/utilities": "^3.0.0" }, "engines": { @@ -2623,9 +2778,9 @@ } }, "node_modules/@csstools/postcss-media-minmax": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-3.0.1.tgz", - "integrity": "sha512-I+CrmZt23fyejMItpLQFOg9gPXkDBBDjTqRT0UxCTZlYZfGrzZn4z+2kbXLRwDfR59OK8zaf26M4kwYwG0e1MA==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-3.0.3.tgz", + "integrity": "sha512-ch1tNS+1QayiHTGsyc53zv3AzrSd0zigjbkfLxoeuzzJyn32+P3V7em3u5vLVnqLMzBbEZK//GI13EVTIPRdDA==", "funding": [ { "type": "github", @@ -2638,7 +2793,7 @@ ], "license": "MIT", "dependencies": { - "@csstools/css-calc": "^3.1.1", + "@csstools/css-calc": "^3.2.1", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", "@csstools/media-query-list-parser": "^5.0.0" @@ -2651,9 +2806,9 @@ } }, "node_modules/@csstools/postcss-media-minmax/node_modules/@csstools/css-calc": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.1.1.tgz", - "integrity": "sha512-HJ26Z/vmsZQqs/o3a6bgKslXGFAungXGbinULZO3eMsOyNJHeBBZfup5FiZInOghgoM4Hwnmw+OgbJCNg1wwUQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.1.tgz", + "integrity": "sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==", "funding": [ { "type": "github", @@ -2947,9 +3102,9 @@ } }, "node_modules/@csstools/postcss-oklab-function": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-5.0.2.tgz", - "integrity": "sha512-3d/Wcnp2uW6Io0Tajl0croeUo46gwOVQI9N32PjA/HVQo6z1iL7yp19Gp+6e5E5CDKGpW7U822MsDVo2XK1z0Q==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-5.0.5.tgz", + "integrity": "sha512-A+Nkzj2ODvQboM5FlqEcp0iqilyVo78f9FMx/3cHrRrEBqCymSXvf8sa1cTY54lJoUVI3Sn9XysgvYaVIAuIYg==", "funding": [ { "type": "github", @@ -2962,10 +3117,10 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^4.0.2", + "@csstools/css-color-parser": "^4.1.7", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", - "@csstools/postcss-progressive-custom-properties": "^5.0.0", + "@csstools/postcss-progressive-custom-properties": "^5.1.0", "@csstools/utilities": "^3.0.0" }, "engines": { @@ -2976,9 +3131,9 @@ } }, "node_modules/@csstools/postcss-oklab-function/node_modules/@csstools/css-calc": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.1.1.tgz", - "integrity": "sha512-HJ26Z/vmsZQqs/o3a6bgKslXGFAungXGbinULZO3eMsOyNJHeBBZfup5FiZInOghgoM4Hwnmw+OgbJCNg1wwUQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.1.tgz", + "integrity": "sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==", "funding": [ { "type": "github", @@ -2999,9 +3154,9 @@ } }, "node_modules/@csstools/postcss-oklab-function/node_modules/@csstools/css-color-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.0.2.tgz", - "integrity": "sha512-0GEfbBLmTFf0dJlpsNU7zwxRIH0/BGEMuXLTCvFYxuL1tNhqzTbtnFICyJLTNK4a+RechKP75e7w42ClXSnJQw==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.7.tgz", + "integrity": "sha512-CmjJFQTFQx/U/xNJhSjCQ0ilpesPmNQ8+eOUeM/+kDOVW33qsIjeOXc27vrQDdWVkf83ZSWwtg7kXSUvKDJ8cQ==", "funding": [ { "type": "github", @@ -3015,7 +3170,7 @@ "license": "MIT", "dependencies": { "@csstools/color-helpers": "^6.0.2", - "@csstools/css-calc": "^3.1.1" + "@csstools/css-calc": "^3.2.1" }, "engines": { "node": ">=20.19.0" @@ -3089,9 +3244,9 @@ } }, "node_modules/@csstools/postcss-progressive-custom-properties": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-5.0.0.tgz", - "integrity": "sha512-NsJoZ89rxmDrUsITf8QIk5w+lQZQ8Xw5K6cLFG+cfiffsLYHb3zcbOOrHLetGl1WIhjWWQ4Cr8MMrg46Q+oACg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-5.1.0.tgz", + "integrity": "sha512-lt/4yHy2GdKcGVpK4OGhBdSIq+z2PXynSusSRggn/T4y7uFurYAhdHqo/aYM+xI37vNb8rJlEKchqKKvVCXROQ==", "funding": [ { "type": "github", @@ -3181,9 +3336,9 @@ } }, "node_modules/@csstools/postcss-random-function": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-random-function/-/postcss-random-function-3.0.1.tgz", - "integrity": "sha512-SvKGfmj+WHfn4bWHaBYlkXDyU3SlA3fL8aaYZ8Op6M8tunNf3iV9uZyZZGWMCbDw0sGeoTmYZW9nmKN8Qi/ctg==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@csstools/postcss-random-function/-/postcss-random-function-3.0.3.tgz", + "integrity": "sha512-0EScyKxscGonwpi30Hj9DEAr0X8D2eDhOqqayQXE91gIqGli9UT+deLYqoogZLOy5GT+ncqltMqztc/q+0UkhA==", "funding": [ { "type": "github", @@ -3196,7 +3351,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-calc": "^3.1.1", + "@csstools/css-calc": "^3.2.1", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0" }, @@ -3208,9 +3363,9 @@ } }, "node_modules/@csstools/postcss-random-function/node_modules/@csstools/css-calc": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.1.1.tgz", - "integrity": "sha512-HJ26Z/vmsZQqs/o3a6bgKslXGFAungXGbinULZO3eMsOyNJHeBBZfup5FiZInOghgoM4Hwnmw+OgbJCNg1wwUQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.1.tgz", + "integrity": "sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==", "funding": [ { "type": "github", @@ -3272,9 +3427,9 @@ } }, "node_modules/@csstools/postcss-relative-color-syntax": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-4.0.2.tgz", - "integrity": "sha512-HaMN+qMURinllszbps2AhXKaLeibg/2VW6FriYDrqE58ji82+z2S3/eLloywVOY8BQCJ9lZMdy6TcRQNbn9u3w==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-4.0.5.tgz", + "integrity": "sha512-kBzf+LIm824cpjsZPhNtl/2N1KK+TXnxy8Kce4y+pEAQSrxhpX6WDUg54wjdHBGx2UZUXKBnlaUOsc71sSRDvg==", "funding": [ { "type": "github", @@ -3287,10 +3442,10 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^4.0.2", + "@csstools/css-color-parser": "^4.1.7", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", - "@csstools/postcss-progressive-custom-properties": "^5.0.0", + "@csstools/postcss-progressive-custom-properties": "^5.1.0", "@csstools/utilities": "^3.0.0" }, "engines": { @@ -3301,9 +3456,9 @@ } }, "node_modules/@csstools/postcss-relative-color-syntax/node_modules/@csstools/css-calc": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.1.1.tgz", - "integrity": "sha512-HJ26Z/vmsZQqs/o3a6bgKslXGFAungXGbinULZO3eMsOyNJHeBBZfup5FiZInOghgoM4Hwnmw+OgbJCNg1wwUQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.1.tgz", + "integrity": "sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==", "funding": [ { "type": "github", @@ -3324,9 +3479,9 @@ } }, "node_modules/@csstools/postcss-relative-color-syntax/node_modules/@csstools/css-color-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.0.2.tgz", - "integrity": "sha512-0GEfbBLmTFf0dJlpsNU7zwxRIH0/BGEMuXLTCvFYxuL1tNhqzTbtnFICyJLTNK4a+RechKP75e7w42ClXSnJQw==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.7.tgz", + "integrity": "sha512-CmjJFQTFQx/U/xNJhSjCQ0ilpesPmNQ8+eOUeM/+kDOVW33qsIjeOXc27vrQDdWVkf83ZSWwtg7kXSUvKDJ8cQ==", "funding": [ { "type": "github", @@ -3340,7 +3495,7 @@ "license": "MIT", "dependencies": { "@csstools/color-helpers": "^6.0.2", - "@csstools/css-calc": "^3.1.1" + "@csstools/css-calc": "^3.2.1" }, "engines": { "node": ">=20.19.0" @@ -3417,9 +3572,9 @@ } }, "node_modules/@csstools/postcss-scope-pseudo-class/node_modules/postcss-selector-parser": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", - "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz", + "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==", "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -3430,9 +3585,9 @@ } }, "node_modules/@csstools/postcss-sign-functions": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-sign-functions/-/postcss-sign-functions-2.0.1.tgz", - "integrity": "sha512-C3br0qcHJkQ0qSGUBnDJHXQdO8XObnCpGwai5m1L2tv2nCjt0vRHG6A9aVCQHvh08OqHNM2ty1dYDNNXV99YAQ==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@csstools/postcss-sign-functions/-/postcss-sign-functions-2.0.3.tgz", + "integrity": "sha512-2BCPwlpeQweTC/8S8oQFYhYD5kxYkiroLf3AUJV2kVoKkSZ+4WM4rSwySXlKrqXL8HfCryAwVrJg7B0jr/RnOw==", "funding": [ { "type": "github", @@ -3445,7 +3600,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-calc": "^3.1.1", + "@csstools/css-calc": "^3.2.1", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0" }, @@ -3457,9 +3612,9 @@ } }, "node_modules/@csstools/postcss-sign-functions/node_modules/@csstools/css-calc": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.1.1.tgz", - "integrity": "sha512-HJ26Z/vmsZQqs/o3a6bgKslXGFAungXGbinULZO3eMsOyNJHeBBZfup5FiZInOghgoM4Hwnmw+OgbJCNg1wwUQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.1.tgz", + "integrity": "sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==", "funding": [ { "type": "github", @@ -3521,9 +3676,9 @@ } }, "node_modules/@csstools/postcss-stepped-value-functions": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-5.0.1.tgz", - "integrity": "sha512-vZf7zPzRb7xIi2o5Z9q6wyeEAjoRCg74O2QvYxmQgxYO5V5cdBv4phgJDyOAOP3JHy4abQlm2YaEUS3gtGQo0g==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-5.0.3.tgz", + "integrity": "sha512-nXMFQBz5Pi2LLG02iqm2k+scrqwtqJT9ta/gN8S79oBZ23M0E7O3wDJ20//3z5Q6HU5e+K0n+SmmxN6iWtbm6w==", "funding": [ { "type": "github", @@ -3536,7 +3691,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-calc": "^3.1.1", + "@csstools/css-calc": "^3.2.1", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0" }, @@ -3548,9 +3703,9 @@ } }, "node_modules/@csstools/postcss-stepped-value-functions/node_modules/@csstools/css-calc": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.1.1.tgz", - "integrity": "sha512-HJ26Z/vmsZQqs/o3a6bgKslXGFAungXGbinULZO3eMsOyNJHeBBZfup5FiZInOghgoM4Hwnmw+OgbJCNg1wwUQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.1.tgz", + "integrity": "sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==", "funding": [ { "type": "github", @@ -3749,9 +3904,9 @@ } }, "node_modules/@csstools/postcss-trigonometric-functions": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-5.0.1.tgz", - "integrity": "sha512-e8me32Mhl8JeBnxVJgsQUYpV4Md4KiyvpILpQlaY/eK1Gwdb04kasiTTswPQ5q7Z8+FppJZ2Z4d8HRfn6rjD3w==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-5.0.3.tgz", + "integrity": "sha512-p9LTvLj+DFpl5RHbG/X9QGwg7BoMOBsRBZqsUAKKVvCw7MRCsk1P1llTUR/MW5nyZ4IsjFGDtDwTTj1reJjxvg==", "funding": [ { "type": "github", @@ -3764,7 +3919,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-calc": "^3.1.1", + "@csstools/css-calc": "^3.2.1", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0" }, @@ -3776,9 +3931,9 @@ } }, "node_modules/@csstools/postcss-trigonometric-functions/node_modules/@csstools/css-calc": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.1.1.tgz", - "integrity": "sha512-HJ26Z/vmsZQqs/o3a6bgKslXGFAungXGbinULZO3eMsOyNJHeBBZfup5FiZInOghgoM4Hwnmw+OgbJCNg1wwUQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.1.tgz", + "integrity": "sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==", "funding": [ { "type": "github", @@ -3895,9 +4050,9 @@ } }, "node_modules/@date-fns/tz": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@date-fns/tz/-/tz-1.4.1.tgz", - "integrity": "sha512-P5LUNhtbj6YfI3iJjw5EL9eUAG6OitD0W3fWQcpQjDRc/QIsL0tRNuO1PcDvPccWL1fSTXXdE1ds+l95DV/OFA==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@date-fns/tz/-/tz-1.5.0.tgz", + "integrity": "sha512-lwYN/vDPeNRULcepoE/LO2Pgx+7/RV+S9ARfbc9lr2DtGkOD7pAiruHvbR1RX3Qyf6ja47EWJDMsNK5vK08DJg==", "dev": true, "license": "MIT" }, @@ -3909,12 +4064,12 @@ "license": "MIT" }, "node_modules/@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.6.3.tgz", + "integrity": "sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ==", "license": "MIT", "engines": { - "node": ">=10.0.0" + "node": ">=14.17.0" } }, "node_modules/@dual-bundle/import-meta-resolve": { @@ -3929,20 +4084,20 @@ } }, "node_modules/@emnapi/core": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.9.0.tgz", - "integrity": "sha512-0DQ98G9ZQZOxfUcQn1waV2yS8aWdZ6kJMbYCJB3oUBecjWYO1fqJ+a1DRfPF3O5JEkwqwP1A9QEN/9mYm2Yd0w==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", + "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", "license": "MIT", "optional": true, "dependencies": { - "@emnapi/wasi-threads": "1.2.0", + "@emnapi/wasi-threads": "1.2.1", "tslib": "^2.4.0" } }, "node_modules/@emnapi/runtime": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.0.tgz", - "integrity": "sha512-QN75eB0IH2ywSpRpNddCRfQIhmJYBCJ1x5Lb3IscKAL8bMnVAKnRg8dCoXbHzVLLH7P38N2Z3mtulB7W0J0FKw==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", + "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", "license": "MIT", "optional": true, "dependencies": { @@ -3950,9 +4105,9 @@ } }, "node_modules/@emnapi/wasi-threads": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.0.tgz", - "integrity": "sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", + "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", "license": "MIT", "optional": true, "dependencies": { @@ -3986,17 +4141,14 @@ "dev": true, "license": "MIT" }, - "node_modules/@emotion/babel-plugin/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "node_modules/@emotion/babel-plugin/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", "dev": true, - "license": "MIT", + "license": "BSD-3-Clause", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, "node_modules/@emotion/cache": { @@ -4159,9 +4311,9 @@ "license": "MIT" }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.4.tgz", - "integrity": "sha512-cQPwL2mp2nSmHHJlCyoXgHGhbEPMrEEU5xhkcy3Hs/O7nGZqEpZ2sUtLaL9MORLtDfRvVl2/3PAuEkYZH0Ty8Q==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.1.tgz", + "integrity": "sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==", "cpu": [ "ppc64" ], @@ -4175,9 +4327,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.4.tgz", - "integrity": "sha512-X9bUgvxiC8CHAGKYufLIHGXPJWnr0OCdR0anD2e21vdvgCI8lIfqFbnoeOz7lBjdrAGUhqLZLcQo6MLhTO2DKQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.1.tgz", + "integrity": "sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==", "cpu": [ "arm" ], @@ -4191,9 +4343,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.4.tgz", - "integrity": "sha512-gdLscB7v75wRfu7QSm/zg6Rx29VLdy9eTr2t44sfTW7CxwAtQghZ4ZnqHk3/ogz7xao0QAgrkradbBzcqFPasw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.1.tgz", + "integrity": "sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==", "cpu": [ "arm64" ], @@ -4207,9 +4359,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.4.tgz", - "integrity": "sha512-PzPFnBNVF292sfpfhiyiXCGSn9HZg5BcAz+ivBuSsl6Rk4ga1oEXAamhOXRFyMcjwr2DVtm40G65N3GLeH1Lvw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.1.tgz", + "integrity": "sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==", "cpu": [ "x64" ], @@ -4223,9 +4375,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.4.tgz", - "integrity": "sha512-b7xaGIwdJlht8ZFCvMkpDN6uiSmnxxK56N2GDTMYPr2/gzvfdQN8rTfBsvVKmIVY/X7EM+/hJKEIbbHs9oA4tQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.1.tgz", + "integrity": "sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==", "cpu": [ "arm64" ], @@ -4239,9 +4391,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.4.tgz", - "integrity": "sha512-sR+OiKLwd15nmCdqpXMnuJ9W2kpy0KigzqScqHI3Hqwr7IXxBp3Yva+yJwoqh7rE8V77tdoheRYataNKL4QrPw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.1.tgz", + "integrity": "sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==", "cpu": [ "x64" ], @@ -4255,9 +4407,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.4.tgz", - "integrity": "sha512-jnfpKe+p79tCnm4GVav68A7tUFeKQwQyLgESwEAUzyxk/TJr4QdGog9sqWNcUbr/bZt/O/HXouspuQDd9JxFSw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.1.tgz", + "integrity": "sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==", "cpu": [ "arm64" ], @@ -4271,9 +4423,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.4.tgz", - "integrity": "sha512-2kb4ceA/CpfUrIcTUl1wrP/9ad9Atrp5J94Lq69w7UwOMolPIGrfLSvAKJp0RTvkPPyn6CIWrNy13kyLikZRZQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.1.tgz", + "integrity": "sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==", "cpu": [ "x64" ], @@ -4287,9 +4439,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.4.tgz", - "integrity": "sha512-aBYgcIxX/wd5n2ys0yESGeYMGF+pv6g0DhZr3G1ZG4jMfruU9Tl1i2Z+Wnj9/KjGz1lTLCcorqE2viePZqj4Eg==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.1.tgz", + "integrity": "sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==", "cpu": [ "arm" ], @@ -4303,9 +4455,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.4.tgz", - "integrity": "sha512-7nQOttdzVGth1iz57kxg9uCz57dxQLHWxopL6mYuYthohPKEK0vU0C3O21CcBK6KDlkYVcnDXY099HcCDXd9dA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.1.tgz", + "integrity": "sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==", "cpu": [ "arm64" ], @@ -4319,9 +4471,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.4.tgz", - "integrity": "sha512-oPtixtAIzgvzYcKBQM/qZ3R+9TEUd1aNJQu0HhGyqtx6oS7qTpvjheIWBbes4+qu1bNlo2V4cbkISr8q6gRBFA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.1.tgz", + "integrity": "sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==", "cpu": [ "ia32" ], @@ -4335,9 +4487,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.4.tgz", - "integrity": "sha512-8mL/vh8qeCoRcFH2nM8wm5uJP+ZcVYGGayMavi8GmRJjuI3g1v6Z7Ni0JJKAJW+m0EtUuARb6Lmp4hMjzCBWzA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.1.tgz", + "integrity": "sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==", "cpu": [ "loong64" ], @@ -4351,9 +4503,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.4.tgz", - "integrity": "sha512-1RdrWFFiiLIW7LQq9Q2NES+HiD4NyT8Itj9AUeCl0IVCA459WnPhREKgwrpaIfTOe+/2rdntisegiPWn/r/aAw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.1.tgz", + "integrity": "sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==", "cpu": [ "mips64el" ], @@ -4367,9 +4519,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.4.tgz", - "integrity": "sha512-tLCwNG47l3sd9lpfyx9LAGEGItCUeRCWeAx6x2Jmbav65nAwoPXfewtAdtbtit/pJFLUWOhpv0FpS6GQAmPrHA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.1.tgz", + "integrity": "sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==", "cpu": [ "ppc64" ], @@ -4383,9 +4535,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.4.tgz", - "integrity": "sha512-BnASypppbUWyqjd1KIpU4AUBiIhVr6YlHx/cnPgqEkNoVOhHg+YiSVxM1RLfiy4t9cAulbRGTNCKOcqHrEQLIw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.1.tgz", + "integrity": "sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==", "cpu": [ "riscv64" ], @@ -4399,9 +4551,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.4.tgz", - "integrity": "sha512-+eUqgb/Z7vxVLezG8bVB9SfBie89gMueS+I0xYh2tJdw3vqA/0ImZJ2ROeWwVJN59ihBeZ7Tu92dF/5dy5FttA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.1.tgz", + "integrity": "sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==", "cpu": [ "s390x" ], @@ -4415,9 +4567,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.4.tgz", - "integrity": "sha512-S5qOXrKV8BQEzJPVxAwnryi2+Iq5pB40gTEIT69BQONqR7JH1EPIcQ/Uiv9mCnn05jff9umq/5nqzxlqTOg9NA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.1.tgz", + "integrity": "sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==", "cpu": [ "x64" ], @@ -4431,9 +4583,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.4.tgz", - "integrity": "sha512-xHT8X4sb0GS8qTqiwzHqpY00C95DPAq7nAwX35Ie/s+LO9830hrMd3oX0ZMKLvy7vsonee73x0lmcdOVXFzd6Q==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.1.tgz", + "integrity": "sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==", "cpu": [ "arm64" ], @@ -4447,9 +4599,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.4.tgz", - "integrity": "sha512-RugOvOdXfdyi5Tyv40kgQnI0byv66BFgAqjdgtAKqHoZTbTF2QqfQrFwa7cHEORJf6X2ht+l9ABLMP0dnKYsgg==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.1.tgz", + "integrity": "sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==", "cpu": [ "x64" ], @@ -4463,9 +4615,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.4.tgz", - "integrity": "sha512-2MyL3IAaTX+1/qP0O1SwskwcwCoOI4kV2IBX1xYnDDqthmq5ArrW94qSIKCAuRraMgPOmG0RDTA74mzYNQA9ow==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.1.tgz", + "integrity": "sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==", "cpu": [ "arm64" ], @@ -4479,9 +4631,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.4.tgz", - "integrity": "sha512-u8fg/jQ5aQDfsnIV6+KwLOf1CmJnfu1ShpwqdwC0uA7ZPwFws55Ngc12vBdeUdnuWoQYx/SOQLGDcdlfXhYmXQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.1.tgz", + "integrity": "sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==", "cpu": [ "x64" ], @@ -4495,9 +4647,9 @@ } }, "node_modules/@esbuild/openharmony-arm64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.4.tgz", - "integrity": "sha512-JkTZrl6VbyO8lDQO3yv26nNr2RM2yZzNrNHEsj9bm6dOwwu9OYN28CjzZkH57bh4w0I2F7IodpQvUAEd1mbWXg==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.1.tgz", + "integrity": "sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==", "cpu": [ "arm64" ], @@ -4511,9 +4663,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.4.tgz", - "integrity": "sha512-/gOzgaewZJfeJTlsWhvUEmUG4tWEY2Spp5M20INYRg2ZKl9QPO3QEEgPeRtLjEWSW8FilRNacPOg8R1uaYkA6g==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.1.tgz", + "integrity": "sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==", "cpu": [ "x64" ], @@ -4527,9 +4679,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.4.tgz", - "integrity": "sha512-Z9SExBg2y32smoDQdf1HRwHRt6vAHLXcxD2uGgO/v2jK7Y718Ix4ndsbNMU/+1Qiem9OiOdaqitioZwxivhXYg==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.1.tgz", + "integrity": "sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==", "cpu": [ "arm64" ], @@ -4543,9 +4695,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.4.tgz", - "integrity": "sha512-DAyGLS0Jz5G5iixEbMHi5KdiApqHBWMGzTtMiJ72ZOLhbu/bzxgAe8Ue8CTS3n3HbIUHQz/L51yMdGMeoxXNJw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.1.tgz", + "integrity": "sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==", "cpu": [ "ia32" ], @@ -4559,9 +4711,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.4.tgz", - "integrity": "sha512-+knoa0BDoeXgkNvvV1vvbZX4+hizelrkwmGJBdT17t8FNPwG2lKemmuMZlmaNQ3ws3DKKCxpb4zRZEIp3UxFCg==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.1.tgz", + "integrity": "sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==", "cpu": [ "x64" ], @@ -4575,9 +4727,9 @@ } }, "node_modules/@eslint-community/eslint-plugin-eslint-comments": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-4.7.1.tgz", - "integrity": "sha512-Ql2nJFwA8wUGpILYGOQaT1glPsmvEwE0d+a+l7AALLzQvInqdbXJdx7aSu0DpUX9dB1wMVBMhm99/++S3MdEtQ==", + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-4.7.2.tgz", + "integrity": "sha512-LF03qURSwEWm2dz5wtdDCzNk+7Opl0X7q6I3undsaIuNsEiNvRV3BCtqu14Q/6Pzg1tBj44LcxpW2EpSLZStZw==", "license": "MIT", "peer": true, "dependencies": { @@ -4594,29 +4746,6 @@ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0" } }, - "node_modules/@eslint-community/eslint-plugin-eslint-comments/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint-community/eslint-plugin-eslint-comments/node_modules/ignore": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", - "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 4" - } - }, "node_modules/@eslint-community/eslint-utils": { "version": "4.9.1", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", @@ -4636,6 +4765,19 @@ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "license": "Apache-2.0", + "peer": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/@eslint-community/regexpp": { "version": "4.12.2", "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", @@ -4711,23 +4853,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/@eslint/eslintrc/node_modules/ajv": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", - "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", - "license": "MIT", - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, "node_modules/@eslint/eslintrc/node_modules/globals": { "version": "14.0.0", "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", @@ -4741,12 +4866,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "license": "MIT", - "peer": true + "peer": true, + "engines": { + "node": ">= 4" + } }, "node_modules/@eslint/js": { "version": "9.39.4", @@ -5026,23 +5154,6 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@keyv/bigmap": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@keyv/bigmap/-/bigmap-1.3.1.tgz", - "integrity": "sha512-WbzE9sdmQtKy8vrNPa9BRnwZh5UF4s1KTmSK0KUVLo3eff5BlQNNWDnFOouNpKfPKDnms9xynJjsMYjMaT/aFQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "hashery": "^1.4.0", - "hookified": "^1.15.0" - }, - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "keyv": "^5.6.0" - } - }, "node_modules/@keyv/serialize": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-1.1.1.tgz", @@ -5123,20 +5234,21 @@ } }, "node_modules/@napi-rs/wasm-runtime": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.1.tgz", - "integrity": "sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A==", - "dev": true, + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.5.tgz", + "integrity": "sha512-AWPoBRJ9tsnVhor4sjO7rkni+7p+2IAEFj6cx06UgP10jkQHqay/36uRV/bFkgrh18D9vb4cr8Q0Pthskgzy+Q==", "license": "MIT", "optional": true, "dependencies": { - "@emnapi/core": "^1.7.1", - "@emnapi/runtime": "^1.7.1", - "@tybys/wasm-util": "^0.10.1" + "@tybys/wasm-util": "^0.10.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1" } }, "node_modules/@nodelib/fs.scandir": { @@ -5175,9 +5287,9 @@ } }, "node_modules/@opentelemetry/api": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", - "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.1.tgz", + "integrity": "sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q==", "license": "Apache-2.0", "peer": true, "engines": { @@ -5722,9 +5834,9 @@ } }, "node_modules/@opentelemetry/semantic-conventions": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.40.0.tgz", - "integrity": "sha512-cifvXDhcqMwwTlTK04GBNeIe7yyo28Mfby85QXFe1Yk8nmi36Ab/5UQwptOx84SsoGNRg+EVSjwzfSZMy6pmlw==", + "version": "1.41.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.41.1.tgz", + "integrity": "sha512-/UhIkaZgPutTFmQ7RnIJGgDXZmtEJ7Dvi86xNTFWcnRxVRNk/aotsqDJYeEvDP+FSMB2SdW+pQzNMcWP0rwuNA==", "license": "Apache-2.0", "peer": true, "engines": { @@ -5747,20 +5859,10 @@ "@opentelemetry/api": "^1.1.0" } }, - "node_modules/@oxc-project/runtime": { - "version": "0.115.0", - "resolved": "https://registry.npmjs.org/@oxc-project/runtime/-/runtime-0.115.0.tgz", - "integrity": "sha512-Rg8Wlt5dCbXhQnsXPrkOjL1DTSvXLgb2R/KYfnf1/K+R0k6UMLEmbQXPM+kwrWqSmWA2t0B1EtHy2/3zikQpvQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, "node_modules/@oxc-project/types": { - "version": "0.115.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.115.0.tgz", - "integrity": "sha512-4n91DKnebUS4yjUHl2g3/b2T+IUdCfmoZGhmwsovZCDaJSs+QkVAM+0AqqTxHSsHfeiMuueT75cZaZcT/m0pSw==", + "version": "0.133.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.133.0.tgz", + "integrity": "sha512-KzkdCd6Uxqnf6l3HOw1xfatAlUURA0g14cvBYFyJ5SaNOQbOUvBr9PKArcPcrNIeRsBdgcUzOGrhKveVpvOIGA==", "dev": true, "license": "MIT", "funding": { @@ -5890,6 +5992,9 @@ "cpu": [ "arm" ], + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -5910,6 +6015,9 @@ "cpu": [ "arm" ], + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -5930,6 +6038,9 @@ "cpu": [ "arm64" ], + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -5950,6 +6061,9 @@ "cpu": [ "arm64" ], + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -5970,6 +6084,9 @@ "cpu": [ "x64" ], + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -5990,6 +6107,9 @@ "cpu": [ "x64" ], + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -6064,9 +6184,9 @@ } }, "node_modules/@parcel/watcher/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "license": "MIT", "optional": true, "engines": { @@ -6077,9 +6197,9 @@ } }, "node_modules/@paulirish/trace_engine": { - "version": "0.0.61", - "resolved": "https://registry.npmjs.org/@paulirish/trace_engine/-/trace_engine-0.0.61.tgz", - "integrity": "sha512-/O08DwmUqIlJjUSPSZbNF8lWnlxaMsIOV6sS+uDKCxBd5i1psAmjEoG3JAqR6+nHD8X+YY474NW7SxUH/K+/kQ==", + "version": "0.0.65", + "resolved": "https://registry.npmjs.org/@paulirish/trace_engine/-/trace_engine-0.0.65.tgz", + "integrity": "sha512-Qsm6F5C8xf6ZzQXbQc2+wcpe6sggfs/gvc/ytqSurdvYg3kyW0ECHCqE0CWBKZpqgjVfPNX9c7SCS3r2nEIRGg==", "license": "BSD-3-Clause", "peer": true, "dependencies": { @@ -6088,13 +6208,13 @@ } }, "node_modules/@playwright/test": { - "version": "1.58.2", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.58.2.tgz", - "integrity": "sha512-akea+6bHYBBfA9uQqSYmlJXn61cTa+jbO87xVLCWbTqbWadRVmhxlXATaOjOgcBaWU4ePo0wB41KMFv3o35IXA==", + "version": "1.61.0", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.61.0.tgz", + "integrity": "sha512-cKA5B6lpFEMyMGjxF54QihfYpB4FkEGH+qZhtArDEG+wezQAJY8Pq6C7T1SjWz+FFzt3TbyoXBQYk/0292TdJA==", "license": "Apache-2.0", "peer": true, "dependencies": { - "playwright": "1.58.2" + "playwright": "1.61.0" }, "bin": { "playwright": "cli.js" @@ -6127,9 +6247,9 @@ } }, "node_modules/@preact/signals-core": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/@preact/signals-core/-/signals-core-1.14.0.tgz", - "integrity": "sha512-AowtCcCU/33lFlh1zRFf/u+12rfrhtNakj7UpaGEsmMwUKpKWMVvcktOGcwBBNiB4lWrZWc01LhiyyzVklJyaQ==", + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/@preact/signals-core/-/signals-core-1.14.2.tgz", + "integrity": "sha512-RZHdBj9ZF4n40Rp4jS052EHHjBWf96P9oNdXPfhQTovCuWY9iQn3Gq+gOTJSgBO9A/JBuPfMOWsSX/lIU9Pc/A==", "dev": true, "license": "MIT", "funding": { @@ -6151,41 +6271,28 @@ } }, "node_modules/@puppeteer/browsers": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.13.0.tgz", - "integrity": "sha512-46BZJYJjc/WwmKjsvDFykHtXrtomsCIrwYQPOP7VfMJoZY2bsDF9oROBABR3paDjDcmkUye1Pb1BqdcdiipaWA==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-3.0.4.tgz", + "integrity": "sha512-HGM8iAmGTf+Y7t0373szVbTmt3d7vPkYL/1bpOkOFO0YUYLgSeuYBCzESklogNPvOBnZ/MRD5f07OkpqH1trtA==", "license": "Apache-2.0", "peer": true, "dependencies": { - "debug": "^4.4.3", - "extract-zip": "^2.0.1", - "progress": "^2.0.3", - "proxy-agent": "^6.5.0", - "semver": "^7.7.4", - "tar-fs": "^3.1.1", + "modern-tar": "^0.7.6", "yargs": "^17.7.2" }, "bin": { - "browsers": "lib/cjs/main-cli.js" + "browsers": "lib/main-cli.js" }, "engines": { - "node": ">=18" - } - }, - "node_modules/@puppeteer/browsers/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "peer": true, - "dependencies": { - "color-convert": "^2.0.1" + "node": ">=22.12.0" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "proxy-agent": ">=8.0.1" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "peerDependenciesMeta": { + "proxy-agent": { + "optional": true + } } }, "node_modules/@puppeteer/browsers/node_modules/cliui": { @@ -6203,26 +6310,6 @@ "node": ">=12" } }, - "node_modules/@puppeteer/browsers/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@puppeteer/browsers/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT", - "peer": true - }, "node_modules/@puppeteer/browsers/node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -6260,17 +6347,27 @@ "node": ">=12" } }, + "node_modules/@puppeteer/browsers/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", + "peer": true, + "engines": { + "node": ">=12" + } + }, "node_modules/@radix-ui/primitive": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.3.tgz", - "integrity": "sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.4.tgz", + "integrity": "sha512-7AdCK9PQyiljKoBDbN8OuctCbd/esdwZPQ8RtOE3SsyQtUpiPb+ND75q0jEhC1m1ecBI0MFNeLJvwIh9iKHRcQ==", "dev": true, "license": "MIT" }, "node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", - "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.3.tgz", + "integrity": "sha512-rYOP8OMnuuPMQF1uhPVlGNcCDlkokKqGFE3JcxFViIkAXP7EvFWUliJAstrapypaBLJNHbZL6jGhbVDGTwmVhA==", "dev": true, "license": "MIT", "peerDependencies": { @@ -6284,9 +6381,9 @@ } }, "node_modules/@radix-ui/react-context": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz", - "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.4.tgz", + "integrity": "sha512-QwH4PO5urrbO+FaGd5Aglg+YJgWTyyuZ3g/6mKvsqraLkglDdckw9JafgL5McL5VEJ6EPNduPaT3ZE9BttDAqg==", "dev": true, "license": "MIT", "peerDependencies": { @@ -6300,50 +6397,26 @@ } }, "node_modules/@radix-ui/react-dialog": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.15.tgz", - "integrity": "sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-dismissable-layer": "1.1.11", - "@radix-ui/react-focus-guards": "1.1.3", - "@radix-ui/react-focus-scope": "1.1.7", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-portal": "1.1.9", - "@radix-ui/react-presence": "1.1.5", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-slot": "1.2.3", - "@radix-ui/react-use-controllable-state": "1.2.2", + "version": "1.1.17", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.17.tgz", + "integrity": "sha512-TDTYmpdq8dI2+Xgvgj9AJ8Ghqq+Eph/TRVEdaFQPDItIY+6QSkU7MJMeevw1568Yw/2Ijz8BTphPSP2XejKphw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.4", + "@radix-ui/react-compose-refs": "1.1.3", + "@radix-ui/react-context": "1.1.4", + "@radix-ui/react-dismissable-layer": "1.1.13", + "@radix-ui/react-focus-guards": "1.1.4", + "@radix-ui/react-focus-scope": "1.1.10", + "@radix-ui/react-id": "1.1.2", + "@radix-ui/react-portal": "1.1.12", + "@radix-ui/react-presence": "1.1.6", + "@radix-ui/react-primitive": "2.1.6", + "@radix-ui/react-slot": "1.3.0", + "@radix-ui/react-use-controllable-state": "1.2.3", "aria-hidden": "^1.2.4", - "react-remove-scroll": "^2.6.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-primitive": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz", - "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@radix-ui/react-slot": "1.2.3" + "react-remove-scroll": "^2.7.2" }, "peerDependencies": { "@types/react": "*", @@ -6361,41 +6434,17 @@ } }, "node_modules/@radix-ui/react-dismissable-layer": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.11.tgz", - "integrity": "sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-callback-ref": "1.1.1", - "@radix-ui/react-use-escape-keydown": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-primitive": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz", - "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.13.tgz", + "integrity": "sha512-2v+zNAWWe0ySxgC0D0yeXMPQ23xZVgXZTerTz+JKlmdRj6gfTqmCcR29jb6d290DezXPGgruHWDX/vYUebtErg==", "dev": true, "license": "MIT", "dependencies": { - "@radix-ui/react-slot": "1.2.3" + "@radix-ui/primitive": "1.1.4", + "@radix-ui/react-compose-refs": "1.1.3", + "@radix-ui/react-primitive": "2.1.6", + "@radix-ui/react-use-callback-ref": "1.1.2", + "@radix-ui/react-use-escape-keydown": "1.1.2" }, "peerDependencies": { "@types/react": "*", @@ -6413,9 +6462,9 @@ } }, "node_modules/@radix-ui/react-focus-guards": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.3.tgz", - "integrity": "sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.4.tgz", + "integrity": "sha512-cot/aB/mOm0IYVYTTmQcEEK1M48lZWi8FlYe5nDPQQ8NYZUlXEFgncJ9p2Kzer3RKSrY7cTTpEMLZKNo9QoP5Q==", "dev": true, "license": "MIT", "peerDependencies": { @@ -6429,39 +6478,15 @@ } }, "node_modules/@radix-ui/react-focus-scope": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.7.tgz", - "integrity": "sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-callback-ref": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-focus-scope/node_modules/@radix-ui/react-primitive": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz", - "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==", + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.10.tgz", + "integrity": "sha512-Fas/lXQqhVvqwAb64s5RFeHiHYElZ6SUQbZaNd6EkfhP/Al7wTIQ9WIR4QVX475tlu5yFCEdDcJH6/UwsZjMWw==", "dev": true, "license": "MIT", "dependencies": { - "@radix-ui/react-slot": "1.2.3" + "@radix-ui/react-compose-refs": "1.1.3", + "@radix-ui/react-primitive": "2.1.6", + "@radix-ui/react-use-callback-ref": "1.1.2" }, "peerDependencies": { "@types/react": "*", @@ -6479,13 +6504,13 @@ } }, "node_modules/@radix-ui/react-id": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.1.tgz", - "integrity": "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.2.tgz", + "integrity": "sha512-orBC88futVpqCmhX1p4cvquNHsELQ+w+vBJnuj3ftETI5bJb0bZn3Tqu3SWN2IOcPycTnMGnhwoermvISt72sA==", "dev": true, "license": "MIT", "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.1" + "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", @@ -6498,38 +6523,14 @@ } }, "node_modules/@radix-ui/react-portal": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.9.tgz", - "integrity": "sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-layout-effect": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-portal/node_modules/@radix-ui/react-primitive": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz", - "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.12.tgz", + "integrity": "sha512-m309havGzsjLHHaIX50G5PlvRs3xkgPCsGk/5PTvYm8D5q33yG0J7w/712PTOhid7NTaFETtnSXjngHQavvhVw==", "dev": true, "license": "MIT", "dependencies": { - "@radix-ui/react-slot": "1.2.3" + "@radix-ui/react-primitive": "2.1.6", + "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", @@ -6547,14 +6548,13 @@ } }, "node_modules/@radix-ui/react-presence": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.5.tgz", - "integrity": "sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.6.tgz", + "integrity": "sha512-zdTk4PlUO0E18HnZ3wYbW0KkJJxWCdiNYp6g6X1PtONFhxVkg01vliTJAmwIszU6mHiyBOoW9P0rAugl5/hULQ==", "dev": true, "license": "MIT", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-use-layout-effect": "1.1.1" + "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", @@ -6572,13 +6572,13 @@ } }, "node_modules/@radix-ui/react-primitive": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.4.tgz", - "integrity": "sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.6.tgz", + "integrity": "sha512-wetd0QI77DbvrPpTAvH1SqOxsYF2wZe5TNxqwOd5Ty4XDpV3dpV0s8K/1MGMJBeY5o7lg8ub5VIt1Ub+yVen6g==", "dev": true, "license": "MIT", "dependencies": { - "@radix-ui/react-slot": "1.2.4" + "@radix-ui/react-slot": "1.3.0" }, "peerDependencies": { "@types/react": "*", @@ -6595,33 +6595,14 @@ } } }, - "node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.4.tgz", - "integrity": "sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@radix-ui/react-slot": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", - "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.3.0.tgz", + "integrity": "sha512-MojKku4U/miO8Av4Dkb+ctMAQx7JmY96LmtDQlAarCRtd7rN52QCSzBF+XAvr5S6coSVj9HEPBgHAHKEJVk/WA==", "dev": true, "license": "MIT", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2" + "@radix-ui/react-compose-refs": "1.1.3" }, "peerDependencies": { "@types/react": "*", @@ -6634,9 +6615,9 @@ } }, "node_modules/@radix-ui/react-use-callback-ref": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz", - "integrity": "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.2.tgz", + "integrity": "sha512-xCso9j1/u8sEgP1RNHjFrXJLApL8LiqOkI1R4ywuN00rxWdYg4oQXuwKLS3i0j5NWLromUD27/4nlxj2UFVvIw==", "dev": true, "license": "MIT", "peerDependencies": { @@ -6650,14 +6631,14 @@ } }, "node_modules/@radix-ui/react-use-controllable-state": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz", - "integrity": "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.3.tgz", + "integrity": "sha512-PLzC90MS+ReootmjC597dvopoelpZ8Q61HJkDXZSExitIq7PL55vHNnesAHwguHK0aPfBnpdNzQtv1uliaqQrA==", "dev": true, "license": "MIT", "dependencies": { - "@radix-ui/react-use-effect-event": "0.0.2", - "@radix-ui/react-use-layout-effect": "1.1.1" + "@radix-ui/react-use-effect-event": "0.0.3", + "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", @@ -6670,13 +6651,13 @@ } }, "node_modules/@radix-ui/react-use-effect-event": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz", - "integrity": "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==", + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.3.tgz", + "integrity": "sha512-6c8ZqvPTWILEKnyVkP53EGRCcpnJiKTC21sS/6R1GF5xKyHJJWQEPfkqlcgUkdRQivd6tb23abUwe4ngWmY0JA==", "dev": true, "license": "MIT", "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.1" + "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", @@ -6689,13 +6670,13 @@ } }, "node_modules/@radix-ui/react-use-escape-keydown": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.1.tgz", - "integrity": "sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.2.tgz", + "integrity": "sha512-2uVLvLjgO7NZCWw01/FdqRwmA42J0BcjPMUCA+koFEOAb+zjqIP7SiFz/7zWPrKnVmSqr76Omq2ALyCuX4dhLw==", "dev": true, "license": "MIT", "dependencies": { - "@radix-ui/react-use-callback-ref": "1.1.1" + "@radix-ui/react-use-callback-ref": "1.1.2" }, "peerDependencies": { "@types/react": "*", @@ -6708,9 +6689,9 @@ } }, "node_modules/@radix-ui/react-use-layout-effect": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz", - "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.2.tgz", + "integrity": "sha512-jrBWOxZITuGcnjRCM2t2U5ZPkCLxD+Ym6DjfssS5haTj2iiak/DOb64JeN6OdLfLgptb6/e2kKR+ZuTrGoZTPA==", "dev": true, "license": "MIT", "peerDependencies": { @@ -6911,6 +6892,9 @@ "cpu": [ "arm64" ], + "libc": [ + "glibc" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -6927,6 +6911,9 @@ "cpu": [ "arm64" ], + "libc": [ + "musl" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -6943,6 +6930,9 @@ "cpu": [ "x64" ], + "libc": [ + "glibc" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -6959,6 +6949,9 @@ "cpu": [ "x64" ], + "libc": [ + "musl" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -7017,9 +7010,9 @@ } }, "node_modules/@rolldown/binding-android-arm64": { - "version": "1.0.0-rc.9", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.9.tgz", - "integrity": "sha512-lcJL0bN5hpgJfSIz/8PIf02irmyL43P+j1pTCfbD1DbLkmGRuFIA4DD3B3ZOvGqG0XiVvRznbKtN0COQVaKUTg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.3.tgz", + "integrity": "sha512-454rs7jHngixp/NMxd5srYD57OnzSlZ/eFTETjORQHLwJG1lRtmNOJcBerZlfu4GjKqeq8aCCIQrMdHyhI51Hw==", "cpu": [ "arm64" ], @@ -7034,9 +7027,9 @@ } }, "node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.0.0-rc.9", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.9.tgz", - "integrity": "sha512-J7Zk3kLYFsLtuH6U+F4pS2sYVzac0qkjcO5QxHS7OS7yZu2LRs+IXo+uvJ/mvpyUljDJ3LROZPoQfgBIpCMhdQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.3.tgz", + "integrity": "sha512-PcAhP+ynjURNyy8SKGl5DQP94aGuB/7JrXJb/t7P+hanXvQVMWzUvRRhBAcg/lNRadBhoUPqSoP4xw5tR/KBEA==", "cpu": [ "arm64" ], @@ -7051,9 +7044,9 @@ } }, "node_modules/@rolldown/binding-darwin-x64": { - "version": "1.0.0-rc.9", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.9.tgz", - "integrity": "sha512-iwtmmghy8nhfRGeNAIltcNXzD0QMNaaA5U/NyZc1Ia4bxrzFByNMDoppoC+hl7cDiUq5/1CnFthpT9n+UtfFyg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.3.tgz", + "integrity": "sha512-9YpfeUvSE2RS7wysJ81uOZkXJz7f7Q55H2Gvp3VEw/EsahqDtrphrZ0EwDLK5vvKOzaCrBsjF8JmnMLcUt78Gg==", "cpu": [ "x64" ], @@ -7068,9 +7061,9 @@ } }, "node_modules/@rolldown/binding-freebsd-x64": { - "version": "1.0.0-rc.9", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.9.tgz", - "integrity": "sha512-DLFYI78SCiZr5VvdEplsVC2Vx53lnA4/Ga5C65iyldMVaErr86aiqCoNBLl92PXPfDtUYjUh+xFFor40ueNs4Q==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.3.tgz", + "integrity": "sha512-yB1IlAsSNHncV6SCTL27/MVGR5htvQsoGxIv5KMGXALp+Ll1wYsn+x98M9MW7qa+NdSbvrrY7ANI4wLJ0n1e6g==", "cpu": [ "x64" ], @@ -7085,9 +7078,9 @@ } }, "node_modules/@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.0.0-rc.9", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.9.tgz", - "integrity": "sha512-CsjTmTwd0Hri6iTw/DRMK7kOZ7FwAkrO4h8YWKoX/kcj833e4coqo2wzIFywtch/8Eb5enQ/lwLM7w6JX1W5RQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.3.tgz", + "integrity": "sha512-Yi30IVAAfLUCy2MseFjbB1jAMDl1VMCAas5StnYp8da9+CKvMd2H2cbEjWcw5NPaPqzvYkVIaF1nNUG+b7u/sw==", "cpu": [ "arm" ], @@ -7102,13 +7095,16 @@ } }, "node_modules/@rolldown/binding-linux-arm64-gnu": { - "version": "1.0.0-rc.9", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.9.tgz", - "integrity": "sha512-2x9O2JbSPxpxMDhP9Z74mahAStibTlrBMW0520+epJH5sac7/LwZW5Bmg/E6CXuEF53JJFW509uP+lSedaUNxg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.3.tgz", + "integrity": "sha512-jsO7R8To+AdlYgUmN5sHSCZbfhtMBkO0WUx8iORQnPcMMdgr7qM2DQmMwgabs3GhNztdmoKkMKQFHD6DTMCIQw==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -7119,13 +7115,16 @@ } }, "node_modules/@rolldown/binding-linux-arm64-musl": { - "version": "1.0.0-rc.9", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.9.tgz", - "integrity": "sha512-JA1QRW31ogheAIRhIg9tjMfsYbglXXYGNPLdPEYrwFxdbkQCAzvpSCSHCDWNl4hTtrol8WeboCSEpjdZK8qrCg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.3.tgz", + "integrity": "sha512-VWkUHwWriDciit80wleYwKILoR/KMvxh/IdwS/paX+ZgpuRpCrKLUdadJbc0NpBEiyhpYawsJ73j9aCvOH+f7Q==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -7136,13 +7135,16 @@ } }, "node_modules/@rolldown/binding-linux-ppc64-gnu": { - "version": "1.0.0-rc.9", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.9.tgz", - "integrity": "sha512-aOKU9dJheda8Kj8Y3w9gnt9QFOO+qKPAl8SWd7JPHP+Cu0EuDAE5wokQubLzIDQWg2myXq2XhTpOVS07qqvT+w==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.3.tgz", + "integrity": "sha512-5f1laC0SlIR0yDbFCd8acUhvJIag6N3zC5P7oUPN6wX0aOma+uKJ0wBDH5aq7I1PVI2ttTlhJwzwRIBnLiSGEg==", "cpu": [ "ppc64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -7153,13 +7155,16 @@ } }, "node_modules/@rolldown/binding-linux-s390x-gnu": { - "version": "1.0.0-rc.9", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.9.tgz", - "integrity": "sha512-OalO94fqj7IWRn3VdXWty75jC5dk4C197AWEuMhIpvVv2lw9fiPhud0+bW2ctCxb3YoBZor71QHbY+9/WToadA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.3.tgz", + "integrity": "sha512-Iq4ko0r4XsgbrF/LunNgHtAGLRRVE2kXonAXQ/MV0mC6jQpMOhW1SvtZja2EhC/kd05++bP78dsqBeIQyYJ6Yg==", "cpu": [ "s390x" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -7170,13 +7175,16 @@ } }, "node_modules/@rolldown/binding-linux-x64-gnu": { - "version": "1.0.0-rc.9", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.9.tgz", - "integrity": "sha512-cVEl1vZtBsBZna3YMjGXNvnYYrOJ7RzuWvZU0ffvJUexWkukMaDuGhUXn0rjnV0ptzGVkvc+vW9Yqy6h8YX4pg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.3.tgz", + "integrity": "sha512-B8m6tD5+/N5FeNQFbKlLA/2yVq9ycQP1SeedyEYYKWBNR3ZQbkvIUcNnDNM03lO1l5F2roiiFJGgvoLLyZXtSg==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -7187,13 +7195,16 @@ } }, "node_modules/@rolldown/binding-linux-x64-musl": { - "version": "1.0.0-rc.9", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.9.tgz", - "integrity": "sha512-UzYnKCIIc4heAKgI4PZ3dfBGUZefGCJ1TPDuLHoCzgrMYPb5Rv6TLFuYtyM4rWyHM7hymNdsg5ik2C+UD9VDbA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.3.tgz", + "integrity": "sha512-pSdpdUJHkuCxun9LE7jvgUB9qsRgaiyNNCX7m/AvHTcq67AiT/Yhoxvw5zPfhrM8k/BfP8ce/hMOpthKDpEUow==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -7204,9 +7215,9 @@ } }, "node_modules/@rolldown/binding-openharmony-arm64": { - "version": "1.0.0-rc.9", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.9.tgz", - "integrity": "sha512-+6zoiF+RRyf5cdlFQP7nm58mq7+/2PFaY2DNQeD4B87N36JzfF/l9mdBkkmTvSYcYPE8tMh/o3cRlsx1ldLfog==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.3.tgz", + "integrity": "sha512-OXXS3RKJgX2uLwM+gYyuH5omcH8fL1LJs96pZGgtetVCahON57+d4SJHzTgZiOjxgGkSnpXpOsWuPDGAKAigEg==", "cpu": [ "arm64" ], @@ -7221,9 +7232,9 @@ } }, "node_modules/@rolldown/binding-wasm32-wasi": { - "version": "1.0.0-rc.9", - "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.9.tgz", - "integrity": "sha512-rgFN6sA/dyebil3YTlL2evvi/M+ivhfnyxec7AccTpRPccno/rPoNlqybEZQBkcbZu8Hy+eqNJCqfBR8P7Pg8g==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.3.tgz", + "integrity": "sha512-JTtb8BWFynicNSoPrehsCzBtOKjZ6jhMiPFEmOiuXg1Fl8dn2KHQob+GuPSGR0dryQa1PQJbzjF3dqO/whhjLg==", "cpu": [ "wasm32" ], @@ -7231,16 +7242,18 @@ "license": "MIT", "optional": true, "dependencies": { - "@napi-rs/wasm-runtime": "^1.1.1" + "@emnapi/core": "1.10.0", + "@emnapi/runtime": "1.10.0", + "@napi-rs/wasm-runtime": "^1.1.4" }, "engines": { - "node": ">=14.0.0" + "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-win32-arm64-msvc": { - "version": "1.0.0-rc.9", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.9.tgz", - "integrity": "sha512-lHVNUG/8nlF1IQk1C0Ci574qKYyty2goMiPlRqkC5R+3LkXDkL5Dhx8ytbxq35m+pkHVIvIxviD+TWLdfeuadA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.3.tgz", + "integrity": "sha512-gEdFFEN70A/jxb2svrWsN3aDL7OUtmvlOy+6fa2jxG8K0wQ1ZbdeLGnidov6Yu5/733dI5ySfzFlQ/cb0bSz1g==", "cpu": [ "arm64" ], @@ -7255,9 +7268,9 @@ } }, "node_modules/@rolldown/binding-win32-x64-msvc": { - "version": "1.0.0-rc.9", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.9.tgz", - "integrity": "sha512-G0oA4+w1iY5AGi5HcDTxWsoxF509hrFIPB2rduV5aDqS9FtDg1CAfa7V34qImbjfhIcA8C+RekocJZA96EarwQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.3.tgz", + "integrity": "sha512-eXB7CHuaQdqmJcc3koCNtNPmT/bj2gc999kUFgBxG8Ac0NdgXc4rkCHhqrgrhN3zddvvvrgzj1e90SuSfmyIXA==", "cpu": [ "x64" ], @@ -7272,9 +7285,9 @@ } }, "node_modules/@rolldown/pluginutils": { - "version": "1.0.0-rc.9", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.9.tgz", - "integrity": "sha512-w6oiRWgEBl04QkFZgmW+jnU1EC9b57Oihi2ot3HNWIQRqgHp5PnYDia5iZ5FF7rpa4EQdiqMDXjlqKGXBhsoXw==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", + "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", "dev": true, "license": "MIT" }, @@ -7367,9 +7380,9 @@ } }, "node_modules/@sentry/node/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.1.tgz", + "integrity": "sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==", "license": "MIT", "peer": true, "dependencies": { @@ -7476,400 +7489,142 @@ } }, "node_modules/@tailwindcss/node": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.2.1.tgz", - "integrity": "sha512-jlx6sLk4EOwO6hHe1oCGm1Q4AN/s0rSrTTPBGPM0/RQ6Uylwq17FuU8IeJJKEjtc6K6O07zsvP+gDO6MMWo7pg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.3.1.tgz", + "integrity": "sha512-6NDaqRoAMSXD1mr/RXu0HBvNE9a2n5tHPsxu9XHLws8o4Twes5rBM2205SUUiJ9goAtadrN6xTGX0UDEwp/N4A==", "dev": true, "license": "MIT", "dependencies": { "@jridgewell/remapping": "^2.3.5", - "enhanced-resolve": "^5.19.0", - "jiti": "^2.6.1", - "lightningcss": "1.31.1", + "enhanced-resolve": "5.21.6", + "jiti": "^2.7.0", + "lightningcss": "1.32.0", "magic-string": "^0.30.21", "source-map-js": "^1.2.1", - "tailwindcss": "4.2.1" + "tailwindcss": "4.3.1" } }, - "node_modules/@tailwindcss/node/node_modules/lightningcss": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.31.1.tgz", - "integrity": "sha512-l51N2r93WmGUye3WuFoN5k10zyvrVs0qfKBhyC5ogUQ6Ew6JUSswh78mbSO+IU3nTWsyOArqPCcShdQSadghBQ==", + "node_modules/@tailwindcss/oxide": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.3.1.tgz", + "integrity": "sha512-yVPyo8RNkabVr3O2EhHEE0Rewu7YKzc1DhIqfL46LKveFrmu9XbDazNOJY7/GRuvw1h6u3utWnR29H/p5JPlgA==", "dev": true, - "license": "MPL-2.0", - "dependencies": { - "detect-libc": "^2.0.3" - }, + "license": "MIT", "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "node": ">= 20" }, "optionalDependencies": { - "lightningcss-android-arm64": "1.31.1", - "lightningcss-darwin-arm64": "1.31.1", - "lightningcss-darwin-x64": "1.31.1", - "lightningcss-freebsd-x64": "1.31.1", - "lightningcss-linux-arm-gnueabihf": "1.31.1", - "lightningcss-linux-arm64-gnu": "1.31.1", - "lightningcss-linux-arm64-musl": "1.31.1", - "lightningcss-linux-x64-gnu": "1.31.1", - "lightningcss-linux-x64-musl": "1.31.1", - "lightningcss-win32-arm64-msvc": "1.31.1", - "lightningcss-win32-x64-msvc": "1.31.1" - } - }, - "node_modules/@tailwindcss/node/node_modules/lightningcss-android-arm64": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.31.1.tgz", - "integrity": "sha512-HXJF3x8w9nQ4jbXRiNppBCqeZPIAfUo8zE/kOEGbW5NZvGc/K7nMxbhIr+YlFlHW5mpbg/YFPdbnCh1wAXCKFg==", + "@tailwindcss/oxide-android-arm64": "4.3.1", + "@tailwindcss/oxide-darwin-arm64": "4.3.1", + "@tailwindcss/oxide-darwin-x64": "4.3.1", + "@tailwindcss/oxide-freebsd-x64": "4.3.1", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.1", + "@tailwindcss/oxide-linux-arm64-gnu": "4.3.1", + "@tailwindcss/oxide-linux-arm64-musl": "4.3.1", + "@tailwindcss/oxide-linux-x64-gnu": "4.3.1", + "@tailwindcss/oxide-linux-x64-musl": "4.3.1", + "@tailwindcss/oxide-wasm32-wasi": "4.3.1", + "@tailwindcss/oxide-win32-arm64-msvc": "4.3.1", + "@tailwindcss/oxide-win32-x64-msvc": "4.3.1" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.3.1.tgz", + "integrity": "sha512-SVlyf61g374l5cHyg8x9kf5xmLcOaxvOTsbsqDnSsDJaKOEFZ7GCvi84VAVGpxojYOs1+3K6M0UjXfqPU8vmOQ==", "cpu": [ "arm64" ], "dev": true, - "license": "MPL-2.0", + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "node": ">= 20" } }, - "node_modules/@tailwindcss/node/node_modules/lightningcss-darwin-arm64": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.31.1.tgz", - "integrity": "sha512-02uTEqf3vIfNMq3h/z2cJfcOXnQ0GRwQrkmPafhueLb2h7mqEidiCzkE4gBMEH65abHRiQvhdcQ+aP0D0g67sg==", + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.3.1.tgz", + "integrity": "sha512-hVnWLwv+e/l7c4WKyVtHVrIPvYdqWHjRB3MDIqARynzFtnQg85kmQEFCbV9Ja0VVx4xXTIiDWY60Y7iz/iNoDA==", "cpu": [ "arm64" ], "dev": true, - "license": "MPL-2.0", + "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "node": ">= 20" } }, - "node_modules/@tailwindcss/node/node_modules/lightningcss-darwin-x64": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.31.1.tgz", - "integrity": "sha512-1ObhyoCY+tGxtsz1lSx5NXCj3nirk0Y0kB/g8B8DT+sSx4G9djitg9ejFnjb3gJNWo7qXH4DIy2SUHvpoFwfTA==", + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.3.1.tgz", + "integrity": "sha512-Cf7abu0WVgbhU7ANgPUnSAvm7nCvMweusHb8FnaHlLfv/Caq4GYaEZg7ZImzzmjx4lIAfuS8q+eLIS7A7IzxIg==", "cpu": [ "x64" ], "dev": true, - "license": "MPL-2.0", + "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "node": ">= 20" } }, - "node_modules/@tailwindcss/node/node_modules/lightningcss-freebsd-x64": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.31.1.tgz", - "integrity": "sha512-1RINmQKAItO6ISxYgPwszQE1BrsVU5aB45ho6O42mu96UiZBxEXsuQ7cJW4zs4CEodPUioj/QrXW1r9pLUM74A==", + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.3.1.tgz", + "integrity": "sha512-ZZqzX2Y+GXtXXfqSfpJhDm60OoZfvLHLCgm+J7NVqgHHJjG/m9ugZI77RwTsVd4fnBJuCFP6Ae6kTJb71UdS8g==", "cpu": [ "x64" ], "dev": true, - "license": "MPL-2.0", + "license": "MIT", "optional": true, "os": [ "freebsd" ], "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "node": ">= 20" } }, - "node_modules/@tailwindcss/node/node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.31.1.tgz", - "integrity": "sha512-OOCm2//MZJ87CdDK62rZIu+aw9gBv4azMJuA8/KB74wmfS3lnC4yoPHm0uXZ/dvNNHmnZnB8XLAZzObeG0nS1g==", + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.3.1.tgz", + "integrity": "sha512-/Ah/xik0LaMYfv9DZ0S/t4pBlBNYOcqtRwusjgovHkvT8ixueWCLyJjsaF5kQIckjb4IT8Q6K6p/iPmZMixYgg==", "cpu": [ "arm" ], "dev": true, - "license": "MPL-2.0", + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "node": ">= 20" } }, - "node_modules/@tailwindcss/node/node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.31.1.tgz", - "integrity": "sha512-WKyLWztD71rTnou4xAD5kQT+982wvca7E6QoLpoawZ1gP9JM0GJj4Tp5jMUh9B3AitHbRZ2/H3W5xQmdEOUlLg==", + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.3.1.tgz", + "integrity": "sha512-gqdFoVJlw444GvpnheZLHmvTzSxI/cOUUh2KSNejQjTcYkW062SVD+En0rUgD+QV91bz1XGIGtt1HJd48xUGbQ==", "cpu": [ "arm64" ], "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@tailwindcss/node/node_modules/lightningcss-linux-arm64-musl": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.31.1.tgz", - "integrity": "sha512-mVZ7Pg2zIbe3XlNbZJdjs86YViQFoJSpc41CbVmKBPiGmC4YrfeOyz65ms2qpAobVd7WQsbW4PdsSJEMymyIMg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@tailwindcss/node/node_modules/lightningcss-linux-x64-gnu": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.31.1.tgz", - "integrity": "sha512-xGlFWRMl+0KvUhgySdIaReQdB4FNudfUTARn7q0hh/V67PVGCs3ADFjw+6++kG1RNd0zdGRlEKa+T13/tQjPMA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@tailwindcss/node/node_modules/lightningcss-linux-x64-musl": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.31.1.tgz", - "integrity": "sha512-eowF8PrKHw9LpoZii5tdZwnBcYDxRw2rRCyvAXLi34iyeYfqCQNA9rmUM0ce62NlPhCvof1+9ivRaTY6pSKDaA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@tailwindcss/node/node_modules/lightningcss-win32-arm64-msvc": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.31.1.tgz", - "integrity": "sha512-aJReEbSEQzx1uBlQizAOBSjcmr9dCdL3XuC/6HLXAxmtErsj2ICo5yYggg1qOODQMtnjNQv2UHb9NpOuFtYe4w==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@tailwindcss/node/node_modules/lightningcss-win32-x64-msvc": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.31.1.tgz", - "integrity": "sha512-I9aiFrbd7oYHwlnQDqr1Roz+fTz61oDDJX7n9tYF9FJymH1cIN1DtKw3iYt6b8WZgEjoNwVSncwF4wx/ZedMhw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@tailwindcss/oxide": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.2.1.tgz", - "integrity": "sha512-yv9jeEFWnjKCI6/T3Oq50yQEOqmpmpfzG1hcZsAOaXFQPfzWprWrlHSdGPEF3WQTi8zu8ohC9Mh9J470nT5pUw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 20" - }, - "optionalDependencies": { - "@tailwindcss/oxide-android-arm64": "4.2.1", - "@tailwindcss/oxide-darwin-arm64": "4.2.1", - "@tailwindcss/oxide-darwin-x64": "4.2.1", - "@tailwindcss/oxide-freebsd-x64": "4.2.1", - "@tailwindcss/oxide-linux-arm-gnueabihf": "4.2.1", - "@tailwindcss/oxide-linux-arm64-gnu": "4.2.1", - "@tailwindcss/oxide-linux-arm64-musl": "4.2.1", - "@tailwindcss/oxide-linux-x64-gnu": "4.2.1", - "@tailwindcss/oxide-linux-x64-musl": "4.2.1", - "@tailwindcss/oxide-wasm32-wasi": "4.2.1", - "@tailwindcss/oxide-win32-arm64-msvc": "4.2.1", - "@tailwindcss/oxide-win32-x64-msvc": "4.2.1" - } - }, - "node_modules/@tailwindcss/oxide-android-arm64": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.2.1.tgz", - "integrity": "sha512-eZ7G1Zm5EC8OOKaesIKuw77jw++QJ2lL9N+dDpdQiAB/c/B2wDh0QPFHbkBVrXnwNugvrbJFk1gK2SsVjwWReg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 20" - } - }, - "node_modules/@tailwindcss/oxide-darwin-arm64": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.2.1.tgz", - "integrity": "sha512-q/LHkOstoJ7pI1J0q6djesLzRvQSIfEto148ppAd+BVQK0JYjQIFSK3JgYZJa+Yzi0DDa52ZsQx2rqytBnf8Hw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 20" - } - }, - "node_modules/@tailwindcss/oxide-darwin-x64": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.2.1.tgz", - "integrity": "sha512-/f/ozlaXGY6QLbpvd/kFTro2l18f7dHKpB+ieXz+Cijl4Mt9AI2rTrpq7V+t04nK+j9XBQHnSMdeQRhbGyt6fw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 20" - } - }, - "node_modules/@tailwindcss/oxide-freebsd-x64": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.2.1.tgz", - "integrity": "sha512-5e/AkgYJT/cpbkys/OU2Ei2jdETCLlifwm7ogMC7/hksI2fC3iiq6OcXwjibcIjPung0kRtR3TxEITkqgn0TcA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 20" - } - }, - "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.2.1.tgz", - "integrity": "sha512-Uny1EcVTTmerCKt/1ZuKTkb0x8ZaiuYucg2/kImO5A5Y/kBz41/+j0gxUZl+hTF3xkWpDmHX+TaWhOtba2Fyuw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 20" - } - }, - "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.2.1.tgz", - "integrity": "sha512-CTrwomI+c7n6aSSQlsPL0roRiNMDQ/YzMD9EjcR+H4f0I1SQ8QqIuPnsVp7QgMkC1Qi8rtkekLkOFjo7OlEFRQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", + "libc": [ + "glibc" + ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -7879,13 +7634,16 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-musl": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.2.1.tgz", - "integrity": "sha512-WZA0CHRL/SP1TRbA5mp9htsppSEkWuQ4KsSUumYQnyl8ZdT39ntwqmz4IUHGN6p4XdSlYfJwM4rRzZLShHsGAQ==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.3.1.tgz", + "integrity": "sha512-Bwv9KwOvE0VKa86xPFif9b9c3Y1NxOV1P0gLti/IYaWEsQYZXDlxfGEtA8mdDZ7SG3wyNXAWYT5SIn3giL57oA==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -7896,13 +7654,16 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-gnu": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.2.1.tgz", - "integrity": "sha512-qMFzxI2YlBOLW5PhblzuSWlWfwLHaneBE0xHzLrBgNtqN6mWfs+qYbhryGSXQjFYB1Dzf5w+LN5qbUTPhW7Y5g==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.3.1.tgz", + "integrity": "sha512-Ymi8O8T15HYQdOUWUtTI6ldN0neHP85FC+Qz32xTcZ7iJXtem/x8ITev0o1e9e5rkqj4lONZfTRLvkmin1+tKg==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -7913,13 +7674,16 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-musl": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.2.1.tgz", - "integrity": "sha512-5r1X2FKnCMUPlXTWRYpHdPYUY6a1Ar/t7P24OuiEdEOmms5lyqjDRvVY1yy9Rmioh+AunQ0rWiOTPE8F9A3v5g==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.3.1.tgz", + "integrity": "sha512-M+P/91qJ6uILLw4k2G93GMDRAXj61SMvFQYt39AqvUqYgExXpLL5aepfns7sj4HiAQeolirQF9E0lzRvdf4zPQ==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -7930,9 +7694,9 @@ } }, "node_modules/@tailwindcss/oxide-wasm32-wasi": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.2.1.tgz", - "integrity": "sha512-MGFB5cVPvshR85MTJkEvqDUnuNoysrsRxd6vnk1Lf2tbiqNlXpHYZqkqOQalydienEWOHHFyyuTSYRsLfxFJ2Q==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.3.1.tgz", + "integrity": "sha512-zsM8uOeqvVGHsAXsJxsT28ttosFahLJKCLOTUBqRAtKnVgGSRitds9T432QiT8b77Yga7JIBkulIRRlJPtYhRA==", "bundleDependencies": [ "@napi-rs/wasm-runtime", "@emnapi/core", @@ -7948,11 +7712,11 @@ "license": "MIT", "optional": true, "dependencies": { - "@emnapi/core": "^1.8.1", - "@emnapi/runtime": "^1.8.1", - "@emnapi/wasi-threads": "^1.1.0", - "@napi-rs/wasm-runtime": "^1.1.1", - "@tybys/wasm-util": "^0.10.1", + "@emnapi/core": "^1.10.0", + "@emnapi/runtime": "^1.10.0", + "@emnapi/wasi-threads": "^1.2.1", + "@napi-rs/wasm-runtime": "^1.1.4", + "@tybys/wasm-util": "^0.10.2", "tslib": "^2.8.1" }, "engines": { @@ -7960,9 +7724,9 @@ } }, "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.2.1.tgz", - "integrity": "sha512-YlUEHRHBGnCMh4Nj4GnqQyBtsshUPdiNroZj8VPkvTZSoHsilRCwXcVKnG9kyi0ZFAS/3u+qKHBdDc81SADTRA==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.1.tgz", + "integrity": "sha512-aiNvSq9BsVk8V513lDKlrCFAgf8qBMPZTpgEhInL+NwQqs97mYmupVMrPrgBBSL8Pv/0zXu9MrMF9rMun1ZeNg==", "cpu": [ "arm64" ], @@ -7977,9 +7741,9 @@ } }, "node_modules/@tailwindcss/oxide-win32-x64-msvc": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.2.1.tgz", - "integrity": "sha512-rbO34G5sMWWyrN/idLeVxAZgAKWrn5LiR3/I90Q9MkA67s6T1oB0xtTe+0heoBvHSpbU9Mk7i6uwJnpo4u21XQ==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.3.1.tgz", + "integrity": "sha512-xDEyu1rg290472FEGaKHnzyDyh5QH+AlWvsU5hMoMtPpzmKlRI0jaYKCgSHDYtaQWZOYbMaduSyCwFwY4n1HmA==", "cpu": [ "x64" ], @@ -7994,17 +7758,17 @@ } }, "node_modules/@tailwindcss/postcss": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.2.1.tgz", - "integrity": "sha512-OEwGIBnXnj7zJeonOh6ZG9woofIjGrd2BORfvE5p9USYKDCZoQmfqLcfNiRWoJlRWLdNPn2IgVZuWAOM4iTYMw==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.3.1.tgz", + "integrity": "sha512-dNJuNbdEJT/SWRuXTYP1WSamelsz3ztkUsdtWQPjrexysrTpaEPM40P/71knXiXLYEojqPOEGitVLLpPMS5T6A==", "dev": true, "license": "MIT", "dependencies": { "@alloc/quick-lru": "^5.2.0", - "@tailwindcss/node": "4.2.1", - "@tailwindcss/oxide": "4.2.1", - "postcss": "^8.5.6", - "tailwindcss": "4.2.1" + "@tailwindcss/node": "4.3.1", + "@tailwindcss/oxide": "4.3.1", + "postcss": "8.5.15", + "tailwindcss": "4.3.1" } }, "node_modules/@tannin/compile": { @@ -8049,17 +7813,10 @@ "dev": true, "license": "MIT" }, - "node_modules/@tootallnate/quickjs-emscripten": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", - "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", - "license": "MIT", - "peer": true - }, "node_modules/@tybys/wasm-util": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", - "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.2.tgz", + "integrity": "sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==", "license": "MIT", "optional": true, "dependencies": { @@ -8094,30 +7851,10 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/eslint": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", - "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", - "license": "MIT", - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", - "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", - "license": "MIT", - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, "node_modules/@types/estree": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", "license": "MIT" }, "node_modules/@types/expect": { @@ -8171,12 +7908,12 @@ } }, "node_modules/@types/node": { - "version": "22.19.15", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.15.tgz", - "integrity": "sha512-F0R/h2+dsy5wJAUe3tAU6oqa2qbWY5TpNfL/RGmo1y38hiyO1w3x2jPtt76wmuaJI4DQnOBu21cNXQ2STIUUWg==", + "version": "24.13.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.13.2.tgz", + "integrity": "sha512-fRa09kZTgu8o71KFcDjUFuc7F+dEbZYZmkI0mg5YBTRs0yMKjYHsq/c0urDKeDb+D5qVgXOdFcuu+DZPKOITwA==", "license": "MIT", "dependencies": { - "undici-types": "~6.21.0" + "undici-types": "~7.18.0" } }, "node_modules/@types/parse-json": { @@ -8215,9 +7952,9 @@ "license": "MIT" }, "node_modules/@types/react": { - "version": "18.3.28", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.28.tgz", - "integrity": "sha512-z9VXpC7MWrhfWipitjNdgCauoMLRdIILQsAEV+ZesIzBq/oUlxk0m3ApZuMFCXdnS4U7KrI+l3WRUEGQ8K1QKw==", + "version": "18.3.31", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.31.tgz", + "integrity": "sha512-vfEqpXTvwT91yhmwdfouStN2hSKwTvyRs8qpLfADyrq/kxDw0hZM7Wk9Ug1FELj8hIby+S/+kQCSRFF32nv2Qw==", "license": "MIT", "dependencies": { "@types/prop-types": "*", @@ -8322,14 +8059,14 @@ } }, "node_modules/@types/wordpress__block-editor": { - "version": "15.0.5", - "resolved": "https://registry.npmjs.org/@types/wordpress__block-editor/-/wordpress__block-editor-15.0.5.tgz", - "integrity": "sha512-nQNBDiVISlJWelHG+V7ikSaDFHWeKx60IyCQIG2qiePaeqjHuOaWWVJl0H1QWyOMUnmDuro2Y+GNsaNvjufuXA==", + "version": "15.0.6", + "resolved": "https://registry.npmjs.org/@types/wordpress__block-editor/-/wordpress__block-editor-15.0.6.tgz", + "integrity": "sha512-XDc596rkiNLOg0SZRONHojDRd7oE/+96nCBTQq51fJpAfgtHCPXQUs5hYJNaImxqWeuNrqYGpBgU5fFS7ZqRHw==", "dev": true, "license": "MIT", "dependencies": { "@types/react": "^18", - "@types/wordpress__blocks": "*", + "@wordpress/blocks": "^15.17.0", "@wordpress/components": "^30.9.0", "@wordpress/data": "^10.36.0", "@wordpress/element": "^6.36.0", @@ -8338,6 +8075,17 @@ "react-autosize-textarea": "^7.1.0" } }, + "node_modules/@types/wordpress__block-editor/node_modules/@wordpress/base-styles": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-6.20.0.tgz", + "integrity": "sha512-Dsug4Zxz2xOFtK6CGThKYXwCqC9Yztw2STKQzwztrX4yW+o6iDbzkxpcwdDhsaVJs0Jt9A4LmJpZPh+pUozzLA==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + } + }, "node_modules/@types/wordpress__block-editor/node_modules/@wordpress/components": { "version": "30.9.0", "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-30.9.0.tgz", @@ -8402,29 +8150,121 @@ "react-dom": "^18.0.0" } }, - "node_modules/@types/wordpress__blocks": { - "version": "15.10.2", - "resolved": "https://registry.npmjs.org/@types/wordpress__blocks/-/wordpress__blocks-15.10.2.tgz", - "integrity": "sha512-d8+XJZ/QszWyCp7k9lbqDoJePl7/SLUueMxzAA9J2buRsvd4KXK5C5Y8BAU8WuLMG2Av1dRhTvr+izfLA9jynA==", + "node_modules/@types/wordpress__block-editor/node_modules/@wordpress/compose": { + "version": "7.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-7.46.0.tgz", + "integrity": "sha512-6Yv9Wb6tlA4JYU9bdWWuIWpTTzBAVA1zrYu1GY9x2/mCOckk9iLcEEfbKULxdjwwcMo3SKqvyby4f6kEUw/Wsw==", "dev": true, - "license": "MIT", + "license": "GPL-2.0-or-later", "dependencies": { - "@types/react": "^18", - "@wordpress/components": "^30.9.0", - "@wordpress/data": "^10.37.0", - "@wordpress/element": "^6.37.0", - "@wordpress/shortcode": "^4.37.0" + "@types/mousetrap": "^1.6.8", + "@wordpress/deprecated": "^4.46.0", + "@wordpress/dom": "^4.46.0", + "@wordpress/element": "^6.46.0", + "@wordpress/is-shallow-equal": "^5.46.0", + "@wordpress/keycodes": "^4.46.0", + "@wordpress/priority-queue": "^3.46.0", + "@wordpress/undo-manager": "^1.46.0", + "change-case": "^4.1.2", + "mousetrap": "^1.6.5", + "use-memo-one": "^1.1.1" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "react": "^18.0.0" } }, - "node_modules/@types/wordpress__blocks/node_modules/@wordpress/components": { - "version": "30.9.0", - "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-30.9.0.tgz", - "integrity": "sha512-mx0df0TjChmpCtqQn3iFHphqaLQVNk5Yprs+3NJSfm1kWuZPKfVys6AtmhfBgXs/VrrJk34Z+1N+nqXovHuXnw==", + "node_modules/@types/wordpress__block-editor/node_modules/@wordpress/element": { + "version": "6.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-6.46.0.tgz", + "integrity": "sha512-hjnrqZi0cZVdkmN0xQavKfSQJYAkb9pVSnDPpuX65OLxeD9/EWkIXvFzBb+nH8c4NzKKSqQU96XCTQrH37OCIA==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@ariakit/react": "^0.4.15", - "@date-fns/utc": "^2.1.1", + "@types/react": "^18.3.27", + "@types/react-dom": "^18.3.1", + "@wordpress/escape-html": "^3.46.0", + "change-case": "^4.1.2", + "is-plain-object": "^5.0.0", + "react": "^18.3.0", + "react-dom": "^18.3.0" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + } + }, + "node_modules/@types/wordpress__block-editor/node_modules/@wordpress/icons": { + "version": "11.8.0", + "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-11.8.0.tgz", + "integrity": "sha512-ZMNHApHMmPLpNnNLfPLRf6XWoPhZFNKFKdpMlhA6Lx04J1hLVyLRz8PuM+1o3ByxD2ZiExfSRhdmI+7VvEg6DA==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/element": "^6.41.0", + "@wordpress/primitives": "^4.41.0", + "change-case": "4.1.2" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "react": "^18.0.0" + } + }, + "node_modules/@types/wordpress__block-editor/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "deprecated": "uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@types/wordpress__blocks": { + "version": "15.10.2", + "resolved": "https://registry.npmjs.org/@types/wordpress__blocks/-/wordpress__blocks-15.10.2.tgz", + "integrity": "sha512-d8+XJZ/QszWyCp7k9lbqDoJePl7/SLUueMxzAA9J2buRsvd4KXK5C5Y8BAU8WuLMG2Av1dRhTvr+izfLA9jynA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/react": "^18", + "@wordpress/components": "^30.9.0", + "@wordpress/data": "^10.37.0", + "@wordpress/element": "^6.37.0", + "@wordpress/shortcode": "^4.37.0" + } + }, + "node_modules/@types/wordpress__blocks/node_modules/@wordpress/base-styles": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-6.20.0.tgz", + "integrity": "sha512-Dsug4Zxz2xOFtK6CGThKYXwCqC9Yztw2STKQzwztrX4yW+o6iDbzkxpcwdDhsaVJs0Jt9A4LmJpZPh+pUozzLA==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + } + }, + "node_modules/@types/wordpress__blocks/node_modules/@wordpress/components": { + "version": "30.9.0", + "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-30.9.0.tgz", + "integrity": "sha512-mx0df0TjChmpCtqQn3iFHphqaLQVNk5Yprs+3NJSfm1kWuZPKfVys6AtmhfBgXs/VrrJk34Z+1N+nqXovHuXnw==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@ariakit/react": "^0.4.15", + "@date-fns/utc": "^2.1.1", "@emotion/cache": "^11.7.1", "@emotion/css": "^11.7.1", "@emotion/react": "^11.7.1", @@ -8480,6 +8320,87 @@ "react-dom": "^18.0.0" } }, + "node_modules/@types/wordpress__blocks/node_modules/@wordpress/compose": { + "version": "7.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-7.46.0.tgz", + "integrity": "sha512-6Yv9Wb6tlA4JYU9bdWWuIWpTTzBAVA1zrYu1GY9x2/mCOckk9iLcEEfbKULxdjwwcMo3SKqvyby4f6kEUw/Wsw==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@types/mousetrap": "^1.6.8", + "@wordpress/deprecated": "^4.46.0", + "@wordpress/dom": "^4.46.0", + "@wordpress/element": "^6.46.0", + "@wordpress/is-shallow-equal": "^5.46.0", + "@wordpress/keycodes": "^4.46.0", + "@wordpress/priority-queue": "^3.46.0", + "@wordpress/undo-manager": "^1.46.0", + "change-case": "^4.1.2", + "mousetrap": "^1.6.5", + "use-memo-one": "^1.1.1" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "react": "^18.0.0" + } + }, + "node_modules/@types/wordpress__blocks/node_modules/@wordpress/element": { + "version": "6.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-6.46.0.tgz", + "integrity": "sha512-hjnrqZi0cZVdkmN0xQavKfSQJYAkb9pVSnDPpuX65OLxeD9/EWkIXvFzBb+nH8c4NzKKSqQU96XCTQrH37OCIA==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@types/react": "^18.3.27", + "@types/react-dom": "^18.3.1", + "@wordpress/escape-html": "^3.46.0", + "change-case": "^4.1.2", + "is-plain-object": "^5.0.0", + "react": "^18.3.0", + "react-dom": "^18.3.0" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + } + }, + "node_modules/@types/wordpress__blocks/node_modules/@wordpress/icons": { + "version": "11.8.0", + "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-11.8.0.tgz", + "integrity": "sha512-ZMNHApHMmPLpNnNLfPLRf6XWoPhZFNKFKdpMlhA6Lx04J1hLVyLRz8PuM+1o3ByxD2ZiExfSRhdmI+7VvEg6DA==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/element": "^6.41.0", + "@wordpress/primitives": "^4.41.0", + "change-case": "4.1.2" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "react": "^18.0.0" + } + }, + "node_modules/@types/wordpress__blocks/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "deprecated": "uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/@types/yargs": { "version": "17.0.35", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz", @@ -8497,29 +8418,18 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/yauzl": { - "version": "2.10.3", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", - "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.59.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.59.3.tgz", - "integrity": "sha512-PwFvSKsXGShKGW6n5bZOhGHEcCZXM8HofLK9fNsEwZXzFRjoY+XT1Vsf1zgyXdwTr0ZYz1/2tkZ0DBTT9jZjhw==", + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.61.1.tgz", + "integrity": "sha512-ZPlVl3PB3et/59Ne0fv/sci6ZXz4T4Hp4nTJ56i/Y0gR89ARb+KphojTq6j+56E5PIezmOIOOWyY+aWQFd+IkQ==", "license": "MIT", "peer": true, "dependencies": { "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.59.3", - "@typescript-eslint/type-utils": "8.59.3", - "@typescript-eslint/utils": "8.59.3", - "@typescript-eslint/visitor-keys": "8.59.3", + "@typescript-eslint/scope-manager": "8.61.1", + "@typescript-eslint/type-utils": "8.61.1", + "@typescript-eslint/utils": "8.61.1", + "@typescript-eslint/visitor-keys": "8.61.1", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.5.0" @@ -8532,32 +8442,22 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.59.3", + "@typescript-eslint/parser": "^8.61.1", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", - "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 4" - } - }, "node_modules/@typescript-eslint/parser": { - "version": "8.59.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.59.3.tgz", - "integrity": "sha512-HPwA+hVkfcriajbNvTmZv4VRauibay+cWArYUYq7u7W7PmGShMxbPxLvrwDme55a6d5alG3nrYfhyJ/G28XlLg==", + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.61.1.tgz", + "integrity": "sha512-PJ5vePq5/ognBbrIcoC5+SHO5dfpeLPzP9FpLkzWrguoYQEeeSjlJpVwOpo1JRSTEi7dRcwNy4h4dzV70PqHcg==", "license": "MIT", "peer": true, "dependencies": { - "@typescript-eslint/scope-manager": "8.59.3", - "@typescript-eslint/types": "8.59.3", - "@typescript-eslint/typescript-estree": "8.59.3", - "@typescript-eslint/visitor-keys": "8.59.3", + "@typescript-eslint/scope-manager": "8.61.1", + "@typescript-eslint/types": "8.61.1", + "@typescript-eslint/typescript-estree": "8.61.1", + "@typescript-eslint/visitor-keys": "8.61.1", "debug": "^4.4.3" }, "engines": { @@ -8573,14 +8473,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.59.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.59.3.tgz", - "integrity": "sha512-ECiUWa/KYRGDFUqTNehaRgzDshnJfkTABJxVemHk4ko22gcr0ukloKjWvyQ64g8YCV/UI47kN1dbmjf/GaQYng==", + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.61.1.tgz", + "integrity": "sha512-PrC4JYGmR241lYnfhmKGTXkFqv8+ymbTFgSAY0fVXpY82/QkMw5TZPl+vGzuDDU2QYJk9fIDOBTntF+yDv9LEA==", "license": "MIT", "peer": true, "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.59.3", - "@typescript-eslint/types": "^8.59.3", + "@typescript-eslint/tsconfig-utils": "^8.61.1", + "@typescript-eslint/types": "^8.61.1", "debug": "^4.4.3" }, "engines": { @@ -8595,14 +8495,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.59.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.59.3.tgz", - "integrity": "sha512-t2LvZnoEfzKtnPjgeEu41xw5gxq9mQVfYy4OoZ4Vlt0sk3JwxmhCca/AR7DwOiHrjWgjAj6as4AhRLKSDfvZIA==", + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.61.1.tgz", + "integrity": "sha512-L2bdIeoQS8FlKAvONAr20w6OcLXeB+qiDKbAooS9A0Ben+iSIkBef0FxqwKWYqt5sa0i4KJtxVyVmhMylKzF5w==", "license": "MIT", "peer": true, "dependencies": { - "@typescript-eslint/types": "8.59.3", - "@typescript-eslint/visitor-keys": "8.59.3" + "@typescript-eslint/types": "8.61.1", + "@typescript-eslint/visitor-keys": "8.61.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8613,9 +8513,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.59.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.59.3.tgz", - "integrity": "sha512-PcIJHjmaREXLgIAIzLnSY9VucEzz8FKXsRgFa1DmdGCK/5tJpW03TKJF01Q6VZd1lLdz2sIKPWaDUZN9dp//dw==", + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.61.1.tgz", + "integrity": "sha512-UN/H4di+OO7EWx2ovME+8t31YO+KVnK0RRKEHR3kOt21/Ay8BOq3M1OMvWs5vNiqcFCYGYoxK3MXPZzmMUE+yg==", "license": "MIT", "peer": true, "engines": { @@ -8630,15 +8530,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.59.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.59.3.tgz", - "integrity": "sha512-g71d8QD8UaiHGvrJwyIS1hCX5r63w6Jll+4VEYhEAHXTDIqX1JgxhTAbEHtKntL9kuc4jRo7/GWw5xfCepSccQ==", + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.61.1.tgz", + "integrity": "sha512-GYRicKmVK0C4fsKgaACaknOUAq9Oa2kwsjnpFhFcS/5p4Ht5IP9OVLbgIgcK4SRk92nVHFluurg1lumD9dBcLw==", "license": "MIT", "peer": true, "dependencies": { - "@typescript-eslint/types": "8.59.3", - "@typescript-eslint/typescript-estree": "8.59.3", - "@typescript-eslint/utils": "8.59.3", + "@typescript-eslint/types": "8.61.1", + "@typescript-eslint/typescript-estree": "8.61.1", + "@typescript-eslint/utils": "8.61.1", "debug": "^4.4.3", "ts-api-utils": "^2.5.0" }, @@ -8655,9 +8555,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.59.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.59.3.tgz", - "integrity": "sha512-ePFoH0g4ludssdRFqqDxQePCxU4WQyRa9+XVwjm7yLn0FKhMeoetC+qBEEI1Eyb1pGSDveTIT09Bvw2WhlGayg==", + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.61.1.tgz", + "integrity": "sha512-G+CRlPqLv7Bz1IZVs03x5K59F1veqL0EJUROAdGhKsEq8qOiRiZbI+HUojPq5l0fEGOKModD9br6lObhB8zkoA==", "license": "MIT", "peer": true, "engines": { @@ -8669,16 +8569,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.59.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.59.3.tgz", - "integrity": "sha512-CbRjVRAf7Lr9Kr8RopKcbY45p2VfmmHrm0ygOCYFi7oU8q19m0Fs/6iHS7kNOmwpp+ob07ZVcAqlxUod9lYdmg==", + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.61.1.tgz", + "integrity": "sha512-u+oQD3BqYWPc8YV9Zab4vaJElJuwOLPRc10Jm1o/qS+6Qwen14HCWwx0Seo4LnSn2wxea2Ik8DxPt2/FHmuhrg==", "license": "MIT", "peer": true, "dependencies": { - "@typescript-eslint/project-service": "8.59.3", - "@typescript-eslint/tsconfig-utils": "8.59.3", - "@typescript-eslint/types": "8.59.3", - "@typescript-eslint/visitor-keys": "8.59.3", + "@typescript-eslint/project-service": "8.61.1", + "@typescript-eslint/tsconfig-utils": "8.61.1", + "@typescript-eslint/types": "8.61.1", + "@typescript-eslint/visitor-keys": "8.61.1", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", @@ -8736,16 +8636,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.59.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.59.3.tgz", - "integrity": "sha512-JAvT14goBzRzzzZyqq3P9BLArIxTtQURUtFgQ/V7FO+eU+Gg6ES+5ymOPP1wRxXcxAYeivCk4uS3jCKWI1K8Zg==", + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.61.1.tgz", + "integrity": "sha512-1+P/3Dj6jvtybE1q0HQ6yBt/gq+oKJyLdEv4HdnqasaEXRSYCAsD59mXEVQnM/ULNdQxbX77tdG4jPRjIS6knA==", "license": "MIT", "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.59.3", - "@typescript-eslint/types": "8.59.3", - "@typescript-eslint/typescript-estree": "8.59.3" + "@typescript-eslint/scope-manager": "8.61.1", + "@typescript-eslint/types": "8.61.1", + "@typescript-eslint/typescript-estree": "8.61.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8760,13 +8660,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.59.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.59.3.tgz", - "integrity": "sha512-f1UQF7ggd42YiwI5wGrRaPsa+P0CINBlrkLPmGfpq/u/I/oVtecoEIfFR9ag/oa1sLOsRNZ6xehf6qMZhQGBDg==", + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.61.1.tgz", + "integrity": "sha512-6fJ9MHWtK14C1DSkiMlHUSOmrVebL7150xZJBlJiL62jjhIA4JmOq6flwBgDxIdBKKdoiZRel+dfPD5MLfny3w==", "license": "MIT", "peer": true, "dependencies": { - "@typescript-eslint/types": "8.59.3", + "@typescript-eslint/types": "8.61.1", "eslint-visitor-keys": "^5.0.0" }, "engines": { @@ -8791,9 +8691,9 @@ } }, "node_modules/@unrs/resolver-binding-android-arm-eabi": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz", - "integrity": "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.12.2.tgz", + "integrity": "sha512-g5T90pqg1bo/7mytQx6F4iBNC0Wsh9cu+z9veDbFjc7HjpesJFWD7QMS0NGStXM075+7dJPPVvBbpZlnrdpi/w==", "cpu": [ "arm" ], @@ -8805,9 +8705,9 @@ "peer": true }, "node_modules/@unrs/resolver-binding-android-arm64": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.11.1.tgz", - "integrity": "sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.12.2.tgz", + "integrity": "sha512-YGCRZv/9GLhwmz6mYDeTsm/92BAyR28l6c2ReweVW5pWgfsitWLY8upvfRlGdoyD8HjeTHSYJWyZGD4KJA/nFQ==", "cpu": [ "arm64" ], @@ -8819,9 +8719,9 @@ "peer": true }, "node_modules/@unrs/resolver-binding-darwin-arm64": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz", - "integrity": "sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.12.2.tgz", + "integrity": "sha512-u9DiNT1auQMO20A9SyTuG3wUgQWB9Z7KjAg0uFuCDR1FsAY8A0CG2S6JpHS1xwm/w1G08bjXZDcyOCjv1WAm2w==", "cpu": [ "arm64" ], @@ -8833,9 +8733,9 @@ "peer": true }, "node_modules/@unrs/resolver-binding-darwin-x64": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.11.1.tgz", - "integrity": "sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.12.2.tgz", + "integrity": "sha512-f7rPLi/T1HVKZu/u6t87lroib16n8vrSzcyxI7lg4BGO9UF26KhQL44sd9eOUgrTYhvRXtWOIZT5PejdPyJfUA==", "cpu": [ "x64" ], @@ -8847,9 +8747,9 @@ "peer": true }, "node_modules/@unrs/resolver-binding-freebsd-x64": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.11.1.tgz", - "integrity": "sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.12.2.tgz", + "integrity": "sha512-BpcOjWCJub6nRZUS2zA20pmLvjtqAtGejETaIyRLiZiQf++cbrjltLA5NN/xaXfqeOBOSlMFbemIl5/S5tljmg==", "cpu": [ "x64" ], @@ -8861,9 +8761,9 @@ "peer": true }, "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.11.1.tgz", - "integrity": "sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.12.2.tgz", + "integrity": "sha512-vZTDvdSISZjJx66OzJqtsOhzifbqRjbmI1Mnu49fQDwog5GtDI4QidRiEAYbZCRj9C8YZEW+3ZjqsyS9GR4k2A==", "cpu": [ "arm" ], @@ -8875,9 +8775,9 @@ "peer": true }, "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.11.1.tgz", - "integrity": "sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.12.2.tgz", + "integrity": "sha512-BiPI+IrIlwcW4nLLMM21+B1dFPzd55yAVgVGrdgDjNef+ch03GdxrcyaIz8X9SsQirh/kCQ7mviyWlMxdh2D7g==", "cpu": [ "arm" ], @@ -8889,12 +8789,15 @@ "peer": true }, "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.11.1.tgz", - "integrity": "sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.12.2.tgz", + "integrity": "sha512-zJc0H99FEPoFfSrNpa91HYfxzfAJCr502oxNK1cfdC9hlaFI43RT+JFCann9JUgZmLzzntChHyn13Sgn9ljHNg==", "cpu": [ "arm64" ], + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -8903,12 +8806,49 @@ "peer": true }, "node_modules/@unrs/resolver-binding-linux-arm64-musl": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.11.1.tgz", - "integrity": "sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.12.2.tgz", + "integrity": "sha512-KQ3Lki6l+Pz1k/eBipN41ES+YUK30beLGb9YqcB1O542cyLCNE6GaxrfcY3T6EezmGGk84wb5XyO9loTM9tkcA==", "cpu": [ "arm64" ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@unrs/resolver-binding-linux-loong64-gnu": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-loong64-gnu/-/resolver-binding-linux-loong64-gnu-1.12.2.tgz", + "integrity": "sha512-3SJGEh1DborhG6pyxvhPzCT4bbSIVihsvgJc13P1bHG7KLdNDaF9T3gsTwFc7Jw/5Y5/iWOjkEx7Zy0NvCGX3Q==", + "cpu": [ + "loong64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@unrs/resolver-binding-linux-loong64-musl": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-loong64-musl/-/resolver-binding-linux-loong64-musl-1.12.2.tgz", + "integrity": "sha512-jiuG/Obbel7uw1PwHNFfrkiKhLAF6mnyZ6aWlOAVN9WqKm8v0OFGnciJIHu8+CMvXLQ8AD51LPzAoUfT21D5Ew==", + "cpu": [ + "loong64" + ], + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -8917,12 +8857,15 @@ "peer": true }, "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.11.1.tgz", - "integrity": "sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.12.2.tgz", + "integrity": "sha512-q7xRvVpmcfeL+LlZg8Pbbo6QaTZwDU5BaGZbwfhkEsXJn3Was8xYfE0RBH266xZt0rM6B7i8xAYIvjthuUIWHg==", "cpu": [ "ppc64" ], + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -8931,12 +8874,15 @@ "peer": true }, "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.11.1.tgz", - "integrity": "sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.12.2.tgz", + "integrity": "sha512-0CVdx6lcnT3Q9inOH8tsMIOJ6ImndllMjqJHg8RLVdB7Vq4SfkEXl9mCSsVNuNA4MCYycRicCUxPCabVHJRr6A==", "cpu": [ "riscv64" ], + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -8945,12 +8891,15 @@ "peer": true }, "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.11.1.tgz", - "integrity": "sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.12.2.tgz", + "integrity": "sha512-iOwlRo9vnp6R6ohHQS11n0NnfdXx/omhkocmIfaPRpQhKZ+3BDMkkdRVh53qjkFkpPddf+FETA28NwGN7l5l+w==", "cpu": [ "riscv64" ], + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -8959,12 +8908,15 @@ "peer": true }, "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.11.1.tgz", - "integrity": "sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.12.2.tgz", + "integrity": "sha512-HYJtLfXq94q8iZNFT1lknx258wlkkWhZeUXJRqzKBBUJ00CvZ+N33zgbCqimLjsyw5Va6uUxhVa12mI+kaveEw==", "cpu": [ "s390x" ], + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -8973,12 +8925,15 @@ "peer": true }, "node_modules/@unrs/resolver-binding-linux-x64-gnu": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.11.1.tgz", - "integrity": "sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.12.2.tgz", + "integrity": "sha512-mPsUhunKKDih5O96Y6enDQyHc1SqBPlY1E/SfMWDM3EdJ95Z9CArPeCVwCCqbP45ljvivdEk8Fxn+SIb1rDAJQ==", "cpu": [ "x64" ], + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -8987,12 +8942,15 @@ "peer": true }, "node_modules/@unrs/resolver-binding-linux-x64-musl": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.11.1.tgz", - "integrity": "sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.12.2.tgz", + "integrity": "sha512-azrt6+5ydLd8Vt210AAFis/lZevSfPw93EJRIJG+xPu4WCJ8K0kppCTpMyLPcKT7H15M4Jnt2tMp5bOvCkRC6A==", "cpu": [ "x64" ], + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -9000,10 +8958,24 @@ ], "peer": true }, + "node_modules/@unrs/resolver-binding-openharmony-arm64": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-openharmony-arm64/-/resolver-binding-openharmony-arm64-1.12.2.tgz", + "integrity": "sha512-YZ9hP4O0X9PQb8eO980qmLNGH4zT3I9+SZTdt0Pr0YyuGQhYKoOZkV02VzrzyOZJ5xIJ3UFIenKkUkGg8GjgWQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "peer": true + }, "node_modules/@unrs/resolver-binding-wasm32-wasi": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.11.1.tgz", - "integrity": "sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.12.2.tgz", + "integrity": "sha512-tYFDIkMxSflfEc/h92ZWNsZlHSwgimbNHSO3PL2JWQHfCuC2q316jMyYU9TIWZsFK2bQwyK5VAdYgn8ygPj69A==", "cpu": [ "wasm32" ], @@ -9011,29 +8983,18 @@ "optional": true, "peer": true, "dependencies": { - "@napi-rs/wasm-runtime": "^0.2.11" + "@emnapi/core": "1.10.0", + "@emnapi/runtime": "1.10.0", + "@napi-rs/wasm-runtime": "^1.1.4" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@unrs/resolver-binding-wasm32-wasi/node_modules/@napi-rs/wasm-runtime": { - "version": "0.2.12", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz", - "integrity": "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@emnapi/core": "^1.4.3", - "@emnapi/runtime": "^1.4.3", - "@tybys/wasm-util": "^0.10.0" - } - }, "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz", - "integrity": "sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.12.2.tgz", + "integrity": "sha512-qzNyg3xL0VPQmCaUh+N5jSitce6k+uCBfMDesWRnlULOZaqUkaJ0ybdT+UqlAWJoQjuqfIU/0Ptx9bteN4D82g==", "cpu": [ "arm64" ], @@ -9045,9 +9006,9 @@ "peer": true }, "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.11.1.tgz", - "integrity": "sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.12.2.tgz", + "integrity": "sha512-WD9sY00OfpHVGfsnHZoA8jVT+esS/Bg8z8jzxp5BnDCjjwsuKsPQrzswwpFy4J1AUJbXPRfkpcX0mXrzeXW79g==", "cpu": [ "ia32" ], @@ -9059,9 +9020,9 @@ "peer": true }, "node_modules/@unrs/resolver-binding-win32-x64-msvc": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz", - "integrity": "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.12.2.tgz", + "integrity": "sha512-nAB74NfSNKknqQ1RrYj6uz8FcXEomu/MATJZxh/x+BArzN2U3JbOYC0APYzUIGhVY3m5hRxA8VPNdPBoG8txlA==", "cpu": [ "x64" ], @@ -9093,14 +9054,14 @@ } }, "node_modules/@vitest/coverage-v8": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.1.0.tgz", - "integrity": "sha512-nDWulKeik2bL2Va/Wl4x7DLuTKAXa906iRFooIRPR+huHkcvp9QDkPQ2RJdmjOFrqOqvNfoSQLF68deE3xC3CQ==", + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.1.9.tgz", + "integrity": "sha512-G9/lgqibheLVBDRuya45EbsEXTYcWoSG+TLg7i2axuzx0Eq62eXn+aWXyaVdV5vKvFSWd6ywcX8hA7la9Pvu8g==", "dev": true, "license": "MIT", "dependencies": { "@bcoe/v8-coverage": "^1.0.2", - "@vitest/utils": "4.1.0", + "@vitest/utils": "4.1.9", "ast-v8-to-istanbul": "^1.0.0", "istanbul-lib-coverage": "^3.2.2", "istanbul-lib-report": "^3.0.1", @@ -9108,14 +9069,14 @@ "magicast": "^0.5.2", "obug": "^2.1.1", "std-env": "^4.0.0-rc.1", - "tinyrainbow": "^3.0.3" + "tinyrainbow": "^3.1.0" }, "funding": { "url": "https://opencollective.com/vitest" }, "peerDependencies": { - "@vitest/browser": "4.1.0", - "vitest": "4.1.0" + "@vitest/browser": "4.1.9", + "vitest": "4.1.9" }, "peerDependenciesMeta": { "@vitest/browser": { @@ -9124,31 +9085,31 @@ } }, "node_modules/@vitest/expect": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.0.tgz", - "integrity": "sha512-EIxG7k4wlWweuCLG9Y5InKFwpMEOyrMb6ZJ1ihYu02LVj/bzUwn2VMU+13PinsjRW75XnITeFrQBMH5+dLvCDA==", + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.9.tgz", + "integrity": "sha512-vl/rYsUKcBr3SnQn166+XR5ZQcgMx3DQhFWdfli/cWpLnLUmbxZvyrJZotLFUryib+LtArYMSTJ5RbQ57ZqrlA==", "dev": true, "license": "MIT", "dependencies": { "@standard-schema/spec": "^1.1.0", "@types/chai": "^5.2.2", - "@vitest/spy": "4.1.0", - "@vitest/utils": "4.1.0", + "@vitest/spy": "4.1.9", + "@vitest/utils": "4.1.9", "chai": "^6.2.2", - "tinyrainbow": "^3.0.3" + "tinyrainbow": "^3.1.0" }, "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/@vitest/mocker": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.0.tgz", - "integrity": "sha512-evxREh+Hork43+Y4IOhTo+h5lGmVRyjqI739Rz4RlUPqwrkFFDF6EMvOOYjTx4E8Tl6gyCLRL8Mu7Ry12a13Tw==", + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.9.tgz", + "integrity": "sha512-EVkXzBjrPGM+cK8/ANWgBrkUCfJfb38/EfTSO8h7pWvKkyPkpWxvR7BkD2MyItMF62C97zAEoqdpUixwR/e+Rw==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/spy": "4.1.0", + "@vitest/spy": "4.1.9", "estree-walker": "^3.0.3", "magic-string": "^0.30.21" }, @@ -9157,7 +9118,7 @@ }, "peerDependencies": { "msw": "^2.4.9", - "vite": "^6.0.0 || ^7.0.0 || ^8.0.0-0" + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "msw": { @@ -9169,26 +9130,26 @@ } }, "node_modules/@vitest/pretty-format": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.0.tgz", - "integrity": "sha512-3RZLZlh88Ib0J7NQTRATfc/3ZPOnSUn2uDBUoGNn5T36+bALixmzphN26OUD3LRXWkJu4H0s5vvUeqBiw+kS0A==", + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.9.tgz", + "integrity": "sha512-s0iufns3iIFitdgm+YR7g1whCAaGtXz459VS9/PqyKDEEFgYIhsHOQmXgIgDuYCt7DeQmiZT0Qe2OA2p4ZPu5A==", "dev": true, "license": "MIT", "dependencies": { - "tinyrainbow": "^3.0.3" + "tinyrainbow": "^3.1.0" }, "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/@vitest/runner": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.0.tgz", - "integrity": "sha512-Duvx2OzQ7d6OjchL+trw+aSrb9idh7pnNfxrklo14p3zmNL4qPCDeIJAK+eBKYjkIwG96Bc6vYuxhqDXQOWpoQ==", + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.9.tgz", + "integrity": "sha512-KXLMDtc7oe70+3mJfGrPUWPesswH+3sTxAMAMl8DG7I8IUQT4XW718dY5ID3vPUcmlu27CcKfY4P3h3I29SLJg==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/utils": "4.1.0", + "@vitest/utils": "4.1.9", "pathe": "^2.0.3" }, "funding": { @@ -9196,14 +9157,14 @@ } }, "node_modules/@vitest/snapshot": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.0.tgz", - "integrity": "sha512-0Vy9euT1kgsnj1CHttwi9i9o+4rRLEaPRSOJ5gyv579GJkNpgJK+B4HSv/rAWixx2wdAFci1X4CEPjiu2bXIMg==", + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.9.tgz", + "integrity": "sha512-Jc7RKGNBo8Z28WYIm0Niej4xdSPByRf6mU58VpHQkd6Zh05rlnA+twjbK5HyeIGHxrzsc3mJgS43uM0CZKzaIA==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "4.1.0", - "@vitest/utils": "4.1.0", + "@vitest/pretty-format": "4.1.9", + "@vitest/utils": "4.1.9", "magic-string": "^0.30.21", "pathe": "^2.0.3" }, @@ -9212,9 +9173,9 @@ } }, "node_modules/@vitest/spy": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.0.tgz", - "integrity": "sha512-pz77k+PgNpyMDv2FV6qmk5ZVau6c3R8HC8v342T2xlFxQKTrSeYw9waIJG8KgV9fFwAtTu4ceRzMivPTH6wSxw==", + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.9.tgz", + "integrity": "sha512-fHpsS6mIi+PiEW+vcRVOMkX1oSaPKne3VOclSFICPcGOmfKgXPU5iAah+wcNcj2xPrCCmfq99IDGf+EojhhvhA==", "dev": true, "license": "MIT", "funding": { @@ -9222,37 +9183,37 @@ } }, "node_modules/@vitest/ui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-4.1.0.tgz", - "integrity": "sha512-sTSDtVM1GOevRGsCNhp1mBUHKo9Qlc55+HCreFT4fe99AHxl1QQNXSL3uj4Pkjh5yEuWZIx8E2tVC94nnBZECQ==", + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-4.1.9.tgz", + "integrity": "sha512-U/cRvtqfEPj27FI1n9cyUvi4vXXdcLhjJiI+InYKdk8hP4VrS6RXOjGL7rfFaeBc37iRKANsR6eEzIoC7lmgBQ==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/utils": "4.1.0", + "@vitest/utils": "4.1.9", "fflate": "^0.8.2", - "flatted": "3.4.0", + "flatted": "^3.4.2", "pathe": "^2.0.3", "sirv": "^3.0.2", "tinyglobby": "^0.2.15", - "tinyrainbow": "^3.0.3" + "tinyrainbow": "^3.1.0" }, "funding": { "url": "https://opencollective.com/vitest" }, "peerDependencies": { - "vitest": "4.1.0" + "vitest": "4.1.9" } }, "node_modules/@vitest/utils": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.0.tgz", - "integrity": "sha512-XfPXT6a8TZY3dcGY8EdwsBulFCIw+BeeX0RZn2x/BtiY/75YGh8FeWGG8QISN/WhaqSrE2OrlDgtF8q5uhOTmw==", + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.9.tgz", + "integrity": "sha512-A51o8ymO5PpqlWNnBP9ZHPXDIpuMtTLlGSjN7la4US+LJzoUMyhwjA5QXlm39JexgwHKW4Xjs8Z2d3dLCXOeuA==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "4.1.0", + "@vitest/pretty-format": "4.1.9", "convert-source-map": "^2.0.0", - "tinyrainbow": "^3.0.3" + "tinyrainbow": "^3.1.0" }, "funding": { "url": "https://opencollective.com/vitest" @@ -9405,29 +9366,14 @@ } }, "node_modules/@wordpress/a11y": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@wordpress/a11y/-/a11y-4.41.0.tgz", - "integrity": "sha512-OMv/whQt3eTftN1EIZ1FjbuYQUATzFKUEv+qE8mvfOWTX2wEcVIXrSDJa8iL+h+lpIbsWiwxFYiRlyXSmzVqkQ==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/dom-ready": "^4.41.0", - "@wordpress/i18n": "^6.14.0" - }, - "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" - } - }, - "node_modules/@wordpress/api-fetch": { - "version": "7.41.0", - "resolved": "https://registry.npmjs.org/@wordpress/api-fetch/-/api-fetch-7.41.0.tgz", - "integrity": "sha512-oZ2HWCEa5v32Rvrgqck8ePYXPsJ/3KEdZjfthXQrt/U/D5LIl7AyFZvdqnV3OxHL6tj8fvFOEzB71OHGeV7H9A==", + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@wordpress/a11y/-/a11y-4.48.1.tgz", + "integrity": "sha512-BPU7wRoz2XRmP3ZgVtENPKS4iO5/+bKNid/xLrvD6cP1qMhIGowQsBNqmkP1V5+q71hQM/ID6tpFjeLhmogfPg==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@wordpress/i18n": "^6.14.0", - "@wordpress/url": "^4.41.0" + "@wordpress/dom-ready": "^4.48.1", + "@wordpress/i18n": "^6.21.1" }, "engines": { "node": ">=18.12.0", @@ -9435,9 +9381,9 @@ } }, "node_modules/@wordpress/autop": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@wordpress/autop/-/autop-4.41.0.tgz", - "integrity": "sha512-TpSA6TA6hZVi8EX1wYlLjHrKK2hs2w0Y01shK1Q+EudhFwTLoSsDFVWwuAkvm/Xxx+rLtzzs01QMwG6UAvMeQw==", + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@wordpress/autop/-/autop-4.48.1.tgz", + "integrity": "sha512-vMOdHhXIv559fYsg72AnWACblxZdojIerVeWxlX7a/ptoZK8MjqA0ZVhFsHezTBqdfiFyoRtiRECSFYLXWlSZg==", "dev": true, "license": "GPL-2.0-or-later", "engines": { @@ -9446,9 +9392,9 @@ } }, "node_modules/@wordpress/base-styles": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-6.17.0.tgz", - "integrity": "sha512-6o4Tp9rrGaa2ExnkCjvBZl9CVETFptb6NWtpikrkhGC2HtCSFhXWMzYheK0t+4xSJcssrpm6BMSAQGGGFm6+Tg==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-10.0.1.tgz", + "integrity": "sha512-Kkayj4f6KzcMW2TFaahADE0aoDpYeqadIinvIp0hxY6+zn/uqK1Ml7x5idLZ/jbyzzbVlI31eid3HtblGY3+og==", "dev": true, "license": "GPL-2.0-or-later", "engines": { @@ -9457,9 +9403,9 @@ } }, "node_modules/@wordpress/blob": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@wordpress/blob/-/blob-4.41.0.tgz", - "integrity": "sha512-EDAs8jcRPG6sF6SEEfmNErKpgnuZSUy3f1i2N1gBs82IsNuluCplkyszK3J4wtr5Nu8FyQtL8oMZYoIybt0Kkg==", + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@wordpress/blob/-/blob-4.48.1.tgz", + "integrity": "sha512-iK3dtZu/UtnYpKfQ2aGZM2xrLXK5ff88QNU77XlraipaGV/C7zK2M0+sWY6cVL50TfMR7VX9prZ2XCpE5aRzSg==", "dev": true, "license": "GPL-2.0-or-later", "engines": { @@ -9468,63 +9414,64 @@ } }, "node_modules/@wordpress/block-editor": { - "version": "15.14.0", - "resolved": "https://registry.npmjs.org/@wordpress/block-editor/-/block-editor-15.14.0.tgz", - "integrity": "sha512-OOAUMeqxCidMCrku1dMEUtLc/9OXzifbZlYZbAf5wOLaN+voZlXi6TSxj8CRoU51lWSMyt5/YA3GgHU4bxePJQ==", + "version": "15.21.1", + "resolved": "https://registry.npmjs.org/@wordpress/block-editor/-/block-editor-15.21.1.tgz", + "integrity": "sha512-LCHp/NoYsR7MV0e7vPNBAgtjHqK3ST4VtduxF5nOgxl0K0zuyvDvanb14EQtY4KmR2Gjndgo72/aZ/kfdQbddg==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { "@react-spring/web": "^9.4.5", - "@wordpress/a11y": "^4.41.0", - "@wordpress/api-fetch": "^7.41.0", - "@wordpress/base-styles": "^6.17.0", - "@wordpress/blob": "^4.41.0", - "@wordpress/block-serialization-default-parser": "^5.41.0", - "@wordpress/blocks": "^15.14.0", - "@wordpress/commands": "^1.41.0", - "@wordpress/components": "^32.3.0", - "@wordpress/compose": "^7.41.0", - "@wordpress/data": "^10.41.0", - "@wordpress/dataviews": "^13.0.0", - "@wordpress/date": "^5.41.0", - "@wordpress/deprecated": "^4.41.0", - "@wordpress/dom": "^4.41.0", - "@wordpress/element": "^6.41.0", - "@wordpress/escape-html": "^3.41.0", - "@wordpress/global-styles-engine": "^1.8.0", - "@wordpress/hooks": "^4.41.0", - "@wordpress/html-entities": "^4.41.0", - "@wordpress/i18n": "^6.14.0", - "@wordpress/icons": "^11.8.0", - "@wordpress/image-cropper": "^1.5.0", - "@wordpress/interactivity": "^6.41.0", - "@wordpress/is-shallow-equal": "^5.41.0", - "@wordpress/keyboard-shortcuts": "^5.41.0", - "@wordpress/keycodes": "^4.41.0", - "@wordpress/notices": "^5.41.0", - "@wordpress/preferences": "^4.41.0", - "@wordpress/priority-queue": "^3.41.0", - "@wordpress/private-apis": "^1.41.0", - "@wordpress/rich-text": "^7.41.0", - "@wordpress/style-engine": "^2.41.0", - "@wordpress/token-list": "^3.41.0", - "@wordpress/upload-media": "^0.26.0", - "@wordpress/url": "^4.41.0", - "@wordpress/warning": "^3.41.0", - "@wordpress/wordcount": "^4.41.0", + "@types/react": "^18.3.27", + "@wordpress/a11y": "^4.48.1", + "@wordpress/base-styles": "^10.0.1", + "@wordpress/blob": "^4.48.1", + "@wordpress/block-serialization-default-parser": "^5.48.1", + "@wordpress/blocks": "^15.21.1", + "@wordpress/commands": "^1.48.1", + "@wordpress/components": "^35.0.1", + "@wordpress/compose": "^8.1.1", + "@wordpress/data": "^10.48.1", + "@wordpress/dataviews": "^16.0.1", + "@wordpress/date": "^5.48.1", + "@wordpress/deprecated": "^4.48.1", + "@wordpress/dom": "^4.48.1", + "@wordpress/element": "^8.0.1", + "@wordpress/escape-html": "^3.48.1", + "@wordpress/global-styles-engine": "^1.15.1", + "@wordpress/hooks": "^4.48.1", + "@wordpress/html-entities": "^4.48.1", + "@wordpress/i18n": "^6.21.1", + "@wordpress/icons": "^14.0.1", + "@wordpress/image-cropper": "^1.12.1", + "@wordpress/interactivity": "^6.48.1", + "@wordpress/is-shallow-equal": "^5.48.1", + "@wordpress/keyboard-shortcuts": "^5.48.1", + "@wordpress/keycodes": "^4.48.1", + "@wordpress/notices": "^5.48.1", + "@wordpress/preferences": "^4.48.1", + "@wordpress/priority-queue": "^3.48.1", + "@wordpress/private-apis": "^1.48.1", + "@wordpress/rich-text": "^7.48.1", + "@wordpress/style-engine": "^2.48.1", + "@wordpress/token-list": "^3.48.1", + "@wordpress/ui": "^0.15.1", + "@wordpress/upload-media": "^0.33.1", + "@wordpress/url": "^4.48.1", + "@wordpress/warning": "^3.48.1", + "@wordpress/wordcount": "^4.48.1", "change-case": "^4.1.2", "clsx": "^2.1.1", - "colord": "^2.7.0", - "deepmerge": "^4.3.0", - "diff": "^4.0.2", + "colord": "^2.9.3", + "deepmerge": "^4.3.1", + "diff": "^8.0.3", "fast-deep-equal": "^3.1.3", "memize": "^2.1.0", "parsel-js": "^1.1.2", - "postcss": "^8.4.21", + "postcss": "^8.4.38", "postcss-prefix-selector": "^1.16.0", "postcss-urlrebase": "^1.4.0", "react-autosize-textarea": "^7.1.0", - "react-easy-crop": "^5.0.6", + "react-easy-crop": "^5.4.2", "remove-accents": "^0.5.0" }, "engines": { @@ -9536,50 +9483,130 @@ "react-dom": "^18.0.0" } }, - "node_modules/@wordpress/block-serialization-default-parser": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@wordpress/block-serialization-default-parser/-/block-serialization-default-parser-5.41.0.tgz", - "integrity": "sha512-rJdhfuWhLdvc0zGPUzYbnXb9cN5awQo8/XDxEH9q/5NJUFT/y0N1r5Cws2Cws03qiQLJyKCR0DML7M69V6T/6Q==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" - } - }, - "node_modules/@wordpress/blocks": { - "version": "15.14.0", - "resolved": "https://registry.npmjs.org/@wordpress/blocks/-/blocks-15.14.0.tgz", - "integrity": "sha512-k78BDR4IV+V+n/py6e5br89yxdqTPmUec72aUoiJwnm3FHWHjy6xc2t792WeTMYOsctj1lQFPfxp7LcCuptMWQ==", + "node_modules/@wordpress/block-editor/node_modules/@wordpress/components": { + "version": "35.0.1", + "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-35.0.1.tgz", + "integrity": "sha512-EiTeufX2spZ09kjI8Aa4c7dG6A3WyRSGyHTcCsVnIoE/ykOnAjtGSxnVRAT1KefrJ9RGI8JaTld48wjrB/CS5A==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@wordpress/autop": "^4.41.0", - "@wordpress/blob": "^4.41.0", - "@wordpress/block-serialization-default-parser": "^5.41.0", - "@wordpress/data": "^10.41.0", - "@wordpress/deprecated": "^4.41.0", - "@wordpress/dom": "^4.41.0", - "@wordpress/element": "^6.41.0", - "@wordpress/hooks": "^4.41.0", - "@wordpress/html-entities": "^4.41.0", - "@wordpress/i18n": "^6.14.0", - "@wordpress/is-shallow-equal": "^5.41.0", - "@wordpress/private-apis": "^1.41.0", - "@wordpress/rich-text": "^7.41.0", - "@wordpress/shortcode": "^4.41.0", - "@wordpress/warning": "^3.41.0", + "@ariakit/react": "^0.4.21", + "@date-fns/utc": "^2.1.1", + "@emotion/cache": "^11.14.0", + "@emotion/css": "^11.13.5", + "@emotion/react": "^11.14.0", + "@emotion/serialize": "^1.3.3", + "@emotion/styled": "^11.14.1", + "@emotion/utils": "^1.4.2", + "@floating-ui/react-dom": "^2.0.8", + "@types/gradient-parser": "^1.1.0", + "@types/highlight-words-core": "^1.2.1", + "@types/react": "^18.3.27", + "@use-gesture/react": "^10.3.1", + "@wordpress/a11y": "^4.48.1", + "@wordpress/base-styles": "^10.0.1", + "@wordpress/compose": "^8.1.1", + "@wordpress/date": "^5.48.1", + "@wordpress/deprecated": "^4.48.1", + "@wordpress/dom": "^4.48.1", + "@wordpress/element": "^8.0.1", + "@wordpress/escape-html": "^3.48.1", + "@wordpress/hooks": "^4.48.1", + "@wordpress/html-entities": "^4.48.1", + "@wordpress/i18n": "^6.21.1", + "@wordpress/icons": "^14.0.1", + "@wordpress/is-shallow-equal": "^5.48.1", + "@wordpress/keycodes": "^4.48.1", + "@wordpress/primitives": "^4.48.1", + "@wordpress/private-apis": "^1.48.1", + "@wordpress/rich-text": "^7.48.1", + "@wordpress/style-runtime": "^0.4.1", + "@wordpress/ui": "^0.15.1", + "@wordpress/warning": "^3.48.1", "change-case": "^4.1.2", - "colord": "^2.7.0", + "clsx": "^2.1.1", + "colord": "^2.9.3", + "csstype": "^3.2.3", + "date-fns": "^4.1.0", + "deepmerge": "^4.3.1", "fast-deep-equal": "^3.1.3", - "hpq": "^1.3.0", + "framer-motion": "^11.15.0", + "gradient-parser": "^1.1.1", + "highlight-words-core": "^1.2.2", "is-plain-object": "^5.0.0", "memize": "^2.1.0", - "react-is": "^18.3.0", - "remove-accents": "^0.5.0", - "showdown": "^1.9.1", + "path-to-regexp": "^6.2.1", + "re-resizable": "^6.4.0", + "react-colorful": "^5.6.1", + "react-day-picker": "^9.7.0", + "remove-accents": "^0.5.0", + "uuid": "^14.0.0" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@wordpress/block-editor/node_modules/date-fns": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.4.0.tgz", + "integrity": "sha512-+1UMbeh68lH1SegH83CGWwpb6OHHbpSgr3+s5Eww5M4CAgswBpoWS0AjTOfEJ33HiYKz1hdj/KTFprzXHmq/6w==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kossnocorp" + } + }, + "node_modules/@wordpress/block-serialization-default-parser": { + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@wordpress/block-serialization-default-parser/-/block-serialization-default-parser-5.48.1.tgz", + "integrity": "sha512-REsjN6tT2lXekrjuiu2O0+FYW13QHhy23j7C458zzSjpYcxROtl/T8AozOJYRvG9SkdC9Og3PkEP/9/nGC4IVw==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + } + }, + "node_modules/@wordpress/blocks": { + "version": "15.21.1", + "resolved": "https://registry.npmjs.org/@wordpress/blocks/-/blocks-15.21.1.tgz", + "integrity": "sha512-9VOQGCuDbmyBEp7/+HNgLKscOJfrqMEV6LYpOjF+LehZ7RwolqR03UGuU+xLSPKSVZw0wvmA0SjTm3a2GBxwjg==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@types/react": "^18.3.27", + "@wordpress/autop": "^4.48.1", + "@wordpress/blob": "^4.48.1", + "@wordpress/block-serialization-default-parser": "^5.48.1", + "@wordpress/data": "^10.48.1", + "@wordpress/deprecated": "^4.48.1", + "@wordpress/dom": "^4.48.1", + "@wordpress/element": "^8.0.1", + "@wordpress/hooks": "^4.48.1", + "@wordpress/html-entities": "^4.48.1", + "@wordpress/i18n": "^6.21.1", + "@wordpress/is-shallow-equal": "^5.48.1", + "@wordpress/private-apis": "^1.48.1", + "@wordpress/rich-text": "^7.48.1", + "@wordpress/shortcode": "^4.48.1", + "@wordpress/warning": "^3.48.1", + "change-case": "^4.1.2", + "colord": "^2.9.3", + "fast-deep-equal": "^3.1.3", + "hpq": "^1.3.0", + "is-plain-object": "^5.0.0", + "memize": "^2.1.0", + "react-is": "^18.3.0", + "remove-accents": "^0.5.0", + "showdown": "^1.9.1", "simple-html-tokenizer": "^0.5.7", - "uuid": "^9.0.1" + "uuid": "^14.0.0" }, "engines": { "node": ">=18.12.0", @@ -9589,22 +9616,30 @@ "react": "^18.0.0" } }, + "node_modules/@wordpress/blocks/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, "node_modules/@wordpress/commands": { - "version": "1.41.0", - "resolved": "https://registry.npmjs.org/@wordpress/commands/-/commands-1.41.0.tgz", - "integrity": "sha512-Ce5LFbn937mIGMzhJ7VFjdxnUpUVCQ9OS28s3YPGcEGlsQVBCBXfgIr68/z3XcC5/H9CSKcb7xJVBqN4H1755Q==", + "version": "1.48.1", + "resolved": "https://registry.npmjs.org/@wordpress/commands/-/commands-1.48.1.tgz", + "integrity": "sha512-yFmQ2yB4tOWPqhO+tE8uYyFqcGwxtOJ9uc1yHYfH40oMls3p+TswktsdbBM2gEmoYxfD+d3Nhp/mXGS38pdTdw==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@wordpress/base-styles": "^6.17.0", - "@wordpress/components": "^32.3.0", - "@wordpress/data": "^10.41.0", - "@wordpress/element": "^6.41.0", - "@wordpress/i18n": "^6.14.0", - "@wordpress/icons": "^11.8.0", - "@wordpress/keyboard-shortcuts": "^5.41.0", - "@wordpress/private-apis": "^1.41.0", - "@wordpress/warning": "^3.41.0", + "@wordpress/base-styles": "^10.0.1", + "@wordpress/components": "^35.0.1", + "@wordpress/data": "^10.48.1", + "@wordpress/element": "^8.0.1", + "@wordpress/i18n": "^6.21.1", + "@wordpress/icons": "^14.0.1", + "@wordpress/keyboard-shortcuts": "^5.48.1", + "@wordpress/preferences": "^4.48.1", + "@wordpress/private-apis": "^1.48.1", + "@wordpress/warning": "^3.48.1", "clsx": "^2.1.1", "cmdk": "^1.0.0" }, @@ -9617,10 +9652,10 @@ "react-dom": "^18.0.0" } }, - "node_modules/@wordpress/components": { - "version": "32.3.0", - "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-32.3.0.tgz", - "integrity": "sha512-wGDbN2rXEqTTDRHKA+Yn0Gi/dTiLfVK7u/YPAfkQXzvuV4qMGzOz2sSdxQPKmvmogWa6EA0i8Udo9dBYqG1Nig==", + "node_modules/@wordpress/commands/node_modules/@wordpress/components": { + "version": "35.0.1", + "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-35.0.1.tgz", + "integrity": "sha512-EiTeufX2spZ09kjI8Aa4c7dG6A3WyRSGyHTcCsVnIoE/ykOnAjtGSxnVRAT1KefrJ9RGI8JaTld48wjrB/CS5A==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -9632,29 +9667,108 @@ "@emotion/serialize": "^1.3.3", "@emotion/styled": "^11.14.1", "@emotion/utils": "^1.4.2", + "@floating-ui/react-dom": "^2.0.8", + "@types/gradient-parser": "^1.1.0", + "@types/highlight-words-core": "^1.2.1", + "@types/react": "^18.3.27", + "@use-gesture/react": "^10.3.1", + "@wordpress/a11y": "^4.48.1", + "@wordpress/base-styles": "^10.0.1", + "@wordpress/compose": "^8.1.1", + "@wordpress/date": "^5.48.1", + "@wordpress/deprecated": "^4.48.1", + "@wordpress/dom": "^4.48.1", + "@wordpress/element": "^8.0.1", + "@wordpress/escape-html": "^3.48.1", + "@wordpress/hooks": "^4.48.1", + "@wordpress/html-entities": "^4.48.1", + "@wordpress/i18n": "^6.21.1", + "@wordpress/icons": "^14.0.1", + "@wordpress/is-shallow-equal": "^5.48.1", + "@wordpress/keycodes": "^4.48.1", + "@wordpress/primitives": "^4.48.1", + "@wordpress/private-apis": "^1.48.1", + "@wordpress/rich-text": "^7.48.1", + "@wordpress/style-runtime": "^0.4.1", + "@wordpress/ui": "^0.15.1", + "@wordpress/warning": "^3.48.1", + "change-case": "^4.1.2", + "clsx": "^2.1.1", + "colord": "^2.9.3", + "csstype": "^3.2.3", + "date-fns": "^4.1.0", + "deepmerge": "^4.3.1", + "fast-deep-equal": "^3.1.3", + "framer-motion": "^11.15.0", + "gradient-parser": "^1.1.1", + "highlight-words-core": "^1.2.2", + "is-plain-object": "^5.0.0", + "memize": "^2.1.0", + "path-to-regexp": "^6.2.1", + "re-resizable": "^6.4.0", + "react-colorful": "^5.6.1", + "react-day-picker": "^9.7.0", + "remove-accents": "^0.5.0", + "uuid": "^14.0.0" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@wordpress/commands/node_modules/date-fns": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.4.0.tgz", + "integrity": "sha512-+1UMbeh68lH1SegH83CGWwpb6OHHbpSgr3+s5Eww5M4CAgswBpoWS0AjTOfEJ33HiYKz1hdj/KTFprzXHmq/6w==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kossnocorp" + } + }, + "node_modules/@wordpress/components": { + "version": "32.6.0", + "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-32.6.0.tgz", + "integrity": "sha512-MpOr0mGTkKDRjxK5LKm86Uoj9p9Z6KkrvhkNVi5zVKCftyHVMK+tun7wL2Qn/JZVLbxZpB1kW5sJ5aMf3T2ToA==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@ariakit/react": "^0.4.22", + "@date-fns/utc": "^2.1.1", + "@emotion/cache": "^11.14.0", + "@emotion/css": "^11.13.5", + "@emotion/react": "^11.14.0", + "@emotion/serialize": "^1.3.3", + "@emotion/styled": "^11.14.1", + "@emotion/utils": "^1.4.2", "@floating-ui/react-dom": "2.0.8", "@types/gradient-parser": "1.1.0", "@types/highlight-words-core": "1.2.1", "@types/react": "^18.3.27", "@use-gesture/react": "^10.3.1", - "@wordpress/a11y": "^4.41.0", - "@wordpress/base-styles": "^6.17.0", - "@wordpress/compose": "^7.41.0", - "@wordpress/date": "^5.41.0", - "@wordpress/deprecated": "^4.41.0", - "@wordpress/dom": "^4.41.0", - "@wordpress/element": "^6.41.0", - "@wordpress/escape-html": "^3.41.0", - "@wordpress/hooks": "^4.41.0", - "@wordpress/html-entities": "^4.41.0", - "@wordpress/i18n": "^6.14.0", - "@wordpress/icons": "^11.8.0", - "@wordpress/is-shallow-equal": "^5.41.0", - "@wordpress/keycodes": "^4.41.0", - "@wordpress/primitives": "^4.41.0", - "@wordpress/private-apis": "^1.41.0", - "@wordpress/rich-text": "^7.41.0", - "@wordpress/warning": "^3.41.0", + "@wordpress/a11y": "^4.44.0", + "@wordpress/base-styles": "^6.20.0", + "@wordpress/compose": "^7.44.0", + "@wordpress/date": "^5.44.0", + "@wordpress/deprecated": "^4.44.0", + "@wordpress/dom": "^4.44.0", + "@wordpress/element": "^6.44.0", + "@wordpress/escape-html": "^3.44.0", + "@wordpress/hooks": "^4.44.0", + "@wordpress/html-entities": "^4.44.0", + "@wordpress/i18n": "^6.17.0", + "@wordpress/icons": "^12.2.0", + "@wordpress/is-shallow-equal": "^5.44.0", + "@wordpress/keycodes": "^4.44.0", + "@wordpress/primitives": "^4.44.0", + "@wordpress/private-apis": "^1.44.0", + "@wordpress/rich-text": "^7.44.0", + "@wordpress/warning": "^3.44.0", "change-case": "^4.1.2", "clsx": "^2.1.1", "colord": "^2.7.0", @@ -9683,23 +9797,116 @@ "react-dom": "^18.0.0" } }, + "node_modules/@wordpress/components/node_modules/@wordpress/base-styles": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-6.20.0.tgz", + "integrity": "sha512-Dsug4Zxz2xOFtK6CGThKYXwCqC9Yztw2STKQzwztrX4yW+o6iDbzkxpcwdDhsaVJs0Jt9A4LmJpZPh+pUozzLA==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + } + }, + "node_modules/@wordpress/components/node_modules/@wordpress/compose": { + "version": "7.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-7.46.0.tgz", + "integrity": "sha512-6Yv9Wb6tlA4JYU9bdWWuIWpTTzBAVA1zrYu1GY9x2/mCOckk9iLcEEfbKULxdjwwcMo3SKqvyby4f6kEUw/Wsw==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@types/mousetrap": "^1.6.8", + "@wordpress/deprecated": "^4.46.0", + "@wordpress/dom": "^4.46.0", + "@wordpress/element": "^6.46.0", + "@wordpress/is-shallow-equal": "^5.46.0", + "@wordpress/keycodes": "^4.46.0", + "@wordpress/priority-queue": "^3.46.0", + "@wordpress/undo-manager": "^1.46.0", + "change-case": "^4.1.2", + "mousetrap": "^1.6.5", + "use-memo-one": "^1.1.1" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "react": "^18.0.0" + } + }, + "node_modules/@wordpress/components/node_modules/@wordpress/element": { + "version": "6.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-6.46.0.tgz", + "integrity": "sha512-hjnrqZi0cZVdkmN0xQavKfSQJYAkb9pVSnDPpuX65OLxeD9/EWkIXvFzBb+nH8c4NzKKSqQU96XCTQrH37OCIA==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@types/react": "^18.3.27", + "@types/react-dom": "^18.3.1", + "@wordpress/escape-html": "^3.46.0", + "change-case": "^4.1.2", + "is-plain-object": "^5.0.0", + "react": "^18.3.0", + "react-dom": "^18.3.0" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + } + }, + "node_modules/@wordpress/components/node_modules/@wordpress/icons": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-12.2.0.tgz", + "integrity": "sha512-Fiw7bmfHDNPjTdCrBF23/9K0VN/GUi73d2ZPZaeWdXhTmIX62T9KYvb1c+WnlBkX7GpXgJO6Q8mypQCY9mw5SQ==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/element": "^6.44.0", + "@wordpress/primitives": "^4.44.0", + "change-case": "4.1.2" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "react": "^18.0.0" + } + }, + "node_modules/@wordpress/components/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "deprecated": "uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/@wordpress/compose": { - "version": "7.41.0", - "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-7.41.0.tgz", - "integrity": "sha512-V7z/lz4SdiucDH24eXHp7LeF0LVEkrTYuLLcSkoayZTiimrQnNx0HlZFRVSWIEJ0FrwjVIoFFVCs6gITIZScSQ==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-8.1.1.tgz", + "integrity": "sha512-AEC9yOS5CuTk34F+oiWebhQrxgICnb/v/KScQBUVm6zbs1AMFtu5ku+Zk0A3YTD0tO/hNzXLbvsXhJdh1bGkRA==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { "@types/mousetrap": "^1.6.8", - "@wordpress/deprecated": "^4.41.0", - "@wordpress/dom": "^4.41.0", - "@wordpress/element": "^6.41.0", - "@wordpress/is-shallow-equal": "^5.41.0", - "@wordpress/keycodes": "^4.41.0", - "@wordpress/priority-queue": "^3.41.0", - "@wordpress/undo-manager": "^1.41.0", + "@types/react": "^18.3.27", + "@wordpress/deprecated": "^4.48.1", + "@wordpress/dom": "^4.48.1", + "@wordpress/element": "^8.0.1", + "@wordpress/is-shallow-equal": "^5.48.1", + "@wordpress/keycodes": "^4.48.1", + "@wordpress/priority-queue": "^3.48.1", + "@wordpress/private-apis": "^1.48.1", + "@wordpress/undo-manager": "^1.48.1", "change-case": "^4.1.2", - "clipboard": "^2.0.11", "mousetrap": "^1.6.5", "use-memo-one": "^1.1.1" }, @@ -9712,20 +9919,21 @@ } }, "node_modules/@wordpress/data": { - "version": "10.41.0", - "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-10.41.0.tgz", - "integrity": "sha512-yNp46WoSLkvqSMKKnJZ9xA1n02ITDqASObV5leVNoKnajiUAZbRSR6fBrapacUAg2kYFeGlhBg7IAEFJrwMuqg==", + "version": "10.48.1", + "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-10.48.1.tgz", + "integrity": "sha512-74p4PiDLxS0SAd4tdkPEUF5rtHVtdRzoXExfhkZaumviE56tEceG07YbLjQWpZ+Vl1tZCvkyqLbMHK+Wj6ZerQ==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@wordpress/compose": "^7.41.0", - "@wordpress/deprecated": "^4.41.0", - "@wordpress/element": "^6.41.0", - "@wordpress/is-shallow-equal": "^5.41.0", - "@wordpress/priority-queue": "^3.41.0", - "@wordpress/private-apis": "^1.41.0", - "@wordpress/redux-routine": "^5.41.0", - "deepmerge": "^4.3.0", + "@types/react": "^18.3.27", + "@wordpress/compose": "^8.1.1", + "@wordpress/deprecated": "^4.48.1", + "@wordpress/element": "^8.0.1", + "@wordpress/is-shallow-equal": "^5.48.1", + "@wordpress/priority-queue": "^3.48.1", + "@wordpress/private-apis": "^1.48.1", + "@wordpress/redux-routine": "^5.48.1", + "deepmerge": "^4.3.1", "equivalent-key-map": "^0.2.2", "is-plain-object": "^5.0.0", "is-promise": "^4.0.0", @@ -9742,31 +9950,32 @@ } }, "node_modules/@wordpress/dataviews": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/dataviews/-/dataviews-13.0.0.tgz", - "integrity": "sha512-E1Xp2VOQD2xtoz83tBVaXFd0OV5liaVlK1mDIcLSn54fGMtsyirR31hFHmrCm3vdspWPOKQh5QFdpkc2b0kCiQ==", + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@wordpress/dataviews/-/dataviews-16.0.1.tgz", + "integrity": "sha512-OyDOPvtCIL0AV4wTGSrFHhBVEYwkBJvmfleSjXzGWc09u3BPIiefazoGN4GvtJPJbvieSyelXuVyN+JARIRUug==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { "@ariakit/react": "^0.4.21", - "@wordpress/base-styles": "^6.17.0", - "@wordpress/components": "^32.3.0", - "@wordpress/compose": "^7.41.0", - "@wordpress/data": "^10.41.0", - "@wordpress/date": "^5.41.0", - "@wordpress/deprecated": "^4.41.0", - "@wordpress/element": "^6.41.0", - "@wordpress/i18n": "^6.14.0", - "@wordpress/icons": "^11.8.0", - "@wordpress/keycodes": "^4.41.0", - "@wordpress/primitives": "^4.41.0", - "@wordpress/private-apis": "^1.41.0", - "@wordpress/ui": "^0.8.0", - "@wordpress/warning": "^3.41.0", + "@types/react": "^18.3.27", + "@wordpress/base-styles": "^10.0.1", + "@wordpress/components": "^35.0.1", + "@wordpress/compose": "^8.1.1", + "@wordpress/data": "^10.48.1", + "@wordpress/date": "^5.48.1", + "@wordpress/deprecated": "^4.48.1", + "@wordpress/element": "^8.0.1", + "@wordpress/i18n": "^6.21.1", + "@wordpress/icons": "^14.0.1", + "@wordpress/keycodes": "^4.48.1", + "@wordpress/primitives": "^4.48.1", + "@wordpress/private-apis": "^1.48.1", + "@wordpress/ui": "^0.15.1", + "@wordpress/warning": "^3.48.1", "clsx": "^2.1.1", - "colord": "^2.7.0", + "colord": "^2.9.3", "date-fns": "^4.1.0", - "deepmerge": "4.3.1", + "deepmerge": "^4.3.1", "fast-deep-equal": "^3.1.3", "remove-accents": "^0.5.0" }, @@ -9779,10 +9988,78 @@ "react-dom": "^18.0.0" } }, + "node_modules/@wordpress/dataviews/node_modules/@wordpress/components": { + "version": "35.0.1", + "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-35.0.1.tgz", + "integrity": "sha512-EiTeufX2spZ09kjI8Aa4c7dG6A3WyRSGyHTcCsVnIoE/ykOnAjtGSxnVRAT1KefrJ9RGI8JaTld48wjrB/CS5A==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@ariakit/react": "^0.4.21", + "@date-fns/utc": "^2.1.1", + "@emotion/cache": "^11.14.0", + "@emotion/css": "^11.13.5", + "@emotion/react": "^11.14.0", + "@emotion/serialize": "^1.3.3", + "@emotion/styled": "^11.14.1", + "@emotion/utils": "^1.4.2", + "@floating-ui/react-dom": "^2.0.8", + "@types/gradient-parser": "^1.1.0", + "@types/highlight-words-core": "^1.2.1", + "@types/react": "^18.3.27", + "@use-gesture/react": "^10.3.1", + "@wordpress/a11y": "^4.48.1", + "@wordpress/base-styles": "^10.0.1", + "@wordpress/compose": "^8.1.1", + "@wordpress/date": "^5.48.1", + "@wordpress/deprecated": "^4.48.1", + "@wordpress/dom": "^4.48.1", + "@wordpress/element": "^8.0.1", + "@wordpress/escape-html": "^3.48.1", + "@wordpress/hooks": "^4.48.1", + "@wordpress/html-entities": "^4.48.1", + "@wordpress/i18n": "^6.21.1", + "@wordpress/icons": "^14.0.1", + "@wordpress/is-shallow-equal": "^5.48.1", + "@wordpress/keycodes": "^4.48.1", + "@wordpress/primitives": "^4.48.1", + "@wordpress/private-apis": "^1.48.1", + "@wordpress/rich-text": "^7.48.1", + "@wordpress/style-runtime": "^0.4.1", + "@wordpress/ui": "^0.15.1", + "@wordpress/warning": "^3.48.1", + "change-case": "^4.1.2", + "clsx": "^2.1.1", + "colord": "^2.9.3", + "csstype": "^3.2.3", + "date-fns": "^4.1.0", + "deepmerge": "^4.3.1", + "fast-deep-equal": "^3.1.3", + "framer-motion": "^11.15.0", + "gradient-parser": "^1.1.1", + "highlight-words-core": "^1.2.2", + "is-plain-object": "^5.0.0", + "memize": "^2.1.0", + "path-to-regexp": "^6.2.1", + "re-resizable": "^6.4.0", + "react-colorful": "^5.6.1", + "react-day-picker": "^9.7.0", + "remove-accents": "^0.5.0", + "uuid": "^14.0.0" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, "node_modules/@wordpress/dataviews/node_modules/date-fns": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz", - "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.4.0.tgz", + "integrity": "sha512-+1UMbeh68lH1SegH83CGWwpb6OHHbpSgr3+s5Eww5M4CAgswBpoWS0AjTOfEJ33HiYKz1hdj/KTFprzXHmq/6w==", "dev": true, "license": "MIT", "funding": { @@ -9791,13 +10068,13 @@ } }, "node_modules/@wordpress/date": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@wordpress/date/-/date-5.41.0.tgz", - "integrity": "sha512-cfFvqlTiLDyhMtTqTMxmujvFfohz6tUxIBVMji5xc2hHyv0z/8XZw1Z0JiGpEr3blBXp/Y0R3E60EQ4G83iU7Q==", + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@wordpress/date/-/date-5.48.1.tgz", + "integrity": "sha512-SD6AzzmxtsrTbSkZFV6nklYzYgZFDuCxX41kxRmIQGTBNP0f4DvLjwlUCpLN/lHEerctx4XdkZAghvGOHOKvbg==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@wordpress/deprecated": "^4.41.0", + "@wordpress/deprecated": "^4.48.1", "moment": "^2.29.4", "moment-timezone": "^0.5.40" }, @@ -9807,12 +10084,12 @@ } }, "node_modules/@wordpress/dependency-extraction-webpack-plugin": { - "version": "6.41.0", - "resolved": "https://registry.npmjs.org/@wordpress/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-6.41.0.tgz", - "integrity": "sha512-OYg+g+MFmHRRUcjl5hNOrBx56GRkp6MNhHuiAvYP7vFJ8dxwzKmk3AHfqr25QLt3K62ODHK1aaikE1dZt40kNg==", + "version": "6.48.1", + "resolved": "https://registry.npmjs.org/@wordpress/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-6.48.1.tgz", + "integrity": "sha512-mot0QEwrPhxmaCEzl/GzltbaUYkq92PmNnqIxm0sBSUxqXdWFeoAgkRCjrtHOcs480d8p5ETYL0Lyx7fBtOHMw==", "license": "GPL-2.0-or-later", "dependencies": { - "json2php": "^0.0.7" + "json2php": "^0.0.9" }, "engines": { "node": ">=18.12.0", @@ -9823,19 +10100,18 @@ } }, "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/json2php": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/json2php/-/json2php-0.0.7.tgz", - "integrity": "sha512-dnSoUiLAoVaMXxFsVi4CrPVYMKOuDBXTghXSmMINX44RZ8WM9cXlY7UqrQnlAcODCVO7FV3+8t/5nDKAjimLfg==", + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/json2php/-/json2php-0.0.9.tgz", + "integrity": "sha512-fQMYwvPsQt8hxRnCGyg1r2JVi6yL8Um0DIIawiKiMK9yhAAkcRNj5UsBWoaFvFzPpcWbgw9L6wzj+UMYA702Mw==", "license": "BSD" }, "node_modules/@wordpress/deprecated": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@wordpress/deprecated/-/deprecated-4.41.0.tgz", - "integrity": "sha512-AyrWS5AcVqjtzDIPCTmwZCtcXadBhjmlG7HRVtREHD6UX+FkaWMUjkmMOA8i33ExpwEjJ9GK2M/u0b7yhZxSPQ==", - "dev": true, + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@wordpress/deprecated/-/deprecated-4.48.1.tgz", + "integrity": "sha512-ZfJSCxWr4Ss5qGja9W7L6+8vcrbX0n+tKDe2TrYvTq6GiqEc+0MrajIl4vi/58jhceHbSze1ITX/ocC3Ed3NLg==", "license": "GPL-2.0-or-later", "dependencies": { - "@wordpress/hooks": "^4.41.0" + "@wordpress/hooks": "^4.48.1" }, "engines": { "node": ">=18.12.0", @@ -9843,13 +10119,13 @@ } }, "node_modules/@wordpress/dom": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@wordpress/dom/-/dom-4.41.0.tgz", - "integrity": "sha512-0E0Ps4p9TyiPR0Z6f0L4VmSD9agQBtQ0GIUrijZ9MTArBKbUm7NAUdrJNkbZOg5+AdtmTDjiqxTzwF70EBJhRw==", + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@wordpress/dom/-/dom-4.48.1.tgz", + "integrity": "sha512-UmouS3KAAUf6q90adAM37FZ3Tq+w+5UfNVUEKRtZjzbH3gMZJTKmYXpG9dkYyLLmicXgOrcG1GQ0qTX91MjAuA==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@wordpress/deprecated": "^4.41.0" + "@wordpress/deprecated": "^4.48.1" }, "engines": { "node": ">=18.12.0", @@ -9857,9 +10133,9 @@ } }, "node_modules/@wordpress/dom-ready": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@wordpress/dom-ready/-/dom-ready-4.41.0.tgz", - "integrity": "sha512-cxYJYa4UOmmn4LZibNAREz0RnMmiv2LNxPZl6OcxnZAv8X2fwhU6bbUO//avdhar1cki2bdntISawsc0Rcf0xg==", + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@wordpress/dom-ready/-/dom-ready-4.48.1.tgz", + "integrity": "sha512-EYd2H8cYSk8H3wSnTK1wTtuC+hOCmMmZrCEBWzgHevs1n3B9g0nwBafSiRWpzc0vA2vculkNNtlSfy3ByJ2hag==", "dev": true, "license": "GPL-2.0-or-later", "engines": { @@ -9868,18 +10144,19 @@ } }, "node_modules/@wordpress/element": { - "version": "6.41.0", - "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-6.41.0.tgz", - "integrity": "sha512-1rM2MhP2epOfsqOz2spOaGmCU/ZtwHdLEF5GkCNEih+Mt2v+oM1xWbSNvt8RoP7Fz7DepBfaDpl6rkVYZgAwkQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-8.0.1.tgz", + "integrity": "sha512-otYhxfm6ZKkcLCl/tI1rB70z6MVDvTL+RiPOWXi4qm0niJf4isSXCcB91ffj1gzJXKbEpszHfysIoU9L2gCSGQ==", "license": "GPL-2.0-or-later", "dependencies": { "@types/react": "^18.3.27", "@types/react-dom": "^18.3.1", - "@wordpress/escape-html": "^3.41.0", + "@wordpress/deprecated": "^4.48.1", + "@wordpress/escape-html": "^3.48.1", "change-case": "^4.1.2", "is-plain-object": "^5.0.0", - "react": "^18.3.0", - "react-dom": "^18.3.0" + "react": "^18.3.1", + "react-dom": "^18.3.1" }, "engines": { "node": ">=18.12.0", @@ -9887,9 +10164,9 @@ } }, "node_modules/@wordpress/escape-html": { - "version": "3.41.0", - "resolved": "https://registry.npmjs.org/@wordpress/escape-html/-/escape-html-3.41.0.tgz", - "integrity": "sha512-xkif63w2OwcOZiJ+YKOmbuUnXAH0PM7YExA6UdQwxDGunED8L/4BY9f0nTEnDN9wFiUCYnqF4MIvMnWEnPwzUA==", + "version": "3.48.1", + "resolved": "https://registry.npmjs.org/@wordpress/escape-html/-/escape-html-3.48.1.tgz", + "integrity": "sha512-TQJK6sBcmMA5+xMjiAFuivcZ27wUgAfVCgB/fGf7YoxVC+BnCCIanAsHgpY0d4juGUK6LXzDEhU6ZgOpGkGqIQ==", "license": "GPL-2.0-or-later", "engines": { "node": ">=18.12.0", @@ -9897,18 +10174,18 @@ } }, "node_modules/@wordpress/global-styles-engine": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@wordpress/global-styles-engine/-/global-styles-engine-1.8.0.tgz", - "integrity": "sha512-l8eOwkihry/rBwTv50ihNBojhWL9dG/0mztgVMzW7Kp5mh0jiomVGtJRPggfWiYVecOuFg4WkDncEUN9HW8poA==", + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/@wordpress/global-styles-engine/-/global-styles-engine-1.15.1.tgz", + "integrity": "sha512-jpMnDkAE1stcoSV19hyet0b2wySMz1kaplNivruKwUyQilkQRIhqlJFiEKBVt513m9I9CbEPA0WKcTpfqJxIMA==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@wordpress/blocks": "^15.14.0", - "@wordpress/data": "^10.41.0", - "@wordpress/i18n": "^6.14.0", - "@wordpress/style-engine": "^2.41.0", - "colord": "^2.9.2", - "deepmerge": "^4.3.0", + "@wordpress/blocks": "^15.21.1", + "@wordpress/data": "^10.48.1", + "@wordpress/i18n": "^6.21.1", + "@wordpress/style-engine": "^2.48.1", + "colord": "^2.9.3", + "deepmerge": "^4.3.1", "fast-deep-equal": "^3.1.3", "is-plain-object": "^5.0.0", "memize": "^2.1.0" @@ -9919,10 +10196,9 @@ } }, "node_modules/@wordpress/hooks": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-4.41.0.tgz", - "integrity": "sha512-WDbLcLA3DOcjDGNLcxHZTPyhltWd/75G2hxFphe/hzcJUNmgysDTSSXO/bBrIWf6rwWD6TS3ejCaGC9J6DwYiw==", - "dev": true, + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-4.48.1.tgz", + "integrity": "sha512-QZh3Cv9TMJkrCQikuZSsDKTgX+6BBzYJe0MFKp7yP8drj/dtRpkqo5+eYmovBq3pk+HoyP7UJ1vTOb3GPJeU6Q==", "license": "GPL-2.0-or-later", "engines": { "node": ">=18.12.0", @@ -9930,9 +10206,9 @@ } }, "node_modules/@wordpress/html-entities": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@wordpress/html-entities/-/html-entities-4.41.0.tgz", - "integrity": "sha512-Q+3VNVZiHqzWgrhNNsqrOp+LWt1cDANcP46VuJ6cOOKazA1vA2JcR/0QEoa7HrYCS+KdCCFdwuUpbjQfw2wgrQ==", + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@wordpress/html-entities/-/html-entities-4.48.1.tgz", + "integrity": "sha512-Gq6j3yl+m0pc0989jFjAgYbtdwHyUS/5PR39zg+hQfq1IWiqCwfhFlJAqc8ymwx/gSklrxf9mmyhBwmUPWtMcw==", "dev": true, "license": "GPL-2.0-or-later", "engines": { @@ -9941,14 +10217,14 @@ } }, "node_modules/@wordpress/i18n": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-6.14.0.tgz", - "integrity": "sha512-Rl0zS9eZYxixCpRfQ5pdvStyp9BxZsRgqjE1Ad55ZQl7V8Xv92s/4UG/0FlkBk1wbnrKCmHaaD9lfJJeqEGg0Q==", + "version": "6.21.1", + "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-6.21.1.tgz", + "integrity": "sha512-qBbDJTRCtMfEzTVtzOa/fZf8XlU/JY3nI4MSdxyRQKduFanbXvzTRqJSSEIpZS4ACJTyUqafZX8zEZIH5CrNHQ==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { "@tannin/sprintf": "^1.3.2", - "@wordpress/hooks": "^4.41.0", + "@wordpress/hooks": "^4.48.1", "gettext-parser": "^1.3.1", "memize": "^2.1.0", "tannin": "^1.2.0" @@ -9962,15 +10238,16 @@ } }, "node_modules/@wordpress/icons": { - "version": "11.8.0", - "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-11.8.0.tgz", - "integrity": "sha512-ZMNHApHMmPLpNnNLfPLRf6XWoPhZFNKFKdpMlhA6Lx04J1hLVyLRz8PuM+1o3ByxD2ZiExfSRhdmI+7VvEg6DA==", + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-14.0.1.tgz", + "integrity": "sha512-Vf3wXrS8JWwozKGQ3vS8WQBwmzZyk0ih3W92kE+xPDK2K5QPrlW4MjbSV8gYbNAHC6NECPSWrEGI3DmbgvAP3w==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@wordpress/element": "^6.41.0", - "@wordpress/primitives": "^4.41.0", - "change-case": "4.1.2" + "@types/react": "^18.3.27", + "@wordpress/element": "^8.0.1", + "@wordpress/primitives": "^4.48.1", + "change-case": "^4.1.2" }, "engines": { "node": ">=18.12.0", @@ -9981,15 +10258,16 @@ } }, "node_modules/@wordpress/image-cropper": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@wordpress/image-cropper/-/image-cropper-1.5.0.tgz", - "integrity": "sha512-JfysmlASPB0NBdqhDRfOfCkV2zEmonQjg8u3mnBQQka07YL2lzfvH48h2h1PpuyPZqFnZzNJJa0wYKpm805MRQ==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@wordpress/image-cropper/-/image-cropper-1.12.1.tgz", + "integrity": "sha512-r7t5fzUGzeCt2Pkkp6lgh/a2UKsgW+okeR7Ldw29snE96JZcjYJHyJfRfqOGFZVxrCcoDe2XaEy+Q6PdL+aJhw==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@wordpress/components": "^32.3.0", - "@wordpress/element": "^6.41.0", - "@wordpress/i18n": "^6.14.0", + "@types/react": "^18.3.27", + "@wordpress/components": "^35.0.1", + "@wordpress/element": "^8.0.1", + "@wordpress/i18n": "^6.21.1", "clsx": "^2.1.1", "dequal": "^2.0.3", "react-easy-crop": "^5.4.2" @@ -10003,25 +10281,104 @@ "react-dom": "^18.0.0" } }, - "node_modules/@wordpress/interactivity": { - "version": "6.41.0", - "resolved": "https://registry.npmjs.org/@wordpress/interactivity/-/interactivity-6.41.0.tgz", - "integrity": "sha512-dFPIP4Yh2WvXkkidy+jIiIOA9AgXiXJABDwrbG+AIfUk/omyma1MX9a2E6winWjNC6IGqcjmr27iaNH93xLWzQ==", + "node_modules/@wordpress/image-cropper/node_modules/@wordpress/components": { + "version": "35.0.1", + "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-35.0.1.tgz", + "integrity": "sha512-EiTeufX2spZ09kjI8Aa4c7dG6A3WyRSGyHTcCsVnIoE/ykOnAjtGSxnVRAT1KefrJ9RGI8JaTld48wjrB/CS5A==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@preact/signals": "^1.3.0", - "preact": "^10.24.2" - }, - "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" - } - }, + "@ariakit/react": "^0.4.21", + "@date-fns/utc": "^2.1.1", + "@emotion/cache": "^11.14.0", + "@emotion/css": "^11.13.5", + "@emotion/react": "^11.14.0", + "@emotion/serialize": "^1.3.3", + "@emotion/styled": "^11.14.1", + "@emotion/utils": "^1.4.2", + "@floating-ui/react-dom": "^2.0.8", + "@types/gradient-parser": "^1.1.0", + "@types/highlight-words-core": "^1.2.1", + "@types/react": "^18.3.27", + "@use-gesture/react": "^10.3.1", + "@wordpress/a11y": "^4.48.1", + "@wordpress/base-styles": "^10.0.1", + "@wordpress/compose": "^8.1.1", + "@wordpress/date": "^5.48.1", + "@wordpress/deprecated": "^4.48.1", + "@wordpress/dom": "^4.48.1", + "@wordpress/element": "^8.0.1", + "@wordpress/escape-html": "^3.48.1", + "@wordpress/hooks": "^4.48.1", + "@wordpress/html-entities": "^4.48.1", + "@wordpress/i18n": "^6.21.1", + "@wordpress/icons": "^14.0.1", + "@wordpress/is-shallow-equal": "^5.48.1", + "@wordpress/keycodes": "^4.48.1", + "@wordpress/primitives": "^4.48.1", + "@wordpress/private-apis": "^1.48.1", + "@wordpress/rich-text": "^7.48.1", + "@wordpress/style-runtime": "^0.4.1", + "@wordpress/ui": "^0.15.1", + "@wordpress/warning": "^3.48.1", + "change-case": "^4.1.2", + "clsx": "^2.1.1", + "colord": "^2.9.3", + "csstype": "^3.2.3", + "date-fns": "^4.1.0", + "deepmerge": "^4.3.1", + "fast-deep-equal": "^3.1.3", + "framer-motion": "^11.15.0", + "gradient-parser": "^1.1.1", + "highlight-words-core": "^1.2.2", + "is-plain-object": "^5.0.0", + "memize": "^2.1.0", + "path-to-regexp": "^6.2.1", + "re-resizable": "^6.4.0", + "react-colorful": "^5.6.1", + "react-day-picker": "^9.7.0", + "remove-accents": "^0.5.0", + "uuid": "^14.0.0" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@wordpress/image-cropper/node_modules/date-fns": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.4.0.tgz", + "integrity": "sha512-+1UMbeh68lH1SegH83CGWwpb6OHHbpSgr3+s5Eww5M4CAgswBpoWS0AjTOfEJ33HiYKz1hdj/KTFprzXHmq/6w==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kossnocorp" + } + }, + "node_modules/@wordpress/interactivity": { + "version": "6.48.1", + "resolved": "https://registry.npmjs.org/@wordpress/interactivity/-/interactivity-6.48.1.tgz", + "integrity": "sha512-Qc+VoBt2XNoOuVMZwjQtZJ8iQfh7mJsSjPlxzSMyYRHGPa+WqfWO50LY/vyXYPs5s5FoMsb3S64ty/p//1DI2w==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@preact/signals": "^1.3.0", + "preact": "^10.29.1" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + } + }, "node_modules/@wordpress/is-shallow-equal": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@wordpress/is-shallow-equal/-/is-shallow-equal-5.41.0.tgz", - "integrity": "sha512-1LK5Kr/PoAiBgSxNJysZx3I1cW7MffF8bNnKiauK0+pDhHl1sbDky3rc1wkhQ3QHRrHWscDlVJ7nr01bjQAOFw==", + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@wordpress/is-shallow-equal/-/is-shallow-equal-5.48.1.tgz", + "integrity": "sha512-qOn4doqp8Xr5vOdF7kni5BThkMLxFA9fZIUVZo/lzs+/rwV7rwdQQXtq/PXnHcOWDOqHSXBVlUciV7clDE6aeA==", "dev": true, "license": "GPL-2.0-or-later", "engines": { @@ -10030,15 +10387,16 @@ } }, "node_modules/@wordpress/keyboard-shortcuts": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@wordpress/keyboard-shortcuts/-/keyboard-shortcuts-5.41.0.tgz", - "integrity": "sha512-kF/mu1yGWifYX7KjkvnnbufAfTENVuLm24AgW5Yp/3P+kv2s/nbTr5rm4NefXnZOi30/4sipycSe2PhYn1ku2g==", + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@wordpress/keyboard-shortcuts/-/keyboard-shortcuts-5.48.1.tgz", + "integrity": "sha512-HYm/Q52G5UvF4rOleWWJaRvsRjWBOyqhcCdlXXtVAWn7qEq5V2Lm5RSdI4L66EVFqRAHAPsz9ouwwiU98N5NFQ==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@wordpress/data": "^10.41.0", - "@wordpress/element": "^6.41.0", - "@wordpress/keycodes": "^4.41.0" + "@types/react": "^18.3.27", + "@wordpress/data": "^10.48.1", + "@wordpress/element": "^8.0.1", + "@wordpress/keycodes": "^4.48.1" }, "engines": { "node": ">=18.12.0", @@ -10049,13 +10407,14 @@ } }, "node_modules/@wordpress/keycodes": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@wordpress/keycodes/-/keycodes-4.41.0.tgz", - "integrity": "sha512-eOdoULyTKXk33CSUxIKTNPRvHvymox1uapyrKFy45rSh+hXMIWhgN/p3jrEfZkZyBS3KTvbVmK5S/wv5OeRfaQ==", + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@wordpress/keycodes/-/keycodes-4.48.1.tgz", + "integrity": "sha512-mVNex4sY0APJj69kxFfCmaoJVOaNd9Bu7oNecuXKEAI4sp/jvvn0x+IGwLt1lMrLqC3+bPEo+q+JV3KNXMOJIQ==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@wordpress/i18n": "^6.14.0" + "@types/react": "^18.3.27", + "@wordpress/i18n": "^6.21.1" }, "engines": { "node": ">=18.12.0", @@ -10063,15 +10422,16 @@ } }, "node_modules/@wordpress/notices": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@wordpress/notices/-/notices-5.41.0.tgz", - "integrity": "sha512-iq/uyu14eWGYY7cv5fSdFwvldL7owOvAg/BRKo8Xer4yxQs1J6yuMDlJ9LnQREvMvSKgyc/ZBeOs4j41NMSX3w==", + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@wordpress/notices/-/notices-5.48.1.tgz", + "integrity": "sha512-igkUhvyvp+C61HcE7OBiCPkPYMae8k0BQBZblepXghkX82zlqVe5NiueepWTwY7pFDDEsZlxl9sYF2DWf6HF3w==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@wordpress/a11y": "^4.41.0", - "@wordpress/components": "^32.3.0", - "@wordpress/data": "^10.41.0", + "@types/react": "^18.3.27", + "@wordpress/a11y": "^4.48.1", + "@wordpress/components": "^35.0.1", + "@wordpress/data": "^10.48.1", "clsx": "^2.1.1" }, "engines": { @@ -10082,23 +10442,103 @@ "react": "^18.0.0" } }, + "node_modules/@wordpress/notices/node_modules/@wordpress/components": { + "version": "35.0.1", + "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-35.0.1.tgz", + "integrity": "sha512-EiTeufX2spZ09kjI8Aa4c7dG6A3WyRSGyHTcCsVnIoE/ykOnAjtGSxnVRAT1KefrJ9RGI8JaTld48wjrB/CS5A==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@ariakit/react": "^0.4.21", + "@date-fns/utc": "^2.1.1", + "@emotion/cache": "^11.14.0", + "@emotion/css": "^11.13.5", + "@emotion/react": "^11.14.0", + "@emotion/serialize": "^1.3.3", + "@emotion/styled": "^11.14.1", + "@emotion/utils": "^1.4.2", + "@floating-ui/react-dom": "^2.0.8", + "@types/gradient-parser": "^1.1.0", + "@types/highlight-words-core": "^1.2.1", + "@types/react": "^18.3.27", + "@use-gesture/react": "^10.3.1", + "@wordpress/a11y": "^4.48.1", + "@wordpress/base-styles": "^10.0.1", + "@wordpress/compose": "^8.1.1", + "@wordpress/date": "^5.48.1", + "@wordpress/deprecated": "^4.48.1", + "@wordpress/dom": "^4.48.1", + "@wordpress/element": "^8.0.1", + "@wordpress/escape-html": "^3.48.1", + "@wordpress/hooks": "^4.48.1", + "@wordpress/html-entities": "^4.48.1", + "@wordpress/i18n": "^6.21.1", + "@wordpress/icons": "^14.0.1", + "@wordpress/is-shallow-equal": "^5.48.1", + "@wordpress/keycodes": "^4.48.1", + "@wordpress/primitives": "^4.48.1", + "@wordpress/private-apis": "^1.48.1", + "@wordpress/rich-text": "^7.48.1", + "@wordpress/style-runtime": "^0.4.1", + "@wordpress/ui": "^0.15.1", + "@wordpress/warning": "^3.48.1", + "change-case": "^4.1.2", + "clsx": "^2.1.1", + "colord": "^2.9.3", + "csstype": "^3.2.3", + "date-fns": "^4.1.0", + "deepmerge": "^4.3.1", + "fast-deep-equal": "^3.1.3", + "framer-motion": "^11.15.0", + "gradient-parser": "^1.1.1", + "highlight-words-core": "^1.2.2", + "is-plain-object": "^5.0.0", + "memize": "^2.1.0", + "path-to-regexp": "^6.2.1", + "re-resizable": "^6.4.0", + "react-colorful": "^5.6.1", + "react-day-picker": "^9.7.0", + "remove-accents": "^0.5.0", + "uuid": "^14.0.0" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@wordpress/notices/node_modules/date-fns": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.4.0.tgz", + "integrity": "sha512-+1UMbeh68lH1SegH83CGWwpb6OHHbpSgr3+s5Eww5M4CAgswBpoWS0AjTOfEJ33HiYKz1hdj/KTFprzXHmq/6w==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kossnocorp" + } + }, "node_modules/@wordpress/preferences": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@wordpress/preferences/-/preferences-4.41.0.tgz", - "integrity": "sha512-IVpbqqn5ZqXhkzwRBf4rTuGFTcxRJyzyqqVHleZNvMNdbpktrF8moUh9pTwCY+0PeSicL9vc1WusOt/TzAmucQ==", + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@wordpress/preferences/-/preferences-4.48.1.tgz", + "integrity": "sha512-ETRFHFXRJ80UYXwjy5FQlAHlVZQjC3PUqvrW6KT8aJT/nsy8+uMLV0FUE1e37QqeAwdwMDj9jC/MNz0m3eRmOw==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@wordpress/a11y": "^4.41.0", - "@wordpress/base-styles": "^6.17.0", - "@wordpress/components": "^32.3.0", - "@wordpress/compose": "^7.41.0", - "@wordpress/data": "^10.41.0", - "@wordpress/deprecated": "^4.41.0", - "@wordpress/element": "^6.41.0", - "@wordpress/i18n": "^6.14.0", - "@wordpress/icons": "^11.8.0", - "@wordpress/private-apis": "^1.41.0", + "@types/react": "^18.3.27", + "@wordpress/a11y": "^4.48.1", + "@wordpress/base-styles": "^10.0.1", + "@wordpress/components": "^35.0.1", + "@wordpress/compose": "^8.1.1", + "@wordpress/data": "^10.48.1", + "@wordpress/deprecated": "^4.48.1", + "@wordpress/element": "^8.0.1", + "@wordpress/i18n": "^6.21.1", + "@wordpress/icons": "^14.0.1", + "@wordpress/private-apis": "^1.48.1", "clsx": "^2.1.1" }, "engines": { @@ -10110,14 +10550,94 @@ "react-dom": "^18.0.0" } }, + "node_modules/@wordpress/preferences/node_modules/@wordpress/components": { + "version": "35.0.1", + "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-35.0.1.tgz", + "integrity": "sha512-EiTeufX2spZ09kjI8Aa4c7dG6A3WyRSGyHTcCsVnIoE/ykOnAjtGSxnVRAT1KefrJ9RGI8JaTld48wjrB/CS5A==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@ariakit/react": "^0.4.21", + "@date-fns/utc": "^2.1.1", + "@emotion/cache": "^11.14.0", + "@emotion/css": "^11.13.5", + "@emotion/react": "^11.14.0", + "@emotion/serialize": "^1.3.3", + "@emotion/styled": "^11.14.1", + "@emotion/utils": "^1.4.2", + "@floating-ui/react-dom": "^2.0.8", + "@types/gradient-parser": "^1.1.0", + "@types/highlight-words-core": "^1.2.1", + "@types/react": "^18.3.27", + "@use-gesture/react": "^10.3.1", + "@wordpress/a11y": "^4.48.1", + "@wordpress/base-styles": "^10.0.1", + "@wordpress/compose": "^8.1.1", + "@wordpress/date": "^5.48.1", + "@wordpress/deprecated": "^4.48.1", + "@wordpress/dom": "^4.48.1", + "@wordpress/element": "^8.0.1", + "@wordpress/escape-html": "^3.48.1", + "@wordpress/hooks": "^4.48.1", + "@wordpress/html-entities": "^4.48.1", + "@wordpress/i18n": "^6.21.1", + "@wordpress/icons": "^14.0.1", + "@wordpress/is-shallow-equal": "^5.48.1", + "@wordpress/keycodes": "^4.48.1", + "@wordpress/primitives": "^4.48.1", + "@wordpress/private-apis": "^1.48.1", + "@wordpress/rich-text": "^7.48.1", + "@wordpress/style-runtime": "^0.4.1", + "@wordpress/ui": "^0.15.1", + "@wordpress/warning": "^3.48.1", + "change-case": "^4.1.2", + "clsx": "^2.1.1", + "colord": "^2.9.3", + "csstype": "^3.2.3", + "date-fns": "^4.1.0", + "deepmerge": "^4.3.1", + "fast-deep-equal": "^3.1.3", + "framer-motion": "^11.15.0", + "gradient-parser": "^1.1.1", + "highlight-words-core": "^1.2.2", + "is-plain-object": "^5.0.0", + "memize": "^2.1.0", + "path-to-regexp": "^6.2.1", + "re-resizable": "^6.4.0", + "react-colorful": "^5.6.1", + "react-day-picker": "^9.7.0", + "remove-accents": "^0.5.0", + "uuid": "^14.0.0" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@wordpress/preferences/node_modules/date-fns": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.4.0.tgz", + "integrity": "sha512-+1UMbeh68lH1SegH83CGWwpb6OHHbpSgr3+s5Eww5M4CAgswBpoWS0AjTOfEJ33HiYKz1hdj/KTFprzXHmq/6w==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kossnocorp" + } + }, "node_modules/@wordpress/primitives": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@wordpress/primitives/-/primitives-4.41.0.tgz", - "integrity": "sha512-ohPpBUkjkYQPki6Nl2BneFYapJE5xpxONVJfGMg0FGBqvzbuyR8pmGeH4PVfQGeGJ4xUwSdNcxfQ6nzyoT4bLA==", + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@wordpress/primitives/-/primitives-4.48.1.tgz", + "integrity": "sha512-nzAcsXhBxw9x2q/ImVa45Ft80TO+e/WgCDmWaU3Zb2trogwThxZTezkE0oeQ6PSxSeGYM6nBgk+qqFCG8wyMhQ==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@wordpress/element": "^6.41.0", + "@types/react": "^18.3.27", + "@wordpress/element": "^8.0.1", "clsx": "^2.1.1" }, "engines": { @@ -10129,9 +10649,9 @@ } }, "node_modules/@wordpress/priority-queue": { - "version": "3.41.0", - "resolved": "https://registry.npmjs.org/@wordpress/priority-queue/-/priority-queue-3.41.0.tgz", - "integrity": "sha512-vOUvDin0/rHkHxyaF8ccuL/AToLOUKxJOP0WDI+Ne6VrBthTYC+xAhHhA1AEWV5SyJkpoOx74W6DQK4mLNabdA==", + "version": "3.48.1", + "resolved": "https://registry.npmjs.org/@wordpress/priority-queue/-/priority-queue-3.48.1.tgz", + "integrity": "sha512-6nPO/FU1f9r9Zilaz7TOFSTIH5ojPqk/mmDFofo0h2kIljqik/mLwBOIls6WdDrQ2kti+BRNohbjGElAcws7kg==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -10143,9 +10663,9 @@ } }, "node_modules/@wordpress/private-apis": { - "version": "1.41.0", - "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-1.41.0.tgz", - "integrity": "sha512-5bVOGCJGJyD+5IhGtdLxLBsbJd+B1Ohx93COLbqMY4pGAnhNifNgt1rgsYWUjqHVLh80EnvL4HQeMzEncydNLA==", + "version": "1.48.1", + "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-1.48.1.tgz", + "integrity": "sha512-KddQQq+qboNnc4fROsy9bsX4JENRfvBMtuBg5CjOq11hScFyh169ozoHozMEtNGXou4XFykEHCRwzM5MfSHjiA==", "license": "GPL-2.0-or-later", "engines": { "node": ">=18.12.0", @@ -10153,9 +10673,9 @@ } }, "node_modules/@wordpress/redux-routine": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@wordpress/redux-routine/-/redux-routine-5.41.0.tgz", - "integrity": "sha512-Zqwb8gkls/2EpiiLqnrrCiWKl9cTDD43ewpOamvel6pbdiB5MKDzGJCmz8UW6aL/PpqiVcoom5KMseY8PhoraQ==", + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@wordpress/redux-routine/-/redux-routine-5.48.1.tgz", + "integrity": "sha512-+mUHB2DxfqGODfc9Lwdhz8D7jjojjWqhoa8w0ckUCzh84ZERiR3BcoiGhCkiWVSl9XedKu9itLFna5Q4gilEZw==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -10172,23 +10692,24 @@ } }, "node_modules/@wordpress/rich-text": { - "version": "7.41.0", - "resolved": "https://registry.npmjs.org/@wordpress/rich-text/-/rich-text-7.41.0.tgz", - "integrity": "sha512-JJn63a5XXqrQkKBiJX22zkmuDo7Mk7es35I5y5aP3dsVpNyMHLujXk3CjaMVtZ3ye6j20jjOXWoR0KLViiREQw==", + "version": "7.48.1", + "resolved": "https://registry.npmjs.org/@wordpress/rich-text/-/rich-text-7.48.1.tgz", + "integrity": "sha512-pj+S2d2p4EUJ03V/tOhlvb9qGPixft7v1zj9KEyM70VY6nHD5mmVp95Q5ALtlioyDFWYhzSo609PEd9fJ8FTsQ==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@wordpress/a11y": "^4.41.0", - "@wordpress/compose": "^7.41.0", - "@wordpress/data": "^10.41.0", - "@wordpress/deprecated": "^4.41.0", - "@wordpress/dom": "^4.41.0", - "@wordpress/element": "^6.41.0", - "@wordpress/escape-html": "^3.41.0", - "@wordpress/i18n": "^6.14.0", - "@wordpress/keycodes": "^4.41.0", - "@wordpress/private-apis": "^1.41.0", - "colord": "2.9.3", + "@types/react": "^18.3.27", + "@wordpress/a11y": "^4.48.1", + "@wordpress/compose": "^8.1.1", + "@wordpress/data": "^10.48.1", + "@wordpress/deprecated": "^4.48.1", + "@wordpress/dom": "^4.48.1", + "@wordpress/element": "^8.0.1", + "@wordpress/escape-html": "^3.48.1", + "@wordpress/i18n": "^6.21.1", + "@wordpress/keycodes": "^4.48.1", + "@wordpress/private-apis": "^1.48.1", + "colord": "^2.9.3", "memize": "^2.1.0" }, "engines": { @@ -10200,13 +10721,13 @@ } }, "node_modules/@wordpress/shortcode": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@wordpress/shortcode/-/shortcode-4.41.0.tgz", - "integrity": "sha512-OpeBbl4o5Xp/5cAyvG7ObYo01Of/vLHJPf+Dh8VcFsKuH7zEz0uHaHj5YmS0dHl30mnjrZVVX5eX30Y3JrWFkQ==", + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@wordpress/shortcode/-/shortcode-4.48.1.tgz", + "integrity": "sha512-zfOz45verEOIf3YIE4zOlMcQoZ2za+OFuJ4SKE+nmglUFLmF2I0iLGlNQO0BNLPI26+krSVZ8kclzJRaB5Z6Kw==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "memize": "^2.0.1" + "memize": "^2.1.0" }, "engines": { "node": ">=18.12.0", @@ -10214,12 +10735,13 @@ } }, "node_modules/@wordpress/style-engine": { - "version": "2.41.0", - "resolved": "https://registry.npmjs.org/@wordpress/style-engine/-/style-engine-2.41.0.tgz", - "integrity": "sha512-wqj31IMQWsKGuZZfhYfaShtDFuzyH6xk7oQRGemgnULeTcuZLks4pxQye9IF6/0yEnCeUdDmng3nX9t+scb7VA==", + "version": "2.48.1", + "resolved": "https://registry.npmjs.org/@wordpress/style-engine/-/style-engine-2.48.1.tgz", + "integrity": "sha512-biMD3eTjoUj5hlmA261kLAlgCN/bjxeeRe7XFrjG/bxQErmYp+hmMSejNTuLpg3j8I11eQ3Vo0iRCjGzn4xFEQ==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { + "@types/react": "^18.3.27", "change-case": "^4.1.2" }, "engines": { @@ -10227,15 +10749,25 @@ "npm": ">=8.19.2" } }, + "node_modules/@wordpress/style-runtime": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@wordpress/style-runtime/-/style-runtime-0.4.1.tgz", + "integrity": "sha512-guZ0p9a5ZQyyCFPwVqDkhDNVXdXAhIqNkPGSNIGguEtt3OtSOskEMwYJHyXZYX8nlbH0FyKflGJhE4G6QlIWlw==", + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=20.10.0", + "npm": ">=10.2.3" + } + }, "node_modules/@wordpress/stylelint-config": { - "version": "23.33.0", - "resolved": "https://registry.npmjs.org/@wordpress/stylelint-config/-/stylelint-config-23.33.0.tgz", - "integrity": "sha512-DSz76UQakmNvhv9OuI8/Ym8dhqUMYcJ4LP4Hy29pNobrcmaLMu1bwxGFGLVDfv9yyLxic001TBn9leZXPbqliA==", + "version": "23.40.1", + "resolved": "https://registry.npmjs.org/@wordpress/stylelint-config/-/stylelint-config-23.40.1.tgz", + "integrity": "sha512-9VaPT7bgMBN/oSRq+HUD3c3muCpZ7Axi4lOShwOhYql9ZVuWkovi94LjJqpXfNvwO0bFUqmfQjZReLa8mlNTuw==", "license": "MIT", "peer": true, "dependencies": { "@stylistic/stylelint-plugin": "^3.0.1", - "@wordpress/theme": "^0.8.0", + "@wordpress/theme": "^0.15.1", "stylelint-config-recommended": "^14.0.1", "stylelint-config-recommended-scss": "^14.1.0" }, @@ -10249,13 +10781,15 @@ } }, "node_modules/@wordpress/theme": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@wordpress/theme/-/theme-0.8.0.tgz", - "integrity": "sha512-xXGjWNFHICBuMNfjCjTui5ChkiKmmPTJtsF5tPXnUBXJaw43xxGlL0y7lpCNPJQxz+NPMJ01KlGfxhRsHXjKrQ==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/@wordpress/theme/-/theme-0.15.1.tgz", + "integrity": "sha512-0SqH40Sd4pKH8YkDjQ4JM2NJzdhliO19QTPHAOAGA+tXuh+YwHOwFxX8Mg0v/vvI4XJD11zuiKGr+grBI7icTQ==", "license": "GPL-2.0-or-later", "dependencies": { - "@wordpress/element": "^6.41.0", - "@wordpress/private-apis": "^1.41.0", + "@types/react": "^18.3.27", + "@wordpress/element": "^8.0.1", + "@wordpress/private-apis": "^1.48.1", + "@wordpress/style-runtime": "^0.4.1", "colorjs.io": "^0.6.0", "memize": "^2.1.0" }, @@ -10275,9 +10809,9 @@ } }, "node_modules/@wordpress/token-list": { - "version": "3.41.0", - "resolved": "https://registry.npmjs.org/@wordpress/token-list/-/token-list-3.41.0.tgz", - "integrity": "sha512-yeAp2BTDsSMBxdl1AjB8rxD3JiIFHC8LKy4XclspBC3vIjl0OUw4I5Hi2xBtrLR4P9o8nEGp4KQPzkt9g9uZZA==", + "version": "3.48.1", + "resolved": "https://registry.npmjs.org/@wordpress/token-list/-/token-list-3.48.1.tgz", + "integrity": "sha512-hFAqE8xmTpq/4IVs3AHXxVA2FTrQ2BcOQHsdXJ9kELfcazTZWZsPU2hampfIGYZzyzLnTX06dUubuuy2++LUSQ==", "dev": true, "license": "GPL-2.0-or-later", "engines": { @@ -10286,23 +10820,26 @@ } }, "node_modules/@wordpress/ui": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@wordpress/ui/-/ui-0.8.0.tgz", - "integrity": "sha512-tAlCQ3uO+rnqPwVFzPEmSUqyADk3Gp0KnnSrYGzBadjEx474hattHsLkyhGHi+DD5Txx94b582gDcL9w9siHVQ==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/@wordpress/ui/-/ui-0.15.1.tgz", + "integrity": "sha512-zFErzf84zc7dGXrCa9fPKUpMhYx86B8n5GeshC7Ut/nfE7yp09g/Bono5S7KhY1OJx7Z1Jur9t+4vnv5cocBbA==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@base-ui/react": "^1.2.0", - "@wordpress/a11y": "^4.41.0", - "@wordpress/compose": "^7.41.0", - "@wordpress/element": "^6.41.0", - "@wordpress/i18n": "^6.14.0", - "@wordpress/icons": "^11.8.0", - "@wordpress/keycodes": "^4.41.0", - "@wordpress/primitives": "^4.41.0", - "@wordpress/private-apis": "^1.41.0", - "@wordpress/theme": "^0.8.0", - "clsx": "^2.1.1" + "@base-ui/react": "^1.5.0", + "@types/react": "^18.3.27", + "@wordpress/a11y": "^4.48.1", + "@wordpress/compose": "^8.1.1", + "@wordpress/element": "^8.0.1", + "@wordpress/i18n": "^6.21.1", + "@wordpress/icons": "^14.0.1", + "@wordpress/keycodes": "^4.48.1", + "@wordpress/primitives": "^4.48.1", + "@wordpress/private-apis": "^1.48.1", + "@wordpress/style-runtime": "^0.4.1", + "@wordpress/theme": "^0.15.1", + "clsx": "^2.1.1", + "tabbable": "^6.4.0" }, "engines": { "node": ">=20.10.0", @@ -10313,14 +10850,90 @@ "react-dom": "^18.0.0" } }, + "node_modules/@wordpress/ui/node_modules/@base-ui/react": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@base-ui/react/-/react-1.5.0.tgz", + "integrity": "sha512-z1gSAlced1yY+iM+mHDEtIkD8UI3Ebs52MuBPxvV6f5hRutk+xvCH/wuB7hDqDzK9JG5FoMz5nhrqtSs1wjt1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.29.2", + "@base-ui/utils": "0.2.9", + "@floating-ui/react-dom": "^2.1.8", + "@floating-ui/utils": "^0.2.11", + "use-sync-external-store": "^1.6.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@date-fns/tz": "^1.2.0", + "@types/react": "^17 || ^18 || ^19", + "date-fns": "^4.0.0", + "react": "^17 || ^18 || ^19", + "react-dom": "^17 || ^18 || ^19" + }, + "peerDependenciesMeta": { + "@date-fns/tz": { + "optional": true + }, + "@types/react": { + "optional": true + }, + "date-fns": { + "optional": true + } + } + }, + "node_modules/@wordpress/ui/node_modules/@base-ui/react/node_modules/@base-ui/utils": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@base-ui/utils/-/utils-0.2.9.tgz", + "integrity": "sha512-x/PDDCYzoqPpjrdyb3VcyylTI2IjUXEtYDGi5foh7KsnmNJIIaVwA2GLgDH1dps1GgXiJbA60hM+AyuTfQzIvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.29.2", + "@floating-ui/utils": "^0.2.11", + "reselect": "^5.1.1", + "use-sync-external-store": "^1.6.0" + }, + "peerDependencies": { + "@types/react": "^17 || ^18 || ^19", + "react": "^17 || ^18 || ^19", + "react-dom": "^17 || ^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@wordpress/ui/node_modules/@floating-ui/react-dom": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.8.tgz", + "integrity": "sha512-cC52bHwM/n/CxS87FH0yWdngEZrjdtLW/qVruo68qg+prK7ZQ4YGdut2GyDVpoGeAYe/h899rVeOVm6Oi40k2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.7.6" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, "node_modules/@wordpress/undo-manager": { - "version": "1.41.0", - "resolved": "https://registry.npmjs.org/@wordpress/undo-manager/-/undo-manager-1.41.0.tgz", - "integrity": "sha512-z7HgqaBeL24NZe3vvaj9VE3W9ODUEhclkpCwIiMawaA5d5RIOzR9SIEwG4wY01jnOro/GXXSmbvku51SbZyB2Q==", + "version": "1.48.1", + "resolved": "https://registry.npmjs.org/@wordpress/undo-manager/-/undo-manager-1.48.1.tgz", + "integrity": "sha512-i/yHiUQ5S47yong7FXxIRpJgO1MbItEKfcyp1a3rRe66rw1RVPmAlJxyeKaQg9eZbCXOmmDz5cLzZNPyUDN6uA==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@wordpress/is-shallow-equal": "^5.41.0" + "@wordpress/is-shallow-equal": "^5.48.1" }, "engines": { "node": ">=18.12.0", @@ -10328,23 +10941,23 @@ } }, "node_modules/@wordpress/upload-media": { - "version": "0.26.0", - "resolved": "https://registry.npmjs.org/@wordpress/upload-media/-/upload-media-0.26.0.tgz", - "integrity": "sha512-YwIVBm01XndJI5abMoePaj5HybUv8uYKr2SjZ4JG8eKnquKTX7Q9GOHojsNeLlg+Y9Go6orD8d0CkbJU1luk3g==", + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@wordpress/upload-media/-/upload-media-0.33.1.tgz", + "integrity": "sha512-FjHJGZh7tjUyMbHXiPPHT8oRpM24ENwCOYG7OEoWRGP3NSU5v9Ff4TCksI25Ws420TkrNCFnHlU+xmALQAu30w==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@wordpress/api-fetch": "^7.41.0", - "@wordpress/blob": "^4.41.0", - "@wordpress/compose": "^7.41.0", - "@wordpress/data": "^10.41.0", - "@wordpress/element": "^6.41.0", - "@wordpress/i18n": "^6.14.0", - "@wordpress/preferences": "^4.41.0", - "@wordpress/private-apis": "^1.41.0", - "@wordpress/url": "^4.41.0", - "@wordpress/vips": "^1.1.0", - "uuid": "^9.0.1" + "@types/react": "^18.3.27", + "@wordpress/blob": "^4.48.1", + "@wordpress/compose": "^8.1.1", + "@wordpress/data": "^10.48.1", + "@wordpress/element": "^8.0.1", + "@wordpress/i18n": "^6.21.1", + "@wordpress/preferences": "^4.48.1", + "@wordpress/private-apis": "^1.48.1", + "@wordpress/url": "^4.48.1", + "@wordpress/vips": "^2.1.1", + "uuid": "^14.0.0" }, "engines": { "node": ">=18.12.0", @@ -10356,9 +10969,9 @@ } }, "node_modules/@wordpress/url": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@wordpress/url/-/url-4.41.0.tgz", - "integrity": "sha512-vmCnp1PLowAwisnUSHH2x2p5zg5RtENx+Vl9gmc9B5BiHkNWhEXcU4PpsaOcRRhCadjDToNiTsOm9v1lHF3n4A==", + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@wordpress/url/-/url-4.48.1.tgz", + "integrity": "sha512-EiTMmEwotXY4Cu6casJ10HEe0ocsdVujkm1iZyA0vvu2qtR5IIQqlSVGxDx96cJBP6cB2b8x2ebGLWfnwow4/Q==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -10370,14 +10983,14 @@ } }, "node_modules/@wordpress/vips": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@wordpress/vips/-/vips-1.1.0.tgz", - "integrity": "sha512-6oE+aWbvfS98orugNPPuXmC9H197QgUkUkC/4YH4xnRdACmtp7s9mVTNIRc53dsXbKi2ZaE5YgeYoN5D2llatg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@wordpress/vips/-/vips-2.1.1.tgz", + "integrity": "sha512-3NvM0Bk4xrNhYI8Xgn9+dphE3FbJANhe9aNoU1J/Wqmqt3EpUJY5KoykFkfpHJWbdiLohSMkKIyVylGMdHpP7g==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@wordpress/worker-threads": "^1.1.0", - "wasm-vips": "^0.0.16" + "@wordpress/worker-threads": "^1.8.1", + "wasm-vips": "^0.0.17" }, "engines": { "node": ">=18.12.0", @@ -10385,9 +10998,9 @@ } }, "node_modules/@wordpress/warning": { - "version": "3.41.0", - "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-3.41.0.tgz", - "integrity": "sha512-WhyGL1y6y18cZwOQeCOI9K+kWc8F9KAni9YQKZVYSriazbSPNOQGWpUdeKZVGbimBEjEspK7FQBE4pUW3q+D8w==", + "version": "3.48.1", + "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-3.48.1.tgz", + "integrity": "sha512-5YyMCOHycuHG+AjsVEUafpTqV4b4qjVv/tel5m1L8k8g8dUW5T/XKguFo1nhCqQc4HqoGBrJtKjaf6dMmg8uWg==", "dev": true, "license": "GPL-2.0-or-later", "engines": { @@ -10396,9 +11009,9 @@ } }, "node_modules/@wordpress/wordcount": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@wordpress/wordcount/-/wordcount-4.41.0.tgz", - "integrity": "sha512-/22Fon1owjl4VnSD6ewReUZ+wEcNUsxEcZoKF/ew0CqOaprMwog3kPWq3Jub6Mt0aBWmjtrJ7Nhuo+wVkQ3Kog==", + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@wordpress/wordcount/-/wordcount-4.48.1.tgz", + "integrity": "sha512-/IdYqxbvAFgAf3O72lUj5ybeWMglG2dYwL8wz17koSHqH5XKlbIQrNGvz4XIvQueiewd4MvLOqIFt2TVHHU6/A==", "dev": true, "license": "GPL-2.0-or-later", "engines": { @@ -10407,9 +11020,9 @@ } }, "node_modules/@wordpress/worker-threads": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@wordpress/worker-threads/-/worker-threads-1.1.0.tgz", - "integrity": "sha512-rtYENJzqb0ioLmQ+GY0yxUt0vEtkys3TlopYOAAOZIUTODfzPvm1+NQybntF9nWZGipmAVQl8bDmPlHU9n+96Q==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@wordpress/worker-threads/-/worker-threads-1.8.1.tgz", + "integrity": "sha512-xrVypgVxciFPyc704/0fdQ6bf5BZrf2EXtTPQ4BSU0ylnvfSvgvTCYWdVzlI4VySq+FNfHgLHTCxKiKT23CrSQ==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -10421,9 +11034,9 @@ } }, "node_modules/@xmldom/xmldom": { - "version": "0.8.11", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.11.tgz", - "integrity": "sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==", + "version": "0.8.13", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.13.tgz", + "integrity": "sha512-KRYzxepc14G/CEpEGc3Yn+JKaAeT63smlDr+vjB8jRfgTBBI9wRj/nkQEO+ucV8p8I9bfKLWp37uHgFrbntPvw==", "license": "MIT", "engines": { "node": ">=10.0.0" @@ -10442,9 +11055,9 @@ "license": "Apache-2.0" }, "node_modules/acorn": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", - "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.17.0.tgz", + "integrity": "sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==", "license": "MIT", "bin": { "acorn": "bin/acorn" @@ -10497,26 +11110,17 @@ "node": ">=0.4.0" } }, - "node_modules/agent-base": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", - "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "node_modules/ajv": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", "license": "MIT", "peer": true, - "engines": { - "node": ">= 14" - } - }, - "node_modules/ajv": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", - "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", - "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" }, "funding": { "type": "github", @@ -10540,18 +11144,28 @@ } } }, - "node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.3" + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" }, - "peerDependencies": { - "ajv": "^8.8.2" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, "node_modules/ansi-colors": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", @@ -10571,16 +11185,18 @@ } }, "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "license": "MIT", "dependencies": { - "color-convert": "^1.9.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/argparse": { @@ -10779,23 +11395,10 @@ "node": ">=12" } }, - "node_modules/ast-types": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", - "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", - "license": "MIT", - "peer": true, - "dependencies": { - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/ast-v8-to-istanbul": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-1.0.0.tgz", - "integrity": "sha512-1fSfIwuDICFA4LKkCzRPO7F0hzFf0B7+Xqrl27ynQaa+Rh0e1Es0v6kWHPott3lU10AyAr7oKHa65OppjLn3Rg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-1.0.4.tgz", + "integrity": "sha512-0bC0/4bTSrnwdhU3IsZDwEdojvuPrSg59OYZfKsLRtJZ0u8VBx9DebfqqG8bRdCC0I7vjgxmPi41P0lpkhJHtA==", "dev": true, "license": "MIT", "dependencies": { @@ -10841,9 +11444,9 @@ } }, "node_modules/autoprefixer": { - "version": "10.4.27", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.27.tgz", - "integrity": "sha512-NP9APE+tO+LuJGn7/9+cohklunJsXWiaWEfV3si4Gi/XHDwVNgkwr1J3RQYFIvPy76GmJ9/bW8vyoU1LcxwKHA==", + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.5.0.tgz", + "integrity": "sha512-FMhOoZV4+qR6aTUALKX2rEqGG+oyATvwBt9IIzVR5rMa2HRWPkxf+P+PAJLD1I/H5/II+HuZcBJYEFBpq39ong==", "funding": [ { "type": "opencollective", @@ -10860,8 +11463,8 @@ ], "license": "MIT", "dependencies": { - "browserslist": "^4.28.1", - "caniuse-lite": "^1.0.30001774", + "browserslist": "^4.28.2", + "caniuse-lite": "^1.0.30001787", "fraction.js": "^5.3.4", "picocolors": "^1.1.1", "postcss-value-parser": "^4.2.0" @@ -10899,9 +11502,9 @@ } }, "node_modules/axe-core": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.11.1.tgz", - "integrity": "sha512-BASOg+YwO2C+346x3LZOeoovTIoTrRqEsqMa6fmfAV0P+U9mFr9NsyOEpiYvFjbc64NMrSswhV50WdXzdb/Z5A==", + "version": "4.11.4", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.11.4.tgz", + "integrity": "sha512-KunSNx+TVpkAw/6ULfhnx+HWRecjqZGTOyquAoWHYLRSdK1tB5Ihce1ZW+UY3fj33bYAFWPu7W/GRSmmrCGuxA==", "license": "MPL-2.0", "engines": { "node": ">=4" @@ -10959,10 +11562,32 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/babel-plugin-macros/node_modules/resolve": { + "version": "1.22.12", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/babel-plugin-macros/node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.3.tgz", + "integrity": "sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==", "dev": true, "license": "ISC", "engines": { @@ -10976,9 +11601,9 @@ "license": "MIT" }, "node_modules/bare-events": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.2.tgz", - "integrity": "sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.9.1.tgz", + "integrity": "sha512-Z0oHEHAFDZkffN8Qc39zNZjQlMDkPJRyyyZieU1VH7u8c5S+qHZ2S8ixdKIAxEjfHO7FJxXmJWgteOghVanIsg==", "license": "Apache-2.0", "peerDependencies": { "bare-abort-controller": "*" @@ -10989,88 +11614,10 @@ } } }, - "node_modules/bare-fs": { - "version": "4.5.5", - "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.5.5.tgz", - "integrity": "sha512-XvwYM6VZqKoqDll8BmSww5luA5eflDzY0uEFfBJtFKe4PAAtxBjU3YIxzIBzhyaEQBy1VXEQBto4cpN5RZJw+w==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "bare-events": "^2.5.4", - "bare-path": "^3.0.0", - "bare-stream": "^2.6.4", - "bare-url": "^2.2.2", - "fast-fifo": "^1.3.2" - }, - "engines": { - "bare": ">=1.16.0" - }, - "peerDependencies": { - "bare-buffer": "*" - }, - "peerDependenciesMeta": { - "bare-buffer": { - "optional": true - } - } - }, - "node_modules/bare-os": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.8.0.tgz", - "integrity": "sha512-Dc9/SlwfxkXIGYhvMQNUtKaXCaGkZYGcd1vuNUUADVqzu4/vQfvnMkYYOUnt2VwQ2AqKr/8qAVFRtwETljgeFg==", - "license": "Apache-2.0", - "peer": true, - "engines": { - "bare": ">=1.14.0" - } - }, - "node_modules/bare-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz", - "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "bare-os": "^3.0.1" - } - }, - "node_modules/bare-stream": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.8.1.tgz", - "integrity": "sha512-bSeR8RfvbRwDpD7HWZvn8M3uYNDrk7m9DQjYOFkENZlXW8Ju/MPaqUPQq5LqJ3kyjEm07siTaAQ7wBKCU59oHg==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "streamx": "^2.21.0", - "teex": "^1.0.1" - }, - "peerDependencies": { - "bare-buffer": "*", - "bare-events": "*" - }, - "peerDependenciesMeta": { - "bare-buffer": { - "optional": true - }, - "bare-events": { - "optional": true - } - } - }, - "node_modules/bare-url": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.3.2.tgz", - "integrity": "sha512-ZMq4gd9ngV5aTMa5p9+UfY0b3skwhHELaDkhEHetMdX0LRkW9kzaym4oo/Eh+Ghm0CCDuMTsRIGM/ytUc1ZYmw==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "bare-path": "^3.0.0" - } - }, "node_modules/baseline-browser-mapping": { - "version": "2.10.8", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.8.tgz", - "integrity": "sha512-PCLz/LXGBsNTErbtB6i5u4eLpHeMfi93aUv5duMmj6caNu6IphS4q6UevDnL36sZQv9lrP11dbPKGMaXPwMKfQ==", + "version": "2.10.37", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.37.tgz", + "integrity": "sha512-girxaJ7WZssDOFhzCGZTDKoTa1gk6A1TbflaYTpykLJ4UU9Fz9kx1aREM8JCuoVHbL8X8T/mJg7w2oYSq72Oig==", "license": "Apache-2.0", "bin": { "baseline-browser-mapping": "dist/cli.cjs" @@ -11079,16 +11626,6 @@ "node": ">=6.0.0" } }, - "node_modules/basic-ftp": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.2.0.tgz", - "integrity": "sha512-VoMINM2rqJwJgfdHq6RiUudKt2BV+FY5ZFezP/ypmwayk68+NzzAQy4XXLlqsGD4MCzq3DrmNFD/uUmBJuGoXw==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/better-path-resolve": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/better-path-resolve/-/better-path-resolve-1.0.0.tgz", @@ -11118,9 +11655,9 @@ "license": "ISC" }, "node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.15.tgz", + "integrity": "sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==", "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", @@ -11140,9 +11677,9 @@ } }, "node_modules/browserslist": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", - "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz", + "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==", "funding": [ { "type": "opencollective", @@ -11159,11 +11696,11 @@ ], "license": "MIT", "dependencies": { - "baseline-browser-mapping": "^2.9.0", - "caniuse-lite": "^1.0.30001759", - "electron-to-chromium": "^1.5.263", - "node-releases": "^2.0.27", - "update-browserslist-db": "^1.2.0" + "baseline-browser-mapping": "^2.10.12", + "caniuse-lite": "^1.0.30001782", + "electron-to-chromium": "^1.5.328", + "node-releases": "^2.0.36", + "update-browserslist-db": "^1.2.3" }, "bin": { "browserslist": "cli.js" @@ -11202,16 +11739,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": "*" - } - }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -11219,28 +11746,38 @@ "license": "MIT" }, "node_modules/cacheable": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-2.3.3.tgz", - "integrity": "sha512-iffYMX4zxKp54evOH27fm92hs+DeC1DhXmNVN8Tr94M/iZIV42dqTHSR2Ik4TOSPyOAwKr7Yu3rN9ALoLkbWyQ==", + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-2.3.5.tgz", + "integrity": "sha512-EQfaKe09tl615iNvq/TBRWTFf1AKJNXYQSsMx0Z3EI0nA+pVsVPS8wJhnRlkbdacKPh1d0qVIhwTc2zsQNFEEg==", "license": "MIT", "peer": true, "dependencies": { "@cacheable/memory": "^2.0.8", - "@cacheable/utils": "^2.4.0", + "@cacheable/utils": "^2.4.1", "hookified": "^1.15.0", "keyv": "^5.6.0", - "qified": "^0.6.0" + "qified": "^0.10.1" + } + }, + "node_modules/cacheable/node_modules/keyv": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.6.0.tgz", + "integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@keyv/serialize": "^1.1.1" } }, "node_modules/call-bind": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", - "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz", + "integrity": "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==", "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.0", - "es-define-property": "^1.0.0", - "get-intrinsic": "^1.2.4", + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "get-intrinsic": "^1.3.0", "set-function-length": "^1.2.2" }, "engines": { @@ -11309,21 +11846,20 @@ } }, "node_modules/caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-4.0.0.tgz", + "integrity": "sha512-B0hQ1OLyJuHTQSOWXvwibWqM6DCoqJdvBA6X1S/53bd4XU7LJ1yurIPlrsouol3mw1jh9pGI4ivubSpmJeIqCA==", + "dev": true, "license": "MIT", "dependencies": { "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" + "caniuse-lite": "^1.0.0" } }, "node_modules/caniuse-lite": { - "version": "1.0.30001779", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001779.tgz", - "integrity": "sha512-U5og2PN7V4DMgF50YPNtnZJGWVLFjjsN3zb6uMT5VGYIewieDj1upwfuVNXf4Kor+89c3iCRJnSzMD5LmTvsfA==", + "version": "1.0.30001799", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001799.tgz", + "integrity": "sha512-hG1bReV+OUU+MOqK4t/ZWI0tZOyz3rqS9XuhOUz1cIcbwBKjOyJEJuw9ER5JuNyqxNk8u/JUVbGibBOL1yrjFw==", "funding": [ { "type": "opencollective", @@ -11362,41 +11898,19 @@ } }, "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "license": "MIT", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=4" - } - }, - "node_modules/chalk/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" + "node": ">=10" }, - "engines": { - "node": ">=4" + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/change-case": { @@ -11427,15 +11941,15 @@ "license": "MIT" }, "node_modules/chokidar": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", - "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", + "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", "license": "MIT", "dependencies": { - "readdirp": "^4.0.1" + "readdirp": "^5.0.0" }, "engines": { - "node": ">= 14.16.0" + "node": ">= 20.19.0" }, "funding": { "url": "https://paulmillr.com/funding/" @@ -11460,19 +11974,6 @@ "node": ">=12.13.0" } }, - "node_modules/chrome-launcher/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/chrome-trace-event": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", @@ -11483,19 +11984,32 @@ } }, "node_modules/chromium-bidi": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-14.0.0.tgz", - "integrity": "sha512-9gYlLtS6tStdRWzrtXaTMnqcM4dudNegMXJxkR0I/CXObHalYeYcAMPrL19eroNZHtJ8DQmu1E+ZNOYu/IXMXw==", + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-16.0.1.tgz", + "integrity": "sha512-J63PGu/9PpeCwLIcKYyzWP6yaVL5pxuBc0shlYCYM8BaAkmlwiQboXO1iNbOgSDbVklEyYFfNEcHD8oOAWacUA==", "license": "Apache-2.0", "peer": true, "dependencies": { "mitt": "^3.0.1", "zod": "^3.24.1" }, + "engines": { + "node": ">=20.19.0 <22.0.0 || >=22.12.0" + }, "peerDependencies": { "devtools-protocol": "*" } }, + "node_modules/chromium-bidi/node_modules/zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "license": "MIT", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, "node_modules/cjs-module-lexer": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", @@ -11503,18 +12017,6 @@ "license": "MIT", "peer": true }, - "node_modules/clipboard": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.11.tgz", - "integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==", - "dev": true, - "license": "MIT", - "dependencies": { - "good-listener": "^1.2.2", - "select": "^1.1.2", - "tiny-emitter": "^2.0.0" - } - }, "node_modules/cliui": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-9.0.1.tgz", @@ -11717,20 +12219,21 @@ } }, "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "license": "MIT", "dependencies": { - "color-name": "1.1.3" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true, + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT" }, "node_modules/color-string": { @@ -11792,19 +12295,19 @@ } }, "node_modules/comctx": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/comctx/-/comctx-1.6.1.tgz", - "integrity": "sha512-ZMRGAYASYRdVfEoB7oxH8Nqu5Ay8I+YvAsQni+td0pYV9eww/PrtSFVyvc2JkNQyHXGDknCB4wJfxFYP6fuqZg==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/comctx/-/comctx-1.7.5.tgz", + "integrity": "sha512-0fsxsxr1Hg2T99wOIteUbsJOX6jMmnhAJepcVRqNRMWpcbxRhbm2+0R8qEuQEaE4gWjfdXaKeAGYAn0yeElylQ==", "dev": true, "license": "MIT" }, "node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "license": "MIT", "engines": { - "node": ">=16" + "node": ">= 10" } }, "node_modules/computed-style": { @@ -11878,18 +12381,6 @@ "webpack": "^5.1.0" } }, - "node_modules/copy-webpack-plugin/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", @@ -11897,9 +12388,9 @@ "license": "MIT" }, "node_modules/cosmiconfig": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.1.tgz", - "integrity": "sha512-hr4ihw+DBqcvrsEDioRO31Z17x71pUYoNe/4h6Z0wB72p7MU7/9gH8Q3s12NFhHPfYBBOV3qyfUxmr/Yn3shnQ==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.2.tgz", + "integrity": "sha512-gtTZxTDau1wL7Y7zifc2dd8jHSK/k6BTx/2Xp/BpdlAdnlYWFVt7qhJqgwi7637yRwRQ3qL4ZidbB4I8tA5VOg==", "license": "MIT", "dependencies": { "env-paths": "^2.2.1", @@ -11972,9 +12463,9 @@ } }, "node_modules/csp_evaluator": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/csp_evaluator/-/csp_evaluator-1.1.5.tgz", - "integrity": "sha512-EL/iN9etCTzw/fBnp0/uj0f5BOOGvZut2mzsiiBZ/FdT6gFQCKRO/tmcKOxn5drWZ2Ndm/xBb1SI4zwWbGtmIw==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/csp_evaluator/-/csp_evaluator-1.1.8.tgz", + "integrity": "sha512-EwOnfYuNbTytvbMKsLixTrRgnjOa0WZCxGy8A9nnSYAicrdwn+T/epU/yjgymmOxlgKnvH+8wXt+7p/8ak5Feg==", "license": "Apache-2.0", "peer": true }, @@ -12004,9 +12495,9 @@ } }, "node_modules/css-blank-pseudo/node_modules/postcss-selector-parser": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", - "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz", + "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==", "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -12016,18 +12507,6 @@ "node": ">=4" } }, - "node_modules/css-declaration-sorter": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.3.1.tgz", - "integrity": "sha512-gz6x+KkgNCjxq3Var03pRYLhyNfwhkKF1g/yoLgDNtFvVu0/fOLV9C8fFEZRjACp/XQLumjAYo7JVjzH3wLbxA==", - "license": "ISC", - "engines": { - "node": "^14 || ^16 || >=18" - }, - "peerDependencies": { - "postcss": "^8.0.9" - } - }, "node_modules/css-functions-list": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.3.3.tgz", @@ -12088,9 +12567,9 @@ } }, "node_modules/css-has-pseudo/node_modules/postcss-selector-parser": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", - "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz", + "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==", "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -12123,15 +12602,15 @@ } }, "node_modules/css-select": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", - "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", "nth-check": "^2.0.1" }, "funding": { @@ -12170,9 +12649,9 @@ } }, "node_modules/cssdb": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-8.8.0.tgz", - "integrity": "sha512-QbLeyz2Bgso1iRlh7IpWk6OKa3lLNGXsujVjDMPl9rOZpxKeiG69icLpbLCFxeURwmcdIfZqQyhlooKJYM4f8Q==", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-8.9.0.tgz", + "integrity": "sha512-J8jOU/hLjaXcO1LldOLraJSQpfLXRKof0I7mtbRyOy2AAXgqst0x9rlgi2qXeD6d0ou3ZLqcPAMqYVbpCbrxEw==", "funding": [ { "type": "opencollective", @@ -12198,79 +12677,81 @@ } }, "node_modules/cssnano": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-7.1.3.tgz", - "integrity": "sha512-mLFHQAzyapMVFLiJIn7Ef4C2UCEvtlTlbyILR6B5ZsUAV3D/Pa761R5uC1YPhyBkRd3eqaDm2ncaNrD7R4mTRg==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-8.0.2.tgz", + "integrity": "sha512-K+a76gA1v0/CsYgcsE95HGGyIuPKxpQSetwSwz4nHEM8fFXqSkzq2JzEXFL8v5+CCjxzVVVhPcTK3Oo8SaF/xA==", + "dev": true, "license": "MIT", "dependencies": { - "cssnano-preset-default": "^7.0.11", + "cssnano-preset-default": "^8.0.2", "lilconfig": "^3.1.3" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/cssnano" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/cssnano-preset-default": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-7.0.11.tgz", - "integrity": "sha512-waWlAMuCakP7//UCY+JPrQS1z0OSLeOXk2sKWJximKWGupVxre50bzPlvpbUwZIDylhf/ptf0Pk+Yf7C+hoa3g==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-8.0.2.tgz", + "integrity": "sha512-+jQAqIKCqMmBjZs7741XkilU93ITZ/EW8gjAkMmujdCzfDkfjrDBv2VqkSu29Fzeig/0rZ3S9IAwfPLlmXEUfQ==", + "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.28.1", - "css-declaration-sorter": "^7.2.0", - "cssnano-utils": "^5.0.1", + "browserslist": "^4.28.2", + "cssnano-utils": "^6.0.1", "postcss-calc": "^10.1.1", - "postcss-colormin": "^7.0.6", - "postcss-convert-values": "^7.0.9", - "postcss-discard-comments": "^7.0.6", - "postcss-discard-duplicates": "^7.0.2", - "postcss-discard-empty": "^7.0.1", - "postcss-discard-overridden": "^7.0.1", - "postcss-merge-longhand": "^7.0.5", - "postcss-merge-rules": "^7.0.8", - "postcss-minify-font-values": "^7.0.1", - "postcss-minify-gradients": "^7.0.1", - "postcss-minify-params": "^7.0.6", - "postcss-minify-selectors": "^7.0.6", - "postcss-normalize-charset": "^7.0.1", - "postcss-normalize-display-values": "^7.0.1", - "postcss-normalize-positions": "^7.0.1", - "postcss-normalize-repeat-style": "^7.0.1", - "postcss-normalize-string": "^7.0.1", - "postcss-normalize-timing-functions": "^7.0.1", - "postcss-normalize-unicode": "^7.0.6", - "postcss-normalize-url": "^7.0.1", - "postcss-normalize-whitespace": "^7.0.1", - "postcss-ordered-values": "^7.0.2", - "postcss-reduce-initial": "^7.0.6", - "postcss-reduce-transforms": "^7.0.1", - "postcss-svgo": "^7.1.1", - "postcss-unique-selectors": "^7.0.5" - }, - "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.4.32" + "postcss-colormin": "^8.0.1", + "postcss-convert-values": "^8.0.1", + "postcss-discard-comments": "^8.0.1", + "postcss-discard-duplicates": "^8.0.1", + "postcss-discard-empty": "^8.0.1", + "postcss-discard-overridden": "^8.0.1", + "postcss-merge-longhand": "^8.0.1", + "postcss-merge-rules": "^8.0.1", + "postcss-minify-font-values": "^8.0.1", + "postcss-minify-gradients": "^8.0.1", + "postcss-minify-params": "^8.0.1", + "postcss-minify-selectors": "^8.0.2", + "postcss-normalize-charset": "^8.0.1", + "postcss-normalize-display-values": "^8.0.1", + "postcss-normalize-positions": "^8.0.1", + "postcss-normalize-repeat-style": "^8.0.1", + "postcss-normalize-string": "^8.0.1", + "postcss-normalize-timing-functions": "^8.0.1", + "postcss-normalize-unicode": "^8.0.1", + "postcss-normalize-url": "^8.0.1", + "postcss-normalize-whitespace": "^8.0.1", + "postcss-ordered-values": "^8.0.1", + "postcss-reduce-initial": "^8.0.1", + "postcss-reduce-transforms": "^8.0.1", + "postcss-svgo": "^8.0.1", + "postcss-unique-selectors": "^8.0.1" + }, + "engines": { + "node": "^22.11.0 || ^24.11.0 || >=26.0" + }, + "peerDependencies": { + "postcss": "^8.5.15" } }, "node_modules/cssnano-utils": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-5.0.1.tgz", - "integrity": "sha512-ZIP71eQgG9JwjVZsTPSqhc6GHgEr53uJ7tK5///VfyWj6Xp2DBmixWHqJgPno+PqATzn48pL42ww9x5SSGmhZg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-6.0.1.tgz", + "integrity": "sha512-zk65GIxA8tCjqVk7nTm1mE+ZKxtnxAvU5JSUaBLXbAr3ZF7IOvz3fbPOnEDvZKhnS7GOIitXTS5BgehLzNoc8Q==", + "dev": true, "license": "MIT", "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/csso": { @@ -12304,15 +12785,6 @@ "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", "license": "CC0-1.0" }, - "node_modules/csso/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/cssom": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", @@ -12325,16 +12797,6 @@ "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", "license": "MIT" }, - "node_modules/data-uri-to-buffer": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", - "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 14" - } - }, "node_modules/data-view-buffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", @@ -12411,12 +12873,6 @@ "dev": true, "license": "MIT" }, - "node_modules/debounce": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", - "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", - "license": "MIT" - }, "node_modules/debug": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", @@ -12511,21 +12967,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/degenerator": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", - "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "ast-types": "^0.13.4", - "escodegen": "^2.1.0", - "esprima": "^4.0.1" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/del": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/del/-/del-8.0.1.tgz", @@ -12591,16 +13032,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/del/node_modules/ignore": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", - "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, "node_modules/del/node_modules/path-type": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-6.0.0.tgz", @@ -12614,13 +13045,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/delegate": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", - "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==", - "dev": true, - "license": "MIT" - }, "node_modules/dequal": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", @@ -12659,16 +13083,16 @@ "license": "MIT" }, "node_modules/devtools-protocol": { - "version": "0.0.1527314", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1527314.tgz", - "integrity": "sha512-UohCFOlzpPPD/IcsxM0k4lVZp/GfhPVJ6l2No5XX+LknpGisPWJe17oOHQhZTHf6ThUFIMwHO6bSEZUq/6oP7w==", + "version": "0.0.1625959", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1625959.tgz", + "integrity": "sha512-wRBSU330hwOLLcb3N4NIe3eFs6MgT6ku3AiZONjnTSJ7f3dVchJfn6nE0Lfos9jK1na15bgp7xLhaCx40Y47NQ==", "license": "BSD-3-Clause", "peer": true }, "node_modules/diff": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.4.tgz", - "integrity": "sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ==", + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.4.tgz", + "integrity": "sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==", "dev": true, "license": "BSD-3-Clause", "engines": { @@ -12687,15 +13111,28 @@ "node": ">=8" } }, + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", "license": "MIT", "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" }, "funding": { "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" @@ -12714,12 +13151,12 @@ "license": "BSD-2-Clause" }, "node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", "license": "BSD-2-Clause", "dependencies": { - "domelementtype": "^2.3.0" + "domelementtype": "^2.2.0" }, "engines": { "node": ">= 4" @@ -12729,14 +13166,14 @@ } }, "node_modules/domutils": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", - "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", "license": "BSD-2-Clause", "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" }, "funding": { "url": "https://github.com/fb55/domutils?sponsor=1" @@ -12782,9 +13219,9 @@ } }, "node_modules/dotenv": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.3.1.tgz", - "integrity": "sha512-IO8C/dzEb6O3F9/twg6ZLXz164a2fhTnEWb95H23Dm4OuN+92NmEAlTrupP9VW6Jm3sO26tQlqyvyi4CsnY9GA==", + "version": "17.4.2", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.4.2.tgz", + "integrity": "sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==", "license": "BSD-2-Clause", "engines": { "node": ">=12" @@ -12808,9 +13245,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.313", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.313.tgz", - "integrity": "sha512-QBMrTWEf00GXZmJyx2lbYD45jpI3TUFnNIzJ5BBc8piGUDwMPa1GV6HJWTZVvY/eiN3fSopl7NRbgGp9sZ9LTA==", + "version": "1.5.373", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.373.tgz", + "integrity": "sha512-G2Hym8JIf/QreuseqkDibgH8Ci8KfJzqGDKdakbhSx9UltwRBH2cBLAWU/lBX0sCdv0TlhyxQyDCnSfxgMWsjA==", "license": "ISC" }, "node_modules/emoji-regex": { @@ -12857,24 +13294,14 @@ "node": ">=0.10.0" } }, - "node_modules/end-of-stream": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", - "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", - "license": "MIT", - "peer": true, - "dependencies": { - "once": "^1.4.0" - } - }, "node_modules/enhanced-resolve": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.20.0.tgz", - "integrity": "sha512-/ce7+jQ1PQ6rVXwe+jKEg5hW5ciicHwIQUagZkp6IufBoY3YDgdTTY1azVs0qoRgVmvsNB+rbjLJxDAeHHtwsQ==", + "version": "5.21.6", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.21.6.tgz", + "integrity": "sha512-aNnGCvbJ/RIyWo1IuhNdVjnNF+EjH9wpzpNHt+ci/m9He9LJvUN8wrCcXjp9cWsGNAuvSpVFTx/vraAFQ8qGjQ==", "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", - "tapable": "^2.3.0" + "tapable": "^2.3.3" }, "engines": { "node": ">=10.13.0" @@ -12894,13 +13321,10 @@ } }, "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, "funding": { "url": "https://github.com/fb55/entities?sponsor=1" } @@ -12931,9 +13355,9 @@ } }, "node_modules/es-abstract": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.1.tgz", - "integrity": "sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==", + "version": "1.24.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.2.tgz", + "integrity": "sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==", "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.2", @@ -12998,6 +13422,24 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-abstract-get": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-abstract-get/-/es-abstract-get-1.0.0.tgz", + "integrity": "sha512-6PMWXpdhshVvFp+FoWYs1EvG1Nj0tvk0dZM+XcK0xMEM1czRVcP6ohqPWHy6qPagSpC8j4+p89WXlT+xXJs/fg==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.2", + "is-callable": "^1.2.7", + "object-inspect": "^1.13.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/es-define-property": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", @@ -13017,16 +13459,16 @@ } }, "node_modules/es-iterator-helpers": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.3.1.tgz", - "integrity": "sha512-zWwRvqWiuBPr0muUG/78cW3aHROFCNIQ3zpmYDpwdbnt2m+xlNyRWpHBpa2lJjSBit7BQ+RXA1iwbSmu5yJ/EQ==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.3.3.tgz", + "integrity": "sha512-0PuBxFi+4uPanB97iDxCLWuHeYud2FALrw5HFZGtAF38UpJDbDC8frwp2cnDyae692CQ0dou60UwWfhgsa4U/g==", "license": "MIT", "peer": true, "dependencies": { - "call-bind": "^1.0.8", + "call-bind": "^1.0.9", "call-bound": "^1.0.4", "define-properties": "^1.2.1", - "es-abstract": "^1.24.1", + "es-abstract": "^1.24.2", "es-errors": "^1.3.0", "es-set-tostringtag": "^2.1.0", "function-bind": "^1.1.2", @@ -13038,23 +13480,22 @@ "has-symbols": "^1.1.0", "internal-slot": "^1.1.0", "iterator.prototype": "^1.1.5", - "math-intrinsics": "^1.1.0", - "safe-array-concat": "^1.1.3" + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" } }, "node_modules/es-module-lexer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz", - "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.1.0.tgz", + "integrity": "sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==", "license": "MIT" }, "node_modules/es-object-atoms": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", "license": "MIT", "dependencies": { "es-errors": "^1.3.0" @@ -13092,14 +13533,16 @@ } }, "node_modules/es-to-primitive": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", - "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.1.tgz", + "integrity": "sha512-CxN9N56HYfd2m/acc/NOFrZQsN9kU4eh+2kk6A707Kz1krH8tKmfrs5RnftB8WNX80T0NS7vSQsDOlg23diR2g==", "license": "MIT", "dependencies": { + "es-abstract-get": "^1.0.0", + "es-errors": "^1.3.0", "is-callable": "^1.2.7", - "is-date-object": "^1.0.5", - "is-symbol": "^1.0.4" + "is-date-object": "^1.1.0", + "is-symbol": "^1.1.1" }, "engines": { "node": ">= 0.4" @@ -13109,9 +13552,9 @@ } }, "node_modules/esbuild": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.4.tgz", - "integrity": "sha512-Rq4vbHnYkK5fws5NF7MYTU68FPRE1ajX7heQ/8QXXWqNgqqJ/GkmmyxIzUnf2Sr/bakf8l54716CcMGHYhMrrQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.1.tgz", + "integrity": "sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==", "hasInstallScript": true, "license": "MIT", "bin": { @@ -13121,44 +13564,44 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.27.4", - "@esbuild/android-arm": "0.27.4", - "@esbuild/android-arm64": "0.27.4", - "@esbuild/android-x64": "0.27.4", - "@esbuild/darwin-arm64": "0.27.4", - "@esbuild/darwin-x64": "0.27.4", - "@esbuild/freebsd-arm64": "0.27.4", - "@esbuild/freebsd-x64": "0.27.4", - "@esbuild/linux-arm": "0.27.4", - "@esbuild/linux-arm64": "0.27.4", - "@esbuild/linux-ia32": "0.27.4", - "@esbuild/linux-loong64": "0.27.4", - "@esbuild/linux-mips64el": "0.27.4", - "@esbuild/linux-ppc64": "0.27.4", - "@esbuild/linux-riscv64": "0.27.4", - "@esbuild/linux-s390x": "0.27.4", - "@esbuild/linux-x64": "0.27.4", - "@esbuild/netbsd-arm64": "0.27.4", - "@esbuild/netbsd-x64": "0.27.4", - "@esbuild/openbsd-arm64": "0.27.4", - "@esbuild/openbsd-x64": "0.27.4", - "@esbuild/openharmony-arm64": "0.27.4", - "@esbuild/sunos-x64": "0.27.4", - "@esbuild/win32-arm64": "0.27.4", - "@esbuild/win32-ia32": "0.27.4", - "@esbuild/win32-x64": "0.27.4" + "@esbuild/aix-ppc64": "0.28.1", + "@esbuild/android-arm": "0.28.1", + "@esbuild/android-arm64": "0.28.1", + "@esbuild/android-x64": "0.28.1", + "@esbuild/darwin-arm64": "0.28.1", + "@esbuild/darwin-x64": "0.28.1", + "@esbuild/freebsd-arm64": "0.28.1", + "@esbuild/freebsd-x64": "0.28.1", + "@esbuild/linux-arm": "0.28.1", + "@esbuild/linux-arm64": "0.28.1", + "@esbuild/linux-ia32": "0.28.1", + "@esbuild/linux-loong64": "0.28.1", + "@esbuild/linux-mips64el": "0.28.1", + "@esbuild/linux-ppc64": "0.28.1", + "@esbuild/linux-riscv64": "0.28.1", + "@esbuild/linux-s390x": "0.28.1", + "@esbuild/linux-x64": "0.28.1", + "@esbuild/netbsd-arm64": "0.28.1", + "@esbuild/netbsd-x64": "0.28.1", + "@esbuild/openbsd-arm64": "0.28.1", + "@esbuild/openbsd-x64": "0.28.1", + "@esbuild/openharmony-arm64": "0.28.1", + "@esbuild/sunos-x64": "0.28.1", + "@esbuild/win32-arm64": "0.28.1", + "@esbuild/win32-ia32": "0.28.1", + "@esbuild/win32-x64": "0.28.1" } }, "node_modules/esbuild-loader": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/esbuild-loader/-/esbuild-loader-4.4.2.tgz", - "integrity": "sha512-8LdoT9sC7fzfvhxhsIAiWhzLJr9yT3ggmckXxsgvM07wgrRxhuT98XhLn3E7VczU5W5AFsPKv9DdWcZIubbWkQ==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/esbuild-loader/-/esbuild-loader-4.5.0.tgz", + "integrity": "sha512-rVYe97IN1+VoealVHQ3STEPbfTm+vvPk7AZPrL53Pt6JUGBhHTnIqyaow7EveMFlmQ2A1bLp7q19sP4PppaCDQ==", "license": "MIT", "dependencies": { - "esbuild": "^0.27.1", + "esbuild": "^0.28.1", "get-tsconfig": "^4.10.1", "loader-utils": "^2.0.4", - "webpack-sources": "^1.4.3" + "webpack-sources": "^3.3.4" }, "funding": { "url": "https://github.com/privatenumber/esbuild-loader?sponsor=1" @@ -13177,46 +13620,15 @@ } }, "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "license": "MIT", "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "license": "BSD-2-Clause", - "peer": true, - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" + "node": ">=10" }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/escodegen/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/eslint": { @@ -13305,15 +13717,15 @@ } }, "node_modules/eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.10.tgz", + "integrity": "sha512-tRrKqFyCaKict5hOd244sL6EQFNycnMQnBe+j8uqGNXYzsImGbGUU4ibtoaBmv5FLwJwcFJNeg1GeVjQfbMrDQ==", "license": "MIT", "peer": true, "dependencies": { "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" + "is-core-module": "^2.16.1", + "resolve": "^2.0.0-next.6" } }, "node_modules/eslint-import-resolver-node/node_modules/debug": { @@ -13327,9 +13739,9 @@ } }, "node_modules/eslint-import-resolver-typescript": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-4.4.4.tgz", - "integrity": "sha512-1iM2zeBvrYmUNTj2vSC/90JTHDth+dfOfiNKkxApWRsTJYNrc8rOdxxIf5vazX+BiAXTeOT0UvWpGI/7qIWQOw==", + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-4.4.5.tgz", + "integrity": "sha512-nbE5XLph6TLtGYcu/U6e6ZVXyKBhbDWK5cLGk76eJ7NdZpwf1P9EFkpt1Z01mNZNrrilsAYWKH6zUkL4reoXbw==", "license": "ISC", "peer": true, "dependencies": { @@ -13362,9 +13774,9 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz", - "integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.13.0.tgz", + "integrity": "sha512-bLohSkT6469rRs8czj0tLTD8vaeIS/whvPRJVjDr7IuoTT1k5DYDERlNycjDj/HkOlvQdYurmfZ/g3fG5bgeLQ==", "license": "MIT", "peer": true, "dependencies": { @@ -13433,19 +13845,6 @@ "ms": "^2.1.1" } }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/eslint-plugin-import/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -13457,9 +13856,9 @@ } }, "node_modules/eslint-plugin-playwright": { - "version": "2.10.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-playwright/-/eslint-plugin-playwright-2.10.2.tgz", - "integrity": "sha512-0N+2OWc3NZbOZ0gK8mp2TK6Qu3UWcJTQ9rqU0UM2yRJXgT758pvpY0lsOLIySfbyFrLqn3TcXjixbmcK90VnuQ==", + "version": "2.10.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-playwright/-/eslint-plugin-playwright-2.10.4.tgz", + "integrity": "sha512-l0V/VxyqfFbtqCTxj5AdRn3Q6S/hIW4nKBnKZVleVbZ24N2My6Usj//ytX3dKKqAoSbvKck9YtSytfdZ5qjLuA==", "license": "MIT", "peer": true, "dependencies": { @@ -13525,43 +13924,6 @@ "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 || ^10.0.0" } }, - "node_modules/eslint-plugin-react/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.6", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.6.tgz", - "integrity": "sha512-3JmVl5hMGtJ3kMmB3zi3DL25KfkCEyy3Tw7Gmw7z5w8M9WlwoPFnIvwChzu1+cF3iaK3sp18hhPz8ANeimdJfA==", - "license": "MIT", - "peer": true, - "dependencies": { - "es-errors": "^1.3.0", - "is-core-module": "^2.16.1", - "node-exports-info": "^1.6.0", - "object-keys": "^1.1.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/eslint-plugin-react/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -13590,105 +13952,9 @@ } }, "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "license": "Apache-2.0", - "peer": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/ajv": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", - "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", - "license": "MIT", - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "peer": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "license": "MIT", - "peer": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT", - "peer": true - }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", - "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "license": "Apache-2.0", "peer": true, "engines": { @@ -13698,19 +13964,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/file-entry-cache": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", - "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "flat-cache": "^4.0.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, "node_modules/eslint/node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -13728,48 +13981,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/flat-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", - "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "node_modules/eslint/node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "license": "MIT", "peer": true, - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.4" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/eslint/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "license": "ISC", - "peer": true, - "dependencies": { - "is-glob": "^4.0.3" - }, "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/eslint/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "license": "MIT", - "peer": true - }, - "node_modules/eslint/node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "license": "MIT", - "peer": true, - "dependencies": { - "json-buffer": "3.0.1" + "node": ">= 4" } }, "node_modules/eslint/node_modules/locate-path": { @@ -13838,23 +14057,11 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", - "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", - "license": "Apache-2.0", - "peer": true, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", @@ -13953,27 +14160,6 @@ "dev": true, "license": "MIT" }, - "node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "license": "BSD-2-Clause", - "peer": true, - "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - }, - "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" - } - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -14002,6 +14188,18 @@ "node": ">=8.6.0" } }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -14017,9 +14215,9 @@ "peer": true }, "node_modules/fast-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", - "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.2.tgz", + "integrity": "sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==", "funding": [ { "type": "github", @@ -14051,16 +14249,6 @@ "reusify": "^1.0.4" } }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "license": "MIT", - "peer": true, - "dependencies": { - "pend": "~1.2.0" - } - }, "node_modules/fecha": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", @@ -14068,20 +14256,23 @@ "license": "MIT" }, "node_modules/fflate": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", - "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==", + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.3.tgz", + "integrity": "sha512-tbZNuJrLwGUp3zshBtdy4W+ORxZuIh8a5ilyIEQDC5rY1f3U20JMry0Ll3WBzU58EZKsEuJFXhb5gwv8CsPvgA==", "dev": true, "license": "MIT" }, "node_modules/file-entry-cache": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-11.1.2.tgz", - "integrity": "sha512-N2WFfK12gmrK1c1GXOqiAJ1tc5YE+R53zvQ+t5P8S5XhnmKYVB5eZEiLNZKDSmoG8wqqbF9EXYBBW/nef19log==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "license": "MIT", "peer": true, "dependencies": { - "flat-cache": "^6.1.20" + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" } }, "node_modules/fill-range": { @@ -14127,21 +14318,23 @@ } }, "node_modules/flat-cache": { - "version": "6.1.20", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.20.tgz", - "integrity": "sha512-AhHYqwvN62NVLp4lObVXGVluiABTHapoB57EyegZVmazN+hhGhLTn3uZbOofoTw4DSDvVCadzzyChXhOAvy8uQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "license": "MIT", "peer": true, "dependencies": { - "cacheable": "^2.3.2", - "flatted": "^3.3.3", - "hookified": "^1.15.0" + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" } }, "node_modules/flatted": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.0.tgz", - "integrity": "sha512-kC6Bb+ooptOIvWj5B63EQWkF0FEnNjV2ZNkLMLZRDDduIiWeFF4iKnslwhiWxjAdbg4NzTNo6h0qLuvFrcx+Sw==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", "license": "ISC" }, "node_modules/fn.name": { @@ -14258,17 +14451,20 @@ } }, "node_modules/function.prototype.name": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", - "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.2.0.tgz", + "integrity": "sha512-jObKIik1P2QjPHP5nz5BaOtUlfgS0fWo8IUByNXkM+o+02sJOi94em77GwJKQSJ3gfPHdgzLNrHc1uokV4P/ew==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", "functions-have-names": "^1.2.3", - "hasown": "^2.0.2", - "is-callable": "^1.2.7" + "has-property-descriptors": "^1.0.2", + "hasown": "^2.0.4", + "is-callable": "^1.2.7", + "is-document.all": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -14315,9 +14511,9 @@ } }, "node_modules/get-east-asian-width": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.5.0.tgz", - "integrity": "sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.6.0.tgz", + "integrity": "sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA==", "license": "MIT", "engines": { "node": ">=18" @@ -14361,9 +14557,9 @@ } }, "node_modules/get-port": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-7.1.0.tgz", - "integrity": "sha512-QB9NKEeDg3xxVwCCwJQ9+xycaz6pBB6iQ76wiWMl1927n0Kir6alPiP+yuiICLLU4jpMe08dXfpebuQppFA2zw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-7.2.0.tgz", + "integrity": "sha512-afP4W205ONCuMoPBqcR6PSXnzX35KTcJygfJfcp+QY+uwm3p20p1YczWXhlICIzGMCxYBQcySEcOgsJcrkyobg==", "license": "MIT", "engines": { "node": ">=16" @@ -14385,22 +14581,6 @@ "node": ">= 0.4" } }, - "node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "license": "MIT", - "peer": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/get-symbol-description": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", @@ -14419,9 +14599,9 @@ } }, "node_modules/get-tsconfig": { - "version": "4.13.6", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.6.tgz", - "integrity": "sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.14.0.tgz", + "integrity": "sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==", "license": "MIT", "dependencies": { "resolve-pkg-maps": "^1.0.0" @@ -14430,21 +14610,6 @@ "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" } }, - "node_modules/get-uri": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.5.tgz", - "integrity": "sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==", - "license": "MIT", - "peer": true, - "dependencies": { - "basic-ftp": "^5.0.2", - "data-uri-to-buffer": "^6.0.2", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/gettext-parser": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/gettext-parser/-/gettext-parser-1.4.0.tgz", @@ -14457,32 +14622,52 @@ } }, "node_modules/glob": { - "version": "13.0.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", - "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", - "license": "BlueOak-1.0.0", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "license": "ISC", + "peer": true, "dependencies": { - "minimatch": "^10.2.2", - "minipass": "^7.1.3", - "path-scurry": "^2.0.2" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "license": "ISC", "dependencies": { - "is-glob": "^4.0.1" + "is-glob": "^4.0.3" }, "engines": { - "node": ">= 6" + "node": ">=10.13.0" + } + }, + "node_modules/glob-promise": { + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/glob-promise/-/glob-promise-6.0.7.tgz", + "integrity": "sha512-DEAe6br1w8ZF+y6KM2pzgdfhpreladtNvyNNVgSkxxkFWzXTJFXxQrJQQbAnc7kL0EUd7w5cR8u4K0P4+/q+Gw==", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/ahmadnassri" + }, + "peerDependencies": { + "glob": "^8.0.3" } }, "node_modules/glob-to-regexp": { @@ -14491,40 +14676,27 @@ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "license": "BSD-2-Clause" }, - "node_modules/glob/node_modules/balanced-match": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", - "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", - "license": "MIT", - "engines": { - "node": "18 || 20 || >=22" - } - }, "node_modules/glob/node_modules/brace-expansion": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz", - "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.1.tgz", + "integrity": "sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==", "license": "MIT", + "peer": true, "dependencies": { - "balanced-match": "^4.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" + "balanced-match": "^1.0.0" } }, "node_modules/glob/node_modules/minimatch": { - "version": "10.2.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", - "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", - "license": "BlueOak-1.0.0", + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", + "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", + "license": "ISC", + "peer": true, "dependencies": { - "brace-expansion": "^5.0.2" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=10" } }, "node_modules/global-modules": { @@ -14617,6 +14789,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/globby/node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, "node_modules/globby/node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -14633,16 +14814,6 @@ "license": "MIT", "peer": true }, - "node_modules/good-listener": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", - "integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==", - "dev": true, - "license": "MIT", - "dependencies": { - "delegate": "^3.1.2" - } - }, "node_modules/gopd": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", @@ -14753,22 +14924,22 @@ "license": "MIT" }, "node_modules/hashery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/hashery/-/hashery-1.5.0.tgz", - "integrity": "sha512-nhQ6ExaOIqti2FDWoEMWARUqIKyjr2VcZzXShrI+A3zpeiuPWzx6iPftt44LhP74E5sW36B75N6VHbvRtpvO6Q==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/hashery/-/hashery-1.5.1.tgz", + "integrity": "sha512-iZyKG96/JwPz1N55vj2Ie2vXbhu440zfUfJvSwEqEbeLluk7NnapfGqa7LH0mOsnDxTF85Mx8/dyR6HfqcbmbQ==", "license": "MIT", "peer": true, "dependencies": { - "hookified": "^1.14.0" + "hookified": "^1.15.0" }, "engines": { "node": ">=20" } }, "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", "license": "MIT", "dependencies": { "function-bind": "^1.1.2" @@ -14821,13 +14992,6 @@ "react-is": "^16.7.0" } }, - "node_modules/hoist-non-react-statics/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true, - "license": "MIT" - }, "node_modules/hookified": { "version": "1.15.1", "resolved": "https://registry.npmjs.org/hookified/-/hookified-1.15.1.tgz", @@ -14853,6 +15017,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, "license": "MIT" }, "node_modules/html-tags": { @@ -14878,38 +15043,10 @@ "node": ">=6.0.0" } }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "license": "MIT", - "peer": true, - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/https-proxy-agent": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", - "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", - "license": "MIT", - "peer": true, - "dependencies": { - "agent-base": "^7.1.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/human-id": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/human-id/-/human-id-4.1.3.tgz", - "integrity": "sha512-tsYlhAYpjCKa//8rXZ9DqKEawhPoSytweBC2eNvcaDK+57RZLHGqNs3PZTQO6yekLFSuvA6AlnAfrw1uBvtb+Q==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/human-id/-/human-id-4.2.0.tgz", + "integrity": "sha512-K3GbkIWqyvvlpfhBPlbEvD97TtqBpAYA4kt+cn2lD2x2HuohzZCibcA2nOlnJT6exqvJLggoB5nv2dNf192nEA==", "dev": true, "license": "MIT", "bin": { @@ -14950,9 +15087,9 @@ } }, "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", "license": "MIT", "engines": { "node": ">= 4" @@ -14966,9 +15103,9 @@ "peer": true }, "node_modules/immutable": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.5.tgz", - "integrity": "sha512-t7xcm2siw+hlUM68I+UEOK+z84RzmN59as9DZ7P1l0994DKUWV7UXBMQZVxaoMSRQ+PBZbHCOoBt7a2wxOMt+A==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.6.tgz", + "integrity": "sha512-q1swsS8K7L8usSHuOqF2TAoCCkonYz0SG38wLAggaa4Wml70zixIvt2ql4coQ2C2B3hTjltJry4r6bULwgAXLQ==", "license": "MIT" }, "node_modules/import-fresh": { @@ -15070,16 +15207,6 @@ "tslib": "^2.8.0" } }, - "node_modules/ip-address": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz", - "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 12" - } - }, "node_modules/is-array-buffer": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", @@ -15176,12 +15303,12 @@ } }, "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "version": "2.16.2", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.2.tgz", + "integrity": "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==", "license": "MIT", "dependencies": { - "hasown": "^2.0.2" + "hasown": "^2.0.3" }, "engines": { "node": ">= 0.4" @@ -15239,6 +15366,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-document.all": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-document.all/-/is-document.all-1.0.0.tgz", + "integrity": "sha512-+XSoyS05OdBbhFuELhgTCpFNHkpBOJqtsZfUFFpe5QTw+9Sjbh8zitxhQkYAo6wV7e1Vb8cAPvpCk9jGam/82g==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -15686,9 +15828,9 @@ } }, "node_modules/jiti": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", - "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz", + "integrity": "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==", "license": "MIT", "bin": { "jiti": "lib/jiti-cli.mjs" @@ -15719,9 +15861,19 @@ "license": "MIT" }, "node_modules/js-yaml": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", - "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.2.0.tgz", + "integrity": "sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], "license": "MIT", "dependencies": { "argparse": "^2.0.1" @@ -15769,10 +15921,11 @@ "license": "MIT" }, "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "license": "MIT" + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT", + "peer": true }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -15826,13 +15979,13 @@ } }, "node_modules/keyv": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.6.0.tgz", - "integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==", + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "license": "MIT", "peer": true, "dependencies": { - "@keyv/serialize": "^1.1.1" + "json-buffer": "3.0.1" } }, "node_modules/kind-of": { @@ -15879,19 +16032,19 @@ } }, "node_modules/lighthouse": { - "version": "13.0.3", - "resolved": "https://registry.npmjs.org/lighthouse/-/lighthouse-13.0.3.tgz", - "integrity": "sha512-mEHAQV3nn4fB+3FDapye+KGeeE4V8FERgbCFegKT7HxqDVGWVOM/BoH9Qof71fzVYVMLIiGnDsnWRrH0sQ9o4Q==", + "version": "13.4.0", + "resolved": "https://registry.npmjs.org/lighthouse/-/lighthouse-13.4.0.tgz", + "integrity": "sha512-QumN5pLuQvLLGWpIeUe7+LBH7oHgd0BdD3wIIncVTXe+5wiLBiO2E7pQjNDUWu1si1r0iPKtXOPTZ0sUPXHivA==", "license": "Apache-2.0", "peer": true, "dependencies": { - "@paulirish/trace_engine": "0.0.61", + "@paulirish/trace_engine": "0.0.65", "@sentry/node": "^9.28.1", - "axe-core": "^4.11.0", + "axe-core": "^4.12.0", "chrome-launcher": "^1.2.1", "configstore": "^7.0.0", - "csp_evaluator": "1.1.5", - "devtools-protocol": "0.0.1527314", + "csp_evaluator": "1.1.8", + "devtools-protocol": "0.0.1625959", "enquirer": "^2.3.6", "http-link-header": "^1.1.1", "intl-messageformat": "^10.5.3", @@ -15902,11 +16055,12 @@ "lodash-es": "^4.17.21", "lookup-closest-locale": "6.2.0", "open": "^8.4.0", - "puppeteer-core": "^24.23.0", + "puppeteer-core": "^25.0.2", "robots-parser": "^3.0.1", "speedline-core": "^1.4.3", - "third-party-web": "^0.27.0", - "tldts-icann": "^7.0.17", + "third-party-web": "^0.29.2", + "tldts-icann": "^7.4.2", + "web-features": "^3.30.0", "ws": "^7.0.0", "yargs": "^17.3.1", "yargs-parser": "^21.0.0" @@ -15938,20 +16092,14 @@ "license": "Apache-2.0", "peer": true }, - "node_modules/lighthouse/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", + "node_modules/lighthouse/node_modules/axe-core": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.12.1.tgz", + "integrity": "sha512-s7iGf5GaVMxEG0ENN9x+xTr7GFZCb1ZP/1uATUpCEK2X78nDB3RwbtFCo9pGAf9ru+VwoQ464DkaLEeRM08wJA==", + "license": "MPL-2.0", "peer": true, - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=4" } }, "node_modules/lighthouse/node_modules/cliui": { @@ -15969,26 +16117,6 @@ "node": ">=12" } }, - "node_modules/lighthouse/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/lighthouse/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT", - "peer": true - }, "node_modules/lighthouse/node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -16026,6 +16154,16 @@ "node": ">=12" } }, + "node_modules/lighthouse/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", + "peer": true, + "engines": { + "node": ">=12" + } + }, "node_modules/lightningcss": { "version": "1.32.0", "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", @@ -16169,6 +16307,9 @@ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -16190,6 +16331,9 @@ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -16211,6 +16355,9 @@ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -16232,6 +16379,9 @@ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -16291,6 +16441,7 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true, "license": "MIT", "engines": { "node": ">=14" @@ -16335,9 +16486,9 @@ } }, "node_modules/loader-runner": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.1.tgz", - "integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.2.tgz", + "integrity": "sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==", "license": "MIT", "engines": { "node": ">=6.11.5" @@ -16375,9 +16526,9 @@ } }, "node_modules/lodash-es": { - "version": "4.17.23", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.23.tgz", - "integrity": "sha512-kVI48u3PZr38HdYz98UmfPnXl2DXrpdctLrFLCd3kOx1xUkOmpFPx7gCWWM5MPkL/fD8zb+Ph0QzjGFs4+hHWg==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.18.1.tgz", + "integrity": "sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==", "license": "MIT" }, "node_modules/lodash.escape": { @@ -16386,12 +16537,6 @@ "integrity": "sha512-nXEOnb/jK9g0DYMr1/Xvq6l5xMD7GDG55+GSYIYmS0G4tBk/hURD4JR9WCavs04t33WmJx9kCyp9vJ+mr4BOUw==", "license": "MIT" }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "license": "MIT" - }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -16412,12 +16557,6 @@ "license": "MIT", "peer": true }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", - "license": "MIT" - }, "node_modules/logform": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/logform/-/logform-2.7.0.tgz", @@ -16470,12 +16609,13 @@ } }, "node_modules/lru-cache": { - "version": "11.2.7", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.7.tgz", - "integrity": "sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==", - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "license": "ISC", + "peer": true, + "dependencies": { + "yallist": "^3.0.2" } }, "node_modules/magic-string": { @@ -16489,13 +16629,13 @@ } }, "node_modules/magicast": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.5.2.tgz", - "integrity": "sha512-E3ZJh4J3S9KfwdjZhe2afj6R9lGIN5Pher1pF39UGrXRqq/VDaGVIGN13BjHd2u8B61hArAGOnso7nBOouW3TQ==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.5.3.tgz", + "integrity": "sha512-pVKE4UdSQ7DvHzivsCIFx2BJn1mHG6KsyrFcaxFx6tONdneEuThrDx0Cj3AMg58KyN4pzYT+LHOotxDQDjNvkw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.29.0", + "@babel/parser": "^7.29.3", "@babel/types": "^7.29.0", "source-map-js": "^1.2.1" } @@ -16606,22 +16746,10 @@ } }, "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, "engines": { "node": ">= 0.6" } @@ -16687,6 +16815,16 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/modern-tar": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/modern-tar/-/modern-tar-0.7.6.tgz", + "integrity": "sha512-sweCIVXzx1aIGTCdzcMlSZt1h8k5Tmk08VNAuRk3IU28XamGiOH5ypi11g6De2CH7PhYqSSnGy2A/EFhbWnVKg==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/module-details-from-path": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.4.tgz", @@ -16776,9 +16914,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", + "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", "funding": [ { "type": "github", @@ -16822,16 +16960,6 @@ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "license": "MIT" }, - "node_modules/netmask": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", @@ -16907,10 +17035,13 @@ } }, "node_modules/node-releases": { - "version": "2.0.36", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.36.tgz", - "integrity": "sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==", - "license": "MIT" + "version": "2.0.47", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.47.tgz", + "integrity": "sha512-Uzmd6LXpouKo8EUK68IjH4+E01w/hXyV3R3g/geCJo+rXLNfh1xucB+LOzYEOQPSiUK3h/xZf0cQGcSsmyL2Og==", + "license": "MIT", + "engines": { + "node": ">=18" + } }, "node_modules/normalize-package-data": { "version": "2.5.0", @@ -16925,6 +17056,28 @@ "validate-npm-package-license": "^3.0.1" } }, + "node_modules/normalize-package-data/node_modules/resolve": { + "version": "1.22.12", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/normalize-package-data/node_modules/semver": { "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", @@ -16977,14 +17130,59 @@ "node": ">= 4" } }, - "node_modules/npm-run-all/node_modules/cross-spawn": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz", - "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==", + "node_modules/npm-run-all/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "license": "MIT", "dependencies": { - "nice-try": "^1.0.4", + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/npm-run-all/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/npm-run-all/node_modules/cross-spawn": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz", + "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "nice-try": "^1.0.4", "path-key": "^2.0.1", "semver": "^5.5.0", "shebang-command": "^1.2.0", @@ -16994,6 +17192,26 @@ "node": ">=4.8" } }, + "node_modules/npm-run-all/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/npm-run-all/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/npm-run-all/node_modules/path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", @@ -17037,6 +17255,19 @@ "node": ">=0.10.0" } }, + "node_modules/npm-run-all/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/npm-run-all/node_modules/which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", @@ -17182,15 +17413,18 @@ } }, "node_modules/obug": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.1.tgz", - "integrity": "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.3.tgz", + "integrity": "sha512-9miFgM2OFba7hB+pRgvtV84pYTBaoTHohvmIgiRt6dRIzbwEOIaNaP+dIlGs2fNFoB0SeISs0Jz5WFVRid6Xyg==", "dev": true, "funding": [ "https://github.com/sponsors/sxzz", "https://opencollective.com/debug" ], - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=12.20.0" + } }, "node_modules/once": { "version": "1.4.0", @@ -17354,40 +17588,6 @@ "node": ">=6" } }, - "node_modules/pac-proxy-agent": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz", - "integrity": "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==", - "license": "MIT", - "peer": true, - "dependencies": { - "@tootallnate/quickjs-emscripten": "^0.23.0", - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "get-uri": "^6.0.1", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.6", - "pac-resolver": "^7.0.1", - "socks-proxy-agent": "^8.0.5" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/pac-resolver": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", - "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", - "license": "MIT", - "peer": true, - "dependencies": { - "degenerator": "^5.0.0", - "netmask": "^2.0.2" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/package-manager-detector": { "version": "0.2.11", "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-0.2.11.tgz", @@ -17520,6 +17720,15 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "11.5.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.1.tgz", + "integrity": "sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==", + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, "node_modules/path-to-regexp": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", @@ -17543,13 +17752,6 @@ "dev": true, "license": "MIT" }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "license": "MIT", - "peer": true - }, "node_modules/pg-int8": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", @@ -17561,9 +17763,9 @@ } }, "node_modules/pg-protocol": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.13.0.tgz", - "integrity": "sha512-zzdvXfS6v89r6v7OcFCHfHlyG/wvry1ALxZo4LqgUoy7W9xhBDMaqOuMiF3qEV45VqsN6rdlcehHrfDtlCPc8w==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.14.0.tgz", + "integrity": "sha512-n5taZ1kO3s9ngDTVxsEznOqCyToTgz0FLuPq0B33COy5pPpuWJpY3/2oRBVETuOgzdqRXfWpM9HIhp2LBBT1BA==", "license": "MIT", "peer": true }, @@ -17591,9 +17793,9 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", "license": "MIT", "engines": { "node": ">=8.6" @@ -17626,13 +17828,13 @@ } }, "node_modules/playwright": { - "version": "1.58.2", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.58.2.tgz", - "integrity": "sha512-vA30H8Nvkq/cPBnNw4Q8TWz1EJyqgpuinBcHET0YVJVFldr8JDNiU9LaWAE1KqSkRYazuaBhTpB5ZzShOezQ6A==", + "version": "1.61.0", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.61.0.tgz", + "integrity": "sha512-Z+7BeeqQPRRzklHsVFP4KTGIyMxKUmfeRA4WisM6G3/XW6nwGeX6fX9qYaDa+CiUqpOkb2f6X3nar05R3kSuJQ==", "license": "Apache-2.0", "peer": true, "dependencies": { - "playwright-core": "1.58.2" + "playwright-core": "1.61.0" }, "bin": { "playwright": "cli.js" @@ -17645,9 +17847,9 @@ } }, "node_modules/playwright-core": { - "version": "1.58.2", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.58.2.tgz", - "integrity": "sha512-yZkEtftgwS8CsfYo7nm0KE8jsvm6i/PTgVtB8DL726wNf6H2IMsDuxCpJj59KDaxCtSnrWan2AeDqM7JBaultg==", + "version": "1.61.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.61.0.tgz", + "integrity": "sha512-caX7TrY3Ml6egyDX0WUcTHDxodl/b51y5wJOdCEA36QviK/s2g081hvmGs8eaE3DWb6NYZQ6BjO/QkNRPenoPA==", "license": "Apache-2.0", "peer": true, "bin": { @@ -17679,55 +17881,6 @@ } } }, - "node_modules/playwright-lighthouse/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/playwright-lighthouse/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/playwright-lighthouse/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/playwright-lighthouse/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, "node_modules/playwright/node_modules/fsevents": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", @@ -17753,9 +17906,9 @@ } }, "node_modules/postcss": { - "version": "8.5.8", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz", - "integrity": "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==", + "version": "8.5.15", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz", + "integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==", "funding": [ { "type": "opencollective", @@ -17772,7 +17925,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.11", + "nanoid": "^3.3.12", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -17806,9 +17959,9 @@ } }, "node_modules/postcss-attribute-case-insensitive/node_modules/postcss-selector-parser": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", - "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz", + "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==", "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -17822,6 +17975,7 @@ "version": "10.1.1", "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-10.1.1.tgz", "integrity": "sha512-NYEsLHh8DgG/PRH2+G9BTuUdtf9ViS+vdoQ0YA5OQdGsfN4ztiwtDWNtBl9EKeqNMFnIu8IKZ0cLxEQ5r5KVMw==", + "dev": true, "license": "MIT", "dependencies": { "postcss-selector-parser": "^7.0.0", @@ -17835,9 +17989,10 @@ } }, "node_modules/postcss-calc/node_modules/postcss-selector-parser": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", - "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz", + "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==", + "dev": true, "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -17863,9 +18018,9 @@ } }, "node_modules/postcss-color-functional-notation": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-8.0.2.tgz", - "integrity": "sha512-tbmkk6teYpJzFcGwPIhN1gkvxqGHvNx2PMb8Y3S5Ktyn7xOlvD98XzQ99MFY5mAyvXWclDG+BgoJKYJXFJOp5Q==", + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-8.0.5.tgz", + "integrity": "sha512-Cxr97Vtt2VeJCGaex0JNSU5MViqYtjKmJLHKM+jI7d+qIs0J5xgHEVG6Q2bTCaFJ1yjcFz9s9VmWCibuzk3+MA==", "funding": [ { "type": "github", @@ -17878,10 +18033,10 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^4.0.2", + "@csstools/css-color-parser": "^4.1.7", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", - "@csstools/postcss-progressive-custom-properties": "^5.0.0", + "@csstools/postcss-progressive-custom-properties": "^5.1.0", "@csstools/utilities": "^3.0.0" }, "engines": { @@ -17892,9 +18047,9 @@ } }, "node_modules/postcss-color-functional-notation/node_modules/@csstools/css-calc": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.1.1.tgz", - "integrity": "sha512-HJ26Z/vmsZQqs/o3a6bgKslXGFAungXGbinULZO3eMsOyNJHeBBZfup5FiZInOghgoM4Hwnmw+OgbJCNg1wwUQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.1.tgz", + "integrity": "sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==", "funding": [ { "type": "github", @@ -17915,9 +18070,9 @@ } }, "node_modules/postcss-color-functional-notation/node_modules/@csstools/css-color-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.0.2.tgz", - "integrity": "sha512-0GEfbBLmTFf0dJlpsNU7zwxRIH0/BGEMuXLTCvFYxuL1tNhqzTbtnFICyJLTNK4a+RechKP75e7w42ClXSnJQw==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.7.tgz", + "integrity": "sha512-CmjJFQTFQx/U/xNJhSjCQ0ilpesPmNQ8+eOUeM/+kDOVW33qsIjeOXc27vrQDdWVkf83ZSWwtg7kXSUvKDJ8cQ==", "funding": [ { "type": "github", @@ -17931,7 +18086,7 @@ "license": "MIT", "dependencies": { "@csstools/color-helpers": "^6.0.2", - "@csstools/css-calc": "^3.1.1" + "@csstools/css-calc": "^3.2.1" }, "engines": { "node": ">=20.19.0" @@ -18035,37 +18190,39 @@ } }, "node_modules/postcss-colormin": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-7.0.6.tgz", - "integrity": "sha512-oXM2mdx6IBTRm39797QguYzVEWzbdlFiMNfq88fCCN1Wepw3CYmJ/1/Ifa/KjWo+j5ZURDl2NTldLJIw51IeNQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-8.0.1.tgz", + "integrity": "sha512-qBY4ABQ6d8/mk5RRZHwMllrZMxeMey3azVY2dZUEk+RgiUC4ARdPR3/AITzNqqKTbvW/3y/MJKinDrzwqn8RDQ==", + "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.28.1", - "caniuse-api": "^3.0.0", - "colord": "^2.9.3", + "@colordx/core": "^5.4.3", + "browserslist": "^4.28.2", + "caniuse-api": "^4.0.0", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-convert-values": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-7.0.9.tgz", - "integrity": "sha512-l6uATQATZaCa0bckHV+r6dLXfWtUBKXxO3jK+AtxxJJtgMPD+VhhPCCx51I4/5w8U5uHV67g3w7PXj+V3wlMlg==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-8.0.1.tgz", + "integrity": "sha512-IdOSIX3BzfMvCc1TAHIha2gfy17xnb5vfML8e2BIKARnFOghksESfaSAB/3CXgyLfMozZAbTRPVQF5dbuKOidw==", + "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.28.1", + "browserslist": "^4.28.2", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-custom-media": { @@ -18369,9 +18526,9 @@ } }, "node_modules/postcss-custom-selectors/node_modules/postcss-selector-parser": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", - "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz", + "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==", "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -18407,9 +18564,9 @@ } }, "node_modules/postcss-dir-pseudo-class/node_modules/postcss-selector-parser": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", - "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz", + "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==", "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -18420,24 +18577,26 @@ } }, "node_modules/postcss-discard-comments": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-7.0.6.tgz", - "integrity": "sha512-Sq+Fzj1Eg5/CPf1ERb0wS1Im5cvE2gDXCE+si4HCn1sf+jpQZxDI4DXEp8t77B/ImzDceWE2ebJQFXdqZ6GRJw==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-8.0.1.tgz", + "integrity": "sha512-FDvzm3tXlEsQBO2XQgnta5ugsAqwBrgWH+j5QgXpegEIDYA0VPnZg2aP7LtmWtC49POskeIhXesFiU/k3NyFHA==", + "dev": true, "license": "MIT", "dependencies": { - "postcss-selector-parser": "^7.1.1" + "postcss-selector-parser": "^7.1.2" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-discard-comments/node_modules/postcss-selector-parser": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", - "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz", + "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==", + "dev": true, "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -18448,45 +18607,48 @@ } }, "node_modules/postcss-discard-duplicates": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-7.0.2.tgz", - "integrity": "sha512-eTonaQvPZ/3i1ASDHOKkYwAybiM45zFIc7KXils4mQmHLqIswXD9XNOKEVxtTFnsmwYzF66u4LMgSr0abDlh5w==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-8.0.1.tgz", + "integrity": "sha512-stTDXkI8YkCUfADurQhp03oq5ynsgSx6Qrw5B1swds6oTHtAeOZ9I0SHGK8cY/VpWUsIYFDWMs3IWf9jIEfFvA==", + "dev": true, "license": "MIT", "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-discard-empty": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-7.0.1.tgz", - "integrity": "sha512-cFrJKZvcg/uxB6Ijr4l6qmn3pXQBna9zyrPC+sK0zjbkDUZew+6xDltSF7OeB7rAtzaaMVYSdbod+sZOCWnMOg==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-8.0.1.tgz", + "integrity": "sha512-Zv4fM1Yfhk71tbt6gfiptbL6jDHi+7apSnaMeaO9n1uET+1embrXQw5m93Zp5x28UyQSuv+AVkFY193jdwZ33w==", + "dev": true, "license": "MIT", "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-discard-overridden": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-7.0.1.tgz", - "integrity": "sha512-7c3MMjjSZ/qYrx3uc1940GSOzN1Iqjtlqe8uoSg+qdVPYyRb0TILSqqmtlSFuE4mTDECwsm397Ya7iXGzfF7lg==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-8.0.1.tgz", + "integrity": "sha512-ykt4fvrC7yYGzbxKyqBVjDCbsjF/11JgWK8enrdkobRyqqEtb/uDUCbKOGdvrK8X7BrShW8Lv5cCRNbdkNHGkQ==", + "dev": true, "license": "MIT", "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-double-position-gradients": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-7.0.0.tgz", - "integrity": "sha512-Msr/dxj8Os7KLJE5Hdhvprwm3K5Zrh1KTY0eFN3ngPKNkej/Usy4BM9JQmqE6CLAkDpHoQVsi4snbL72CPt6qg==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-7.0.1.tgz", + "integrity": "sha512-M69I4EolEGwiYa0KmxKWg4zZp2DxhlNM0Bz12OvHCj930GXDVCvFhdWNGsRscz6BIijN6tFryzSFsy8kMLyD5Q==", "funding": [ { "type": "github", @@ -18499,7 +18661,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^5.0.0", + "@csstools/postcss-progressive-custom-properties": "^5.1.0", "@csstools/utilities": "^3.0.0", "postcss-value-parser": "^4.2.0" }, @@ -18536,9 +18698,9 @@ } }, "node_modules/postcss-focus-visible/node_modules/postcss-selector-parser": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", - "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz", + "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==", "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -18574,9 +18736,9 @@ } }, "node_modules/postcss-focus-within/node_modules/postcss-selector-parser": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", - "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz", + "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==", "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -18644,9 +18806,9 @@ } }, "node_modules/postcss-lab-function": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-8.0.2.tgz", - "integrity": "sha512-1ZIAh8ODhZdnAb09Aq2BTenePKS1G/kUR0FwvzkQDfFtSOV64Ycv27YvV11fDycEvhIcEmgYkLABXKRiWcXRuA==", + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-8.0.5.tgz", + "integrity": "sha512-ohQnYx1LloPkiLQhAjpt/Y9tAGCGOBOUaxgbcmO+1bDTFzUQCTfdpemOVh6oewI4V2K6q7+Vz8d3rP1glvK3uw==", "funding": [ { "type": "github", @@ -18659,10 +18821,10 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^4.0.2", + "@csstools/css-color-parser": "^4.1.7", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", - "@csstools/postcss-progressive-custom-properties": "^5.0.0", + "@csstools/postcss-progressive-custom-properties": "^5.1.0", "@csstools/utilities": "^3.0.0" }, "engines": { @@ -18673,9 +18835,9 @@ } }, "node_modules/postcss-lab-function/node_modules/@csstools/css-calc": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.1.1.tgz", - "integrity": "sha512-HJ26Z/vmsZQqs/o3a6bgKslXGFAungXGbinULZO3eMsOyNJHeBBZfup5FiZInOghgoM4Hwnmw+OgbJCNg1wwUQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.1.tgz", + "integrity": "sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==", "funding": [ { "type": "github", @@ -18696,9 +18858,9 @@ } }, "node_modules/postcss-lab-function/node_modules/@csstools/css-color-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.0.2.tgz", - "integrity": "sha512-0GEfbBLmTFf0dJlpsNU7zwxRIH0/BGEMuXLTCvFYxuL1tNhqzTbtnFICyJLTNK4a+RechKP75e7w42ClXSnJQw==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.7.tgz", + "integrity": "sha512-CmjJFQTFQx/U/xNJhSjCQ0ilpesPmNQ8+eOUeM/+kDOVW33qsIjeOXc27vrQDdWVkf83ZSWwtg7kXSUvKDJ8cQ==", "funding": [ { "type": "github", @@ -18712,7 +18874,7 @@ "license": "MIT", "dependencies": { "@csstools/color-helpers": "^6.0.2", - "@csstools/css-calc": "^3.1.1" + "@csstools/css-calc": "^3.2.1" }, "engines": { "node": ">=20.19.0" @@ -18827,43 +18989,46 @@ "peer": true }, "node_modules/postcss-merge-longhand": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-7.0.5.tgz", - "integrity": "sha512-Kpu5v4Ys6QI59FxmxtNB/iHUVDn9Y9sYw66D6+SZoIk4QTz1prC4aYkhIESu+ieG1iylod1f8MILMs1Em3mmIw==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-8.0.1.tgz", + "integrity": "sha512-huTfSYgQ13O81SFvAuOi7GWnO48vvybjj3xF+X3qUoPjzvvaLpJH5DcUqqXcwOEulZUcvaV4s0V9WtWs+IAQPA==", + "dev": true, "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0", - "stylehacks": "^7.0.5" + "stylehacks": "^8.0.1" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-merge-rules": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-7.0.8.tgz", - "integrity": "sha512-BOR1iAM8jnr7zoQSlpeBmCsWV5Uudi/+5j7k05D0O/WP3+OFMPD86c1j/20xiuRtyt45bhxw/7hnhZNhW2mNFA==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-8.0.1.tgz", + "integrity": "sha512-o3rk4UpnPNg469tklYwbR/NtvKc/f/wJiVDTnNQ/EFPw/LeiPOHUCvV1GIBQIZHGrBAYdPjToK6a+ojYprsrxQ==", + "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.28.1", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^5.0.1", - "postcss-selector-parser": "^7.1.1" + "browserslist": "^4.28.2", + "caniuse-api": "^4.0.0", + "cssnano-utils": "^6.0.1", + "postcss-selector-parser": "^7.1.2" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-merge-rules/node_modules/postcss-selector-parser": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", - "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz", + "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==", + "dev": true, "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -18874,74 +19039,81 @@ } }, "node_modules/postcss-minify-font-values": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-7.0.1.tgz", - "integrity": "sha512-2m1uiuJeTplll+tq4ENOQSzB8LRnSUChBv7oSyFLsJRtUgAAJGP6LLz0/8lkinTgxrmJSPOEhgY1bMXOQ4ZXhQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-8.0.1.tgz", + "integrity": "sha512-L8Nzs/PRlBSPrLdY/7rAiU5ZN5800+2J/4LRbfyG8SJnPljmgMaXVmQiCklvRS+yObfVRNtvmk/Ean/eoYcSeg==", + "dev": true, "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-minify-gradients": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-7.0.1.tgz", - "integrity": "sha512-X9JjaysZJwlqNkJbUDgOclyG3jZEpAMOfof6PUZjPnPrePnPG62pS17CjdM32uT1Uq1jFvNSff9l7kNbmMSL2A==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-8.0.1.tgz", + "integrity": "sha512-qf+4s/hZMqTwpWN2teqf6+1yvR/SZK5HgHqXYuACeJXV7ABe7AXtBEomgxagUzcN4bSnmqBh5vnIml0dYqykYg==", + "dev": true, "license": "MIT", "dependencies": { - "colord": "^2.9.3", - "cssnano-utils": "^5.0.1", + "@colordx/core": "^5.4.3", + "cssnano-utils": "^6.0.1", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-minify-params": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-7.0.6.tgz", - "integrity": "sha512-YOn02gC68JijlaXVuKvFSCvQOhTpblkcfDre2hb/Aaa58r2BIaK4AtE/cyZf2wV7YKAG+UlP9DT+By0ry1E4VQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-8.0.1.tgz", + "integrity": "sha512-L0h3H59deFfFg0wQN1NVaS/8E/LfGvaMuZKGO7siwlG995zo3OshtQyRkqKdVqcBwAORBvZ1nDZrKPLRapYkQw==", + "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.28.1", - "cssnano-utils": "^5.0.1", + "browserslist": "^4.28.2", + "cssnano-utils": "^6.0.1", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-minify-selectors": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-7.0.6.tgz", - "integrity": "sha512-lIbC0jy3AAwDxEgciZlBullDiMBeBCT+fz5G8RcA9MWqh/hfUkpOI3vNDUNEZHgokaoiv0juB9Y8fGcON7rU/A==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-8.0.2.tgz", + "integrity": "sha512-3icdxc/zght5UAizdwqZBDE2KOWHf1jMQCxET6iLACeNlRxfTPyXS0/COpGk8CQ2cECyaEKTRUd/i/k8Gxmz4g==", + "dev": true, "license": "MIT", "dependencies": { + "browserslist": "^4.28.1", + "caniuse-api": "^4.0.0", "cssesc": "^3.0.0", - "postcss-selector-parser": "^7.1.1" + "postcss-selector-parser": "^7.1.2" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-minify-selectors/node_modules/postcss-selector-parser": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", - "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz", + "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==", + "dev": true, "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -19023,9 +19195,9 @@ } }, "node_modules/postcss-nesting/node_modules/postcss-selector-parser": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", - "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz", + "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==", "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -19036,136 +19208,145 @@ } }, "node_modules/postcss-normalize-charset": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-7.0.1.tgz", - "integrity": "sha512-sn413ofhSQHlZFae//m9FTOfkmiZ+YQXsbosqOWRiVQncU2BA3daX3n0VF3cG6rGLSFVc5Di/yns0dFfh8NFgQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-8.0.1.tgz", + "integrity": "sha512-xzqr36F8UeIZOvOHsf3aul+RVJCADvSwuwpMLgizqKjisHZpBfztgW0XFLBfJvz9pJgaStaOXAtGb0zLqT6B0w==", + "dev": true, "license": "MIT", "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-normalize-display-values": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-7.0.1.tgz", - "integrity": "sha512-E5nnB26XjSYz/mGITm6JgiDpAbVuAkzXwLzRZtts19jHDUBFxZ0BkXAehy0uimrOjYJbocby4FVswA/5noOxrQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-8.0.1.tgz", + "integrity": "sha512-ZDWOijOK1FFMlpgiQCUO9fCNKd7HJ9L7z9HWEq4iyubnUFWzdTSwm/LcrMbNW6iZ1oAtqeLYA0WA3xHszOI08g==", + "dev": true, "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-normalize-positions": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-7.0.1.tgz", - "integrity": "sha512-pB/SzrIP2l50ZIYu+yQZyMNmnAcwyYb9R1fVWPRxm4zcUFCY2ign7rcntGFuMXDdd9L2pPNUgoODDk91PzRZuQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-8.0.1.tgz", + "integrity": "sha512-uuivan2poSqbE48ST4do20dGaFUeXey9/H8rhHzoyVHB2I6BmkoVLZ/C9+BRjUlpaAFYVOoDY7epkiidzaYbvA==", + "dev": true, "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-normalize-repeat-style": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-7.0.1.tgz", - "integrity": "sha512-NsSQJ8zj8TIDiF0ig44Byo3Jk9e4gNt9x2VIlJudnQQ5DhWAHJPF4Tr1ITwyHio2BUi/I6Iv0HRO7beHYOloYQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-8.0.1.tgz", + "integrity": "sha512-q2hq5fmKxk29K6DjKA3nZ17Q2dtjhLYFNmFweKALmooUqx6UWAHF1bBoWTu/EqlJ88josb82A/J0Atj9LJUmpQ==", + "dev": true, "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-normalize-string": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-7.0.1.tgz", - "integrity": "sha512-QByrI7hAhsoze992kpbMlJSbZ8FuCEc1OT9EFbZ6HldXNpsdpZr+YXC5di3UEv0+jeZlHbZcoCADgb7a+lPmmQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-8.0.1.tgz", + "integrity": "sha512-+Wf+kQJhm1WgSGEAuUaswE9rdpR9QbrKRVemcVHs6rhOoOTVIdAbgaicftfYA6vLM346P8onRzkEVbFN29ktKQ==", + "dev": true, "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-normalize-timing-functions": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-7.0.1.tgz", - "integrity": "sha512-bHifyuuSNdKKsnNJ0s8fmfLMlvsQwYVxIoUBnowIVl2ZAdrkYQNGVB4RxjfpvkMjipqvbz0u7feBZybkl/6NJg==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-8.0.1.tgz", + "integrity": "sha512-W8/tvwRlm3T+yjGkg0IRTF4bvHj0vILYr/LOogCrJKHz2ey2HFRwfsAA8Bk9N4BGR7z7WmmDu/KzzwhJ6FoGPQ==", + "dev": true, "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-normalize-unicode": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-7.0.6.tgz", - "integrity": "sha512-z6bwTV84YW6ZvvNoaNLuzRW4/uWxDKYI1iIDrzk6D2YTL7hICApy+Q1LP6vBEsljX8FM7YSuV9qI79XESd4ddQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-8.0.1.tgz", + "integrity": "sha512-Ad0YHNRBp4WHEOYUM/4wL/8MoL2fimEF8se/0q+Rt/owMzYpbxsypC1P8fN/oluwoRmRKdNVX7X2oycEobPWcQ==", + "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.28.1", + "browserslist": "^4.28.2", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-normalize-url": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-7.0.1.tgz", - "integrity": "sha512-sUcD2cWtyK1AOL/82Fwy1aIVm/wwj5SdZkgZ3QiUzSzQQofrbq15jWJ3BA7Z+yVRwamCjJgZJN0I9IS7c6tgeQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-8.0.1.tgz", + "integrity": "sha512-tkYcip6pCDY806xuxpJYqMW2M3/623jzGFJmz3m5Us47q8P28+gbRZxaea3Rr/CmwwLUiVlh+BTGYwQ6gvaP8A==", + "dev": true, "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-normalize-whitespace": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-7.0.1.tgz", - "integrity": "sha512-vsbgFHMFQrJBJKrUFJNZ2pgBeBkC2IvvoHjz1to0/0Xk7sII24T0qFOiJzG6Fu3zJoq/0yI4rKWi7WhApW+EFA==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-8.0.1.tgz", + "integrity": "sha512-XzORadNfSrKWDZZpgAEHPKINKx8r9r9RIfE9c70g/HThdpbmPHhDYCodHSVESDxmKeySAYw1p4liuBCf7j6LyA==", + "dev": true, "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-opacity-percentage": { @@ -19191,19 +19372,20 @@ } }, "node_modules/postcss-ordered-values": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-7.0.2.tgz", - "integrity": "sha512-AMJjt1ECBffF7CEON/Y0rekRLS6KsePU6PRP08UqYW4UGFRnTXNrByUzYK1h8AC7UWTZdQ9O3Oq9kFIhm0SFEw==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-8.0.1.tgz", + "integrity": "sha512-OLXq5lR1yk3KWQ1FPK6aWjFFdktHE9f9kb8cnt4LmIw7w30DnzgD9+sOVYJc5HenkWCX8i1MJhhFwmqc/GYqLg==", + "dev": true, "license": "MIT", "dependencies": { - "cssnano-utils": "^5.0.1", + "cssnano-utils": "^6.0.1", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-overflow-shorthand": { @@ -19276,9 +19458,9 @@ } }, "node_modules/postcss-preset-env": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-11.2.0.tgz", - "integrity": "sha512-eNYpuj68cjGjvZMoSAbHilaCt3yIyzBL1cVuSGJfvJewsaBW/U6dI2bqCJl3iuZsL+yvBobcy4zJFA/3I68IHQ==", + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-11.3.1.tgz", + "integrity": "sha512-ox2lu2L0fbuKXB0zRcUFCNii7koS9+fNLFqj+WOKaJ4DU/zZsYkFHOmz73lWNTKx8OHDqnV0R7Si98PIbJXLjQ==", "funding": [ { "type": "github", @@ -19291,70 +19473,72 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/postcss-alpha-function": "^2.0.3", + "@csstools/postcss-alpha-function": "^2.0.6", "@csstools/postcss-cascade-layers": "^6.0.0", - "@csstools/postcss-color-function": "^5.0.2", - "@csstools/postcss-color-function-display-p3-linear": "^2.0.2", - "@csstools/postcss-color-mix-function": "^4.0.2", - "@csstools/postcss-color-mix-variadic-function-arguments": "^2.0.2", - "@csstools/postcss-content-alt-text": "^3.0.0", - "@csstools/postcss-contrast-color-function": "^3.0.2", - "@csstools/postcss-exponential-functions": "^3.0.1", + "@csstools/postcss-color-function": "^5.0.5", + "@csstools/postcss-color-function-display-p3-linear": "^2.0.5", + "@csstools/postcss-color-mix-function": "^4.0.5", + "@csstools/postcss-color-mix-variadic-function-arguments": "^2.0.5", + "@csstools/postcss-container-rule-prelude-list": "^1.0.1", + "@csstools/postcss-content-alt-text": "^3.0.1", + "@csstools/postcss-contrast-color-function": "^3.0.5", + "@csstools/postcss-exponential-functions": "^3.0.3", "@csstools/postcss-font-format-keywords": "^5.0.0", "@csstools/postcss-font-width-property": "^1.0.0", - "@csstools/postcss-gamut-mapping": "^3.0.2", - "@csstools/postcss-gradients-interpolation-method": "^6.0.2", - "@csstools/postcss-hwb-function": "^5.0.2", - "@csstools/postcss-ic-unit": "^5.0.0", + "@csstools/postcss-gamut-mapping": "^3.0.5", + "@csstools/postcss-gradients-interpolation-method": "^6.0.5", + "@csstools/postcss-hwb-function": "^5.0.5", + "@csstools/postcss-ic-unit": "^5.0.1", + "@csstools/postcss-image-function": "^1.0.0", "@csstools/postcss-initial": "^3.0.0", "@csstools/postcss-is-pseudo-class": "^6.0.0", - "@csstools/postcss-light-dark-function": "^3.0.0", + "@csstools/postcss-light-dark-function": "^3.0.1", "@csstools/postcss-logical-float-and-clear": "^4.0.0", "@csstools/postcss-logical-overflow": "^3.0.0", "@csstools/postcss-logical-overscroll-behavior": "^3.0.0", "@csstools/postcss-logical-resize": "^4.0.0", "@csstools/postcss-logical-viewport-units": "^4.0.0", - "@csstools/postcss-media-minmax": "^3.0.1", + "@csstools/postcss-media-minmax": "^3.0.3", "@csstools/postcss-media-queries-aspect-ratio-number-values": "^4.0.0", "@csstools/postcss-mixins": "^1.0.0", "@csstools/postcss-nested-calc": "^5.0.0", "@csstools/postcss-normalize-display-values": "^5.0.1", - "@csstools/postcss-oklab-function": "^5.0.2", + "@csstools/postcss-oklab-function": "^5.0.5", "@csstools/postcss-position-area-property": "^2.0.0", - "@csstools/postcss-progressive-custom-properties": "^5.0.0", + "@csstools/postcss-progressive-custom-properties": "^5.1.0", "@csstools/postcss-property-rule-prelude-list": "^2.0.0", - "@csstools/postcss-random-function": "^3.0.1", - "@csstools/postcss-relative-color-syntax": "^4.0.2", + "@csstools/postcss-random-function": "^3.0.3", + "@csstools/postcss-relative-color-syntax": "^4.0.5", "@csstools/postcss-scope-pseudo-class": "^5.0.0", - "@csstools/postcss-sign-functions": "^2.0.1", - "@csstools/postcss-stepped-value-functions": "^5.0.1", + "@csstools/postcss-sign-functions": "^2.0.3", + "@csstools/postcss-stepped-value-functions": "^5.0.3", "@csstools/postcss-syntax-descriptor-syntax-production": "^2.0.0", "@csstools/postcss-system-ui-font-family": "^2.0.0", "@csstools/postcss-text-decoration-shorthand": "^5.0.3", - "@csstools/postcss-trigonometric-functions": "^5.0.1", + "@csstools/postcss-trigonometric-functions": "^5.0.3", "@csstools/postcss-unset-value": "^5.0.0", - "autoprefixer": "^10.4.24", + "autoprefixer": "^10.5.0", "browserslist": "^4.28.1", "css-blank-pseudo": "^8.0.1", "css-has-pseudo": "^8.0.0", "css-prefers-color-scheme": "^11.0.0", - "cssdb": "^8.8.0", + "cssdb": "^8.9.0", "postcss-attribute-case-insensitive": "^8.0.0", "postcss-clamp": "^4.1.0", - "postcss-color-functional-notation": "^8.0.2", + "postcss-color-functional-notation": "^8.0.5", "postcss-color-hex-alpha": "^11.0.0", "postcss-color-rebeccapurple": "^11.0.0", "postcss-custom-media": "^12.0.1", "postcss-custom-properties": "^15.0.1", "postcss-custom-selectors": "^9.0.1", "postcss-dir-pseudo-class": "^10.0.0", - "postcss-double-position-gradients": "^7.0.0", + "postcss-double-position-gradients": "^7.0.1", "postcss-focus-visible": "^11.0.0", "postcss-focus-within": "^10.0.0", "postcss-font-variant": "^5.0.0", "postcss-gap-properties": "^7.0.0", "postcss-image-set-function": "^8.0.0", - "postcss-lab-function": "^8.0.2", + "postcss-lab-function": "^8.0.5", "postcss-logical": "^9.0.0", "postcss-nesting": "^14.0.0", "postcss-opacity-percentage": "^3.0.0", @@ -19398,9 +19582,9 @@ } }, "node_modules/postcss-pseudo-class-any-link/node_modules/postcss-selector-parser": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", - "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz", + "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==", "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -19425,34 +19609,36 @@ } }, "node_modules/postcss-reduce-initial": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-7.0.6.tgz", - "integrity": "sha512-G6ZyK68AmrPdMB6wyeA37ejnnRG2S8xinJrZJnOv+IaRKf6koPAVbQsiC7MfkmXaGmF1UO+QCijb27wfpxuRNg==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-8.0.1.tgz", + "integrity": "sha512-+aQsR6+61KRoIfcFNLP3v9RM7+0iYOTtPnjl1wr6JqMW1zx6S+t2ktHRefXwacFdHIDj5+ETG0KY7K3+SGQ4Nw==", + "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.28.1", - "caniuse-api": "^3.0.0" + "browserslist": "^4.28.2", + "caniuse-api": "^4.0.0" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-reduce-transforms": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-7.0.1.tgz", - "integrity": "sha512-MhyEbfrm+Mlp/36hvZ9mT9DaO7dbncU0CvWI8V93LRkY6IYlu38OPg3FObnuKTUxJ4qA8HpurdQOo5CyqqO76g==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-8.0.1.tgz", + "integrity": "sha512-x71slHVykiFi5RuKEXM0wgYpY2PngC78x6R8TnZhHF3lhqt+u/w3MGwYLX+2t5O87ssRiMfEAhQH+3J4QwVzCw==", + "dev": true, "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-replace-overflow-wrap": { @@ -19551,9 +19737,9 @@ } }, "node_modules/postcss-selector-not/node_modules/postcss-selector-parser": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", - "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz", + "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==", "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -19564,9 +19750,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", - "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.4.tgz", + "integrity": "sha512-bIoJLOmjCO1S9XdY/DcnR5hJxvrDir1PbGChrzXG3vw0/FOliy/fA3dmdhQ441kah4gKv+TwckGzex6wNS5cnQ==", "license": "MIT", "peer": true, "dependencies": { @@ -19588,40 +19774,191 @@ } }, "node_modules/postcss-svgo": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-7.1.1.tgz", - "integrity": "sha512-zU9H9oEDrUFKa0JB7w+IYL7Qs9ey1mZyjhbf0KLxwJDdDRtoPvCmaEfknzqfHj44QS9VD6c5sJnBAVYTLRg/Sg==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-8.0.1.tgz", + "integrity": "sha512-HpnvWii7W0/FPrsejJa6ZTi0kNtTJP/Iba7CUMPX0xPV6QpnndOp+SDP74tFtgjA2cYKYNWJPOlmLXMsvi/9yA==", + "dev": true, "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0", "svgo": "^4.0.1" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >= 18" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" + } + }, + "node_modules/postcss-svgo/node_modules/commander": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + } + }, + "node_modules/postcss-svgo/node_modules/css-select": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/postcss-svgo/node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/postcss-svgo/node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/postcss-svgo/node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/postcss-svgo/node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/postcss-svgo/node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/postcss-svgo/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/postcss-svgo/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/postcss-svgo/node_modules/svgo": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-4.0.1.tgz", + "integrity": "sha512-XDpWUOPC6FEibaLzjfe0ucaV0YrOjYotGJO1WpF0Zd+n6ZGEQUsSugaoLq9QkEZtAfQIxT42UChcssDVPP3+/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "^11.1.0", + "css-select": "^5.1.0", + "css-tree": "^3.0.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.1.1", + "sax": "^1.5.0" + }, + "bin": { + "svgo": "bin/svgo.js" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" } }, "node_modules/postcss-unique-selectors": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-7.0.5.tgz", - "integrity": "sha512-3QoYmEt4qg/rUWDn6Tc8+ZVPmbp4G1hXDtCNWDx0st8SjtCbRcxRXDDM1QrEiXGG3A45zscSJFb4QH90LViyxg==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-8.0.1.tgz", + "integrity": "sha512-+xvKI5+/Cl8yYQwxDV39Uhuc4WV951xngFvPPjiPj2NIbIfm6vbbRTXblyw0FioLkIoGlw+7qUcY1h2YhaZYgw==", + "dev": true, "license": "MIT", "dependencies": { - "postcss-selector-parser": "^7.1.1" + "postcss-selector-parser": "^7.1.2" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-unique-selectors/node_modules/postcss-selector-parser": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", - "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz", + "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==", + "dev": true, "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -19694,9 +20031,9 @@ } }, "node_modules/preact": { - "version": "10.29.0", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.29.0.tgz", - "integrity": "sha512-wSAGyk2bYR1c7t3SZ3jHcM6xy0lcBcDel6lODcs9ME6Th++Dx2KU+6D3HD8wMMKGA8Wpw7OMd3/4RGzYRpzwRg==", + "version": "10.29.2", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.29.2.tgz", + "integrity": "sha512-7tNmwg/7mzzAoB/8kSg6Hl37JraAZw3Z3A0JSY7VXlZwo82Xn0G7wKbNNs2qoF4ZEEsQGTwDAroNdqKs1ofJxQ==", "dev": true, "license": "MIT", "funding": { @@ -19728,9 +20065,9 @@ } }, "node_modules/prettier": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.1.tgz", - "integrity": "sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==", + "version": "3.8.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.4.tgz", + "integrity": "sha512-N2MylSdi48+5N/6S5j+maeHbUSIzzZ5uOcX5Hm4QpV8Dkb1HFjfAKTKX6yNPJQD9AhcT3ifHNB66tWTTJDi11Q==", "license": "MIT", "peer": true, "bin": { @@ -19754,16 +20091,6 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "license": "MIT" }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", @@ -19775,12 +20102,6 @@ "react-is": "^16.13.1" } }, - "node_modules/prop-types/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "license": "MIT" - }, "node_modules/proper-lockfile": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz", @@ -19798,54 +20119,6 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "license": "ISC" }, - "node_modules/proxy-agent": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz", - "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==", - "license": "MIT", - "peer": true, - "dependencies": { - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "http-proxy-agent": "^7.0.1", - "https-proxy-agent": "^7.0.6", - "lru-cache": "^7.14.1", - "pac-proxy-agent": "^7.1.0", - "proxy-from-env": "^1.1.0", - "socks-proxy-agent": "^8.0.5" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/proxy-agent/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "license": "ISC", - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "license": "MIT", - "peer": true - }, - "node_modules/pump": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.4.tgz", - "integrity": "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==", - "license": "MIT", - "peer": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -19857,35 +20130,34 @@ } }, "node_modules/puppeteer-core": { - "version": "24.39.1", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.39.1.tgz", - "integrity": "sha512-AMqQIKoEhPS6CilDzw0Gd1brLri3emkC+1N2J6ZCCuY1Cglo56M63S0jOeBZDQlemOiRd686MYVMl9ELJBzN3A==", + "version": "25.1.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-25.1.0.tgz", + "integrity": "sha512-jKzy5y4WG6uNuFbTWgW1D7mqoT9o0nllc/6a1DGF775T1mPmgw3scdFEtEq67yVFikavQmbYq6NLfbTfxHSlqQ==", "license": "Apache-2.0", "peer": true, "dependencies": { - "@puppeteer/browsers": "2.13.0", - "chromium-bidi": "14.0.0", - "debug": "^4.4.3", - "devtools-protocol": "0.0.1581282", - "typed-query-selector": "^2.12.1", - "webdriver-bidi-protocol": "0.4.1", - "ws": "^8.19.0" + "@puppeteer/browsers": "3.0.4", + "chromium-bidi": "16.0.1", + "devtools-protocol": "0.0.1624250", + "typed-query-selector": "^2.12.2", + "webdriver-bidi-protocol": "0.4.2", + "ws": "^8.21.0" }, "engines": { - "node": ">=18" + "node": ">=22.12.0" } }, "node_modules/puppeteer-core/node_modules/devtools-protocol": { - "version": "0.0.1581282", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1581282.tgz", - "integrity": "sha512-nv7iKtNZQshSW2hKzYNr46nM/Cfh5SEvE2oV0/SEGgc9XupIY5ggf84Cz8eJIkBce7S3bmTAauFD6aysMpnqsQ==", + "version": "0.0.1624250", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1624250.tgz", + "integrity": "sha512-YFAat/lOiIk0ARmBweG+ygrEcbZrq5B9urRyUoeQKp53MlidHXE2TmTbxKcaXoQj7u/aX+jebDO4BW55rs0WwA==", "license": "BSD-3-Clause", "peer": true }, "node_modules/puppeteer-core/node_modules/ws": { - "version": "8.19.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz", - "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz", + "integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==", "license": "MIT", "peer": true, "engines": { @@ -19905,18 +20177,25 @@ } }, "node_modules/qified": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/qified/-/qified-0.6.0.tgz", - "integrity": "sha512-tsSGN1x3h569ZSU1u6diwhltLyfUWDp3YbFHedapTmpBl0B3P6U3+Qptg7xu+v+1io1EwhdPyyRHYbEw0KN2FA==", + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/qified/-/qified-0.10.1.tgz", + "integrity": "sha512-+Owyggi9IxT1ePKGafcI87ubSmxol6smwJ+RAHDQlx9+9cPwFWDiKFFCPuWhr9ignlGpZ9vDQLw67N4dcTVFEA==", "license": "MIT", "peer": true, "dependencies": { - "hookified": "^1.14.0" + "hookified": "^2.1.1" }, "engines": { "node": ">=20" } }, + "node_modules/qified/node_modules/hookified": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-2.2.0.tgz", + "integrity": "sha512-p/LgFzRN5FeoD3DLS6bkUapeye6E4SI6yJs6KetENd18S+FBthqYq2amJUWpt5z0EQwwHemidjY5OqJGEKm5uA==", + "license": "MIT", + "peer": true + }, "node_modules/quansync": { "version": "0.2.11", "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.11.tgz", @@ -19994,9 +20273,9 @@ } }, "node_modules/react-colorful": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/react-colorful/-/react-colorful-5.6.1.tgz", - "integrity": "sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/react-colorful/-/react-colorful-5.7.0.tgz", + "integrity": "sha512-fuesYIemttah97XmsIHmz4OORDHiSFzyc9HMAIrCHJou2jaRQmL8cFJ76K4zQhhj8jzwOBlOi4BaGTjjOZCfTg==", "dev": true, "license": "MIT", "peerDependencies": { @@ -20028,9 +20307,9 @@ } }, "node_modules/react-day-picker/node_modules/date-fns": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz", - "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.4.0.tgz", + "integrity": "sha512-+1UMbeh68lH1SegH83CGWwpb6OHHbpSgr3+s5Eww5M4CAgswBpoWS0AjTOfEJ33HiYKz1hdj/KTFprzXHmq/6w==", "dev": true, "license": "MIT", "funding": { @@ -20052,9 +20331,9 @@ } }, "node_modules/react-easy-crop": { - "version": "5.5.6", - "resolved": "https://registry.npmjs.org/react-easy-crop/-/react-easy-crop-5.5.6.tgz", - "integrity": "sha512-Jw3/ozs8uXj3NpL511Suc4AHY+mLRO23rUgipXvNYKqezcFSYHxe4QXibBymkOoY6oOtLVMPO2HNPRHYvMPyTw==", + "version": "5.5.7", + "resolved": "https://registry.npmjs.org/react-easy-crop/-/react-easy-crop-5.5.7.tgz", + "integrity": "sha512-kYo4NtMeXFQB7h1U+h5yhUkE46WQbQdq7if54uDlbMdZHdRgNehfvaFrXnFw5NR1PNoUOJIfTwLnWmEx/MaZnA==", "dev": true, "license": "MIT", "dependencies": { @@ -20067,10 +20346,9 @@ } }, "node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "license": "MIT" }, "node_modules/react-remove-scroll": { @@ -20238,12 +20516,12 @@ } }, "node_modules/readdirp": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", - "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz", + "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==", "license": "MIT", "engines": { - "node": ">= 14.18.0" + "node": ">= 20.19.0" }, "funding": { "type": "individual", @@ -20368,6 +20646,28 @@ "node": ">=8.6.0" } }, + "node_modules/require-in-the-middle/node_modules/resolve": { + "version": "1.22.12", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", + "license": "MIT", + "peer": true, + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", @@ -20376,19 +20676,23 @@ "license": "ISC" }, "node_modules/reselect": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.1.1.tgz", - "integrity": "sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.2.0.tgz", + "integrity": "sha512-AgZ3UOZm3YndfrJ4OYjgrT7bmCm/1iqkjvEfH/oYjzh6PD2qw4QuT3jjnXIrpdt4MTpMXclMT3lXbmRY+XRakw==", "dev": true, "license": "MIT" }, "node_modules/resolve": { - "version": "1.22.11", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", - "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "version": "2.0.0-next.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.7.tgz", + "integrity": "sha512-tqt+NBWwyaMgw3zDsnygx4CByWjQEJHOPMdslYhppaQSJUtL/D4JO9CcBBlhPoI8lz9oJIDXkwXfhF4aWqP8xQ==", "license": "MIT", + "peer": true, "dependencies": { - "is-core-module": "^2.16.1", + "es-errors": "^1.3.0", + "is-core-module": "^2.16.2", + "node-exports-info": "^1.6.0", + "object-keys": "^1.1.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -20450,14 +20754,14 @@ } }, "node_modules/rolldown": { - "version": "1.0.0-rc.9", - "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-rc.9.tgz", - "integrity": "sha512-9EbgWge7ZH+yqb4d2EnELAntgPTWbfL8ajiTW+SyhJEC4qhBbkCKbqFV4Ge4zmu5ziQuVbWxb/XwLZ+RIO7E8Q==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.3.tgz", + "integrity": "sha512-i00lAJ2ks1BYr7rjNjKC7BcqAS7nVfiT3QX1SI5aY+AFHblCmaUf9OE9dbdzDvW6dJxbi2ZCZiy9v3CcwOiX3g==", "dev": true, "license": "MIT", "dependencies": { - "@oxc-project/types": "=0.115.0", - "@rolldown/pluginutils": "1.0.0-rc.9" + "@oxc-project/types": "=0.133.0", + "@rolldown/pluginutils": "^1.0.0" }, "bin": { "rolldown": "bin/cli.mjs" @@ -20466,21 +20770,21 @@ "node": "^20.19.0 || >=22.12.0" }, "optionalDependencies": { - "@rolldown/binding-android-arm64": "1.0.0-rc.9", - "@rolldown/binding-darwin-arm64": "1.0.0-rc.9", - "@rolldown/binding-darwin-x64": "1.0.0-rc.9", - "@rolldown/binding-freebsd-x64": "1.0.0-rc.9", - "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.9", - "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.9", - "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.9", - "@rolldown/binding-linux-ppc64-gnu": "1.0.0-rc.9", - "@rolldown/binding-linux-s390x-gnu": "1.0.0-rc.9", - "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.9", - "@rolldown/binding-linux-x64-musl": "1.0.0-rc.9", - "@rolldown/binding-openharmony-arm64": "1.0.0-rc.9", - "@rolldown/binding-wasm32-wasi": "1.0.0-rc.9", - "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.9", - "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.9" + "@rolldown/binding-android-arm64": "1.0.3", + "@rolldown/binding-darwin-arm64": "1.0.3", + "@rolldown/binding-darwin-x64": "1.0.3", + "@rolldown/binding-freebsd-x64": "1.0.3", + "@rolldown/binding-linux-arm-gnueabihf": "1.0.3", + "@rolldown/binding-linux-arm64-gnu": "1.0.3", + "@rolldown/binding-linux-arm64-musl": "1.0.3", + "@rolldown/binding-linux-ppc64-gnu": "1.0.3", + "@rolldown/binding-linux-s390x-gnu": "1.0.3", + "@rolldown/binding-linux-x64-gnu": "1.0.3", + "@rolldown/binding-linux-x64-musl": "1.0.3", + "@rolldown/binding-openharmony-arm64": "1.0.3", + "@rolldown/binding-wasm32-wasi": "1.0.3", + "@rolldown/binding-win32-arm64-msvc": "1.0.3", + "@rolldown/binding-win32-x64-msvc": "1.0.3" } }, "node_modules/run-parallel": { @@ -20514,14 +20818,14 @@ "license": "MIT" }, "node_modules/safe-array-concat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", - "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.4.tgz", + "integrity": "sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "get-intrinsic": "^1.3.0", "has-symbols": "^1.1.0", "isarray": "^2.0.5" }, @@ -20602,12 +20906,12 @@ "license": "MIT" }, "node_modules/sass": { - "version": "1.98.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.98.0.tgz", - "integrity": "sha512-+4N/u9dZ4PrgzGgPlKnaaRQx64RO0JBKs9sDhQ2pLgN6JQZ25uPQZKQYaBJU48Kd5BxgXoJ4e09Dq7nMcOUW3A==", + "version": "1.101.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.101.0.tgz", + "integrity": "sha512-OL3GoQyoUdDt843DpVmDO6y2k1sc5IhUDSpu8XucEI+35neq5QivZ1iuegnpraEVTJXlQGK1gl27zKcTLEPbQw==", "license": "MIT", "dependencies": { - "chokidar": "^4.0.0", + "chokidar": "^5.0.0", "immutable": "^5.1.5", "source-map-js": ">=0.6.2 <2.0.0" }, @@ -20615,22 +20919,20 @@ "sass": "sass.js" }, "engines": { - "node": ">=14.0.0" + "node": ">=20.19.0" }, "optionalDependencies": { "@parcel/watcher": "^2.4.1" } }, "node_modules/sass-loader": { - "version": "16.0.7", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.7.tgz", - "integrity": "sha512-w6q+fRHourZ+e+xA1kcsF27iGM6jdB8teexYCfdUw0sYgcDNeZESnDNT9sUmmPm3ooziwUJXGwZJSTF3kOdBfA==", + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-17.0.0.tgz", + "integrity": "sha512-0Ybm8ohBQ9LcrycVrFQp/KQBNX5a3Wda9/smS0mE/xLffzEnwvV8nykOzrbiSWNzTE3IB/jiXx8O4QmDPG2+Gw==", + "dev": true, "license": "MIT", - "dependencies": { - "neo-async": "^2.6.2" - }, "engines": { - "node": ">= 18.12.0" + "node": ">= 22.11.0" }, "funding": { "type": "opencollective", @@ -20638,7 +20940,6 @@ }, "peerDependencies": { "@rspack/core": "0.x || ^1.0.0 || ^2.0.0-0", - "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", "sass": "^1.3.0", "sass-embedded": "*", "webpack": "^5.0.0" @@ -20647,9 +20948,6 @@ "@rspack/core": { "optional": true }, - "node-sass": { - "optional": true - }, "sass": { "optional": true }, @@ -20662,9 +20960,9 @@ } }, "node_modules/sax": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.5.0.tgz", - "integrity": "sha512-21IYA3Q5cQf089Z6tgaUTr7lDAyzoTPx5HRtbhsME8Udispad8dC/+sziTNugOEx54ilvatQ9YCzl4KQLPcRHA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.0.tgz", + "integrity": "sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==", "license": "BlueOak-1.0.0", "engines": { "node": ">=11.0.0" @@ -20698,17 +20996,44 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/select": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", - "integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==", - "dev": true, + "node_modules/schema-utils/node_modules/ajv": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/schema-utils/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/schema-utils/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "license": "MIT" }, "node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.4.tgz", + "integrity": "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -20729,9 +21054,9 @@ } }, "node_modules/serialize-javascript": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-7.0.4.tgz", - "integrity": "sha512-DuGdB+Po43Q5Jxwpzt1lhyFSYKryqoNjQSA9M92tyw0lyHIOur+XCalOUe0KTJpyqzT8+fQ5A0Jf7vCx/NKmIg==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-7.0.5.tgz", + "integrity": "sha512-F4LcB0UqUl1zErq+1nYEEzSHJnIwb3AF2XWB94b+afhrekOUijwooAYqFyRbjYkm2PAKBabx6oYv/xDxNi8IBw==", "license": "BSD-3-Clause", "engines": { "node": ">=20.0.0" @@ -20824,9 +21149,9 @@ } }, "node_modules/shell-quote": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", - "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.4.tgz", + "integrity": "sha512-VsC6n6vz1ihYYyZZwX7YZSF5l5x36ca17OC+a69h94YqB7X6XLwf+5MOgynYir2SLFUbl8gIYvBo8K8RoNQ6bQ==", "dev": true, "license": "MIT", "engines": { @@ -20866,6 +21191,19 @@ "node": ">=6" } }, + "node_modules/showdown/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/showdown/node_modules/cliui": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", @@ -20878,6 +21216,23 @@ "wrap-ansi": "^5.1.0" } }, + "node_modules/showdown/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/showdown/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, "node_modules/showdown/node_modules/emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", @@ -21027,14 +21382,14 @@ } }, "node_modules/side-channel": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", - "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz", + "integrity": "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==", "license": "MIT", "dependencies": { "es-errors": "^1.3.0", - "object-inspect": "^1.13.3", - "side-channel-list": "^1.0.0", + "object-inspect": "^1.13.4", + "side-channel-list": "^1.0.1", "side-channel-map": "^1.0.1", "side-channel-weakmap": "^1.0.2" }, @@ -21046,13 +21401,13 @@ } }, "node_modules/side-channel-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", - "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", "license": "MIT", "dependencies": { "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" + "object-inspect": "^1.13.4" }, "engines": { "node": ">= 0.4" @@ -21169,53 +21524,6 @@ "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "peer": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/slice-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT", - "peer": true - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, "node_modules/snake-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", @@ -21226,47 +21534,10 @@ "tslib": "^2.0.3" } }, - "node_modules/socks": { - "version": "2.8.7", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", - "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", - "license": "MIT", - "peer": true, - "dependencies": { - "ip-address": "^10.0.1", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", - "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", - "license": "MIT", - "peer": true, - "dependencies": { - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "socks": "^2.8.3" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "license": "MIT" - }, "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true, + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -21291,15 +21562,6 @@ "source-map": "^0.6.0" } }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/spawndamnit": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/spawndamnit/-/spawndamnit-3.0.1.tgz", @@ -21403,9 +21665,9 @@ "license": "MIT" }, "node_modules/std-env": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.0.0.tgz", - "integrity": "sha512-zUMPtQ/HBY3/50VbpkupYHbRroTRZJPRLvreamgErJVys0ceuzMkD44J/QjqhHjOzK42GQ3QZIeFG1OYfOtKqQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.1.0.tgz", + "integrity": "sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==", "dev": true, "license": "MIT" }, @@ -21423,9 +21685,9 @@ } }, "node_modules/streamx": { - "version": "2.23.0", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.23.0.tgz", - "integrity": "sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==", + "version": "2.28.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.28.0.tgz", + "integrity": "sha512-1Yowhzjf0ivGMrTIkY9hav5TxobO9qIVqUE41fiCGMGgc3CLlf4MY+9AHmZqBWgDTue0fY9zWjYFVyf6Diuobw==", "license": "MIT", "dependencies": { "events-universal": "^1.0.0", @@ -21515,18 +21777,19 @@ } }, "node_modules/string.prototype.trim": { - "version": "1.2.10", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", - "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.11.tgz", + "integrity": "sha512-PwvK7BU+CMTJGYQCTZb5RWXIML92lftJLhQz1tBzgKiqGxJaMlBAa48POXaNAC2s4y8jr3EFqrkF9+44neS46w==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", "define-data-property": "^1.1.4", "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-object-atoms": "^1.0.0", - "has-property-descriptors": "^1.0.2" + "es-abstract": "^1.24.2", + "es-object-atoms": "^1.1.2", + "has-property-descriptors": "^1.0.2", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -21536,15 +21799,15 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", - "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.10.tgz", + "integrity": "sha512-2+3aDAOmPTmuFwjDnmJG2ctEkQKVki7vOSqaxkv42Mowj1V6PnvuwFCRrR5lChUux1TBskPjfkeTOhqczDMxTw==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" + "es-object-atoms": "^1.1.2" }, "engines": { "node": ">= 0.4" @@ -21629,25 +21892,27 @@ "peer": true }, "node_modules/stylehacks": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-7.0.8.tgz", - "integrity": "sha512-I3f053GBLIiS5Fg6OMFhq/c+yW+5Hc2+1fgq7gElDMMSqwlRb3tBf2ef6ucLStYRpId4q//bQO1FjcyNyy4yDQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-8.0.1.tgz", + "integrity": "sha512-Gv095oTD0N+BdJALNFDsxZpETHZLTxbOl5RyIO7y6VAE6sR3z0MnV3Nix7N0IATNldNTrkvSASp2KR1Yt526HA==", + "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.28.1", - "postcss-selector-parser": "^7.1.1" + "browserslist": "^4.28.2", + "postcss-selector-parser": "^7.1.2" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/stylehacks/node_modules/postcss-selector-parser": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", - "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz", + "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==", + "dev": true, "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -21944,9 +22209,9 @@ } }, "node_modules/stylelint-scss/node_modules/postcss-selector-parser": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", - "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz", + "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==", "license": "MIT", "peer": true, "dependencies": { @@ -22011,14 +22276,26 @@ "license": "MIT", "peer": true }, - "node_modules/stylelint/node_modules/ignore": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", - "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "node_modules/stylelint/node_modules/file-entry-cache": { + "version": "11.1.3", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-11.1.3.tgz", + "integrity": "sha512-oMbq0PD6VIiIwMF6LIa7MEwd/l9huKwmqRKXqmrkqIZv8CvRbfowL+L0ryAl8h//HfAS0zS+4SbYoRyAoA6BJA==", "license": "MIT", "peer": true, - "engines": { - "node": ">= 4" + "dependencies": { + "flat-cache": "^6.1.22" + } + }, + "node_modules/stylelint/node_modules/flat-cache": { + "version": "6.1.22", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.22.tgz", + "integrity": "sha512-N2dnzVJIphnNsjHcrxGW7DePckJ6haPrSFqpsBUhHYgwtKGVq4JrBGielEGD2fCVnsGm1zlBVZ8wGhkyuetgug==", + "license": "MIT", + "peer": true, + "dependencies": { + "cacheable": "^2.3.4", + "flatted": "^3.4.2", + "hookified": "^1.15.0" } }, "node_modules/stylelint/node_modules/meow": { @@ -22035,9 +22312,9 @@ } }, "node_modules/stylelint/node_modules/postcss-selector-parser": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", - "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz", + "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==", "license": "MIT", "peer": true, "dependencies": { @@ -22137,21 +22414,6 @@ "node": ">=12" } }, - "node_modules/svg-sprite/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/svg-sprite/node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -22166,192 +22428,48 @@ "node": ">=12" } }, - "node_modules/svg-sprite/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", + "node_modules/svg-sprite/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "license": "ISC", "dependencies": { - "color-name": "~1.1.4" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=7.0.0" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/svg-sprite/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, - "node_modules/svg-sprite/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "node_modules/svg-sprite/node_modules/replace-ext": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", + "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", "license": "MIT", "engines": { - "node": ">= 10" + "node": ">= 0.10" } }, - "node_modules/svg-sprite/node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "license": "BSD-2-Clause", + "node_modules/svg-sprite/node_modules/vinyl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", + "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", + "license": "MIT", "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/svg-sprite/node_modules/css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "license": "MIT", - "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/svg-sprite/node_modules/dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/svg-sprite/node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/svg-sprite/node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/svg-sprite/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "license": "BSD-2-Clause", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/svg-sprite/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/svg-sprite/node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "license": "CC0-1.0" - }, - "node_modules/svg-sprite/node_modules/replace-ext": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", - "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/svg-sprite/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/svg-sprite/node_modules/svgo": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.2.tgz", - "integrity": "sha512-TyzE4NVGLUFy+H/Uy4N6c3G0HEeprsVfge6Lmq+0FdQQ/zqoVYB62IsBZORsiL+o96s6ff/V6/3UQo/C0cgCAA==", - "license": "MIT", - "dependencies": { - "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "sax": "^1.5.0", - "stable": "^0.1.8" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/svg-sprite/node_modules/vinyl": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", - "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", - "license": "MIT", - "dependencies": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" }, "engines": { "node": ">= 0.10" @@ -22392,72 +22510,13 @@ "node": ">=12" } }, - "node_modules/svg-spritemap-webpack-plugin": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/svg-spritemap-webpack-plugin/-/svg-spritemap-webpack-plugin-5.1.0.tgz", - "integrity": "sha512-0xtzMZQifsFmFxSsFdIN2SLxnDSU7WvbDYruIOlHFoEJT98htL65yCkpPeOiG/IetJVW7qKtPWqMSfrssk23lw==", - "license": "MIT", - "dependencies": { - "@xmldom/xmldom": "^0.9.8", - "glob": "^13.0.0", - "loader-utils": "^3.3.1", - "lodash-es": "^4.17.21", - "mini-svg-data-uri": "^1.4.4", - "mkdirp": "^3.0.1", - "svg-element-attributes": "^2.1.0", - "webpack-merge": "^6.0.1", - "webpack-sources": "^3.3.3", - "zod": "^4.1.13" - }, - "engines": { - "node": "^20.11.0 || ^21.2.0 || >= 22.0.0" - }, - "peerDependencies": { - "svg4everybody": "^2.1.9", - "svgo": "^4.0.0", - "typescript": "^4.0.0 || ^5.0.0", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/svg-spritemap-webpack-plugin/node_modules/@xmldom/xmldom": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.9.8.tgz", - "integrity": "sha512-p96FSY54r+WJ50FIOsCOjyj/wavs8921hG5+kVMmZgKcvIKxMXHTrjNJvRgWa/zuX3B6t2lijLNFaOyuxUH+2A==", - "license": "MIT", - "engines": { - "node": ">=14.6" - } - }, - "node_modules/svg-spritemap-webpack-plugin/node_modules/loader-utils": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz", - "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", - "license": "MIT", - "engines": { - "node": ">= 12.13.0" - } - }, - "node_modules/svg-spritemap-webpack-plugin/node_modules/webpack-sources": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.4.tgz", - "integrity": "sha512-7tP1PdV4vF+lYPnkMR0jMY5/la2ub5Fc/8VQrrU+lXkiM6C4TjVfGw7iKfyhnTQOsD+6Q/iKw0eFciziRgD58Q==", - "license": "MIT", + "node_modules/svg-sprite/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/svg-spritemap-webpack-plugin/node_modules/zod": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz", - "integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" + "node": ">=12" } }, "node_modules/svg-tags": { @@ -22477,61 +22536,43 @@ } }, "node_modules/svgo": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-4.0.1.tgz", - "integrity": "sha512-XDpWUOPC6FEibaLzjfe0ucaV0YrOjYotGJO1WpF0Zd+n6ZGEQUsSugaoLq9QkEZtAfQIxT42UChcssDVPP3+/w==", + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.2.tgz", + "integrity": "sha512-TyzE4NVGLUFy+H/Uy4N6c3G0HEeprsVfge6Lmq+0FdQQ/zqoVYB62IsBZORsiL+o96s6ff/V6/3UQo/C0cgCAA==", "license": "MIT", "dependencies": { - "commander": "^11.1.0", - "css-select": "^5.1.0", - "css-tree": "^3.0.1", - "css-what": "^6.1.0", - "csso": "^5.0.5", - "picocolors": "^1.1.1", - "sax": "^1.5.0" + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "sax": "^1.5.0", + "stable": "^0.1.8" }, "bin": { - "svgo": "bin/svgo.js" - }, - "engines": { - "node": ">=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/svgo" - } - }, - "node_modules/svgo/node_modules/csso": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", - "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", - "license": "MIT", - "dependencies": { - "css-tree": "~2.2.0" + "svgo": "bin/svgo" }, "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" + "node": ">=10.13.0" } }, - "node_modules/svgo/node_modules/csso/node_modules/css-tree": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", - "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "node_modules/svgo/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", "license": "MIT", "dependencies": { - "mdn-data": "2.0.28", - "source-map-js": "^1.0.1" + "mdn-data": "2.0.14", + "source-map": "^0.6.1" }, "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" + "node": ">=8.0.0" } }, "node_modules/svgo/node_modules/mdn-data": { - "version": "2.0.28", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", - "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", "license": "CC0-1.0" }, "node_modules/tabbable": { @@ -22558,23 +22599,47 @@ "node": ">=10.0.0" } }, - "node_modules/tagged-tag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/tagged-tag/-/tagged-tag-1.0.0.tgz", - "integrity": "sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==", - "dev": true, + "node_modules/table/node_modules/ajv": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", "license": "MIT", - "engines": { - "node": ">=20" - }, + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT", + "peer": true + }, + "node_modules/tagged-tag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tagged-tag/-/tagged-tag-1.0.0.tgz", + "integrity": "sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/tailwindcss": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.2.1.tgz", - "integrity": "sha512-/tBrSQ36vCleJkAOsy9kbNTgaxvGbyOamC30PRePTQe/o1MFwEKHQk4Cn7BNGaPtjp+PuUrByJehM1hgxfq4sw==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.3.1.tgz", + "integrity": "sha512-hk+TB1m+K8CYNrP6rjQaq/Y+4Zylwpa87mLYBKCunwnnQ9p+fHb7kmSfGqyEJoxF/O6CDyABWVFEafNSYKll+Q==", "dev": true, "license": "MIT" }, @@ -22589,9 +22654,9 @@ } }, "node_modules/tapable": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", - "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", + "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", "license": "MIT", "engines": { "node": ">=6" @@ -22601,49 +22666,6 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/tar-fs": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.1.2.tgz", - "integrity": "sha512-QGxxTxxyleAdyM3kpFs14ymbYmNFrfY+pHj7Z8FgtbZ7w2//VAgLMac7sT6nRpIHjppXO2AwwEOg0bPFVRcmXw==", - "license": "MIT", - "peer": true, - "dependencies": { - "pump": "^3.0.0", - "tar-stream": "^3.1.5" - }, - "optionalDependencies": { - "bare-fs": "^4.0.1", - "bare-path": "^3.0.0" - } - }, - "node_modules/tar-stream": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.8.tgz", - "integrity": "sha512-U6QpVRyCGHva435KoNWy9PRoi2IFYCgtEhq9nmrPPpbRacPs9IH4aJ3gbrFC8dPcXvdSZ4XXfXT5Fshbp2MtlQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "b4a": "^1.6.4", - "bare-fs": "^4.5.5", - "fast-fifo": "^1.2.0", - "streamx": "^2.15.0" - } - }, - "node_modules/tar-stream/node_modules/b4a": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.8.0.tgz", - "integrity": "sha512-qRuSmNSkGQaHwNbM7J78Wwy+ghLEYF1zNrSeMxj4Kgw6y33O3mXcQ6Ie9fRvfU/YnxWkOchPXbaLb73TkIsfdg==", - "license": "Apache-2.0", - "peer": true, - "peerDependencies": { - "react-native-b4a": "*" - }, - "peerDependenciesMeta": { - "react-native-b4a": { - "optional": true - } - } - }, "node_modules/teex": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/teex/-/teex-1.0.1.tgz", @@ -22667,9 +22689,9 @@ } }, "node_modules/terser": { - "version": "5.46.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.1.tgz", - "integrity": "sha512-vzCjQO/rgUuK9sf8VJZvjqiqiHFaZLnOiimmUuOKODxWL8mm/xua7viT7aqX7dgPY60otQjUotzFMmCB4VdmqQ==", + "version": "5.48.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.48.0.tgz", + "integrity": "sha512-J/9An6vs9Us6wKRriSFXBWdRZapREHqFzdNUKk0pmu804EMR6dr6winwo7e5JDxN4xahxQsuysyYFwlwj4XN/Q==", "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -22685,9 +22707,9 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.4.0.tgz", - "integrity": "sha512-Bn5vxm48flOIfkdl5CaD2+1CiUVbonWQ3KQPyP7/EuIl9Gbzq/gQFOzaMFUEgVjB1396tcK0SG8XcNJ/2kDH8g==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.6.1.tgz", + "integrity": "sha512-201R5j+sJpK8nFWwKVyNfZot8FaJbLZDq5evriVzbV1wDtSXDjRUDRfJzHpAaxFDMEhsZL1QkeqM61wgsS3KaQ==", "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", @@ -22706,12 +22728,39 @@ "webpack": "^5.1.0" }, "peerDependenciesMeta": { + "@minify-html/node": { + "optional": true + }, "@swc/core": { "optional": true }, + "@swc/css": { + "optional": true + }, + "@swc/html": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "cssnano": { + "optional": true + }, + "csso": { + "optional": true + }, "esbuild": { "optional": true }, + "html-minifier-terser": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "postcss": { + "optional": true + }, "uglify-js": { "optional": true } @@ -22733,9 +22782,9 @@ } }, "node_modules/text-decoder/node_modules/b4a": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.8.0.tgz", - "integrity": "sha512-qRuSmNSkGQaHwNbM7J78Wwy+ghLEYF1zNrSeMxj4Kgw6y33O3mXcQ6Ie9fRvfU/YnxWkOchPXbaLb73TkIsfdg==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.8.1.tgz", + "integrity": "sha512-aiqre1Nr0B/6DgE2N5vwTc+2/oQZ4Wh1t4NznYY4E00y8LCt6NqdRv81so00oo27D8MVKTpUa/MwUUtBLXCoDw==", "license": "Apache-2.0", "peerDependencies": { "react-native-b4a": "*" @@ -22753,19 +22802,12 @@ "license": "MIT" }, "node_modules/third-party-web": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/third-party-web/-/third-party-web-0.27.0.tgz", - "integrity": "sha512-h0JYX+dO2Zr3abCQpS6/uFjujaOjA1DyDzGQ41+oFn9VW/ARiq9g5ln7qEP9+BTzDpOMyIfsfj4OvfgXAsMUSA==", + "version": "0.29.2", + "resolved": "https://registry.npmjs.org/third-party-web/-/third-party-web-0.29.2.tgz", + "integrity": "sha512-fegtha91tq2DHphyoiBXVHjVi2YG9zFaRnboT9C28tO1en9Y3wJsfspuy40F+u5wl3hHVbw7cnd1b67kEGHb8g==", "license": "MIT", "peer": true }, - "node_modules/tiny-emitter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", - "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==", - "dev": true, - "license": "MIT" - }, "node_modules/tinybench": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", @@ -22774,9 +22816,9 @@ "license": "MIT" }, "node_modules/tinyexec": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.4.tgz", - "integrity": "sha512-u9r3uZC0bdpGOXtlxUIdwf9pkmvhqJdrVCH9fapQtgy/OeTTMZ1nqH7agtvEfmGui6e1XxjcdrlxvxJvc3sMqw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.2.4.tgz", + "integrity": "sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==", "dev": true, "license": "MIT", "engines": { @@ -22784,13 +22826,13 @@ } }, "node_modules/tinyglobby": { - "version": "0.2.15", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", - "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", "license": "MIT", "dependencies": { "fdir": "^6.5.0", - "picomatch": "^4.0.3" + "picomatch": "^4.0.4" }, "engines": { "node": ">=12.0.0" @@ -22817,9 +22859,9 @@ } }, "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "license": "MIT", "engines": { "node": ">=12" @@ -22839,20 +22881,20 @@ } }, "node_modules/tldts-core": { - "version": "7.0.26", - "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.26.tgz", - "integrity": "sha512-5WJ2SqFsv4G2Dwi7ZFVRnz6b2H1od39QME1lc2y5Ew3eWiZMAeqOAfWpRP9jHvhUl881406QtZTODvjttJs+ew==", + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.4.3.tgz", + "integrity": "sha512-27ep5H9PzdBrNd5OFM/j3WCU8F3kPwM9D0BOaOf7uYfxMJfyr0K5Tjj69Gri+sZlh2WXd5buIm47NuPF29CDiw==", "license": "MIT", "peer": true }, "node_modules/tldts-icann": { - "version": "7.0.26", - "resolved": "https://registry.npmjs.org/tldts-icann/-/tldts-icann-7.0.26.tgz", - "integrity": "sha512-sURVOaLzPJmqEBjf55dRSJ9wh7HDHb6RobT+4vvreCk74RF/gFshnh2PVGLB0rFiqHemQlWApSIN/Hx4OekGjg==", + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/tldts-icann/-/tldts-icann-7.4.3.tgz", + "integrity": "sha512-9XCxITTKwJZ1VP3NmW3jZrtZFbUs9c6MoczqtvQXQddBdlxXF/6BXDe9SvR3TcHg8yYttEqoQmbLibR8R2XIJQ==", "license": "MIT", "peer": true, "dependencies": { - "tldts-core": "^7.0.26" + "tldts-core": "^7.4.3" } }, "node_modules/to-regex-range": { @@ -22933,55 +22975,6 @@ "node": ">=10.13.0" } }, - "node_modules/tsconfig-paths-webpack-plugin/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/tsconfig-paths-webpack-plugin/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/tsconfig-paths-webpack-plugin/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/tsconfig-paths-webpack-plugin/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, "node_modules/tsconfig-paths-webpack-plugin/node_modules/tsconfig-paths": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", @@ -23016,13 +23009,12 @@ "license": "0BSD" }, "node_modules/tsx": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.21.0.tgz", - "integrity": "sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.22.4.tgz", + "integrity": "sha512-X8EX+XV4QR5xCsrgxaED954zTDfY8KqlDtskKEL0cHhyS/P8b4IFOvGDQpsC9Q1XnLq915wEfwwY/zzskCtmhg==", "license": "MIT", "dependencies": { - "esbuild": "~0.27.0", - "get-tsconfig": "^4.7.5" + "esbuild": "~0.28.0" }, "bin": { "tsx": "dist/cli.mjs" @@ -23048,9 +23040,9 @@ } }, "node_modules/type-fest": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.6.0.tgz", - "integrity": "sha512-8ZiHFm91orbSAe2PSAiSVBVko18pbhbiB3U9GglSzF/zCGkR+rxpHx6sEMCUm4kxY4LjDIUGgCfUMtwfZfjfUA==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.7.0.tgz", + "integrity": "sha512-1URUxUqfHFM1c+zfSPsa3gnkO7Aq21qyH75SIduNYz4SzY964rn1X2vCMQaHSHhktiw+0kPa2iyb6PUpXqB6Vg==", "dev": true, "license": "(MIT OR CC0-1.0)", "dependencies": { @@ -23118,17 +23110,17 @@ } }, "node_modules/typed-array-length": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", - "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.8.tgz", + "integrity": "sha512-phPGCwqr2+Qo0fwniCE8e4pKnGu/yFb5nD5Y8bf0EEeiI5GklnACYA9GFy/DrAeRrKHXvHn+1SUsOWgJp6RO+g==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0", - "reflect.getprototypeof": "^1.0.6" + "call-bind": "^1.0.9", + "for-each": "^0.3.5", + "gopd": "^1.2.0", + "is-typed-array": "^1.1.15", + "possible-typed-array-names": "^1.1.0", + "reflect.getprototypeof": "^1.0.10" }, "engines": { "node": ">= 0.4" @@ -23138,9 +23130,9 @@ } }, "node_modules/typed-query-selector": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.1.tgz", - "integrity": "sha512-uzR+FzI8qrUEIu96oaeBJmd9E7CFEiQ3goA5qCVgc4s5llSubcfGHq9yUstZx/k4s9dXHVKsE35YWoFyvEqEHA==", + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.2.tgz", + "integrity": "sha512-EOPFbyIub4ngnEdqi2yOcNeDLaX/0jcE1JoAXQDDMIthap7FoN795lc/SHfIq2d416VufXpM8z/lD+WRm2gfOQ==", "license": "MIT", "peer": true }, @@ -23159,16 +23151,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.59.3", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.59.3.tgz", - "integrity": "sha512-KgusgyDgG4LI8Ih/sWaCtZ06tckLAS5CvT5A4D1Q7bYVoAAyzwiZvE4BmwDHkhRVkvhRBepKeASoFzQetha7Fg==", + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.61.1.tgz", + "integrity": "sha512-V7PayAfJokV3pEHgN7/v03D1SpujhRfQtYLbLIiBfDDncdg4PAiRBfoS4cnCANK4jmAPncczi59QO3afiXUlNw==", "license": "MIT", "peer": true, "dependencies": { - "@typescript-eslint/eslint-plugin": "8.59.3", - "@typescript-eslint/parser": "8.59.3", - "@typescript-eslint/typescript-estree": "8.59.3", - "@typescript-eslint/utils": "8.59.3" + "@typescript-eslint/eslint-plugin": "8.61.1", + "@typescript-eslint/parser": "8.61.1", + "@typescript-eslint/typescript-estree": "8.61.1", + "@typescript-eslint/utils": "8.61.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -23227,9 +23219,9 @@ } }, "node_modules/undici-types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", + "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", "license": "MIT" }, "node_modules/unicorn-magic": { @@ -23256,38 +23248,41 @@ } }, "node_modules/unrs-resolver": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz", - "integrity": "sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.12.2.tgz", + "integrity": "sha512-dmlRxBJJayXjqTwC+JtF1HhJmgf3ftQ3YejFcZrf4+KKtJv0qDsK1pjqaaVjG7wJ5NJ6UVP1OqRMQ71Z4C3rxQ==", "hasInstallScript": true, "license": "MIT", "peer": true, "dependencies": { - "napi-postinstall": "^0.3.0" + "napi-postinstall": "^0.3.4" }, "funding": { "url": "https://opencollective.com/unrs-resolver" }, "optionalDependencies": { - "@unrs/resolver-binding-android-arm-eabi": "1.11.1", - "@unrs/resolver-binding-android-arm64": "1.11.1", - "@unrs/resolver-binding-darwin-arm64": "1.11.1", - "@unrs/resolver-binding-darwin-x64": "1.11.1", - "@unrs/resolver-binding-freebsd-x64": "1.11.1", - "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1", - "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1", - "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1", - "@unrs/resolver-binding-linux-arm64-musl": "1.11.1", - "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1", - "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1", - "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1", - "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1", - "@unrs/resolver-binding-linux-x64-gnu": "1.11.1", - "@unrs/resolver-binding-linux-x64-musl": "1.11.1", - "@unrs/resolver-binding-wasm32-wasi": "1.11.1", - "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1", - "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1", - "@unrs/resolver-binding-win32-x64-msvc": "1.11.1" + "@unrs/resolver-binding-android-arm-eabi": "1.12.2", + "@unrs/resolver-binding-android-arm64": "1.12.2", + "@unrs/resolver-binding-darwin-arm64": "1.12.2", + "@unrs/resolver-binding-darwin-x64": "1.12.2", + "@unrs/resolver-binding-freebsd-x64": "1.12.2", + "@unrs/resolver-binding-linux-arm-gnueabihf": "1.12.2", + "@unrs/resolver-binding-linux-arm-musleabihf": "1.12.2", + "@unrs/resolver-binding-linux-arm64-gnu": "1.12.2", + "@unrs/resolver-binding-linux-arm64-musl": "1.12.2", + "@unrs/resolver-binding-linux-loong64-gnu": "1.12.2", + "@unrs/resolver-binding-linux-loong64-musl": "1.12.2", + "@unrs/resolver-binding-linux-ppc64-gnu": "1.12.2", + "@unrs/resolver-binding-linux-riscv64-gnu": "1.12.2", + "@unrs/resolver-binding-linux-riscv64-musl": "1.12.2", + "@unrs/resolver-binding-linux-s390x-gnu": "1.12.2", + "@unrs/resolver-binding-linux-x64-gnu": "1.12.2", + "@unrs/resolver-binding-linux-x64-musl": "1.12.2", + "@unrs/resolver-binding-openharmony-arm64": "1.12.2", + "@unrs/resolver-binding-wasm32-wasi": "1.12.2", + "@unrs/resolver-binding-win32-arm64-msvc": "1.12.2", + "@unrs/resolver-binding-win32-ia32-msvc": "1.12.2", + "@unrs/resolver-binding-win32-x64-msvc": "1.12.2" } }, "node_modules/update-browserslist-db": { @@ -23420,9 +23415,9 @@ "license": "MIT" }, "node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-14.0.0.tgz", + "integrity": "sha512-Qo+uWgilfSmAhXCMav1uYFynlQO7fMFiMVZsQqZRMIXp0O7rR7qjkj+cPvBHLgBqi960QCoo/PH2/6ZtVqKvrg==", "dev": true, "funding": [ "https://github.com/sponsors/broofa", @@ -23430,7 +23425,7 @@ ], "license": "MIT", "bin": { - "uuid": "dist/bin/uuid" + "uuid": "dist-node/bin/uuid" } }, "node_modules/validate-npm-package-license": { @@ -23460,18 +23455,17 @@ } }, "node_modules/vite": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.0.tgz", - "integrity": "sha512-fPGaRNj9Zytaf8LEiBhY7Z6ijnFKdzU/+mL8EFBaKr7Vw1/FWcTBAMW0wLPJAGMPX38ZPVCVgLceWiEqeoqL2Q==", + "version": "8.0.16", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.16.tgz", + "integrity": "sha512-h9bXPmJichP5fLmVQo3PyaGSDE2n3aPuomeAlVRm0JLmt4rY6zmPKd59HYI4LNW8oTK7tlTsuC7l/m7awx9Jcw==", "dev": true, "license": "MIT", "dependencies": { - "@oxc-project/runtime": "0.115.0", "lightningcss": "^1.32.0", - "picomatch": "^4.0.3", - "postcss": "^8.5.8", - "rolldown": "1.0.0-rc.9", - "tinyglobby": "^0.2.15" + "picomatch": "^4.0.4", + "postcss": "^8.5.15", + "rolldown": "1.0.3", + "tinyglobby": "^0.2.17" }, "bin": { "vite": "bin/vite.js" @@ -23487,8 +23481,8 @@ }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", - "@vitejs/devtools": "^0.0.0-alpha.31", - "esbuild": "^0.27.0", + "@vitejs/devtools": "^0.1.18", + "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", "sass": "^1.70.0", @@ -23539,9 +23533,9 @@ } }, "node_modules/vite/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "dev": true, "license": "MIT", "engines": { @@ -23552,19 +23546,19 @@ } }, "node_modules/vitest": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.0.tgz", - "integrity": "sha512-YbDrMF9jM2Lqc++2530UourxZHmkKLxrs4+mYhEwqWS97WJ7wOYEkcr+QfRgJ3PW9wz3odRijLZjHEaRLTNbqw==", + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.9.tgz", + "integrity": "sha512-nE3/LEyc0z87uHYLZebqCUOaJr2hdtuPp7BQ4BosVFnfltxgAvMG08NyrSGlPpOUWvR27c5flSmYFTNr78L9GQ==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/expect": "4.1.0", - "@vitest/mocker": "4.1.0", - "@vitest/pretty-format": "4.1.0", - "@vitest/runner": "4.1.0", - "@vitest/snapshot": "4.1.0", - "@vitest/spy": "4.1.0", - "@vitest/utils": "4.1.0", + "@vitest/expect": "4.1.9", + "@vitest/mocker": "4.1.9", + "@vitest/pretty-format": "4.1.9", + "@vitest/runner": "4.1.9", + "@vitest/snapshot": "4.1.9", + "@vitest/spy": "4.1.9", + "@vitest/utils": "4.1.9", "es-module-lexer": "^2.0.0", "expect-type": "^1.3.0", "magic-string": "^0.30.21", @@ -23575,8 +23569,8 @@ "tinybench": "^2.9.0", "tinyexec": "^1.0.2", "tinyglobby": "^0.2.15", - "tinyrainbow": "^3.0.3", - "vite": "^6.0.0 || ^7.0.0 || ^8.0.0-0", + "tinyrainbow": "^3.1.0", + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0", "why-is-node-running": "^2.3.0" }, "bin": { @@ -23592,13 +23586,15 @@ "@edge-runtime/vm": "*", "@opentelemetry/api": "^1.9.0", "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", - "@vitest/browser-playwright": "4.1.0", - "@vitest/browser-preview": "4.1.0", - "@vitest/browser-webdriverio": "4.1.0", - "@vitest/ui": "4.1.0", + "@vitest/browser-playwright": "4.1.9", + "@vitest/browser-preview": "4.1.9", + "@vitest/browser-webdriverio": "4.1.9", + "@vitest/coverage-istanbul": "4.1.9", + "@vitest/coverage-v8": "4.1.9", + "@vitest/ui": "4.1.9", "happy-dom": "*", "jsdom": "*", - "vite": "^6.0.0 || ^7.0.0 || ^8.0.0-0" + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "@edge-runtime/vm": { @@ -23619,6 +23615,12 @@ "@vitest/browser-webdriverio": { "optional": true }, + "@vitest/coverage-istanbul": { + "optional": true + }, + "@vitest/coverage-v8": { + "optional": true + }, "@vitest/ui": { "optional": true }, @@ -23628,21 +23630,15 @@ "jsdom": { "optional": true }, - "tsx": { - "optional": true - }, "vite": { "optional": false - }, - "yaml": { - "optional": true } } }, "node_modules/vitest/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "dev": true, "license": "MIT", "engines": { @@ -23675,63 +23671,10 @@ } } }, - "node_modules/vue-loader/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/vue-loader/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/vue-loader/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/vue-loader/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, "node_modules/wasm-vips": { - "version": "0.0.16", - "resolved": "https://registry.npmjs.org/wasm-vips/-/wasm-vips-0.0.16.tgz", - "integrity": "sha512-4/bEq8noAFt7DX3VT+Vt5AgNtnnOLwvmrDbduWfiv9AV+VYkbUU4f9Dam9e6khRqPinyClFHCqiwATTTJEiGwA==", + "version": "0.0.17", + "resolved": "https://registry.npmjs.org/wasm-vips/-/wasm-vips-0.0.17.tgz", + "integrity": "sha512-nhkqUNJDUymImoXGrVfImC4wzIFTb9KfBpAngb7dcEQNPP1gVTx4+WL3VVVDSXQpMsyeacsQDOx0+DM33Rpurg==", "dev": true, "license": "MIT", "engines": { @@ -23739,22 +23682,28 @@ } }, "node_modules/watchpack": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.1.tgz", - "integrity": "sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.2.tgz", + "integrity": "sha512-6i/00NBjP4yGPs+caKSyRfpTF/8Torsu0MOW3mMzIbhgISFder8i7xbqgHlLMwJrdiN8ndBV3UA1/AfzPSr+jg==", "license": "MIT", "dependencies": { - "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" }, "engines": { "node": ">=10.13.0" } }, + "node_modules/web-features": { + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/web-features/-/web-features-3.30.0.tgz", + "integrity": "sha512-IF5V6RRMD2DO7Dy/s2ApI99SnnPUEomLU/j9PgBBEQHJHyM7swVzktmbVXTsaI9u7bxp6o+LlclS2HoMEjz9nw==", + "license": "Apache-2.0", + "peer": true + }, "node_modules/webdriver-bidi-protocol": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.4.1.tgz", - "integrity": "sha512-ARrjNjtWRRs2w4Tk7nqrf2gBI0QXWuOmMCx2hU+1jUt6d00MjMxURrhxhGbrsoiZKJrhTSTzbIrc554iKI10qw==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.4.2.tgz", + "integrity": "sha512-VSV+fzfChirL3e7jay2yUC7B4HQCGtEWEg/MSSQbK+qWbqeGlRLlXTzPpYr3XGUvbpDHumWZBJxgesg4N7dbtA==", "license": "Apache-2.0", "peer": true }, @@ -23766,12 +23715,11 @@ "license": "BSD-2-Clause" }, "node_modules/webpack": { - "version": "5.105.4", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.105.4.tgz", - "integrity": "sha512-jTywjboN9aHxFlToqb0K0Zs9SbBoW4zRUlGzI2tYNxVYcEi/IPpn+Xi4ye5jTLvX2YeLuic/IvxNot+Q1jMoOw==", + "version": "5.107.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.107.2.tgz", + "integrity": "sha512-v7RhXaJbpMlV0D7hC7lb2EbnxkoeUqf9qhKr6lozx3Q48pmFrqqNRmZFUEGmi7pSwm6fCQ2H1IjvCkHqdpVdjQ==", "license": "MIT", "dependencies": { - "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.8", "@types/json-schema": "^7.0.15", "@webassemblyjs/ast": "^1.14.1", @@ -23781,21 +23729,20 @@ "acorn-import-phases": "^1.0.3", "browserslist": "^4.28.1", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.20.0", - "es-module-lexer": "^2.0.0", + "enhanced-resolve": "^5.22.0", + "es-module-lexer": "^2.1.0", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.11", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.3.1", - "mime-types": "^2.1.27", + "loader-runner": "^4.3.2", + "mime-db": "^1.54.0", "neo-async": "^2.6.2", "schema-utils": "^4.3.3", "tapable": "^2.3.0", - "terser-webpack-plugin": "^5.3.17", + "terser-webpack-plugin": "^5.5.0", "watchpack": "^2.5.1", - "webpack-sources": "^3.3.4" + "webpack-sources": "^3.5.0" }, "bin": { "webpack": "bin/webpack.js" @@ -23814,15 +23761,15 @@ } }, "node_modules/webpack-assets-manifest": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/webpack-assets-manifest/-/webpack-assets-manifest-6.5.1.tgz", - "integrity": "sha512-aMuOF9+UB4oHyKxi0ixQpKiI52nZ2onHFgqOmLlyIFgBh/lU7hcy+zPryaoHrBR1polqTPE3atz/SZ7xFc2QSQ==", + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/webpack-assets-manifest/-/webpack-assets-manifest-6.5.2.tgz", + "integrity": "sha512-UNi1LmOJUEsLpAYTV21ftp5HYsxePvhIEvAIij84I3wBCYDOman3tevsglxfC+F+GFWEDhFkwrvIzbvXqTYqrw==", "license": "MIT", "dependencies": { "deepmerge": "^4.3.1", "proper-lockfile": "^4.1.2", "schema-utils": "^4.3.3", - "tapable": "^2.3.0" + "tapable": "^2.3.3" }, "engines": { "node": ">=20.10.0" @@ -23832,18 +23779,17 @@ } }, "node_modules/webpack-bundle-analyzer": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-5.2.0.tgz", - "integrity": "sha512-Etrauj1wYO/xjiz/Vfd6bW1lG9fEhrJpNmu10tv0X9kv+gyY3qiE09uYepqg1Xd0PxOvllRXwWYWjtQYoO/glQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-5.3.0.tgz", + "integrity": "sha512-PEhAoqiJ+47d0uLMx/+zo5XOvaU+Vk6N2ZLht7H3n09QLy/fhyvqGNwjdRUHJDgMN8crBR2ZwVHkIswT3Xuawg==", "license": "MIT", "dependencies": { - "@discoveryjs/json-ext": "0.5.7", + "@discoveryjs/json-ext": "^0.6.3", "acorn": "^8.0.4", "acorn-walk": "^8.0.0", - "commander": "^7.2.0", - "debounce": "^1.2.1", - "escape-string-regexp": "^4.0.0", - "html-escaper": "^2.0.2", + "commander": "^14.0.2", + "escape-string-regexp": "^5.0.0", + "html-escaper": "^3.0.3", "opener": "^1.5.2", "picocolors": "^1.0.0", "sirv": "^3.0.2", @@ -23857,30 +23803,36 @@ } }, "node_modules/webpack-bundle-analyzer/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz", + "integrity": "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==", "license": "MIT", "engines": { - "node": ">= 10" + "node": ">=20" } }, "node_modules/webpack-bundle-analyzer/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "license": "MIT", "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/webpack-bundle-analyzer/node_modules/html-escaper": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-3.0.3.tgz", + "integrity": "sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==", + "license": "MIT" + }, "node_modules/webpack-bundle-analyzer/node_modules/ws": { - "version": "8.19.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz", - "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz", + "integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==", "license": "MIT", "engines": { "node": ">=10.0.0" @@ -23913,22 +23865,25 @@ } }, "node_modules/webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.5.0.tgz", + "integrity": "sha512-HPuy+uuoTCaaoEoI1LQ3JN9+vrPBvEesnnX1jADHy728cHSMlq4wUc4afYqahq2B1mhQVZxCXOkNTnXltr+2vQ==", "license": "MIT", - "dependencies": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" + "engines": { + "node": ">=10.13.0" } }, - "node_modules/webpack-sources/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", + "node_modules/webpack/node_modules/enhanced-resolve": { + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.24.0.tgz", + "integrity": "sha512-SkE2t82KlkkxQRVMVLAGKxLfORGQfrkx5dkj+vlgXRVNEdPc4eZcR+J/Fvj8C+yKSFH5L0q3NFlyufOVQnCcYQ==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.3.3" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10.13.0" } }, "node_modules/webpack/node_modules/eslint-scope": { @@ -23953,15 +23908,6 @@ "node": ">=4.0" } }, - "node_modules/webpack/node_modules/webpack-sources": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.4.tgz", - "integrity": "sha512-7tP1PdV4vF+lYPnkMR0jMY5/la2ub5Fc/8VQrrU+lXkiM6C4TjVfGw7iKfyhnTQOsD+6Q/iKw0eFciziRgD58Q==", - "license": "MIT", - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", @@ -24067,13 +24013,13 @@ "license": "ISC" }, "node_modules/which-typed-array": { - "version": "1.1.20", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.20.tgz", - "integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==", + "version": "1.1.22", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.22.tgz", + "integrity": "sha512-fvO4ExWMFsqyhG3AiPAObMuY1lxaqgYcxbc49CNdWDDECOJNgQyvsOWVwbZc+qf3rzRtxojBK+CMEv0Ld5CYpw==", "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", + "call-bind": "^1.0.9", "call-bound": "^1.0.4", "for-each": "^0.3.5", "get-proto": "^1.0.1", @@ -24256,9 +24202,9 @@ } }, "node_modules/ws": { - "version": "7.5.10", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", - "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "version": "7.5.11", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.11.tgz", + "integrity": "sha512-zS54Oen9bITtp7kp2XM3AydrCIq1D+HwJOuH+c+e4LfpL/lotP5osijd+UoMnxwAam1GN8R4KtLAyIrIcBNpiA==", "license": "MIT", "peer": true, "engines": { @@ -24343,12 +24289,12 @@ } }, "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "version": "22.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-22.0.0.tgz", + "integrity": "sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==", "license": "ISC", "engines": { - "node": ">=12" + "node": "^20.19.0 || ^22.12.0 || >=23" } }, "node_modules/yargs/node_modules/ansi-regex": { @@ -24401,26 +24347,6 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/yargs/node_modules/yargs-parser": { - "version": "22.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-22.0.0.tgz", - "integrity": "sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==", - "license": "ISC", - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=23" - } - }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "license": "MIT", - "peer": true, - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", @@ -24435,11 +24361,10 @@ } }, "node_modules/zod": { - "version": "3.25.76", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", - "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz", + "integrity": "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==", "license": "MIT", - "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" } @@ -24462,12 +24387,12 @@ "version": "7.2.2", "license": "GPL-3.0-or-later", "devDependencies": { - "@types/wordpress__block-editor": "^15.0.5", + "@types/wordpress__block-editor": "^15.0.6", "@types/wordpress__blocks": "^15.10.2", - "@wordpress/block-editor": "^15.14.0", - "@wordpress/blocks": "^15.14.0", - "@wordpress/components": "^32.3.0", - "@wordpress/i18n": "^6.14.0" + "@wordpress/block-editor": "^15.21.1", + "@wordpress/blocks": "^15.21.1", + "@wordpress/components": "^32.6.0", + "@wordpress/i18n": "^6.21.1" } }, "packages/browserslist-config": { @@ -24475,7 +24400,7 @@ "version": "18.0.0", "license": "GPL-3.0-or-later", "devDependencies": { - "browserslist": "^4.28.1" + "browserslist": "^4.28.2" } }, "packages/cli": { @@ -24486,6 +24411,7 @@ "@atomicsmash/date-php": "^2.2.0", "@atomicsmash/smash-config": "^1.0.2", "@types/vinyl": "^2.0.12", + "dotenv": "^17.4.2", "glob-promise": "^6.0.7", "svg-sprite": "^2.0.4", "vinyl": "^3.0.1", @@ -24498,71 +24424,7 @@ "devDependencies": { "@atomicsmash/blocks-helpers": "^7.2.2", "@types/svg-sprite": "^0.0.39", - "type-fest": "^5.6.0" - }, - "peerDependencies": { - "dotenv": "^17.3.1", - "typescript": "~5.9.3" - } - }, - "packages/cli/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "packages/cli/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", - "license": "ISC", - "peer": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "packages/cli/node_modules/glob-promise": { - "version": "6.0.7", - "resolved": "https://registry.npmjs.org/glob-promise/-/glob-promise-6.0.7.tgz", - "integrity": "sha512-DEAe6br1w8ZF+y6KM2pzgdfhpreladtNvyNNVgSkxxkFWzXTJFXxQrJQQbAnc7kL0EUd7w5cR8u4K0P4+/q+Gw==", - "license": "MIT", - "engines": { - "node": ">=16" - }, - "funding": { - "type": "individual", - "url": "https://github.com/sponsors/ahmadnassri" - }, - "peerDependencies": { - "glob": "^8.0.3" - } - }, - "packages/cli/node_modules/minimatch": { - "version": "5.1.9", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", - "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", - "license": "ISC", - "peer": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" + "type-fest": "^5.7.0" } }, "packages/coding-standards": { @@ -24570,27 +24432,27 @@ "version": "18.0.0", "license": "GPL-3.0-or-later", "devDependencies": { - "@cspell/cspell-types": "^9.7.0" + "@cspell/cspell-types": "^10.0.1" }, "peerDependencies": { "@atomicsmash/browserslist-config": "^18.0.0", - "@eslint-community/eslint-plugin-eslint-comments": "^4.7.1", + "@eslint-community/eslint-plugin-eslint-comments": "^4.7.2", "@eslint/js": "^9.39.4", - "@wordpress/stylelint-config": "^23.33.0", - "eslint": "^9.0.0", - "eslint-import-resolver-typescript": "^4.4.4", + "@wordpress/stylelint-config": "^23.40.1", + "eslint": "^9.39.4", + "eslint-import-resolver-typescript": "^4.4.5", "eslint-plugin-import": "^2.32.0", - "eslint-plugin-playwright": "^2.10.2", + "eslint-plugin-playwright": "^2.10.4", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^7.1.1", "globals": "^17.6.0", - "prettier": "^3.8.1", + "prettier": "^3.8.4", "stylelint": "^16.26.1", "stylelint-config-standard": "^39.0.1", "stylelint-config-standard-scss": "^16.0.0", "stylelint-no-restricted-syntax": "^2.2.1", "stylelint-order": "^7.0.1", - "typescript-eslint": "^8.59.3" + "typescript-eslint": "^8.61.1" } }, "packages/compiler": { @@ -24600,36 +24462,36 @@ "dependencies": { "@atomicsmash/date-php": "^2.2.0", "@atomicsmash/smash-config": "^1.0.2", - "@wordpress/dependency-extraction-webpack-plugin": "^6.41.0", + "@wordpress/dependency-extraction-webpack-plugin": "^6.48.1", "browserslist-to-esbuild": "^2.1.1", "copy-webpack-plugin": "^14.0.0", - "cssnano": "^7.1.3", - "esbuild-loader": "^4.4.2", + "esbuild-loader": "^4.5.0", "fast-glob": "^3.3.3", "json-loader": "^0.5.7", "json2php": "^0.0.12", "postcss": "^8.5.8", "postcss-loader": "^8.2.1", - "postcss-preset-env": "^11.2.0", - "sass": "^1.98.0", - "sass-loader": "^16.0.7", + "postcss-preset-env": "^11.3.1", + "sass": "^1.101.0", "svg-spritemap-webpack-plugin": "^5.1.0", "tsconfig-paths-webpack-plugin": "^4.2.0", - "tsx": "^4.21.0", - "webpack": "^5.105.4", - "webpack-assets-manifest": "^6.5.1", - "webpack-bundle-analyzer": "^5.2.0", + "tsx": "^4.22.4", + "webpack": "^5.107.2", + "webpack-assets-manifest": "^6.5.2", + "webpack-bundle-analyzer": "^5.3.0", "yargs": "^18.0.0" }, "bin": { "smash-compile": "dist/cli.js" }, "devDependencies": { - "@tailwindcss/postcss": "^4.2.1", + "@tailwindcss/postcss": "^4.3.1", "@types/webpack": "^5.28.5", "@types/webpack-assets-manifest": "^5.1.4", "@types/webpack-bundle-analyzer": "^4.7.0", "@types/yargs": "^17.0.35", + "cssnano": "^8.0.2", + "sass-loader": "^17.0.0", "tailwindcss": "^4.0.9", "vue-loader": "^17.4.2" }, @@ -24637,6 +24499,256 @@ "node": "^20 || >=22" } }, + "packages/compiler/node_modules/@xmldom/xmldom": { + "version": "0.9.10", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.9.10.tgz", + "integrity": "sha512-A9gOqLdi6cV4ibazAjcQufGj0B1y/vDqYrcuP6d/6x8P27gRS8643Dj9o1dEKtB6O7fwxb2FgBmJS2mX7gpvdw==", + "license": "MIT", + "engines": { + "node": ">=14.6" + } + }, + "packages/compiler/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "packages/compiler/node_modules/brace-expansion": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz", + "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==", + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, + "packages/compiler/node_modules/commander": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=16" + } + }, + "packages/compiler/node_modules/css-select": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "packages/compiler/node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "packages/compiler/node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "license": "MIT", + "peer": true, + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "packages/compiler/node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "license": "MIT", + "peer": true, + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "packages/compiler/node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "packages/compiler/node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "packages/compiler/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "peer": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "packages/compiler/node_modules/glob": { + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", + "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", + "license": "BlueOak-1.0.0", + "dependencies": { + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "packages/compiler/node_modules/loader-utils": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz", + "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", + "license": "MIT", + "engines": { + "node": ">= 12.13.0" + } + }, + "packages/compiler/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "license": "CC0-1.0", + "peer": true + }, + "packages/compiler/node_modules/minimatch": { + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.5" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "packages/compiler/node_modules/svg-spritemap-webpack-plugin": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/svg-spritemap-webpack-plugin/-/svg-spritemap-webpack-plugin-5.1.4.tgz", + "integrity": "sha512-MHay5NX83g8N+PN1jhp0WCcoDg7sldr8pW8k6cRckofW2AZKOWH1Rn+bk2QMQm8IIzr7yRTWBC2znqv8A58MmA==", + "license": "MIT", + "dependencies": { + "@xmldom/xmldom": "^0.9.8", + "glob": "^13.0.6", + "loader-utils": "^3.3.1", + "lodash-es": "^4.18.1", + "mini-svg-data-uri": "^1.4.4", + "mkdirp": "^3.0.1", + "svg-element-attributes": "^2.1.0", + "webpack-merge": "^6.0.1", + "zod": "^4.4.3" + }, + "engines": { + "node": "^20.11.0 || ^21.2.0 || >=22.16.0" + }, + "peerDependencies": { + "svg4everybody": "^2.1.9", + "svgo": "^4.0.0", + "typescript": "^4.0.0 || ^5.0.0 || ^6.0.0", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "packages/compiler/node_modules/svgo": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-4.0.1.tgz", + "integrity": "sha512-XDpWUOPC6FEibaLzjfe0ucaV0YrOjYotGJO1WpF0Zd+n6ZGEQUsSugaoLq9QkEZtAfQIxT42UChcssDVPP3+/w==", + "license": "MIT", + "peer": true, + "dependencies": { + "commander": "^11.1.0", + "css-select": "^5.1.0", + "css-tree": "^3.0.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.1.1", + "sax": "^1.5.0" + }, + "bin": { + "svgo": "bin/svgo.js" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, "packages/date-php": { "name": "@atomicsmash/date-php", "version": "2.2.0", @@ -24647,7 +24759,7 @@ "version": "2.1.3", "license": "GPL-3.0-or-later", "dependencies": { - "semver": "^7.7.4", + "semver": "^7.8.4", "yargs": "^18.0.0" }, "bin": { @@ -24663,11 +24775,10 @@ "version": "1.0.2", "license": "GPL-3.0-or-later", "dependencies": { - "cosmiconfig": "^9.0.1" + "cosmiconfig": "^9.0.2" }, "peerDependencies": { - "dotenv": "^17.3.1", - "sass": "^1.98.0" + "sass": "^1.101.0" } }, "packages/test-utils": { @@ -24675,12 +24786,12 @@ "version": "6.0.0", "license": "GPL-3.0-or-later", "dependencies": { - "@axe-core/playwright": "^4.11.1", - "get-port": "^7.1.0", + "@axe-core/playwright": "^4.11.3", + "get-port": "^7.2.0", "playwright-lighthouse": "^4.0.0" }, "peerDependencies": { - "@playwright/test": "^1.58.2", + "@playwright/test": "^1.61.0", "cross-env": "^10.1.0" } }, diff --git a/package.json b/package.json index 84f2aa38..f5cba9d1 100644 --- a/package.json +++ b/package.json @@ -42,14 +42,14 @@ "publish": "changeset publish" }, "devDependencies": { - "@changesets/changelog-github": "^0.5.2", - "@changesets/cli": "^2.30.0", - "@types/node": "^22.19.15", + "@changesets/changelog-github": "^0.7.0", + "@changesets/cli": "^2.31.0", + "@types/node": "^24.13.2", "@vitest/coverage-v8": "^4.1.0", "@vitest/ui": "^4.0.15", "cross-env": "^10.1.0", "del-cli": "^7.0.0", - "dotenv": "^17.3.1", + "dotenv": "^17.4.2", "husky": "^9.1.7", "npm-run-all": "^4.1.5", "vitest": "^4.0.15" diff --git a/packages/blocks-helpers/package.json b/packages/blocks-helpers/package.json index 44e3b2e7..00ba5339 100644 --- a/packages/blocks-helpers/package.json +++ b/packages/blocks-helpers/package.json @@ -36,11 +36,11 @@ "lint:types": "tsc" }, "devDependencies": { - "@types/wordpress__block-editor": "^15.0.5", + "@types/wordpress__block-editor": "^15.0.6", "@types/wordpress__blocks": "^15.10.2", - "@wordpress/block-editor": "^15.14.0", - "@wordpress/blocks": "^15.14.0", - "@wordpress/components": "^32.3.0", - "@wordpress/i18n": "^6.14.0" + "@wordpress/block-editor": "^15.21.1", + "@wordpress/blocks": "^15.21.1", + "@wordpress/components": "^32.6.0", + "@wordpress/i18n": "^6.21.1" } } diff --git a/packages/browserslist-config/package.json b/packages/browserslist-config/package.json index 31089130..ac6d71f5 100644 --- a/packages/browserslist-config/package.json +++ b/packages/browserslist-config/package.json @@ -5,7 +5,7 @@ "main": "index.js", "types": "index.d.ts", "devDependencies": { - "browserslist": "^4.28.1" + "browserslist": "^4.28.2" }, "keywords": [ "atomic", diff --git a/packages/cli/package.json b/packages/cli/package.json index 8f2b4813..5c4ef7ce 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -43,6 +43,7 @@ "@atomicsmash/date-php": "^2.2.0", "@atomicsmash/smash-config": "^1.0.2", "@types/vinyl": "^2.0.12", + "dotenv": "^17.4.2", "glob-promise": "^6.0.7", "svg-sprite": "^2.0.4", "vinyl": "^3.0.1", @@ -51,10 +52,6 @@ "devDependencies": { "@atomicsmash/blocks-helpers": "^7.2.2", "@types/svg-sprite": "^0.0.39", - "type-fest": "^5.6.0" - }, - "peerDependencies": { - "dotenv": "^17.3.1", - "typescript": "~5.9.3" + "type-fest": "^5.7.0" } } diff --git a/packages/coding-standards/package.json b/packages/coding-standards/package.json index 18a74026..ced47623 100644 --- a/packages/coding-standards/package.json +++ b/packages/coding-standards/package.json @@ -48,27 +48,27 @@ "./beta/biome": "./beta/biome/biome.jsonc" }, "devDependencies": { - "@cspell/cspell-types": "^9.7.0" + "@cspell/cspell-types": "^10.0.1" }, "peerDependencies": { "@atomicsmash/browserslist-config": "^18.0.0", - "@eslint-community/eslint-plugin-eslint-comments": "^4.7.1", + "@eslint-community/eslint-plugin-eslint-comments": "^4.7.2", "@eslint/js": "^9.39.4", - "@wordpress/stylelint-config": "^23.33.0", - "eslint": "^9.0.0", - "eslint-import-resolver-typescript": "^4.4.4", + "@wordpress/stylelint-config": "^23.40.1", + "eslint": "^9.39.4", + "eslint-import-resolver-typescript": "^4.4.5", "eslint-plugin-import": "^2.32.0", - "eslint-plugin-playwright": "^2.10.2", + "eslint-plugin-playwright": "^2.10.4", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^7.1.1", "globals": "^17.6.0", - "prettier": "^3.8.1", + "prettier": "^3.8.4", "stylelint": "^16.26.1", "stylelint-config-standard": "^39.0.1", "stylelint-config-standard-scss": "^16.0.0", "stylelint-no-restricted-syntax": "^2.2.1", "stylelint-order": "^7.0.1", - "typescript-eslint": "^8.59.3" + "typescript-eslint": "^8.61.1" }, "keywords": [ "atomic", diff --git a/packages/compiler/package.json b/packages/compiler/package.json index 106c0f86..d73d7f23 100644 --- a/packages/compiler/package.json +++ b/packages/compiler/package.json @@ -48,33 +48,33 @@ "dependencies": { "@atomicsmash/date-php": "^2.2.0", "@atomicsmash/smash-config": "^1.0.2", - "@wordpress/dependency-extraction-webpack-plugin": "^6.41.0", + "@wordpress/dependency-extraction-webpack-plugin": "^6.48.1", "browserslist-to-esbuild": "^2.1.1", "copy-webpack-plugin": "^14.0.0", - "cssnano": "^7.1.3", - "esbuild-loader": "^4.4.2", + "esbuild-loader": "^4.5.0", "fast-glob": "^3.3.3", "json-loader": "^0.5.7", "json2php": "^0.0.12", "postcss": "^8.5.8", "postcss-loader": "^8.2.1", - "postcss-preset-env": "^11.2.0", - "sass": "^1.98.0", - "sass-loader": "^16.0.7", + "postcss-preset-env": "^11.3.1", + "sass": "^1.101.0", "svg-spritemap-webpack-plugin": "^5.1.0", "tsconfig-paths-webpack-plugin": "^4.2.0", - "tsx": "^4.21.0", - "webpack": "^5.105.4", - "webpack-assets-manifest": "^6.5.1", - "webpack-bundle-analyzer": "^5.2.0", + "tsx": "^4.22.4", + "webpack": "^5.107.2", + "webpack-assets-manifest": "^6.5.2", + "webpack-bundle-analyzer": "^5.3.0", "yargs": "^18.0.0" }, "devDependencies": { - "@tailwindcss/postcss": "^4.2.1", + "@tailwindcss/postcss": "^4.3.1", "@types/webpack": "^5.28.5", "@types/webpack-assets-manifest": "^5.1.4", "@types/webpack-bundle-analyzer": "^4.7.0", "@types/yargs": "^17.0.35", + "cssnano": "^8.0.2", + "sass-loader": "^17.0.0", "tailwindcss": "^4.0.9", "vue-loader": "^17.4.2" }, diff --git a/packages/compiler/src/tests/compiler.test.ts b/packages/compiler/src/tests/compiler.test.ts index 427e0637..414f5520 100644 --- a/packages/compiler/src/tests/compiler.test.ts +++ b/packages/compiler/src/tests/compiler.test.ts @@ -84,13 +84,13 @@ describe("Compiler tests", () => { `"body{background-color:red;color:blue}"`, ); expect(style).toMatchInlineSnapshot( - `"h1{color:purple}h2{color:#639}body{background-color:green;border:1px solid red;color:#fff;padding:1rem 2rem}"`, + `"h1{color:purple}h2{color:#639}body{padding:1rem 2rem;background-color:green;color:#fff;border:1px solid red}"`, ); expect(subfolderCSS).toMatchInlineSnapshot( `"body{background-color:red;color:blue}"`, ); expect(subfolderSCSS).toMatchInlineSnapshot( - `"body{background-color:green;border:1px solid red;color:#fff}"`, + `"body{background-color:green;color:#fff;border:1px solid red}"`, ); }); diff --git a/packages/init-testing/package.json b/packages/init-testing/package.json index 8a2685b7..5c8b82bd 100644 --- a/packages/init-testing/package.json +++ b/packages/init-testing/package.json @@ -43,7 +43,7 @@ "lint:types": "tsc" }, "dependencies": { - "semver": "^7.7.4", + "semver": "^7.8.4", "yargs": "^18.0.0" }, "devDependencies": { diff --git a/packages/init-testing/src/utils.test.ts b/packages/init-testing/src/utils.test.ts index 44d8ca2a..c22a2477 100644 --- a/packages/init-testing/src/utils.test.ts +++ b/packages/init-testing/src/utils.test.ts @@ -1,7 +1,7 @@ import { expect, test, describe, vi, afterEach, it, beforeAll } from "vitest"; import { PackageManager } from "./utils.js"; -describe.sequential("Init testing utils", () => { +describe("Init testing utils", { concurrent: false }, () => { const consoleSpy = vi.spyOn(console, "log"); let packageManager: PackageManager; @@ -33,7 +33,7 @@ describe.sequential("Init testing utils", () => { }); }); - describe.sequential("ensurePackageIsInstalled()", () => { + describe("ensurePackageIsInstalled()", { concurrent: false }, () => { it("should do nothing if dependency is already installed", async () => { await packageManager.ensurePackageIsInstalled( "@atomicsmash/coding-standards", diff --git a/packages/smash-config/package.json b/packages/smash-config/package.json index 2008690c..05f2444f 100644 --- a/packages/smash-config/package.json +++ b/packages/smash-config/package.json @@ -37,10 +37,9 @@ "lint:types": "tsc" }, "peerDependencies": { - "dotenv": "^17.3.1", - "sass": "^1.98.0" + "sass": "^1.101.0" }, "dependencies": { - "cosmiconfig": "^9.0.1" + "cosmiconfig": "^9.0.2" } } diff --git a/packages/smash-config/src/tests/getSmashConfig.test.ts b/packages/smash-config/src/tests/getSmashConfig.test.ts index e99f021d..6b0a1898 100644 --- a/packages/smash-config/src/tests/getSmashConfig.test.ts +++ b/packages/smash-config/src/tests/getSmashConfig.test.ts @@ -3,7 +3,7 @@ import { getSmashConfig } from "../utils/getSmashConfig"; let originalCWDFunction: typeof process.cwd; -describe.sequential("getSmashConfig()", () => { +describe("getSmashConfig()", { concurrent: false }, () => { beforeAll(() => { originalCWDFunction = process.cwd.bind(this); }); diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index 736b4fed..7c69db5b 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -42,12 +42,12 @@ "lint:types": "tsc" }, "peerDependencies": { - "@playwright/test": "^1.58.2", + "@playwright/test": "^1.61.0", "cross-env": "^10.1.0" }, "dependencies": { - "@axe-core/playwright": "^4.11.1", - "get-port": "^7.1.0", + "@axe-core/playwright": "^4.11.3", + "get-port": "^7.2.0", "playwright-lighthouse": "^4.0.0" } } diff --git a/packages/test-utils/src/index.ts b/packages/test-utils/src/index.ts index 16f53ffe..e5957e9c 100644 --- a/packages/test-utils/src/index.ts +++ b/packages/test-utils/src/index.ts @@ -6,7 +6,6 @@ import type { PlaywrightTestOptions, } from "@playwright/test"; import type { SerialFrameSelector } from "axe-core"; -import type { Config } from "lighthouse"; import { AxeBuilder } from "@axe-core/playwright"; import { test as base, chromium, devices } from "@playwright/test"; import getPort from "get-port"; @@ -162,9 +161,8 @@ export const doLighthouseTest: ( directory: "lighthouse/latest-lighthouse-report", name: `${pageToTest.slug ?? slugify(pageToTest.name)}-${type}`, }, - config: (type === "desktop" - ? lighthouseDesktopConfig - : lighthouseMobileConfig) as Config, + config: + type === "desktop" ? lighthouseDesktopConfig : lighthouseMobileConfig, ignoreError: true, disableLogs: disableAuditLogs, }); From 7751d7f4cce81d8d1565caab60e85380fc546515 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 16 Jun 2026 14:38:01 +0000 Subject: [PATCH 44/62] Version Packages (beta) --- .changeset/pre.json | 14 ++++++++++++- package-lock.json | 24 +++++++++++------------ packages/blocks-helpers/CHANGELOG.md | 6 ++++++ packages/blocks-helpers/package.json | 2 +- packages/browserslist-config/CHANGELOG.md | 6 ++++++ packages/browserslist-config/package.json | 2 +- packages/cli/CHANGELOG.md | 23 ++++++++++++++++++++++ packages/cli/package.json | 6 +++--- packages/coding-standards/CHANGELOG.md | 9 +++++++++ packages/coding-standards/package.json | 4 ++-- packages/compiler/CHANGELOG.md | 13 ++++++++++++ packages/compiler/package.json | 4 ++-- packages/init-testing/CHANGELOG.md | 6 ++++++ packages/init-testing/package.json | 2 +- packages/smash-config/CHANGELOG.md | 18 +++++++++++++++++ packages/smash-config/package.json | 2 +- packages/test-utils/CHANGELOG.md | 6 ++++++ packages/test-utils/package.json | 2 +- 18 files changed, 124 insertions(+), 25 deletions(-) diff --git a/.changeset/pre.json b/.changeset/pre.json index cded50a6..015dfffe 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -13,5 +13,17 @@ "@atomicsmash/test-utils": "6.0.0", "@atomicsmash/wordpress-tests-helper": "1.2.0" }, - "changesets": [] + "changesets": [ + "eight-lions-argue", + "giant-plants-mix", + "huge-rules-kiss", + "jolly-frogs-drum", + "legal-groups-notice", + "lucky-games-pump", + "olive-apples-ring", + "rare-eagles-move", + "silver-glasses-shine", + "tasty-coins-cry", + "violet-paws-flow" + ] } diff --git a/package-lock.json b/package-lock.json index b7024581..cc45e59a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24384,7 +24384,7 @@ }, "packages/blocks-helpers": { "name": "@atomicsmash/blocks-helpers", - "version": "7.2.2", + "version": "7.2.3-beta.0", "license": "GPL-3.0-or-later", "devDependencies": { "@types/wordpress__block-editor": "^15.0.6", @@ -24397,7 +24397,7 @@ }, "packages/browserslist-config": { "name": "@atomicsmash/browserslist-config", - "version": "18.0.0", + "version": "18.0.1-beta.0", "license": "GPL-3.0-or-later", "devDependencies": { "browserslist": "^4.28.2" @@ -24405,11 +24405,11 @@ }, "packages/cli": { "name": "@atomicsmash/cli", - "version": "11.0.0", + "version": "12.0.0-beta.0", "license": "GPL-3.0-or-later", "dependencies": { "@atomicsmash/date-php": "^2.2.0", - "@atomicsmash/smash-config": "^1.0.2", + "@atomicsmash/smash-config": "^2.0.0-beta.0", "@types/vinyl": "^2.0.12", "dotenv": "^17.4.2", "glob-promise": "^6.0.7", @@ -24422,20 +24422,20 @@ "smash-cli": "dist/cli.js" }, "devDependencies": { - "@atomicsmash/blocks-helpers": "^7.2.2", + "@atomicsmash/blocks-helpers": "^7.2.3-beta.0", "@types/svg-sprite": "^0.0.39", "type-fest": "^5.7.0" } }, "packages/coding-standards": { "name": "@atomicsmash/coding-standards", - "version": "18.0.0", + "version": "18.0.1-beta.0", "license": "GPL-3.0-or-later", "devDependencies": { "@cspell/cspell-types": "^10.0.1" }, "peerDependencies": { - "@atomicsmash/browserslist-config": "^18.0.0", + "@atomicsmash/browserslist-config": "^18.0.1-beta.0", "@eslint-community/eslint-plugin-eslint-comments": "^4.7.2", "@eslint/js": "^9.39.4", "@wordpress/stylelint-config": "^23.40.1", @@ -24457,11 +24457,11 @@ }, "packages/compiler": { "name": "@atomicsmash/compiler", - "version": "4.0.0", + "version": "5.0.0-beta.0", "license": "GPL-3.0-or-later", "dependencies": { "@atomicsmash/date-php": "^2.2.0", - "@atomicsmash/smash-config": "^1.0.2", + "@atomicsmash/smash-config": "^2.0.0-beta.0", "@wordpress/dependency-extraction-webpack-plugin": "^6.48.1", "browserslist-to-esbuild": "^2.1.1", "copy-webpack-plugin": "^14.0.0", @@ -24756,7 +24756,7 @@ }, "packages/init-testing": { "name": "@atomicsmash/init-testing", - "version": "2.1.3", + "version": "2.1.4-beta.0", "license": "GPL-3.0-or-later", "dependencies": { "semver": "^7.8.4", @@ -24772,7 +24772,7 @@ }, "packages/smash-config": { "name": "@atomicsmash/smash-config", - "version": "1.0.2", + "version": "2.0.0-beta.0", "license": "GPL-3.0-or-later", "dependencies": { "cosmiconfig": "^9.0.2" @@ -24783,7 +24783,7 @@ }, "packages/test-utils": { "name": "@atomicsmash/test-utils", - "version": "6.0.0", + "version": "6.0.1-beta.0", "license": "GPL-3.0-or-later", "dependencies": { "@axe-core/playwright": "^4.11.3", diff --git a/packages/blocks-helpers/CHANGELOG.md b/packages/blocks-helpers/CHANGELOG.md index 04837574..a78d15c6 100644 --- a/packages/blocks-helpers/CHANGELOG.md +++ b/packages/blocks-helpers/CHANGELOG.md @@ -1,5 +1,11 @@ # @atomicsmash/blocks-helpers +## 7.2.3-beta.0 + +### Patch Changes + +- [#580](https://github.com/AtomicSmash/packages/pull/580) [`87c5a17`](https://github.com/AtomicSmash/packages/commit/87c5a1758cd5cb0a73f0754649788182e316a038) Thanks [@mikeybinns](https://github.com/mikeybinns)! - Update deps + ## 7.2.2 ### Patch Changes diff --git a/packages/blocks-helpers/package.json b/packages/blocks-helpers/package.json index 00ba5339..f5a52c38 100644 --- a/packages/blocks-helpers/package.json +++ b/packages/blocks-helpers/package.json @@ -1,6 +1,6 @@ { "name": "@atomicsmash/blocks-helpers", - "version": "7.2.2", + "version": "7.2.3-beta.0", "description": "", "keywords": [], "homepage": "https://www.atomicsmash.co.uk/", diff --git a/packages/browserslist-config/CHANGELOG.md b/packages/browserslist-config/CHANGELOG.md index 89de4c08..552cde23 100644 --- a/packages/browserslist-config/CHANGELOG.md +++ b/packages/browserslist-config/CHANGELOG.md @@ -1,5 +1,11 @@ # @atomicsmash/browserslist-config +## 18.0.1-beta.0 + +### Patch Changes + +- [#580](https://github.com/AtomicSmash/packages/pull/580) [`87c5a17`](https://github.com/AtomicSmash/packages/commit/87c5a1758cd5cb0a73f0754649788182e316a038) Thanks [@mikeybinns](https://github.com/mikeybinns)! - Update deps + ## 18.0.0 ## 18.0.0-beta.11 diff --git a/packages/browserslist-config/package.json b/packages/browserslist-config/package.json index ac6d71f5..91592f6f 100644 --- a/packages/browserslist-config/package.json +++ b/packages/browserslist-config/package.json @@ -1,6 +1,6 @@ { "name": "@atomicsmash/browserslist-config", - "version": "18.0.0", + "version": "18.0.1-beta.0", "description": "Our shared browserslist config.", "main": "index.js", "types": "index.d.ts", diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index 450e1b9e..d1a99e50 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,28 @@ # @atomicsmash/cli +## 12.0.0-beta.0 + +### Major Changes + +- [#531](https://github.com/AtomicSmash/packages/pull/531) [`24dddc5`](https://github.com/AtomicSmash/packages/commit/24dddc569fdadd0b248a7fb717014537aad10175) Thanks [@daviddarke](https://github.com/daviddarke)! - Remove SVG command + +- [#531](https://github.com/AtomicSmash/packages/pull/531) [`61845d4`](https://github.com/AtomicSmash/packages/commit/61845d49c0bea9f110d374d0e711f01166a9788e) Thanks [@daviddarke](https://github.com/daviddarke)! - Update pull database and pull media commands to use Smash Config V2 and remove .env variable support. + +- [#531](https://github.com/AtomicSmash/packages/pull/531) [`6e12ed6`](https://github.com/AtomicSmash/packages/commit/6e12ed6240493e8a13d9b7cb063ceae8f028ad46) Thanks [@daviddarke](https://github.com/daviddarke)! - Added new toggle media proxy function + +### Minor Changes + +- [#531](https://github.com/AtomicSmash/packages/pull/531) [`affcda8`](https://github.com/AtomicSmash/packages/commit/affcda8a6927981cbdfc1acd85a85672e921f883) Thanks [@daviddarke](https://github.com/daviddarke)! - Deprecate setup-database command + +### Patch Changes + +- [#580](https://github.com/AtomicSmash/packages/pull/580) [`87c5a17`](https://github.com/AtomicSmash/packages/commit/87c5a1758cd5cb0a73f0754649788182e316a038) Thanks [@mikeybinns](https://github.com/mikeybinns)! - Update deps + +- [#531](https://github.com/AtomicSmash/packages/pull/531) [`61845d4`](https://github.com/AtomicSmash/packages/commit/61845d49c0bea9f110d374d0e711f01166a9788e) Thanks [@daviddarke](https://github.com/daviddarke)! - Update setup and setup database commands in line with the changes to smash config. + +- Updated dependencies [[`87c5a17`](https://github.com/AtomicSmash/packages/commit/87c5a1758cd5cb0a73f0754649788182e316a038), [`61845d4`](https://github.com/AtomicSmash/packages/commit/61845d49c0bea9f110d374d0e711f01166a9788e), [`61845d4`](https://github.com/AtomicSmash/packages/commit/61845d49c0bea9f110d374d0e711f01166a9788e), [`61845d4`](https://github.com/AtomicSmash/packages/commit/61845d49c0bea9f110d374d0e711f01166a9788e), [`61845d4`](https://github.com/AtomicSmash/packages/commit/61845d49c0bea9f110d374d0e711f01166a9788e)]: + - @atomicsmash/smash-config@2.0.0-beta.0 + ## 11.0.0 ### Major Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index 5c4ef7ce..c46f2588 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@atomicsmash/cli", - "version": "11.0.0", + "version": "12.0.0-beta.0", "description": "A collection of CLI tools by Atomic Smash.", "keywords": [], "homepage": "https://www.atomicsmash.co.uk/", @@ -41,7 +41,7 @@ }, "dependencies": { "@atomicsmash/date-php": "^2.2.0", - "@atomicsmash/smash-config": "^1.0.2", + "@atomicsmash/smash-config": "^2.0.0-beta.0", "@types/vinyl": "^2.0.12", "dotenv": "^17.4.2", "glob-promise": "^6.0.7", @@ -50,7 +50,7 @@ "yargs": "^18.0.0" }, "devDependencies": { - "@atomicsmash/blocks-helpers": "^7.2.2", + "@atomicsmash/blocks-helpers": "^7.2.3-beta.0", "@types/svg-sprite": "^0.0.39", "type-fest": "^5.7.0" } diff --git a/packages/coding-standards/CHANGELOG.md b/packages/coding-standards/CHANGELOG.md index 0df70f2a..a1b18cfd 100644 --- a/packages/coding-standards/CHANGELOG.md +++ b/packages/coding-standards/CHANGELOG.md @@ -1,5 +1,14 @@ # @atomicsmash/coding-standards +## 18.0.1-beta.0 + +### Patch Changes + +- [#580](https://github.com/AtomicSmash/packages/pull/580) [`87c5a17`](https://github.com/AtomicSmash/packages/commit/87c5a1758cd5cb0a73f0754649788182e316a038) Thanks [@mikeybinns](https://github.com/mikeybinns)! - Update deps + +- Updated dependencies [[`87c5a17`](https://github.com/AtomicSmash/packages/commit/87c5a1758cd5cb0a73f0754649788182e316a038)]: + - @atomicsmash/browserslist-config@18.0.1-beta.0 + ## 18.0.0 ### Major Changes diff --git a/packages/coding-standards/package.json b/packages/coding-standards/package.json index ced47623..b19da0a0 100644 --- a/packages/coding-standards/package.json +++ b/packages/coding-standards/package.json @@ -1,7 +1,7 @@ { "name": "@atomicsmash/coding-standards", "type": "module", - "version": "18.0.0", + "version": "18.0.1-beta.0", "description": "A collection of coding standards configurations.", "files": [ "./dist/**/*", @@ -51,7 +51,7 @@ "@cspell/cspell-types": "^10.0.1" }, "peerDependencies": { - "@atomicsmash/browserslist-config": "^18.0.0", + "@atomicsmash/browserslist-config": "^18.0.1-beta.0", "@eslint-community/eslint-plugin-eslint-comments": "^4.7.2", "@eslint/js": "^9.39.4", "@wordpress/stylelint-config": "^23.40.1", diff --git a/packages/compiler/CHANGELOG.md b/packages/compiler/CHANGELOG.md index b6482555..359266a9 100644 --- a/packages/compiler/CHANGELOG.md +++ b/packages/compiler/CHANGELOG.md @@ -1,5 +1,18 @@ # @atomicsmash/compiler +## 5.0.0-beta.0 + +### Major Changes + +- [#531](https://github.com/AtomicSmash/packages/pull/531) [`61845d4`](https://github.com/AtomicSmash/packages/commit/61845d49c0bea9f110d374d0e711f01166a9788e) Thanks [@daviddarke](https://github.com/daviddarke)! - The compiler now requires that a smash config is set, if not set, it will throw an error. Fallback for scssAliases removed. + +### Patch Changes + +- [#580](https://github.com/AtomicSmash/packages/pull/580) [`87c5a17`](https://github.com/AtomicSmash/packages/commit/87c5a1758cd5cb0a73f0754649788182e316a038) Thanks [@mikeybinns](https://github.com/mikeybinns)! - Update deps + +- Updated dependencies [[`87c5a17`](https://github.com/AtomicSmash/packages/commit/87c5a1758cd5cb0a73f0754649788182e316a038), [`61845d4`](https://github.com/AtomicSmash/packages/commit/61845d49c0bea9f110d374d0e711f01166a9788e), [`61845d4`](https://github.com/AtomicSmash/packages/commit/61845d49c0bea9f110d374d0e711f01166a9788e), [`61845d4`](https://github.com/AtomicSmash/packages/commit/61845d49c0bea9f110d374d0e711f01166a9788e), [`61845d4`](https://github.com/AtomicSmash/packages/commit/61845d49c0bea9f110d374d0e711f01166a9788e)]: + - @atomicsmash/smash-config@2.0.0-beta.0 + ## 4.0.0 ### Major Changes diff --git a/packages/compiler/package.json b/packages/compiler/package.json index d73d7f23..c20b926f 100644 --- a/packages/compiler/package.json +++ b/packages/compiler/package.json @@ -1,7 +1,7 @@ { "name": "@atomicsmash/compiler", "type": "module", - "version": "4.0.0", + "version": "5.0.0-beta.0", "description": "A universal compiler for all Atomic Smash projects.", "keywords": [ "cli", @@ -47,7 +47,7 @@ }, "dependencies": { "@atomicsmash/date-php": "^2.2.0", - "@atomicsmash/smash-config": "^1.0.2", + "@atomicsmash/smash-config": "^2.0.0-beta.0", "@wordpress/dependency-extraction-webpack-plugin": "^6.48.1", "browserslist-to-esbuild": "^2.1.1", "copy-webpack-plugin": "^14.0.0", diff --git a/packages/init-testing/CHANGELOG.md b/packages/init-testing/CHANGELOG.md index 28bf5408..9cf03ea4 100644 --- a/packages/init-testing/CHANGELOG.md +++ b/packages/init-testing/CHANGELOG.md @@ -1,5 +1,11 @@ # @atomicsmash/init-testing +## 2.1.4-beta.0 + +### Patch Changes + +- [#580](https://github.com/AtomicSmash/packages/pull/580) [`87c5a17`](https://github.com/AtomicSmash/packages/commit/87c5a1758cd5cb0a73f0754649788182e316a038) Thanks [@mikeybinns](https://github.com/mikeybinns)! - Update deps + ## 2.1.3 ### Patch Changes diff --git a/packages/init-testing/package.json b/packages/init-testing/package.json index 5c8b82bd..e6815326 100644 --- a/packages/init-testing/package.json +++ b/packages/init-testing/package.json @@ -1,7 +1,7 @@ { "name": "@atomicsmash/init-testing", "type": "module", - "version": "2.1.3", + "version": "2.1.4-beta.0", "description": "Allow us to easily add automated testing setup to any npm setup.", "keywords": [ "atomic", diff --git a/packages/smash-config/CHANGELOG.md b/packages/smash-config/CHANGELOG.md index c280ee0b..41565730 100644 --- a/packages/smash-config/CHANGELOG.md +++ b/packages/smash-config/CHANGELOG.md @@ -1,5 +1,23 @@ # @atomicsmash/smash-config +## 2.0.0-beta.0 + +### Major Changes + +- [#531](https://github.com/AtomicSmash/packages/pull/531) [`61845d4`](https://github.com/AtomicSmash/packages/commit/61845d49c0bea9f110d374d0e711f01166a9788e) Thanks [@daviddarke](https://github.com/daviddarke)! - Get smash config now always returns a smash config or throws an error, it no longer returns null for custom errors. + +- [#531](https://github.com/AtomicSmash/packages/pull/531) [`61845d4`](https://github.com/AtomicSmash/packages/commit/61845d49c0bea9f110d374d0e711f01166a9788e) Thanks [@daviddarke](https://github.com/daviddarke)! - Removed smash config fallbacks for .env and package.json + +### Minor Changes + +- [#531](https://github.com/AtomicSmash/packages/pull/531) [`61845d4`](https://github.com/AtomicSmash/packages/commit/61845d49c0bea9f110d374d0e711f01166a9788e) Thanks [@daviddarke](https://github.com/daviddarke)! - Add option to get a Smash Config of a minimum version + +- [#531](https://github.com/AtomicSmash/packages/pull/531) [`61845d4`](https://github.com/AtomicSmash/packages/commit/61845d49c0bea9f110d374d0e711f01166a9788e) Thanks [@daviddarke](https://github.com/daviddarke)! - Add Smash Config V2 types and validation + +### Patch Changes + +- [#580](https://github.com/AtomicSmash/packages/pull/580) [`87c5a17`](https://github.com/AtomicSmash/packages/commit/87c5a1758cd5cb0a73f0754649788182e316a038) Thanks [@mikeybinns](https://github.com/mikeybinns)! - Update deps + ## 1.0.2 ### Patch Changes diff --git a/packages/smash-config/package.json b/packages/smash-config/package.json index 05f2444f..e544d565 100644 --- a/packages/smash-config/package.json +++ b/packages/smash-config/package.json @@ -1,7 +1,7 @@ { "name": "@atomicsmash/smash-config", "type": "module", - "version": "1.0.2", + "version": "2.0.0-beta.0", "description": "", "keywords": [], "homepage": "https://www.atomicsmash.co.uk/", diff --git a/packages/test-utils/CHANGELOG.md b/packages/test-utils/CHANGELOG.md index a69198d9..89e5176e 100644 --- a/packages/test-utils/CHANGELOG.md +++ b/packages/test-utils/CHANGELOG.md @@ -1,5 +1,11 @@ # @atomicsmash/test-utils +## 6.0.1-beta.0 + +### Patch Changes + +- [#580](https://github.com/AtomicSmash/packages/pull/580) [`87c5a17`](https://github.com/AtomicSmash/packages/commit/87c5a1758cd5cb0a73f0754649788182e316a038) Thanks [@mikeybinns](https://github.com/mikeybinns)! - Update deps + ## 6.0.0 ### Major Changes diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index 7c69db5b..a02dbb55 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@atomicsmash/test-utils", - "version": "6.0.0", + "version": "6.0.1-beta.0", "type": "module", "description": "A collection of helper functions for automated testing with Playwright.", "keywords": [ From 5f306935d059c6f92864843e191fc7437f659bc2 Mon Sep 17 00:00:00 2001 From: Mikey Binns <38146638+mikeybinns@users.noreply.github.com> Date: Wed, 17 Jun 2026 12:32:39 +0100 Subject: [PATCH 45/62] Add missing typescript dep to smash config --- package-lock.json | 5 +++-- packages/coding-standards/package.json | 3 ++- packages/smash-config/package.json | 3 ++- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index cc45e59a..8bf88065 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23141,7 +23141,6 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -24452,6 +24451,7 @@ "stylelint-config-standard-scss": "^16.0.0", "stylelint-no-restricted-syntax": "^2.2.1", "stylelint-order": "^7.0.1", + "typescript": "~5.9", "typescript-eslint": "^8.61.1" } }, @@ -24775,7 +24775,8 @@ "version": "2.0.0-beta.0", "license": "GPL-3.0-or-later", "dependencies": { - "cosmiconfig": "^9.0.2" + "cosmiconfig": "^9.0.2", + "typescript": ">=4.9.5" }, "peerDependencies": { "sass": "^1.101.0" diff --git a/packages/coding-standards/package.json b/packages/coding-standards/package.json index b19da0a0..aedcb3c2 100644 --- a/packages/coding-standards/package.json +++ b/packages/coding-standards/package.json @@ -68,7 +68,8 @@ "stylelint-config-standard-scss": "^16.0.0", "stylelint-no-restricted-syntax": "^2.2.1", "stylelint-order": "^7.0.1", - "typescript-eslint": "^8.61.1" + "typescript-eslint": "^8.61.1", + "typescript": "~5.9" }, "keywords": [ "atomic", diff --git a/packages/smash-config/package.json b/packages/smash-config/package.json index e544d565..430f591e 100644 --- a/packages/smash-config/package.json +++ b/packages/smash-config/package.json @@ -40,6 +40,7 @@ "sass": "^1.101.0" }, "dependencies": { - "cosmiconfig": "^9.0.2" + "cosmiconfig": "^9.0.2", + "typescript": ">=4.9.5" } } From 737e1bb1e9ee5e3a744045aebeca752dcad4362a Mon Sep 17 00:00:00 2001 From: Mikey Binns <38146638+mikeybinns@users.noreply.github.com> Date: Wed, 17 Jun 2026 12:33:29 +0100 Subject: [PATCH 46/62] Remove unused deps from cli --- packages/cli/package.json | 7 ------- 1 file changed, 7 deletions(-) diff --git a/packages/cli/package.json b/packages/cli/package.json index c46f2588..4e905e58 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -40,18 +40,11 @@ "lint:types": "tsc -b" }, "dependencies": { - "@atomicsmash/date-php": "^2.2.0", "@atomicsmash/smash-config": "^2.0.0-beta.0", - "@types/vinyl": "^2.0.12", "dotenv": "^17.4.2", - "glob-promise": "^6.0.7", - "svg-sprite": "^2.0.4", - "vinyl": "^3.0.1", "yargs": "^18.0.0" }, "devDependencies": { - "@atomicsmash/blocks-helpers": "^7.2.3-beta.0", - "@types/svg-sprite": "^0.0.39", "type-fest": "^5.7.0" } } From 1d274b8a7afabda23f927c717d67116b22436e95 Mon Sep 17 00:00:00 2001 From: Mikey Binns <38146638+mikeybinns@users.noreply.github.com> Date: Wed, 17 Jun 2026 12:35:58 +0100 Subject: [PATCH 47/62] add changesets --- .changeset/fancy-states-sin.md | 5 +++++ .changeset/humble-cooks-cut.md | 5 +++++ .changeset/lovely-heads-press.md | 5 +++++ 3 files changed, 15 insertions(+) create mode 100644 .changeset/fancy-states-sin.md create mode 100644 .changeset/humble-cooks-cut.md create mode 100644 .changeset/lovely-heads-press.md diff --git a/.changeset/fancy-states-sin.md b/.changeset/fancy-states-sin.md new file mode 100644 index 00000000..106ac258 --- /dev/null +++ b/.changeset/fancy-states-sin.md @@ -0,0 +1,5 @@ +--- +"@atomicsmash/cli": patch +--- + +Remove unused deps diff --git a/.changeset/humble-cooks-cut.md b/.changeset/humble-cooks-cut.md new file mode 100644 index 00000000..e2be50a2 --- /dev/null +++ b/.changeset/humble-cooks-cut.md @@ -0,0 +1,5 @@ +--- +"@atomicsmash/smash-config": patch +--- + +Add missing typescript dep diff --git a/.changeset/lovely-heads-press.md b/.changeset/lovely-heads-press.md new file mode 100644 index 00000000..168b22ed --- /dev/null +++ b/.changeset/lovely-heads-press.md @@ -0,0 +1,5 @@ +--- +"@atomicsmash/coding-standards": patch +--- + +Fix the typescript version to 5.9 to prevent new linting errors without package updates From fc4601b35620148060413f159e38190a04f49713 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 17 Jun 2026 11:39:51 +0000 Subject: [PATCH 48/62] Version Packages (beta) --- .changeset/pre.json | 3 + package-lock.json | 1167 +-------------------- packages/browserslist-config/CHANGELOG.md | 2 + packages/browserslist-config/package.json | 2 +- packages/cli/CHANGELOG.md | 9 + packages/cli/package.json | 4 +- packages/coding-standards/CHANGELOG.md | 9 + packages/coding-standards/package.json | 4 +- packages/smash-config/CHANGELOG.md | 6 + packages/smash-config/package.json | 2 +- 10 files changed, 48 insertions(+), 1160 deletions(-) diff --git a/.changeset/pre.json b/.changeset/pre.json index 015dfffe..159881cf 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -15,10 +15,13 @@ }, "changesets": [ "eight-lions-argue", + "fancy-states-sin", "giant-plants-mix", "huge-rules-kiss", + "humble-cooks-cut", "jolly-frogs-drum", "legal-groups-notice", + "lovely-heads-press", "lucky-games-pump", "olive-apples-ring", "rare-eagles-move", diff --git a/package-lock.json b/package-lock.json index 8bf88065..0f717284 100644 --- a/package-lock.json +++ b/package-lock.json @@ -846,15 +846,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@colors/colors": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", - "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", - "license": "MIT", - "engines": { - "node": ">=0.1.90" - } - }, "node_modules/@cspell/cspell-types": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-10.0.1.tgz", @@ -4038,17 +4029,6 @@ "postcss": "^8.4" } }, - "node_modules/@dabh/diagnostics": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.8.tgz", - "integrity": "sha512-R4MSXTVnuMzGD7bzHdW2ZhhdPC/igELENcq5IjEverBvq5hn1SXCWcsi6eSsdWP0/Ur+SItRRjAktmdoX/8R/Q==", - "license": "MIT", - "dependencies": { - "@so-ric/colorspace": "^1.1.6", - "enabled": "2.0.x", - "kuler": "^2.0.0" - } - }, "node_modules/@date-fns/tz": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@date-fns/tz/-/tz-1.5.0.tgz", @@ -6782,233 +6762,6 @@ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, - "node_modules/@resvg/resvg-js": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/@resvg/resvg-js/-/resvg-js-2.6.2.tgz", - "integrity": "sha512-xBaJish5OeGmniDj9cW5PRa/PtmuVU3ziqrbr5xJj901ZDN4TosrVaNZpEiLZAxdfnhAe7uQ7QFWfjPe9d9K2Q==", - "license": "MPL-2.0", - "engines": { - "node": ">= 10" - }, - "optionalDependencies": { - "@resvg/resvg-js-android-arm-eabi": "2.6.2", - "@resvg/resvg-js-android-arm64": "2.6.2", - "@resvg/resvg-js-darwin-arm64": "2.6.2", - "@resvg/resvg-js-darwin-x64": "2.6.2", - "@resvg/resvg-js-linux-arm-gnueabihf": "2.6.2", - "@resvg/resvg-js-linux-arm64-gnu": "2.6.2", - "@resvg/resvg-js-linux-arm64-musl": "2.6.2", - "@resvg/resvg-js-linux-x64-gnu": "2.6.2", - "@resvg/resvg-js-linux-x64-musl": "2.6.2", - "@resvg/resvg-js-win32-arm64-msvc": "2.6.2", - "@resvg/resvg-js-win32-ia32-msvc": "2.6.2", - "@resvg/resvg-js-win32-x64-msvc": "2.6.2" - } - }, - "node_modules/@resvg/resvg-js-android-arm-eabi": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/@resvg/resvg-js-android-arm-eabi/-/resvg-js-android-arm-eabi-2.6.2.tgz", - "integrity": "sha512-FrJibrAk6v29eabIPgcTUMPXiEz8ssrAk7TXxsiZzww9UTQ1Z5KAbFJs+Z0Ez+VZTYgnE5IQJqBcoSiMebtPHA==", - "cpu": [ - "arm" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@resvg/resvg-js-android-arm64": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/@resvg/resvg-js-android-arm64/-/resvg-js-android-arm64-2.6.2.tgz", - "integrity": "sha512-VcOKezEhm2VqzXpcIJoITuvUS/fcjIw5NA/w3tjzWyzmvoCdd+QXIqy3FBGulWdClvp4g+IfUemigrkLThSjAQ==", - "cpu": [ - "arm64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@resvg/resvg-js-darwin-arm64": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/@resvg/resvg-js-darwin-arm64/-/resvg-js-darwin-arm64-2.6.2.tgz", - "integrity": "sha512-nmok2LnAd6nLUKI16aEB9ydMC6Lidiiq2m1nEBDR1LaaP7FGs4AJ90qDraxX+CWlVuRlvNjyYJTNv8qFjtL9+A==", - "cpu": [ - "arm64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@resvg/resvg-js-darwin-x64": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/@resvg/resvg-js-darwin-x64/-/resvg-js-darwin-x64-2.6.2.tgz", - "integrity": "sha512-GInyZLjgWDfsVT6+SHxQVRwNzV0AuA1uqGsOAW+0th56J7Nh6bHHKXHBWzUrihxMetcFDmQMAX1tZ1fZDYSRsw==", - "cpu": [ - "x64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@resvg/resvg-js-linux-arm-gnueabihf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/@resvg/resvg-js-linux-arm-gnueabihf/-/resvg-js-linux-arm-gnueabihf-2.6.2.tgz", - "integrity": "sha512-YIV3u/R9zJbpqTTNwTZM5/ocWetDKGsro0SWp70eGEM9eV2MerWyBRZnQIgzU3YBnSBQ1RcxRZvY/UxwESfZIw==", - "cpu": [ - "arm" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@resvg/resvg-js-linux-arm64-gnu": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/@resvg/resvg-js-linux-arm64-gnu/-/resvg-js-linux-arm64-gnu-2.6.2.tgz", - "integrity": "sha512-zc2BlJSim7YR4FZDQ8OUoJg5holYzdiYMeobb9pJuGDidGL9KZUv7SbiD4E8oZogtYY42UZEap7dqkkYuA91pg==", - "cpu": [ - "arm64" - ], - "libc": [ - "glibc" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@resvg/resvg-js-linux-arm64-musl": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/@resvg/resvg-js-linux-arm64-musl/-/resvg-js-linux-arm64-musl-2.6.2.tgz", - "integrity": "sha512-3h3dLPWNgSsD4lQBJPb4f+kvdOSJHa5PjTYVsWHxLUzH4IFTJUAnmuWpw4KqyQ3NA5QCyhw4TWgxk3jRkQxEKg==", - "cpu": [ - "arm64" - ], - "libc": [ - "musl" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@resvg/resvg-js-linux-x64-gnu": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/@resvg/resvg-js-linux-x64-gnu/-/resvg-js-linux-x64-gnu-2.6.2.tgz", - "integrity": "sha512-IVUe+ckIerA7xMZ50duAZzwf1U7khQe2E0QpUxu5MBJNao5RqC0zwV/Zm965vw6D3gGFUl7j4m+oJjubBVoftw==", - "cpu": [ - "x64" - ], - "libc": [ - "glibc" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@resvg/resvg-js-linux-x64-musl": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/@resvg/resvg-js-linux-x64-musl/-/resvg-js-linux-x64-musl-2.6.2.tgz", - "integrity": "sha512-UOf83vqTzoYQO9SZ0fPl2ZIFtNIz/Rr/y+7X8XRX1ZnBYsQ/tTb+cj9TE+KHOdmlTFBxhYzVkP2lRByCzqi4jQ==", - "cpu": [ - "x64" - ], - "libc": [ - "musl" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@resvg/resvg-js-win32-arm64-msvc": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/@resvg/resvg-js-win32-arm64-msvc/-/resvg-js-win32-arm64-msvc-2.6.2.tgz", - "integrity": "sha512-7C/RSgCa+7vqZ7qAbItfiaAWhyRSoD4l4BQAbVDqRRsRgY+S+hgS3in0Rxr7IorKUpGE69X48q6/nOAuTJQxeQ==", - "cpu": [ - "arm64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@resvg/resvg-js-win32-ia32-msvc": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/@resvg/resvg-js-win32-ia32-msvc/-/resvg-js-win32-ia32-msvc-2.6.2.tgz", - "integrity": "sha512-har4aPAlvjnLcil40AC77YDIk6loMawuJwFINEM7n0pZviwMkMvjb2W5ZirsNOZY4aDbo5tLx0wNMREp5Brk+w==", - "cpu": [ - "ia32" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@resvg/resvg-js-win32-x64-msvc": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/@resvg/resvg-js-win32-x64-msvc/-/resvg-js-win32-x64-msvc-2.6.2.tgz", - "integrity": "sha512-ZXtYhtUr5SSaBrUDq7DiyjOFJqBVL/dOBN7N/qmi/pO0IgiWW/f/ue3nbvu9joWE5aAKDoIzy/CxsY0suwGosQ==", - "cpu": [ - "x64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, "node_modules/@rolldown/binding-android-arm64": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.3.tgz", @@ -7438,16 +7191,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@so-ric/colorspace": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@so-ric/colorspace/-/colorspace-1.1.6.tgz", - "integrity": "sha512-/KiKkpHNOBgkFJwu9sh48LkHSMYGyuTcSFK/qMBdnOAlrRJzRSXAOFB5qwzaVQuDl8wAvHVMkaASQDReTahxuw==", - "license": "MIT", - "dependencies": { - "color": "^5.0.2", - "text-hex": "1.0.x" - } - }, "node_modules/@standard-schema/spec": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", @@ -7857,12 +7600,6 @@ "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", "license": "MIT" }, - "node_modules/@types/expect": { - "version": "1.20.4", - "resolved": "https://registry.npmjs.org/@types/expect/-/expect-1.20.4.tgz", - "integrity": "sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==", - "license": "MIT" - }, "node_modules/@types/gradient-parser": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@types/gradient-parser/-/gradient-parser-1.1.0.tgz", @@ -7984,18 +7721,6 @@ "license": "MIT", "peer": true }, - "node_modules/@types/svg-sprite": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/svg-sprite/-/svg-sprite-0.0.39.tgz", - "integrity": "sha512-6zpek4v8Ch8iZ9HnXlla8Zqt9bPi9MQZt3IAI6Xqn1Ts3xOUo2nX2qRGu/tfxCeNoQ925PMI+t6z6eiJh/RNzQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/vinyl": "*", - "winston": "^3.0.0" - } - }, "node_modules/@types/tedious": { "version": "4.0.14", "resolved": "https://registry.npmjs.org/@types/tedious/-/tedious-4.0.14.tgz", @@ -8006,22 +7731,6 @@ "@types/node": "*" } }, - "node_modules/@types/triple-beam": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz", - "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==", - "license": "MIT" - }, - "node_modules/@types/vinyl": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.12.tgz", - "integrity": "sha512-Sr2fYMBUVGYq8kj3UthXFAu5UN6ZW+rYr4NACjZQJvHvj+c8lYv0CahmZ2P/r7iUkN44gGUBwqxZkrKXYPb7cw==", - "license": "MIT", - "dependencies": { - "@types/expect": "^1.20.4", - "@types/node": "*" - } - }, "node_modules/@types/webpack": { "version": "5.28.5", "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-5.28.5.tgz", @@ -11033,15 +10742,6 @@ "npm": ">=8.19.2" } }, - "node_modules/@xmldom/xmldom": { - "version": "0.8.13", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.13.tgz", - "integrity": "sha512-KRYzxepc14G/CEpEGc3Yn+JKaAeT63smlDr+vjB8jRfgTBBI9wRj/nkQEO+ucV8p8I9bfKLWp37uHgFrbntPvw==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", @@ -11417,12 +11117,6 @@ "node": ">=8" } }, - "node_modules/async": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", - "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", - "license": "MIT" - }, "node_modules/async-function": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", @@ -11600,20 +11294,6 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "license": "MIT" }, - "node_modules/bare-events": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.9.1.tgz", - "integrity": "sha512-Z0oHEHAFDZkffN8Qc39zNZjQlMDkPJRyyyZieU1VH7u8c5S+qHZ2S8ixdKIAxEjfHO7FJxXmJWgteOghVanIsg==", - "license": "Apache-2.0", - "peerDependencies": { - "bare-abort-controller": "*" - }, - "peerDependenciesMeta": { - "bare-abort-controller": { - "optional": true - } - } - }, "node_modules/baseline-browser-mapping": { "version": "2.10.37", "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.37.tgz", @@ -12081,24 +11761,6 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, "node_modules/clone-deep": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", @@ -12125,59 +11787,6 @@ "node": ">=0.10.0" } }, - "node_modules/clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==", - "license": "MIT" - }, - "node_modules/cloneable-readable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", - "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "process-nextick-args": "^2.0.0", - "readable-stream": "^2.3.5" - } - }, - "node_modules/cloneable-readable/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "license": "MIT" - }, - "node_modules/cloneable-readable/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/cloneable-readable/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT" - }, - "node_modules/cloneable-readable/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/clsx": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", @@ -12205,19 +11814,6 @@ "react-dom": "^18 || ^19 || ^19.0.0-rc" } }, - "node_modules/color": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/color/-/color-5.0.3.tgz", - "integrity": "sha512-ezmVcLR3xAVp8kYOm4GS45ZLLgIE6SPAFoduLr6hTDajwb3KZ2F46gulK3XpcwRFb5KKGCSezCBAY4Dw4HsyXA==", - "license": "MIT", - "dependencies": { - "color-convert": "^3.1.3", - "color-string": "^2.1.3" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -12236,48 +11832,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT" }, - "node_modules/color-string": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-2.1.4.tgz", - "integrity": "sha512-Bb6Cq8oq0IjDOe8wJmi4JeNn763Xs9cfrBcaylK1tPypWzyoy2G3l90v9k64kjphl/ZJjPIShFztenRomi8WTg==", - "license": "MIT", - "dependencies": { - "color-name": "^2.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/color-string/node_modules/color-name": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-2.1.0.tgz", - "integrity": "sha512-1bPaDNFm0axzE4MEAzKPuqKWeRaT43U/hyxKPBdqTfmPF+d6n7FSoTFxLVULUJOmiLp01KjhIPPH+HrXZJN4Rg==", - "license": "MIT", - "engines": { - "node": ">=12.20" - } - }, - "node_modules/color/node_modules/color-convert": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-3.1.3.tgz", - "integrity": "sha512-fasDH2ont2GqF5HpyO4w0+BcewlhHEZOFn9c1ckZdHpJ56Qb7MHhH/IcJZbBGgvdtwdwNbLvxiBEdg336iA9Sg==", - "license": "MIT", - "dependencies": { - "color-name": "^2.0.0" - }, - "engines": { - "node": ">=14.6" - } - }, - "node_modules/color/node_modules/color-name": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-2.1.0.tgz", - "integrity": "sha512-1bPaDNFm0axzE4MEAzKPuqKWeRaT43U/hyxKPBdqTfmPF+d6n7FSoTFxLVULUJOmiLp01KjhIPPH+HrXZJN4Rg==", - "license": "MIT", - "engines": { - "node": ">=12.20" - } - }, "node_modules/colord": { "version": "2.9.3", "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", @@ -12301,15 +11855,6 @@ "dev": true, "license": "MIT" }, - "node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, "node_modules/computed-style": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/computed-style/-/computed-style-0.1.4.tgz", @@ -12381,12 +11926,6 @@ "webpack": "^5.1.0" } }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "license": "MIT" - }, "node_modules/cosmiconfig": { "version": "9.0.2", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.2.tgz", @@ -12601,28 +12140,6 @@ "postcss": "^8.4" } }, - "node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-selector-parser": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-1.4.1.tgz", - "integrity": "sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g==", - "license": "MIT" - }, "node_modules/css-tree": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz", @@ -12754,43 +12271,6 @@ "postcss": "^8.5.15" } }, - "node_modules/csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "license": "MIT", - "dependencies": { - "css-tree": "^1.1.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/csso/node_modules/css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "license": "MIT", - "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/csso/node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "license": "CC0-1.0" - }, - "node_modules/cssom": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", - "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", - "license": "MIT" - }, "node_modules/csstype": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", @@ -13124,20 +12604,6 @@ "node": ">=0.10.0" } }, - "node_modules/dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, "node_modules/domelementtype": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", @@ -13150,35 +12616,6 @@ ], "license": "BSD-2-Clause" }, - "node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, "node_modules/dot-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", @@ -13254,7 +12691,8 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/emojis-list": { "version": "3.0.0", @@ -13265,12 +12703,6 @@ "node": ">= 4" } }, - "node_modules/enabled": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", - "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==", - "license": "MIT" - }, "node_modules/encoding": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", @@ -13320,15 +12752,6 @@ "node": ">=8.6" } }, - "node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "license": "BSD-2-Clause", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, "node_modules/env-paths": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", @@ -14134,15 +13557,6 @@ "node": ">=0.8.x" } }, - "node_modules/events-universal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz", - "integrity": "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==", - "license": "Apache-2.0", - "dependencies": { - "bare-events": "^2.7.0" - } - }, "node_modules/expect-type": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz", @@ -14166,12 +13580,6 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "license": "MIT" }, - "node_modules/fast-fifo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", - "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", - "license": "MIT" - }, "node_modules/fast-glob": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", @@ -14249,12 +13657,6 @@ "reusify": "^1.0.4" } }, - "node_modules/fecha": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", - "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", - "license": "MIT" - }, "node_modules/fflate": { "version": "0.8.3", "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.3.tgz", @@ -14337,12 +13739,6 @@ "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", "license": "ISC" }, - "node_modules/fn.name": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", - "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==", - "license": "MIT" - }, "node_modules/for-each": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", @@ -14421,12 +13817,6 @@ "node": ">=6 <7 || >=8" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "license": "ISC" - }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -14621,27 +14011,6 @@ "safe-buffer": "^5.1.1" } }, - "node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", - "license": "ISC", - "peer": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -14654,51 +14023,12 @@ "node": ">=10.13.0" } }, - "node_modules/glob-promise": { - "version": "6.0.7", - "resolved": "https://registry.npmjs.org/glob-promise/-/glob-promise-6.0.7.tgz", - "integrity": "sha512-DEAe6br1w8ZF+y6KM2pzgdfhpreladtNvyNNVgSkxxkFWzXTJFXxQrJQQbAnc7kL0EUd7w5cR8u4K0P4+/q+Gw==", - "license": "MIT", - "engines": { - "node": ">=16" - }, - "funding": { - "type": "individual", - "url": "https://github.com/sponsors/ahmadnassri" - }, - "peerDependencies": { - "glob": "^8.0.3" - } - }, "node_modules/glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "license": "BSD-2-Clause" }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.1.tgz", - "integrity": "sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==", - "license": "MIT", - "peer": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "5.1.9", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", - "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", - "license": "ISC", - "peer": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/global-modules": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", @@ -15156,23 +14486,6 @@ "node": ">=0.8.19" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "license": "ISC" - }, "node_modules/ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", @@ -15410,6 +14723,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "license": "MIT", + "peer": true, "engines": { "node": ">=8" } @@ -15581,18 +14895,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-string": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", @@ -16004,12 +15306,6 @@ "license": "MIT", "peer": true }, - "node_modules/kuler": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", - "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", - "license": "MIT" - }, "node_modules/legacy-javascript": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/legacy-javascript/-/legacy-javascript-0.0.1.tgz", @@ -16531,17 +15827,12 @@ "integrity": "sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==", "license": "MIT" }, - "node_modules/lodash.escape": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-4.0.1.tgz", - "integrity": "sha512-nXEOnb/jK9g0DYMr1/Xvq6l5xMD7GDG55+GSYIYmS0G4tBk/hURD4JR9WCavs04t33WmJx9kCyp9vJ+mr4BOUw==", - "license": "MIT" - }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/lodash.startcase": { "version": "4.4.0", @@ -16557,23 +15848,6 @@ "license": "MIT", "peer": true }, - "node_modules/logform": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.7.0.tgz", - "integrity": "sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==", - "license": "MIT", - "dependencies": { - "@colors/colors": "1.6.0", - "@types/triple-beam": "^1.3.2", - "fecha": "^4.2.0", - "ms": "^2.1.1", - "safe-stable-stringify": "^2.3.1", - "triple-beam": "^1.3.0" - }, - "engines": { - "node": ">= 12.0.0" - } - }, "node_modules/lookup-closest-locale": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/lookup-closest-locale/-/lookup-closest-locale-6.2.0.tgz", @@ -16904,15 +16178,6 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "license": "MIT" }, - "node_modules/mustache": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", - "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", - "license": "MIT", - "bin": { - "mustache": "bin/mustache" - } - }, "node_modules/nanoid": { "version": "3.3.12", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", @@ -17426,24 +16691,6 @@ "node": ">=12.20.0" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/one-time": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", - "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", - "license": "MIT", - "dependencies": { - "fn.name": "1.x.x" - } - }, "node_modules/open": { "version": "8.4.2", "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", @@ -17680,15 +16927,6 @@ "node": ">=8" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -20080,17 +19318,6 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/prettysize": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prettysize/-/prettysize-2.0.0.tgz", - "integrity": "sha512-VVtxR7sOh0VsG8o06Ttq5TrI1aiZKmC+ClSn4eBPaNf4SHr5lzbYW+kYGX3HocBL/MfpVrRfFZ9V3vCbLaiplg==" - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "license": "MIT" - }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", @@ -20501,20 +19728,6 @@ "node": ">=6" } }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/readdirp": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz", @@ -20591,21 +19804,6 @@ "dev": true, "license": "MIT" }, - "node_modules/remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", - "license": "ISC" - }, - "node_modules/replace-ext": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz", - "integrity": "sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, "node_modules/requestidlecallback": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/requestidlecallback/-/requestidlecallback-0.3.0.tgz", @@ -20840,6 +20038,7 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, "funding": [ { "type": "github", @@ -20889,15 +20088,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/safe-stable-stringify": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", - "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -21631,13 +20821,6 @@ "dev": true, "license": "BSD-3-Clause" }, - "node_modules/stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", - "license": "MIT" - }, "node_modules/stable-hash-x": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/stable-hash-x/-/stable-hash-x-0.2.0.tgz", @@ -21648,15 +20831,6 @@ "node": ">=12.0.0" } }, - "node_modules/stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", - "license": "MIT", - "engines": { - "node": "*" - } - }, "node_modules/stackback": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", @@ -21684,31 +20858,12 @@ "node": ">= 0.4" } }, - "node_modules/streamx": { - "version": "2.28.0", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.28.0.tgz", - "integrity": "sha512-1Yowhzjf0ivGMrTIkY9hav5TxobO9qIVqUE41fiCGMGgc3CLlf4MY+9AHmZqBWgDTue0fY9zWjYFVyf6Diuobw==", - "license": "MIT", - "dependencies": { - "events-universal": "^1.0.0", - "fast-fifo": "^1.3.2", - "text-decoder": "^1.1.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "license": "MIT", + "peer": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -22383,142 +21538,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/svg-sprite": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/svg-sprite/-/svg-sprite-2.0.4.tgz", - "integrity": "sha512-kjDoATgr4k6tdtfQczpkbuFW6RE7tPUPe/rbRd1n2NV92kdwaXEZMIxJqAZfMGOMfU/Kp1u89SUYsfHCbAvVHg==", - "license": "MIT", - "dependencies": { - "@resvg/resvg-js": "^2.6.0", - "@xmldom/xmldom": "^0.8.10", - "async": "^3.2.5", - "css-selector-parser": "^1.4.1", - "csso": "^4.2.0", - "cssom": "^0.5.0", - "glob": "^7.2.3", - "js-yaml": "^4.1.0", - "lodash.escape": "^4.0.1", - "lodash.merge": "^4.6.2", - "mustache": "^4.2.0", - "prettysize": "^2.0.0", - "svgo": "^2.8.0", - "vinyl": "^2.2.1", - "winston": "^3.11.0", - "xpath": "^0.0.34", - "yargs": "^17.7.2" - }, - "bin": { - "svg-sprite": "bin/svg-sprite.js" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/svg-sprite/node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/svg-sprite/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/svg-sprite/node_modules/replace-ext": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", - "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/svg-sprite/node_modules/vinyl": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", - "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", - "license": "MIT", - "dependencies": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/svg-sprite/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/svg-sprite/node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "license": "MIT", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/svg-sprite/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, "node_modules/svg-tags": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", @@ -22535,46 +21554,6 @@ "node": ">=0.8.0" } }, - "node_modules/svgo": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.2.tgz", - "integrity": "sha512-TyzE4NVGLUFy+H/Uy4N6c3G0HEeprsVfge6Lmq+0FdQQ/zqoVYB62IsBZORsiL+o96s6ff/V6/3UQo/C0cgCAA==", - "license": "MIT", - "dependencies": { - "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "sax": "^1.5.0", - "stable": "^0.1.8" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/svgo/node_modules/css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "license": "MIT", - "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/svgo/node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "license": "CC0-1.0" - }, "node_modules/tabbable": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.4.0.tgz", @@ -22666,15 +21645,6 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/teex": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/teex/-/teex-1.0.1.tgz", - "integrity": "sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==", - "license": "MIT", - "dependencies": { - "streamx": "^2.12.5" - } - }, "node_modules/term-size": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", @@ -22772,35 +21742,6 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "license": "MIT" }, - "node_modules/text-decoder": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.7.tgz", - "integrity": "sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==", - "license": "Apache-2.0", - "dependencies": { - "b4a": "^1.6.4" - } - }, - "node_modules/text-decoder/node_modules/b4a": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.8.1.tgz", - "integrity": "sha512-aiqre1Nr0B/6DgE2N5vwTc+2/oQZ4Wh1t4NznYY4E00y8LCt6NqdRv81so00oo27D8MVKTpUa/MwUUtBLXCoDw==", - "license": "Apache-2.0", - "peerDependencies": { - "react-native-b4a": "*" - }, - "peerDependenciesMeta": { - "react-native-b4a": { - "optional": true - } - } - }, - "node_modules/text-hex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", - "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==", - "license": "MIT" - }, "node_modules/third-party-web": { "version": "0.29.2", "resolved": "https://registry.npmjs.org/third-party-web/-/third-party-web-0.29.2.tgz", @@ -22925,15 +21866,6 @@ "dev": true, "license": "MIT" }, - "node_modules/triple-beam": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz", - "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==", - "license": "MIT", - "engines": { - "node": ">= 14.0.0" - } - }, "node_modules/ts-api-utils": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", @@ -23438,21 +22370,6 @@ "spdx-expression-parse": "^3.0.0" } }, - "node_modules/vinyl": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-3.0.1.tgz", - "integrity": "sha512-0QwqXteBNXgnLCdWdvPQBX6FXRHtIH3VhJPTd5Lwn28tJXc34YqSCWUmkOvtJHBmB3gGoPtrOKk3Ts8/kEZ9aA==", - "license": "MIT", - "dependencies": { - "clone": "^2.1.2", - "remove-trailing-separator": "^1.1.0", - "replace-ext": "^2.0.0", - "teex": "^1.0.1" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/vite": { "version": "8.0.16", "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.16.tgz", @@ -24055,42 +22972,6 @@ "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", "license": "MIT" }, - "node_modules/winston": { - "version": "3.19.0", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.19.0.tgz", - "integrity": "sha512-LZNJgPzfKR+/J3cHkxcpHKpKKvGfDZVPS4hfJCc4cCG0CgYzvlD6yE/S3CIL/Yt91ak327YCpiF/0MyeZHEHKA==", - "license": "MIT", - "dependencies": { - "@colors/colors": "^1.6.0", - "@dabh/diagnostics": "^2.0.8", - "async": "^3.2.3", - "is-stream": "^2.0.0", - "logform": "^2.7.0", - "one-time": "^1.0.0", - "readable-stream": "^3.4.0", - "safe-stable-stringify": "^2.3.1", - "stack-trace": "0.0.x", - "triple-beam": "^1.3.0", - "winston-transport": "^4.9.0" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/winston-transport": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.9.0.tgz", - "integrity": "sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==", - "license": "MIT", - "dependencies": { - "logform": "^2.7.0", - "readable-stream": "^3.6.2", - "triple-beam": "^1.3.0" - }, - "engines": { - "node": ">= 12.0.0" - } - }, "node_modules/word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", @@ -24180,12 +23061,6 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "license": "ISC" - }, "node_modules/write-file-atomic": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", @@ -24235,15 +23110,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/xpath": { - "version": "0.0.34", - "resolved": "https://registry.npmjs.org/xpath/-/xpath-0.0.34.tgz", - "integrity": "sha512-FxF6+rkr1rNSQrhUNYrAFJpRXNzlDoMxeXN5qI84939ylEv3qqPFKa85Oxr6tDaJKqwW6KKyo2v26TSv3k6LeA==", - "license": "MIT", - "engines": { - "node": ">=0.6.0" - } - }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -24396,7 +23262,7 @@ }, "packages/browserslist-config": { "name": "@atomicsmash/browserslist-config", - "version": "18.0.1-beta.0", + "version": "18.0.1-beta.1", "license": "GPL-3.0-or-later", "devDependencies": { "browserslist": "^4.28.2" @@ -24404,16 +23270,11 @@ }, "packages/cli": { "name": "@atomicsmash/cli", - "version": "12.0.0-beta.0", + "version": "12.0.0-beta.1", "license": "GPL-3.0-or-later", "dependencies": { - "@atomicsmash/date-php": "^2.2.0", - "@atomicsmash/smash-config": "^2.0.0-beta.0", - "@types/vinyl": "^2.0.12", + "@atomicsmash/smash-config": "^2.0.0-beta.1", "dotenv": "^17.4.2", - "glob-promise": "^6.0.7", - "svg-sprite": "^2.0.4", - "vinyl": "^3.0.1", "yargs": "^18.0.0" }, "bin": { @@ -24421,20 +23282,18 @@ "smash-cli": "dist/cli.js" }, "devDependencies": { - "@atomicsmash/blocks-helpers": "^7.2.3-beta.0", - "@types/svg-sprite": "^0.0.39", "type-fest": "^5.7.0" } }, "packages/coding-standards": { "name": "@atomicsmash/coding-standards", - "version": "18.0.1-beta.0", + "version": "18.0.1-beta.1", "license": "GPL-3.0-or-later", "devDependencies": { "@cspell/cspell-types": "^10.0.1" }, "peerDependencies": { - "@atomicsmash/browserslist-config": "^18.0.1-beta.0", + "@atomicsmash/browserslist-config": "^18.0.1-beta.1", "@eslint-community/eslint-plugin-eslint-comments": "^4.7.2", "@eslint/js": "^9.39.4", "@wordpress/stylelint-config": "^23.40.1", @@ -24772,7 +23631,7 @@ }, "packages/smash-config": { "name": "@atomicsmash/smash-config", - "version": "2.0.0-beta.0", + "version": "2.0.0-beta.1", "license": "GPL-3.0-or-later", "dependencies": { "cosmiconfig": "^9.0.2", diff --git a/packages/browserslist-config/CHANGELOG.md b/packages/browserslist-config/CHANGELOG.md index 552cde23..4aaef9e2 100644 --- a/packages/browserslist-config/CHANGELOG.md +++ b/packages/browserslist-config/CHANGELOG.md @@ -1,5 +1,7 @@ # @atomicsmash/browserslist-config +## 18.0.1-beta.1 + ## 18.0.1-beta.0 ### Patch Changes diff --git a/packages/browserslist-config/package.json b/packages/browserslist-config/package.json index 91592f6f..7e9a10ea 100644 --- a/packages/browserslist-config/package.json +++ b/packages/browserslist-config/package.json @@ -1,6 +1,6 @@ { "name": "@atomicsmash/browserslist-config", - "version": "18.0.1-beta.0", + "version": "18.0.1-beta.1", "description": "Our shared browserslist config.", "main": "index.js", "types": "index.d.ts", diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index d1a99e50..7c32a6f3 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,14 @@ # @atomicsmash/cli +## 12.0.0-beta.1 + +### Patch Changes + +- [#582](https://github.com/AtomicSmash/packages/pull/582) [`1d274b8`](https://github.com/AtomicSmash/packages/commit/1d274b8a7afabda23f927c717d67116b22436e95) Thanks [@mikeybinns](https://github.com/mikeybinns)! - Remove unused deps + +- Updated dependencies [[`1d274b8`](https://github.com/AtomicSmash/packages/commit/1d274b8a7afabda23f927c717d67116b22436e95)]: + - @atomicsmash/smash-config@2.0.0-beta.1 + ## 12.0.0-beta.0 ### Major Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index 4e905e58..f4a73b63 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@atomicsmash/cli", - "version": "12.0.0-beta.0", + "version": "12.0.0-beta.1", "description": "A collection of CLI tools by Atomic Smash.", "keywords": [], "homepage": "https://www.atomicsmash.co.uk/", @@ -40,7 +40,7 @@ "lint:types": "tsc -b" }, "dependencies": { - "@atomicsmash/smash-config": "^2.0.0-beta.0", + "@atomicsmash/smash-config": "^2.0.0-beta.1", "dotenv": "^17.4.2", "yargs": "^18.0.0" }, diff --git a/packages/coding-standards/CHANGELOG.md b/packages/coding-standards/CHANGELOG.md index a1b18cfd..8c9c3a57 100644 --- a/packages/coding-standards/CHANGELOG.md +++ b/packages/coding-standards/CHANGELOG.md @@ -1,5 +1,14 @@ # @atomicsmash/coding-standards +## 18.0.1-beta.1 + +### Patch Changes + +- [#582](https://github.com/AtomicSmash/packages/pull/582) [`1d274b8`](https://github.com/AtomicSmash/packages/commit/1d274b8a7afabda23f927c717d67116b22436e95) Thanks [@mikeybinns](https://github.com/mikeybinns)! - Fix the typescript version to 5.9 to prevent new linting errors without package updates + +- Updated dependencies []: + - @atomicsmash/browserslist-config@18.0.1-beta.1 + ## 18.0.1-beta.0 ### Patch Changes diff --git a/packages/coding-standards/package.json b/packages/coding-standards/package.json index aedcb3c2..d9a0d2ae 100644 --- a/packages/coding-standards/package.json +++ b/packages/coding-standards/package.json @@ -1,7 +1,7 @@ { "name": "@atomicsmash/coding-standards", "type": "module", - "version": "18.0.1-beta.0", + "version": "18.0.1-beta.1", "description": "A collection of coding standards configurations.", "files": [ "./dist/**/*", @@ -51,7 +51,7 @@ "@cspell/cspell-types": "^10.0.1" }, "peerDependencies": { - "@atomicsmash/browserslist-config": "^18.0.1-beta.0", + "@atomicsmash/browserslist-config": "^18.0.1-beta.1", "@eslint-community/eslint-plugin-eslint-comments": "^4.7.2", "@eslint/js": "^9.39.4", "@wordpress/stylelint-config": "^23.40.1", diff --git a/packages/smash-config/CHANGELOG.md b/packages/smash-config/CHANGELOG.md index 41565730..51f4ed0a 100644 --- a/packages/smash-config/CHANGELOG.md +++ b/packages/smash-config/CHANGELOG.md @@ -1,5 +1,11 @@ # @atomicsmash/smash-config +## 2.0.0-beta.1 + +### Patch Changes + +- [#582](https://github.com/AtomicSmash/packages/pull/582) [`1d274b8`](https://github.com/AtomicSmash/packages/commit/1d274b8a7afabda23f927c717d67116b22436e95) Thanks [@mikeybinns](https://github.com/mikeybinns)! - Add missing typescript dep + ## 2.0.0-beta.0 ### Major Changes diff --git a/packages/smash-config/package.json b/packages/smash-config/package.json index 430f591e..d9f27614 100644 --- a/packages/smash-config/package.json +++ b/packages/smash-config/package.json @@ -1,7 +1,7 @@ { "name": "@atomicsmash/smash-config", "type": "module", - "version": "2.0.0-beta.0", + "version": "2.0.0-beta.1", "description": "", "keywords": [], "homepage": "https://www.atomicsmash.co.uk/", From 60cac92297392f8a4fa02d4bca981c81c2d77f44 Mon Sep 17 00:00:00 2001 From: Mikey Binns <38146638+mikeybinns@users.noreply.github.com> Date: Wed, 17 Jun 2026 12:50:35 +0100 Subject: [PATCH 49/62] Fix missing cssnano and sass-loader deps in compiler --- .changeset/ready-birds-sneeze.md | 5 +++++ packages/compiler/package.json | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 .changeset/ready-birds-sneeze.md diff --git a/.changeset/ready-birds-sneeze.md b/.changeset/ready-birds-sneeze.md new file mode 100644 index 00000000..39270730 --- /dev/null +++ b/.changeset/ready-birds-sneeze.md @@ -0,0 +1,5 @@ +--- +"@atomicsmash/compiler": patch +--- + +Fix missing cssnano and sass-loader deps diff --git a/packages/compiler/package.json b/packages/compiler/package.json index c20b926f..274f185c 100644 --- a/packages/compiler/package.json +++ b/packages/compiler/package.json @@ -51,6 +51,7 @@ "@wordpress/dependency-extraction-webpack-plugin": "^6.48.1", "browserslist-to-esbuild": "^2.1.1", "copy-webpack-plugin": "^14.0.0", + "cssnano": "^8.0.2", "esbuild-loader": "^4.5.0", "fast-glob": "^3.3.3", "json-loader": "^0.5.7", @@ -59,6 +60,7 @@ "postcss-loader": "^8.2.1", "postcss-preset-env": "^11.3.1", "sass": "^1.101.0", + "sass-loader": "^17.0.0", "svg-spritemap-webpack-plugin": "^5.1.0", "tsconfig-paths-webpack-plugin": "^4.2.0", "tsx": "^4.22.4", @@ -73,8 +75,6 @@ "@types/webpack-assets-manifest": "^5.1.4", "@types/webpack-bundle-analyzer": "^4.7.0", "@types/yargs": "^17.0.35", - "cssnano": "^8.0.2", - "sass-loader": "^17.0.0", "tailwindcss": "^4.0.9", "vue-loader": "^17.4.2" }, From c54b2ce59765ff5d3f81246e0aa96bce5f0e7a09 Mon Sep 17 00:00:00 2001 From: Mikey Binns <38146638+mikeybinns@users.noreply.github.com> Date: Wed, 17 Jun 2026 12:51:53 +0100 Subject: [PATCH 50/62] fix package lock --- package-lock.json | 55 ++--------------------------------------------- 1 file changed, 2 insertions(+), 53 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0f717284..47a5f16d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -843,7 +843,6 @@ "version": "5.4.3", "resolved": "https://registry.npmjs.org/@colordx/core/-/core-5.4.3.tgz", "integrity": "sha512-kIxYSfA5T8HXjav55UaaH/o/cKivF6jCCGIb8eqtcsfI46wsvlSiT8jMDyrl779qLec3c2c2oHBZo4oAhvbjrQ==", - "dev": true, "license": "MIT" }, "node_modules/@cspell/cspell-types": { @@ -11529,7 +11528,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-4.0.0.tgz", "integrity": "sha512-B0hQ1OLyJuHTQSOWXvwibWqM6DCoqJdvBA6X1S/53bd4XU7LJ1yurIPlrsouol3mw1jh9pGI4ivubSpmJeIqCA==", - "dev": true, "license": "MIT", "dependencies": { "browserslist": "^4.0.0", @@ -12197,7 +12195,6 @@ "version": "8.0.2", "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-8.0.2.tgz", "integrity": "sha512-K+a76gA1v0/CsYgcsE95HGGyIuPKxpQSetwSwz4nHEM8fFXqSkzq2JzEXFL8v5+CCjxzVVVhPcTK3Oo8SaF/xA==", - "dev": true, "license": "MIT", "dependencies": { "cssnano-preset-default": "^8.0.2", @@ -12218,7 +12215,6 @@ "version": "8.0.2", "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-8.0.2.tgz", "integrity": "sha512-+jQAqIKCqMmBjZs7741XkilU93ITZ/EW8gjAkMmujdCzfDkfjrDBv2VqkSu29Fzeig/0rZ3S9IAwfPLlmXEUfQ==", - "dev": true, "license": "MIT", "dependencies": { "browserslist": "^4.28.2", @@ -12262,7 +12258,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-6.0.1.tgz", "integrity": "sha512-zk65GIxA8tCjqVk7nTm1mE+ZKxtnxAvU5JSUaBLXbAr3ZF7IOvz3fbPOnEDvZKhnS7GOIitXTS5BgehLzNoc8Q==", - "dev": true, "license": "MIT", "engines": { "node": "^22.11.0 || ^24.11.0 || >=26.0" @@ -15737,7 +15732,6 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", - "dev": true, "license": "MIT", "engines": { "node": ">=14" @@ -17213,7 +17207,6 @@ "version": "10.1.1", "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-10.1.1.tgz", "integrity": "sha512-NYEsLHh8DgG/PRH2+G9BTuUdtf9ViS+vdoQ0YA5OQdGsfN4ztiwtDWNtBl9EKeqNMFnIu8IKZ0cLxEQ5r5KVMw==", - "dev": true, "license": "MIT", "dependencies": { "postcss-selector-parser": "^7.0.0", @@ -17230,7 +17223,6 @@ "version": "7.1.4", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz", "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==", - "dev": true, "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -17431,7 +17423,6 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-8.0.1.tgz", "integrity": "sha512-qBY4ABQ6d8/mk5RRZHwMllrZMxeMey3azVY2dZUEk+RgiUC4ARdPR3/AITzNqqKTbvW/3y/MJKinDrzwqn8RDQ==", - "dev": true, "license": "MIT", "dependencies": { "@colordx/core": "^5.4.3", @@ -17450,7 +17441,6 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-8.0.1.tgz", "integrity": "sha512-IdOSIX3BzfMvCc1TAHIha2gfy17xnb5vfML8e2BIKARnFOghksESfaSAB/3CXgyLfMozZAbTRPVQF5dbuKOidw==", - "dev": true, "license": "MIT", "dependencies": { "browserslist": "^4.28.2", @@ -17818,7 +17808,6 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-8.0.1.tgz", "integrity": "sha512-FDvzm3tXlEsQBO2XQgnta5ugsAqwBrgWH+j5QgXpegEIDYA0VPnZg2aP7LtmWtC49POskeIhXesFiU/k3NyFHA==", - "dev": true, "license": "MIT", "dependencies": { "postcss-selector-parser": "^7.1.2" @@ -17834,7 +17823,6 @@ "version": "7.1.4", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz", "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==", - "dev": true, "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -17848,7 +17836,6 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-8.0.1.tgz", "integrity": "sha512-stTDXkI8YkCUfADurQhp03oq5ynsgSx6Qrw5B1swds6oTHtAeOZ9I0SHGK8cY/VpWUsIYFDWMs3IWf9jIEfFvA==", - "dev": true, "license": "MIT", "engines": { "node": "^22.11.0 || ^24.11.0 || >=26.0" @@ -17861,7 +17848,6 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-8.0.1.tgz", "integrity": "sha512-Zv4fM1Yfhk71tbt6gfiptbL6jDHi+7apSnaMeaO9n1uET+1embrXQw5m93Zp5x28UyQSuv+AVkFY193jdwZ33w==", - "dev": true, "license": "MIT", "engines": { "node": "^22.11.0 || ^24.11.0 || >=26.0" @@ -17874,7 +17860,6 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-8.0.1.tgz", "integrity": "sha512-ykt4fvrC7yYGzbxKyqBVjDCbsjF/11JgWK8enrdkobRyqqEtb/uDUCbKOGdvrK8X7BrShW8Lv5cCRNbdkNHGkQ==", - "dev": true, "license": "MIT", "engines": { "node": "^22.11.0 || ^24.11.0 || >=26.0" @@ -18230,7 +18215,6 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-8.0.1.tgz", "integrity": "sha512-huTfSYgQ13O81SFvAuOi7GWnO48vvybjj3xF+X3qUoPjzvvaLpJH5DcUqqXcwOEulZUcvaV4s0V9WtWs+IAQPA==", - "dev": true, "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0", @@ -18247,7 +18231,6 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-8.0.1.tgz", "integrity": "sha512-o3rk4UpnPNg469tklYwbR/NtvKc/f/wJiVDTnNQ/EFPw/LeiPOHUCvV1GIBQIZHGrBAYdPjToK6a+ojYprsrxQ==", - "dev": true, "license": "MIT", "dependencies": { "browserslist": "^4.28.2", @@ -18266,7 +18249,6 @@ "version": "7.1.4", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz", "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==", - "dev": true, "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -18280,7 +18262,6 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-8.0.1.tgz", "integrity": "sha512-L8Nzs/PRlBSPrLdY/7rAiU5ZN5800+2J/4LRbfyG8SJnPljmgMaXVmQiCklvRS+yObfVRNtvmk/Ean/eoYcSeg==", - "dev": true, "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" @@ -18296,7 +18277,6 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-8.0.1.tgz", "integrity": "sha512-qf+4s/hZMqTwpWN2teqf6+1yvR/SZK5HgHqXYuACeJXV7ABe7AXtBEomgxagUzcN4bSnmqBh5vnIml0dYqykYg==", - "dev": true, "license": "MIT", "dependencies": { "@colordx/core": "^5.4.3", @@ -18314,7 +18294,6 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-8.0.1.tgz", "integrity": "sha512-L0h3H59deFfFg0wQN1NVaS/8E/LfGvaMuZKGO7siwlG995zo3OshtQyRkqKdVqcBwAORBvZ1nDZrKPLRapYkQw==", - "dev": true, "license": "MIT", "dependencies": { "browserslist": "^4.28.2", @@ -18332,7 +18311,6 @@ "version": "8.0.2", "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-8.0.2.tgz", "integrity": "sha512-3icdxc/zght5UAizdwqZBDE2KOWHf1jMQCxET6iLACeNlRxfTPyXS0/COpGk8CQ2cECyaEKTRUd/i/k8Gxmz4g==", - "dev": true, "license": "MIT", "dependencies": { "browserslist": "^4.28.1", @@ -18351,7 +18329,6 @@ "version": "7.1.4", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz", "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==", - "dev": true, "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -18449,7 +18426,6 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-8.0.1.tgz", "integrity": "sha512-xzqr36F8UeIZOvOHsf3aul+RVJCADvSwuwpMLgizqKjisHZpBfztgW0XFLBfJvz9pJgaStaOXAtGb0zLqT6B0w==", - "dev": true, "license": "MIT", "engines": { "node": "^22.11.0 || ^24.11.0 || >=26.0" @@ -18462,7 +18438,6 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-8.0.1.tgz", "integrity": "sha512-ZDWOijOK1FFMlpgiQCUO9fCNKd7HJ9L7z9HWEq4iyubnUFWzdTSwm/LcrMbNW6iZ1oAtqeLYA0WA3xHszOI08g==", - "dev": true, "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" @@ -18478,7 +18453,6 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-8.0.1.tgz", "integrity": "sha512-uuivan2poSqbE48ST4do20dGaFUeXey9/H8rhHzoyVHB2I6BmkoVLZ/C9+BRjUlpaAFYVOoDY7epkiidzaYbvA==", - "dev": true, "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" @@ -18494,7 +18468,6 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-8.0.1.tgz", "integrity": "sha512-q2hq5fmKxk29K6DjKA3nZ17Q2dtjhLYFNmFweKALmooUqx6UWAHF1bBoWTu/EqlJ88josb82A/J0Atj9LJUmpQ==", - "dev": true, "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" @@ -18510,7 +18483,6 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-8.0.1.tgz", "integrity": "sha512-+Wf+kQJhm1WgSGEAuUaswE9rdpR9QbrKRVemcVHs6rhOoOTVIdAbgaicftfYA6vLM346P8onRzkEVbFN29ktKQ==", - "dev": true, "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" @@ -18526,7 +18498,6 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-8.0.1.tgz", "integrity": "sha512-W8/tvwRlm3T+yjGkg0IRTF4bvHj0vILYr/LOogCrJKHz2ey2HFRwfsAA8Bk9N4BGR7z7WmmDu/KzzwhJ6FoGPQ==", - "dev": true, "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" @@ -18542,7 +18513,6 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-8.0.1.tgz", "integrity": "sha512-Ad0YHNRBp4WHEOYUM/4wL/8MoL2fimEF8se/0q+Rt/owMzYpbxsypC1P8fN/oluwoRmRKdNVX7X2oycEobPWcQ==", - "dev": true, "license": "MIT", "dependencies": { "browserslist": "^4.28.2", @@ -18559,7 +18529,6 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-8.0.1.tgz", "integrity": "sha512-tkYcip6pCDY806xuxpJYqMW2M3/623jzGFJmz3m5Us47q8P28+gbRZxaea3Rr/CmwwLUiVlh+BTGYwQ6gvaP8A==", - "dev": true, "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" @@ -18575,7 +18544,6 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-8.0.1.tgz", "integrity": "sha512-XzORadNfSrKWDZZpgAEHPKINKx8r9r9RIfE9c70g/HThdpbmPHhDYCodHSVESDxmKeySAYw1p4liuBCf7j6LyA==", - "dev": true, "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" @@ -18613,7 +18581,6 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-8.0.1.tgz", "integrity": "sha512-OLXq5lR1yk3KWQ1FPK6aWjFFdktHE9f9kb8cnt4LmIw7w30DnzgD9+sOVYJc5HenkWCX8i1MJhhFwmqc/GYqLg==", - "dev": true, "license": "MIT", "dependencies": { "cssnano-utils": "^6.0.1", @@ -18850,7 +18817,6 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-8.0.1.tgz", "integrity": "sha512-+aQsR6+61KRoIfcFNLP3v9RM7+0iYOTtPnjl1wr6JqMW1zx6S+t2ktHRefXwacFdHIDj5+ETG0KY7K3+SGQ4Nw==", - "dev": true, "license": "MIT", "dependencies": { "browserslist": "^4.28.2", @@ -18867,7 +18833,6 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-8.0.1.tgz", "integrity": "sha512-x71slHVykiFi5RuKEXM0wgYpY2PngC78x6R8TnZhHF3lhqt+u/w3MGwYLX+2t5O87ssRiMfEAhQH+3J4QwVzCw==", - "dev": true, "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" @@ -19015,7 +18980,6 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-8.0.1.tgz", "integrity": "sha512-HpnvWii7W0/FPrsejJa6ZTi0kNtTJP/Iba7CUMPX0xPV6QpnndOp+SDP74tFtgjA2cYKYNWJPOlmLXMsvi/9yA==", - "dev": true, "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0", @@ -19032,7 +18996,6 @@ "version": "11.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=16" @@ -19042,7 +19005,6 @@ "version": "5.2.2", "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", - "dev": true, "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0", @@ -19059,7 +19021,6 @@ "version": "5.0.5", "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", - "dev": true, "license": "MIT", "dependencies": { "css-tree": "~2.2.0" @@ -19073,7 +19034,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", - "dev": true, "license": "MIT", "dependencies": { "mdn-data": "2.0.28", @@ -19088,7 +19048,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "dev": true, "license": "MIT", "dependencies": { "domelementtype": "^2.3.0", @@ -19103,7 +19062,6 @@ "version": "5.0.3", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dev": true, "license": "BSD-2-Clause", "dependencies": { "domelementtype": "^2.3.0" @@ -19119,7 +19077,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", - "dev": true, "license": "BSD-2-Clause", "dependencies": { "dom-serializer": "^2.0.0", @@ -19134,7 +19091,6 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=0.12" @@ -19147,14 +19103,12 @@ "version": "2.0.28", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", - "dev": true, "license": "CC0-1.0" }, "node_modules/postcss-svgo/node_modules/svgo": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/svgo/-/svgo-4.0.1.tgz", "integrity": "sha512-XDpWUOPC6FEibaLzjfe0ucaV0YrOjYotGJO1WpF0Zd+n6ZGEQUsSugaoLq9QkEZtAfQIxT42UChcssDVPP3+/w==", - "dev": true, "license": "MIT", "dependencies": { "commander": "^11.1.0", @@ -19180,7 +19134,6 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-8.0.1.tgz", "integrity": "sha512-+xvKI5+/Cl8yYQwxDV39Uhuc4WV951xngFvPPjiPj2NIbIfm6vbbRTXblyw0FioLkIoGlw+7qUcY1h2YhaZYgw==", - "dev": true, "license": "MIT", "dependencies": { "postcss-selector-parser": "^7.1.2" @@ -19196,7 +19149,6 @@ "version": "7.1.4", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz", "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==", - "dev": true, "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -20119,7 +20071,6 @@ "version": "17.0.0", "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-17.0.0.tgz", "integrity": "sha512-0Ybm8ohBQ9LcrycVrFQp/KQBNX5a3Wda9/smS0mE/xLffzEnwvV8nykOzrbiSWNzTE3IB/jiXx8O4QmDPG2+Gw==", - "dev": true, "license": "MIT", "engines": { "node": ">= 22.11.0" @@ -21050,7 +21001,6 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-8.0.1.tgz", "integrity": "sha512-Gv095oTD0N+BdJALNFDsxZpETHZLTxbOl5RyIO7y6VAE6sR3z0MnV3Nix7N0IATNldNTrkvSASp2KR1Yt526HA==", - "dev": true, "license": "MIT", "dependencies": { "browserslist": "^4.28.2", @@ -21067,7 +21017,6 @@ "version": "7.1.4", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz", "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==", - "dev": true, "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -23324,6 +23273,7 @@ "@wordpress/dependency-extraction-webpack-plugin": "^6.48.1", "browserslist-to-esbuild": "^2.1.1", "copy-webpack-plugin": "^14.0.0", + "cssnano": "^8.0.2", "esbuild-loader": "^4.5.0", "fast-glob": "^3.3.3", "json-loader": "^0.5.7", @@ -23332,6 +23282,7 @@ "postcss-loader": "^8.2.1", "postcss-preset-env": "^11.3.1", "sass": "^1.101.0", + "sass-loader": "^17.0.0", "svg-spritemap-webpack-plugin": "^5.1.0", "tsconfig-paths-webpack-plugin": "^4.2.0", "tsx": "^4.22.4", @@ -23349,8 +23300,6 @@ "@types/webpack-assets-manifest": "^5.1.4", "@types/webpack-bundle-analyzer": "^4.7.0", "@types/yargs": "^17.0.35", - "cssnano": "^8.0.2", - "sass-loader": "^17.0.0", "tailwindcss": "^4.0.9", "vue-loader": "^17.4.2" }, From ced87f5b32222157d8bcbf8ed14c0ee8640568cc Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 17 Jun 2026 11:56:40 +0000 Subject: [PATCH 51/62] Version Packages (beta) --- .changeset/pre.json | 1 + package-lock.json | 2 +- packages/compiler/CHANGELOG.md | 6 ++++++ packages/compiler/package.json | 2 +- 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/.changeset/pre.json b/.changeset/pre.json index 159881cf..1027c008 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -25,6 +25,7 @@ "lucky-games-pump", "olive-apples-ring", "rare-eagles-move", + "ready-birds-sneeze", "silver-glasses-shine", "tasty-coins-cry", "violet-paws-flow" diff --git a/package-lock.json b/package-lock.json index 47a5f16d..4e3e2a86 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23265,7 +23265,7 @@ }, "packages/compiler": { "name": "@atomicsmash/compiler", - "version": "5.0.0-beta.0", + "version": "5.0.0-beta.1", "license": "GPL-3.0-or-later", "dependencies": { "@atomicsmash/date-php": "^2.2.0", diff --git a/packages/compiler/CHANGELOG.md b/packages/compiler/CHANGELOG.md index 359266a9..475beba9 100644 --- a/packages/compiler/CHANGELOG.md +++ b/packages/compiler/CHANGELOG.md @@ -1,5 +1,11 @@ # @atomicsmash/compiler +## 5.0.0-beta.1 + +### Patch Changes + +- [#584](https://github.com/AtomicSmash/packages/pull/584) [`60cac92`](https://github.com/AtomicSmash/packages/commit/60cac92297392f8a4fa02d4bca981c81c2d77f44) Thanks [@mikeybinns](https://github.com/mikeybinns)! - Fix missing cssnano and sass-loader deps + ## 5.0.0-beta.0 ### Major Changes diff --git a/packages/compiler/package.json b/packages/compiler/package.json index 274f185c..b5120a61 100644 --- a/packages/compiler/package.json +++ b/packages/compiler/package.json @@ -1,7 +1,7 @@ { "name": "@atomicsmash/compiler", "type": "module", - "version": "5.0.0-beta.0", + "version": "5.0.0-beta.1", "description": "A universal compiler for all Atomic Smash projects.", "keywords": [ "cli", From 6440edbb2714d5ececec9a14d28a83c6523409a1 Mon Sep 17 00:00:00 2001 From: Mikey Binns <38146638+mikeybinns@users.noreply.github.com> Date: Wed, 17 Jun 2026 15:37:47 +0100 Subject: [PATCH 52/62] Update pull database post-run message to include media proxy --- .changeset/petite-moose-repair.md | 5 +++++ packages/cli/src/commands/pull-database.ts | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 .changeset/petite-moose-repair.md diff --git a/.changeset/petite-moose-repair.md b/.changeset/petite-moose-repair.md new file mode 100644 index 00000000..5cf717f2 --- /dev/null +++ b/.changeset/petite-moose-repair.md @@ -0,0 +1,5 @@ +--- +"@atomicsmash/cli": patch +--- + +Update pull database post-run message to include media proxy diff --git a/packages/cli/src/commands/pull-database.ts b/packages/cli/src/commands/pull-database.ts index fea49501..96e5c791 100644 --- a/packages/cli/src/commands/pull-database.ts +++ b/packages/cli/src/commands/pull-database.ts @@ -25,6 +25,9 @@ export async function handler() { port: stagingSSHPort, }, }, + cli: { + pullMedia: { monthsToPull }, + }, } = smashConfig; const stopRunningMessage = startRunningMessage( @@ -126,7 +129,8 @@ export async function handler() { )}`, ); console.log( - "If you want to download recent media you can use `npm run pull:media`, you can also change the number of months to download in your `.env` file.", + `If you're using Herd, you can now run the proxy-media command to avoid having to download images. + Otherwise, you can use pull:media for a slow download of ${monthsToPull === -1 ? "all the images" : `${monthsToPull.toString()} months worth of images`} from staging.`, ); }) .catch(async (error: unknown) => { From 933aa7e010c672a87736b5cf11167451c4345c79 Mon Sep 17 00:00:00 2001 From: Mikey Binns <38146638+mikeybinns@users.noreply.github.com> Date: Wed, 17 Jun 2026 15:38:12 +0100 Subject: [PATCH 53/62] Change toggle media proxy to add media proxy --- .changeset/sunny-doors-warn.md | 5 + ...ia-proxy.ts => add-media-proxy-to-herd.ts} | 96 ++++++++++++------- packages/cli/src/main.test.ts | 24 ++--- 3 files changed, 76 insertions(+), 49 deletions(-) create mode 100644 .changeset/sunny-doors-warn.md rename packages/cli/src/commands/{toggle-media-proxy.ts => add-media-proxy-to-herd.ts} (68%) diff --git a/.changeset/sunny-doors-warn.md b/.changeset/sunny-doors-warn.md new file mode 100644 index 00000000..e9c3806d --- /dev/null +++ b/.changeset/sunny-doors-warn.md @@ -0,0 +1,5 @@ +--- +"@atomicsmash/cli": major +--- + +Change toggle media proxy to add media proxy diff --git a/packages/cli/src/commands/toggle-media-proxy.ts b/packages/cli/src/commands/add-media-proxy-to-herd.ts similarity index 68% rename from packages/cli/src/commands/toggle-media-proxy.ts rename to packages/cli/src/commands/add-media-proxy-to-herd.ts index 1cbf664f..248a11d8 100644 --- a/packages/cli/src/commands/toggle-media-proxy.ts +++ b/packages/cli/src/commands/add-media-proxy-to-herd.ts @@ -1,13 +1,11 @@ import { exec } from "node:child_process"; -import { readFile, writeFile } from "node:fs/promises"; -import { homedir, type } from "node:os"; -import { join } from "node:path"; import { promisify } from "node:util"; import { getSmashConfig } from "@atomicsmash/smash-config"; +import { homedir, type } from "node:os"; +import { join } from "node:path"; +import { readFile, writeFile } from "node:fs/promises"; -const PROXY_MARKER = "location @uploadsproxy"; - -const execute = promisify(exec); +export const PROXY_MARKER = "location @uploadsproxy"; function buildProxyBlock(stagingURL: string, httpAuth?: string) { const authHeader = httpAuth @@ -30,7 +28,7 @@ function buildProxyBlock(stagingURL: string, httpAuth?: string) { }`; } -function addProxyBlock( +export function addProxyBlock( config: string, stagingURL: string, httpAuth?: string, @@ -62,43 +60,67 @@ function addProxyBlock( ); } -function removeProxyBlock(config: string): string { +export function removeProxyBlock(config: string): string { return config.replace( /\n\s*location \^~ \/wp-content\/uploads\/\s*\{[\s\S]*?location @uploadsproxy\s*\{[\s\S]*?\}/, "", ); } -export const command = "toggle-media-proxy"; -export const describe = - "Toggle the media proxy in the local NGINX config within Herd."; - -export async function handler() { - const smashConfig = await getSmashConfig(2); - - const { - projectName, - staging: { url: stagingURL, httpAuth: stagingHttpAuth }, - } = smashConfig; - +export function getNginxConfigPath(projectName: string) { const isMacOS = type() === "Darwin"; - const nginxConfigPath = join( + return join( homedir(), isMacOS ? "Library/Application Support/Herd/config/valet/Nginx" : ".config\\herd\\config\\nginx", `${projectName}.test`, ); +} - let config: string; +export async function getNginxConfig(projectName: string) { + const nginxConfigPath = getNginxConfigPath(projectName); try { - config = await readFile(nginxConfigPath, "utf-8"); + return await readFile(nginxConfigPath, "utf-8"); } catch { throw new Error( `Could not read NGINX config at: ${nginxConfigPath}\nMake sure the site exists in Herd.`, ); } +} + +export async function updateNginxConfig( + projectName: string, + updatedConfig: string, +) { + const nginxConfigPath = getNginxConfigPath(projectName); + + await writeFile(nginxConfigPath, updatedConfig, "utf-8"); +} + +const execute = promisify(exec); + +export const command = "add-media-proxy"; +export const describe = + "Toggle the media proxy in the local NGINX config within Herd."; + +export async function handler() { + const smashConfig = await getSmashConfig(2); + + const { + projectName, + staging: { url: stagingURL, httpAuth: stagingHttpAuth }, + } = smashConfig; + + const nginxConfig = await getNginxConfig(projectName); + + if (nginxConfig.includes(PROXY_MARKER)) { + console.log( + "Media proxy is already set up in your NGINX config. To remove please delete the site in Herd, remove your .env file and re-run setup.", + ); + return; + } const httpAuth = stagingHttpAuth ? Buffer.from( @@ -106,23 +128,23 @@ export async function handler() { ).toString("base64") : undefined; - let updatedConfig: string; + const updatedConfig = addProxyBlock(nginxConfig, stagingURL, httpAuth); - if (config.includes(PROXY_MARKER)) { - updatedConfig = removeProxyBlock(config); - console.log("Media proxy removed from NGINX config."); - } else { - updatedConfig = addProxyBlock(config, stagingURL, httpAuth); - if (httpAuth) { - console.log("Media proxy added to NGINX config (with HTTP auth)."); - } else { + await updateNginxConfig(projectName, updatedConfig) + .then(() => { + if (httpAuth) { + console.log("Media proxy added to NGINX config (with HTTP auth)."); + } else { + console.log( + "Media proxy added to NGINX config (no HTTP auth — httpAuth not set in smash.config.ts).", + ); + } + }) + .catch(() => { console.log( - "Media proxy added to NGINX config (no HTTP auth — STAGING_HTTP_AUTH_USERNAME and STAGING_HTTP_AUTH_PASSWORD not set).", + "Failed to update your NGINX config. Please try running the command again.", ); - } - } - - await writeFile(nginxConfigPath, updatedConfig, "utf-8"); + }); console.log("Restarting Herd..."); await execute("herd restart") diff --git a/packages/cli/src/main.test.ts b/packages/cli/src/main.test.ts index ab8c1170..6c2fcd6d 100644 --- a/packages/cli/src/main.test.ts +++ b/packages/cli/src/main.test.ts @@ -29,12 +29,12 @@ describe.concurrent("Base CLI helpers work as intended", () => { "stdout": "smash-cli Commands: - smash-cli pull-database Pull the database down from staging and replace local database. - smash-cli pull-media Pull the media items from the staging site. - smash-cli setup-database Create a new database and initialise the site with no content. [deprecated: You probably no longer need this with changes to the pull database script. If you do, migrate a copy of these commands into a local project script.] - smash-cli setup Run all the common setup tasks for a project. - smash-cli toggle-media-proxy Toggle the media proxy in the local NGINX config within Herd. - smash-cli completion generate completion script + smash-cli add-media-proxy Toggle the media proxy in the local NGINX config within Herd. + smash-cli pull-database Pull the database down from staging and replace local database. + smash-cli pull-media Pull the media items from the staging site. + smash-cli setup-database Create a new database and initialise the site with no content. [deprecated: You probably no longer need this with changes to the pull database script. If you do, migrate a copy of these commands into a local project script.] + smash-cli setup Run all the common setup tasks for a project. + smash-cli completion generate completion script Options: -h, --help Show help [boolean] @@ -52,12 +52,12 @@ describe.concurrent("Base CLI helpers work as intended", () => { "stdout": "smash-cli Commands: - smash-cli pull-database Pull the database down from staging and replace local database. - smash-cli pull-media Pull the media items from the staging site. - smash-cli setup-database Create a new database and initialise the site with no content. [deprecated: You probably no longer need this with changes to the pull database script. If you do, migrate a copy of these commands into a local project script.] - smash-cli setup Run all the common setup tasks for a project. - smash-cli toggle-media-proxy Toggle the media proxy in the local NGINX config within Herd. - smash-cli completion generate completion script + smash-cli add-media-proxy Toggle the media proxy in the local NGINX config within Herd. + smash-cli pull-database Pull the database down from staging and replace local database. + smash-cli pull-media Pull the media items from the staging site. + smash-cli setup-database Create a new database and initialise the site with no content. [deprecated: You probably no longer need this with changes to the pull database script. If you do, migrate a copy of these commands into a local project script.] + smash-cli setup Run all the common setup tasks for a project. + smash-cli completion generate completion script Options: -h, --help Show help [boolean] From 6b1e69879c1f9d47575a057bb24aff776d96eb40 Mon Sep 17 00:00:00 2001 From: Mikey Binns <38146638+mikeybinns@users.noreply.github.com> Date: Wed, 17 Jun 2026 15:38:34 +0100 Subject: [PATCH 54/62] fix formatting --- packages/cli/src/commands/pull-database.ts | 256 ++++++------ packages/cli/src/commands/setup-database.ts | 194 ++++----- packages/cli/src/commands/setup.ts | 432 ++++++++++---------- 3 files changed, 441 insertions(+), 441 deletions(-) diff --git a/packages/cli/src/commands/pull-database.ts b/packages/cli/src/commands/pull-database.ts index 96e5c791..f9a219ac 100644 --- a/packages/cli/src/commands/pull-database.ts +++ b/packages/cli/src/commands/pull-database.ts @@ -13,144 +13,144 @@ export async function handler() { const execute = promisify(exec); const smashConfig = await getSmashConfig(2); - const { - projectName, - staging: { - url: stagingURL, - dbPrefix: stagingDBPrefix, - webRoot: stagingWebRoot, - ssh: { - username: stagingSSHUsername, - host: stagingSSHHost, - port: stagingSSHPort, - }, + const { + projectName, + staging: { + url: stagingURL, + dbPrefix: stagingDBPrefix, + webRoot: stagingWebRoot, + ssh: { + username: stagingSSHUsername, + host: stagingSSHHost, + port: stagingSSHPort, }, - cli: { - pullMedia: { monthsToPull }, - }, - } = smashConfig; + }, + cli: { + pullMedia: { monthsToPull }, + }, + } = smashConfig; - const stopRunningMessage = startRunningMessage( - "Pulling database from staging", - ); + const stopRunningMessage = startRunningMessage( + "Pulling database from staging", + ); - performance.mark("Start"); - await (async () => { - const tmpFile = "/tmp/staging-database.sql"; - const dbPrefixFile = "/tmp/db-prefix.txt"; - const tablesToExclude = [ - // WordFence - "wfauditevents", - "wfblockediplog", - "wfblocks7", - "wfconfig", - "wfcrawlers", - "wffilemods", - "wfhits", - "wfhoover", - "wfissues", - "wfknownfilelist", - "wflivetraffichuman", - "wflocs", - "wflogins", - "wfls_2fa_secrets", - "wfls_role_counts", - "wfls_settings", - "wfnotifications", - "wfpendingissues", - "wfreversecache", - "wfsecurityevents", - "wfsnipcache", - "wfstatus", - "wftrafficrates", - "wfwaffailures", - // WP All Import/Export - "pmxi_files", - "pmxi_geocoding", - "pmxi_hash", - "pmxi_history", - "pmxi_images", - "pmxi_imports", - "pmxi_posts", - "pmxi_templates", - ].map((tableName) => stagingDBPrefix + tableName); + performance.mark("Start"); + await (async () => { + const tmpFile = "/tmp/staging-database.sql"; + const dbPrefixFile = "/tmp/db-prefix.txt"; + const tablesToExclude = [ + // WordFence + "wfauditevents", + "wfblockediplog", + "wfblocks7", + "wfconfig", + "wfcrawlers", + "wffilemods", + "wfhits", + "wfhoover", + "wfissues", + "wfknownfilelist", + "wflivetraffichuman", + "wflocs", + "wflogins", + "wfls_2fa_secrets", + "wfls_role_counts", + "wfls_settings", + "wfnotifications", + "wfpendingissues", + "wfreversecache", + "wfsecurityevents", + "wfsnipcache", + "wfstatus", + "wftrafficrates", + "wfwaffailures", + // WP All Import/Export + "pmxi_files", + "pmxi_geocoding", + "pmxi_hash", + "pmxi_history", + "pmxi_images", + "pmxi_imports", + "pmxi_posts", + "pmxi_templates", + ].map((tableName) => stagingDBPrefix + tableName); - const port = stagingSSHPort ? `-p ${stagingSSHPort.toString()}` : ``; - await execute( - `ssh -o "StrictHostKeyChecking no" ${stagingSSHUsername}@${stagingSSHHost} ${port} "${stagingWebRoot !== "" ? `cd ${stagingWebRoot} && ` : ""} wp db export - --add-drop-table --exclude_tables=${tablesToExclude.join(",")}" > ${tmpFile}`, - ) - .then(async () => { - await stopRunningMessage(); - console.log("Database downloaded."); - await execute(`wp db check`).catch(async () => { - await execute(`wp db create`); - console.log("Local database created."); + const port = stagingSSHPort ? `-p ${stagingSSHPort.toString()}` : ``; + await execute( + `ssh -o "StrictHostKeyChecking no" ${stagingSSHUsername}@${stagingSSHHost} ${port} "${stagingWebRoot !== "" ? `cd ${stagingWebRoot} && ` : ""} wp db export - --add-drop-table --exclude_tables=${tablesToExclude.join(",")}" > ${tmpFile}`, + ) + .then(async () => { + await stopRunningMessage(); + console.log("Database downloaded."); + await execute(`wp db check`).catch(async () => { + await execute(`wp db create`); + console.log("Local database created."); + }); + const stopRunningMessage2 = startRunningMessage("Importing database"); + await execute(`wp db query < ${tmpFile}`) + .then(async () => { + await stopRunningMessage2(); + console.log("Database imported."); + }) + .catch(async (error: unknown) => { + await stopRunningMessage2(); + throw error; }); - const stopRunningMessage2 = startRunningMessage("Importing database"); - await execute(`wp db query < ${tmpFile}`) - .then(async () => { - await stopRunningMessage2(); - console.log("Database imported."); - }) - .catch(async (error: unknown) => { - await stopRunningMessage2(); - throw error; - }); - }) - .then(async () => { - const stopRunningMessage3 = startRunningMessage( - "Running search and replace", - ); + }) + .then(async () => { + const stopRunningMessage3 = startRunningMessage( + "Running search and replace", + ); - await execute( - `wp search-replace --url=${projectName}.test //${stagingURL} '//${projectName}.test'`, - ) - .then(async () => { - await stopRunningMessage3(); - console.log("Search and replace completed."); - }) - .catch(async (error: unknown) => { - await stopRunningMessage3(); - throw error; - }); - }) - .then(async () => { - const stopRunningMessage4 = startRunningMessage("Cleaning up"); - await Promise.allSettled([ - deleteFile(tmpFile), - deleteFile(dbPrefixFile), - ]).then(async () => { - await stopRunningMessage4(); + await execute( + `wp search-replace --url=${projectName}.test //${stagingURL} '//${projectName}.test'`, + ) + .then(async () => { + await stopRunningMessage3(); + console.log("Search and replace completed."); + }) + .catch(async (error: unknown) => { + await stopRunningMessage3(); + throw error; }); + }) + .then(async () => { + const stopRunningMessage4 = startRunningMessage("Cleaning up"); + await Promise.allSettled([ + deleteFile(tmpFile), + deleteFile(dbPrefixFile), + ]).then(async () => { + await stopRunningMessage4(); + }); - console.log( - `Database import complete! ${convertMeasureToPrettyString( - performance.measure("everything", "Start"), - )}`, - ); - console.log( - `If you're using Herd, you can now run the proxy-media command to avoid having to download images. + console.log( + `Database import complete! ${convertMeasureToPrettyString( + performance.measure("everything", "Start"), + )}`, + ); + console.log( + `If you're using Herd, you can now run the proxy-media command to avoid having to download images. Otherwise, you can use pull:media for a slow download of ${monthsToPull === -1 ? "all the images" : `${monthsToPull.toString()} months worth of images`} from staging.`, - ); - }) - .catch(async (error: unknown) => { - await stopRunningMessage(); - console.error("Error during database pull:", error); + ); + }) + .catch(async (error: unknown) => { + await stopRunningMessage(); + console.error("Error during database pull:", error); - const cleanupResults = await Promise.allSettled([ - deleteFile(tmpFile), - deleteFile(dbPrefixFile), - ]); + const cleanupResults = await Promise.allSettled([ + deleteFile(tmpFile), + deleteFile(dbPrefixFile), + ]); - const failedCleanups = cleanupResults.filter( - (result) => result.status === "rejected", + const failedCleanups = cleanupResults.filter( + (result) => result.status === "rejected", + ); + if (failedCleanups.length > 0) { + console.warn( + `Warning: Failed to delete ${failedCleanups.length.toString()} temporary file(s). You may need to clean them up manually.`, ); - if (failedCleanups.length > 0) { - console.warn( - `Warning: Failed to delete ${failedCleanups.length.toString()} temporary file(s). You may need to clean them up manually.`, - ); - } - process.exitCode = 1; - }); - })(); + } + process.exitCode = 1; + }); + })(); } diff --git a/packages/cli/src/commands/setup-database.ts b/packages/cli/src/commands/setup-database.ts index e61c396f..879e5e88 100644 --- a/packages/cli/src/commands/setup-database.ts +++ b/packages/cli/src/commands/setup-database.ts @@ -102,108 +102,108 @@ export async function handler() { } : null; - const { projectName, themeFolderName } = smashConfig; - const stopRunningMessage = startRunningMessage("Initialising database"); - performance.mark("Start"); - await execute("wp db create") - .then(() => { + const { projectName, themeFolderName } = smashConfig; + const stopRunningMessage = startRunningMessage("Initialising database"); + performance.mark("Start"); + await execute("wp db create") + .then(() => { + return execute( + `wp core install --url=http://${process.env.CI ? "127.0.0.1" : `${projectName}.test`}/ --title=Temp --admin_user=Bot --admin_email=fake@fake.com --admin_password=password`, + ); + }) + .then(() => { + performance.mark("wordpress-tables"); + console.log( + `Wordpress database tables installed. (${convertMeasureToPrettyString( + performance.measure("wordpress-tables", "Start"), + )})`, + ); + if (newUserToAdd) { return execute( - `wp core install --url=http://${process.env.CI ? "127.0.0.1" : `${projectName}.test`}/ --title=Temp --admin_user=Bot --admin_email=fake@fake.com --admin_password=password`, + `wp user create ${newUserToAdd.user} ${newUserToAdd.email} --user_pass=${newUserToAdd.password} --role=administrator`, ); - }) - .then(() => { - performance.mark("wordpress-tables"); + } + }) + .then(async () => { + if (newUserToAdd) { + performance.mark("add-custom-user"); console.log( - `Wordpress database tables installed. (${convertMeasureToPrettyString( - performance.measure("wordpress-tables", "Start"), + `Custom user ${newUserToAdd.user} added. (${convertMeasureToPrettyString( + performance.measure("add-custom-user", "wordpress-tables"), )})`, ); - if (newUserToAdd) { - return execute( - `wp user create ${newUserToAdd.user} ${newUserToAdd.email} --user_pass=${newUserToAdd.password} --role=administrator`, - ); - } - }) - .then(async () => { - if (newUserToAdd) { - performance.mark("add-custom-user"); - console.log( - `Custom user ${newUserToAdd.user} added. (${convertMeasureToPrettyString( - performance.measure("add-custom-user", "wordpress-tables"), - )})`, - ); - } + } - const excludedPlugins = [ - "stream", - "shortpixel-image-optimiser", - "wordfence", - "wp-mail-smtp", - "modular-connector", - ]; - const { stdout: pluginList } = await execute( - "wp plugin list --format=json", - ); - const allPlugins: { name: string; status: string }[] = JSON.parse( - pluginList, - ) as { name: string; status: string }[]; - - // Filter out excluded plugins and already active plugins - const pluginsToActivate = allPlugins - .filter( - (plugin) => - !excludedPlugins.includes(plugin.name) && - plugin.status !== "active", - ) - .map((plugin) => plugin.name); - - await activatePluginsWithRetry( - execute, - pluginsToActivate, - excludedPlugins, - ); - }) - .then(() => { - performance.mark("plugins"); - console.log( - `Plugins activated. (${convertMeasureToPrettyString( - performance.measure( - "plugins", - newUserToAdd ? "add-custom-user" : "wordpress-tables", - ), - )})`, + const excludedPlugins = [ + "stream", + "shortpixel-image-optimiser", + "wordfence", + "wp-mail-smtp", + "modular-connector", + ]; + const { stdout: pluginList } = await execute( + "wp plugin list --format=json", + ); + const allPlugins: { name: string; status: string }[] = JSON.parse( + pluginList, + ) as { name: string; status: string }[]; + + // Filter out excluded plugins and already active plugins + const pluginsToActivate = allPlugins + .filter( + (plugin) => + !excludedPlugins.includes(plugin.name) && + plugin.status !== "active", + ) + .map((plugin) => plugin.name); + + await activatePluginsWithRetry( + execute, + pluginsToActivate, + excludedPlugins, + ); + }) + .then(() => { + performance.mark("plugins"); + console.log( + `Plugins activated. (${convertMeasureToPrettyString( + performance.measure( + "plugins", + newUserToAdd ? "add-custom-user" : "wordpress-tables", + ), + )})`, + ); + return execute(`wp theme activate ${themeFolderName}`); + }) + .then(async () => { + performance.mark("theme"); + console.log( + `Theme activated. (${convertMeasureToPrettyString( + performance.measure("theme", "plugins"), + )})`, + ); + await stopRunningMessage(); + console.log( + `Database set up${newUserToAdd ? ` and ${newUserToAdd.user} user added` : !process.env.CI ? ". To set up a user, run the `wp user create` command." : ""}. (${convertMeasureToPrettyString( + performance.measure("everything", "Start"), + )})`, + ); + }) + .catch(async (error: unknown) => { + await stopRunningMessage(); + if ( + typeof error === "object" && + error && + "stderr" in error && + typeof error.stderr === "string" && + error.stderr.startsWith("ERROR 1007") + ) { + console.error( + "Database already exists with the name in the wp-config. Please delete that database first with `wp db drop --yes`", ); - return execute(`wp theme activate ${themeFolderName}`); - }) - .then(async () => { - performance.mark("theme"); - console.log( - `Theme activated. (${convertMeasureToPrettyString( - performance.measure("theme", "plugins"), - )})`, - ); - await stopRunningMessage(); - console.log( - `Database set up${newUserToAdd ? ` and ${newUserToAdd.user} user added` : !process.env.CI ? ". To set up a user, run the `wp user create` command." : ""}. (${convertMeasureToPrettyString( - performance.measure("everything", "Start"), - )})`, - ); - }) - .catch(async (error: unknown) => { - await stopRunningMessage(); - if ( - typeof error === "object" && - error && - "stderr" in error && - typeof error.stderr === "string" && - error.stderr.startsWith("ERROR 1007") - ) { - console.error( - "Database already exists with the name in the wp-config. Please delete that database first with `wp db drop --yes`", - ); - } else { - console.error(error); - process.exitCode = 1; - } - }); + } else { + console.error(error); + process.exitCode = 1; + } + }); } diff --git a/packages/cli/src/commands/setup.ts b/packages/cli/src/commands/setup.ts index 8d5607de..8a612fbe 100644 --- a/packages/cli/src/commands/setup.ts +++ b/packages/cli/src/commands/setup.ts @@ -27,246 +27,246 @@ export async function handler() { const isCI = process.env.CI ?? false; const smashConfig = await getSmashConfig(); - const { projectName, composerInstallPaths, npmInstallPaths } = smashConfig; - const stopRunningMessage = startRunningMessage("Running setup"); - performance.mark("Start"); - await Promise.allSettled([ - ...(isCI || shouldInstallAndBuildOnly - ? [] - : [ - (async () => { - if (existsSync(".env.example")) { - if (existsSync(".config/environments/.env.dev")) { - throw new Error( - "Both .env.example and .config/environments/.env.dev files found. Please copy values from the .env.example to the .config/environments/.env.dev file and then delete the .env.example file.", - ); - } else { + const { projectName, composerInstallPaths, npmInstallPaths } = smashConfig; + const stopRunningMessage = startRunningMessage("Running setup"); + performance.mark("Start"); + await Promise.allSettled([ + ...(isCI || shouldInstallAndBuildOnly + ? [] + : [ + (async () => { + if (existsSync(".env.example")) { + if (existsSync(".config/environments/.env.dev")) { + throw new Error( + "Both .env.example and .config/environments/.env.dev files found. Please copy values from the .env.example to the .config/environments/.env.dev file and then delete the .env.example file.", + ); + } else { + console.log( + "Moving .env.example to .config/environments/.env.dev", + ); + if (!existsSync(".config/environments")) { + await mkdir(".config/environments", { recursive: true }); + } + await copyFile( + ".env.example", + ".config/environments/.env.dev", + constants.COPYFILE_EXCL, + ); + await deleteFile(".env.example"); + } + } + await copyFile( + ".config/environments/.env.dev", + ".env", + constants.COPYFILE_EXCL, + ) + .then(() => { + console.log( + `.config/environments/.env.dev file copied to .env. (${convertMeasureToPrettyString( + performance.measure("Copy env file", "Start"), + )})`, + ); + }) + .catch((error: unknown) => { + if ( + error instanceof Error && + "code" in error && + error.code === "EEXIST" + ) { console.log( - "Moving .env.example to .config/environments/.env.dev", - ); - if (!existsSync(".config/environments")) { - await mkdir(".config/environments", { recursive: true }); - } - await copyFile( - ".env.example", - ".config/environments/.env.dev", - constants.COPYFILE_EXCL, + `Didn't copy .env file because one already exists. (${convertMeasureToPrettyString( + performance.measure("Copy env file", "Start"), + )})`, ); - await deleteFile(".env.example"); + return; } + console.error(error); + throw new Error("Failed to copy .env file."); + }); + })(), + (async () => { + const ONE_MINUTE_IN_MS = 60000; + const timeout = setTimeout(() => { + throw new Error( + "Herd/Valet commands timed out. Please try again.", + ); + }, ONE_MINUTE_IN_MS * 1.5); + if ( + await execute(`herd --version`) + .then(() => true) + .catch(() => false) + ) { + if ( + !existsSync(resolve(process.cwd(), "herd.yaml")) && + !existsSync(resolve(process.cwd(), "herd.yml")) + ) { + throw new Error( + "Herd is present on your machine, but the project is missing a herd.yaml file. Please do the initial setup by running herd init.", + ); } - await copyFile( - ".config/environments/.env.dev", - ".env", - constants.COPYFILE_EXCL, - ) + await execute(`herd link ${projectName} --secure`) .then(() => { + performance.mark("herd link done"); console.log( - `.config/environments/.env.dev file copied to .env. (${convertMeasureToPrettyString( - performance.measure("Copy env file", "Start"), + `Herd is linked and secured. (${convertMeasureToPrettyString( + performance.measure("herd link", "Start"), )})`, ); }) .catch((error: unknown) => { - if ( - error instanceof Error && - "code" in error && - error.code === "EEXIST" - ) { - console.log( - `Didn't copy .env file because one already exists. (${convertMeasureToPrettyString( - performance.measure("Copy env file", "Start"), - )})`, - ); - return; - } console.error(error); - throw new Error("Failed to copy .env file."); + throw new Error("Failed to link the site using Herd."); }); - })(), - (async () => { - const ONE_MINUTE_IN_MS = 60000; - const timeout = setTimeout(() => { - throw new Error( - "Herd/Valet commands timed out. Please try again.", - ); - }, ONE_MINUTE_IN_MS * 1.5); - if ( - await execute(`herd --version`) - .then(() => true) - .catch(() => false) - ) { - if ( - !existsSync(resolve(process.cwd(), "herd.yaml")) && - !existsSync(resolve(process.cwd(), "herd.yml")) - ) { - throw new Error( - "Herd is present on your machine, but the project is missing a herd.yaml file. Please do the initial setup by running herd init.", + await execute(`herd isolate --site=${projectName}`) + .then(() => { + console.log( + `Herd is isolated. (${convertMeasureToPrettyString( + performance.measure("herd isolate", "herd link done"), + )})`, ); - } - await execute(`herd link ${projectName} --secure`) - .then(() => { - performance.mark("herd link done"); - console.log( - `Herd is linked and secured. (${convertMeasureToPrettyString( - performance.measure("herd link", "Start"), - )})`, - ); - }) - .catch((error: unknown) => { - console.error(error); - throw new Error("Failed to link the site using Herd."); - }); - await execute(`herd isolate --site=${projectName}`) - .then(() => { - console.log( - `Herd is isolated. (${convertMeasureToPrettyString( - performance.measure("herd isolate", "herd link done"), - )})`, - ); - clearTimeout(timeout); - }) - .catch((error: unknown) => { - console.error(error); - throw new Error("Failed to isolate the site using Herd."); - }); - } else if ( - await execute(`valet --version`) - .then(() => true) - .catch(() => false) - ) { - await execute(`valet link ${projectName} --secure --isolate`) - .then(() => { - clearTimeout(timeout); - console.log( - `Valet is linked, secured and isolated. (${convertMeasureToPrettyString( - performance.measure("herd-or-valet", "Start"), - )})`, - ); - }) - .catch((error: unknown) => { - console.error(error); - throw new Error("Failed to link the site using valet."); - }); - } else { - throw new Error( - `Neither Herd nor Valet is present on your machine, check everything is installed correctly.`, - ); - } - })(), - ]), - execute(`composer install${isCI ? " --prefer-dist" : ""}`) + clearTimeout(timeout); + }) + .catch((error: unknown) => { + console.error(error); + throw new Error("Failed to isolate the site using Herd."); + }); + } else if ( + await execute(`valet --version`) + .then(() => true) + .catch(() => false) + ) { + await execute(`valet link ${projectName} --secure --isolate`) + .then(() => { + clearTimeout(timeout); + console.log( + `Valet is linked, secured and isolated. (${convertMeasureToPrettyString( + performance.measure("herd-or-valet", "Start"), + )})`, + ); + }) + .catch((error: unknown) => { + console.error(error); + throw new Error("Failed to link the site using valet."); + }); + } else { + throw new Error( + `Neither Herd nor Valet is present on your machine, check everything is installed correctly.`, + ); + } + })(), + ]), + execute(`composer install${isCI ? " --prefer-dist" : ""}`) + .then(() => { + console.log( + `Root composer install done. (${convertMeasureToPrettyString( + performance.measure("root composer install", "Start"), + )})`, + ); + }) + .catch((error: unknown) => { + console.error(error); + throw new Error( + "Failed to run composer install in the root directory.", + ); + }), + ...composerInstallPaths.map((path, index) => { + return execute( + `cd "${resolve(process.cwd(), path)}"; composer install${isCI ? " --no-dev --classmap-authoritative" : ""}`, + ) .then(() => { console.log( - `Root composer install done. (${convertMeasureToPrettyString( - performance.measure("root composer install", "Start"), + `Additional composer install ${(index + 1).toString()} done. (${convertMeasureToPrettyString( + performance.measure( + `additional composer install ${(index + 1).toString()}`, + "Start", + ), )})`, ); }) .catch((error: unknown) => { console.error(error); throw new Error( - "Failed to run composer install in the root directory.", + `Failed to run additional composer install ${(index + 1).toString()}.`, ); - }), - ...composerInstallPaths.map((path, index) => { - return execute( - `cd "${resolve(process.cwd(), path)}"; composer install${isCI ? " --no-dev --classmap-authoritative" : ""}`, - ) - .then(() => { - console.log( - `Additional composer install ${(index + 1).toString()} done. (${convertMeasureToPrettyString( - performance.measure( - `additional composer install ${(index + 1).toString()}`, - "Start", - ), - )})`, - ); - }) - .catch((error: unknown) => { - console.error(error); - throw new Error( - `Failed to run additional composer install ${(index + 1).toString()}.`, - ); - }); - }), - (async () => { - await execute(`npm ${isCI ? "ci" : "install"}`) - .then(() => { - performance.mark("root npm install done"); - console.log( - `Root npm install done. (${convertMeasureToPrettyString( - performance.measure("root npm install", "Start"), - )})`, - ); - }) - .catch((error: unknown) => { - console.error(error); - throw new Error("Failed to run npm install in the root directory."); - }); - await execute("npm run build") - .then(() => { - console.log( - `Initial build done. (${convertMeasureToPrettyString( - performance.measure("build", "root npm install done"), - )})`, - ); - }) - .catch((error: unknown) => { - console.error(error); - throw new Error("Failed to run a build after installing."); - }); - })().catch((reason: unknown) => { - if (typeof reason === "string") { - throw new Error(reason); - } - throw reason; - }), - ...npmInstallPaths.map((path, index) => { - return execute( - `cd "${resolve(process.cwd(), path)}"; npm ${isCI ? "ci --omit=dev" : "install"}`, - ) - .then(() => { - console.log( - `Additional npm install ${(index + 1).toString()} done. (${convertMeasureToPrettyString( - performance.measure( - `additional npm install ${(index + 1).toString()}`, - "Start", - ), - )})`, - ); - }) - .catch((error: unknown) => { - console.error(error); - throw new Error( - `Failed to run additional npm install ${(index + 1).toString()}.`, - ); - }); - }), - ]) - .then(async (results) => { - await stopRunningMessage(); - if (results.some((result) => result.status === "rejected")) { - process.exitCode = 1; - console.error("Setup failed with the following errors:\n"); - console.error( - results - .filter((result) => result.status === "rejected") - .map((result) => { - return `- ${typeof result.reason === "string" ? result.reason : "Unknown reason."}`; - }) - .join(`\n`), + }); + }), + (async () => { + await execute(`npm ${isCI ? "ci" : "install"}`) + .then(() => { + performance.mark("root npm install done"); + console.log( + `Root npm install done. (${convertMeasureToPrettyString( + performance.measure("root npm install", "Start"), + )})`, + ); + }) + .catch((error: unknown) => { + console.error(error); + throw new Error("Failed to run npm install in the root directory."); + }); + await execute("npm run build") + .then(() => { + console.log( + `Initial build done. (${convertMeasureToPrettyString( + performance.measure("build", "root npm install done"), + )})`, ); - } else { + }) + .catch((error: unknown) => { + console.error(error); + throw new Error("Failed to run a build after installing."); + }); + })().catch((reason: unknown) => { + if (typeof reason === "string") { + throw new Error(reason); + } + throw reason; + }), + ...npmInstallPaths.map((path, index) => { + return execute( + `cd "${resolve(process.cwd(), path)}"; npm ${isCI ? "ci --omit=dev" : "install"}`, + ) + .then(() => { console.log( - `Setup is complete. ${convertMeasureToPrettyString( - performance.measure("everything", "Start"), - )}`, + `Additional npm install ${(index + 1).toString()} done. (${convertMeasureToPrettyString( + performance.measure( + `additional npm install ${(index + 1).toString()}`, + "Start", + ), + )})`, ); - } - }) - .catch((error: unknown) => { - console.error(error); + }) + .catch((error: unknown) => { + console.error(error); + throw new Error( + `Failed to run additional npm install ${(index + 1).toString()}.`, + ); + }); + }), + ]) + .then(async (results) => { + await stopRunningMessage(); + if (results.some((result) => result.status === "rejected")) { process.exitCode = 1; - }); + console.error("Setup failed with the following errors:\n"); + console.error( + results + .filter((result) => result.status === "rejected") + .map((result) => { + return `- ${typeof result.reason === "string" ? result.reason : "Unknown reason."}`; + }) + .join(`\n`), + ); + } else { + console.log( + `Setup is complete. ${convertMeasureToPrettyString( + performance.measure("everything", "Start"), + )}`, + ); + } + }) + .catch((error: unknown) => { + console.error(error); + process.exitCode = 1; + }); } From c32e8ae15b1fef7105661382436db4163d11b4d5 Mon Sep 17 00:00:00 2001 From: Mikey Binns <38146638+mikeybinns@users.noreply.github.com> Date: Wed, 17 Jun 2026 15:45:20 +0100 Subject: [PATCH 55/62] remove unnecessary exports and remove removeProxyBlock function --- .../src/commands/add-media-proxy-to-herd.ts | 20 +++++-------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/packages/cli/src/commands/add-media-proxy-to-herd.ts b/packages/cli/src/commands/add-media-proxy-to-herd.ts index 248a11d8..db6fe1cc 100644 --- a/packages/cli/src/commands/add-media-proxy-to-herd.ts +++ b/packages/cli/src/commands/add-media-proxy-to-herd.ts @@ -5,7 +5,7 @@ import { homedir, type } from "node:os"; import { join } from "node:path"; import { readFile, writeFile } from "node:fs/promises"; -export const PROXY_MARKER = "location @uploadsproxy"; +const PROXY_MARKER = "location @uploadsproxy"; function buildProxyBlock(stagingURL: string, httpAuth?: string) { const authHeader = httpAuth @@ -28,7 +28,7 @@ function buildProxyBlock(stagingURL: string, httpAuth?: string) { }`; } -export function addProxyBlock( +function addProxyBlock( config: string, stagingURL: string, httpAuth?: string, @@ -60,14 +60,7 @@ export function addProxyBlock( ); } -export function removeProxyBlock(config: string): string { - return config.replace( - /\n\s*location \^~ \/wp-content\/uploads\/\s*\{[\s\S]*?location @uploadsproxy\s*\{[\s\S]*?\}/, - "", - ); -} - -export function getNginxConfigPath(projectName: string) { +function getNginxConfigPath(projectName: string) { const isMacOS = type() === "Darwin"; return join( @@ -79,7 +72,7 @@ export function getNginxConfigPath(projectName: string) { ); } -export async function getNginxConfig(projectName: string) { +async function getNginxConfig(projectName: string) { const nginxConfigPath = getNginxConfigPath(projectName); try { return await readFile(nginxConfigPath, "utf-8"); @@ -90,10 +83,7 @@ export async function getNginxConfig(projectName: string) { } } -export async function updateNginxConfig( - projectName: string, - updatedConfig: string, -) { +async function updateNginxConfig(projectName: string, updatedConfig: string) { const nginxConfigPath = getNginxConfigPath(projectName); await writeFile(nginxConfigPath, updatedConfig, "utf-8"); From 56f000f549b479aca6f257bfd2f3f6635f76bc02 Mon Sep 17 00:00:00 2001 From: Mikey Binns <38146638+mikeybinns@users.noreply.github.com> Date: Wed, 17 Jun 2026 15:48:01 +0100 Subject: [PATCH 56/62] fix command name and description --- packages/cli/src/commands/add-media-proxy-to-herd.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/cli/src/commands/add-media-proxy-to-herd.ts b/packages/cli/src/commands/add-media-proxy-to-herd.ts index db6fe1cc..58776467 100644 --- a/packages/cli/src/commands/add-media-proxy-to-herd.ts +++ b/packages/cli/src/commands/add-media-proxy-to-herd.ts @@ -91,9 +91,9 @@ async function updateNginxConfig(projectName: string, updatedConfig: string) { const execute = promisify(exec); -export const command = "add-media-proxy"; +export const command = "add-media-proxy-to-herd"; export const describe = - "Toggle the media proxy in the local NGINX config within Herd."; + "Add the media proxy to the local NGINX config within Herd."; export async function handler() { const smashConfig = await getSmashConfig(2); From 29f8a089919f14c3674f37422fa06c06fa3b0fde Mon Sep 17 00:00:00 2001 From: Mikey Binns <38146638+mikeybinns@users.noreply.github.com> Date: Wed, 17 Jun 2026 15:51:01 +0100 Subject: [PATCH 57/62] fix tests --- packages/cli/src/main.test.ts | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/packages/cli/src/main.test.ts b/packages/cli/src/main.test.ts index 6c2fcd6d..209229dd 100644 --- a/packages/cli/src/main.test.ts +++ b/packages/cli/src/main.test.ts @@ -29,12 +29,12 @@ describe.concurrent("Base CLI helpers work as intended", () => { "stdout": "smash-cli Commands: - smash-cli add-media-proxy Toggle the media proxy in the local NGINX config within Herd. - smash-cli pull-database Pull the database down from staging and replace local database. - smash-cli pull-media Pull the media items from the staging site. - smash-cli setup-database Create a new database and initialise the site with no content. [deprecated: You probably no longer need this with changes to the pull database script. If you do, migrate a copy of these commands into a local project script.] - smash-cli setup Run all the common setup tasks for a project. - smash-cli completion generate completion script + smash-cli add-media-proxy-to-herd Add the media proxy to the local NGINX config within Herd. + smash-cli pull-database Pull the database down from staging and replace local database. + smash-cli pull-media Pull the media items from the staging site. + smash-cli setup-database Create a new database and initialise the site with no content. [deprecated: You probably no longer need this with changes to the pull database script. If you do, migrate a copy of these commands into a local project script.] + smash-cli setup Run all the common setup tasks for a project. + smash-cli completion generate completion script Options: -h, --help Show help [boolean] @@ -52,12 +52,12 @@ describe.concurrent("Base CLI helpers work as intended", () => { "stdout": "smash-cli Commands: - smash-cli add-media-proxy Toggle the media proxy in the local NGINX config within Herd. - smash-cli pull-database Pull the database down from staging and replace local database. - smash-cli pull-media Pull the media items from the staging site. - smash-cli setup-database Create a new database and initialise the site with no content. [deprecated: You probably no longer need this with changes to the pull database script. If you do, migrate a copy of these commands into a local project script.] - smash-cli setup Run all the common setup tasks for a project. - smash-cli completion generate completion script + smash-cli add-media-proxy-to-herd Add the media proxy to the local NGINX config within Herd. + smash-cli pull-database Pull the database down from staging and replace local database. + smash-cli pull-media Pull the media items from the staging site. + smash-cli setup-database Create a new database and initialise the site with no content. [deprecated: You probably no longer need this with changes to the pull database script. If you do, migrate a copy of these commands into a local project script.] + smash-cli setup Run all the common setup tasks for a project. + smash-cli completion generate completion script Options: -h, --help Show help [boolean] From 47d4021475bb52eaccfd5b5a6113b3373db0d569 Mon Sep 17 00:00:00 2001 From: Mikey Binns <38146638+mikeybinns@users.noreply.github.com> Date: Wed, 17 Jun 2026 15:57:56 +0100 Subject: [PATCH 58/62] update husky output and build commands --- .husky/pre-commit | 2 ++ package.json | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.husky/pre-commit b/.husky/pre-commit index c76d09f5..d88494f0 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -5,4 +5,6 @@ if [ "$branch" = "main" ]; then exit 1 fi +npm run build npm run lint +npm run test diff --git a/package.json b/package.json index f5cba9d1..6b2d59a1 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "scripts": { "prepare": "husky", "dev": "tsc -b --watch", - "build": "tsc --build", + "build": "tsc -b --clean && tsc -b", "test": "cross-env TZ=\"Europe/Istanbul\" vitest run", "test:ui": "cross-env TZ=\"Europe/Istanbul\" vitest --ui", "test:coverage": "cross-env TZ=\"Europe/Istanbul\" vitest run --coverage", From fefe4223012a811cc2b1e3a11fc33371604db0a6 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 17 Jun 2026 15:03:11 +0000 Subject: [PATCH 59/62] Version Packages (beta) --- .changeset/pre.json | 2 ++ package-lock.json | 2 +- packages/cli/CHANGELOG.md | 10 ++++++++++ packages/cli/package.json | 2 +- 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/.changeset/pre.json b/.changeset/pre.json index 1027c008..029e9559 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -24,9 +24,11 @@ "lovely-heads-press", "lucky-games-pump", "olive-apples-ring", + "petite-moose-repair", "rare-eagles-move", "ready-birds-sneeze", "silver-glasses-shine", + "sunny-doors-warn", "tasty-coins-cry", "violet-paws-flow" ] diff --git a/package-lock.json b/package-lock.json index 4e3e2a86..08bd67af 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23219,7 +23219,7 @@ }, "packages/cli": { "name": "@atomicsmash/cli", - "version": "12.0.0-beta.1", + "version": "12.0.0-beta.2", "license": "GPL-3.0-or-later", "dependencies": { "@atomicsmash/smash-config": "^2.0.0-beta.1", diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index 7c32a6f3..27c45a7e 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,15 @@ # @atomicsmash/cli +## 12.0.0-beta.2 + +### Major Changes + +- [#586](https://github.com/AtomicSmash/packages/pull/586) [`933aa7e`](https://github.com/AtomicSmash/packages/commit/933aa7e010c672a87736b5cf11167451c4345c79) Thanks [@mikeybinns](https://github.com/mikeybinns)! - Change toggle media proxy to add media proxy + +### Patch Changes + +- [#586](https://github.com/AtomicSmash/packages/pull/586) [`6440edb`](https://github.com/AtomicSmash/packages/commit/6440edbb2714d5ececec9a14d28a83c6523409a1) Thanks [@mikeybinns](https://github.com/mikeybinns)! - Update pull database post-run message to include media proxy + ## 12.0.0-beta.1 ### Patch Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index f4a73b63..2d3a7192 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@atomicsmash/cli", - "version": "12.0.0-beta.1", + "version": "12.0.0-beta.2", "description": "A collection of CLI tools by Atomic Smash.", "keywords": [], "homepage": "https://www.atomicsmash.co.uk/", From 66d35c94978560d4128086741b959c16e6436455 Mon Sep 17 00:00:00 2001 From: Mikey Binns <38146638+mikeybinns@users.noreply.github.com> Date: Wed, 17 Jun 2026 16:27:30 +0100 Subject: [PATCH 60/62] fix pull database command message indenting --- .changeset/olive-baths-share.md | 5 +++++ packages/cli/src/commands/pull-database.ts | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changeset/olive-baths-share.md diff --git a/.changeset/olive-baths-share.md b/.changeset/olive-baths-share.md new file mode 100644 index 00000000..1133a0c5 --- /dev/null +++ b/.changeset/olive-baths-share.md @@ -0,0 +1,5 @@ +--- +"@atomicsmash/cli": patch +--- + +fix pull database command message indenting diff --git a/packages/cli/src/commands/pull-database.ts b/packages/cli/src/commands/pull-database.ts index f9a219ac..2198a563 100644 --- a/packages/cli/src/commands/pull-database.ts +++ b/packages/cli/src/commands/pull-database.ts @@ -130,7 +130,7 @@ export async function handler() { ); console.log( `If you're using Herd, you can now run the proxy-media command to avoid having to download images. - Otherwise, you can use pull:media for a slow download of ${monthsToPull === -1 ? "all the images" : `${monthsToPull.toString()} months worth of images`} from staging.`, +Otherwise, you can use pull:media for a slow download of ${monthsToPull === -1 ? "all the images" : `${monthsToPull.toString()} months worth of images`} from staging.`, ); }) .catch(async (error: unknown) => { From e37873ecf0efc4d85b9a76cbff152f2d915de645 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 17 Jun 2026 15:34:41 +0000 Subject: [PATCH 61/62] Version Packages (beta) --- .changeset/pre.json | 1 + package-lock.json | 2 +- packages/cli/CHANGELOG.md | 6 ++++++ packages/cli/package.json | 2 +- 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/.changeset/pre.json b/.changeset/pre.json index 029e9559..18638b7f 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -24,6 +24,7 @@ "lovely-heads-press", "lucky-games-pump", "olive-apples-ring", + "olive-baths-share", "petite-moose-repair", "rare-eagles-move", "ready-birds-sneeze", diff --git a/package-lock.json b/package-lock.json index 08bd67af..4ed04281 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23219,7 +23219,7 @@ }, "packages/cli": { "name": "@atomicsmash/cli", - "version": "12.0.0-beta.2", + "version": "12.0.0-beta.3", "license": "GPL-3.0-or-later", "dependencies": { "@atomicsmash/smash-config": "^2.0.0-beta.1", diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index 27c45a7e..c0f5e408 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,11 @@ # @atomicsmash/cli +## 12.0.0-beta.3 + +### Patch Changes + +- [#588](https://github.com/AtomicSmash/packages/pull/588) [`66d35c9`](https://github.com/AtomicSmash/packages/commit/66d35c94978560d4128086741b959c16e6436455) Thanks [@mikeybinns](https://github.com/mikeybinns)! - fix pull database command message indenting + ## 12.0.0-beta.2 ### Major Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index 2d3a7192..b24e54bf 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@atomicsmash/cli", - "version": "12.0.0-beta.2", + "version": "12.0.0-beta.3", "description": "A collection of CLI tools by Atomic Smash.", "keywords": [], "homepage": "https://www.atomicsmash.co.uk/", From 555425c46f33f5b3286ef2cb42ce87bdb1267e84 Mon Sep 17 00:00:00 2001 From: Mikey Binns <38146638+mikeybinns@users.noreply.github.com> Date: Wed, 17 Jun 2026 17:07:35 +0100 Subject: [PATCH 62/62] exit pre-release --- .changeset/pre.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/pre.json b/.changeset/pre.json index 18638b7f..1e43194a 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -1,5 +1,5 @@ { - "mode": "pre", + "mode": "exit", "tag": "beta", "initialVersions": { "@atomicsmash/blocks-helpers": "7.2.2",