-
-
Projects
-
- {{ formatNumber(stats.projects, false) }}
-
-
-
-
Versions
-
- {{ formatNumber(stats.versions, false) }}
-
-
-
-
Files
-
- {{ formatNumber(stats.files, false) }}
-
-
-
-
Authors
-
- {{ formatNumber(stats.authors, false) }}
-
-
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+ {{ selected }} ({{ filteredProjects.length }})
+
+
+
+
+
+
+
+ {{ selected }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
diff --git a/apps/frontend/src/pages/moderation/report/[id].vue b/apps/frontend/src/pages/moderation/report/[id].vue
deleted file mode 100644
index d485333d2..000000000
--- a/apps/frontend/src/pages/moderation/report/[id].vue
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
diff --git a/apps/frontend/src/pages/moderation/reports.vue b/apps/frontend/src/pages/moderation/reports.vue
deleted file mode 100644
index af15186e1..000000000
--- a/apps/frontend/src/pages/moderation/reports.vue
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
diff --git a/apps/frontend/src/pages/moderation/reports/[id].vue b/apps/frontend/src/pages/moderation/reports/[id].vue
new file mode 100644
index 000000000..8ec2c4d67
--- /dev/null
+++ b/apps/frontend/src/pages/moderation/reports/[id].vue
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
diff --git a/apps/frontend/src/pages/moderation/reports/index.vue b/apps/frontend/src/pages/moderation/reports/index.vue
new file mode 100644
index 000000000..4d375ffeb
--- /dev/null
+++ b/apps/frontend/src/pages/moderation/reports/index.vue
@@ -0,0 +1,290 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ selected }} ({{ filteredReports.length }})
+
+
+
+
+
+
+
+ {{ selected }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/frontend/src/pages/moderation/review.vue b/apps/frontend/src/pages/moderation/review.vue
deleted file mode 100644
index 0613982d4..000000000
--- a/apps/frontend/src/pages/moderation/review.vue
+++ /dev/null
@@ -1,304 +0,0 @@
-
-
- Review projects
-
-
-
-
-
-
-
- Showing {{ projectsFiltered.length }} {{ projectTypePlural }} of {{ projects.length }} total
- projects in the queue.
-
- There are {{ projects.length }} projects in the queue.
-
-
- {{ projectsOver24Hours.length }} {{ projectTypePlural }}
- have been in the queue for over 24 hours.
-
-
-
- {{ projectsOver48Hours.length }} {{ projectTypePlural }}
- have been in the queue for over 48 hours.
-
-
-
-
-
-
-
- {{ project.name }}
- {{ formatProjectType(project.inferred_project_type) }}
-
-
-
-
- by
-
-
- {{ project.owner.user.username }}
-
-
-
- {{ project.org.name }}
-
-
-
- is requesting to be
-
-
-
-
-
-
- View project
-
-
-
-
- Submitted
- {{
- formatRelativeTime(project.queued)
- }}
-
-
Unknown queue date
-
-
-
-
-
-
diff --git a/apps/frontend/src/pages/moderation/technical-review-mockup.vue b/apps/frontend/src/pages/moderation/technical-review-mockup.vue
new file mode 100644
index 000000000..f18897fc6
--- /dev/null
+++ b/apps/frontend/src/pages/moderation/technical-review-mockup.vue
@@ -0,0 +1,386 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ selected }} ({{ filteredReports.length }})
+
+
+
+
+
+
+
+ {{ selected }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/frontend/src/pages/moderation/technical-review.vue b/apps/frontend/src/pages/moderation/technical-review.vue
new file mode 100644
index 000000000..40f28feca
--- /dev/null
+++ b/apps/frontend/src/pages/moderation/technical-review.vue
@@ -0,0 +1,3 @@
+
+ Not yet implemented.
+
diff --git a/apps/frontend/src/store/moderation.ts b/apps/frontend/src/store/moderation.ts
new file mode 100644
index 000000000..d89a68fcd
--- /dev/null
+++ b/apps/frontend/src/store/moderation.ts
@@ -0,0 +1,98 @@
+import { defineStore, createPinia } from "pinia";
+import piniaPluginPersistedstate from "pinia-plugin-persistedstate";
+
+export interface ModerationQueue {
+ items: string[];
+ total: number;
+ completed: number;
+ skipped: number;
+ lastUpdated: Date;
+}
+
+const EMPTY_QUEUE: Partial
= {
+ items: [],
+
+ // TODO: Consider some form of displaying this in the checklist, maybe at the end
+ total: 0,
+ completed: 0,
+ skipped: 0,
+};
+
+function createEmptyQueue(): ModerationQueue {
+ return { ...EMPTY_QUEUE, lastUpdated: new Date() } as ModerationQueue;
+}
+
+const pinia = createPinia();
+pinia.use(piniaPluginPersistedstate);
+
+export const useModerationStore = defineStore("moderation", {
+ state: () => ({
+ currentQueue: createEmptyQueue(),
+ }),
+
+ getters: {
+ queueLength: (state) => state.currentQueue.items.length,
+ hasItems: (state) => state.currentQueue.items.length > 0,
+ progress: (state) => {
+ if (state.currentQueue.total === 0) return 0;
+ return (state.currentQueue.completed + state.currentQueue.skipped) / state.currentQueue.total;
+ },
+ },
+
+ actions: {
+ setQueue(projectIDs: string[]) {
+ this.currentQueue = {
+ items: [...projectIDs],
+ total: projectIDs.length,
+ completed: 0,
+ skipped: 0,
+ lastUpdated: new Date(),
+ };
+ },
+
+ setSingleProject(projectId: string) {
+ this.currentQueue = {
+ items: [projectId],
+ total: 1,
+ completed: 0,
+ skipped: 0,
+ lastUpdated: new Date(),
+ };
+ },
+
+ completeCurrentProject(projectId: string, status: "completed" | "skipped" = "completed") {
+ if (status === "completed") {
+ this.currentQueue.completed++;
+ } else {
+ this.currentQueue.skipped++;
+ }
+
+ this.currentQueue.items = this.currentQueue.items.filter((id: string) => id !== projectId);
+ this.currentQueue.lastUpdated = new Date();
+
+ return this.currentQueue.items.length > 0;
+ },
+
+ getCurrentProjectId(): string | null {
+ return this.currentQueue.items[0] || null;
+ },
+
+ resetQueue() {
+ this.currentQueue = createEmptyQueue();
+ },
+ },
+
+ persist: {
+ key: "moderation-store",
+ serializer: {
+ serialize: JSON.stringify,
+ deserialize: (value: string) => {
+ const parsed = JSON.parse(value);
+ if (parsed.currentQueue?.lastUpdated) {
+ parsed.currentQueue.lastUpdated = new Date(parsed.currentQueue.lastUpdated);
+ }
+ return parsed;
+ },
+ },
+ },
+});
diff --git a/apps/labrinth/.sqlx/query-32fa1030a3a69f6bc36c6ec916ba8d0724dfd683576629ab05f5df321d5f9a55.json b/apps/labrinth/.sqlx/query-010c69fa61e1329156020b251e75d46bc09344c1846b3098accce5801e571e5e.json
similarity index 71%
rename from apps/labrinth/.sqlx/query-32fa1030a3a69f6bc36c6ec916ba8d0724dfd683576629ab05f5df321d5f9a55.json
rename to apps/labrinth/.sqlx/query-010c69fa61e1329156020b251e75d46bc09344c1846b3098accce5801e571e5e.json
index 8d844ddf9..082a6e4e2 100644
--- a/apps/labrinth/.sqlx/query-32fa1030a3a69f6bc36c6ec916ba8d0724dfd683576629ab05f5df321d5f9a55.json
+++ b/apps/labrinth/.sqlx/query-010c69fa61e1329156020b251e75d46bc09344c1846b3098accce5801e571e5e.json
@@ -1,6 +1,6 @@
{
"db_name": "PostgreSQL",
- "query": "\n INSERT INTO users (\n id, username, email,\n avatar_url, raw_avatar_url, bio, created,\n github_id, discord_id, gitlab_id, google_id, steam_id, microsoft_id,\n email_verified, password, paypal_id, paypal_country, paypal_email,\n venmo_handle, stripe_customer_id, allow_friend_requests\n )\n VALUES (\n $1, $2, $3, $4, $5,\n $6, $7,\n $8, $9, $10, $11, $12, $13,\n $14, $15, $16, $17, $18, $19, $20, $21\n )\n ",
+ "query": "\n INSERT INTO users (\n id, username, email,\n avatar_url, raw_avatar_url, bio, created,\n github_id, discord_id, gitlab_id, google_id, steam_id, microsoft_id,\n email_verified, password, paypal_id, paypal_country, paypal_email,\n venmo_handle, stripe_customer_id, allow_friend_requests, is_subscribed_to_newsletter\n )\n VALUES (\n $1, $2, $3, $4, $5,\n $6, $7,\n $8, $9, $10, $11, $12, $13,\n $14, $15, $16, $17, $18, $19, $20, $21, $22\n )\n ",
"describe": {
"columns": [],
"parameters": {
@@ -25,10 +25,11 @@
"Text",
"Text",
"Text",
+ "Bool",
"Bool"
]
},
"nullable": []
},
- "hash": "32fa1030a3a69f6bc36c6ec916ba8d0724dfd683576629ab05f5df321d5f9a55"
+ "hash": "010c69fa61e1329156020b251e75d46bc09344c1846b3098accce5801e571e5e"
}
diff --git a/apps/labrinth/.sqlx/query-b5857aafa522ca62294bc296fb6cddd862eca2889203e43b4962df07ba1221a0.json b/apps/labrinth/.sqlx/query-5fcdeeeb820ada62e10feb0beefa29b0535241bbb6d74143925e16cf8cd720c4.json
similarity index 88%
rename from apps/labrinth/.sqlx/query-b5857aafa522ca62294bc296fb6cddd862eca2889203e43b4962df07ba1221a0.json
rename to apps/labrinth/.sqlx/query-5fcdeeeb820ada62e10feb0beefa29b0535241bbb6d74143925e16cf8cd720c4.json
index 988ec11ad..0c33202b9 100644
--- a/apps/labrinth/.sqlx/query-b5857aafa522ca62294bc296fb6cddd862eca2889203e43b4962df07ba1221a0.json
+++ b/apps/labrinth/.sqlx/query-5fcdeeeb820ada62e10feb0beefa29b0535241bbb6d74143925e16cf8cd720c4.json
@@ -1,6 +1,6 @@
{
"db_name": "PostgreSQL",
- "query": "\n SELECT id, email,\n avatar_url, raw_avatar_url, username, bio,\n created, role, badges,\n github_id, discord_id, gitlab_id, google_id, steam_id, microsoft_id,\n email_verified, password, totp_secret, paypal_id, paypal_country, paypal_email,\n venmo_handle, stripe_customer_id, allow_friend_requests\n FROM users\n WHERE id = ANY($1) OR LOWER(username) = ANY($2)\n ",
+ "query": "\n SELECT id, email,\n avatar_url, raw_avatar_url, username, bio,\n created, role, badges,\n github_id, discord_id, gitlab_id, google_id, steam_id, microsoft_id,\n email_verified, password, totp_secret, paypal_id, paypal_country, paypal_email,\n venmo_handle, stripe_customer_id, allow_friend_requests, is_subscribed_to_newsletter\n FROM users\n WHERE id = ANY($1) OR LOWER(username) = ANY($2)\n ",
"describe": {
"columns": [
{
@@ -122,6 +122,11 @@
"ordinal": 23,
"name": "allow_friend_requests",
"type_info": "Bool"
+ },
+ {
+ "ordinal": 24,
+ "name": "is_subscribed_to_newsletter",
+ "type_info": "Bool"
}
],
"parameters": {
@@ -154,8 +159,9 @@
true,
true,
true,
+ false,
false
]
},
- "hash": "b5857aafa522ca62294bc296fb6cddd862eca2889203e43b4962df07ba1221a0"
+ "hash": "5fcdeeeb820ada62e10feb0beefa29b0535241bbb6d74143925e16cf8cd720c4"
}
diff --git a/apps/labrinth/.sqlx/query-c960b09ddc19530383f143c349c7e34bf813ddbfb88bf31b9863078bc48c8623.json b/apps/labrinth/.sqlx/query-c960b09ddc19530383f143c349c7e34bf813ddbfb88bf31b9863078bc48c8623.json
new file mode 100644
index 000000000..975dc151a
--- /dev/null
+++ b/apps/labrinth/.sqlx/query-c960b09ddc19530383f143c349c7e34bf813ddbfb88bf31b9863078bc48c8623.json
@@ -0,0 +1,14 @@
+{
+ "db_name": "PostgreSQL",
+ "query": "\n UPDATE users\n SET is_subscribed_to_newsletter = TRUE\n WHERE id = $1\n ",
+ "describe": {
+ "columns": [],
+ "parameters": {
+ "Left": [
+ "Int8"
+ ]
+ },
+ "nullable": []
+ },
+ "hash": "c960b09ddc19530383f143c349c7e34bf813ddbfb88bf31b9863078bc48c8623"
+}
diff --git a/apps/labrinth/migrations/20250727184120_user-newsletter-subscription-column.sql b/apps/labrinth/migrations/20250727184120_user-newsletter-subscription-column.sql
new file mode 100644
index 000000000..5a475b68b
--- /dev/null
+++ b/apps/labrinth/migrations/20250727184120_user-newsletter-subscription-column.sql
@@ -0,0 +1 @@
+ALTER TABLE users ADD COLUMN is_subscribed_to_newsletter BOOLEAN NOT NULL DEFAULT FALSE;
diff --git a/apps/labrinth/src/auth/validate.rs b/apps/labrinth/src/auth/validate.rs
index 806eaa126..325adc3d5 100644
--- a/apps/labrinth/src/auth/validate.rs
+++ b/apps/labrinth/src/auth/validate.rs
@@ -1,6 +1,6 @@
use super::AuthProvider;
use crate::auth::AuthenticationError;
-use crate::database::models::user_item;
+use crate::database::models::{DBUser, user_item};
use crate::database::redis::RedisPool;
use crate::models::pats::Scopes;
use crate::models::users::User;
@@ -44,17 +44,16 @@ where
Ok(Some((scopes, User::from_full(db_user))))
}
-pub async fn get_user_from_headers<'a, E>(
+pub async fn get_full_user_from_headers<'a, E>(
req: &HttpRequest,
executor: E,
redis: &RedisPool,
session_queue: &AuthQueue,
required_scopes: Scopes,
-) -> Result<(Scopes, User), AuthenticationError>
+) -> Result<(Scopes, DBUser), AuthenticationError>
where
E: sqlx::Executor<'a, Database = sqlx::Postgres> + Copy,
{
- // Fetch DB user record and minos user from headers
let (scopes, db_user) = get_user_record_from_bearer_token(
req,
None,
@@ -65,13 +64,33 @@ where
.await?
.ok_or_else(|| AuthenticationError::InvalidCredentials)?;
- let user = User::from_full(db_user);
-
if !scopes.contains(required_scopes) {
return Err(AuthenticationError::InvalidCredentials);
}
- Ok((scopes, user))
+ Ok((scopes, db_user))
+}
+
+pub async fn get_user_from_headers<'a, E>(
+ req: &HttpRequest,
+ executor: E,
+ redis: &RedisPool,
+ session_queue: &AuthQueue,
+ required_scopes: Scopes,
+) -> Result<(Scopes, User), AuthenticationError>
+where
+ E: sqlx::Executor<'a, Database = sqlx::Postgres> + Copy,
+{
+ let (scopes, db_user) = get_full_user_from_headers(
+ req,
+ executor,
+ redis,
+ session_queue,
+ required_scopes,
+ )
+ .await?;
+
+ Ok((scopes, User::from_full(db_user)))
}
pub async fn get_user_record_from_bearer_token<'a, 'b, E>(
diff --git a/apps/labrinth/src/database/models/user_item.rs b/apps/labrinth/src/database/models/user_item.rs
index 6a2e4aba6..4d447702d 100644
--- a/apps/labrinth/src/database/models/user_item.rs
+++ b/apps/labrinth/src/database/models/user_item.rs
@@ -49,6 +49,8 @@ pub struct DBUser {
pub badges: Badges,
pub allow_friend_requests: bool,
+
+ pub is_subscribed_to_newsletter: bool,
}
impl DBUser {
@@ -63,13 +65,13 @@ impl DBUser {
avatar_url, raw_avatar_url, bio, created,
github_id, discord_id, gitlab_id, google_id, steam_id, microsoft_id,
email_verified, password, paypal_id, paypal_country, paypal_email,
- venmo_handle, stripe_customer_id, allow_friend_requests
+ venmo_handle, stripe_customer_id, allow_friend_requests, is_subscribed_to_newsletter
)
VALUES (
$1, $2, $3, $4, $5,
$6, $7,
$8, $9, $10, $11, $12, $13,
- $14, $15, $16, $17, $18, $19, $20, $21
+ $14, $15, $16, $17, $18, $19, $20, $21, $22
)
",
self.id as DBUserId,
@@ -93,6 +95,7 @@ impl DBUser {
self.venmo_handle,
self.stripe_customer_id,
self.allow_friend_requests,
+ self.is_subscribed_to_newsletter,
)
.execute(&mut **transaction)
.await?;
@@ -178,7 +181,7 @@ impl DBUser {
created, role, badges,
github_id, discord_id, gitlab_id, google_id, steam_id, microsoft_id,
email_verified, password, totp_secret, paypal_id, paypal_country, paypal_email,
- venmo_handle, stripe_customer_id, allow_friend_requests
+ venmo_handle, stripe_customer_id, allow_friend_requests, is_subscribed_to_newsletter
FROM users
WHERE id = ANY($1) OR LOWER(username) = ANY($2)
",
@@ -212,6 +215,7 @@ impl DBUser {
stripe_customer_id: u.stripe_customer_id,
totp_secret: u.totp_secret,
allow_friend_requests: u.allow_friend_requests,
+ is_subscribed_to_newsletter: u.is_subscribed_to_newsletter,
};
acc.insert(u.id, (Some(u.username), user));
diff --git a/apps/labrinth/src/routes/internal/flows.rs b/apps/labrinth/src/routes/internal/flows.rs
index 281f85be0..cba2de5d9 100644
--- a/apps/labrinth/src/routes/internal/flows.rs
+++ b/apps/labrinth/src/routes/internal/flows.rs
@@ -1,5 +1,7 @@
use crate::auth::email::send_email;
-use crate::auth::validate::get_user_record_from_bearer_token;
+use crate::auth::validate::{
+ get_full_user_from_headers, get_user_record_from_bearer_token,
+};
use crate::auth::{AuthProvider, AuthenticationError, get_user_from_headers};
use crate::database::models::DBUser;
use crate::database::models::flow_item::DBFlow;
@@ -232,6 +234,7 @@ impl TempUser {
role: Role::Developer.to_string(),
badges: Badges::default(),
allow_friend_requests: true,
+ is_subscribed_to_newsletter: false,
}
.insert(transaction)
.await?;
@@ -1291,37 +1294,6 @@ pub async fn delete_auth_provider(
Ok(HttpResponse::NoContent().finish())
}
-pub async fn sign_up_sendy(email: &str) -> Result<(), AuthenticationError> {
- let url = dotenvy::var("SENDY_URL")?;
- let id = dotenvy::var("SENDY_LIST_ID")?;
- let api_key = dotenvy::var("SENDY_API_KEY")?;
- let site_url = dotenvy::var("SITE_URL")?;
-
- if url.is_empty() || url == "none" {
- tracing::info!("Sendy URL not set, skipping signup");
- return Ok(());
- }
-
- let mut form = HashMap::new();
-
- form.insert("api_key", &*api_key);
- form.insert("email", email);
- form.insert("list", &*id);
- form.insert("referrer", &*site_url);
-
- let client = reqwest::Client::new();
- client
- .post(format!("{url}/subscribe"))
- .form(&form)
- .send()
- .await?
- .error_for_status()?
- .text()
- .await?;
-
- Ok(())
-}
-
pub async fn check_sendy_subscription(
email: &str,
) -> Result {
@@ -1456,6 +1428,9 @@ pub async fn create_account_with_password(
role: Role::Developer.to_string(),
badges: Badges::default(),
allow_friend_requests: true,
+ is_subscribed_to_newsletter: new_account
+ .sign_up_newsletter
+ .unwrap_or(false),
}
.insert(&mut transaction)
.await?;
@@ -1476,10 +1451,6 @@ pub async fn create_account_with_password(
&format!("Welcome to Modrinth, {}!", new_account.username),
)?;
- if new_account.sign_up_newsletter.unwrap_or(false) {
- sign_up_sendy(&new_account.email).await?;
- }
-
transaction.commit().await?;
Ok(HttpResponse::Ok().json(res))
@@ -2420,15 +2391,24 @@ pub async fn subscribe_newsletter(
.await?
.1;
- if let Some(email) = user.email {
- sign_up_sendy(&email).await?;
+ sqlx::query!(
+ "
+ UPDATE users
+ SET is_subscribed_to_newsletter = TRUE
+ WHERE id = $1
+ ",
+ user.id.0 as i64,
+ )
+ .execute(&**pool)
+ .await?;
- Ok(HttpResponse::NoContent().finish())
- } else {
- Err(ApiError::InvalidInput(
- "User does not have an email.".to_string(),
- ))
- }
+ crate::database::models::DBUser::clear_caches(
+ &[(user.id.into(), None)],
+ &redis,
+ )
+ .await?;
+
+ Ok(HttpResponse::NoContent().finish())
}
#[get("email/subscribe")]
@@ -2438,7 +2418,7 @@ pub async fn get_newsletter_subscription_status(
redis: Data,
session_queue: Data,
) -> Result {
- let user = get_user_from_headers(
+ let user = get_full_user_from_headers(
&req,
&**pool,
&redis,
@@ -2448,16 +2428,16 @@ pub async fn get_newsletter_subscription_status(
.await?
.1;
- if let Some(email) = user.email {
- let is_subscribed = check_sendy_subscription(&email).await?;
- Ok(HttpResponse::Ok().json(serde_json::json!({
- "subscribed": is_subscribed
- })))
- } else {
- Ok(HttpResponse::Ok().json(serde_json::json!({
- "subscribed": false
- })))
- }
+ let is_subscribed = user.is_subscribed_to_newsletter
+ || if let Some(email) = user.email {
+ check_sendy_subscription(&email).await?
+ } else {
+ false
+ };
+
+ Ok(HttpResponse::Ok().json(serde_json::json!({
+ "subscribed": is_subscribed
+ })))
}
fn send_email_verify(
diff --git a/packages/assets/generated-icons.ts b/packages/assets/generated-icons.ts
index 249a53b60..f01044155 100644
--- a/packages/assets/generated-icons.ts
+++ b/packages/assets/generated-icons.ts
@@ -38,6 +38,7 @@ import _CodeIcon from './icons/code.svg?component'
import _CoffeeIcon from './icons/coffee.svg?component'
import _CogIcon from './icons/cog.svg?component'
import _CoinsIcon from './icons/coins.svg?component'
+import _CollapseIcon from './icons/collapse.svg?component'
import _CollectionIcon from './icons/collection.svg?component'
import _CompassIcon from './icons/compass.svg?component'
import _ContractIcon from './icons/contract.svg?component'
@@ -52,6 +53,7 @@ import _DatabaseIcon from './icons/database.svg?component'
import _DownloadIcon from './icons/download.svg?component'
import _DropdownIcon from './icons/dropdown.svg?component'
import _EditIcon from './icons/edit.svg?component'
+import _EllipsisVerticalIcon from './icons/ellipsis-vertical.svg?component'
import _ExpandIcon from './icons/expand.svg?component'
import _ExternalIcon from './icons/external.svg?component'
import _EyeOffIcon from './icons/eye-off.svg?component'
@@ -229,6 +231,7 @@ export const CodeIcon = _CodeIcon
export const CoffeeIcon = _CoffeeIcon
export const CogIcon = _CogIcon
export const CoinsIcon = _CoinsIcon
+export const CollapseIcon = _CollapseIcon
export const CollectionIcon = _CollectionIcon
export const CompassIcon = _CompassIcon
export const ContractIcon = _ContractIcon
@@ -243,6 +246,7 @@ export const DatabaseIcon = _DatabaseIcon
export const DownloadIcon = _DownloadIcon
export const DropdownIcon = _DropdownIcon
export const EditIcon = _EditIcon
+export const EllipsisVerticalIcon = _EllipsisVerticalIcon
export const ExpandIcon = _ExpandIcon
export const ExternalIcon = _ExternalIcon
export const EyeOffIcon = _EyeOffIcon
diff --git a/packages/assets/icons/collapse.svg b/packages/assets/icons/collapse.svg
new file mode 100644
index 000000000..49723c697
--- /dev/null
+++ b/packages/assets/icons/collapse.svg
@@ -0,0 +1,8 @@
+
\ No newline at end of file
diff --git a/packages/assets/icons/ellipsis-vertical.svg b/packages/assets/icons/ellipsis-vertical.svg
new file mode 100644
index 000000000..ebe30683a
--- /dev/null
+++ b/packages/assets/icons/ellipsis-vertical.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/moderation/data/messages/reports/antivirus.md b/packages/moderation/data/messages/reports/antivirus.md
new file mode 100644
index 000000000..338dd8d6f
--- /dev/null
+++ b/packages/moderation/data/messages/reports/antivirus.md
@@ -0,0 +1,3 @@
+Unfortunately, anti-virus software has consistently been found to be an unreliable tool for Minecraft mods.
+
+If you have evidence of malicious activity concerning a specific mod, or of malicious code decompiled from a mod on Modrinth, please create a new Report and provide the required details, thank you.
diff --git a/packages/moderation/data/messages/reports/confirmed-malware.md b/packages/moderation/data/messages/reports/confirmed-malware.md
new file mode 100644
index 000000000..5f7cc2a51
--- /dev/null
+++ b/packages/moderation/data/messages/reports/confirmed-malware.md
@@ -0,0 +1,3 @@
+Thank you for your report.
+
+This project was confirmed to be malicious after a detailed investigation. Luckily, thanks to your report and quick action from our team, we have reason to believe this did not impact a significant amount of users and we have taken precautions to prevent this malicious code from appearing on Modrinth again.
diff --git a/packages/moderation/data/messages/reports/gameplay-issue.md b/packages/moderation/data/messages/reports/gameplay-issue.md
new file mode 100644
index 000000000..ee0c9dd99
--- /dev/null
+++ b/packages/moderation/data/messages/reports/gameplay-issue.md
@@ -0,0 +1,6 @@
+Unfortunately, the Moderation team is unable to assist with your issue.
+
+The reporting system is exclusively for reporting issues to Moderation staff; only violations of [Modrinth's Content Rules](https://modrinth.com/legal/rules) should be reported. The members of the project you're reporting do not see that you have submitted a report.
+
+If you are having issues with crashes, please check out [our FAQ section](https://support.modrinth.com/aen/articles/8792916) to learn how to diagnose and fix crashes.
+For other project-specific issues consider asking the project's own community, check for a Discord or Issues link on the project page.
diff --git a/packages/moderation/data/messages/reports/platform-issue.md b/packages/moderation/data/messages/reports/platform-issue.md
new file mode 100644
index 000000000..a6bcd943d
--- /dev/null
+++ b/packages/moderation/data/messages/reports/platform-issue.md
@@ -0,0 +1,5 @@
+Unfortunately, the Moderation team is unable to assist with your issue.
+
+The reporting system is exclusively for reporting issues to Moderation staff; only violations of [Modrinth's Content Rules](https://modrinth.com/legal/rules) should be reported.
+
+Please reach out to the [Modrinth Help Center](https://support.modrinth.com/) so we can better assist you and bring up your concerns with our platform tean,
diff --git a/packages/moderation/data/messages/reports/spam.md b/packages/moderation/data/messages/reports/spam.md
new file mode 100644
index 000000000..876dda2bd
--- /dev/null
+++ b/packages/moderation/data/messages/reports/spam.md
@@ -0,0 +1,3 @@
+The reporting system is exclusively for reporting issues to Modrinth staff; only violations of [Modrinth's Content Rules](https://modrinth.com/legal/rules) should be reported. The members of the project you're reporting do not see that you have submitted a report.
+
+Please ensure you are using the Reports system appropriately, repeated misuse may result in account suspension.
diff --git a/packages/moderation/data/messages/reports/stale.md b/packages/moderation/data/messages/reports/stale.md
new file mode 100644
index 000000000..cc21f5f18
--- /dev/null
+++ b/packages/moderation/data/messages/reports/stale.md
@@ -0,0 +1,3 @@
+We haven't received a response in some time, so we're closing this report thread.
+
+If you have additional information to share we ask that you create a new report.
diff --git a/packages/moderation/data/report-quick-replies.ts b/packages/moderation/data/report-quick-replies.ts
new file mode 100644
index 000000000..db1fd232a
--- /dev/null
+++ b/packages/moderation/data/report-quick-replies.ts
@@ -0,0 +1,34 @@
+import type { ReportQuickReply } from '../types/reports'
+
+export default [
+ {
+ label: 'Antivirus',
+ message: async () => (await import('./messages/reports/antivirus.md?raw')).default,
+ private: false,
+ },
+ {
+ label: 'Spam',
+ message: async () => (await import('./messages/reports/spam.md?raw')).default,
+ private: false,
+ },
+ {
+ label: 'Gameplay Issue',
+ message: async () => (await import('./messages/reports/gameplay-issue.md?raw')).default,
+ private: false,
+ },
+ {
+ label: 'Platform Issue',
+ message: async () => (await import('./messages/reports/platform-issue.md?raw')).default,
+ private: false,
+ },
+ {
+ label: 'Stale',
+ message: async () => (await import('./messages/reports/stale.md?raw')).default,
+ private: false,
+ },
+ {
+ label: 'Confirmed Malware',
+ message: async () => (await import('./messages/reports/confirmed-malware.md?raw')).default,
+ private: false,
+ },
+] as ReadonlyArray
diff --git a/packages/moderation/data/stages/versions.ts b/packages/moderation/data/stages/versions.ts
index 9976fa968..7f5ca33a0 100644
--- a/packages/moderation/data/stages/versions.ts
+++ b/packages/moderation/data/stages/versions.ts
@@ -68,7 +68,7 @@ const versions: Stage = {
message: async () => '',
enablesActions: [
{
- id: 'versions_incorrect_project_type_options',
+ id: 'versions_alternate_versions_options',
type: 'dropdown',
label: 'How are the alternate versions distributed?',
options: [
diff --git a/packages/moderation/index.ts b/packages/moderation/index.ts
index 03b78e71c..516e79f31 100644
--- a/packages/moderation/index.ts
+++ b/packages/moderation/index.ts
@@ -3,10 +3,12 @@ export * from './types/messages'
export * from './types/stage'
export * from './types/keybinds'
export * from './types/nags'
+export * from './types/reports'
export * from './utils'
-export { finalPermissionMessages } from './data/modpack-permissions-stage'
export * from './data/nags/index'
+export { default as nags } from './data/nags'
+export { finalPermissionMessages } from './data/modpack-permissions-stage'
export { default as checklist } from './data/checklist'
export { default as keybinds } from './data/keybinds'
-export { default as nags } from './data/nags'
+export { default as reportQuickReplies } from './data/report-quick-replies'
diff --git a/packages/moderation/types/reports.ts b/packages/moderation/types/reports.ts
new file mode 100644
index 000000000..c05dc348b
--- /dev/null
+++ b/packages/moderation/types/reports.ts
@@ -0,0 +1,28 @@
+import type { Project, Report, Thread, User, Version, DelphiReport } from '@modrinth/utils'
+
+export interface OwnershipTarget {
+ name: string
+ slug: string
+ avatar_url?: string
+ type: 'user' | 'organization'
+}
+
+export interface ExtendedReport extends Report {
+ thread: Thread
+ reporter_user: User
+ project?: Project
+ user?: User
+ version?: Version
+ target?: OwnershipTarget
+}
+
+export interface ExtendedDelphiReport extends DelphiReport {
+ target?: OwnershipTarget
+}
+
+export interface ReportQuickReply {
+ label: string
+ message: string | ((report: ExtendedReport) => Promise | string)
+ shouldShow?: (report: ExtendedReport) => boolean
+ private?: boolean
+}
diff --git a/packages/ui/src/components/base/CollapsibleRegion.vue b/packages/ui/src/components/base/CollapsibleRegion.vue
new file mode 100644
index 000000000..14d06c839
--- /dev/null
+++ b/packages/ui/src/components/base/CollapsibleRegion.vue
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/ui/src/components/base/DropdownSelect.vue b/packages/ui/src/components/base/DropdownSelect.vue
index c87ef340b..9843eb152 100644
--- a/packages/ui/src/components/base/DropdownSelect.vue
+++ b/packages/ui/src/components/base/DropdownSelect.vue
@@ -163,7 +163,6 @@ const onFocus = () => {
}
const onBlur = (event) => {
- console.log(event)
if (!isChildOfDropdown(event.relatedTarget)) {
dropdownVisible.value = false
}
diff --git a/packages/ui/src/components/index.ts b/packages/ui/src/components/index.ts
index e1217fc59..85b7f2da0 100644
--- a/packages/ui/src/components/index.ts
+++ b/packages/ui/src/components/index.ts
@@ -10,6 +10,7 @@ export { default as Card } from './base/Card.vue'
export { default as Checkbox } from './base/Checkbox.vue'
export { default as Chips } from './base/Chips.vue'
export { default as Collapsible } from './base/Collapsible.vue'
+export { default as CollapsibleRegion } from './base/CollapsibleRegion.vue'
export { default as ContentPageHeader } from './base/ContentPageHeader.vue'
export { default as CopyCode } from './base/CopyCode.vue'
export { default as DoubleIcon } from './base/DoubleIcon.vue'
diff --git a/packages/utils/types.ts b/packages/utils/types.ts
index 71a57e347..81e619ba5 100644
--- a/packages/utils/types.ts
+++ b/packages/utils/types.ts
@@ -18,7 +18,7 @@ export type DonationPlatform =
| { short: 'ko-fi'; name: 'Ko-fi' }
| { short: 'other'; name: 'Other' }
-export type ProjectType = 'mod' | 'modpack' | 'resourcepack' | 'shader' | 'project'
+export type ProjectType = 'mod' | 'modpack' | 'resourcepack' | 'shader' | 'plugin' | 'datapack' | 'project'
export type MonetizationStatus = 'monetized' | 'demonetized' | 'force-demonetized'
export type GameVersion = string
@@ -65,7 +65,8 @@ export interface Project {
client_side: Environment
server_side: Environment
- team: ModrinthId
+ team?: ModrinthId
+ team_id: ModrinthId
thread_id: ModrinthId
organization: ModrinthId
@@ -76,6 +77,7 @@ export interface Project {
donation_urls: DonationLink[]
published: string
+ created?: string
updated: string
approved: string
queued: string
@@ -295,6 +297,60 @@ export type Report = {
body: string
}
+// Threads
+export interface Thread {
+ id: string
+ type: ThreadType
+ project_id: string | null
+ report_id: string | null
+ messages: ThreadMessage[]
+ members: User[]
+}
+
+export type ThreadType = 'project' | 'report' | 'direct_message'
+
+export interface ThreadMessage {
+ id: string | null
+ author_id: string | null
+ body: MessageBody
+ created: string
+ hide_identity: boolean
+}
+
+export type MessageBody =
+ | TextMessageBody
+ | StatusChangeMessageBody
+ | ThreadClosureMessageBody
+ | ThreadReopenMessageBody
+ | DeletedMessageBody
+
+export interface TextMessageBody {
+ type: 'text'
+ body: string
+ private: boolean
+ replying_to: string | null
+ associated_images: string[]
+}
+
+export interface StatusChangeMessageBody {
+ type: 'status_change'
+ new_status: ProjectStatus
+ old_status: ProjectStatus
+}
+
+export interface ThreadClosureMessageBody {
+ type: 'thread_closure'
+}
+
+export interface ThreadReopenMessageBody {
+ type: 'thread_reopen'
+}
+
+export interface DeletedMessageBody {
+ type: 'deleted'
+ private: boolean
+}
+
// Moderation
export interface ModerationModpackPermissionApprovalType {
id:
@@ -379,3 +435,38 @@ export interface ModerationJudgement {
export interface ModerationJudgements {
[sha1: string]: ModerationJudgement
}
+
+// Delphi
+export interface DelphiReport {
+ id: string
+ project: Project
+ version: Version
+ priority_score: number
+ detected_at: string
+ trace_type:
+ | 'reflection_indirection'
+ | 'xor_obfuscation'
+ | 'included_libraries'
+ | 'suspicious_binaries'
+ | 'corrupt_classes'
+ | 'suspicious_classes'
+ | 'url_usage'
+ | 'classloader_usage'
+ | 'processbuilder_usage'
+ | 'runtime_exec_usage'
+ | 'jni_usage'
+ | 'main_method'
+ | 'native_loading'
+ | 'malformed_jar'
+ | 'nested_jar_too_deep'
+ | 'failed_decompilation'
+ | 'analysis_failure'
+ | 'malware_easyforme'
+ | 'malware_simplyloader'
+ file_path: string
+ // pending = not reviewed yet.
+ // approved = approved as malicious, removed from modrinth
+ // rejected = not approved as malicious, remains on modrinth?
+ status: 'pending' | 'approved' | 'rejected'
+ content?: string
+}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 14da77ac5..ab9a718c9 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -125,31 +125,31 @@ importers:
devDependencies:
'@eslint/compat':
specifier: ^1.1.1
- version: 1.2.1(eslint@9.13.0(jiti@2.4.2))
+ version: 1.2.1(eslint@9.13.0(jiti@2.5.1))
'@formatjs/cli':
specifier: ^6.2.12
version: 6.2.12(@vue/compiler-core@3.5.13)(vue@3.5.13(typescript@5.5.4))
'@nuxt/eslint-config':
specifier: ^0.5.6
- version: 0.5.7(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)
+ version: 0.5.7(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)
'@taijased/vue-render-tracker':
specifier: ^1.0.7
version: 1.0.7(vue@3.5.13(typescript@5.5.4))
'@vitejs/plugin-vue':
specifier: ^5.0.4
- version: 5.2.1(vite@5.4.11(@types/node@22.4.1)(sass@1.77.6)(terser@5.42.0))(vue@3.5.13(typescript@5.5.4))
+ version: 5.2.1(vite@5.4.11(@types/node@22.4.1)(sass@1.77.6)(terser@5.43.1))(vue@3.5.13(typescript@5.5.4))
autoprefixer:
specifier: ^10.4.19
version: 10.4.20(postcss@8.4.49)
eslint:
specifier: ^9.9.1
- version: 9.13.0(jiti@2.4.2)
+ version: 9.13.0(jiti@2.5.1)
eslint-config-custom:
specifier: workspace:*
version: link:../../packages/eslint-config-custom
eslint-plugin-turbo:
specifier: ^2.5.4
- version: 2.5.4(eslint@9.13.0(jiti@2.4.2))(turbo@2.5.4)
+ version: 2.5.4(eslint@9.13.0(jiti@2.5.1))(turbo@2.5.4)
postcss:
specifier: ^8.4.39
version: 8.4.49
@@ -170,7 +170,7 @@ importers:
version: 5.5.4
vite:
specifier: ^5.4.6
- version: 5.4.11(@types/node@22.4.1)(sass@1.77.6)(terser@5.42.0)
+ version: 5.4.11(@types/node@22.4.1)(sass@1.77.6)(terser@5.43.1)
vue-tsc:
specifier: ^2.1.6
version: 2.1.6(typescript@5.5.4)
@@ -190,19 +190,19 @@ importers:
version: 0.9.4(prettier@3.6.2)(typescript@5.8.2)
'@astrojs/starlight':
specifier: ^0.32.2
- version: 0.32.2(astro@5.4.1(@types/node@22.4.1)(db0@0.3.2)(jiti@2.4.2)(rollup@4.34.9)(sass@1.77.6)(terser@5.42.0)(typescript@5.8.2)(yaml@2.8.0))
+ version: 0.32.2(astro@5.4.1(@types/node@22.4.1)(db0@0.3.2)(jiti@2.5.1)(rollup@4.34.9)(sass@1.77.6)(terser@5.43.1)(typescript@5.8.2)(yaml@2.8.0))
'@modrinth/assets':
specifier: workspace:*
version: link:../../packages/assets
astro:
specifier: ^5.4.1
- version: 5.4.1(@types/node@22.4.1)(db0@0.3.2)(jiti@2.4.2)(rollup@4.34.9)(sass@1.77.6)(terser@5.42.0)(typescript@5.8.2)(yaml@2.8.0)
+ version: 5.4.1(@types/node@22.4.1)(db0@0.3.2)(jiti@2.5.1)(rollup@4.34.9)(sass@1.77.6)(terser@5.43.1)(typescript@5.8.2)(yaml@2.8.0)
sharp:
specifier: ^0.33.5
version: 0.33.5
starlight-openapi:
specifier: ^0.14.0
- version: 0.14.0(@astrojs/markdown-remark@6.2.0)(@astrojs/starlight@0.32.2(astro@5.4.1(@types/node@22.4.1)(db0@0.3.2)(jiti@2.4.2)(rollup@4.34.9)(sass@1.77.6)(terser@5.42.0)(typescript@5.8.2)(yaml@2.8.0)))(astro@5.4.1(@types/node@22.4.1)(db0@0.3.2)(jiti@2.4.2)(rollup@4.34.9)(sass@1.77.6)(terser@5.42.0)(typescript@5.8.2)(yaml@2.8.0))(openapi-types@12.1.3)
+ version: 0.14.0(@astrojs/markdown-remark@6.2.0)(@astrojs/starlight@0.32.2(astro@5.4.1(@types/node@22.4.1)(db0@0.3.2)(jiti@2.5.1)(rollup@4.34.9)(sass@1.77.6)(terser@5.43.1)(typescript@5.8.2)(yaml@2.8.0)))(astro@5.4.1(@types/node@22.4.1)(db0@0.3.2)(jiti@2.5.1)(rollup@4.34.9)(sass@1.77.6)(terser@5.43.1)(typescript@5.8.2)(yaml@2.8.0))(openapi-types@12.1.3)
typescript:
specifier: ^5.8.2
version: 5.8.2
@@ -284,6 +284,9 @@ importers:
pinia:
specifier: ^2.1.7
version: 2.1.7(typescript@5.5.4)(vue@3.5.13(typescript@5.5.4))
+ pinia-plugin-persistedstate:
+ specifier: ^4.4.1
+ version: 4.4.1(@nuxt/kit@3.17.5(magicast@0.3.5))(@pinia/nuxt@0.5.1(magicast@0.3.5)(rollup@4.28.1)(typescript@5.5.4)(vue@3.5.13(typescript@5.5.4)))(pinia@2.1.7(typescript@5.5.4)(vue@3.5.13(typescript@5.5.4)))
prettier:
specifier: ^3.6.2
version: 3.6.2
@@ -296,6 +299,9 @@ importers:
three:
specifier: ^0.172.0
version: 0.172.0
+ vue-confetti-explosion:
+ specifier: ^1.0.2
+ version: 1.0.2(vue@3.5.13(typescript@5.5.4))
vue-multiselect:
specifier: 3.0.0-alpha.2
version: 3.0.0-alpha.2
@@ -317,7 +323,7 @@ importers:
version: 6.2.12(@vue/compiler-core@3.5.13)(vue@3.5.13(typescript@5.5.4))
'@nuxt/devtools':
specifier: ^1.3.3
- version: 1.6.3(rollup@4.28.1)(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.42.0))(vue@3.5.13(typescript@5.5.4))
+ version: 1.6.3(rollup@4.28.1)(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.43.1))(vue@3.5.13(typescript@5.5.4))
'@types/dompurify':
specifier: ^3.0.5
version: 3.0.5
@@ -332,7 +338,7 @@ importers:
version: 3.0.1(@formatjs/intl@2.10.4(typescript@5.5.4))
'@vintl/nuxt':
specifier: ^1.9.2
- version: 1.9.2(@vue/compiler-core@3.5.13)(magicast@0.3.5)(rollup@4.28.1)(typescript@5.5.4)(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.42.0))(vue@3.5.13(typescript@5.5.4))(webpack@5.92.1)
+ version: 1.9.2(@vue/compiler-core@3.5.13)(magicast@0.3.5)(rollup@4.28.1)(typescript@5.5.4)(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.43.1))(vue@3.5.13(typescript@5.5.4))(webpack@5.92.1)
autoprefixer:
specifier: ^10.4.19
version: 10.4.20(postcss@8.4.49)
@@ -344,7 +350,7 @@ importers:
version: 10.4.2
nuxt:
specifier: ^3.14.1592
- version: 3.14.1592(@parcel/watcher@2.4.1)(@types/node@20.14.11)(eslint@8.57.0)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.28.1)(sass@1.77.6)(terser@5.42.0)(typescript@5.5.4)(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.42.0))(vue-tsc@2.1.6(typescript@5.5.4))(xml2js@0.6.2)
+ version: 3.14.1592(@parcel/watcher@2.4.1)(@types/node@20.14.11)(eslint@8.57.0)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.28.1)(sass@1.77.6)(terser@5.43.1)(typescript@5.5.4)(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.43.1))(vue-tsc@2.1.6(typescript@5.5.4))(xml2js@0.6.2)
postcss:
specifier: ^8.4.39
version: 8.4.49
@@ -441,22 +447,22 @@ importers:
devDependencies:
'@nuxtjs/eslint-config-typescript':
specifier: ^12.1.0
- version: 12.1.0(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)
+ version: 12.1.0(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)
'@vue/eslint-config-typescript':
specifier: ^13.0.0
- version: 13.0.0(eslint-plugin-vue@9.29.0(eslint@9.13.0(jiti@2.4.2)))(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)
+ version: 13.0.0(eslint-plugin-vue@9.29.0(eslint@9.13.0(jiti@2.5.1)))(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)
eslint-config-prettier:
specifier: ^9.1.0
- version: 9.1.0(eslint@9.13.0(jiti@2.4.2))
+ version: 9.1.0(eslint@9.13.0(jiti@2.5.1))
eslint-config-turbo:
specifier: ^2.0.7
- version: 2.0.7(eslint@9.13.0(jiti@2.4.2))
+ version: 2.0.7(eslint@9.13.0(jiti@2.5.1))
eslint-plugin-prettier:
specifier: ^5.2.1
- version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.13.0(jiti@2.4.2)))(eslint@9.13.0(jiti@2.4.2))(prettier@3.6.2)
+ version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.13.0(jiti@2.5.1)))(eslint@9.13.0(jiti@2.5.1))(prettier@3.6.2)
eslint-plugin-unicorn:
specifier: ^54.0.0
- version: 54.0.0(eslint@9.13.0(jiti@2.4.2))
+ version: 54.0.0(eslint@9.13.0(jiti@2.5.1))
typescript:
specifier: ^5.5.3
version: 5.5.4
@@ -4009,6 +4015,9 @@ packages:
deep-is@0.1.4:
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
+ deep-pick-omit@1.2.1:
+ resolution: {integrity: sha512-2J6Kc/m3irCeqVG42T+SaUMesaK7oGWaedGnQQK/+O0gYc+2SP5bKh/KKTE7d7SJ+GCA9UUE1GRzh6oDe0EnGw==}
+
deepmerge@4.3.1:
resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
engines: {node: '>=0.10.0'}
@@ -6388,6 +6397,20 @@ packages:
resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
engines: {node: '>=6'}
+ pinia-plugin-persistedstate@4.4.1:
+ resolution: {integrity: sha512-lmuMPpXla2zJKjxEq34e1E9P9jxkWEhcVwwioCCE0izG45kkTOvQfCzvwhW3i38cvnaWC7T1eRdkd15Re59ldw==}
+ peerDependencies:
+ '@nuxt/kit': '>=3.0.0'
+ '@pinia/nuxt': '>=0.10.0'
+ pinia: '>=3.0.0'
+ peerDependenciesMeta:
+ '@nuxt/kit':
+ optional: true
+ '@pinia/nuxt':
+ optional: true
+ pinia:
+ optional: true
+
pinia@2.1.7:
resolution: {integrity: sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ==}
peerDependencies:
@@ -8279,6 +8302,12 @@ packages:
vue-bundle-renderer@2.1.1:
resolution: {integrity: sha512-+qALLI5cQncuetYOXp4yScwYvqh8c6SMXee3B+M7oTZxOgtESP0l4j/fXdEJoZ+EdMxkGWIj+aSEyjXkOdmd7g==}
+ vue-confetti-explosion@1.0.2:
+ resolution: {integrity: sha512-80OboM3/6BItIoZ6DpNcZFqGpF607kjIVc5af56oKgtFmt5yWehvJeoYhkzYlqxrqdBe0Ko4Ie3bWrmLau+dJw==}
+ engines: {node: '>=12'}
+ peerDependencies:
+ vue: ^3.0.5
+
vue-demi@0.14.10:
resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==}
engines: {node: '>=12'}
@@ -8665,12 +8694,12 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@astrojs/mdx@4.1.0(astro@5.4.1(@types/node@22.4.1)(db0@0.3.2)(jiti@2.4.2)(rollup@4.34.9)(sass@1.77.6)(terser@5.42.0)(typescript@5.8.2)(yaml@2.8.0))':
+ '@astrojs/mdx@4.1.0(astro@5.4.1(@types/node@22.4.1)(db0@0.3.2)(jiti@2.5.1)(rollup@4.34.9)(sass@1.77.6)(terser@5.43.1)(typescript@5.8.2)(yaml@2.8.0))':
dependencies:
'@astrojs/markdown-remark': 6.2.0
'@mdx-js/mdx': 3.1.0(acorn@8.14.0)
acorn: 8.14.0
- astro: 5.4.1(@types/node@22.4.1)(db0@0.3.2)(jiti@2.4.2)(rollup@4.34.9)(sass@1.77.6)(terser@5.42.0)(typescript@5.8.2)(yaml@2.8.0)
+ astro: 5.4.1(@types/node@22.4.1)(db0@0.3.2)(jiti@2.5.1)(rollup@4.34.9)(sass@1.77.6)(terser@5.43.1)(typescript@5.8.2)(yaml@2.8.0)
es-module-lexer: 1.6.0
estree-util-visit: 2.0.0
hast-util-to-html: 9.0.5
@@ -8694,16 +8723,16 @@ snapshots:
stream-replace-string: 2.0.0
zod: 3.23.8
- '@astrojs/starlight@0.32.2(astro@5.4.1(@types/node@22.4.1)(db0@0.3.2)(jiti@2.4.2)(rollup@4.34.9)(sass@1.77.6)(terser@5.42.0)(typescript@5.8.2)(yaml@2.8.0))':
+ '@astrojs/starlight@0.32.2(astro@5.4.1(@types/node@22.4.1)(db0@0.3.2)(jiti@2.5.1)(rollup@4.34.9)(sass@1.77.6)(terser@5.43.1)(typescript@5.8.2)(yaml@2.8.0))':
dependencies:
- '@astrojs/mdx': 4.1.0(astro@5.4.1(@types/node@22.4.1)(db0@0.3.2)(jiti@2.4.2)(rollup@4.34.9)(sass@1.77.6)(terser@5.42.0)(typescript@5.8.2)(yaml@2.8.0))
+ '@astrojs/mdx': 4.1.0(astro@5.4.1(@types/node@22.4.1)(db0@0.3.2)(jiti@2.5.1)(rollup@4.34.9)(sass@1.77.6)(terser@5.43.1)(typescript@5.8.2)(yaml@2.8.0))
'@astrojs/sitemap': 3.2.1
'@pagefind/default-ui': 1.3.0
'@types/hast': 3.0.4
'@types/js-yaml': 4.0.9
'@types/mdast': 4.0.4
- astro: 5.4.1(@types/node@22.4.1)(db0@0.3.2)(jiti@2.4.2)(rollup@4.34.9)(sass@1.77.6)(terser@5.42.0)(typescript@5.8.2)(yaml@2.8.0)
- astro-expressive-code: 0.40.2(astro@5.4.1(@types/node@22.4.1)(db0@0.3.2)(jiti@2.4.2)(rollup@4.34.9)(sass@1.77.6)(terser@5.42.0)(typescript@5.8.2)(yaml@2.8.0))
+ astro: 5.4.1(@types/node@22.4.1)(db0@0.3.2)(jiti@2.5.1)(rollup@4.34.9)(sass@1.77.6)(terser@5.43.1)(typescript@5.8.2)(yaml@2.8.0)
+ astro-expressive-code: 0.40.2(astro@5.4.1(@types/node@22.4.1)(db0@0.3.2)(jiti@2.5.1)(rollup@4.34.9)(sass@1.77.6)(terser@5.43.1)(typescript@5.8.2)(yaml@2.8.0))
bcp-47: 2.1.0
hast-util-from-html: 2.0.2
hast-util-select: 6.0.2
@@ -9350,16 +9379,16 @@ snapshots:
eslint: 8.57.0
eslint-visitor-keys: 3.4.3
- '@eslint-community/eslint-utils@4.4.0(eslint@9.13.0(jiti@2.4.2))':
+ '@eslint-community/eslint-utils@4.4.0(eslint@9.13.0(jiti@2.5.1))':
dependencies:
- eslint: 9.13.0(jiti@2.4.2)
+ eslint: 9.13.0(jiti@2.5.1)
eslint-visitor-keys: 3.4.3
'@eslint-community/regexpp@4.11.0': {}
- '@eslint/compat@1.2.1(eslint@9.13.0(jiti@2.4.2))':
+ '@eslint/compat@1.2.1(eslint@9.13.0(jiti@2.5.1))':
optionalDependencies:
- eslint: 9.13.0(jiti@2.4.2)
+ eslint: 9.13.0(jiti@2.5.1)
'@eslint/config-array@0.18.0':
dependencies:
@@ -9826,12 +9855,12 @@ snapshots:
'@nuxt/devalue@2.0.2': {}
- '@nuxt/devtools-kit@1.6.3(magicast@0.3.5)(rollup@4.28.1)(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.42.0))':
+ '@nuxt/devtools-kit@1.6.3(magicast@0.3.5)(rollup@4.28.1)(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.43.1))':
dependencies:
'@nuxt/kit': 3.14.1592(magicast@0.3.5)(rollup@4.28.1)
'@nuxt/schema': 3.14.1592(magicast@0.3.5)(rollup@4.28.1)
execa: 7.2.0
- vite: 5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.42.0)
+ vite: 5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.43.1)
transitivePeerDependencies:
- magicast
- rollup
@@ -9850,13 +9879,13 @@ snapshots:
rc9: 2.1.2
semver: 7.7.1
- '@nuxt/devtools@1.6.3(rollup@4.28.1)(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.42.0))(vue@3.5.13(typescript@5.5.4))':
+ '@nuxt/devtools@1.6.3(rollup@4.28.1)(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.43.1))(vue@3.5.13(typescript@5.5.4))':
dependencies:
'@antfu/utils': 0.7.10
- '@nuxt/devtools-kit': 1.6.3(magicast@0.3.5)(rollup@4.28.1)(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.42.0))
+ '@nuxt/devtools-kit': 1.6.3(magicast@0.3.5)(rollup@4.28.1)(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.43.1))
'@nuxt/devtools-wizard': 1.6.3
'@nuxt/kit': 3.14.1592(magicast@0.3.5)(rollup@4.28.1)
- '@vue/devtools-core': 7.6.4(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.42.0))(vue@3.5.13(typescript@5.5.4))
+ '@vue/devtools-core': 7.6.4(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.43.1))(vue@3.5.13(typescript@5.5.4))
'@vue/devtools-kit': 7.6.4
birpc: 0.2.19
consola: 3.2.3
@@ -9885,9 +9914,9 @@ snapshots:
sirv: 3.0.0
tinyglobby: 0.2.10
unimport: 3.14.4(rollup@4.28.1)
- vite: 5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.42.0)
- vite-plugin-inspect: 0.8.9(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.28.1))(rollup@4.28.1)(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.42.0))
- vite-plugin-vue-inspector: 5.1.3(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.42.0))
+ vite: 5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.43.1)
+ vite-plugin-inspect: 0.8.9(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.28.1))(rollup@4.28.1)(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.43.1))
+ vite-plugin-vue-inspector: 5.1.3(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.43.1))
which: 3.0.1
ws: 8.18.0
transitivePeerDependencies:
@@ -9897,34 +9926,34 @@ snapshots:
- utf-8-validate
- vue
- '@nuxt/eslint-config@0.5.7(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)':
+ '@nuxt/eslint-config@0.5.7(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)':
dependencies:
'@eslint/js': 9.13.0
- '@nuxt/eslint-plugin': 0.5.7(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)
- '@stylistic/eslint-plugin': 2.9.0(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)
- '@typescript-eslint/eslint-plugin': 8.10.0(@typescript-eslint/parser@8.10.0(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4))(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)
- '@typescript-eslint/parser': 8.10.0(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)
- eslint: 9.13.0(jiti@2.4.2)
- eslint-config-flat-gitignore: 0.3.0(eslint@9.13.0(jiti@2.4.2))
+ '@nuxt/eslint-plugin': 0.5.7(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)
+ '@stylistic/eslint-plugin': 2.9.0(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)
+ '@typescript-eslint/eslint-plugin': 8.10.0(@typescript-eslint/parser@8.10.0(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4))(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)
+ '@typescript-eslint/parser': 8.10.0(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)
+ eslint: 9.13.0(jiti@2.5.1)
+ eslint-config-flat-gitignore: 0.3.0(eslint@9.13.0(jiti@2.5.1))
eslint-flat-config-utils: 0.4.0
- eslint-plugin-import-x: 4.3.1(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)
- eslint-plugin-jsdoc: 50.4.3(eslint@9.13.0(jiti@2.4.2))
- eslint-plugin-regexp: 2.6.0(eslint@9.13.0(jiti@2.4.2))
- eslint-plugin-unicorn: 55.0.0(eslint@9.13.0(jiti@2.4.2))
- eslint-plugin-vue: 9.29.0(eslint@9.13.0(jiti@2.4.2))
+ eslint-plugin-import-x: 4.3.1(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)
+ eslint-plugin-jsdoc: 50.4.3(eslint@9.13.0(jiti@2.5.1))
+ eslint-plugin-regexp: 2.6.0(eslint@9.13.0(jiti@2.5.1))
+ eslint-plugin-unicorn: 55.0.0(eslint@9.13.0(jiti@2.5.1))
+ eslint-plugin-vue: 9.29.0(eslint@9.13.0(jiti@2.5.1))
globals: 15.11.0
local-pkg: 0.5.1
pathe: 1.1.2
- vue-eslint-parser: 9.4.3(eslint@9.13.0(jiti@2.4.2))
+ vue-eslint-parser: 9.4.3(eslint@9.13.0(jiti@2.5.1))
transitivePeerDependencies:
- supports-color
- typescript
- '@nuxt/eslint-plugin@0.5.7(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)':
+ '@nuxt/eslint-plugin@0.5.7(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)':
dependencies:
'@typescript-eslint/types': 8.10.0
- '@typescript-eslint/utils': 8.10.0(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)
- eslint: 9.13.0(jiti@2.4.2)
+ '@typescript-eslint/utils': 8.10.0(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)
+ eslint: 9.13.0(jiti@2.5.1)
transitivePeerDependencies:
- supports-color
- typescript
@@ -10029,12 +10058,12 @@ snapshots:
- rollup
- supports-color
- '@nuxt/vite-builder@3.14.1592(@types/node@20.14.11)(eslint@8.57.0)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.28.1)(sass@1.77.6)(terser@5.42.0)(typescript@5.5.4)(vue-tsc@2.1.6(typescript@5.5.4))(vue@3.5.13(typescript@5.5.4))':
+ '@nuxt/vite-builder@3.14.1592(@types/node@20.14.11)(eslint@8.57.0)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.28.1)(sass@1.77.6)(terser@5.43.1)(typescript@5.5.4)(vue-tsc@2.1.6(typescript@5.5.4))(vue@3.5.13(typescript@5.5.4))':
dependencies:
'@nuxt/kit': 3.14.1592(magicast@0.3.5)(rollup@4.28.1)
'@rollup/plugin-replace': 6.0.1(rollup@4.28.1)
- '@vitejs/plugin-vue': 5.2.1(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.42.0))(vue@3.5.13(typescript@5.5.4))
- '@vitejs/plugin-vue-jsx': 4.1.1(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.42.0))(vue@3.5.13(typescript@5.5.4))
+ '@vitejs/plugin-vue': 5.2.1(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.43.1))(vue@3.5.13(typescript@5.5.4))
+ '@vitejs/plugin-vue-jsx': 4.1.1(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.43.1))(vue@3.5.13(typescript@5.5.4))
autoprefixer: 10.4.20(postcss@8.4.49)
clear: 0.1.0
consola: 3.2.3
@@ -10061,9 +10090,9 @@ snapshots:
ufo: 1.5.4
unenv: 1.10.0
unplugin: 1.16.0
- vite: 5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.42.0)
- vite-node: 2.1.8(@types/node@20.14.11)(sass@1.77.6)(terser@5.42.0)
- vite-plugin-checker: 0.8.0(eslint@8.57.0)(optionator@0.9.4)(typescript@5.5.4)(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.42.0))(vue-tsc@2.1.6(typescript@5.5.4))
+ vite: 5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.43.1)
+ vite-node: 2.1.8(@types/node@20.14.11)(sass@1.77.6)(terser@5.43.1)
+ vite-plugin-checker: 0.8.0(eslint@8.57.0)(optionator@0.9.4)(typescript@5.5.4)(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.43.1))(vue-tsc@2.1.6(typescript@5.5.4))
vue: 3.5.13(typescript@5.5.4)
vue-bundle-renderer: 2.1.1
transitivePeerDependencies:
@@ -10088,31 +10117,31 @@ snapshots:
- vti
- vue-tsc
- '@nuxtjs/eslint-config-typescript@12.1.0(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)':
+ '@nuxtjs/eslint-config-typescript@12.1.0(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)':
dependencies:
- '@nuxtjs/eslint-config': 12.0.0(@typescript-eslint/parser@6.21.0(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@9.13.0(jiti@2.4.2))
- '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4))(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)
- '@typescript-eslint/parser': 6.21.0(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)
- eslint: 9.13.0(jiti@2.4.2)
- eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@9.13.0(jiti@2.4.2))
- eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.16.1(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4))(eslint@9.13.0(jiti@2.4.2))
- eslint-plugin-vue: 9.29.0(eslint@9.13.0(jiti@2.4.2))
+ '@nuxtjs/eslint-config': 12.0.0(@typescript-eslint/parser@6.21.0(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@9.13.0(jiti@2.5.1))
+ '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4))(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)
+ '@typescript-eslint/parser': 6.21.0(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)
+ eslint: 9.13.0(jiti@2.5.1)
+ eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@9.13.0(jiti@2.5.1))
+ eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.16.1(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4))(eslint@9.13.0(jiti@2.5.1))
+ eslint-plugin-vue: 9.29.0(eslint@9.13.0(jiti@2.5.1))
transitivePeerDependencies:
- eslint-import-resolver-node
- eslint-import-resolver-webpack
- supports-color
- typescript
- '@nuxtjs/eslint-config@12.0.0(@typescript-eslint/parser@6.21.0(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@9.13.0(jiti@2.4.2))':
+ '@nuxtjs/eslint-config@12.0.0(@typescript-eslint/parser@6.21.0(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@9.13.0(jiti@2.5.1))':
dependencies:
- eslint: 9.13.0(jiti@2.4.2)
- eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0(eslint@9.13.0(jiti@2.4.2)))(eslint-plugin-promise@6.4.0(eslint@9.13.0(jiti@2.4.2)))(eslint@9.13.0(jiti@2.4.2))
- eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@9.13.0(jiti@2.4.2))
- eslint-plugin-n: 15.7.0(eslint@9.13.0(jiti@2.4.2))
- eslint-plugin-node: 11.1.0(eslint@9.13.0(jiti@2.4.2))
- eslint-plugin-promise: 6.4.0(eslint@9.13.0(jiti@2.4.2))
- eslint-plugin-unicorn: 44.0.2(eslint@9.13.0(jiti@2.4.2))
- eslint-plugin-vue: 9.29.0(eslint@9.13.0(jiti@2.4.2))
+ eslint: 9.13.0(jiti@2.5.1)
+ eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0(eslint@9.13.0(jiti@2.5.1)))(eslint-plugin-promise@6.4.0(eslint@9.13.0(jiti@2.5.1)))(eslint@9.13.0(jiti@2.5.1))
+ eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@9.13.0(jiti@2.5.1))
+ eslint-plugin-n: 15.7.0(eslint@9.13.0(jiti@2.5.1))
+ eslint-plugin-node: 11.1.0(eslint@9.13.0(jiti@2.5.1))
+ eslint-plugin-promise: 6.4.0(eslint@9.13.0(jiti@2.5.1))
+ eslint-plugin-unicorn: 44.0.2(eslint@9.13.0(jiti@2.5.1))
+ eslint-plugin-vue: 9.29.0(eslint@9.13.0(jiti@2.5.1))
local-pkg: 0.4.3
transitivePeerDependencies:
- '@typescript-eslint/parser'
@@ -10562,10 +10591,10 @@ snapshots:
'@stripe/stripe-js@7.3.1': {}
- '@stylistic/eslint-plugin@2.9.0(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)':
+ '@stylistic/eslint-plugin@2.9.0(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)':
dependencies:
- '@typescript-eslint/utils': 8.10.0(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)
- eslint: 9.13.0(jiti@2.4.2)
+ '@typescript-eslint/utils': 8.10.0(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)
+ eslint: 9.13.0(jiti@2.5.1)
eslint-visitor-keys: 4.1.0
espree: 10.2.0
estraverse: 5.3.0
@@ -10832,16 +10861,16 @@ snapshots:
dependencies:
'@types/node': 20.14.11
- '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4))(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)':
+ '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4))(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)':
dependencies:
'@eslint-community/regexpp': 4.11.0
- '@typescript-eslint/parser': 6.21.0(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)
+ '@typescript-eslint/parser': 6.21.0(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)
'@typescript-eslint/scope-manager': 6.21.0
- '@typescript-eslint/type-utils': 6.21.0(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)
- '@typescript-eslint/utils': 6.21.0(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)
+ '@typescript-eslint/type-utils': 6.21.0(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)
+ '@typescript-eslint/utils': 6.21.0(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)
'@typescript-eslint/visitor-keys': 6.21.0
debug: 4.4.0(supports-color@9.4.0)
- eslint: 9.13.0(jiti@2.4.2)
+ eslint: 9.13.0(jiti@2.5.1)
graphemer: 1.4.0
ignore: 5.3.1
natural-compare: 1.4.0
@@ -10852,15 +10881,15 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/eslint-plugin@7.16.1(@typescript-eslint/parser@7.16.1(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4))(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)':
+ '@typescript-eslint/eslint-plugin@7.16.1(@typescript-eslint/parser@7.16.1(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4))(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)':
dependencies:
'@eslint-community/regexpp': 4.11.0
- '@typescript-eslint/parser': 7.16.1(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)
+ '@typescript-eslint/parser': 7.16.1(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)
'@typescript-eslint/scope-manager': 7.16.1
- '@typescript-eslint/type-utils': 7.16.1(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)
- '@typescript-eslint/utils': 7.16.1(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)
+ '@typescript-eslint/type-utils': 7.16.1(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)
+ '@typescript-eslint/utils': 7.16.1(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)
'@typescript-eslint/visitor-keys': 7.16.1
- eslint: 9.13.0(jiti@2.4.2)
+ eslint: 9.13.0(jiti@2.5.1)
graphemer: 1.4.0
ignore: 5.3.1
natural-compare: 1.4.0
@@ -10870,15 +10899,15 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/eslint-plugin@8.10.0(@typescript-eslint/parser@8.10.0(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4))(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)':
+ '@typescript-eslint/eslint-plugin@8.10.0(@typescript-eslint/parser@8.10.0(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4))(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)':
dependencies:
'@eslint-community/regexpp': 4.11.0
- '@typescript-eslint/parser': 8.10.0(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)
+ '@typescript-eslint/parser': 8.10.0(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)
'@typescript-eslint/scope-manager': 8.10.0
- '@typescript-eslint/type-utils': 8.10.0(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)
- '@typescript-eslint/utils': 8.10.0(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)
+ '@typescript-eslint/type-utils': 8.10.0(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)
+ '@typescript-eslint/utils': 8.10.0(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)
'@typescript-eslint/visitor-keys': 8.10.0
- eslint: 9.13.0(jiti@2.4.2)
+ eslint: 9.13.0(jiti@2.5.1)
graphemer: 1.4.0
ignore: 5.3.1
natural-compare: 1.4.0
@@ -10888,40 +10917,40 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@6.21.0(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)':
+ '@typescript-eslint/parser@6.21.0(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)':
dependencies:
'@typescript-eslint/scope-manager': 6.21.0
'@typescript-eslint/types': 6.21.0
'@typescript-eslint/typescript-estree': 6.21.0(typescript@5.5.4)
'@typescript-eslint/visitor-keys': 6.21.0
debug: 4.4.0(supports-color@9.4.0)
- eslint: 9.13.0(jiti@2.4.2)
+ eslint: 9.13.0(jiti@2.5.1)
optionalDependencies:
typescript: 5.5.4
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@7.16.1(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)':
+ '@typescript-eslint/parser@7.16.1(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)':
dependencies:
'@typescript-eslint/scope-manager': 7.16.1
'@typescript-eslint/types': 7.16.1
'@typescript-eslint/typescript-estree': 7.16.1(typescript@5.5.4)
'@typescript-eslint/visitor-keys': 7.16.1
debug: 4.4.0(supports-color@9.4.0)
- eslint: 9.13.0(jiti@2.4.2)
+ eslint: 9.13.0(jiti@2.5.1)
optionalDependencies:
typescript: 5.5.4
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@8.10.0(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)':
+ '@typescript-eslint/parser@8.10.0(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)':
dependencies:
'@typescript-eslint/scope-manager': 8.10.0
'@typescript-eslint/types': 8.10.0
'@typescript-eslint/typescript-estree': 8.10.0(typescript@5.5.4)
'@typescript-eslint/visitor-keys': 8.10.0
debug: 4.4.0(supports-color@9.4.0)
- eslint: 9.13.0(jiti@2.4.2)
+ eslint: 9.13.0(jiti@2.5.1)
optionalDependencies:
typescript: 5.5.4
transitivePeerDependencies:
@@ -10942,34 +10971,34 @@ snapshots:
'@typescript-eslint/types': 8.10.0
'@typescript-eslint/visitor-keys': 8.10.0
- '@typescript-eslint/type-utils@6.21.0(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)':
+ '@typescript-eslint/type-utils@6.21.0(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)':
dependencies:
'@typescript-eslint/typescript-estree': 6.21.0(typescript@5.5.4)
- '@typescript-eslint/utils': 6.21.0(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)
+ '@typescript-eslint/utils': 6.21.0(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)
debug: 4.4.0(supports-color@9.4.0)
- eslint: 9.13.0(jiti@2.4.2)
+ eslint: 9.13.0(jiti@2.5.1)
ts-api-utils: 1.3.0(typescript@5.5.4)
optionalDependencies:
typescript: 5.5.4
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/type-utils@7.16.1(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)':
+ '@typescript-eslint/type-utils@7.16.1(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)':
dependencies:
'@typescript-eslint/typescript-estree': 7.16.1(typescript@5.5.4)
- '@typescript-eslint/utils': 7.16.1(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)
+ '@typescript-eslint/utils': 7.16.1(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)
debug: 4.4.0(supports-color@9.4.0)
- eslint: 9.13.0(jiti@2.4.2)
+ eslint: 9.13.0(jiti@2.5.1)
ts-api-utils: 1.3.0(typescript@5.5.4)
optionalDependencies:
typescript: 5.5.4
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/type-utils@8.10.0(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)':
+ '@typescript-eslint/type-utils@8.10.0(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)':
dependencies:
'@typescript-eslint/typescript-estree': 8.10.0(typescript@5.5.4)
- '@typescript-eslint/utils': 8.10.0(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)
+ '@typescript-eslint/utils': 8.10.0(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)
debug: 4.4.0(supports-color@9.4.0)
ts-api-utils: 1.3.0(typescript@5.5.4)
optionalDependencies:
@@ -11029,38 +11058,38 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@6.21.0(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)':
+ '@typescript-eslint/utils@6.21.0(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)':
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@2.4.2))
+ '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@2.5.1))
'@types/json-schema': 7.0.15
'@types/semver': 7.5.8
'@typescript-eslint/scope-manager': 6.21.0
'@typescript-eslint/types': 6.21.0
'@typescript-eslint/typescript-estree': 6.21.0(typescript@5.5.4)
- eslint: 9.13.0(jiti@2.4.2)
+ eslint: 9.13.0(jiti@2.5.1)
semver: 7.7.1
transitivePeerDependencies:
- supports-color
- typescript
- '@typescript-eslint/utils@7.16.1(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)':
+ '@typescript-eslint/utils@7.16.1(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)':
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@2.4.2))
+ '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@2.5.1))
'@typescript-eslint/scope-manager': 7.16.1
'@typescript-eslint/types': 7.16.1
'@typescript-eslint/typescript-estree': 7.16.1(typescript@5.5.4)
- eslint: 9.13.0(jiti@2.4.2)
+ eslint: 9.13.0(jiti@2.5.1)
transitivePeerDependencies:
- supports-color
- typescript
- '@typescript-eslint/utils@8.10.0(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)':
+ '@typescript-eslint/utils@8.10.0(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)':
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@2.4.2))
+ '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@2.5.1))
'@typescript-eslint/scope-manager': 8.10.0
'@typescript-eslint/types': 8.10.0
'@typescript-eslint/typescript-estree': 8.10.0(typescript@5.5.4)
- eslint: 9.13.0(jiti@2.4.2)
+ eslint: 9.13.0(jiti@2.5.1)
transitivePeerDependencies:
- supports-color
- typescript
@@ -11141,12 +11170,12 @@ snapshots:
'@formatjs/intl': 2.10.4(typescript@5.5.4)
intl-messageformat: 10.5.14
- '@vintl/nuxt@1.9.2(@vue/compiler-core@3.5.13)(magicast@0.3.5)(rollup@4.28.1)(typescript@5.5.4)(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.42.0))(vue@3.5.13(typescript@5.5.4))(webpack@5.92.1)':
+ '@vintl/nuxt@1.9.2(@vue/compiler-core@3.5.13)(magicast@0.3.5)(rollup@4.28.1)(typescript@5.5.4)(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.43.1))(vue@3.5.13(typescript@5.5.4))(webpack@5.92.1)':
dependencies:
'@formatjs/intl': 2.10.4(typescript@5.5.4)
'@formatjs/intl-localematcher': 0.5.4
'@nuxt/kit': 3.14.1592(magicast@0.3.5)(rollup@4.28.1)
- '@vintl/unplugin': 2.0.0(@vue/compiler-core@3.5.13)(rollup@4.28.1)(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.42.0))(vue@3.5.13(typescript@5.5.4))(webpack@5.92.1)
+ '@vintl/unplugin': 2.0.0(@vue/compiler-core@3.5.13)(rollup@4.28.1)(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.43.1))(vue@3.5.13(typescript@5.5.4))(webpack@5.92.1)
'@vintl/vintl': 4.4.1(typescript@5.5.4)(vue@3.5.13(typescript@5.5.4))
astring: 1.8.6
consola: 3.2.3
@@ -11197,7 +11226,7 @@ snapshots:
- ts-jest
- vue
- '@vintl/unplugin@2.0.0(@vue/compiler-core@3.5.13)(rollup@4.28.1)(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.42.0))(vue@3.5.13(typescript@5.5.4))(webpack@5.92.1)':
+ '@vintl/unplugin@2.0.0(@vue/compiler-core@3.5.13)(rollup@4.28.1)(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.43.1))(vue@3.5.13(typescript@5.5.4))(webpack@5.92.1)':
dependencies:
'@formatjs/cli-lib': 6.4.2(@vue/compiler-core@3.5.13)(vue@3.5.13(typescript@5.5.4))
'@formatjs/icu-messageformat-parser': 2.7.8
@@ -11208,7 +11237,7 @@ snapshots:
unplugin: 1.16.0
optionalDependencies:
rollup: 4.28.1
- vite: 5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.42.0)
+ vite: 5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.43.1)
webpack: 5.92.1
transitivePeerDependencies:
- '@glimmer/env'
@@ -11243,24 +11272,24 @@ snapshots:
transitivePeerDependencies:
- typescript
- '@vitejs/plugin-vue-jsx@4.1.1(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.42.0))(vue@3.5.13(typescript@5.5.4))':
+ '@vitejs/plugin-vue-jsx@4.1.1(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.43.1))(vue@3.5.13(typescript@5.5.4))':
dependencies:
'@babel/core': 7.26.0
'@babel/plugin-transform-typescript': 7.26.3(@babel/core@7.26.0)
'@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.26.0)
- vite: 5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.42.0)
+ vite: 5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.43.1)
vue: 3.5.13(typescript@5.5.4)
transitivePeerDependencies:
- supports-color
- '@vitejs/plugin-vue@5.2.1(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.42.0))(vue@3.5.13(typescript@5.5.4))':
+ '@vitejs/plugin-vue@5.2.1(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.43.1))(vue@3.5.13(typescript@5.5.4))':
dependencies:
- vite: 5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.42.0)
+ vite: 5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.43.1)
vue: 3.5.13(typescript@5.5.4)
- '@vitejs/plugin-vue@5.2.1(vite@5.4.11(@types/node@22.4.1)(sass@1.77.6)(terser@5.42.0))(vue@3.5.13(typescript@5.5.4))':
+ '@vitejs/plugin-vue@5.2.1(vite@5.4.11(@types/node@22.4.1)(sass@1.77.6)(terser@5.43.1))(vue@3.5.13(typescript@5.5.4))':
dependencies:
- vite: 5.4.11(@types/node@22.4.1)(sass@1.77.6)(terser@5.42.0)
+ vite: 5.4.11(@types/node@22.4.1)(sass@1.77.6)(terser@5.43.1)
vue: 3.5.13(typescript@5.5.4)
'@volar/kit@2.4.11(typescript@5.8.2)':
@@ -11405,14 +11434,14 @@ snapshots:
'@vue/devtools-api@6.6.4': {}
- '@vue/devtools-core@7.6.4(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.42.0))(vue@3.5.13(typescript@5.5.4))':
+ '@vue/devtools-core@7.6.4(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.43.1))(vue@3.5.13(typescript@5.5.4))':
dependencies:
'@vue/devtools-kit': 7.6.4
'@vue/devtools-shared': 7.6.7
mitt: 3.0.1
nanoid: 3.3.7
pathe: 1.1.2
- vite-hot-client: 0.2.3(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.42.0))
+ vite-hot-client: 0.2.3(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.43.1))
vue: 3.5.13(typescript@5.5.4)
transitivePeerDependencies:
- vite
@@ -11431,13 +11460,13 @@ snapshots:
dependencies:
rfdc: 1.4.1
- '@vue/eslint-config-typescript@13.0.0(eslint-plugin-vue@9.29.0(eslint@9.13.0(jiti@2.4.2)))(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)':
+ '@vue/eslint-config-typescript@13.0.0(eslint-plugin-vue@9.29.0(eslint@9.13.0(jiti@2.5.1)))(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)':
dependencies:
- '@typescript-eslint/eslint-plugin': 7.16.1(@typescript-eslint/parser@7.16.1(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4))(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)
- '@typescript-eslint/parser': 7.16.1(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)
- eslint: 9.13.0(jiti@2.4.2)
- eslint-plugin-vue: 9.29.0(eslint@9.13.0(jiti@2.4.2))
- vue-eslint-parser: 9.4.3(eslint@9.13.0(jiti@2.4.2))
+ '@typescript-eslint/eslint-plugin': 7.16.1(@typescript-eslint/parser@7.16.1(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4))(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)
+ '@typescript-eslint/parser': 7.16.1(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)
+ eslint: 9.13.0(jiti@2.5.1)
+ eslint-plugin-vue: 9.29.0(eslint@9.13.0(jiti@2.5.1))
+ vue-eslint-parser: 9.4.3(eslint@9.13.0(jiti@2.5.1))
optionalDependencies:
typescript: 5.5.4
transitivePeerDependencies:
@@ -11861,12 +11890,12 @@ snapshots:
astring@1.8.6: {}
- astro-expressive-code@0.40.2(astro@5.4.1(@types/node@22.4.1)(db0@0.3.2)(jiti@2.4.2)(rollup@4.34.9)(sass@1.77.6)(terser@5.42.0)(typescript@5.8.2)(yaml@2.8.0)):
+ astro-expressive-code@0.40.2(astro@5.4.1(@types/node@22.4.1)(db0@0.3.2)(jiti@2.5.1)(rollup@4.34.9)(sass@1.77.6)(terser@5.43.1)(typescript@5.8.2)(yaml@2.8.0)):
dependencies:
- astro: 5.4.1(@types/node@22.4.1)(db0@0.3.2)(jiti@2.4.2)(rollup@4.34.9)(sass@1.77.6)(terser@5.42.0)(typescript@5.8.2)(yaml@2.8.0)
+ astro: 5.4.1(@types/node@22.4.1)(db0@0.3.2)(jiti@2.5.1)(rollup@4.34.9)(sass@1.77.6)(terser@5.43.1)(typescript@5.8.2)(yaml@2.8.0)
rehype-expressive-code: 0.40.2
- astro@5.4.1(@types/node@22.4.1)(db0@0.3.2)(jiti@2.4.2)(rollup@4.34.9)(sass@1.77.6)(terser@5.42.0)(typescript@5.8.2)(yaml@2.8.0):
+ astro@5.4.1(@types/node@22.4.1)(db0@0.3.2)(jiti@2.5.1)(rollup@4.34.9)(sass@1.77.6)(terser@5.43.1)(typescript@5.8.2)(yaml@2.8.0):
dependencies:
'@astrojs/compiler': 2.10.4
'@astrojs/internal-helpers': 0.6.0
@@ -11918,8 +11947,8 @@ snapshots:
unist-util-visit: 5.0.0
unstorage: 1.15.0(db0@0.3.2)
vfile: 6.0.3
- vite: 6.2.0(@types/node@22.4.1)(jiti@2.4.2)(sass@1.77.6)(terser@5.42.0)(yaml@2.8.0)
- vitefu: 1.0.6(vite@6.2.0(@types/node@22.4.1)(jiti@2.4.2)(sass@1.77.6)(terser@5.42.0)(yaml@2.8.0))
+ vite: 6.2.0(@types/node@22.4.1)(jiti@2.5.1)(sass@1.77.6)(terser@5.43.1)(yaml@2.8.0)
+ vitefu: 1.0.6(vite@6.2.0(@types/node@22.4.1)(jiti@2.5.1)(sass@1.77.6)(terser@5.43.1)(yaml@2.8.0))
which-pm: 3.0.1
xxhash-wasm: 1.1.0
yargs-parser: 21.1.1
@@ -12495,6 +12524,8 @@ snapshots:
deep-is@0.1.4: {}
+ deep-pick-omit@1.2.1: {}
+
deepmerge@4.3.1: {}
default-browser-id@5.0.0: {}
@@ -12532,8 +12563,7 @@ snapshots:
destr@2.0.3: {}
- destr@2.0.5:
- optional: true
+ destr@2.0.5: {}
destroy@1.2.0: {}
@@ -12895,27 +12925,27 @@ snapshots:
escape-string-regexp@5.0.0: {}
- eslint-config-flat-gitignore@0.3.0(eslint@9.13.0(jiti@2.4.2)):
+ eslint-config-flat-gitignore@0.3.0(eslint@9.13.0(jiti@2.5.1)):
dependencies:
- '@eslint/compat': 1.2.1(eslint@9.13.0(jiti@2.4.2))
- eslint: 9.13.0(jiti@2.4.2)
+ '@eslint/compat': 1.2.1(eslint@9.13.0(jiti@2.5.1))
+ eslint: 9.13.0(jiti@2.5.1)
find-up-simple: 1.0.0
- eslint-config-prettier@9.1.0(eslint@9.13.0(jiti@2.4.2)):
+ eslint-config-prettier@9.1.0(eslint@9.13.0(jiti@2.5.1)):
dependencies:
- eslint: 9.13.0(jiti@2.4.2)
+ eslint: 9.13.0(jiti@2.5.1)
- eslint-config-standard@17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0(eslint@9.13.0(jiti@2.4.2)))(eslint-plugin-promise@6.4.0(eslint@9.13.0(jiti@2.4.2)))(eslint@9.13.0(jiti@2.4.2)):
+ eslint-config-standard@17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0(eslint@9.13.0(jiti@2.5.1)))(eslint-plugin-promise@6.4.0(eslint@9.13.0(jiti@2.5.1)))(eslint@9.13.0(jiti@2.5.1)):
dependencies:
- eslint: 9.13.0(jiti@2.4.2)
- eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.16.1(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4))(eslint@9.13.0(jiti@2.4.2))
- eslint-plugin-n: 15.7.0(eslint@9.13.0(jiti@2.4.2))
- eslint-plugin-promise: 6.4.0(eslint@9.13.0(jiti@2.4.2))
+ eslint: 9.13.0(jiti@2.5.1)
+ eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.16.1(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4))(eslint@9.13.0(jiti@2.5.1))
+ eslint-plugin-n: 15.7.0(eslint@9.13.0(jiti@2.5.1))
+ eslint-plugin-promise: 6.4.0(eslint@9.13.0(jiti@2.5.1))
- eslint-config-turbo@2.0.7(eslint@9.13.0(jiti@2.4.2)):
+ eslint-config-turbo@2.0.7(eslint@9.13.0(jiti@2.5.1)):
dependencies:
- eslint: 9.13.0(jiti@2.4.2)
- eslint-plugin-turbo: 2.0.7(eslint@9.13.0(jiti@2.4.2))
+ eslint: 9.13.0(jiti@2.5.1)
+ eslint-plugin-turbo: 2.0.7(eslint@9.13.0(jiti@2.5.1))
eslint-flat-config-utils@0.4.0:
dependencies:
@@ -12929,13 +12959,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
- eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@9.13.0(jiti@2.4.2)):
+ eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@9.13.0(jiti@2.5.1)):
dependencies:
debug: 4.4.0(supports-color@9.4.0)
enhanced-resolve: 5.17.1
- eslint: 9.13.0(jiti@2.4.2)
- eslint-module-utils: 2.8.1(@typescript-eslint/parser@6.21.0(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.13.0(jiti@2.4.2))
- eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.16.1(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4))(eslint@9.13.0(jiti@2.4.2))
+ eslint: 9.13.0(jiti@2.5.1)
+ eslint-module-utils: 2.8.1(@typescript-eslint/parser@6.21.0(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.13.0(jiti@2.5.1))
+ eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.16.1(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4))(eslint@9.13.0(jiti@2.5.1))
fast-glob: 3.3.2
get-tsconfig: 4.7.5
is-core-module: 2.15.0
@@ -12946,45 +12976,45 @@ snapshots:
- eslint-import-resolver-webpack
- supports-color
- eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.13.0(jiti@2.4.2)):
+ eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.13.0(jiti@2.5.1)):
dependencies:
debug: 3.2.7
optionalDependencies:
- '@typescript-eslint/parser': 6.21.0(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)
- eslint: 9.13.0(jiti@2.4.2)
+ '@typescript-eslint/parser': 6.21.0(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)
+ eslint: 9.13.0(jiti@2.5.1)
eslint-import-resolver-node: 0.3.9
- eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@9.13.0(jiti@2.4.2))
+ eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@9.13.0(jiti@2.5.1))
transitivePeerDependencies:
- supports-color
- eslint-module-utils@2.8.1(@typescript-eslint/parser@7.16.1(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint@9.13.0(jiti@2.4.2)):
+ eslint-module-utils@2.8.1(@typescript-eslint/parser@7.16.1(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint@9.13.0(jiti@2.5.1)):
dependencies:
debug: 3.2.7
optionalDependencies:
- '@typescript-eslint/parser': 7.16.1(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)
- eslint: 9.13.0(jiti@2.4.2)
+ '@typescript-eslint/parser': 7.16.1(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)
+ eslint: 9.13.0(jiti@2.5.1)
eslint-import-resolver-node: 0.3.9
transitivePeerDependencies:
- supports-color
- eslint-plugin-es@3.0.1(eslint@9.13.0(jiti@2.4.2)):
+ eslint-plugin-es@3.0.1(eslint@9.13.0(jiti@2.5.1)):
dependencies:
- eslint: 9.13.0(jiti@2.4.2)
+ eslint: 9.13.0(jiti@2.5.1)
eslint-utils: 2.1.0
regexpp: 3.2.0
- eslint-plugin-es@4.1.0(eslint@9.13.0(jiti@2.4.2)):
+ eslint-plugin-es@4.1.0(eslint@9.13.0(jiti@2.5.1)):
dependencies:
- eslint: 9.13.0(jiti@2.4.2)
+ eslint: 9.13.0(jiti@2.5.1)
eslint-utils: 2.1.0
regexpp: 3.2.0
- eslint-plugin-import-x@4.3.1(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4):
+ eslint-plugin-import-x@4.3.1(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4):
dependencies:
- '@typescript-eslint/utils': 8.10.0(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)
+ '@typescript-eslint/utils': 8.10.0(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)
debug: 4.4.0(supports-color@9.4.0)
doctrine: 3.0.0
- eslint: 9.13.0(jiti@2.4.2)
+ eslint: 9.13.0(jiti@2.5.1)
eslint-import-resolver-node: 0.3.9
get-tsconfig: 4.7.5
is-glob: 4.0.3
@@ -12996,7 +13026,7 @@ snapshots:
- supports-color
- typescript
- eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.21.0(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@9.13.0(jiti@2.4.2)):
+ eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.21.0(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@9.13.0(jiti@2.5.1)):
dependencies:
array-includes: 3.1.8
array.prototype.findlastindex: 1.2.5
@@ -13004,9 +13034,9 @@ snapshots:
array.prototype.flatmap: 1.3.2
debug: 3.2.7
doctrine: 2.1.0
- eslint: 9.13.0(jiti@2.4.2)
+ eslint: 9.13.0(jiti@2.5.1)
eslint-import-resolver-node: 0.3.9
- eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.16.1(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint@9.13.0(jiti@2.4.2))
+ eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.16.1(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint@9.13.0(jiti@2.5.1))
hasown: 2.0.2
is-core-module: 2.15.0
is-glob: 4.0.3
@@ -13017,13 +13047,13 @@ snapshots:
semver: 6.3.1
tsconfig-paths: 3.15.0
optionalDependencies:
- '@typescript-eslint/parser': 6.21.0(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)
+ '@typescript-eslint/parser': 6.21.0(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)
transitivePeerDependencies:
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
- supports-color
- eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.16.1(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4))(eslint@9.13.0(jiti@2.4.2)):
+ eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.16.1(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4))(eslint@9.13.0(jiti@2.5.1)):
dependencies:
array-includes: 3.1.8
array.prototype.findlastindex: 1.2.5
@@ -13031,9 +13061,9 @@ snapshots:
array.prototype.flatmap: 1.3.2
debug: 3.2.7
doctrine: 2.1.0
- eslint: 9.13.0(jiti@2.4.2)
+ eslint: 9.13.0(jiti@2.5.1)
eslint-import-resolver-node: 0.3.9
- eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.16.1(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint@9.13.0(jiti@2.4.2))
+ eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.16.1(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint@9.13.0(jiti@2.5.1))
hasown: 2.0.2
is-core-module: 2.15.0
is-glob: 4.0.3
@@ -13044,20 +13074,20 @@ snapshots:
semver: 6.3.1
tsconfig-paths: 3.15.0
optionalDependencies:
- '@typescript-eslint/parser': 7.16.1(eslint@9.13.0(jiti@2.4.2))(typescript@5.5.4)
+ '@typescript-eslint/parser': 7.16.1(eslint@9.13.0(jiti@2.5.1))(typescript@5.5.4)
transitivePeerDependencies:
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
- supports-color
- eslint-plugin-jsdoc@50.4.3(eslint@9.13.0(jiti@2.4.2)):
+ eslint-plugin-jsdoc@50.4.3(eslint@9.13.0(jiti@2.5.1)):
dependencies:
'@es-joy/jsdoccomment': 0.49.0
are-docs-informative: 0.0.2
comment-parser: 1.4.1
debug: 4.4.0(supports-color@9.4.0)
escape-string-regexp: 4.0.0
- eslint: 9.13.0(jiti@2.4.2)
+ eslint: 9.13.0(jiti@2.5.1)
espree: 10.2.0
esquery: 1.6.0
parse-imports: 2.2.1
@@ -13067,71 +13097,71 @@ snapshots:
transitivePeerDependencies:
- supports-color
- eslint-plugin-n@15.7.0(eslint@9.13.0(jiti@2.4.2)):
+ eslint-plugin-n@15.7.0(eslint@9.13.0(jiti@2.5.1)):
dependencies:
builtins: 5.1.0
- eslint: 9.13.0(jiti@2.4.2)
- eslint-plugin-es: 4.1.0(eslint@9.13.0(jiti@2.4.2))
- eslint-utils: 3.0.0(eslint@9.13.0(jiti@2.4.2))
+ eslint: 9.13.0(jiti@2.5.1)
+ eslint-plugin-es: 4.1.0(eslint@9.13.0(jiti@2.5.1))
+ eslint-utils: 3.0.0(eslint@9.13.0(jiti@2.5.1))
ignore: 5.3.1
is-core-module: 2.15.0
minimatch: 3.1.2
resolve: 1.22.8
semver: 7.7.1
- eslint-plugin-node@11.1.0(eslint@9.13.0(jiti@2.4.2)):
+ eslint-plugin-node@11.1.0(eslint@9.13.0(jiti@2.5.1)):
dependencies:
- eslint: 9.13.0(jiti@2.4.2)
- eslint-plugin-es: 3.0.1(eslint@9.13.0(jiti@2.4.2))
+ eslint: 9.13.0(jiti@2.5.1)
+ eslint-plugin-es: 3.0.1(eslint@9.13.0(jiti@2.5.1))
eslint-utils: 2.1.0
ignore: 5.3.1
minimatch: 3.1.2
resolve: 1.22.8
semver: 6.3.1
- eslint-plugin-prettier@5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.13.0(jiti@2.4.2)))(eslint@9.13.0(jiti@2.4.2))(prettier@3.6.2):
+ eslint-plugin-prettier@5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.13.0(jiti@2.5.1)))(eslint@9.13.0(jiti@2.5.1))(prettier@3.6.2):
dependencies:
- eslint: 9.13.0(jiti@2.4.2)
+ eslint: 9.13.0(jiti@2.5.1)
prettier: 3.6.2
prettier-linter-helpers: 1.0.0
synckit: 0.9.1
optionalDependencies:
'@types/eslint': 9.6.1
- eslint-config-prettier: 9.1.0(eslint@9.13.0(jiti@2.4.2))
+ eslint-config-prettier: 9.1.0(eslint@9.13.0(jiti@2.5.1))
- eslint-plugin-promise@6.4.0(eslint@9.13.0(jiti@2.4.2)):
+ eslint-plugin-promise@6.4.0(eslint@9.13.0(jiti@2.5.1)):
dependencies:
- eslint: 9.13.0(jiti@2.4.2)
+ eslint: 9.13.0(jiti@2.5.1)
- eslint-plugin-regexp@2.6.0(eslint@9.13.0(jiti@2.4.2)):
+ eslint-plugin-regexp@2.6.0(eslint@9.13.0(jiti@2.5.1)):
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@2.4.2))
+ '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@2.5.1))
'@eslint-community/regexpp': 4.11.0
comment-parser: 1.4.1
- eslint: 9.13.0(jiti@2.4.2)
+ eslint: 9.13.0(jiti@2.5.1)
jsdoc-type-pratt-parser: 4.1.0
refa: 0.12.1
regexp-ast-analysis: 0.7.1
scslre: 0.3.0
- eslint-plugin-turbo@2.0.7(eslint@9.13.0(jiti@2.4.2)):
+ eslint-plugin-turbo@2.0.7(eslint@9.13.0(jiti@2.5.1)):
dependencies:
dotenv: 16.0.3
- eslint: 9.13.0(jiti@2.4.2)
+ eslint: 9.13.0(jiti@2.5.1)
- eslint-plugin-turbo@2.5.4(eslint@9.13.0(jiti@2.4.2))(turbo@2.5.4):
+ eslint-plugin-turbo@2.5.4(eslint@9.13.0(jiti@2.5.1))(turbo@2.5.4):
dependencies:
dotenv: 16.0.3
- eslint: 9.13.0(jiti@2.4.2)
+ eslint: 9.13.0(jiti@2.5.1)
turbo: 2.5.4
- eslint-plugin-unicorn@44.0.2(eslint@9.13.0(jiti@2.4.2)):
+ eslint-plugin-unicorn@44.0.2(eslint@9.13.0(jiti@2.5.1)):
dependencies:
'@babel/helper-validator-identifier': 7.25.9
ci-info: 3.9.0
clean-regexp: 1.0.0
- eslint: 9.13.0(jiti@2.4.2)
- eslint-utils: 3.0.0(eslint@9.13.0(jiti@2.4.2))
+ eslint: 9.13.0(jiti@2.5.1)
+ eslint-utils: 3.0.0(eslint@9.13.0(jiti@2.5.1))
esquery: 1.6.0
indent-string: 4.0.0
is-builtin-module: 3.2.1
@@ -13143,15 +13173,15 @@ snapshots:
semver: 7.7.1
strip-indent: 3.0.0
- eslint-plugin-unicorn@54.0.0(eslint@9.13.0(jiti@2.4.2)):
+ eslint-plugin-unicorn@54.0.0(eslint@9.13.0(jiti@2.5.1)):
dependencies:
'@babel/helper-validator-identifier': 7.25.9
- '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@2.4.2))
+ '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@2.5.1))
'@eslint/eslintrc': 3.1.0
ci-info: 4.0.0
clean-regexp: 1.0.0
core-js-compat: 3.37.1
- eslint: 9.13.0(jiti@2.4.2)
+ eslint: 9.13.0(jiti@2.5.1)
esquery: 1.6.0
indent-string: 4.0.0
is-builtin-module: 3.2.1
@@ -13165,14 +13195,14 @@ snapshots:
transitivePeerDependencies:
- supports-color
- eslint-plugin-unicorn@55.0.0(eslint@9.13.0(jiti@2.4.2)):
+ eslint-plugin-unicorn@55.0.0(eslint@9.13.0(jiti@2.5.1)):
dependencies:
'@babel/helper-validator-identifier': 7.25.9
- '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@2.4.2))
+ '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@2.5.1))
ci-info: 4.0.0
clean-regexp: 1.0.0
core-js-compat: 3.37.1
- eslint: 9.13.0(jiti@2.4.2)
+ eslint: 9.13.0(jiti@2.5.1)
esquery: 1.6.0
globals: 15.11.0
indent-string: 4.0.0
@@ -13185,16 +13215,16 @@ snapshots:
semver: 7.6.3
strip-indent: 3.0.0
- eslint-plugin-vue@9.29.0(eslint@9.13.0(jiti@2.4.2)):
+ eslint-plugin-vue@9.29.0(eslint@9.13.0(jiti@2.5.1)):
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@2.4.2))
- eslint: 9.13.0(jiti@2.4.2)
+ '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@2.5.1))
+ eslint: 9.13.0(jiti@2.5.1)
globals: 13.24.0
natural-compare: 1.4.0
nth-check: 2.1.1
postcss-selector-parser: 6.1.2
semver: 7.6.3
- vue-eslint-parser: 9.4.3(eslint@9.13.0(jiti@2.4.2))
+ vue-eslint-parser: 9.4.3(eslint@9.13.0(jiti@2.5.1))
xml-name-validator: 4.0.0
transitivePeerDependencies:
- supports-color
@@ -13219,9 +13249,9 @@ snapshots:
dependencies:
eslint-visitor-keys: 1.3.0
- eslint-utils@3.0.0(eslint@9.13.0(jiti@2.4.2)):
+ eslint-utils@3.0.0(eslint@9.13.0(jiti@2.5.1)):
dependencies:
- eslint: 9.13.0(jiti@2.4.2)
+ eslint: 9.13.0(jiti@2.5.1)
eslint-visitor-keys: 2.1.0
eslint-visitor-keys@1.3.0: {}
@@ -13275,9 +13305,9 @@ snapshots:
transitivePeerDependencies:
- supports-color
- eslint@9.13.0(jiti@2.4.2):
+ eslint@9.13.0(jiti@2.5.1):
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@2.4.2))
+ '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@2.5.1))
'@eslint-community/regexpp': 4.11.0
'@eslint/config-array': 0.18.0
'@eslint/core': 0.7.0
@@ -13313,7 +13343,7 @@ snapshots:
optionator: 0.9.4
text-table: 0.2.0
optionalDependencies:
- jiti: 2.4.2
+ jiti: 2.5.1
transitivePeerDependencies:
- supports-color
@@ -13805,7 +13835,7 @@ snapshots:
cookie-es: 1.2.2
crossws: 0.3.4
defu: 6.1.4
- destr: 2.0.3
+ destr: 2.0.5
iron-webcrypto: 1.2.1
node-mock-http: 1.0.0
radix3: 1.1.2
@@ -14355,7 +14385,7 @@ snapshots:
jest-worker@27.5.1:
dependencies:
- '@types/node': 22.4.1
+ '@types/node': 20.14.11
merge-stream: 2.0.0
supports-color: 8.1.1
optional: true
@@ -15392,14 +15422,14 @@ snapshots:
nuxi@3.16.0: {}
- nuxt@3.14.1592(@parcel/watcher@2.4.1)(@types/node@20.14.11)(eslint@8.57.0)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.28.1)(sass@1.77.6)(terser@5.42.0)(typescript@5.5.4)(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.42.0))(vue-tsc@2.1.6(typescript@5.5.4))(xml2js@0.6.2):
+ nuxt@3.14.1592(@parcel/watcher@2.4.1)(@types/node@20.14.11)(eslint@8.57.0)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.28.1)(sass@1.77.6)(terser@5.43.1)(typescript@5.5.4)(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.43.1))(vue-tsc@2.1.6(typescript@5.5.4))(xml2js@0.6.2):
dependencies:
'@nuxt/devalue': 2.0.2
- '@nuxt/devtools': 1.6.3(rollup@4.28.1)(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.42.0))(vue@3.5.13(typescript@5.5.4))
+ '@nuxt/devtools': 1.6.3(rollup@4.28.1)(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.43.1))(vue@3.5.13(typescript@5.5.4))
'@nuxt/kit': 3.14.1592(magicast@0.3.5)(rollup@4.28.1)
'@nuxt/schema': 3.14.1592(magicast@0.3.5)(rollup@4.28.1)
'@nuxt/telemetry': 2.6.0(magicast@0.3.5)(rollup@4.28.1)
- '@nuxt/vite-builder': 3.14.1592(@types/node@20.14.11)(eslint@8.57.0)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.28.1)(sass@1.77.6)(terser@5.42.0)(typescript@5.5.4)(vue-tsc@2.1.6(typescript@5.5.4))(vue@3.5.13(typescript@5.5.4))
+ '@nuxt/vite-builder': 3.14.1592(@types/node@20.14.11)(eslint@8.57.0)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.28.1)(sass@1.77.6)(terser@5.43.1)(typescript@5.5.4)(vue-tsc@2.1.6(typescript@5.5.4))(vue@3.5.13(typescript@5.5.4))
'@unhead/dom': 1.11.13
'@unhead/shared': 1.11.13
'@unhead/ssr': 1.11.13
@@ -15792,6 +15822,16 @@ snapshots:
pify@4.0.1: {}
+ pinia-plugin-persistedstate@4.4.1(@nuxt/kit@3.17.5(magicast@0.3.5))(@pinia/nuxt@0.5.1(magicast@0.3.5)(rollup@4.28.1)(typescript@5.5.4)(vue@3.5.13(typescript@5.5.4)))(pinia@2.1.7(typescript@5.5.4)(vue@3.5.13(typescript@5.5.4))):
+ dependencies:
+ deep-pick-omit: 1.2.1
+ defu: 6.1.4
+ destr: 2.0.5
+ optionalDependencies:
+ '@nuxt/kit': 3.17.5(magicast@0.3.5)
+ '@pinia/nuxt': 0.5.1(magicast@0.3.5)(rollup@4.28.1)(typescript@5.5.4)(vue@3.5.13(typescript@5.5.4))
+ pinia: 2.1.7(typescript@5.5.4)(vue@3.5.13(typescript@5.5.4))
+
pinia@2.1.7(typescript@5.5.4)(vue@3.5.13(typescript@5.5.4)):
dependencies:
'@vue/devtools-api': 6.6.4
@@ -16811,12 +16851,12 @@ snapshots:
standard-as-callback@2.1.0: {}
- starlight-openapi@0.14.0(@astrojs/markdown-remark@6.2.0)(@astrojs/starlight@0.32.2(astro@5.4.1(@types/node@22.4.1)(db0@0.3.2)(jiti@2.4.2)(rollup@4.34.9)(sass@1.77.6)(terser@5.42.0)(typescript@5.8.2)(yaml@2.8.0)))(astro@5.4.1(@types/node@22.4.1)(db0@0.3.2)(jiti@2.4.2)(rollup@4.34.9)(sass@1.77.6)(terser@5.42.0)(typescript@5.8.2)(yaml@2.8.0))(openapi-types@12.1.3):
+ starlight-openapi@0.14.0(@astrojs/markdown-remark@6.2.0)(@astrojs/starlight@0.32.2(astro@5.4.1(@types/node@22.4.1)(db0@0.3.2)(jiti@2.5.1)(rollup@4.34.9)(sass@1.77.6)(terser@5.43.1)(typescript@5.8.2)(yaml@2.8.0)))(astro@5.4.1(@types/node@22.4.1)(db0@0.3.2)(jiti@2.5.1)(rollup@4.34.9)(sass@1.77.6)(terser@5.43.1)(typescript@5.8.2)(yaml@2.8.0))(openapi-types@12.1.3):
dependencies:
'@astrojs/markdown-remark': 6.2.0
- '@astrojs/starlight': 0.32.2(astro@5.4.1(@types/node@22.4.1)(db0@0.3.2)(jiti@2.4.2)(rollup@4.34.9)(sass@1.77.6)(terser@5.42.0)(typescript@5.8.2)(yaml@2.8.0))
+ '@astrojs/starlight': 0.32.2(astro@5.4.1(@types/node@22.4.1)(db0@0.3.2)(jiti@2.5.1)(rollup@4.34.9)(sass@1.77.6)(terser@5.43.1)(typescript@5.8.2)(yaml@2.8.0))
'@readme/openapi-parser': 2.5.0(openapi-types@12.1.3)
- astro: 5.4.1(@types/node@22.4.1)(db0@0.3.2)(jiti@2.4.2)(rollup@4.34.9)(sass@1.77.6)(terser@5.42.0)(typescript@5.8.2)(yaml@2.8.0)
+ astro: 5.4.1(@types/node@22.4.1)(db0@0.3.2)(jiti@2.5.1)(rollup@4.34.9)(sass@1.77.6)(terser@5.43.1)(typescript@5.8.2)(yaml@2.8.0)
github-slugger: 2.0.0
url-template: 3.1.1
transitivePeerDependencies:
@@ -17587,17 +17627,17 @@ snapshots:
'@types/unist': 3.0.3
vfile-message: 4.0.2
- vite-hot-client@0.2.3(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.42.0)):
+ vite-hot-client@0.2.3(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.43.1)):
dependencies:
- vite: 5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.42.0)
+ vite: 5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.43.1)
- vite-node@2.1.8(@types/node@20.14.11)(sass@1.77.6)(terser@5.42.0):
+ vite-node@2.1.8(@types/node@20.14.11)(sass@1.77.6)(terser@5.43.1):
dependencies:
cac: 6.7.14
debug: 4.4.0(supports-color@9.4.0)
es-module-lexer: 1.5.4
pathe: 1.1.2
- vite: 5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.42.0)
+ vite: 5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.43.1)
transitivePeerDependencies:
- '@types/node'
- less
@@ -17609,7 +17649,7 @@ snapshots:
- supports-color
- terser
- vite-plugin-checker@0.8.0(eslint@8.57.0)(optionator@0.9.4)(typescript@5.5.4)(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.42.0))(vue-tsc@2.1.6(typescript@5.5.4)):
+ vite-plugin-checker@0.8.0(eslint@8.57.0)(optionator@0.9.4)(typescript@5.5.4)(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.43.1))(vue-tsc@2.1.6(typescript@5.5.4)):
dependencies:
'@babel/code-frame': 7.26.2
ansi-escapes: 4.3.2
@@ -17621,7 +17661,7 @@ snapshots:
npm-run-path: 4.0.1
strip-ansi: 6.0.1
tiny-invariant: 1.3.3
- vite: 5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.42.0)
+ vite: 5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.43.1)
vscode-languageclient: 7.0.0
vscode-languageserver: 7.0.0
vscode-languageserver-textdocument: 1.0.12
@@ -17632,7 +17672,7 @@ snapshots:
typescript: 5.5.4
vue-tsc: 2.1.6(typescript@5.5.4)
- vite-plugin-inspect@0.8.9(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.28.1))(rollup@4.28.1)(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.42.0)):
+ vite-plugin-inspect@0.8.9(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.28.1))(rollup@4.28.1)(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.43.1)):
dependencies:
'@antfu/utils': 0.7.10
'@rollup/pluginutils': 5.1.3(rollup@4.28.1)
@@ -17643,14 +17683,14 @@ snapshots:
perfect-debounce: 1.0.0
picocolors: 1.1.1
sirv: 3.0.0
- vite: 5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.42.0)
+ vite: 5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.43.1)
optionalDependencies:
'@nuxt/kit': 3.14.1592(magicast@0.3.5)(rollup@4.28.1)
transitivePeerDependencies:
- rollup
- supports-color
- vite-plugin-vue-inspector@5.1.3(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.42.0)):
+ vite-plugin-vue-inspector@5.1.3(vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.43.1)):
dependencies:
'@babel/core': 7.26.0
'@babel/plugin-proposal-decorators': 7.24.7(@babel/core@7.26.0)
@@ -17661,7 +17701,7 @@ snapshots:
'@vue/compiler-dom': 3.5.13
kolorist: 1.8.0
magic-string: 0.30.14
- vite: 5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.42.0)
+ vite: 5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.43.1)
transitivePeerDependencies:
- supports-color
@@ -17682,7 +17722,7 @@ snapshots:
terser: 5.43.1
optional: true
- vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.42.0):
+ vite@5.4.11(@types/node@20.14.11)(sass@1.77.6)(terser@5.43.1):
dependencies:
esbuild: 0.21.5
postcss: 8.4.49
@@ -17691,9 +17731,9 @@ snapshots:
'@types/node': 20.14.11
fsevents: 2.3.3
sass: 1.77.6
- terser: 5.42.0
+ terser: 5.43.1
- vite@5.4.11(@types/node@22.4.1)(sass@1.77.6)(terser@5.42.0):
+ vite@5.4.11(@types/node@22.4.1)(sass@1.77.6)(terser@5.43.1):
dependencies:
esbuild: 0.21.5
postcss: 8.4.49
@@ -17702,9 +17742,9 @@ snapshots:
'@types/node': 22.4.1
fsevents: 2.3.3
sass: 1.77.6
- terser: 5.42.0
+ terser: 5.43.1
- vite@6.2.0(@types/node@22.4.1)(jiti@2.4.2)(sass@1.77.6)(terser@5.42.0)(yaml@2.8.0):
+ vite@6.2.0(@types/node@22.4.1)(jiti@2.5.1)(sass@1.77.6)(terser@5.43.1)(yaml@2.8.0):
dependencies:
esbuild: 0.25.0
postcss: 8.5.3
@@ -17712,14 +17752,14 @@ snapshots:
optionalDependencies:
'@types/node': 22.4.1
fsevents: 2.3.3
- jiti: 2.4.2
+ jiti: 2.5.1
sass: 1.77.6
- terser: 5.42.0
+ terser: 5.43.1
yaml: 2.8.0
- vitefu@1.0.6(vite@6.2.0(@types/node@22.4.1)(jiti@2.4.2)(sass@1.77.6)(terser@5.42.0)(yaml@2.8.0)):
+ vitefu@1.0.6(vite@6.2.0(@types/node@22.4.1)(jiti@2.5.1)(sass@1.77.6)(terser@5.43.1)(yaml@2.8.0)):
optionalDependencies:
- vite: 6.2.0(@types/node@22.4.1)(jiti@2.4.2)(sass@1.77.6)(terser@5.42.0)(yaml@2.8.0)
+ vite: 6.2.0(@types/node@22.4.1)(jiti@2.5.1)(sass@1.77.6)(terser@5.43.1)(yaml@2.8.0)
volar-service-css@0.0.62(@volar/language-service@2.4.11):
dependencies:
@@ -17843,16 +17883,20 @@ snapshots:
dependencies:
ufo: 1.5.4
+ vue-confetti-explosion@1.0.2(vue@3.5.13(typescript@5.5.4)):
+ dependencies:
+ vue: 3.5.13(typescript@5.5.4)
+
vue-demi@0.14.10(vue@3.5.13(typescript@5.5.4)):
dependencies:
vue: 3.5.13(typescript@5.5.4)
vue-devtools-stub@0.1.0: {}
- vue-eslint-parser@9.4.3(eslint@9.13.0(jiti@2.4.2)):
+ vue-eslint-parser@9.4.3(eslint@9.13.0(jiti@2.5.1)):
dependencies:
debug: 4.4.0(supports-color@9.4.0)
- eslint: 9.13.0(jiti@2.4.2)
+ eslint: 9.13.0(jiti@2.5.1)
eslint-scope: 7.2.2
eslint-visitor-keys: 3.4.3
espree: 9.6.1