@cryptotaxi247 / CoPilot / commits / 06ab668e

Customer integration meta (#462)

* Add getMetaAuto method and CustomerIntegrationMeta types for integration metadata * Add Meta Details functionality to Customer Integration component * Add grafana_datasource_uid field to CustomerIntegrationsMeta model * Add grafana_datasource_uid field to CustomerIntegrationsMetaSchema * Add grafana_datasource_uid to provision_carbonblack function * Add grafana_datasource_uid parameter to provision_cato function * Add grafana_datasource_uid parameter to provision_darktrace function * Add grafana_datasource_uid parameter to provision_duo function * Add grafana_datasource_uid parameter to provision_huntress function * Add grafana_datasource_uid parameter to provision_mimecast function * Add grafana_datasource_uid parameter to provision_office365 function * Add grafana_datasource_uid parameter to provision_sap_siem function * Add updateMetaAuto function and UpdateMetaAutoRequest interface * Add grafana_datasource_uid field to update_meta_auto form and request * Add conditional check for grafana_datasource_uid before deletion in delete_integration function * chore: update frontend dependencies * Add Meta Details modal and update Customer Integration components * Refactor delete_integration function to include deployment check and streamline metadata cleanup process * refactor * feat: add payload parse * feat: add field trim * feat: add Fortinet to network integrations list * feat: add CustomerIntegrationMetaButton component * feat: add meta on network connectors * feat: add Fortinet to the list of network integrations * fix: correct Fortinet entry in network integrations list and improve logging message formatting --------- Co-authored-by: Davide Di Modica <webmaster.ddm@gmail.com>

taylor_socfortress committed Jun 23, 2025 at 09:20 UTC 06ab668e7c9d5c053385dc6b4a951bc3cdffddc6
25 files changed +1366 -707
backend/alembic/versions/8e3b57c8bbb2_add_grafana_datasource_uid_to_customer_.py new
+31
@@ -0,0 +1,31 @@
1 +"""Add grafana_datasource_uid to customer integrations meta table
2 +
3 +Revision ID: 8e3b57c8bbb2
4 +Revises: 53ca91e8a196
5 +Create Date: 2025-06-20 16:18:50.121209
6 +
7 +"""
8 +from typing import Sequence
9 +from typing import Union
10 +
11 +import sqlalchemy as sa
12 +
13 +from alembic import op
14 +
15 +# revision identifiers, used by Alembic.
16 +revision: str = "8e3b57c8bbb2"
17 +down_revision: Union[str, None] = "53ca91e8a196"
18 +branch_labels: Union[str, Sequence[str], None] = None
19 +depends_on: Union[str, Sequence[str], None] = None
20 +
21 +
22 +def upgrade() -> None:
23 + # ### commands auto generated by Alembic - please adjust! ###
24 + op.add_column("customer_integrations_meta", sa.Column("grafana_datasource_uid", sa.String(length=1024), nullable=True))
25 + # ### end Alembic commands ###
26 +
27 +
28 +def downgrade() -> None:
29 + # ### commands auto generated by Alembic - please adjust! ###
30 + op.drop_column("customer_integrations_meta", "grafana_datasource_uid")
31 + # ### end Alembic commands ###
backend/app/integrations/carbonblack/services/provision.py
+1
@@ -338,6 +338,7 @@ async def provision_carbonblack(
338 )
339 ).customer_meta.customer_meta_grafana_org_id,
340 grafana_dashboard_folder_id=grafana_carbonblack_folder_id,
341 + grafana_datasource_uid=carbonblack_datasource_uid,
342 ),
343 session,
344 )
backend/app/integrations/cato/services/provision.py
+1
@@ -338,6 +338,7 @@ async def provision_cato(
338 )
339 ).customer_meta.customer_meta_grafana_org_id,
340 grafana_dashboard_folder_id=grafana_Cato_folder_id,
341 + grafana_datasource_uid=Cato_datasource_uid,
342 ),
343 session,
344 )
backend/app/integrations/darktrace/services/provision.py
+1
@@ -338,6 +338,7 @@ async def provision_darktrace(
338 )
339 ).customer_meta.customer_meta_grafana_org_id,
340 grafana_dashboard_folder_id=grafana_darktrace_folder_id,
341 + grafana_datasource_uid=darktrace_datasource_uid,
342 ),
343 session,
344 )
backend/app/integrations/duo/services/provision.py
+1
@@ -338,6 +338,7 @@ async def provision_duo(
338 )
339 ).customer_meta.customer_meta_grafana_org_id,
340 grafana_dashboard_folder_id=grafana_duo_folder_id,
341 + grafana_datasource_uid=duo_datasource_uid,
342 ),
343 session,
344 )
backend/app/integrations/huntress/services/provision.py
+1
@@ -338,6 +338,7 @@ async def provision_huntress(
338 )
339 ).customer_meta.customer_meta_grafana_org_id,
340 grafana_dashboard_folder_id=grafana_huntress_folder_id,
341 + grafana_datasource_uid=huntress_datasource_uid,
342 ),
343 session,
344 )
backend/app/integrations/mimecast/services/provision.py
+1
@@ -345,6 +345,7 @@ async def provision_mimecast(
345 )
346 ).customer_meta.customer_meta_grafana_org_id,
347 grafana_dashboard_folder_id=grafana_mimecast_folder_id,
348 + grafana_datasource_uid=mimecast_datasource_uid,
349 ),
350 session,
351 )
backend/app/integrations/models/customer_integration_settings.py
+4
@@ -115,3 +115,7 @@ class CustomerIntegrationsMeta(SQLModel, table=True):
115 graylog_stream_id: str = Field(max_length=1024, nullable=False)
116 grafana_org_id: str = Field(max_length=1024, nullable=False)
117 grafana_dashboard_folder_id: str = Field(max_length=1024, nullable=False)
118 + grafana_datasource_uid: Optional[str] = Field(
119 + default=None,
120 + max_length=1024,
121 + )
backend/app/integrations/office365/services/provision.py
+1
@@ -969,6 +969,7 @@ async def provision_office365(
969 )
970 ).customer_meta.customer_meta_grafana_org_id,
971 grafana_dashboard_folder_id=grafana_o365_folder_id,
972 + grafana_datasource_uid=office365_datasource_uid,
973 ),
974 session,
975 )
backend/app/integrations/routes.py
+55 -95
@@ -61,6 +61,8 @@ NETWORK_INTEGRATIONS = [
61 "DefenderForEndpoint",
62 "BITDEFENDER",
63 "CROWDSTRIKE",
64 + "FORTINET",
65 + "Fortinet",
66 # Add other network integrations as needed
67 ]
68
@@ -974,71 +976,6 @@ async def delete_customer_network_connectors_meta(session: AsyncSession, custome
976 )
977
978
977 -# @integration_settings_router.delete(
978 -# "/delete_integration",
979 -# response_model=CustomerIntegrationDeleteResponse,
980 -# description="Delete a customer integration.",
981 -# dependencies=[Security(AuthHandler().require_any_scope("admin", "analyst"))],
982 -# )
983 -# async def delete_integration(
984 -# delete_customer_integration: DeleteCustomerIntegration,
985 -# session: AsyncSession = Depends(get_db),
986 -# ):
987 -# customer_code = delete_customer_integration.customer_code
988 -# integration_name = delete_customer_integration.integration_name
989 -
990 -# results = await get_customer_and_service_ids(
991 -# session,
992 -# customer_code,
993 -# integration_name,
994 -# )
995 -# # Check if results is not empty
996 -# if results:
997 -# # Unpack the first tuple in results
998 -# customer_id, integration_service_id = results[0]
999 -# else:
1000 -# # Handle the case where results is empty
1001 -# raise HTTPException(status_code=404, detail="Customer integration not found")
1002 -
1003 -# subscription_ids = await get_subscription_ids(
1004 -# session,
1005 -# customer_id,
1006 -# integration_service_id,
1007 -# )
1008 -# if not subscription_ids:
1009 -# raise HTTPException(
1010 -# status_code=404,
1011 -# detail="No subscriptions found for customer integration",
1012 -# )
1013 -
1014 -# stream_id = (await fetch_customer_integration_meta(session, customer_code, integration_name)).graylog_stream_id
1015 -# logger.info(f"stream_id: {stream_id}")
1016 -# await delete_stream(stream_id=stream_id)
1017 -
1018 -# index_id = (await fetch_customer_integration_meta(session, customer_code, integration_name)).graylog_index_id
1019 -# logger.info(f"index_id: {index_id}")
1020 -# await delete_index_by_id(index_id=index_id)
1021 -
1022 -# # Delete the folder in Grafana
1023 -# grafana_org_id = (await fetch_customer_integration_meta(session, customer_code, integration_name)).grafana_org_id
1024 -# grafana_dashboard_folder_id = (
1025 -# await fetch_customer_integration_meta(session, customer_code, integration_name)
1026 -# ).grafana_dashboard_folder_id
1027 -
1028 -# await delete_folder(grafana_org_id, int(grafana_dashboard_folder_id))
1029 -
1030 -# await delete_metadata(session, subscription_ids)
1031 -# await delete_subscriptions(session, subscription_ids)
1032 -# await delete_configs(session, integration_service_id)
1033 -# await delete_integration_service(session, integration_service_id)
1034 -# await delete_customer_integration_record(session, customer_id)
1035 -# await delete_customer_integration_meta(session, customer_code, integration_name)
1036 -
1037 -# await session.commit()
1038 -
1039 -# return generate_decommission_response(customer_code, integration_name)
1040 -
1041 -
979 @integration_settings_router.delete(
980 "/delete_integration",
981 response_model=CustomerIntegrationDeleteResponse,
@@ -1068,6 +1005,13 @@ async def delete_integration(
1005 # Handle the case where results is empty
1006 raise HTTPException(status_code=404, detail="Customer integration not found")
1007
1008 + # Check if the integration is deployed before proceeding with metadata cleanup
1009 + stmt = select(CustomerIntegrations.deployed).where(CustomerIntegrations.id == customer_id)
1010 + result = await session.execute(stmt)
1011 + is_deployed = result.scalar()
1012 +
1013 + logger.info(f"Integration {integration_name} for customer {customer_code} deployment status: {is_deployed}")
1014 +
1015 subscription_ids = await get_subscription_ids(
1016 session,
1017 customer_id,
@@ -1079,49 +1023,63 @@ async def delete_integration(
1023 detail="No subscriptions found for customer integration",
1024 )
1025
1082 - # Fetch metadata from appropriate table based on integration type
1083 - if is_network_integration:
1084 - meta_data = await fetch_customer_network_connectors_meta(session, customer_code, integration_name)
1085 - else:
1086 - meta_data = await fetch_customer_integration_meta(session, customer_code, integration_name)
1026 + # Only proceed with infrastructure cleanup if the integration is deployed
1027 + if is_deployed:
1028 + logger.info("Integration is deployed, proceeding with full cleanup including infrastructure components")
1029
1088 - if not meta_data:
1089 - raise HTTPException(status_code=404, detail=f"Metadata not found for {integration_name} integration")
1030 + # Fetch metadata from appropriate table based on integration type
1031 + if is_network_integration:
1032 + meta_data = await fetch_customer_network_connectors_meta(session, customer_code, integration_name)
1033 + else:
1034 + meta_data = await fetch_customer_integration_meta(session, customer_code, integration_name)
1035 +
1036 + if not meta_data:
1037 + raise HTTPException(status_code=404, detail=f"Metadata not found for {integration_name} integration")
1038
1091 - # Delete stream and index using metadata
1092 - stream_id = meta_data.graylog_stream_id
1093 - logger.info(f"stream_id: {stream_id}")
1094 - await delete_stream(stream_id=stream_id)
1039 + # Delete stream and index using metadata
1040 + stream_id = meta_data.graylog_stream_id
1041 + logger.info(f"stream_id: {stream_id}")
1042 + await delete_stream(stream_id=stream_id)
1043
1096 - index_id = meta_data.graylog_index_id
1097 - logger.info(f"index_id: {index_id}")
1098 - await delete_index_by_id(index_id=index_id)
1044 + index_id = meta_data.graylog_index_id
1045 + logger.info(f"index_id: {index_id}")
1046 + await delete_index_by_id(index_id=index_id)
1047
1100 - # Delete the folder in Grafana
1101 - grafana_org_id = meta_data.grafana_org_id
1102 - grafana_dashboard_folder_id = meta_data.grafana_dashboard_folder_id
1048 + # Delete the folder in Grafana
1049 + grafana_org_id = meta_data.grafana_org_id
1050 + grafana_dashboard_folder_id = meta_data.grafana_dashboard_folder_id
1051
1104 - await delete_folder(grafana_org_id, int(grafana_dashboard_folder_id))
1052 + await delete_folder(grafana_org_id, int(grafana_dashboard_folder_id))
1053
1106 - # Delete the grafana datasource
1107 - if is_network_integration:
1108 - await delete_grafana_datasource(
1109 - organization_id=grafana_org_id,
1110 - datasource_uid=meta_data.grafana_datasource_uid,
1054 + # Delete the grafana datasource
1055 + if meta_data.grafana_datasource_uid is not None:
1056 + logger.info(f"Deleting Grafana datasource with UID: {meta_data.grafana_datasource_uid}")
1057 + await delete_grafana_datasource(
1058 + organization_id=grafana_org_id,
1059 + datasource_uid=meta_data.grafana_datasource_uid,
1060 + )
1061 + else:
1062 + logger.info("No Grafana datasource UID found, skipping deletion.")
1063 +
1064 + # Delete metadata from appropriate table
1065 + if is_network_integration:
1066 + await delete_customer_network_connectors_meta(session, customer_code, integration_name)
1067 + else:
1068 + await delete_customer_integration_meta(session, customer_code, integration_name)
1069 +
1070 + else:
1071 + logger.info(
1072 + "Integration is not deployed, skipping infrastructure cleanup (Graylog streams/indexes, Grafana folders/datasources, metadata)",
1073 )
1074
1113 - await delete_metadata(session, subscription_ids)
1075 + # Always delete the integration settings (auth keys, configs, subscriptions, etc.)
1076 + logger.info(f"Deleting integration settings for {integration_name}")
1077 + await delete_metadata(session, subscription_ids) # This deletes auth keys
1078 await delete_subscriptions(session, subscription_ids)
1079 await delete_configs(session, integration_service_id)
1080 await delete_integration_service(session, integration_service_id)
1081 await delete_customer_integration_record(session, customer_id)
1082
1119 - # Delete metadata from appropriate table
1120 - if is_network_integration:
1121 - await delete_customer_network_connectors_meta(session, customer_code, integration_name)
1122 - else:
1123 - await delete_customer_integration_meta(session, customer_code, integration_name)
1124 -
1083 await session.commit()
1084
1085 return generate_decommission_response(customer_code, integration_name)
@@ -1363,6 +1321,8 @@ async def update_meta_auto(
1321 update_data["grafana_org_id"] = update_request.grafana_org_id
1322 if update_request.grafana_dashboard_folder_id is not None:
1323 update_data["grafana_dashboard_folder_id"] = update_request.grafana_dashboard_folder_id
1324 + if update_request.grafana_datasource_uid is not None:
1325 + update_data["grafana_datasource_uid"] = update_request.grafana_datasource_uid
1326
1327 if update_data:
1328 update_stmt = (
backend/app/integrations/sap_siem/services/provision.py
+1
@@ -345,6 +345,7 @@ async def provision_sap_siem(
345 )
346 ).customer_meta.customer_meta_grafana_org_id,
347 grafana_dashboard_folder_id=grafana_sap_siem_folder_id,
348 + grafana_datasource_uid=sap_siem_datasource_uid,
349 ),
350 session,
351 )
backend/app/integrations/schema.py
+1
@@ -226,6 +226,7 @@ class CustomerIntegrationsMetaSchema(BaseModel):
226 graylog_stream_id: str
227 grafana_org_id: str
228 grafana_dashboard_folder_id: str
229 + grafana_datasource_uid: Optional[str] = None
230
231 class Config:
232 orm_mode = True
frontend/package.json
+22 -22
@@ -40,17 +40,17 @@
40 "@codemirror/commands": "^6.8.1",
41 "@codemirror/lang-javascript": "^6.2.4",
42 "@codemirror/lang-xml": "^6.1.0",
43 - "@codemirror/theme-one-dark": "^6.1.2",
43 + "@codemirror/theme-one-dark": "^6.1.3",
44 "@f3ve/vue-markdown-it": "^0.2.3",
45 "@fontsource/jetbrains-mono": "^5.2.6",
46 "@fontsource/lexend": "^5.2.9",
47 "@fontsource/public-sans": "^5.2.6",
48 - "@shikijs/markdown-it": "^3.6.0",
49 - "@vueuse/core": "^13.3.0",
48 + "@shikijs/markdown-it": "^3.7.0",
49 + "@vueuse/core": "^13.4.0",
50 "@vueuse/motion": "^3.0.3",
51 - "axios": "^1.9.0",
51 + "axios": "^1.10.0",
52 "bytes": "^3.1.2",
53 - "codemirror": "~6.0.1",
53 + "codemirror": "~6.0.2",
54 "colord": "^2.9.3",
55 "dayjs": "^1.11.13",
56 "detect-touch-device": "^1.1.6",
@@ -61,20 +61,20 @@
61 "js-md5": "^0.8.3",
62 "lodash": "^4.17.21",
63 "mitt": "^3.0.1",
64 - "naive-ui": "^2.41.1",
64 + "naive-ui": "^2.42.0",
65 "nanoid": "^5.1.5",
66 "password-validator": "^5.3.0",
67 "pinia": "^3.0.3",
68 "pinia-plugin-persistedstate": "^4.3.0",
69 "secure-ls": "^2.0.0",
70 - "shiki": "^3.6.0",
70 + "shiki": "^3.7.0",
71 "thememirror": "^2.0.1",
72 "validator": "^13.15.15",
73 - "vue": "^3.5.16",
73 + "vue": "^3.5.17",
74 "vue-advanced-cropper": "^2.8.9",
75 "vue-codemirror": "^6.1.1",
76 "vue-highlight-words": "^3.0.1",
77 - "vue-i18n": "^11.1.5",
77 + "vue-i18n": "^11.1.6",
78 "vue-router": "^4.5.1",
79 "vue-sjv": "^0.0.6",
80 "vue3-apexcharts": "^1.8.0",
@@ -82,48 +82,48 @@
82 "vuedraggable": "^4.1.0"
83 },
84 "optionalDependencies": {
85 - "@rollup/rollup-linux-x64-gnu": "^4.42.0",
85 + "@rollup/rollup-linux-x64-gnu": "^4.44.0",
86 "treemate": "^0.3.11",
87 "vueuc": "^0.4.64"
88 },
89 "devDependencies": {
90 - "@antfu/eslint-config": "^4.14.1",
90 + "@antfu/eslint-config": "^4.15.0",
91 "@clack/prompts": "^0.11.0",
92 "@iconify/vue": "^5.0.0",
93 - "@tailwindcss/vite": "^4.1.8",
94 - "@tsconfig/node20": "^20.1.5",
93 + "@tailwindcss/vite": "^4.1.10",
94 + "@tsconfig/node20": "^20.1.6",
95 "@types/bytes": "^3.1.5",
96 "@types/file-saver": "^2.0.7",
97 "@types/fs-extra": "^11.0.4",
98 "@types/jsdom": "^21.1.7",
99 - "@types/lodash": "^4.17.17",
99 + "@types/lodash": "^4.17.18",
100 "@types/markdown-it": "^14.1.2",
101 - "@types/node": "^22.15.31",
102 - "@types/validator": "^13.15.1",
101 + "@types/node": "^24.0.3",
102 + "@types/validator": "^13.15.2",
103 "@vitejs/plugin-vue": "^5.2.4",
104 "@vitejs/plugin-vue-jsx": "^4.2.0",
105 "@vue/test-utils": "^2.4.6",
106 "@vue/tsconfig": "^0.7.0",
107 - "cypress": "^14.4.1",
107 + "cypress": "^14.5.0",
108 "depcheck": "^1.4.7",
109 - "eslint": "^9.28.0",
109 + "eslint": "^9.29.0",
110 "flourite": "^1.3.0",
111 "fs-extra": "^11.3.0",
112 "jsdom": "^26.1.0",
113 "npm-run-all2": "^8.0.4",
114 "prettier": "^3.5.3",
115 - "prettier-plugin-tailwindcss": "^0.6.12",
115 + "prettier-plugin-tailwindcss": "^0.6.13",
116 "sass": "^1.89.2",
117 "start-server-and-test": "^2.0.12",
118 - "tailwindcss": "^4.1.8",
118 + "tailwindcss": "^4.1.10",
119 "taze": "^19.1.0",
120 "type-fest": "^4.41.0",
121 "typescript": "~5.8.3",
122 "vite": "^6.3.5",
123 "vite-bundle-visualizer": "^1.2.1",
124 - "vite-plugin-vue-devtools": "^7.7.6",
124 + "vite-plugin-vue-devtools": "^7.7.7",
125 "vite-svg-loader": "^5.1.0",
126 - "vitest": "^3.2.3",
126 + "vitest": "^3.2.4",
127 "vue-tsc": "^2.2.10"
128 },
129 "pnpm": {
frontend/pnpm-lock.yaml
+829 -577
@@ -21,11 +21,11 @@ importers:
21 specifier: ^6.1.0
22 version: 6.1.0
23 '@codemirror/theme-one-dark':
24 - specifier: ^6.1.2
25 - version: 6.1.2
24 + specifier: ^6.1.3
25 + version: 6.1.3
26 '@f3ve/vue-markdown-it':
27 specifier: ^0.2.3
28 - version: 0.2.3(vue@3.5.16(typescript@5.8.3))
28 + version: 0.2.3(vue@3.5.17(typescript@5.8.3))
29 '@fontsource/jetbrains-mono':
30 specifier: ^5.2.6
31 version: 5.2.6
@@ -36,23 +36,23 @@ importers:
36 specifier: ^5.2.6
37 version: 5.2.6
38 '@shikijs/markdown-it':
39 - specifier: ^3.6.0
40 - version: 3.6.0
39 + specifier: ^3.7.0
40 + version: 3.7.0
41 '@vueuse/core':
42 - specifier: ^13.3.0
43 - version: 13.3.0(vue@3.5.16(typescript@5.8.3))
42 + specifier: ^13.4.0
43 + version: 13.4.0(vue@3.5.17(typescript@5.8.3))
44 '@vueuse/motion':
45 specifier: ^3.0.3
46 - version: 3.0.3(vue@3.5.16(typescript@5.8.3))
46 + version: 3.0.3(vue@3.5.17(typescript@5.8.3))
47 axios:
48 - specifier: ^1.9.0
49 - version: 1.9.0(debug@4.4.1)
48 + specifier: ^1.10.0
49 + version: 1.10.0(debug@4.4.1)
50 bytes:
51 specifier: ^3.1.2
52 version: 3.1.2
53 codemirror:
54 - specifier: ~6.0.1
55 - version: 6.0.1
54 + specifier: ~6.0.2
55 + version: 6.0.2
56 colord:
57 specifier: ^2.9.3
58 version: 2.9.3
@@ -84,8 +84,8 @@ importers:
84 specifier: ^3.0.1
85 version: 3.0.1
86 naive-ui:
87 - specifier: ^2.41.1
88 - version: 2.41.1(vue@3.5.16(typescript@5.8.3))
87 + specifier: ^2.42.0
88 + version: 2.42.0(vue@3.5.17(typescript@5.8.3))
89 nanoid:
90 specifier: ^5.1.5
91 version: 5.1.5
@@ -94,16 +94,16 @@ importers:
94 version: 5.3.0
95 pinia:
96 specifier: ^3.0.3
97 - version: 3.0.3(typescript@5.8.3)(vue@3.5.16(typescript@5.8.3))
97 + version: 3.0.3(typescript@5.8.3)(vue@3.5.17(typescript@5.8.3))
98 pinia-plugin-persistedstate:
99 specifier: ^4.3.0
100 - version: 4.3.0(pinia@3.0.3(typescript@5.8.3)(vue@3.5.16(typescript@5.8.3)))
100 + version: 4.3.0(pinia@3.0.3(typescript@5.8.3)(vue@3.5.17(typescript@5.8.3)))
101 secure-ls:
102 specifier: ^2.0.0
103 version: 2.0.0
104 shiki:
105 - specifier: ^3.6.0
106 - version: 3.6.0
105 + specifier: ^3.7.0
106 + version: 3.7.0
107 thememirror:
108 specifier: ^2.0.1
109 version: 2.0.1(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.36.8)
@@ -111,51 +111,51 @@ importers:
111 specifier: ^13.15.15
112 version: 13.15.15
113 vue:
114 - specifier: ^3.5.16
115 - version: 3.5.16(typescript@5.8.3)
114 + specifier: ^3.5.17
115 + version: 3.5.17(typescript@5.8.3)
116 vue-advanced-cropper:
117 specifier: ^2.8.9
118 - version: 2.8.9(vue@3.5.16(typescript@5.8.3))
118 + version: 2.8.9(vue@3.5.17(typescript@5.8.3))
119 vue-codemirror:
120 specifier: ^6.1.1
121 - version: 6.1.1(codemirror@6.0.1)(vue@3.5.16(typescript@5.8.3))
121 + version: 6.1.1(codemirror@6.0.2)(vue@3.5.17(typescript@5.8.3))
122 vue-highlight-words:
123 specifier: ^3.0.1
124 - version: 3.0.1(vue@3.5.16(typescript@5.8.3))
124 + version: 3.0.1(vue@3.5.17(typescript@5.8.3))
125 vue-i18n:
126 - specifier: ^11.1.5
127 - version: 11.1.5(vue@3.5.16(typescript@5.8.3))
126 + specifier: ^11.1.6
127 + version: 11.1.6(vue@3.5.17(typescript@5.8.3))
128 vue-router:
129 specifier: ^4.5.1
130 - version: 4.5.1(vue@3.5.16(typescript@5.8.3))
130 + version: 4.5.1(vue@3.5.17(typescript@5.8.3))
131 vue-sjv:
132 specifier: ^0.0.6
133 - version: 0.0.6(vue@3.5.16(typescript@5.8.3))
133 + version: 0.0.6(vue@3.5.17(typescript@5.8.3))
134 vue3-apexcharts:
135 specifier: ^1.8.0
136 - version: 1.8.0(apexcharts@4.7.0)(vue@3.5.16(typescript@5.8.3))
136 + version: 1.8.0(apexcharts@4.7.0)(vue@3.5.17(typescript@5.8.3))
137 vue3-marquee:
138 specifier: ^4.2.2
139 - version: 4.2.2(vue@3.5.16(typescript@5.8.3))
139 + version: 4.2.2(vue@3.5.17(typescript@5.8.3))
140 vuedraggable:
141 specifier: ^4.1.0
142 - version: 4.1.0(vue@3.5.16(typescript@5.8.3))
142 + version: 4.1.0(vue@3.5.17(typescript@5.8.3))
143 devDependencies:
144 '@antfu/eslint-config':
145 - specifier: ^4.14.1
146 - version: 4.14.1(@vue/compiler-sfc@3.5.16)(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)(vitest@3.2.3(@types/debug@4.1.12)(@types/node@22.15.31)(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0))
145 + specifier: ^4.15.0
146 + version: 4.15.0(@vue/compiler-sfc@3.5.17)(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.0.3)(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0))
147 '@clack/prompts':
148 specifier: ^0.11.0
149 version: 0.11.0
150 '@iconify/vue':
151 specifier: ^5.0.0
152 - version: 5.0.0(vue@3.5.16(typescript@5.8.3))
152 + version: 5.0.0(vue@3.5.17(typescript@5.8.3))
153 '@tailwindcss/vite':
154 - specifier: ^4.1.8
155 - version: 4.1.8(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0))
154 + specifier: ^4.1.10
155 + version: 4.1.10(vite@6.3.5(@types/node@24.0.3)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0))
156 '@tsconfig/node20':
157 - specifier: ^20.1.5
158 - version: 20.1.5
157 + specifier: ^20.1.6
158 + version: 20.1.6
159 '@types/bytes':
160 specifier: ^3.1.5
161 version: 3.1.5
@@ -169,38 +169,38 @@ importers:
169 specifier: ^21.1.7
170 version: 21.1.7
171 '@types/lodash':
172 - specifier: ^4.17.17
173 - version: 4.17.17
172 + specifier: ^4.17.18
173 + version: 4.17.18
174 '@types/markdown-it':
175 specifier: ^14.1.2
176 version: 14.1.2
177 '@types/node':
178 - specifier: ^22.15.31
179 - version: 22.15.31
178 + specifier: ^24.0.3
179 + version: 24.0.3
180 '@types/validator':
181 - specifier: ^13.15.1
182 - version: 13.15.1
181 + specifier: ^13.15.2
182 + version: 13.15.2
183 '@vitejs/plugin-vue':
184 specifier: ^5.2.4
185 - version: 5.2.4(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0))(vue@3.5.16(typescript@5.8.3))
185 + version: 5.2.4(vite@6.3.5(@types/node@24.0.3)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))
186 '@vitejs/plugin-vue-jsx':
187 specifier: ^4.2.0
188 - version: 4.2.0(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0))(vue@3.5.16(typescript@5.8.3))
188 + version: 4.2.0(vite@6.3.5(@types/node@24.0.3)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))
189 '@vue/test-utils':
190 specifier: ^2.4.6
191 version: 2.4.6
192 '@vue/tsconfig':
193 specifier: ^0.7.0
194 - version: 0.7.0(typescript@5.8.3)(vue@3.5.16(typescript@5.8.3))
194 + version: 0.7.0(typescript@5.8.3)(vue@3.5.17(typescript@5.8.3))
195 cypress:
196 - specifier: ^14.4.1
197 - version: 14.4.1
196 + specifier: ^14.5.0
197 + version: 14.5.0
198 depcheck:
199 specifier: ^1.4.7
200 version: 1.4.7
201 eslint:
202 - specifier: ^9.28.0
203 - version: 9.28.0(jiti@2.4.2)
202 + specifier: ^9.29.0
203 + version: 9.29.0(jiti@2.4.2)
204 flourite:
205 specifier: ^1.3.0
206 version: 1.3.0
@@ -217,8 +217,8 @@ importers:
217 specifier: ^3.5.3
218 version: 3.5.3
219 prettier-plugin-tailwindcss:
220 - specifier: ^0.6.12
221 - version: 0.6.12(prettier@3.5.3)
220 + specifier: ^0.6.13
221 + version: 0.6.13(prettier@3.5.3)
222 sass:
223 specifier: ^1.89.2
224 version: 1.89.2
@@ -226,8 +226,8 @@ importers:
226 specifier: ^2.0.12
227 version: 2.0.12
228 tailwindcss:
229 - specifier: ^4.1.8
230 - version: 4.1.8
229 + specifier: ^4.1.10
230 + version: 4.1.10
231 taze:
232 specifier: ^19.1.0
233 version: 19.1.0
@@ -239,32 +239,32 @@ importers:
239 version: 5.8.3
240 vite:
241 specifier: ^6.3.5
242 - version: 6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0)
242 + version: 6.3.5(@types/node@24.0.3)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0)
243 vite-bundle-visualizer:
244 specifier: ^1.2.1
245 version: 1.2.1(rollup@4.41.1)
246 vite-plugin-vue-devtools:
247 - specifier: ^7.7.6
248 - version: 7.7.6(rollup@4.41.1)(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0))(vue@3.5.16(typescript@5.8.3))
247 + specifier: ^7.7.7
248 + version: 7.7.7(rollup@4.41.1)(vite@6.3.5(@types/node@24.0.3)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))
249 vite-svg-loader:
250 specifier: ^5.1.0
251 - version: 5.1.0(vue@3.5.16(typescript@5.8.3))
251 + version: 5.1.0(vue@3.5.17(typescript@5.8.3))
252 vitest:
253 - specifier: ^3.2.3
254 - version: 3.2.3(@types/debug@4.1.12)(@types/node@22.15.31)(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0)
253 + specifier: ^3.2.4
254 + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.0.3)(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0)
255 vue-tsc:
256 specifier: ^2.2.10
257 version: 2.2.10(typescript@5.8.3)
258 optionalDependencies:
259 '@rollup/rollup-linux-x64-gnu':
260 - specifier: ^4.42.0
261 - version: 4.42.0
260 + specifier: ^4.44.0
261 + version: 4.44.0
262 treemate:
263 specifier: ^0.3.11
264 version: 0.3.11
265 vueuc:
266 specifier: ^0.4.64
267 - version: 0.4.64(vue@3.5.16(typescript@5.8.3))
267 + version: 0.4.64(vue@3.5.17(typescript@5.8.3))
268
269 packages:
270
@@ -275,8 +275,8 @@ packages:
275 resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
276 engines: {node: '>=6.0.0'}
277
278 - '@antfu/eslint-config@4.14.1':
279 - resolution: {integrity: sha512-SVGR33/jSUwMWvC8q3NGF/XEHWFJVfMg8yaQJDtRSGISXm23DVA/ANTADpRKhXpk7IjfnjzPpbT/+T6wFzOmUA==}
278 + '@antfu/eslint-config@4.15.0':
279 + resolution: {integrity: sha512-wNn8eDUR+L48nGqX0j8uS19+lHjlhjJsTuhOIbp5aUtnNzAqUuzeoGa7S7rfIbK3XnzcRXJ1AW+xWXsMSGu0YA==}
280 hasBin: true
281 peerDependencies:
282 '@eslint-react/eslint-plugin': ^1.38.4
@@ -420,6 +420,11 @@ packages:
420 engines: {node: '>=6.0.0'}
421 hasBin: true
422
423 + '@babel/parser@7.27.5':
424 + resolution: {integrity: sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==}
425 + engines: {node: '>=6.0.0'}
426 + hasBin: true
427 +
428 '@babel/plugin-proposal-decorators@7.27.1':
429 resolution: {integrity: sha512-DTxe4LBPrtFdsWzgpmbBKevg3e9PBy+dXRt19kSbucbZvL2uqtdqwwpluL1jfxYE0wIDTFp1nTy/q6gNLsxXrg==}
430 engines: {node: '>=6.9.0'}
@@ -503,8 +508,8 @@ packages:
508 '@codemirror/state@6.5.2':
509 resolution: {integrity: sha512-FVqsPqtPWKVVL3dPSxy8wEF/ymIEuVzF1PK3VbUgrxXpJUSHQWWZz4JMToquRxnkw+36LTamCZG2iua2Ptq0fA==}
510
506 - '@codemirror/theme-one-dark@6.1.2':
507 - resolution: {integrity: sha512-F+sH0X16j/qFLMAfbciKTxVOwkdAS336b7AXTKOZhy8BR3eH/RelsnLgLFINrpST63mmN2OuwUt0W2ndUgYwUA==}
511 + '@codemirror/theme-one-dark@6.1.3':
512 + resolution: {integrity: sha512-NzBdIvEJmx6fjeremiGp3t/okrLPYT0d9orIc7AFun8oZcRk58aejkqhv6spnz4MLAevrKNPMQYXEWMg4s+sKA==}
513
514 '@codemirror/view@6.36.8':
515 resolution: {integrity: sha512-yoRo4f+FdnD01fFt4XpfpMCcCAo9QvZOtbrXExn4SqzH32YC6LgzqxfLZw/r6Ge65xyY03mK/UfUqrVw1gFiFg==}
@@ -561,6 +566,10 @@ packages:
566 resolution: {integrity: sha512-YAdE/IJSpwbOTiaURNCKECdAwqrJuFiZhylmesBcIRawtYKnBR2wxPhoIewMg+Yu+QuYvHfJNReWpoxGBKOChA==}
567 engines: {node: '>=18'}
568
569 + '@es-joy/jsdoccomment@0.52.0':
570 + resolution: {integrity: sha512-BXuN7BII+8AyNtn57euU2Yxo9yA/KUDNzrpXyi3pfqKmBhhysR6ZWOebFh3vyPoqA3/j1SOvGgucElMGwlXing==}
571 + engines: {node: '>=20.11.0'}
572 +
573 '@esbuild/aix-ppc64@0.25.5':
574 resolution: {integrity: sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA==}
575 engines: {node: '>=18'}
@@ -736,8 +745,8 @@ packages:
745 eslint:
746 optional: true
747
739 - '@eslint/config-array@0.20.0':
740 - resolution: {integrity: sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==}
748 + '@eslint/config-array@0.20.1':
749 + resolution: {integrity: sha512-OL0RJzC/CBzli0DrrR31qzj6d6i6Mm3HByuhflhl4LOBiWxN+3i6/t/ZQQNii4tjksXi8r2CRW1wMpWA2ULUEw==}
750 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
751
752 '@eslint/config-helpers@0.2.2':
@@ -756,8 +765,8 @@ packages:
765 resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==}
766 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
767
759 - '@eslint/js@9.28.0':
760 - resolution: {integrity: sha512-fnqSjGWd/CoIp4EXIxWVK/sHA6DOHN4+8Ix2cX5ycOY7LG0UY8nHCU5pIp2eaE1Mc7Qd8kHspYNzYXT2ojPLzg==}
768 + '@eslint/js@9.29.0':
769 + resolution: {integrity: sha512-3PIF4cBw/y+1u2EazflInpV+lYsSG0aByVIQzAgb1m1MhHFSbqTyNqtBKHgWf/9Ykud+DhILS9EGkmekVhbKoQ==}
770 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
771
772 '@eslint/markdown@6.5.0':
@@ -824,16 +833,16 @@ packages:
833 peerDependencies:
834 vue: '>=3'
835
827 - '@intlify/core-base@11.1.5':
828 - resolution: {integrity: sha512-xGRkISwV/2Trqb8yVQevlHm5roaQqy+75qwUzEQrviaQF0o4c5VDhjBW7WEGEoKFx09HSgq7NkvK/DAyuerTDg==}
836 + '@intlify/core-base@11.1.6':
837 + resolution: {integrity: sha512-gfMLnoWGiQkA1BwK6Qbrog/e3I6Lnkhqk08XObJb0lMq6sLG1Ggl2MazVaMfGnv/E1Td8pCS5UwR54Ys+fOxmQ==}
838 engines: {node: '>= 16'}
839
831 - '@intlify/message-compiler@11.1.5':
832 - resolution: {integrity: sha512-YLSBbjD7qUdShe3ZAat9Hnf9E8FRpN6qmNFD/x5Xg5JVXjsks0kJ90Zj6aAuyoppJQA/YJdWZ8/bB7k3dg2TjQ==}
840 + '@intlify/message-compiler@11.1.6':
841 + resolution: {integrity: sha512-w0LYo5sqgQZF3vEmjLlx+5PYk5EEiB+uigsBkka/DKoAIH2c5xlXcjAxhTgSw35Vrck+GOGriahFsfbHL+ZjPw==}
842 engines: {node: '>= 16'}
843
835 - '@intlify/shared@11.1.5':
836 - resolution: {integrity: sha512-+I4vRzHm38VjLr/CAciEPJhGYFzWWW4HMTm+6H3WqknXLh0ozNX9oC8ogMUwTSXYR/wGUb1/lTpNziiCH5MybQ==}
844 + '@intlify/shared@11.1.6':
845 + resolution: {integrity: sha512-G1Pe4UILhiGOItuehRW+Pk9/NlnRaMFsdnhZ1fwBjiHvrzitmPNZdLx7Eo3GPfRrsk1mdkilZSfgH8SnM419vA==}
846 engines: {node: '>= 16'}
847
848 '@isaacs/cliui@8.0.2':
@@ -1091,8 +1100,8 @@ packages:
1100 cpu: [x64]
1101 os: [linux]
1102
1094 - '@rollup/rollup-linux-x64-gnu@4.42.0':
1095 - resolution: {integrity: sha512-Gfm6cV6mj3hCUY8TqWa63DB8Mx3NADoFwiJrMpoZ1uESbK8FQV3LXkhfry+8bOniq9pqY1OdsjFWNsSbfjPugw==}
1103 + '@rollup/rollup-linux-x64-gnu@4.44.0':
1104 + resolution: {integrity: sha512-iUVJc3c0o8l9Sa/qlDL2Z9UP92UZZW1+EmQ4xfjTc1akr0iUFZNfxrXJ/R1T90h/ILm9iXEY6+iPrmYB3pXKjw==}
1105 cpu: [x64]
1106 os: [linux]
1107
@@ -1119,31 +1128,31 @@ packages:
1128 '@sec-ant/readable-stream@0.4.1':
1129 resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==}
1130
1122 - '@shikijs/core@3.6.0':
1123 - resolution: {integrity: sha512-9By7Xb3olEX0o6UeJyPLI1PE1scC4d3wcVepvtv2xbuN9/IThYN4Wcwh24rcFeASzPam11MCq8yQpwwzCgSBRw==}
1131 + '@shikijs/core@3.7.0':
1132 + resolution: {integrity: sha512-yilc0S9HvTPyahHpcum8eonYrQtmGTU0lbtwxhA6jHv4Bm1cAdlPFRCJX4AHebkCm75aKTjjRAW+DezqD1b/cg==}
1133
1125 - '@shikijs/engine-javascript@3.6.0':
1126 - resolution: {integrity: sha512-7YnLhZG/TU05IHMG14QaLvTW/9WiK8SEYafceccHUSXs2Qr5vJibUwsDfXDLmRi0zHdzsxrGKpSX6hnqe0k8nA==}
1134 + '@shikijs/engine-javascript@3.7.0':
1135 + resolution: {integrity: sha512-0t17s03Cbv+ZcUvv+y33GtX75WBLQELgNdVghnsdhTgU3hVcWcMsoP6Lb0nDTl95ZJfbP1mVMO0p3byVh3uuzA==}
1136
1128 - '@shikijs/engine-oniguruma@3.6.0':
1129 - resolution: {integrity: sha512-nmOhIZ9yT3Grd+2plmW/d8+vZ2pcQmo/UnVwXMUXAKTXdi+LK0S08Ancrz5tQQPkxvjBalpMW2aKvwXfelauvA==}
1137 + '@shikijs/engine-oniguruma@3.7.0':
1138 + resolution: {integrity: sha512-5BxcD6LjVWsGu4xyaBC5bu8LdNgPCVBnAkWTtOCs/CZxcB22L8rcoWfv7Hh/3WooVjBZmFtyxhgvkQFedPGnFw==}
1139
1131 - '@shikijs/langs@3.6.0':
1132 - resolution: {integrity: sha512-IdZkQJaLBu1LCYCwkr30hNuSDfllOT8RWYVZK1tD2J03DkiagYKRxj/pDSl8Didml3xxuyzUjgtioInwEQM/TA==}
1140 + '@shikijs/langs@3.7.0':
1141 + resolution: {integrity: sha512-1zYtdfXLr9xDKLTGy5kb7O0zDQsxXiIsw1iIBcNOO8Yi5/Y1qDbJ+0VsFoqTlzdmneO8Ij35g7QKF8kcLyznCQ==}
1142
1134 - '@shikijs/markdown-it@3.6.0':
1135 - resolution: {integrity: sha512-OFJb0EY1GOfWEpeXyfav4mDXt4QjqURwhQLTYaBeWP4QjBUUYIdPri+Jf8Fgkds+i4I6WcmX47Wu9vAq8USZsA==}
1143 + '@shikijs/markdown-it@3.7.0':
1144 + resolution: {integrity: sha512-USPP1mn9vdA0lDb/Delrqrf3prCmt4MObSYqyHeXlvMMG+dPRs3B8wrEJr17fYOsnU+kPLV5ahyQL0GhG8KyVw==}
1145 peerDependencies:
1146 markdown-it-async: ^2.2.0
1147 peerDependenciesMeta:
1148 markdown-it-async:
1149 optional: true
1150
1142 - '@shikijs/themes@3.6.0':
1143 - resolution: {integrity: sha512-Fq2j4nWr1DF4drvmhqKq8x5vVQ27VncF8XZMBuHuQMZvUSS3NBgpqfwz/FoGe36+W6PvniZ1yDlg2d4kmYDU6w==}
1151 + '@shikijs/themes@3.7.0':
1152 + resolution: {integrity: sha512-VJx8497iZPy5zLiiCTSIaOChIcKQwR0FebwE9S3rcN0+J/GTWwQ1v/bqhTbpbY3zybPKeO8wdammqkpXc4NVjQ==}
1153
1145 - '@shikijs/types@3.6.0':
1146 - resolution: {integrity: sha512-cLWFiToxYu0aAzJqhXTQsFiJRTFDAGl93IrMSBNaGSzs7ixkLfdG6pH11HipuWFGW5vyx4X47W8HDQ7eSrmBUg==}
1154 + '@shikijs/types@3.7.0':
1155 + resolution: {integrity: sha512-MGaLeaRlSWpnP0XSAum3kP3a8vtcTsITqoEPYdt3lQG3YCdQH4DnEhodkYcNMcU0uW0RffhoD1O3e0vG5eSBBg==}
1156
1157 '@shikijs/vscode-textmate@10.0.2':
1158 resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==}
@@ -1161,8 +1170,8 @@ packages:
1170 resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==}
1171 engines: {node: '>=18'}
1172
1164 - '@stylistic/eslint-plugin@5.0.0-beta.1':
1165 - resolution: {integrity: sha512-26syM7oRlnfUVoQ58GoPVXAXS3rSknWtD9dAx3XHIYxSQsqmd1Uuw7ILG0E6YSO+VYTlhuOcmikP/dg8Cu9d0Q==}
1173 + '@stylistic/eslint-plugin@5.0.0-beta.5':
1174 + resolution: {integrity: sha512-hYoTE1AuPKkF8gN6nwJVnBovUEkt3UGiE3zu8nNmFi3yw7F36l1/tU/VRg16CZC804rnAhUwsYTHqKnAPqICxg==}
1175 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
1176 peerDependencies:
1177 eslint: '>=9.0.0'
@@ -1192,65 +1201,65 @@ packages:
1201 peerDependencies:
1202 '@svgdotjs/svg.js': ^3.2.4
1203
1195 - '@tailwindcss/node@4.1.8':
1196 - resolution: {integrity: sha512-OWwBsbC9BFAJelmnNcrKuf+bka2ZxCE2A4Ft53Tkg4uoiE67r/PMEYwCsourC26E+kmxfwE0hVzMdxqeW+xu7Q==}
1204 + '@tailwindcss/node@4.1.10':
1205 + resolution: {integrity: sha512-2ACf1znY5fpRBwRhMgj9ZXvb2XZW8qs+oTfotJ2C5xR0/WNL7UHZ7zXl6s+rUqedL1mNi+0O+WQr5awGowS3PQ==}
1206
1198 - '@tailwindcss/oxide-android-arm64@4.1.8':
1199 - resolution: {integrity: sha512-Fbz7qni62uKYceWYvUjRqhGfZKwhZDQhlrJKGtnZfuNtHFqa8wmr+Wn74CTWERiW2hn3mN5gTpOoxWKk0jRxjg==}
1207 + '@tailwindcss/oxide-android-arm64@4.1.10':
1208 + resolution: {integrity: sha512-VGLazCoRQ7rtsCzThaI1UyDu/XRYVyH4/EWiaSX6tFglE+xZB5cvtC5Omt0OQ+FfiIVP98su16jDVHDEIuH4iQ==}
1209 engines: {node: '>= 10'}
1210 cpu: [arm64]
1211 os: [android]
1212
1204 - '@tailwindcss/oxide-darwin-arm64@4.1.8':
1205 - resolution: {integrity: sha512-RdRvedGsT0vwVVDztvyXhKpsU2ark/BjgG0huo4+2BluxdXo8NDgzl77qh0T1nUxmM11eXwR8jA39ibvSTbi7A==}
1213 + '@tailwindcss/oxide-darwin-arm64@4.1.10':
1214 + resolution: {integrity: sha512-ZIFqvR1irX2yNjWJzKCqTCcHZbgkSkSkZKbRM3BPzhDL/18idA8uWCoopYA2CSDdSGFlDAxYdU2yBHwAwx8euQ==}
1215 engines: {node: '>= 10'}
1216 cpu: [arm64]
1217 os: [darwin]
1218
1210 - '@tailwindcss/oxide-darwin-x64@4.1.8':
1211 - resolution: {integrity: sha512-t6PgxjEMLp5Ovf7uMb2OFmb3kqzVTPPakWpBIFzppk4JE4ix0yEtbtSjPbU8+PZETpaYMtXvss2Sdkx8Vs4XRw==}
1219 + '@tailwindcss/oxide-darwin-x64@4.1.10':
1220 + resolution: {integrity: sha512-eCA4zbIhWUFDXoamNztmS0MjXHSEJYlvATzWnRiTqJkcUteSjO94PoRHJy1Xbwp9bptjeIxxBHh+zBWFhttbrQ==}
1221 engines: {node: '>= 10'}
1222 cpu: [x64]
1223 os: [darwin]
1224
1216 - '@tailwindcss/oxide-freebsd-x64@4.1.8':
1217 - resolution: {integrity: sha512-g8C8eGEyhHTqwPStSwZNSrOlyx0bhK/V/+zX0Y+n7DoRUzyS8eMbVshVOLJTDDC+Qn9IJnilYbIKzpB9n4aBsg==}
1225 + '@tailwindcss/oxide-freebsd-x64@4.1.10':
1226 + resolution: {integrity: sha512-8/392Xu12R0cc93DpiJvNpJ4wYVSiciUlkiOHOSOQNH3adq9Gi/dtySK7dVQjXIOzlpSHjeCL89RUUI8/GTI6g==}
1227 engines: {node: '>= 10'}
1228 cpu: [x64]
1229 os: [freebsd]
1230
1222 - '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.8':
1223 - resolution: {integrity: sha512-Jmzr3FA4S2tHhaC6yCjac3rGf7hG9R6Gf2z9i9JFcuyy0u79HfQsh/thifbYTF2ic82KJovKKkIB6Z9TdNhCXQ==}
1231 + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.10':
1232 + resolution: {integrity: sha512-t9rhmLT6EqeuPT+MXhWhlRYIMSfh5LZ6kBrC4FS6/+M1yXwfCtp24UumgCWOAJVyjQwG+lYva6wWZxrfvB+NhQ==}
1233 engines: {node: '>= 10'}
1234 cpu: [arm]
1235 os: [linux]
1236
1228 - '@tailwindcss/oxide-linux-arm64-gnu@4.1.8':
1229 - resolution: {integrity: sha512-qq7jXtO1+UEtCmCeBBIRDrPFIVI4ilEQ97qgBGdwXAARrUqSn/L9fUrkb1XP/mvVtoVeR2bt/0L77xx53bPZ/Q==}
1237 + '@tailwindcss/oxide-linux-arm64-gnu@4.1.10':
1238 + resolution: {integrity: sha512-3oWrlNlxLRxXejQ8zImzrVLuZ/9Z2SeKoLhtCu0hpo38hTO2iL86eFOu4sVR8cZc6n3z7eRXXqtHJECa6mFOvA==}
1239 engines: {node: '>= 10'}
1240 cpu: [arm64]
1241 os: [linux]
1242
1234 - '@tailwindcss/oxide-linux-arm64-musl@4.1.8':
1235 - resolution: {integrity: sha512-O6b8QesPbJCRshsNApsOIpzKt3ztG35gfX9tEf4arD7mwNinsoCKxkj8TgEE0YRjmjtO3r9FlJnT/ENd9EVefQ==}
1243 + '@tailwindcss/oxide-linux-arm64-musl@4.1.10':
1244 + resolution: {integrity: sha512-saScU0cmWvg/Ez4gUmQWr9pvY9Kssxt+Xenfx1LG7LmqjcrvBnw4r9VjkFcqmbBb7GCBwYNcZi9X3/oMda9sqQ==}
1245 engines: {node: '>= 10'}
1246 cpu: [arm64]
1247 os: [linux]
1248
1240 - '@tailwindcss/oxide-linux-x64-gnu@4.1.8':
1241 - resolution: {integrity: sha512-32iEXX/pXwikshNOGnERAFwFSfiltmijMIAbUhnNyjFr3tmWmMJWQKU2vNcFX0DACSXJ3ZWcSkzNbaKTdngH6g==}
1249 + '@tailwindcss/oxide-linux-x64-gnu@4.1.10':
1250 + resolution: {integrity: sha512-/G3ao/ybV9YEEgAXeEg28dyH6gs1QG8tvdN9c2MNZdUXYBaIY/Gx0N6RlJzfLy/7Nkdok4kaxKPHKJUlAaoTdA==}
1251 engines: {node: '>= 10'}
1252 cpu: [x64]
1253 os: [linux]
1254
1246 - '@tailwindcss/oxide-linux-x64-musl@4.1.8':
1247 - resolution: {integrity: sha512-s+VSSD+TfZeMEsCaFaHTaY5YNj3Dri8rST09gMvYQKwPphacRG7wbuQ5ZJMIJXN/puxPcg/nU+ucvWguPpvBDg==}
1255 + '@tailwindcss/oxide-linux-x64-musl@4.1.10':
1256 + resolution: {integrity: sha512-LNr7X8fTiKGRtQGOerSayc2pWJp/9ptRYAa4G+U+cjw9kJZvkopav1AQc5HHD+U364f71tZv6XamaHKgrIoVzA==}
1257 engines: {node: '>= 10'}
1258 cpu: [x64]
1259 os: [linux]
1260
1252 - '@tailwindcss/oxide-wasm32-wasi@4.1.8':
1253 - resolution: {integrity: sha512-CXBPVFkpDjM67sS1psWohZ6g/2/cd+cq56vPxK4JeawelxwK4YECgl9Y9TjkE2qfF+9/s1tHHJqrC4SS6cVvSg==}
1261 + '@tailwindcss/oxide-wasm32-wasi@4.1.10':
1262 + resolution: {integrity: sha512-d6ekQpopFQJAcIK2i7ZzWOYGZ+A6NzzvQ3ozBvWFdeyqfOZdYHU66g5yr+/HC4ipP1ZgWsqa80+ISNILk+ae/Q==}
1263 engines: {node: '>=14.0.0'}
1264 cpu: [wasm32]
1265 bundledDependencies:
@@ -1261,24 +1270,24 @@ packages:
1270 - '@emnapi/wasi-threads'
1271 - tslib
1272
1264 - '@tailwindcss/oxide-win32-arm64-msvc@4.1.8':
1265 - resolution: {integrity: sha512-7GmYk1n28teDHUjPlIx4Z6Z4hHEgvP5ZW2QS9ygnDAdI/myh3HTHjDqtSqgu1BpRoI4OiLx+fThAyA1JePoENA==}
1273 + '@tailwindcss/oxide-win32-arm64-msvc@4.1.10':
1274 + resolution: {integrity: sha512-i1Iwg9gRbwNVOCYmnigWCCgow8nDWSFmeTUU5nbNx3rqbe4p0kRbEqLwLJbYZKmSSp23g4N6rCDmm7OuPBXhDA==}
1275 engines: {node: '>= 10'}
1276 cpu: [arm64]
1277 os: [win32]
1278
1270 - '@tailwindcss/oxide-win32-x64-msvc@4.1.8':
1271 - resolution: {integrity: sha512-fou+U20j+Jl0EHwK92spoWISON2OBnCazIc038Xj2TdweYV33ZRkS9nwqiUi2d/Wba5xg5UoHfvynnb/UB49cQ==}
1279 + '@tailwindcss/oxide-win32-x64-msvc@4.1.10':
1280 + resolution: {integrity: sha512-sGiJTjcBSfGq2DVRtaSljq5ZgZS2SDHSIfhOylkBvHVjwOsodBhnb3HdmiKkVuUGKD0I7G63abMOVaskj1KpOA==}
1281 engines: {node: '>= 10'}
1282 cpu: [x64]
1283 os: [win32]
1284
1276 - '@tailwindcss/oxide@4.1.8':
1277 - resolution: {integrity: sha512-d7qvv9PsM5N3VNKhwVUhpK6r4h9wtLkJ6lz9ZY9aeZgrUWk1Z8VPyqyDT9MZlem7GTGseRQHkeB1j3tC7W1P+A==}
1285 + '@tailwindcss/oxide@4.1.10':
1286 + resolution: {integrity: sha512-v0C43s7Pjw+B9w21htrQwuFObSkio2aV/qPx/mhrRldbqxbWJK6KizM+q7BF1/1CmuLqZqX3CeYF7s7P9fbA8Q==}
1287 engines: {node: '>= 10'}
1288
1280 - '@tailwindcss/vite@4.1.8':
1281 - resolution: {integrity: sha512-CQ+I8yxNV5/6uGaJjiuymgw0kEQiNKRinYbZXPdx1fk5WgiyReG0VaUx/Xq6aVNSUNJFzxm6o8FNKS5aMaim5A==}
1289 + '@tailwindcss/vite@4.1.10':
1290 + resolution: {integrity: sha512-QWnD5HDY2IADv+vYR82lOhqOlS1jSCUUAmfem52cXAhRTKxpDh3ARX8TTXJTCCO7Rv7cD2Nlekabv02bwP3a2A==}
1291 peerDependencies:
1292 vite: ^5.2.0 || ^6
1293
@@ -1286,8 +1295,8 @@ packages:
1295 resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
1296 engines: {node: '>=10.13.0'}
1297
1289 - '@tsconfig/node20@20.1.5':
1290 - resolution: {integrity: sha512-Vm8e3WxDTqMGPU4GATF9keQAIy1Drd7bPwlgzKJnZtoOsTm1tduUTbDjg0W5qERvGuxPI2h9RbMufH0YdfBylA==}
1298 + '@tsconfig/node20@20.1.6':
1299 + resolution: {integrity: sha512-sz+Hqx9zwZDpZIV871WSbUzSqNIsXzghZydypnfgzPKLltVJfkINfUeTct31n/tTSa9ZE1ZOfKdRre1uHHquYQ==}
1300
1301 '@types/bytes@3.1.5':
1302 resolution: {integrity: sha512-VgZkrJckypj85YxEsEavcMmmSOIzkUHqWmM4CCyia5dc54YwsXzJ5uT4fYxBQNEXx+oF1krlhgCbvfubXqZYsQ==}
@@ -1304,6 +1313,9 @@ packages:
1313 '@types/estree@1.0.7':
1314 resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==}
1315
1316 + '@types/estree@1.0.8':
1317 + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
1318 +
1319 '@types/file-saver@2.0.7':
1320 resolution: {integrity: sha512-dNKVfHd/jk0SkR/exKGj2ggkB45MAkzvWCaqLUUgkyjITkGNzH8H+yUwr+BLJUBjZOe9w8X3wgmXhZDRg1ED6A==}
1321
@@ -1331,8 +1343,8 @@ packages:
1343 '@types/lodash-es@4.17.12':
1344 resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==}
1345
1334 - '@types/lodash@4.17.17':
1335 - resolution: {integrity: sha512-RRVJ+J3J+WmyOTqnz3PiBLA501eKwXl2noseKOrNo/6+XEHjTAxO4xHvxQB6QuNm+s4WRbn6rSiap8+EA+ykFQ==}
1346 + '@types/lodash@4.17.18':
1347 + resolution: {integrity: sha512-KJ65INaxqxmU6EoCiJmRPZC9H9RVWCRd349tXM2M3O5NA7cY6YL7c0bHAHQ93NOfTObEQ004kd2QVHs/r0+m4g==}
1348
1349 '@types/markdown-it@14.1.2':
1350 resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==}
@@ -1349,8 +1361,8 @@ packages:
1361 '@types/ms@2.1.0':
1362 resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==}
1363
1352 - '@types/node@22.15.31':
1353 - resolution: {integrity: sha512-jnVe5ULKl6tijxUhvQeNbQG/84fHfg+yMak02cT8QVhBx/F05rAVxCGBYYTh2EKz22D6JF5ktXuNwdx7b9iEGw==}
1364 + '@types/node@24.0.3':
1365 + resolution: {integrity: sha512-R4I/kzCYAdRLzfiCabn9hxWfbuHS573x+r0dJMkkzThEa7pbrcDWK+9zu3e7aBOouf+rQAciqPFMnxwr0aWgKg==}
1366
1367 '@types/parse-json@4.0.2':
1368 resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==}
@@ -1367,8 +1379,8 @@ packages:
1379 '@types/unist@3.0.3':
1380 resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==}
1381
1370 - '@types/validator@13.15.1':
1371 - resolution: {integrity: sha512-9gG6ogYcoI2mCMLdcO0NYI0AYrbxIjv0MDmy/5Ywo6CpWWrqYayc+mmgxRsCgtcGJm9BSbXkMsmxGah1iGHAAQ==}
1382 + '@types/validator@13.15.2':
1383 + resolution: {integrity: sha512-y7pa/oEJJ4iGYBxOpfAKn5b9+xuihvzDVnC/OSvlVnGxVg0pOqmjiMafiJ1KVNQEaPZf9HsEp5icEwGg8uIe5Q==}
1384
1385 '@types/web-bluetooth@0.0.21':
1386 resolution: {integrity: sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==}
@@ -1376,16 +1388,16 @@ packages:
1388 '@types/yauzl@2.10.3':
1389 resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==}
1390
1379 - '@typescript-eslint/eslint-plugin@8.33.1':
1380 - resolution: {integrity: sha512-TDCXj+YxLgtvxvFlAvpoRv9MAncDLBV2oT9Bd7YBGC/b/sEURoOYuIwLI99rjWOfY3QtDzO+mk0n4AmdFExW8A==}
1391 + '@typescript-eslint/eslint-plugin@8.34.1':
1392 + resolution: {integrity: sha512-STXcN6ebF6li4PxwNeFnqF8/2BNDvBupf2OPx2yWNzr6mKNGF7q49VM00Pz5FaomJyqvbXpY6PhO+T9w139YEQ==}
1393 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
1394 peerDependencies:
1383 - '@typescript-eslint/parser': ^8.33.1
1395 + '@typescript-eslint/parser': ^8.34.1
1396 eslint: ^8.57.0 || ^9.0.0
1397 typescript: '>=4.8.4 <5.9.0'
1398
1387 - '@typescript-eslint/parser@8.33.1':
1388 - resolution: {integrity: sha512-qwxv6dq682yVvgKKp2qWwLgRbscDAYktPptK4JPojCwwi3R9cwrvIxS4lvBpzmcqzR4bdn54Z0IG1uHFskW4dA==}
1399 + '@typescript-eslint/parser@8.34.1':
1400 + resolution: {integrity: sha512-4O3idHxhyzjClSMJ0a29AcoK0+YwnEqzI6oz3vlRf3xw0zbzt15MzXwItOlnr5nIth6zlY2RENLsOPvhyrKAQA==}
1401 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
1402 peerDependencies:
1403 eslint: ^8.57.0 || ^9.0.0
@@ -1397,18 +1409,34 @@ packages:
1409 peerDependencies:
1410 typescript: '>=4.8.4 <5.9.0'
1411
1412 + '@typescript-eslint/project-service@8.34.1':
1413 + resolution: {integrity: sha512-nuHlOmFZfuRwLJKDGQOVc0xnQrAmuq1Mj/ISou5044y1ajGNp2BNliIqp7F2LPQ5sForz8lempMFCovfeS1XoA==}
1414 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
1415 + peerDependencies:
1416 + typescript: '>=4.8.4 <5.9.0'
1417 +
1418 '@typescript-eslint/scope-manager@8.33.1':
1419 resolution: {integrity: sha512-dM4UBtgmzHR9bS0Rv09JST0RcHYearoEoo3pG5B6GoTR9XcyeqX87FEhPo+5kTvVfKCvfHaHrcgeJQc6mrDKrA==}
1420 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
1421
1422 + '@typescript-eslint/scope-manager@8.34.1':
1423 + resolution: {integrity: sha512-beu6o6QY4hJAgL1E8RaXNC071G4Kso2MGmJskCFQhRhg8VOH/FDbC8soP8NHN7e/Hdphwp8G8cE6OBzC8o41ZA==}
1424 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
1425 +
1426 '@typescript-eslint/tsconfig-utils@8.33.1':
1427 resolution: {integrity: sha512-STAQsGYbHCF0/e+ShUQ4EatXQ7ceh3fBCXkNU7/MZVKulrlq1usH7t2FhxvCpuCi5O5oi1vmVaAjrGeL71OK1g==}
1428 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
1429 peerDependencies:
1430 typescript: '>=4.8.4 <5.9.0'
1431
1410 - '@typescript-eslint/type-utils@8.33.1':
1411 - resolution: {integrity: sha512-1cG37d9xOkhlykom55WVwG2QRNC7YXlxMaMzqw2uPeJixBFfKWZgaP/hjAObqMN/u3fr5BrTwTnc31/L9jQ2ww==}
1432 + '@typescript-eslint/tsconfig-utils@8.34.1':
1433 + resolution: {integrity: sha512-K4Sjdo4/xF9NEeA2khOb7Y5nY6NSXBnod87uniVYW9kHP+hNlDV8trUSFeynA2uxWam4gIWgWoygPrv9VMWrYg==}
1434 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
1435 + peerDependencies:
1436 + typescript: '>=4.8.4 <5.9.0'
1437 +
1438 + '@typescript-eslint/type-utils@8.34.1':
1439 + resolution: {integrity: sha512-Tv7tCCr6e5m8hP4+xFugcrwTOucB8lshffJ6zf1mF1TbU67R+ntCc6DzLNKM+s/uzDyv8gLq7tufaAhIBYeV8g==}
1440 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
1441 peerDependencies:
1442 eslint: ^8.57.0 || ^9.0.0
@@ -1418,12 +1446,22 @@ packages:
1446 resolution: {integrity: sha512-xid1WfizGhy/TKMTwhtVOgalHwPtV8T32MS9MaH50Cwvz6x6YqRIPdD2WvW0XaqOzTV9p5xdLY0h/ZusU5Lokg==}
1447 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
1448
1449 + '@typescript-eslint/types@8.34.1':
1450 + resolution: {integrity: sha512-rjLVbmE7HR18kDsjNIZQHxmv9RZwlgzavryL5Lnj2ujIRTeXlKtILHgRNmQ3j4daw7zd+mQgy+uyt6Zo6I0IGA==}
1451 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
1452 +
1453 '@typescript-eslint/typescript-estree@8.33.1':
1454 resolution: {integrity: sha512-+s9LYcT8LWjdYWu7IWs7FvUxpQ/DGkdjZeE/GGulHvv8rvYwQvVaUZ6DE+j5x/prADUgSbbCWZ2nPI3usuVeOA==}
1455 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
1456 peerDependencies:
1457 typescript: '>=4.8.4 <5.9.0'
1458
1459 + '@typescript-eslint/typescript-estree@8.34.1':
1460 + resolution: {integrity: sha512-rjCNqqYPuMUF5ODD+hWBNmOitjBWghkGKJg6hiCHzUvXRy6rK22Jd3rwbP2Xi+R7oYVvIKhokHVhH41BxPV5mA==}
1461 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
1462 + peerDependencies:
1463 + typescript: '>=4.8.4 <5.9.0'
1464 +
1465 '@typescript-eslint/utils@8.33.1':
1466 resolution: {integrity: sha512-52HaBiEQUaRYqAXpfzWSR2U3gxk92Kw006+xZpElaPMg3C4PgM+A5LqwoQI1f9E5aZ/qlxAZxzm42WX+vn92SQ==}
1467 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -1431,10 +1469,21 @@ packages:
1469 eslint: ^8.57.0 || ^9.0.0
1470 typescript: '>=4.8.4 <5.9.0'
1471
1472 + '@typescript-eslint/utils@8.34.1':
1473 + resolution: {integrity: sha512-mqOwUdZ3KjtGk7xJJnLbHxTuWVn3GO2WZZuM+Slhkun4+qthLdXx32C8xIXbO1kfCECb3jIs3eoxK3eryk7aoQ==}
1474 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
1475 + peerDependencies:
1476 + eslint: ^8.57.0 || ^9.0.0
1477 + typescript: '>=4.8.4 <5.9.0'
1478 +
1479 '@typescript-eslint/visitor-keys@8.33.1':
1480 resolution: {integrity: sha512-3i8NrFcZeeDHJ+7ZUuDkGT+UHq+XoFGsymNK2jZCOHcfEzRQ0BdpRtdpSx/Iyf3MHLWIcLS0COuOPibKQboIiQ==}
1481 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
1482
1483 + '@typescript-eslint/visitor-keys@8.34.1':
1484 + resolution: {integrity: sha512-xoh5rJ+tgsRKoXnkBPFRLZ7rjKM0AfVbC68UZ/ECXoDbfggb9RbEySN359acY1vS3qZ0jVTVWzbtfapwm5ztxw==}
1485 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
1486 +
1487 '@ungap/structured-clone@1.3.0':
1488 resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==}
1489
@@ -1452,8 +1501,8 @@ packages:
1501 vite: ^5.0.0 || ^6.0.0
1502 vue: ^3.2.25
1503
1455 - '@vitest/eslint-plugin@1.2.1':
1456 - resolution: {integrity: sha512-JQr1jdVcrsoS7Sdzn83h9sq4DvREf9Q/onTZbJCqTVlv/76qb+TZrLv/9VhjnjSMHweQH5FdpMDeCR6aDe2fgw==}
1504 + '@vitest/eslint-plugin@1.2.7':
1505 + resolution: {integrity: sha512-7WHcGZo6uXsE4SsSnpGDqKyGrd6NfOMM52WKoHSpTRZLbjMuDyHfA5P7m8yrr73tpqYjsiAdSjSerOnx8uEhpA==}
1506 peerDependencies:
1507 eslint: '>= 8.57.0'
1508 typescript: '>= 5.0.0'
@@ -1464,11 +1513,11 @@ packages:
1513 vitest:
1514 optional: true
1515
1467 - '@vitest/expect@3.2.3':
1468 - resolution: {integrity: sha512-W2RH2TPWVHA1o7UmaFKISPvdicFJH+mjykctJFoAkUw+SPTJTGjUNdKscFBrqM7IPnCVu6zihtKYa7TkZS1dkQ==}
1516 + '@vitest/expect@3.2.4':
1517 + resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==}
1518
1470 - '@vitest/mocker@3.2.3':
1471 - resolution: {integrity: sha512-cP6fIun+Zx8he4rbWvi+Oya6goKQDZK+Yq4hhlggwQBbrlOQ4qtZ+G4nxB6ZnzI9lyIb+JnvyiJnPC2AGbKSPA==}
1519 + '@vitest/mocker@3.2.4':
1520 + resolution: {integrity: sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==}
1521 peerDependencies:
1522 msw: ^2.4.9
1523 vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0
@@ -1478,20 +1527,20 @@ packages:
1527 vite:
1528 optional: true
1529
1481 - '@vitest/pretty-format@3.2.3':
1482 - resolution: {integrity: sha512-yFglXGkr9hW/yEXngO+IKMhP0jxyFw2/qys/CK4fFUZnSltD+MU7dVYGrH8rvPcK/O6feXQA+EU33gjaBBbAng==}
1530 + '@vitest/pretty-format@3.2.4':
1531 + resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==}
1532
1484 - '@vitest/runner@3.2.3':
1485 - resolution: {integrity: sha512-83HWYisT3IpMaU9LN+VN+/nLHVBCSIUKJzGxC5RWUOsK1h3USg7ojL+UXQR3b4o4UBIWCYdD2fxuzM7PQQ1u8w==}
1533 + '@vitest/runner@3.2.4':
1534 + resolution: {integrity: sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==}
1535
1487 - '@vitest/snapshot@3.2.3':
1488 - resolution: {integrity: sha512-9gIVWx2+tysDqUmmM1L0hwadyumqssOL1r8KJipwLx5JVYyxvVRfxvMq7DaWbZZsCqZnu/dZedaZQh4iYTtneA==}
1536 + '@vitest/snapshot@3.2.4':
1537 + resolution: {integrity: sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==}
1538
1490 - '@vitest/spy@3.2.3':
1491 - resolution: {integrity: sha512-JHu9Wl+7bf6FEejTCREy+DmgWe+rQKbK+y32C/k5f4TBIAlijhJbRBIRIOCEpVevgRsCQR2iHRUH2/qKVM/plw==}
1539 + '@vitest/spy@3.2.4':
1540 + resolution: {integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==}
1541
1493 - '@vitest/utils@3.2.3':
1494 - resolution: {integrity: sha512-4zFBCU5Pf+4Z6v+rwnZ1HU1yzOKKvDkMXZrymE2PBlbjKJRlrOxbvpfPSvJTGRIwGoahaOGvp+kbCoxifhzJ1Q==}
1542 + '@vitest/utils@3.2.4':
1543 + resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==}
1544
1545 '@volar/language-core@2.4.14':
1546 resolution: {integrity: sha512-X6beusV0DvuVseaOEy7GoagS4rYHgDHnTrdOj5jeUb49fW5ceQyP9Ej5rBhqgz2wJggl+2fDbbojq1XKaxDi6w==}
@@ -1524,23 +1573,29 @@ packages:
1573 '@vue/compiler-core@3.5.16':
1574 resolution: {integrity: sha512-AOQS2eaQOaaZQoL1u+2rCJIKDruNXVBZSiUD3chnUrsoX5ZTQMaCvXlWNIfxBJuU15r1o7+mpo5223KVtIhAgQ==}
1575
1576 + '@vue/compiler-core@3.5.17':
1577 + resolution: {integrity: sha512-Xe+AittLbAyV0pabcN7cP7/BenRBNcteM4aSDCtRvGw0d9OL+HG1u/XHLY/kt1q4fyMeZYXyIYrsHuPSiDPosA==}
1578 +
1579 '@vue/compiler-dom@3.5.15':
1580 resolution: {integrity: sha512-ZelQd9n+O/UCBdL00rlwCrsArSak+YLZpBVuNDio1hN3+wrCshYZEDUO3khSLAzPbF1oQS2duEoMDUHScUlYjA==}
1581
1582 '@vue/compiler-dom@3.5.16':
1583 resolution: {integrity: sha512-SSJIhBr/teipXiXjmWOVWLnxjNGo65Oj/8wTEQz0nqwQeP75jWZ0n4sF24Zxoht1cuJoWopwj0J0exYwCJ0dCQ==}
1584
1585 + '@vue/compiler-dom@3.5.17':
1586 + resolution: {integrity: sha512-+2UgfLKoaNLhgfhV5Ihnk6wB4ljyW1/7wUIog2puUqajiC29Lp5R/IKDdkebh9jTbTogTbsgB+OY9cEWzG95JQ==}
1587 +
1588 '@vue/compiler-sfc@3.5.15':
1589 resolution: {integrity: sha512-3zndKbxMsOU6afQWer75Zot/aydjtxNj0T2KLg033rAFaQUn2PGuE32ZRe4iMhflbTcAxL0yEYsRWFxtPro8RQ==}
1590
1536 - '@vue/compiler-sfc@3.5.16':
1537 - resolution: {integrity: sha512-rQR6VSFNpiinDy/DVUE0vHoIDUF++6p910cgcZoaAUm3POxgNOOdS/xgoll3rNdKYTYPnnbARDCZOyZ+QSe6Pw==}
1591 + '@vue/compiler-sfc@3.5.17':
1592 + resolution: {integrity: sha512-rQQxbRJMgTqwRugtjw0cnyQv9cP4/4BxWfTdRBkqsTfLOHWykLzbOc3C4GGzAmdMDxhzU/1Ija5bTjMVrddqww==}
1593
1594 '@vue/compiler-ssr@3.5.15':
1595 resolution: {integrity: sha512-gShn8zRREZbrXqTtmLSCffgZXDWv8nHc/GhsW+mbwBfNZL5pI96e7IWcIq8XGQe1TLtVbu7EV9gFIVSmfyarPg==}
1596
1542 - '@vue/compiler-ssr@3.5.16':
1543 - resolution: {integrity: sha512-d2V7kfxbdsjrDSGlJE7my1ZzCXViEcqN6w14DOsDrUCHEA6vbnVCpRFfrc4ryCP/lCKzX2eS1YtnLE/BuC9f/A==}
1597 + '@vue/compiler-ssr@3.5.17':
1598 + resolution: {integrity: sha512-hkDbA0Q20ZzGgpj5uZjb9rBzQtIHLS78mMilwrlpWk2Ep37DYntUz0PonQ6kr113vfOEdM+zTBuJDaceNIW0tQ==}
1599
1600 '@vue/compiler-vue2@2.7.16':
1601 resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==}
@@ -1551,17 +1606,23 @@ packages:
1606 '@vue/devtools-api@7.7.6':
1607 resolution: {integrity: sha512-b2Xx0KvXZObePpXPYHvBRRJLDQn5nhKjXh7vUhMEtWxz1AYNFOVIsh5+HLP8xDGL7sy+Q7hXeUxPHB/KgbtsPw==}
1608
1554 - '@vue/devtools-core@7.7.6':
1555 - resolution: {integrity: sha512-ghVX3zjKPtSHu94Xs03giRIeIWlb9M+gvDRVpIZ/cRIxKHdW6HE/sm1PT3rUYS3aV92CazirT93ne+7IOvGUWg==}
1609 + '@vue/devtools-core@7.7.7':
1610 + resolution: {integrity: sha512-9z9TLbfC+AjAi1PQyWX+OErjIaJmdFlbDHcD+cAMYKY6Bh5VlsAtCeGyRMrXwIlMEQPukvnWt3gZBLwTAIMKzQ==}
1611 peerDependencies:
1612 vue: ^3.0.0
1613
1614 '@vue/devtools-kit@7.7.6':
1615 resolution: {integrity: sha512-geu7ds7tem2Y7Wz+WgbnbZ6T5eadOvozHZ23Atk/8tksHMFOFylKi1xgGlQlVn0wlkEf4hu+vd5ctj1G4kFtwA==}
1616
1617 + '@vue/devtools-kit@7.7.7':
1618 + resolution: {integrity: sha512-wgoZtxcTta65cnZ1Q6MbAfePVFxfM+gq0saaeytoph7nEa7yMXoi6sCPy4ufO111B9msnw0VOWjPEFCXuAKRHA==}
1619 +
1620 '@vue/devtools-shared@7.7.6':
1621 resolution: {integrity: sha512-yFEgJZ/WblEsojQQceuyK6FzpFDx4kqrz2ohInxNj5/DnhoX023upTv4OD6lNPLAA5LLkbwPVb10o/7b+Y4FVA==}
1622
1623 + '@vue/devtools-shared@7.7.7':
1624 + resolution: {integrity: sha512-+udSj47aRl5aKb0memBvcUG9koarqnxNM5yjuREvqwK6T3ap4mn3Zqqc17QrBFTqSMjr3HK1cvStEZpMDpfdyw==}
1625 +
1626 '@vue/language-core@2.2.10':
1627 resolution: {integrity: sha512-+yNoYx6XIKuAO8Mqh1vGytu8jkFEOH5C8iOv3i8Z/65A7x9iAOXA97Q+PqZ3nlm2lxf5rOJuIGI/wDtx/riNYw==}
1628 peerDependencies:
@@ -1570,19 +1631,19 @@ packages:
1631 typescript:
1632 optional: true
1633
1573 - '@vue/reactivity@3.5.16':
1574 - resolution: {integrity: sha512-FG5Q5ee/kxhIm1p2bykPpPwqiUBV3kFySsHEQha5BJvjXdZTUfmya7wP7zC39dFuZAcf/PD5S4Lni55vGLMhvA==}
1634 + '@vue/reactivity@3.5.17':
1635 + resolution: {integrity: sha512-l/rmw2STIscWi7SNJp708FK4Kofs97zc/5aEPQh4bOsReD/8ICuBcEmS7KGwDj5ODQLYWVN2lNibKJL1z5b+Lw==}
1636
1576 - '@vue/runtime-core@3.5.16':
1577 - resolution: {integrity: sha512-bw5Ykq6+JFHYxrQa7Tjr+VSzw7Dj4ldR/udyBZbq73fCdJmyy5MPIFR9IX/M5Qs+TtTjuyUTCnmK3lWWwpAcFQ==}
1637 + '@vue/runtime-core@3.5.17':
1638 + resolution: {integrity: sha512-QQLXa20dHg1R0ri4bjKeGFKEkJA7MMBxrKo2G+gJikmumRS7PTD4BOU9FKrDQWMKowz7frJJGqBffYMgQYS96Q==}
1639
1579 - '@vue/runtime-dom@3.5.16':
1580 - resolution: {integrity: sha512-T1qqYJsG2xMGhImRUV9y/RseB9d0eCYZQ4CWca9ztCuiPj/XWNNN+lkNBuzVbia5z4/cgxdL28NoQCvC0Xcfww==}
1640 + '@vue/runtime-dom@3.5.17':
1641 + resolution: {integrity: sha512-8El0M60TcwZ1QMz4/os2MdlQECgGoVHPuLnQBU3m9h3gdNRW9xRmI8iLS4t/22OQlOE6aJvNNlBiCzPHur4H9g==}
1642
1582 - '@vue/server-renderer@3.5.16':
1583 - resolution: {integrity: sha512-BrX0qLiv/WugguGsnQUJiYOE0Fe5mZTwi6b7X/ybGB0vfrPH9z0gD/Y6WOR1sGCgX4gc25L1RYS5eYQKDMoNIg==}
1643 + '@vue/server-renderer@3.5.17':
1644 + resolution: {integrity: sha512-BOHhm8HalujY6lmC3DbqF6uXN/K00uWiEeF22LfEsm9Q93XeJ/plHTepGwf6tqFcF7GA5oGSSAAUock3VvzaCA==}
1645 peerDependencies:
1585 - vue: 3.5.16
1646 + vue: 3.5.17
1647
1648 '@vue/shared@3.5.15':
1649 resolution: {integrity: sha512-bKvgFJJL1ZX9KxMCTQY6xD9Dhe3nusd1OhyOb1cJYGqvAr0Vg8FIjHPMOEVbJ9GDT9HG+Bjdn4oS8ohKP8EvoA==}
@@ -1590,6 +1651,9 @@ packages:
1651 '@vue/shared@3.5.16':
1652 resolution: {integrity: sha512-c/0fWy3Jw6Z8L9FmTyYfkpM5zklnqqa9+a6dz3DvONRKW2NEbh46BP0FHuLFSWi2TnQEtp91Z6zOWNrU6QiyPg==}
1653
1654 + '@vue/shared@3.5.17':
1655 + resolution: {integrity: sha512-CabR+UN630VnsJO/jHWYBC1YVXyMq94KKp6iF5MQgZJs5I8cmjw6oVMO1oDbtBkENSHSSn/UadWlW/OAgdmKrg==}
1656 +
1657 '@vue/test-utils@2.4.6':
1658 resolution: {integrity: sha512-FMxEjOpYNYiFe0GkaHsnJPXFHxQ6m4t8vI/ElPGpMWxZKpmRvQ33OIrvRXemy6yha03RxhOlQuy+gZMC3CQSow==}
1659
@@ -1604,13 +1668,13 @@ packages:
1668 vue:
1669 optional: true
1670
1607 - '@vueuse/core@13.3.0':
1608 - resolution: {integrity: sha512-uYRz5oEfebHCoRhK4moXFM3NSCd5vu2XMLOq/Riz5FdqZMy2RvBtazdtL3gEcmDyqkztDe9ZP/zymObMIbiYSg==}
1671 + '@vueuse/core@13.4.0':
1672 + resolution: {integrity: sha512-OnK7zW3bTq/QclEk17+vDFN3tuAm8ONb9zQUIHrYQkkFesu3WeGUx/3YzpEp+ly53IfDAT9rsYXgGW6piNZC5w==}
1673 peerDependencies:
1674 vue: ^3.5.0
1675
1612 - '@vueuse/metadata@13.3.0':
1613 - resolution: {integrity: sha512-42IzJIOYCKIb0Yjv1JfaKpx8JlCiTmtCWrPxt7Ja6Wzoq0h79+YVXmBV03N966KEmDEESTbp5R/qO3AB5BDnGw==}
1676 + '@vueuse/metadata@13.4.0':
1677 + resolution: {integrity: sha512-CPDQ/IgOeWbqItg1c/pS+Ulum63MNbpJ4eecjFJqgD/JUCJ822zLfpw6M9HzSvL6wbzMieOtIAW/H8deQASKHg==}
1678
1679 '@vueuse/motion@3.0.3':
1680 resolution: {integrity: sha512-4B+ITsxCI9cojikvrpaJcLXyq0spj3sdlzXjzesWdMRd99hhtFI6OJ/1JsqwtF73YooLe0hUn/xDR6qCtmn5GQ==}
@@ -1622,6 +1686,11 @@ packages:
1686 peerDependencies:
1687 vue: ^3.5.0
1688
1689 + '@vueuse/shared@13.4.0':
1690 + resolution: {integrity: sha512-+AxuKbw8R1gYy5T21V5yhadeNM7rJqb4cPaRI9DdGnnNl3uqXh+unvQ3uCaA2DjYLbNr1+l7ht/B4qEsRegX6A==}
1691 + peerDependencies:
1692 + vue: ^3.5.0
1693 +
1694 '@yr/monotone-cubic-spline@1.0.3':
1695 resolution: {integrity: sha512-FQXkOta0XBSUPHndIKON2Y9JeQz5ZeMqLYZVVK93FliNBFm7LNMIZmY6FrMEB9XPcDbE2bekMbZD6kzDkxwYjA==}
1696
@@ -1639,6 +1708,11 @@ packages:
1708 engines: {node: '>=0.4.0'}
1709 hasBin: true
1710
1711 + acorn@8.15.0:
1712 + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==}
1713 + engines: {node: '>=0.4.0'}
1714 + hasBin: true
1715 +
1716 agent-base@7.1.3:
1717 resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==}
1718 engines: {node: '>= 14'}
@@ -1750,8 +1824,8 @@ packages:
1824 aws4@1.13.2:
1825 resolution: {integrity: sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==}
1826
1753 - axios@1.9.0:
1754 - resolution: {integrity: sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==}
1827 + axios@1.10.0:
1828 + resolution: {integrity: sha512-/1xYAC4MP/HEG+3duIhFr4ZQXR4sQXOIe+o6sdqzeykGLx6Upp/1p8MHqhINOvGeP7xyNHe7tsiJByc4SSVUxw==}
1829
1830 balanced-match@1.0.2:
1831 resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
@@ -1921,8 +1995,8 @@ packages:
1995 resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
1996 engines: {node: '>=12'}
1997
1924 - codemirror@6.0.1:
1925 - resolution: {integrity: sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==}
1998 + codemirror@6.0.2:
1999 + resolution: {integrity: sha512-VhydHotNW5w1UGK0Qj96BwSk/Zqbp9WbnyK2W/eVMv4QyF41INRGpjUhFJY7/uDNuudSc33a/PKr4iDqRduvHw==}
2000
2001 color-convert@2.0.1:
2002 resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
@@ -2048,8 +2122,8 @@ packages:
2122 csstype@3.1.3:
2123 resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
2124
2051 - cypress@14.4.1:
2052 - resolution: {integrity: sha512-YSGvVXtTqSGRTyHbaxHI5dHU/9xc5ymaTIM4BU85GKhj980y6XgA3fShSpj5DatS8knXMsAvYItQxVQFHGpUtw==}
2125 + cypress@14.5.0:
2126 + resolution: {integrity: sha512-1HOnKvWep0LkWuFwPeWkZ0TDl7ivi2/Mz+WNU4dfkeLJaFndS3Ow6TXT7YjuTqLFI2peJKzPKljVUFdymI2K5g==}
2127 engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
2128 hasBin: true
2129
@@ -2338,9 +2412,19 @@ packages:
2412 peerDependencies:
2413 eslint: '>=8'
2414
2341 - eslint-plugin-jsdoc@50.7.1:
2342 - resolution: {integrity: sha512-XBnVA5g2kUVokTNUiE1McEPse5n9/mNUmuJcx52psT6zBs2eVcXSmQBvjfa7NZdfLVSy3u1pEDDUxoxpwy89WA==}
2343 - engines: {node: '>=18'}
2415 + eslint-plugin-import-lite@0.3.0:
2416 + resolution: {integrity: sha512-dkNBAL6jcoCsXZsQ/Tt2yXmMDoNt5NaBh/U7yvccjiK8cai6Ay+MK77bMykmqQA2bTF6lngaLCDij6MTO3KkvA==}
2417 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
2418 + peerDependencies:
2419 + eslint: '>=9.0.0'
2420 + typescript: '>=4.5'
2421 + peerDependenciesMeta:
2422 + typescript:
2423 + optional: true
2424 +
2425 + eslint-plugin-jsdoc@51.1.2:
2426 + resolution: {integrity: sha512-xLg40KhRnlaOX6W+YLofVavGTajOUn6VCSoVC5eWKbsaMMM/aznFAqVXysuk76wSQZJMiBOfC4V6beseIk6eOg==}
2427 + engines: {node: '>=20.11.0'}
2428 peerDependencies:
2429 eslint: ^7.0.0 || ^8.0.0 || ^9.0.0
2430
@@ -2350,8 +2434,8 @@ packages:
2434 peerDependencies:
2435 eslint: '>=6.0.0'
2436
2353 - eslint-plugin-n@17.19.0:
2354 - resolution: {integrity: sha512-qxn1NaDHtizbhVAPpbMT8wWFaLtPnwhfN/e+chdu2i6Vgzmo/tGM62tcJ1Hf7J5Ie4dhse3DOPMmDxduzfifzw==}
2437 + eslint-plugin-n@17.20.0:
2438 + resolution: {integrity: sha512-IRSoatgB/NQJZG5EeTbv/iAx1byOGdbbyhQrNvWdCfTnmPxUT0ao9/eGOeG7ljD8wJBsxwE8f6tES5Db0FRKEw==}
2439 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
2440 peerDependencies:
2441 eslint: '>=8.23.0'
@@ -2360,8 +2444,8 @@ packages:
2444 resolution: {integrity: sha512-brcKcxGnISN2CcVhXJ/kEQlNa0MEfGRtwKtWA16SkqXHKitaKIMrfemJKLKX1YqDU5C/5JY3PvZXd5jEW04e0Q==}
2445 engines: {node: '>=5.0.0'}
2446
2363 - eslint-plugin-perfectionist@4.14.0:
2364 - resolution: {integrity: sha512-BkhiOqzdum8vQSFgj1/q5+6UUWPMn4GELdxuX7uIsGegmAeH/+LnWsiVxgMrxalD0p68sYfMeKaHF1NfrpI/mg==}
2447 + eslint-plugin-perfectionist@4.15.0:
2448 + resolution: {integrity: sha512-pC7PgoXyDnEXe14xvRUhBII8A3zRgggKqJFx2a82fjrItDs1BSI7zdZnQtM2yQvcyod6/ujmzb7ejKPx8lZTnw==}
2449 engines: {node: ^18.0.0 || >=20.0.0}
2450 peerDependencies:
2451 eslint: '>=8.45.0'
@@ -2371,8 +2455,8 @@ packages:
2455 peerDependencies:
2456 eslint: ^9.0.0
2457
2374 - eslint-plugin-regexp@2.8.0:
2375 - resolution: {integrity: sha512-xme90IvkMgdyS+NJC21FM0H6ek4urGsdlIFTXpZRqH2BKJKVSd8hRbyrCpbcqfGBi2jth3eQoLiO3RC1gxZHiw==}
2458 + eslint-plugin-regexp@2.9.0:
2459 + resolution: {integrity: sha512-9WqJMnOq8VlE/cK+YAo9C9YHhkOtcEtEk9d12a+H7OSZFwlpI6stiHmYPGa2VE0QhTzodJyhlyprUaXDZLgHBw==}
2460 engines: {node: ^18 || >=20}
2461 peerDependencies:
2462 eslint: '>=8.44.0'
@@ -2421,6 +2505,10 @@ packages:
2505 resolution: {integrity: sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==}
2506 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
2507
2508 + eslint-scope@8.4.0:
2509 + resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==}
2510 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
2511 +
2512 eslint-visitor-keys@3.4.3:
2513 resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
2514 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -2429,8 +2517,12 @@ packages:
2517 resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==}
2518 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
2519
2432 - eslint@9.28.0:
2433 - resolution: {integrity: sha512-ocgh41VhRlf9+fVpe7QKzwLj9c92fDiqOj8Y3Sd4/ZmVA4Btx4PlUYPq4pp9JDyupkf1upbEXecxL2mwNV7jPQ==}
2520 + eslint-visitor-keys@4.2.1:
2521 + resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==}
2522 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
2523 +
2524 + eslint@9.29.0:
2525 + resolution: {integrity: sha512-GsGizj2Y1rCWDu6XoEekL3RLilp0voSePurjZIkxL3wlm5o5EC9VpgaP7lrCvjnkuLvzFBQWB3vWB3K5KQTveQ==}
2526 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
2527 hasBin: true
2528 peerDependencies:
@@ -2443,6 +2535,10 @@ packages:
2535 resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==}
2536 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
2537
2538 + espree@10.4.0:
2539 + resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==}
2540 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
2541 +
2542 espree@9.6.1:
2543 resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
2544 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -2746,6 +2842,10 @@ packages:
2842 resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
2843 engines: {node: '>= 0.4'}
2844
2845 + hasha@5.2.2:
2846 + resolution: {integrity: sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==}
2847 + engines: {node: '>=8'}
2848 +
2849 hasown@2.0.2:
2850 resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
2851 engines: {node: '>= 0.4'}
@@ -3198,6 +3298,9 @@ packages:
3298 loupe@3.1.3:
3299 resolution: {integrity: sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==}
3300
3301 + loupe@3.1.4:
3302 + resolution: {integrity: sha512-wJzkKwJrheKtknCOKNEtDK4iqg/MxmZheEMtSTYvnzRdEYaZzmgH976nenp8WdJRdx5Vc1X/9MO0Oszl6ezeXg==}
3303 +
3304 lru-cache@10.4.3:
3305 resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
3306
@@ -3446,8 +3549,8 @@ packages:
3549 resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==}
3550 engines: {node: '>=10'}
3551
3449 - naive-ui@2.41.1:
3450 - resolution: {integrity: sha512-TRv+GSCHnlbpiTJoz1xS1/l6Vn9/refjzJ6vFfXLuvBkSLB7ow6ERuLf2AQOqUrFSdM542EBJjoK1iM1S6X2lA==}
3552 + naive-ui@2.42.0:
3553 + resolution: {integrity: sha512-c7cXR2YgOjgtBadXHwiWL4Y0tpGLAI5W5QzzHksOi22iuHXoSGMAzdkVTGVPE/PM0MSGQ/JtUIzCx2Y0hU0vTQ==}
3554 peerDependencies:
3555 vue: ^3.0.0
3556
@@ -3715,12 +3818,16 @@ packages:
3818 resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==}
3819 engines: {node: ^10 || ^12 || >=14}
3820
3821 + postcss@8.5.6:
3822 + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==}
3823 + engines: {node: ^10 || ^12 || >=14}
3824 +
3825 prelude-ls@1.2.1:
3826 resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
3827 engines: {node: '>= 0.8.0'}
3828
3722 - prettier-plugin-tailwindcss@0.6.12:
3723 - resolution: {integrity: sha512-OuTQKoqNwV7RnxTPwXWzOFXy6Jc4z8oeRZYGuMpRyG3WbuR3jjXdQFK8qFBMBx8UHWdHrddARz2fgUenild6aw==}
3829 + prettier-plugin-tailwindcss@0.6.13:
3830 + resolution: {integrity: sha512-uQ0asli1+ic8xrrSmIOaElDu0FacR4x69GynTh2oZjFY10JUt6EEumTQl5tB4fMeD6I1naKd+4rXQQ7esT2i1g==}
3831 engines: {node: '>=14.21.3'}
3832 peerDependencies:
3833 '@ianvs/prettier-plugin-sort-imports': '*'
@@ -3998,8 +4105,8 @@ packages:
4105 resolution: {integrity: sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==}
4106 engines: {node: '>= 0.4'}
4107
4001 - shiki@3.6.0:
4002 - resolution: {integrity: sha512-tKn/Y0MGBTffQoklaATXmTqDU02zx8NYBGQ+F6gy87/YjKbizcLd+Cybh/0ZtOBX9r1NEnAy/GTRDKtOsc1L9w==}
4108 + shiki@3.7.0:
4109 + resolution: {integrity: sha512-ZcI4UT9n6N2pDuM2n3Jbk0sR4Swzq43nLPgS/4h0E3B/NrFn2HKElrDtceSf8Zx/OWYOo7G1SAtBLypCp+YXqg==}
4110
4111 side-channel-list@1.0.0:
4112 resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==}
@@ -4166,8 +4273,8 @@ packages:
4273 resolution: {integrity: sha512-2pR2ubZSV64f/vqm9eLPz/KOvR9Dm+Co/5ChLgeHl0yEDRc6h5hXHoxEQH8Y5Ljycozd3p1k5TTSVdzYGkPvLw==}
4274 engines: {node: ^14.18.0 || >=16.0.0}
4275
4169 - tailwindcss@4.1.8:
4170 - resolution: {integrity: sha512-kjeW8gjdxasbmFKpVGrGd5T4i40mV5J2Rasw48QARfYeQ8YS9x02ON9SFWax3Qf616rt4Cp3nVNIj6Hd1mP3og==}
4276 + tailwindcss@4.1.10:
4277 + resolution: {integrity: sha512-P3nr6WkvKV/ONsTzj6Gb57sWPMX29EPNPopo7+FcpkQaNsrNpZ1pv8QmrYI2RqEKD7mlGqLnGovlcYnBK0IqUA==}
4278
4279 tapable@2.2.2:
4280 resolution: {integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==}
@@ -4207,8 +4314,8 @@ packages:
4314 resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==}
4315 engines: {node: '>=12.0.0'}
4316
4210 - tinypool@1.1.0:
4211 - resolution: {integrity: sha512-7CotroY9a8DKsKprEy/a14aCCm8jYVmR7aFy4fpkZM8sdpNJbKkixuNjgM50yCmip2ezc8z4N7k3oe2+rfRJCQ==}
4317 + tinypool@1.1.1:
4318 + resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==}
4319 engines: {node: ^18.0.0 || >=20.0.0}
4320
4321 tinyrainbow@2.0.0:
@@ -4294,6 +4401,10 @@ packages:
4401 resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
4402 engines: {node: '>=10'}
4403
4404 + type-fest@0.8.1:
4405 + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==}
4406 + engines: {node: '>=8'}
4407 +
4408 type-fest@4.41.0:
4409 resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==}
4410 engines: {node: '>=16'}
@@ -4315,8 +4426,8 @@ packages:
4426 unctx@2.4.1:
4427 resolution: {integrity: sha512-AbaYw0Nm4mK4qjhns67C+kgxR2YWiwlDBPzxrN8h8C6VtAdCgditAY5Dezu3IJy4XVqAnbrXt9oQJvsn3fyozg==}
4428
4318 - undici-types@6.21.0:
4319 - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
4429 + undici-types@7.8.0:
4430 + resolution: {integrity: sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==}
4431
4432 unicorn-magic@0.3.0:
4433 resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==}
@@ -4406,8 +4517,8 @@ packages:
4517 peerDependencies:
4518 vite: ^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0
4519
4409 - vite-node@3.2.3:
4410 - resolution: {integrity: sha512-gc8aAifGuDIpZHrPjuHyP4dpQmYXqWw7D1GmDnWeNWP654UEXzVfQ5IHPSK5HaHkwB/+p1atpYpSdw/2kOv8iQ==}
4520 + vite-node@3.2.4:
4521 + resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==}
4522 engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
4523 hasBin: true
4524
@@ -4421,11 +4532,11 @@ packages:
4532 '@nuxt/kit':
4533 optional: true
4534
4424 - vite-plugin-vue-devtools@7.7.6:
4425 - resolution: {integrity: sha512-L7nPVM5a7lgit/Z+36iwoqHOaP3wxqVi1UvaDJwGCfblS9Y6vNqf32ILlzJVH9c47aHu90BhDXeZc+rgzHRHcw==}
4535 + vite-plugin-vue-devtools@7.7.7:
4536 + resolution: {integrity: sha512-d0fIh3wRcgSlr4Vz7bAk4va1MkdqhQgj9ANE/rBhsAjOnRfTLs2ocjFMvSUOsv6SRRXU9G+VM7yMgqDb6yI4iQ==}
4537 engines: {node: '>=v14.21.3'}
4538 peerDependencies:
4428 - vite: ^3.1.0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0
4539 + vite: ^3.1.0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0
4540
4541 vite-plugin-vue-inspector@5.3.1:
4542 resolution: {integrity: sha512-cBk172kZKTdvGpJuzCCLg8lJ909wopwsu3Ve9FsL1XsnLBiRT9U3MePcqrgGHgCX2ZgkqZmAGR8taxw+TV6s7A==}
@@ -4477,16 +4588,16 @@ packages:
4588 yaml:
4589 optional: true
4590
4480 - vitest@3.2.3:
4481 - resolution: {integrity: sha512-E6U2ZFXe3N/t4f5BwUaVCKRLHqUpk1CBWeMh78UT4VaTPH/2dyvH6ALl29JTovEPu9dVKr/K/J4PkXgrMbw4Ww==}
4591 + vitest@3.2.4:
4592 + resolution: {integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==}
4593 engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
4594 hasBin: true
4595 peerDependencies:
4596 '@edge-runtime/vm': '*'
4597 '@types/debug': ^4.1.12
4598 '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0
4488 - '@vitest/browser': 3.2.3
4489 - '@vitest/ui': 3.2.3
4599 + '@vitest/browser': 3.2.4
4600 + '@vitest/ui': 3.2.4
4601 happy-dom: '*'
4602 jsdom: '*'
4603 peerDependenciesMeta:
@@ -4539,8 +4650,8 @@ packages:
4650 peerDependencies:
4651 vue: ^3.0.0
4652
4542 - vue-i18n@11.1.5:
4543 - resolution: {integrity: sha512-XCwuaEA5AF97g1frvH/EI1zI9uo1XKTf2/OCFgts7NvUWRsjlgeHPrkJV+a3gpzai2pC4quZ4AnOHFO8QK9hsg==}
4653 + vue-i18n@11.1.6:
4654 + resolution: {integrity: sha512-+IbsW/sTZHj7U1w0rPOYJbuSB0/7DeO1nvUo3BxvO20OQgHs+ukJ3QeLqvoUA6DiLk+8SA9+djRmKC9+FC6cAg==}
4655 engines: {node: '>= 16'}
4656 peerDependencies:
4657 vue: ^3.0.0
@@ -4573,8 +4684,8 @@ packages:
4684 peerDependencies:
4685 vue: ^3.2
4686
4576 - vue@3.5.16:
4577 - resolution: {integrity: sha512-rjOV2ecxMd5SiAmof2xzh2WxntRcigkX/He4YFJ6WdRvVUrbt6DxC1Iujh10XLl8xCDRDtGKMeO3D+pRQ1PP9w==}
4687 + vue@3.5.17:
4688 + resolution: {integrity: sha512-LbHV3xPN9BeljML+Xctq4lbz2lVHCR6DtbpTf5XIO6gugpXUN49j2QQPcMj086r9+AkJ0FfUT8xjulKKBkkr9g==}
4689 peerDependencies:
4690 typescript: '*'
4691 peerDependenciesMeta:
@@ -4751,43 +4862,44 @@ snapshots:
4862 '@jridgewell/gen-mapping': 0.3.8
4863 '@jridgewell/trace-mapping': 0.3.25
4864
4754 - '@antfu/eslint-config@4.14.1(@vue/compiler-sfc@3.5.16)(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)(vitest@3.2.3(@types/debug@4.1.12)(@types/node@22.15.31)(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0))':
4865 + '@antfu/eslint-config@4.15.0(@vue/compiler-sfc@3.5.17)(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.0.3)(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0))':
4866 dependencies:
4867 '@antfu/install-pkg': 1.1.0
4868 '@clack/prompts': 0.11.0
4758 - '@eslint-community/eslint-plugin-eslint-comments': 4.5.0(eslint@9.28.0(jiti@2.4.2))
4869 + '@eslint-community/eslint-plugin-eslint-comments': 4.5.0(eslint@9.29.0(jiti@2.4.2))
4870 '@eslint/markdown': 6.5.0
4760 - '@stylistic/eslint-plugin': 5.0.0-beta.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)
4761 - '@typescript-eslint/eslint-plugin': 8.33.1(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)
4762 - '@typescript-eslint/parser': 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)
4763 - '@vitest/eslint-plugin': 1.2.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)(vitest@3.2.3(@types/debug@4.1.12)(@types/node@22.15.31)(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0))
4871 + '@stylistic/eslint-plugin': 5.0.0-beta.5(eslint@9.29.0(jiti@2.4.2))
4872 + '@typescript-eslint/eslint-plugin': 8.34.1(@typescript-eslint/parser@8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)
4873 + '@typescript-eslint/parser': 8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)
4874 + '@vitest/eslint-plugin': 1.2.7(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.0.3)(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0))
4875 ansis: 4.1.0
4876 cac: 6.7.14
4766 - eslint: 9.28.0(jiti@2.4.2)
4767 - eslint-config-flat-gitignore: 2.1.0(eslint@9.28.0(jiti@2.4.2))
4877 + eslint: 9.29.0(jiti@2.4.2)
4878 + eslint-config-flat-gitignore: 2.1.0(eslint@9.29.0(jiti@2.4.2))
4879 eslint-flat-config-utils: 2.1.0
4769 - eslint-merge-processors: 2.0.0(eslint@9.28.0(jiti@2.4.2))
4770 - eslint-plugin-antfu: 3.1.1(eslint@9.28.0(jiti@2.4.2))
4771 - eslint-plugin-command: 3.2.1(eslint@9.28.0(jiti@2.4.2))
4772 - eslint-plugin-jsdoc: 50.7.1(eslint@9.28.0(jiti@2.4.2))
4773 - eslint-plugin-jsonc: 2.20.1(eslint@9.28.0(jiti@2.4.2))
4774 - eslint-plugin-n: 17.19.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)
4880 + eslint-merge-processors: 2.0.0(eslint@9.29.0(jiti@2.4.2))
4881 + eslint-plugin-antfu: 3.1.1(eslint@9.29.0(jiti@2.4.2))
4882 + eslint-plugin-command: 3.2.1(eslint@9.29.0(jiti@2.4.2))
4883 + eslint-plugin-import-lite: 0.3.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)
4884 + eslint-plugin-jsdoc: 51.1.2(eslint@9.29.0(jiti@2.4.2))
4885 + eslint-plugin-jsonc: 2.20.1(eslint@9.29.0(jiti@2.4.2))
4886 + eslint-plugin-n: 17.20.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)
4887 eslint-plugin-no-only-tests: 3.3.0
4776 - eslint-plugin-perfectionist: 4.14.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)
4777 - eslint-plugin-pnpm: 0.3.1(eslint@9.28.0(jiti@2.4.2))
4778 - eslint-plugin-regexp: 2.8.0(eslint@9.28.0(jiti@2.4.2))
4779 - eslint-plugin-toml: 0.12.0(eslint@9.28.0(jiti@2.4.2))
4780 - eslint-plugin-unicorn: 59.0.1(eslint@9.28.0(jiti@2.4.2))
4781 - eslint-plugin-unused-imports: 4.1.4(@typescript-eslint/eslint-plugin@8.33.1(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2))
4782 - eslint-plugin-vue: 10.2.0(eslint@9.28.0(jiti@2.4.2))(vue-eslint-parser@10.1.3(eslint@9.28.0(jiti@2.4.2)))
4783 - eslint-plugin-yml: 1.18.0(eslint@9.28.0(jiti@2.4.2))
4784 - eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.16)(eslint@9.28.0(jiti@2.4.2))
4888 + eslint-plugin-perfectionist: 4.15.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)
4889 + eslint-plugin-pnpm: 0.3.1(eslint@9.29.0(jiti@2.4.2))
4890 + eslint-plugin-regexp: 2.9.0(eslint@9.29.0(jiti@2.4.2))
4891 + eslint-plugin-toml: 0.12.0(eslint@9.29.0(jiti@2.4.2))
4892 + eslint-plugin-unicorn: 59.0.1(eslint@9.29.0(jiti@2.4.2))
4893 + eslint-plugin-unused-imports: 4.1.4(@typescript-eslint/eslint-plugin@8.34.1(@typescript-eslint/parser@8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.29.0(jiti@2.4.2))
4894 + eslint-plugin-vue: 10.2.0(eslint@9.29.0(jiti@2.4.2))(vue-eslint-parser@10.1.3(eslint@9.29.0(jiti@2.4.2)))
4895 + eslint-plugin-yml: 1.18.0(eslint@9.29.0(jiti@2.4.2))
4896 + eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.17)(eslint@9.29.0(jiti@2.4.2))
4897 globals: 16.2.0
4898 jsonc-eslint-parser: 2.4.0
4899 local-pkg: 1.1.1
4900 parse-gitignore: 2.0.0
4901 toml-eslint-parser: 0.10.0
4790 - vue-eslint-parser: 10.1.3(eslint@9.28.0(jiti@2.4.2))
4902 + vue-eslint-parser: 10.1.3(eslint@9.29.0(jiti@2.4.2))
4903 yaml-eslint-parser: 1.3.0
4904 transitivePeerDependencies:
4905 - '@eslint/json'
@@ -4939,6 +5051,10 @@ snapshots:
5051 dependencies:
5052 '@babel/types': 7.27.3
5053
5054 + '@babel/parser@7.27.5':
5055 + dependencies:
5056 + '@babel/types': 7.27.3
5057 +
5058 '@babel/plugin-proposal-decorators@7.27.1(@babel/core@7.27.3)':
5059 dependencies:
5060 '@babel/core': 7.27.3
@@ -5076,7 +5192,7 @@ snapshots:
5192 dependencies:
5193 '@marijn/find-cluster-break': 1.0.2
5194
5079 - '@codemirror/theme-one-dark@6.1.2':
5195 + '@codemirror/theme-one-dark@6.1.3':
5196 dependencies:
5197 '@codemirror/language': 6.11.0
5198 '@codemirror/state': 6.5.2
@@ -5093,9 +5209,9 @@ snapshots:
5209 dependencies:
5210 css-render: 0.15.14
5211
5096 - '@css-render/vue3-ssr@0.15.14(vue@3.5.16(typescript@5.8.3))':
5212 + '@css-render/vue3-ssr@0.15.14(vue@3.5.17(typescript@5.8.3))':
5213 dependencies:
5098 - vue: 3.5.16(typescript@5.8.3)
5214 + vue: 3.5.17(typescript@5.8.3)
5215
5216 '@csstools/color-helpers@5.0.2': {}
5217
@@ -5155,6 +5271,14 @@ snapshots:
5271 esquery: 1.6.0
5272 jsdoc-type-pratt-parser: 4.1.0
5273
5274 + '@es-joy/jsdoccomment@0.52.0':
5275 + dependencies:
5276 + '@types/estree': 1.0.8
5277 + '@typescript-eslint/types': 8.34.1
5278 + comment-parser: 1.4.1
5279 + esquery: 1.6.0
5280 + jsdoc-type-pratt-parser: 4.1.0
5281 +
5282 '@esbuild/aix-ppc64@0.25.5':
5283 optional: true
5284
@@ -5230,24 +5354,24 @@ snapshots:
5354 '@esbuild/win32-x64@0.25.5':
5355 optional: true
5356
5233 - '@eslint-community/eslint-plugin-eslint-comments@4.5.0(eslint@9.28.0(jiti@2.4.2))':
5357 + '@eslint-community/eslint-plugin-eslint-comments@4.5.0(eslint@9.29.0(jiti@2.4.2))':
5358 dependencies:
5359 escape-string-regexp: 4.0.0
5236 - eslint: 9.28.0(jiti@2.4.2)
5360 + eslint: 9.29.0(jiti@2.4.2)
5361 ignore: 5.3.2
5362
5239 - '@eslint-community/eslint-utils@4.7.0(eslint@9.28.0(jiti@2.4.2))':
5363 + '@eslint-community/eslint-utils@4.7.0(eslint@9.29.0(jiti@2.4.2))':
5364 dependencies:
5241 - eslint: 9.28.0(jiti@2.4.2)
5365 + eslint: 9.29.0(jiti@2.4.2)
5366 eslint-visitor-keys: 3.4.3
5367
5368 '@eslint-community/regexpp@4.12.1': {}
5369
5246 - '@eslint/compat@1.2.9(eslint@9.28.0(jiti@2.4.2))':
5370 + '@eslint/compat@1.2.9(eslint@9.29.0(jiti@2.4.2))':
5371 optionalDependencies:
5248 - eslint: 9.28.0(jiti@2.4.2)
5372 + eslint: 9.29.0(jiti@2.4.2)
5373
5250 - '@eslint/config-array@0.20.0':
5374 + '@eslint/config-array@0.20.1':
5375 dependencies:
5376 '@eslint/object-schema': 2.1.6
5377 debug: 4.4.1(supports-color@8.1.1)
@@ -5269,7 +5393,7 @@ snapshots:
5393 dependencies:
5394 ajv: 6.12.6
5395 debug: 4.4.1(supports-color@8.1.1)
5272 - espree: 10.3.0
5396 + espree: 10.4.0
5397 globals: 14.0.0
5398 ignore: 5.3.2
5399 import-fresh: 3.3.1
@@ -5279,7 +5403,7 @@ snapshots:
5403 transitivePeerDependencies:
5404 - supports-color
5405
5282 - '@eslint/js@9.28.0': {}
5406 + '@eslint/js@9.29.0': {}
5407
5408 '@eslint/markdown@6.5.0':
5409 dependencies:
@@ -5305,10 +5429,10 @@ snapshots:
5429 '@eslint/core': 0.14.0
5430 levn: 0.4.1
5431
5308 - '@f3ve/vue-markdown-it@0.2.3(vue@3.5.16(typescript@5.8.3))':
5432 + '@f3ve/vue-markdown-it@0.2.3(vue@3.5.17(typescript@5.8.3))':
5433 dependencies:
5434 markdown-it: 14.1.0
5311 - vue: 3.5.16(typescript@5.8.3)
5435 + vue: 3.5.17(typescript@5.8.3)
5436
5437 '@fontsource/jetbrains-mono@5.2.6': {}
5438
@@ -5337,22 +5461,22 @@ snapshots:
5461
5462 '@iconify/types@2.0.0': {}
5463
5340 - '@iconify/vue@5.0.0(vue@3.5.16(typescript@5.8.3))':
5464 + '@iconify/vue@5.0.0(vue@3.5.17(typescript@5.8.3))':
5465 dependencies:
5466 '@iconify/types': 2.0.0
5343 - vue: 3.5.16(typescript@5.8.3)
5467 + vue: 3.5.17(typescript@5.8.3)
5468
5345 - '@intlify/core-base@11.1.5':
5469 + '@intlify/core-base@11.1.6':
5470 dependencies:
5347 - '@intlify/message-compiler': 11.1.5
5348 - '@intlify/shared': 11.1.5
5471 + '@intlify/message-compiler': 11.1.6
5472 + '@intlify/shared': 11.1.6
5473
5350 - '@intlify/message-compiler@11.1.5':
5474 + '@intlify/message-compiler@11.1.6':
5475 dependencies:
5352 - '@intlify/shared': 11.1.5
5476 + '@intlify/shared': 11.1.6
5477 source-map-js: 1.2.1
5478
5355 - '@intlify/shared@11.1.5': {}
5479 + '@intlify/shared@11.1.6': {}
5480
5481 '@isaacs/cliui@8.0.2':
5482 dependencies:
@@ -5581,7 +5705,7 @@ snapshots:
5705 '@rollup/rollup-linux-x64-gnu@4.41.1':
5706 optional: true
5707
5584 - '@rollup/rollup-linux-x64-gnu@4.42.0':
5708 + '@rollup/rollup-linux-x64-gnu@4.44.0':
5709 optional: true
5710
5711 '@rollup/rollup-linux-x64-musl@4.41.1':
@@ -5598,38 +5722,38 @@ snapshots:
5722
5723 '@sec-ant/readable-stream@0.4.1': {}
5724
5601 - '@shikijs/core@3.6.0':
5725 + '@shikijs/core@3.7.0':
5726 dependencies:
5603 - '@shikijs/types': 3.6.0
5727 + '@shikijs/types': 3.7.0
5728 '@shikijs/vscode-textmate': 10.0.2
5729 '@types/hast': 3.0.4
5730 hast-util-to-html: 9.0.5
5731
5608 - '@shikijs/engine-javascript@3.6.0':
5732 + '@shikijs/engine-javascript@3.7.0':
5733 dependencies:
5610 - '@shikijs/types': 3.6.0
5734 + '@shikijs/types': 3.7.0
5735 '@shikijs/vscode-textmate': 10.0.2
5736 oniguruma-to-es: 4.3.3
5737
5614 - '@shikijs/engine-oniguruma@3.6.0':
5738 + '@shikijs/engine-oniguruma@3.7.0':
5739 dependencies:
5616 - '@shikijs/types': 3.6.0
5740 + '@shikijs/types': 3.7.0
5741 '@shikijs/vscode-textmate': 10.0.2
5742
5619 - '@shikijs/langs@3.6.0':
5743 + '@shikijs/langs@3.7.0':
5744 dependencies:
5621 - '@shikijs/types': 3.6.0
5745 + '@shikijs/types': 3.7.0
5746
5623 - '@shikijs/markdown-it@3.6.0':
5747 + '@shikijs/markdown-it@3.7.0':
5748 dependencies:
5749 markdown-it: 14.1.0
5626 - shiki: 3.6.0
5750 + shiki: 3.7.0
5751
5628 - '@shikijs/themes@3.6.0':
5752 + '@shikijs/themes@3.7.0':
5753 dependencies:
5630 - '@shikijs/types': 3.6.0
5754 + '@shikijs/types': 3.7.0
5755
5632 - '@shikijs/types@3.6.0':
5756 + '@shikijs/types@3.7.0':
5757 dependencies:
5758 '@shikijs/vscode-textmate': 10.0.2
5759 '@types/hast': 3.0.4
@@ -5646,17 +5770,15 @@ snapshots:
5770
5771 '@sindresorhus/merge-streams@4.0.0': {}
5772
5649 - '@stylistic/eslint-plugin@5.0.0-beta.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)':
5773 + '@stylistic/eslint-plugin@5.0.0-beta.5(eslint@9.29.0(jiti@2.4.2))':
5774 dependencies:
5651 - '@typescript-eslint/utils': 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)
5652 - eslint: 9.28.0(jiti@2.4.2)
5775 + '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0(jiti@2.4.2))
5776 + '@typescript-eslint/types': 8.33.1
5777 + eslint: 9.29.0(jiti@2.4.2)
5778 eslint-visitor-keys: 4.2.0
5779 espree: 10.3.0
5780 estraverse: 5.3.0
5781 picomatch: 4.0.2
5657 - transitivePeerDependencies:
5658 - - supports-color
5659 - - typescript
5782
5783 '@svgdotjs/svg.draggable.js@3.0.6(@svgdotjs/svg.js@3.2.4)':
5784 dependencies:
@@ -5677,7 +5799,7 @@ snapshots:
5799 dependencies:
5800 '@svgdotjs/svg.js': 3.2.4
5801
5680 - '@tailwindcss/node@4.1.8':
5802 + '@tailwindcss/node@4.1.10':
5803 dependencies:
5804 '@ampproject/remapping': 2.3.0
5805 enhanced-resolve: 5.18.1
@@ -5685,72 +5807,72 @@ snapshots:
5807 lightningcss: 1.30.1
5808 magic-string: 0.30.17
5809 source-map-js: 1.2.1
5688 - tailwindcss: 4.1.8
5810 + tailwindcss: 4.1.10
5811
5690 - '@tailwindcss/oxide-android-arm64@4.1.8':
5812 + '@tailwindcss/oxide-android-arm64@4.1.10':
5813 optional: true
5814
5693 - '@tailwindcss/oxide-darwin-arm64@4.1.8':
5815 + '@tailwindcss/oxide-darwin-arm64@4.1.10':
5816 optional: true
5817
5696 - '@tailwindcss/oxide-darwin-x64@4.1.8':
5818 + '@tailwindcss/oxide-darwin-x64@4.1.10':
5819 optional: true
5820
5699 - '@tailwindcss/oxide-freebsd-x64@4.1.8':
5821 + '@tailwindcss/oxide-freebsd-x64@4.1.10':
5822 optional: true
5823
5702 - '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.8':
5824 + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.10':
5825 optional: true
5826
5705 - '@tailwindcss/oxide-linux-arm64-gnu@4.1.8':
5827 + '@tailwindcss/oxide-linux-arm64-gnu@4.1.10':
5828 optional: true
5829
5708 - '@tailwindcss/oxide-linux-arm64-musl@4.1.8':
5830 + '@tailwindcss/oxide-linux-arm64-musl@4.1.10':
5831 optional: true
5832
5711 - '@tailwindcss/oxide-linux-x64-gnu@4.1.8':
5833 + '@tailwindcss/oxide-linux-x64-gnu@4.1.10':
5834 optional: true
5835
5714 - '@tailwindcss/oxide-linux-x64-musl@4.1.8':
5836 + '@tailwindcss/oxide-linux-x64-musl@4.1.10':
5837 optional: true
5838
5717 - '@tailwindcss/oxide-wasm32-wasi@4.1.8':
5839 + '@tailwindcss/oxide-wasm32-wasi@4.1.10':
5840 optional: true
5841
5720 - '@tailwindcss/oxide-win32-arm64-msvc@4.1.8':
5842 + '@tailwindcss/oxide-win32-arm64-msvc@4.1.10':
5843 optional: true
5844
5723 - '@tailwindcss/oxide-win32-x64-msvc@4.1.8':
5845 + '@tailwindcss/oxide-win32-x64-msvc@4.1.10':
5846 optional: true
5847
5726 - '@tailwindcss/oxide@4.1.8':
5848 + '@tailwindcss/oxide@4.1.10':
5849 dependencies:
5850 detect-libc: 2.0.4
5851 tar: 7.4.3
5852 optionalDependencies:
5731 - '@tailwindcss/oxide-android-arm64': 4.1.8
5732 - '@tailwindcss/oxide-darwin-arm64': 4.1.8
5733 - '@tailwindcss/oxide-darwin-x64': 4.1.8
5734 - '@tailwindcss/oxide-freebsd-x64': 4.1.8
5735 - '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.8
5736 - '@tailwindcss/oxide-linux-arm64-gnu': 4.1.8
5737 - '@tailwindcss/oxide-linux-arm64-musl': 4.1.8
5738 - '@tailwindcss/oxide-linux-x64-gnu': 4.1.8
5739 - '@tailwindcss/oxide-linux-x64-musl': 4.1.8
5740 - '@tailwindcss/oxide-wasm32-wasi': 4.1.8
5741 - '@tailwindcss/oxide-win32-arm64-msvc': 4.1.8
5742 - '@tailwindcss/oxide-win32-x64-msvc': 4.1.8
5743 -
5744 - '@tailwindcss/vite@4.1.8(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0))':
5745 - dependencies:
5746 - '@tailwindcss/node': 4.1.8
5747 - '@tailwindcss/oxide': 4.1.8
5748 - tailwindcss: 4.1.8
5749 - vite: 6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0)
5853 + '@tailwindcss/oxide-android-arm64': 4.1.10
5854 + '@tailwindcss/oxide-darwin-arm64': 4.1.10
5855 + '@tailwindcss/oxide-darwin-x64': 4.1.10
5856 + '@tailwindcss/oxide-freebsd-x64': 4.1.10
5857 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.10
5858 + '@tailwindcss/oxide-linux-arm64-gnu': 4.1.10
5859 + '@tailwindcss/oxide-linux-arm64-musl': 4.1.10
5860 + '@tailwindcss/oxide-linux-x64-gnu': 4.1.10
5861 + '@tailwindcss/oxide-linux-x64-musl': 4.1.10
5862 + '@tailwindcss/oxide-wasm32-wasi': 4.1.10
5863 + '@tailwindcss/oxide-win32-arm64-msvc': 4.1.10
5864 + '@tailwindcss/oxide-win32-x64-msvc': 4.1.10
5865 +
5866 + '@tailwindcss/vite@4.1.10(vite@6.3.5(@types/node@24.0.3)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0))':
5867 + dependencies:
5868 + '@tailwindcss/node': 4.1.10
5869 + '@tailwindcss/oxide': 4.1.10
5870 + tailwindcss: 4.1.10
5871 + vite: 6.3.5(@types/node@24.0.3)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0)
5872
5873 '@trysound/sax@0.2.0': {}
5874
5753 - '@tsconfig/node20@20.1.5': {}
5875 + '@tsconfig/node20@20.1.6': {}
5876
5877 '@types/bytes@3.1.5': {}
5878
@@ -5766,12 +5888,14 @@ snapshots:
5888
5889 '@types/estree@1.0.7': {}
5890
5891 + '@types/estree@1.0.8': {}
5892 +
5893 '@types/file-saver@2.0.7': {}
5894
5895 '@types/fs-extra@11.0.4':
5896 dependencies:
5897 '@types/jsonfile': 6.1.4
5774 - '@types/node': 22.15.31
5898 + '@types/node': 24.0.3
5899
5900 '@types/hast@3.0.4':
5901 dependencies:
@@ -5779,7 +5903,7 @@ snapshots:
5903
5904 '@types/jsdom@21.1.7':
5905 dependencies:
5782 - '@types/node': 22.15.31
5906 + '@types/node': 24.0.3
5907 '@types/tough-cookie': 4.0.5
5908 parse5: 7.3.0
5909
@@ -5787,7 +5911,7 @@ snapshots:
5911
5912 '@types/jsonfile@6.1.4':
5913 dependencies:
5790 - '@types/node': 22.15.31
5914 + '@types/node': 24.0.3
5915
5916 '@types/katex@0.16.7': {}
5917
@@ -5795,9 +5919,9 @@ snapshots:
5919
5920 '@types/lodash-es@4.17.12':
5921 dependencies:
5798 - '@types/lodash': 4.17.17
5922 + '@types/lodash': 4.17.18
5923
5800 - '@types/lodash@4.17.17': {}
5924 + '@types/lodash@4.17.18': {}
5925
5926 '@types/markdown-it@14.1.2':
5927 dependencies:
@@ -5814,9 +5938,9 @@ snapshots:
5938
5939 '@types/ms@2.1.0': {}
5940
5817 - '@types/node@22.15.31':
5941 + '@types/node@24.0.3':
5942 dependencies:
5819 - undici-types: 6.21.0
5943 + undici-types: 7.8.0
5944
5945 '@types/parse-json@4.0.2': {}
5946
@@ -5828,24 +5952,24 @@ snapshots:
5952
5953 '@types/unist@3.0.3': {}
5954
5831 - '@types/validator@13.15.1': {}
5955 + '@types/validator@13.15.2': {}
5956
5957 '@types/web-bluetooth@0.0.21': {}
5958
5959 '@types/yauzl@2.10.3':
5960 dependencies:
5837 - '@types/node': 22.15.31
5961 + '@types/node': 24.0.3
5962 optional: true
5963
5840 - '@typescript-eslint/eslint-plugin@8.33.1(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)':
5964 + '@typescript-eslint/eslint-plugin@8.34.1(@typescript-eslint/parser@8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)':
5965 dependencies:
5966 '@eslint-community/regexpp': 4.12.1
5843 - '@typescript-eslint/parser': 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)
5844 - '@typescript-eslint/scope-manager': 8.33.1
5845 - '@typescript-eslint/type-utils': 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)
5846 - '@typescript-eslint/utils': 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)
5847 - '@typescript-eslint/visitor-keys': 8.33.1
5848 - eslint: 9.28.0(jiti@2.4.2)
5967 + '@typescript-eslint/parser': 8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)
5968 + '@typescript-eslint/scope-manager': 8.34.1
5969 + '@typescript-eslint/type-utils': 8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)
5970 + '@typescript-eslint/utils': 8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)
5971 + '@typescript-eslint/visitor-keys': 8.34.1
5972 + eslint: 9.29.0(jiti@2.4.2)
5973 graphemer: 1.4.0
5974 ignore: 7.0.4
5975 natural-compare: 1.4.0
@@ -5854,14 +5978,14 @@ snapshots:
5978 transitivePeerDependencies:
5979 - supports-color
5980
5857 - '@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)':
5981 + '@typescript-eslint/parser@8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)':
5982 dependencies:
5859 - '@typescript-eslint/scope-manager': 8.33.1
5860 - '@typescript-eslint/types': 8.33.1
5861 - '@typescript-eslint/typescript-estree': 8.33.1(typescript@5.8.3)
5862 - '@typescript-eslint/visitor-keys': 8.33.1
5983 + '@typescript-eslint/scope-manager': 8.34.1
5984 + '@typescript-eslint/types': 8.34.1
5985 + '@typescript-eslint/typescript-estree': 8.34.1(typescript@5.8.3)
5986 + '@typescript-eslint/visitor-keys': 8.34.1
5987 debug: 4.4.1(supports-color@8.1.1)
5864 - eslint: 9.28.0(jiti@2.4.2)
5988 + eslint: 9.29.0(jiti@2.4.2)
5989 typescript: 5.8.3
5990 transitivePeerDependencies:
5991 - supports-color
@@ -5875,21 +5999,39 @@ snapshots:
5999 transitivePeerDependencies:
6000 - supports-color
6001
6002 + '@typescript-eslint/project-service@8.34.1(typescript@5.8.3)':
6003 + dependencies:
6004 + '@typescript-eslint/tsconfig-utils': 8.34.1(typescript@5.8.3)
6005 + '@typescript-eslint/types': 8.34.1
6006 + debug: 4.4.1(supports-color@8.1.1)
6007 + typescript: 5.8.3
6008 + transitivePeerDependencies:
6009 + - supports-color
6010 +
6011 '@typescript-eslint/scope-manager@8.33.1':
6012 dependencies:
6013 '@typescript-eslint/types': 8.33.1
6014 '@typescript-eslint/visitor-keys': 8.33.1
6015
6016 + '@typescript-eslint/scope-manager@8.34.1':
6017 + dependencies:
6018 + '@typescript-eslint/types': 8.34.1
6019 + '@typescript-eslint/visitor-keys': 8.34.1
6020 +
6021 '@typescript-eslint/tsconfig-utils@8.33.1(typescript@5.8.3)':
6022 dependencies:
6023 typescript: 5.8.3
6024
5887 - '@typescript-eslint/type-utils@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)':
6025 + '@typescript-eslint/tsconfig-utils@8.34.1(typescript@5.8.3)':
6026 dependencies:
5889 - '@typescript-eslint/typescript-estree': 8.33.1(typescript@5.8.3)
5890 - '@typescript-eslint/utils': 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)
6027 + typescript: 5.8.3
6028 +
6029 + '@typescript-eslint/type-utils@8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)':
6030 + dependencies:
6031 + '@typescript-eslint/typescript-estree': 8.34.1(typescript@5.8.3)
6032 + '@typescript-eslint/utils': 8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)
6033 debug: 4.4.1(supports-color@8.1.1)
5892 - eslint: 9.28.0(jiti@2.4.2)
6034 + eslint: 9.29.0(jiti@2.4.2)
6035 ts-api-utils: 2.1.0(typescript@5.8.3)
6036 typescript: 5.8.3
6037 transitivePeerDependencies:
@@ -5897,6 +6039,8 @@ snapshots:
6039
6040 '@typescript-eslint/types@8.33.1': {}
6041
6042 + '@typescript-eslint/types@8.34.1': {}
6043 +
6044 '@typescript-eslint/typescript-estree@8.33.1(typescript@5.8.3)':
6045 dependencies:
6046 '@typescript-eslint/project-service': 8.33.1(typescript@5.8.3)
@@ -5913,13 +6057,40 @@ snapshots:
6057 transitivePeerDependencies:
6058 - supports-color
6059
5916 - '@typescript-eslint/utils@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)':
6060 + '@typescript-eslint/typescript-estree@8.34.1(typescript@5.8.3)':
6061 dependencies:
5918 - '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@2.4.2))
6062 + '@typescript-eslint/project-service': 8.34.1(typescript@5.8.3)
6063 + '@typescript-eslint/tsconfig-utils': 8.34.1(typescript@5.8.3)
6064 + '@typescript-eslint/types': 8.34.1
6065 + '@typescript-eslint/visitor-keys': 8.34.1
6066 + debug: 4.4.1(supports-color@8.1.1)
6067 + fast-glob: 3.3.3
6068 + is-glob: 4.0.3
6069 + minimatch: 9.0.5
6070 + semver: 7.7.2
6071 + ts-api-utils: 2.1.0(typescript@5.8.3)
6072 + typescript: 5.8.3
6073 + transitivePeerDependencies:
6074 + - supports-color
6075 +
6076 + '@typescript-eslint/utils@8.33.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)':
6077 + dependencies:
6078 + '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0(jiti@2.4.2))
6079 '@typescript-eslint/scope-manager': 8.33.1
6080 '@typescript-eslint/types': 8.33.1
6081 '@typescript-eslint/typescript-estree': 8.33.1(typescript@5.8.3)
5922 - eslint: 9.28.0(jiti@2.4.2)
6082 + eslint: 9.29.0(jiti@2.4.2)
6083 + typescript: 5.8.3
6084 + transitivePeerDependencies:
6085 + - supports-color
6086 +
6087 + '@typescript-eslint/utils@8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)':
6088 + dependencies:
6089 + '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0(jiti@2.4.2))
6090 + '@typescript-eslint/scope-manager': 8.34.1
6091 + '@typescript-eslint/types': 8.34.1
6092 + '@typescript-eslint/typescript-estree': 8.34.1(typescript@5.8.3)
6093 + eslint: 9.29.0(jiti@2.4.2)
6094 typescript: 5.8.3
6095 transitivePeerDependencies:
6096 - supports-color
@@ -5929,74 +6100,79 @@ snapshots:
6100 '@typescript-eslint/types': 8.33.1
6101 eslint-visitor-keys: 4.2.0
6102
6103 + '@typescript-eslint/visitor-keys@8.34.1':
6104 + dependencies:
6105 + '@typescript-eslint/types': 8.34.1
6106 + eslint-visitor-keys: 4.2.1
6107 +
6108 '@ungap/structured-clone@1.3.0': {}
6109
5934 - '@vitejs/plugin-vue-jsx@4.2.0(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0))(vue@3.5.16(typescript@5.8.3))':
6110 + '@vitejs/plugin-vue-jsx@4.2.0(vite@6.3.5(@types/node@24.0.3)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))':
6111 dependencies:
6112 '@babel/core': 7.27.3
6113 '@babel/plugin-transform-typescript': 7.27.1(@babel/core@7.27.3)
6114 '@rolldown/pluginutils': 1.0.0-beta.10
6115 '@vue/babel-plugin-jsx': 1.4.0(@babel/core@7.27.3)
5940 - vite: 6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0)
5941 - vue: 3.5.16(typescript@5.8.3)
6116 + vite: 6.3.5(@types/node@24.0.3)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0)
6117 + vue: 3.5.17(typescript@5.8.3)
6118 transitivePeerDependencies:
6119 - supports-color
6120
5945 - '@vitejs/plugin-vue@5.2.4(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0))(vue@3.5.16(typescript@5.8.3))':
6121 + '@vitejs/plugin-vue@5.2.4(vite@6.3.5(@types/node@24.0.3)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))':
6122 dependencies:
5947 - vite: 6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0)
5948 - vue: 3.5.16(typescript@5.8.3)
6123 + vite: 6.3.5(@types/node@24.0.3)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0)
6124 + vue: 3.5.17(typescript@5.8.3)
6125
5950 - '@vitest/eslint-plugin@1.2.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)(vitest@3.2.3(@types/debug@4.1.12)(@types/node@22.15.31)(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0))':
6126 + '@vitest/eslint-plugin@1.2.7(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.0.3)(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0))':
6127 dependencies:
5952 - '@typescript-eslint/utils': 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)
5953 - eslint: 9.28.0(jiti@2.4.2)
6128 + '@typescript-eslint/utils': 8.33.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)
6129 + eslint: 9.29.0(jiti@2.4.2)
6130 optionalDependencies:
6131 typescript: 5.8.3
5956 - vitest: 3.2.3(@types/debug@4.1.12)(@types/node@22.15.31)(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0)
6132 + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.0.3)(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0)
6133 transitivePeerDependencies:
6134 - supports-color
6135
5960 - '@vitest/expect@3.2.3':
6136 + '@vitest/expect@3.2.4':
6137 dependencies:
6138 '@types/chai': 5.2.2
5963 - '@vitest/spy': 3.2.3
5964 - '@vitest/utils': 3.2.3
6139 + '@vitest/spy': 3.2.4
6140 + '@vitest/utils': 3.2.4
6141 chai: 5.2.0
6142 tinyrainbow: 2.0.0
6143
5968 - '@vitest/mocker@3.2.3(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0))':
6144 + '@vitest/mocker@3.2.4(vite@6.3.5(@types/node@24.0.3)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0))':
6145 dependencies:
5970 - '@vitest/spy': 3.2.3
6146 + '@vitest/spy': 3.2.4
6147 estree-walker: 3.0.3
6148 magic-string: 0.30.17
6149 optionalDependencies:
5974 - vite: 6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0)
6150 + vite: 6.3.5(@types/node@24.0.3)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0)
6151
5976 - '@vitest/pretty-format@3.2.3':
6152 + '@vitest/pretty-format@3.2.4':
6153 dependencies:
6154 tinyrainbow: 2.0.0
6155
5980 - '@vitest/runner@3.2.3':
6156 + '@vitest/runner@3.2.4':
6157 dependencies:
5982 - '@vitest/utils': 3.2.3
6158 + '@vitest/utils': 3.2.4
6159 pathe: 2.0.3
6160 strip-literal: 3.0.0
6161
5986 - '@vitest/snapshot@3.2.3':
6162 + '@vitest/snapshot@3.2.4':
6163 dependencies:
5988 - '@vitest/pretty-format': 3.2.3
6164 + '@vitest/pretty-format': 3.2.4
6165 magic-string: 0.30.17
6166 pathe: 2.0.3
6167
5992 - '@vitest/spy@3.2.3':
6168 + '@vitest/spy@3.2.4':
6169 dependencies:
6170 tinyspy: 4.0.3
6171
5996 - '@vitest/utils@3.2.3':
6172 + '@vitest/utils@3.2.4':
6173 dependencies:
5998 - '@vitest/pretty-format': 3.2.3
5999 - loupe: 3.1.3
6174 + '@vitest/pretty-format': 3.2.4
6175 + loupe: 3.1.4
6176 tinyrainbow: 2.0.0
6177
6178 '@volar/language-core@2.4.14':
@@ -6056,6 +6232,14 @@ snapshots:
6232 estree-walker: 2.0.2
6233 source-map-js: 1.2.1
6234
6235 + '@vue/compiler-core@3.5.17':
6236 + dependencies:
6237 + '@babel/parser': 7.27.5
6238 + '@vue/shared': 3.5.17
6239 + entities: 4.5.0
6240 + estree-walker: 2.0.2
6241 + source-map-js: 1.2.1
6242 +
6243 '@vue/compiler-dom@3.5.15':
6244 dependencies:
6245 '@vue/compiler-core': 3.5.15
@@ -6066,6 +6250,11 @@ snapshots:
6250 '@vue/compiler-core': 3.5.16
6251 '@vue/shared': 3.5.16
6252
6253 + '@vue/compiler-dom@3.5.17':
6254 + dependencies:
6255 + '@vue/compiler-core': 3.5.17
6256 + '@vue/shared': 3.5.17
6257 +
6258 '@vue/compiler-sfc@3.5.15':
6259 dependencies:
6260 '@babel/parser': 7.27.3
@@ -6078,16 +6267,16 @@ snapshots:
6267 postcss: 8.5.3
6268 source-map-js: 1.2.1
6269
6081 - '@vue/compiler-sfc@3.5.16':
6270 + '@vue/compiler-sfc@3.5.17':
6271 dependencies:
6083 - '@babel/parser': 7.27.3
6084 - '@vue/compiler-core': 3.5.16
6085 - '@vue/compiler-dom': 3.5.16
6086 - '@vue/compiler-ssr': 3.5.16
6087 - '@vue/shared': 3.5.16
6272 + '@babel/parser': 7.27.5
6273 + '@vue/compiler-core': 3.5.17
6274 + '@vue/compiler-dom': 3.5.17
6275 + '@vue/compiler-ssr': 3.5.17
6276 + '@vue/shared': 3.5.17
6277 estree-walker: 2.0.2
6278 magic-string: 0.30.17
6090 - postcss: 8.5.3
6279 + postcss: 8.5.6
6280 source-map-js: 1.2.1
6281
6282 '@vue/compiler-ssr@3.5.15':
@@ -6095,10 +6284,10 @@ snapshots:
6284 '@vue/compiler-dom': 3.5.15
6285 '@vue/shared': 3.5.15
6286
6098 - '@vue/compiler-ssr@3.5.16':
6287 + '@vue/compiler-ssr@3.5.17':
6288 dependencies:
6100 - '@vue/compiler-dom': 3.5.16
6101 - '@vue/shared': 3.5.16
6289 + '@vue/compiler-dom': 3.5.17
6290 + '@vue/shared': 3.5.17
6291
6292 '@vue/compiler-vue2@2.7.16':
6293 dependencies:
@@ -6111,15 +6300,15 @@ snapshots:
6300 dependencies:
6301 '@vue/devtools-kit': 7.7.6
6302
6114 - '@vue/devtools-core@7.7.6(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0))(vue@3.5.16(typescript@5.8.3))':
6303 + '@vue/devtools-core@7.7.7(vite@6.3.5(@types/node@24.0.3)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))':
6304 dependencies:
6116 - '@vue/devtools-kit': 7.7.6
6117 - '@vue/devtools-shared': 7.7.6
6305 + '@vue/devtools-kit': 7.7.7
6306 + '@vue/devtools-shared': 7.7.7
6307 mitt: 3.0.1
6308 nanoid: 5.1.5
6309 pathe: 2.0.3
6121 - vite-hot-client: 2.0.4(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0))
6122 - vue: 3.5.16(typescript@5.8.3)
6310 + vite-hot-client: 2.0.4(vite@6.3.5(@types/node@24.0.3)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0))
6311 + vue: 3.5.17(typescript@5.8.3)
6312 transitivePeerDependencies:
6313 - vite
6314
@@ -6133,10 +6322,24 @@ snapshots:
6322 speakingurl: 14.0.1
6323 superjson: 2.2.2
6324
6325 + '@vue/devtools-kit@7.7.7':
6326 + dependencies:
6327 + '@vue/devtools-shared': 7.7.7
6328 + birpc: 2.3.0
6329 + hookable: 5.5.3
6330 + mitt: 3.0.1
6331 + perfect-debounce: 1.0.0
6332 + speakingurl: 14.0.1
6333 + superjson: 2.2.2
6334 +
6335 '@vue/devtools-shared@7.7.6':
6336 dependencies:
6337 rfdc: 1.4.1
6338
6339 + '@vue/devtools-shared@7.7.7':
6340 + dependencies:
6341 + rfdc: 1.4.1
6342 +
6343 '@vue/language-core@2.2.10(typescript@5.8.3)':
6344 dependencies:
6345 '@volar/language-core': 2.4.14
@@ -6150,68 +6353,74 @@ snapshots:
6353 optionalDependencies:
6354 typescript: 5.8.3
6355
6153 - '@vue/reactivity@3.5.16':
6356 + '@vue/reactivity@3.5.17':
6357 dependencies:
6155 - '@vue/shared': 3.5.16
6358 + '@vue/shared': 3.5.17
6359
6157 - '@vue/runtime-core@3.5.16':
6360 + '@vue/runtime-core@3.5.17':
6361 dependencies:
6159 - '@vue/reactivity': 3.5.16
6160 - '@vue/shared': 3.5.16
6362 + '@vue/reactivity': 3.5.17
6363 + '@vue/shared': 3.5.17
6364
6162 - '@vue/runtime-dom@3.5.16':
6365 + '@vue/runtime-dom@3.5.17':
6366 dependencies:
6164 - '@vue/reactivity': 3.5.16
6165 - '@vue/runtime-core': 3.5.16
6166 - '@vue/shared': 3.5.16
6367 + '@vue/reactivity': 3.5.17
6368 + '@vue/runtime-core': 3.5.17
6369 + '@vue/shared': 3.5.17
6370 csstype: 3.1.3
6371
6169 - '@vue/server-renderer@3.5.16(vue@3.5.16(typescript@5.8.3))':
6372 + '@vue/server-renderer@3.5.17(vue@3.5.17(typescript@5.8.3))':
6373 dependencies:
6171 - '@vue/compiler-ssr': 3.5.16
6172 - '@vue/shared': 3.5.16
6173 - vue: 3.5.16(typescript@5.8.3)
6374 + '@vue/compiler-ssr': 3.5.17
6375 + '@vue/shared': 3.5.17
6376 + vue: 3.5.17(typescript@5.8.3)
6377
6378 '@vue/shared@3.5.15': {}
6379
6380 '@vue/shared@3.5.16': {}
6381
6382 + '@vue/shared@3.5.17': {}
6383 +
6384 '@vue/test-utils@2.4.6':
6385 dependencies:
6386 js-beautify: 1.15.4
6387 vue-component-type-helpers: 2.2.10
6388
6184 - '@vue/tsconfig@0.7.0(typescript@5.8.3)(vue@3.5.16(typescript@5.8.3))':
6389 + '@vue/tsconfig@0.7.0(typescript@5.8.3)(vue@3.5.17(typescript@5.8.3))':
6390 optionalDependencies:
6391 typescript: 5.8.3
6187 - vue: 3.5.16(typescript@5.8.3)
6392 + vue: 3.5.17(typescript@5.8.3)
6393
6189 - '@vueuse/core@13.3.0(vue@3.5.16(typescript@5.8.3))':
6394 + '@vueuse/core@13.4.0(vue@3.5.17(typescript@5.8.3))':
6395 dependencies:
6396 '@types/web-bluetooth': 0.0.21
6192 - '@vueuse/metadata': 13.3.0
6193 - '@vueuse/shared': 13.3.0(vue@3.5.16(typescript@5.8.3))
6194 - vue: 3.5.16(typescript@5.8.3)
6397 + '@vueuse/metadata': 13.4.0
6398 + '@vueuse/shared': 13.4.0(vue@3.5.17(typescript@5.8.3))
6399 + vue: 3.5.17(typescript@5.8.3)
6400
6196 - '@vueuse/metadata@13.3.0': {}
6401 + '@vueuse/metadata@13.4.0': {}
6402
6198 - '@vueuse/motion@3.0.3(vue@3.5.16(typescript@5.8.3))':
6403 + '@vueuse/motion@3.0.3(vue@3.5.17(typescript@5.8.3))':
6404 dependencies:
6200 - '@vueuse/core': 13.3.0(vue@3.5.16(typescript@5.8.3))
6201 - '@vueuse/shared': 13.3.0(vue@3.5.16(typescript@5.8.3))
6405 + '@vueuse/core': 13.4.0(vue@3.5.17(typescript@5.8.3))
6406 + '@vueuse/shared': 13.3.0(vue@3.5.17(typescript@5.8.3))
6407 defu: 6.1.4
6408 framesync: 6.1.2
6409 popmotion: 11.0.5
6410 style-value-types: 5.1.2
6206 - vue: 3.5.16(typescript@5.8.3)
6411 + vue: 3.5.17(typescript@5.8.3)
6412 optionalDependencies:
6413 '@nuxt/kit': 3.17.4
6414 transitivePeerDependencies:
6415 - magicast
6416
6212 - '@vueuse/shared@13.3.0(vue@3.5.16(typescript@5.8.3))':
6417 + '@vueuse/shared@13.3.0(vue@3.5.17(typescript@5.8.3))':
6418 + dependencies:
6419 + vue: 3.5.17(typescript@5.8.3)
6420 +
6421 + '@vueuse/shared@13.4.0(vue@3.5.17(typescript@5.8.3))':
6422 dependencies:
6214 - vue: 3.5.16(typescript@5.8.3)
6423 + vue: 3.5.17(typescript@5.8.3)
6424
6425 '@yr/monotone-cubic-spline@1.0.3': {}
6426
@@ -6221,8 +6430,14 @@ snapshots:
6430 dependencies:
6431 acorn: 8.14.1
6432
6433 + acorn-jsx@5.3.2(acorn@8.15.0):
6434 + dependencies:
6435 + acorn: 8.15.0
6436 +
6437 acorn@8.14.1: {}
6438
6439 + acorn@8.15.0: {}
6440 +
6441 agent-base@7.1.3: {}
6442
6443 aggregate-error@3.1.0:
@@ -6308,7 +6523,7 @@ snapshots:
6523
6524 aws4@1.13.2: {}
6525
6311 - axios@1.9.0(debug@4.4.1):
6526 + axios@1.10.0(debug@4.4.1):
6527 dependencies:
6528 follow-redirects: 1.15.9(debug@4.4.1)
6529 form-data: 4.0.2
@@ -6478,7 +6693,7 @@ snapshots:
6693 strip-ansi: 6.0.1
6694 wrap-ansi: 7.0.0
6695
6481 - codemirror@6.0.1:
6696 + codemirror@6.0.2:
6697 dependencies:
6698 '@codemirror/autocomplete': 6.18.6
6699 '@codemirror/commands': 6.8.1
@@ -6600,7 +6815,7 @@ snapshots:
6815
6816 csstype@3.1.3: {}
6817
6603 - cypress@14.4.1:
6818 + cypress@14.5.0:
6819 dependencies:
6820 '@cypress/request': 3.0.8
6821 '@cypress/xvfb': 1.2.4(supports-color@8.1.1)
@@ -6628,6 +6843,7 @@ snapshots:
6843 figures: 3.2.0
6844 fs-extra: 9.1.0
6845 getos: 3.2.1
6846 + hasha: 5.2.2
6847 is-installed-globally: 0.4.0
6848 lazy-ass: 1.6.0
6849 listr2: 3.14.0(enquirer@2.4.1)
@@ -6887,60 +7103,68 @@ snapshots:
7103
7104 escape-string-regexp@5.0.0: {}
7105
6890 - eslint-compat-utils@0.5.1(eslint@9.28.0(jiti@2.4.2)):
7106 + eslint-compat-utils@0.5.1(eslint@9.29.0(jiti@2.4.2)):
7107 dependencies:
6892 - eslint: 9.28.0(jiti@2.4.2)
7108 + eslint: 9.29.0(jiti@2.4.2)
7109 semver: 7.7.2
7110
6895 - eslint-compat-utils@0.6.5(eslint@9.28.0(jiti@2.4.2)):
7111 + eslint-compat-utils@0.6.5(eslint@9.29.0(jiti@2.4.2)):
7112 dependencies:
6897 - eslint: 9.28.0(jiti@2.4.2)
7113 + eslint: 9.29.0(jiti@2.4.2)
7114 semver: 7.7.2
7115
6900 - eslint-config-flat-gitignore@2.1.0(eslint@9.28.0(jiti@2.4.2)):
7116 + eslint-config-flat-gitignore@2.1.0(eslint@9.29.0(jiti@2.4.2)):
7117 dependencies:
6902 - '@eslint/compat': 1.2.9(eslint@9.28.0(jiti@2.4.2))
6903 - eslint: 9.28.0(jiti@2.4.2)
7118 + '@eslint/compat': 1.2.9(eslint@9.29.0(jiti@2.4.2))
7119 + eslint: 9.29.0(jiti@2.4.2)
7120
7121 eslint-flat-config-utils@2.1.0:
7122 dependencies:
7123 pathe: 2.0.3
7124
6909 - eslint-json-compat-utils@0.2.1(eslint@9.28.0(jiti@2.4.2))(jsonc-eslint-parser@2.4.0):
7125 + eslint-json-compat-utils@0.2.1(eslint@9.29.0(jiti@2.4.2))(jsonc-eslint-parser@2.4.0):
7126 dependencies:
6911 - eslint: 9.28.0(jiti@2.4.2)
7127 + eslint: 9.29.0(jiti@2.4.2)
7128 esquery: 1.6.0
7129 jsonc-eslint-parser: 2.4.0
7130
6915 - eslint-merge-processors@2.0.0(eslint@9.28.0(jiti@2.4.2)):
7131 + eslint-merge-processors@2.0.0(eslint@9.29.0(jiti@2.4.2)):
7132 dependencies:
6917 - eslint: 9.28.0(jiti@2.4.2)
7133 + eslint: 9.29.0(jiti@2.4.2)
7134
6919 - eslint-plugin-antfu@3.1.1(eslint@9.28.0(jiti@2.4.2)):
7135 + eslint-plugin-antfu@3.1.1(eslint@9.29.0(jiti@2.4.2)):
7136 dependencies:
6921 - eslint: 9.28.0(jiti@2.4.2)
7137 + eslint: 9.29.0(jiti@2.4.2)
7138
6923 - eslint-plugin-command@3.2.1(eslint@9.28.0(jiti@2.4.2)):
7139 + eslint-plugin-command@3.2.1(eslint@9.29.0(jiti@2.4.2)):
7140 dependencies:
7141 '@es-joy/jsdoccomment': 0.50.2
6926 - eslint: 9.28.0(jiti@2.4.2)
7142 + eslint: 9.29.0(jiti@2.4.2)
7143
6928 - eslint-plugin-es-x@7.8.0(eslint@9.28.0(jiti@2.4.2)):
7144 + eslint-plugin-es-x@7.8.0(eslint@9.29.0(jiti@2.4.2)):
7145 dependencies:
6930 - '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@2.4.2))
7146 + '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0(jiti@2.4.2))
7147 '@eslint-community/regexpp': 4.12.1
6932 - eslint: 9.28.0(jiti@2.4.2)
6933 - eslint-compat-utils: 0.5.1(eslint@9.28.0(jiti@2.4.2))
7148 + eslint: 9.29.0(jiti@2.4.2)
7149 + eslint-compat-utils: 0.5.1(eslint@9.29.0(jiti@2.4.2))
7150
6935 - eslint-plugin-jsdoc@50.7.1(eslint@9.28.0(jiti@2.4.2)):
7151 + eslint-plugin-import-lite@0.3.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3):
7152 dependencies:
6937 - '@es-joy/jsdoccomment': 0.50.2
7153 + '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0(jiti@2.4.2))
7154 + '@typescript-eslint/types': 8.34.1
7155 + eslint: 9.29.0(jiti@2.4.2)
7156 + optionalDependencies:
7157 + typescript: 5.8.3
7158 +
7159 + eslint-plugin-jsdoc@51.1.2(eslint@9.29.0(jiti@2.4.2)):
7160 + dependencies:
7161 + '@es-joy/jsdoccomment': 0.52.0
7162 are-docs-informative: 0.0.2
7163 comment-parser: 1.4.1
7164 debug: 4.4.1(supports-color@8.1.1)
7165 escape-string-regexp: 4.0.0
6942 - eslint: 9.28.0(jiti@2.4.2)
6943 - espree: 10.3.0
7166 + eslint: 9.29.0(jiti@2.4.2)
7167 + espree: 10.4.0
7168 esquery: 1.6.0
7169 parse-imports-exports: 0.2.4
7170 semver: 7.7.2
@@ -6948,12 +7172,12 @@ snapshots:
7172 transitivePeerDependencies:
7173 - supports-color
7174
6951 - eslint-plugin-jsonc@2.20.1(eslint@9.28.0(jiti@2.4.2)):
7175 + eslint-plugin-jsonc@2.20.1(eslint@9.29.0(jiti@2.4.2)):
7176 dependencies:
6953 - '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@2.4.2))
6954 - eslint: 9.28.0(jiti@2.4.2)
6955 - eslint-compat-utils: 0.6.5(eslint@9.28.0(jiti@2.4.2))
6956 - eslint-json-compat-utils: 0.2.1(eslint@9.28.0(jiti@2.4.2))(jsonc-eslint-parser@2.4.0)
7177 + '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0(jiti@2.4.2))
7178 + eslint: 9.29.0(jiti@2.4.2)
7179 + eslint-compat-utils: 0.6.5(eslint@9.29.0(jiti@2.4.2))
7180 + eslint-json-compat-utils: 0.2.1(eslint@9.29.0(jiti@2.4.2))(jsonc-eslint-parser@2.4.0)
7181 espree: 10.3.0
7182 graphemer: 1.4.0
7183 jsonc-eslint-parser: 2.4.0
@@ -6962,13 +7186,13 @@ snapshots:
7186 transitivePeerDependencies:
7187 - '@eslint/json'
7188
6965 - eslint-plugin-n@17.19.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3):
7189 + eslint-plugin-n@17.20.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3):
7190 dependencies:
6967 - '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@2.4.2))
6968 - '@typescript-eslint/utils': 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)
7191 + '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0(jiti@2.4.2))
7192 + '@typescript-eslint/utils': 8.33.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)
7193 enhanced-resolve: 5.18.1
6970 - eslint: 9.28.0(jiti@2.4.2)
6971 - eslint-plugin-es-x: 7.8.0(eslint@9.28.0(jiti@2.4.2))
7194 + eslint: 9.29.0(jiti@2.4.2)
7195 + eslint-plugin-es-x: 7.8.0(eslint@9.29.0(jiti@2.4.2))
7196 get-tsconfig: 4.10.1
7197 globals: 15.15.0
7198 ignore: 5.3.2
@@ -6981,19 +7205,19 @@ snapshots:
7205
7206 eslint-plugin-no-only-tests@3.3.0: {}
7207
6984 - eslint-plugin-perfectionist@4.14.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3):
7208 + eslint-plugin-perfectionist@4.15.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3):
7209 dependencies:
6986 - '@typescript-eslint/types': 8.33.1
6987 - '@typescript-eslint/utils': 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)
6988 - eslint: 9.28.0(jiti@2.4.2)
7210 + '@typescript-eslint/types': 8.34.1
7211 + '@typescript-eslint/utils': 8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)
7212 + eslint: 9.29.0(jiti@2.4.2)
7213 natural-orderby: 5.0.0
7214 transitivePeerDependencies:
7215 - supports-color
7216 - typescript
7217
6994 - eslint-plugin-pnpm@0.3.1(eslint@9.28.0(jiti@2.4.2)):
7218 + eslint-plugin-pnpm@0.3.1(eslint@9.29.0(jiti@2.4.2)):
7219 dependencies:
6996 - eslint: 9.28.0(jiti@2.4.2)
7220 + eslint: 9.29.0(jiti@2.4.2)
7221 find-up-simple: 1.0.1
7222 jsonc-eslint-parser: 2.4.0
7223 pathe: 2.0.3
@@ -7001,36 +7225,36 @@ snapshots:
7225 tinyglobby: 0.2.14
7226 yaml-eslint-parser: 1.3.0
7227
7004 - eslint-plugin-regexp@2.8.0(eslint@9.28.0(jiti@2.4.2)):
7228 + eslint-plugin-regexp@2.9.0(eslint@9.29.0(jiti@2.4.2)):
7229 dependencies:
7006 - '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@2.4.2))
7230 + '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0(jiti@2.4.2))
7231 '@eslint-community/regexpp': 4.12.1
7232 comment-parser: 1.4.1
7009 - eslint: 9.28.0(jiti@2.4.2)
7233 + eslint: 9.29.0(jiti@2.4.2)
7234 jsdoc-type-pratt-parser: 4.1.0
7235 refa: 0.12.1
7236 regexp-ast-analysis: 0.7.1
7237 scslre: 0.3.0
7238
7015 - eslint-plugin-toml@0.12.0(eslint@9.28.0(jiti@2.4.2)):
7239 + eslint-plugin-toml@0.12.0(eslint@9.29.0(jiti@2.4.2)):
7240 dependencies:
7241 debug: 4.4.1(supports-color@8.1.1)
7018 - eslint: 9.28.0(jiti@2.4.2)
7019 - eslint-compat-utils: 0.6.5(eslint@9.28.0(jiti@2.4.2))
7242 + eslint: 9.29.0(jiti@2.4.2)
7243 + eslint-compat-utils: 0.6.5(eslint@9.29.0(jiti@2.4.2))
7244 lodash: 4.17.21
7245 toml-eslint-parser: 0.10.0
7246 transitivePeerDependencies:
7247 - supports-color
7248
7025 - eslint-plugin-unicorn@59.0.1(eslint@9.28.0(jiti@2.4.2)):
7249 + eslint-plugin-unicorn@59.0.1(eslint@9.29.0(jiti@2.4.2)):
7250 dependencies:
7251 '@babel/helper-validator-identifier': 7.27.1
7028 - '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@2.4.2))
7252 + '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0(jiti@2.4.2))
7253 '@eslint/plugin-kit': 0.2.8
7254 ci-info: 4.2.0
7255 clean-regexp: 1.0.0
7256 core-js-compat: 3.42.0
7033 - eslint: 9.28.0(jiti@2.4.2)
7257 + eslint: 9.29.0(jiti@2.4.2)
7258 esquery: 1.6.0
7259 find-up-simple: 1.0.1
7260 globals: 16.2.0
@@ -7043,57 +7267,64 @@ snapshots:
7267 semver: 7.7.2
7268 strip-indent: 4.0.0
7269
7046 - eslint-plugin-unused-imports@4.1.4(@typescript-eslint/eslint-plugin@8.33.1(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2)):
7270 + eslint-plugin-unused-imports@4.1.4(@typescript-eslint/eslint-plugin@8.34.1(@typescript-eslint/parser@8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.29.0(jiti@2.4.2)):
7271 dependencies:
7048 - eslint: 9.28.0(jiti@2.4.2)
7272 + eslint: 9.29.0(jiti@2.4.2)
7273 optionalDependencies:
7050 - '@typescript-eslint/eslint-plugin': 8.33.1(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)
7274 + '@typescript-eslint/eslint-plugin': 8.34.1(@typescript-eslint/parser@8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)
7275
7052 - eslint-plugin-vue@10.2.0(eslint@9.28.0(jiti@2.4.2))(vue-eslint-parser@10.1.3(eslint@9.28.0(jiti@2.4.2))):
7276 + eslint-plugin-vue@10.2.0(eslint@9.29.0(jiti@2.4.2))(vue-eslint-parser@10.1.3(eslint@9.29.0(jiti@2.4.2))):
7277 dependencies:
7054 - '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@2.4.2))
7055 - eslint: 9.28.0(jiti@2.4.2)
7278 + '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0(jiti@2.4.2))
7279 + eslint: 9.29.0(jiti@2.4.2)
7280 natural-compare: 1.4.0
7281 nth-check: 2.1.1
7282 postcss-selector-parser: 6.1.2
7283 semver: 7.7.2
7060 - vue-eslint-parser: 10.1.3(eslint@9.28.0(jiti@2.4.2))
7284 + vue-eslint-parser: 10.1.3(eslint@9.29.0(jiti@2.4.2))
7285 xml-name-validator: 4.0.0
7286
7063 - eslint-plugin-yml@1.18.0(eslint@9.28.0(jiti@2.4.2)):
7287 + eslint-plugin-yml@1.18.0(eslint@9.29.0(jiti@2.4.2)):
7288 dependencies:
7289 debug: 4.4.1(supports-color@8.1.1)
7290 escape-string-regexp: 4.0.0
7067 - eslint: 9.28.0(jiti@2.4.2)
7068 - eslint-compat-utils: 0.6.5(eslint@9.28.0(jiti@2.4.2))
7291 + eslint: 9.29.0(jiti@2.4.2)
7292 + eslint-compat-utils: 0.6.5(eslint@9.29.0(jiti@2.4.2))
7293 natural-compare: 1.4.0
7294 yaml-eslint-parser: 1.3.0
7295 transitivePeerDependencies:
7296 - supports-color
7297
7074 - eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.16)(eslint@9.28.0(jiti@2.4.2)):
7298 + eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.17)(eslint@9.29.0(jiti@2.4.2)):
7299 dependencies:
7076 - '@vue/compiler-sfc': 3.5.16
7077 - eslint: 9.28.0(jiti@2.4.2)
7300 + '@vue/compiler-sfc': 3.5.17
7301 + eslint: 9.29.0(jiti@2.4.2)
7302
7303 eslint-scope@8.3.0:
7304 dependencies:
7305 esrecurse: 4.3.0
7306 estraverse: 5.3.0
7307
7308 + eslint-scope@8.4.0:
7309 + dependencies:
7310 + esrecurse: 4.3.0
7311 + estraverse: 5.3.0
7312 +
7313 eslint-visitor-keys@3.4.3: {}
7314
7315 eslint-visitor-keys@4.2.0: {}
7316
7088 - eslint@9.28.0(jiti@2.4.2):
7317 + eslint-visitor-keys@4.2.1: {}
7318 +
7319 + eslint@9.29.0(jiti@2.4.2):
7320 dependencies:
7090 - '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@2.4.2))
7321 + '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0(jiti@2.4.2))
7322 '@eslint-community/regexpp': 4.12.1
7092 - '@eslint/config-array': 0.20.0
7323 + '@eslint/config-array': 0.20.1
7324 '@eslint/config-helpers': 0.2.2
7325 '@eslint/core': 0.14.0
7326 '@eslint/eslintrc': 3.3.1
7096 - '@eslint/js': 9.28.0
7327 + '@eslint/js': 9.29.0
7328 '@eslint/plugin-kit': 0.3.1
7329 '@humanfs/node': 0.16.6
7330 '@humanwhocodes/module-importer': 1.0.1
@@ -7105,9 +7336,9 @@ snapshots:
7336 cross-spawn: 7.0.6
7337 debug: 4.4.1(supports-color@8.1.1)
7338 escape-string-regexp: 4.0.0
7108 - eslint-scope: 8.3.0
7109 - eslint-visitor-keys: 4.2.0
7110 - espree: 10.3.0
7339 + eslint-scope: 8.4.0
7340 + eslint-visitor-keys: 4.2.1
7341 + espree: 10.4.0
7342 esquery: 1.6.0
7343 esutils: 2.0.3
7344 fast-deep-equal: 3.1.3
@@ -7133,6 +7364,12 @@ snapshots:
7364 acorn-jsx: 5.3.2(acorn@8.14.1)
7365 eslint-visitor-keys: 4.2.0
7366
7367 + espree@10.4.0:
7368 + dependencies:
7369 + acorn: 8.15.0
7370 + acorn-jsx: 5.3.2(acorn@8.15.0)
7371 + eslint-visitor-keys: 4.2.1
7372 +
7373 espree@9.6.1:
7374 dependencies:
7375 acorn: 8.14.1
@@ -7466,6 +7703,11 @@ snapshots:
7703 dependencies:
7704 has-symbols: 1.1.0
7705
7706 + hasha@5.2.2:
7707 + dependencies:
7708 + is-stream: 2.0.1
7709 + type-fest: 0.8.1
7710 +
7711 hasown@2.0.2:
7712 dependencies:
7713 function-bind: 1.1.2
@@ -7868,6 +8110,8 @@ snapshots:
8110
8111 loupe@3.1.3: {}
8112
8113 + loupe@3.1.4: {}
8114 +
8115 lru-cache@10.4.3: {}
8116
8117 lru-cache@5.1.1:
@@ -8296,12 +8540,12 @@ snapshots:
8540 arrify: 2.0.1
8541 minimatch: 3.1.2
8542
8299 - naive-ui@2.41.1(vue@3.5.16(typescript@5.8.3)):
8543 + naive-ui@2.42.0(vue@3.5.17(typescript@5.8.3)):
8544 dependencies:
8545 '@css-render/plugin-bem': 0.15.14(css-render@0.15.14)
8302 - '@css-render/vue3-ssr': 0.15.14(vue@3.5.16(typescript@5.8.3))
8546 + '@css-render/vue3-ssr': 0.15.14(vue@3.5.17(typescript@5.8.3))
8547 '@types/katex': 0.16.7
8304 - '@types/lodash': 4.17.17
8548 + '@types/lodash': 4.17.18
8549 '@types/lodash-es': 4.17.12
8550 async-validator: 4.2.5
8551 css-render: 0.15.14
@@ -8314,10 +8558,10 @@ snapshots:
8558 lodash-es: 4.17.21
8559 seemly: 0.3.10
8560 treemate: 0.3.11
8317 - vdirs: 0.1.8(vue@3.5.16(typescript@5.8.3))
8318 - vooks: 0.2.12(vue@3.5.16(typescript@5.8.3))
8319 - vue: 3.5.16(typescript@5.8.3)
8320 - vueuc: 0.4.64(vue@3.5.16(typescript@5.8.3))
8561 + vdirs: 0.1.8(vue@3.5.17(typescript@5.8.3))
8562 + vooks: 0.2.12(vue@3.5.17(typescript@5.8.3))
8563 + vue: 3.5.17(typescript@5.8.3)
8564 + vueuc: 0.4.64(vue@3.5.17(typescript@5.8.3))
8565
8566 nanoid@3.3.11: {}
8567
@@ -8514,21 +8758,21 @@ snapshots:
8758
8759 pify@2.3.0: {}
8760
8517 - pinia-plugin-persistedstate@4.3.0(pinia@3.0.3(typescript@5.8.3)(vue@3.5.16(typescript@5.8.3))):
8761 + pinia-plugin-persistedstate@4.3.0(pinia@3.0.3(typescript@5.8.3)(vue@3.5.17(typescript@5.8.3))):
8762 dependencies:
8763 '@nuxt/kit': 3.17.4
8764 deep-pick-omit: 1.2.1
8765 defu: 6.1.4
8766 destr: 2.0.5
8767 optionalDependencies:
8524 - pinia: 3.0.3(typescript@5.8.3)(vue@3.5.16(typescript@5.8.3))
8768 + pinia: 3.0.3(typescript@5.8.3)(vue@3.5.17(typescript@5.8.3))
8769 transitivePeerDependencies:
8770 - magicast
8771
8528 - pinia@3.0.3(typescript@5.8.3)(vue@3.5.16(typescript@5.8.3)):
8772 + pinia@3.0.3(typescript@5.8.3)(vue@3.5.17(typescript@5.8.3)):
8773 dependencies:
8774 '@vue/devtools-api': 7.7.6
8531 - vue: 3.5.16(typescript@5.8.3)
8775 + vue: 3.5.17(typescript@5.8.3)
8776 optionalDependencies:
8777 typescript: 5.8.3
8778
@@ -8572,9 +8816,15 @@ snapshots:
8816 picocolors: 1.1.1
8817 source-map-js: 1.2.1
8818
8819 + postcss@8.5.6:
8820 + dependencies:
8821 + nanoid: 3.3.11
8822 + picocolors: 1.1.1
8823 + source-map-js: 1.2.1
8824 +
8825 prelude-ls@1.2.1: {}
8826
8577 - prettier-plugin-tailwindcss@0.6.12(prettier@3.5.3):
8827 + prettier-plugin-tailwindcss@0.6.13(prettier@3.5.3):
8828 dependencies:
8829 prettier: 3.5.3
8830
@@ -8789,14 +9039,14 @@ snapshots:
9039
9040 shell-quote@1.8.2: {}
9041
8792 - shiki@3.6.0:
9042 + shiki@3.7.0:
9043 dependencies:
8794 - '@shikijs/core': 3.6.0
8795 - '@shikijs/engine-javascript': 3.6.0
8796 - '@shikijs/engine-oniguruma': 3.6.0
8797 - '@shikijs/langs': 3.6.0
8798 - '@shikijs/themes': 3.6.0
8799 - '@shikijs/types': 3.6.0
9044 + '@shikijs/core': 3.7.0
9045 + '@shikijs/engine-javascript': 3.7.0
9046 + '@shikijs/engine-oniguruma': 3.7.0
9047 + '@shikijs/langs': 3.7.0
9048 + '@shikijs/themes': 3.7.0
9049 + '@shikijs/types': 3.7.0
9050 '@shikijs/vscode-textmate': 10.0.2
9051 '@types/hast': 3.0.4
9052
@@ -8988,7 +9238,7 @@ snapshots:
9238 dependencies:
9239 '@pkgr/core': 0.2.4
9240
8991 - tailwindcss@4.1.8: {}
9241 + tailwindcss@4.1.10: {}
9242
9243 tapable@2.2.2: {}
9244
@@ -9037,7 +9287,7 @@ snapshots:
9287 fdir: 6.4.5(picomatch@4.0.2)
9288 picomatch: 4.0.2
9289
9040 - tinypool@1.1.0: {}
9290 + tinypool@1.1.1: {}
9291
9292 tinyrainbow@2.0.0: {}
9293
@@ -9102,6 +9352,8 @@ snapshots:
9352
9353 type-fest@0.21.3: {}
9354
9355 + type-fest@0.8.1: {}
9356 +
9357 type-fest@4.41.0: {}
9358
9359 typescript@5.8.3: {}
@@ -9124,7 +9376,7 @@ snapshots:
9376 magic-string: 0.30.17
9377 unplugin: 2.3.5
9378
9127 - undici-types@6.21.0: {}
9379 + undici-types@7.8.0: {}
9380
9381 unicorn-magic@0.3.0: {}
9382
@@ -9207,10 +9459,10 @@ snapshots:
9459
9460 validator@13.15.15: {}
9461
9210 - vdirs@0.1.8(vue@3.5.16(typescript@5.8.3)):
9462 + vdirs@0.1.8(vue@3.5.17(typescript@5.8.3)):
9463 dependencies:
9464 evtd: 0.2.4
9213 - vue: 3.5.16(typescript@5.8.3)
9465 + vue: 3.5.17(typescript@5.8.3)
9466
9467 verror@1.10.0:
9468 dependencies:
@@ -9239,17 +9491,17 @@ snapshots:
9491 - rollup
9492 - supports-color
9493
9242 - vite-hot-client@2.0.4(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0)):
9494 + vite-hot-client@2.0.4(vite@6.3.5(@types/node@24.0.3)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0)):
9495 dependencies:
9244 - vite: 6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0)
9496 + vite: 6.3.5(@types/node@24.0.3)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0)
9497
9246 - vite-node@3.2.3(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0):
9498 + vite-node@3.2.4(@types/node@24.0.3)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0):
9499 dependencies:
9500 cac: 6.7.14
9501 debug: 4.4.1(supports-color@8.1.1)
9502 es-module-lexer: 1.7.0
9503 pathe: 2.0.3
9252 - vite: 6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0)
9504 + vite: 6.3.5(@types/node@24.0.3)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0)
9505 transitivePeerDependencies:
9506 - '@types/node'
9507 - jiti
@@ -9264,7 +9516,7 @@ snapshots:
9516 - tsx
9517 - yaml
9518
9267 - vite-plugin-inspect@0.8.9(rollup@4.41.1)(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0)):
9519 + vite-plugin-inspect@0.8.9(rollup@4.41.1)(vite@6.3.5(@types/node@24.0.3)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0)):
9520 dependencies:
9521 '@antfu/utils': 0.7.10
9522 '@rollup/pluginutils': 5.1.4(rollup@4.41.1)
@@ -9275,28 +9527,28 @@ snapshots:
9527 perfect-debounce: 1.0.0
9528 picocolors: 1.1.1
9529 sirv: 3.0.1
9278 - vite: 6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0)
9530 + vite: 6.3.5(@types/node@24.0.3)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0)
9531 transitivePeerDependencies:
9532 - rollup
9533 - supports-color
9534
9283 - vite-plugin-vue-devtools@7.7.6(rollup@4.41.1)(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0))(vue@3.5.16(typescript@5.8.3)):
9535 + vite-plugin-vue-devtools@7.7.7(rollup@4.41.1)(vite@6.3.5(@types/node@24.0.3)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)):
9536 dependencies:
9285 - '@vue/devtools-core': 7.7.6(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0))(vue@3.5.16(typescript@5.8.3))
9286 - '@vue/devtools-kit': 7.7.6
9287 - '@vue/devtools-shared': 7.7.6
9537 + '@vue/devtools-core': 7.7.7(vite@6.3.5(@types/node@24.0.3)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))
9538 + '@vue/devtools-kit': 7.7.7
9539 + '@vue/devtools-shared': 7.7.7
9540 execa: 9.6.0
9541 sirv: 3.0.1
9290 - vite: 6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0)
9291 - vite-plugin-inspect: 0.8.9(rollup@4.41.1)(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0))
9292 - vite-plugin-vue-inspector: 5.3.1(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0))
9542 + vite: 6.3.5(@types/node@24.0.3)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0)
9543 + vite-plugin-inspect: 0.8.9(rollup@4.41.1)(vite@6.3.5(@types/node@24.0.3)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0))
9544 + vite-plugin-vue-inspector: 5.3.1(vite@6.3.5(@types/node@24.0.3)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0))
9545 transitivePeerDependencies:
9546 - '@nuxt/kit'
9547 - rollup
9548 - supports-color
9549 - vue
9550
9299 - vite-plugin-vue-inspector@5.3.1(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0)):
9551 + vite-plugin-vue-inspector@5.3.1(vite@6.3.5(@types/node@24.0.3)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0)):
9552 dependencies:
9553 '@babel/core': 7.27.3
9554 '@babel/plugin-proposal-decorators': 7.27.1(@babel/core@7.27.3)
@@ -9304,19 +9556,19 @@ snapshots:
9556 '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.27.3)
9557 '@babel/plugin-transform-typescript': 7.27.1(@babel/core@7.27.3)
9558 '@vue/babel-plugin-jsx': 1.4.0(@babel/core@7.27.3)
9307 - '@vue/compiler-dom': 3.5.15
9559 + '@vue/compiler-dom': 3.5.16
9560 kolorist: 1.8.0
9561 magic-string: 0.30.17
9310 - vite: 6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0)
9562 + vite: 6.3.5(@types/node@24.0.3)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0)
9563 transitivePeerDependencies:
9564 - supports-color
9565
9314 - vite-svg-loader@5.1.0(vue@3.5.16(typescript@5.8.3)):
9566 + vite-svg-loader@5.1.0(vue@3.5.17(typescript@5.8.3)):
9567 dependencies:
9568 svgo: 3.3.2
9317 - vue: 3.5.16(typescript@5.8.3)
9569 + vue: 3.5.17(typescript@5.8.3)
9570
9319 - vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0):
9571 + vite@6.3.5(@types/node@24.0.3)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0):
9572 dependencies:
9573 esbuild: 0.25.5
9574 fdir: 6.4.5(picomatch@4.0.2)
@@ -9325,23 +9577,23 @@ snapshots:
9577 rollup: 4.41.1
9578 tinyglobby: 0.2.14
9579 optionalDependencies:
9328 - '@types/node': 22.15.31
9580 + '@types/node': 24.0.3
9581 fsevents: 2.3.3
9582 jiti: 2.4.2
9583 lightningcss: 1.30.1
9584 sass: 1.89.2
9585 yaml: 2.8.0
9586
9335 - vitest@3.2.3(@types/debug@4.1.12)(@types/node@22.15.31)(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0):
9587 + vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.0.3)(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0):
9588 dependencies:
9589 '@types/chai': 5.2.2
9338 - '@vitest/expect': 3.2.3
9339 - '@vitest/mocker': 3.2.3(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0))
9340 - '@vitest/pretty-format': 3.2.3
9341 - '@vitest/runner': 3.2.3
9342 - '@vitest/snapshot': 3.2.3
9343 - '@vitest/spy': 3.2.3
9344 - '@vitest/utils': 3.2.3
9590 + '@vitest/expect': 3.2.4
9591 + '@vitest/mocker': 3.2.4(vite@6.3.5(@types/node@24.0.3)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0))
9592 + '@vitest/pretty-format': 3.2.4
9593 + '@vitest/runner': 3.2.4
9594 + '@vitest/snapshot': 3.2.4
9595 + '@vitest/spy': 3.2.4
9596 + '@vitest/utils': 3.2.4
9597 chai: 5.2.0
9598 debug: 4.4.1(supports-color@8.1.1)
9599 expect-type: 1.2.1
@@ -9352,14 +9604,14 @@ snapshots:
9604 tinybench: 2.9.0
9605 tinyexec: 0.3.2
9606 tinyglobby: 0.2.14
9355 - tinypool: 1.1.0
9607 + tinypool: 1.1.1
9608 tinyrainbow: 2.0.0
9357 - vite: 6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0)
9358 - vite-node: 3.2.3(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0)
9609 + vite: 6.3.5(@types/node@24.0.3)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0)
9610 + vite-node: 3.2.4(@types/node@24.0.3)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.2)(yaml@2.8.0)
9611 why-is-node-running: 2.3.0
9612 optionalDependencies:
9613 '@types/debug': 4.1.12
9362 - '@types/node': 22.15.31
9614 + '@types/node': 24.0.3
9615 jsdom: 26.1.0
9616 transitivePeerDependencies:
9617 - jiti
@@ -9375,35 +9627,35 @@ snapshots:
9627 - tsx
9628 - yaml
9629
9378 - vooks@0.2.12(vue@3.5.16(typescript@5.8.3)):
9630 + vooks@0.2.12(vue@3.5.17(typescript@5.8.3)):
9631 dependencies:
9632 evtd: 0.2.4
9381 - vue: 3.5.16(typescript@5.8.3)
9633 + vue: 3.5.17(typescript@5.8.3)
9634
9635 vscode-uri@3.1.0: {}
9636
9385 - vue-advanced-cropper@2.8.9(vue@3.5.16(typescript@5.8.3)):
9637 + vue-advanced-cropper@2.8.9(vue@3.5.17(typescript@5.8.3)):
9638 dependencies:
9639 classnames: 2.5.1
9640 debounce: 1.2.1
9641 easy-bem: 1.1.1
9390 - vue: 3.5.16(typescript@5.8.3)
9642 + vue: 3.5.17(typescript@5.8.3)
9643
9392 - vue-codemirror@6.1.1(codemirror@6.0.1)(vue@3.5.16(typescript@5.8.3)):
9644 + vue-codemirror@6.1.1(codemirror@6.0.2)(vue@3.5.17(typescript@5.8.3)):
9645 dependencies:
9646 '@codemirror/commands': 6.8.1
9647 '@codemirror/language': 6.11.0
9648 '@codemirror/state': 6.5.2
9649 '@codemirror/view': 6.36.8
9398 - codemirror: 6.0.1
9399 - vue: 3.5.16(typescript@5.8.3)
9650 + codemirror: 6.0.2
9651 + vue: 3.5.17(typescript@5.8.3)
9652
9653 vue-component-type-helpers@2.2.10: {}
9654
9403 - vue-eslint-parser@10.1.3(eslint@9.28.0(jiti@2.4.2)):
9655 + vue-eslint-parser@10.1.3(eslint@9.29.0(jiti@2.4.2)):
9656 dependencies:
9657 debug: 4.4.1(supports-color@8.1.1)
9406 - eslint: 9.28.0(jiti@2.4.2)
9658 + eslint: 9.29.0(jiti@2.4.2)
9659 eslint-scope: 8.3.0
9660 eslint-visitor-keys: 4.2.0
9661 espree: 10.3.0
@@ -9413,26 +9665,26 @@ snapshots:
9665 transitivePeerDependencies:
9666 - supports-color
9667
9416 - vue-highlight-words@3.0.1(vue@3.5.16(typescript@5.8.3)):
9668 + vue-highlight-words@3.0.1(vue@3.5.17(typescript@5.8.3)):
9669 dependencies:
9670 highlight-words-core: 1.2.3
9419 - vue: 3.5.16(typescript@5.8.3)
9671 + vue: 3.5.17(typescript@5.8.3)
9672
9421 - vue-i18n@11.1.5(vue@3.5.16(typescript@5.8.3)):
9673 + vue-i18n@11.1.6(vue@3.5.17(typescript@5.8.3)):
9674 dependencies:
9423 - '@intlify/core-base': 11.1.5
9424 - '@intlify/shared': 11.1.5
9675 + '@intlify/core-base': 11.1.6
9676 + '@intlify/shared': 11.1.6
9677 '@vue/devtools-api': 6.6.4
9426 - vue: 3.5.16(typescript@5.8.3)
9678 + vue: 3.5.17(typescript@5.8.3)
9679
9428 - vue-router@4.5.1(vue@3.5.16(typescript@5.8.3)):
9680 + vue-router@4.5.1(vue@3.5.17(typescript@5.8.3)):
9681 dependencies:
9682 '@vue/devtools-api': 6.6.4
9431 - vue: 3.5.16(typescript@5.8.3)
9683 + vue: 3.5.17(typescript@5.8.3)
9684
9433 - vue-sjv@0.0.6(vue@3.5.16(typescript@5.8.3)):
9685 + vue-sjv@0.0.6(vue@3.5.17(typescript@5.8.3)):
9686 dependencies:
9435 - vue: 3.5.16(typescript@5.8.3)
9687 + vue: 3.5.17(typescript@5.8.3)
9688
9689 vue-tsc@2.2.10(typescript@5.8.3):
9690 dependencies:
@@ -9440,40 +9692,40 @@ snapshots:
9692 '@vue/language-core': 2.2.10(typescript@5.8.3)
9693 typescript: 5.8.3
9694
9443 - vue3-apexcharts@1.8.0(apexcharts@4.7.0)(vue@3.5.16(typescript@5.8.3)):
9695 + vue3-apexcharts@1.8.0(apexcharts@4.7.0)(vue@3.5.17(typescript@5.8.3)):
9696 dependencies:
9697 apexcharts: 4.7.0
9446 - vue: 3.5.16(typescript@5.8.3)
9698 + vue: 3.5.17(typescript@5.8.3)
9699
9448 - vue3-marquee@4.2.2(vue@3.5.16(typescript@5.8.3)):
9700 + vue3-marquee@4.2.2(vue@3.5.17(typescript@5.8.3)):
9701 dependencies:
9450 - vue: 3.5.16(typescript@5.8.3)
9702 + vue: 3.5.17(typescript@5.8.3)
9703
9452 - vue@3.5.16(typescript@5.8.3):
9704 + vue@3.5.17(typescript@5.8.3):
9705 dependencies:
9454 - '@vue/compiler-dom': 3.5.16
9455 - '@vue/compiler-sfc': 3.5.16
9456 - '@vue/runtime-dom': 3.5.16
9457 - '@vue/server-renderer': 3.5.16(vue@3.5.16(typescript@5.8.3))
9458 - '@vue/shared': 3.5.16
9706 + '@vue/compiler-dom': 3.5.17
9707 + '@vue/compiler-sfc': 3.5.17
9708 + '@vue/runtime-dom': 3.5.17
9709 + '@vue/server-renderer': 3.5.17(vue@3.5.17(typescript@5.8.3))
9710 + '@vue/shared': 3.5.17
9711 optionalDependencies:
9712 typescript: 5.8.3
9713
9462 - vuedraggable@4.1.0(vue@3.5.16(typescript@5.8.3)):
9714 + vuedraggable@4.1.0(vue@3.5.17(typescript@5.8.3)):
9715 dependencies:
9716 sortablejs: 1.14.0
9465 - vue: 3.5.16(typescript@5.8.3)
9717 + vue: 3.5.17(typescript@5.8.3)
9718
9467 - vueuc@0.4.64(vue@3.5.16(typescript@5.8.3)):
9719 + vueuc@0.4.64(vue@3.5.17(typescript@5.8.3)):
9720 dependencies:
9469 - '@css-render/vue3-ssr': 0.15.14(vue@3.5.16(typescript@5.8.3))
9721 + '@css-render/vue3-ssr': 0.15.14(vue@3.5.17(typescript@5.8.3))
9722 '@juggle/resize-observer': 3.4.0
9723 css-render: 0.15.14
9724 evtd: 0.2.4
9725 seemly: 0.3.10
9474 - vdirs: 0.1.8(vue@3.5.16(typescript@5.8.3))
9475 - vooks: 0.2.12(vue@3.5.16(typescript@5.8.3))
9476 - vue: 3.5.16(typescript@5.8.3)
9726 + vdirs: 0.1.8(vue@3.5.17(typescript@5.8.3))
9727 + vooks: 0.2.12(vue@3.5.17(typescript@5.8.3))
9728 + vue: 3.5.17(typescript@5.8.3)
9729
9730 w3c-keyname@2.2.8: {}
9731
@@ -9483,7 +9735,7 @@ snapshots:
9735
9736 wait-on@8.0.3(debug@4.4.1):
9737 dependencies:
9486 - axios: 1.9.0(debug@4.4.1)
9738 + axios: 1.10.0(debug@4.4.1)
9739 joi: 17.13.3
9740 lodash: 4.17.21
9741 minimist: 1.2.8
frontend/src/api/endpoints/integrations.ts
+24 -7
@@ -1,5 +1,10 @@
1 import type { FlaskBaseResponse } from "@/types/flask.d"
2 -import type { AvailableIntegration, CustomerIntegration } from "@/types/integrations.d"
2 +import type {
3 + AvailableIntegration,
4 + CustomerIntegration,
5 + CustomerIntegrationMetaCommon,
6 + CustomerIntegrationMetaResponse
7 +} from "@/types/integrations.d"
8 import { HttpClient } from "../httpClient"
9
10 export interface IntegrationAuthKeyPairs {
@@ -22,6 +27,10 @@ export interface NewIntegrationPayload extends NewIntegration {
27 }
28 }
29
30 +export interface UpdateMetaAutoRequest extends Omit<CustomerIntegrationMetaCommon, "id"> {
31 + integration_name: string
32 +}
33 +
34 export type UpdateIntegrationPayload = Omit<NewIntegration, "customer_name">
35
36 export default {
@@ -31,6 +40,11 @@ export default {
40 `/integrations/available_integrations`
41 )
42 },
43 + getMetaAuto(customerCode: string, integrationName: string) {
44 + return HttpClient.get<FlaskBaseResponse & CustomerIntegrationMetaResponse>(
45 + `/integrations/meta_auto/${customerCode}/${integrationName}`
46 + )
47 + },
48 getCustomerIntegrations(customerCode: string) {
49 return HttpClient.get<FlaskBaseResponse & { available_integrations: CustomerIntegration[] }>(
50 `/integrations/customer_integrations/${customerCode}`
@@ -53,6 +67,9 @@ export default {
67 payload
68 )
69 },
70 + updateMetaAuto(payload: UpdateMetaAutoRequest) {
71 + return HttpClient.put<FlaskBaseResponse>(`/integrations/update_meta_auto`, payload)
72 + },
73 deleteIntegration(customerCode: string, integrationName: string) {
74 return HttpClient.delete<FlaskBaseResponse>(`/integrations/delete_integration`, {
75 data: { customer_code: customerCode, integration_name: integrationName }
@@ -110,11 +127,11 @@ export default {
127 time_interval: 15
128 })
129 },
113 - defenderForEndpointProvision(customerCode: string, integrationName: string) {
114 - return HttpClient.post<FlaskBaseResponse>(`/defender_for_endpoint/provision`, {
115 - customer_code: customerCode,
116 - integration_name: integrationName || "DefenderForEndpoint"
117 - })
118 - }
130 + defenderForEndpointProvision(customerCode: string, integrationName: string) {
131 + return HttpClient.post<FlaskBaseResponse>(`/defender_for_endpoint/provision`, {
132 + customer_code: customerCode,
133 + integration_name: integrationName || "DefenderForEndpoint"
134 + })
135 + }
136 // #endregion
137 }
frontend/src/components/customers/integrations/CustomerIntegrationActions.vue
+4 -4
@@ -67,7 +67,7 @@ const isDeployEnabled = computed(
67 isDarktrace.value ||
68 isBitdefender.value ||
69 isCato.value ||
70 - isDefenderForEndpoint.value) &&
70 + isDefenderForEndpoint.value) &&
71 !integration.deployed
72 )
73
@@ -103,9 +103,9 @@ function provision() {
103 if (isCato.value) {
104 apiCall = Api.integrations.catoProvision(customerCode.value, serviceName.value)
105 }
106 - if (isDefenderForEndpoint.value) {
107 - apiCall = Api.integrations.defenderForEndpointProvision(customerCode.value, serviceName.value)
108 - }
106 + if (isDefenderForEndpoint.value) {
107 + apiCall = Api.integrations.defenderForEndpointProvision(customerCode.value, serviceName.value)
108 + }
109
110 if (!apiCall) {
111 return
frontend/src/components/customers/integrations/CustomerIntegrationItem.vue
+8
@@ -22,6 +22,12 @@
22 Details
23 </n-button>
24
25 + <CustomerIntegrationMetaButton
26 + size="small"
27 + :customer-code="integration.customer_code"
28 + :integration-name="serviceName"
29 + />
30 +
31 <CustomerIntegrationActions
32 class="flex flex-wrap gap-3"
33 :integration
@@ -33,6 +39,7 @@
39 </template>
40 </CardEntity>
41
42 + <!-- Existing Details Modal -->
43 <n-modal
44 v-model:show="showDetails"
45 preset="card"
@@ -54,6 +61,7 @@ import { computed, defineAsyncComponent, ref } from "vue"
61 import Badge from "@/components/common/Badge.vue"
62 import CardEntity from "@/components/common/cards/CardEntity.vue"
63 import Icon from "@/components/common/Icon.vue"
64 +import CustomerIntegrationMetaButton from "../metadata/CustomerIntegrationMetaButton.vue"
65 import CustomerIntegrationActions from "./CustomerIntegrationActions.vue"
66
67 const { integration: customerIntegration, embedded } = defineProps<{
frontend/src/components/customers/metadata/CustomerIntegrationMetaButton.vue new
+43
@@ -0,0 +1,43 @@
1 +<template>
2 + <div>
3 + <n-button :size @click.stop="showDetails = true">
4 + <template #icon>
5 + <Icon :name="MetaIcon"></Icon>
6 + </template>
7 + Meta Details
8 + </n-button>
9 +
10 + <n-modal
11 + v-model:show="showDetails"
12 + preset="card"
13 + :style="{ maxWidth: 'min(800px, 90vw)', minHeight: 'min(411px, 90vh)', overflow: 'hidden' }"
14 + content-class="flex flex-col"
15 + :title="`${integrationName} — Meta Details`"
16 + :bordered="false"
17 + segmented
18 + display-directive="show"
19 + >
20 + <CustomerIntegrationMetaDetails :customer-code :integration-name />
21 + </n-modal>
22 + </div>
23 +</template>
24 +
25 +<script setup lang="ts">
26 +import type { Size } from "naive-ui/es/button/src/interface"
27 +import { NButton, NModal } from "naive-ui"
28 +import { defineAsyncComponent, ref } from "vue"
29 +import Icon from "@/components/common/Icon.vue"
30 +
31 +const { integrationName, customerCode, size } = defineProps<{
32 + integrationName: string
33 + customerCode: string
34 + size?: Size
35 +}>()
36 +
37 +const CustomerIntegrationMetaDetails = defineAsyncComponent(
38 + () => import("../metadata/CustomerIntegrationMetaDetails.vue")
39 +)
40 +
41 +const MetaIcon = "carbon:data-base"
42 +const showDetails = ref(false)
43 +</script>
frontend/src/components/customers/metadata/CustomerIntegrationMetaDetails.vue new
+127
@@ -0,0 +1,127 @@
1 +<template>
2 + <div v-if="!loading && !integrationData" class="flex min-h-80 items-center justify-center">
3 + <n-empty description="No metadata found" />
4 + </div>
5 + <div v-else class="flex grow flex-col">
6 + <n-collapse-transition :show="mode === 'edit'">
7 + <CustomerIntegrationMetaForm v-if="integrationData" :integration-data @success="successHandler()">
8 + <template #extraActions>
9 + <n-button secondary @click="setViewMode()">
10 + <template #icon>
11 + <Icon :name="BackIcon"></Icon>
12 + </template>
13 + Back
14 + </n-button>
15 + </template>
16 + </CustomerIntegrationMetaForm>
17 + </n-collapse-transition>
18 + <n-collapse-transition :show="mode === 'view'" class="flex grow flex-col">
19 + <n-spin
20 + :show="loading"
21 + content-class="flex grow flex-col justify-between gap-14"
22 + class="flex grow flex-col"
23 + >
24 + <!-- Read-only View (when not editing) -->
25 + <div class="grid-auto-fit-200 grid gap-2">
26 + <CardKV v-for="(value, key) of integrationData" :key="key">
27 + <template #key>
28 + {{ getMetaFieldLabel(`${key}`) }}
29 + </template>
30 + <template #value>
31 + {{ value || "—" }}
32 + </template>
33 + </CardKV>
34 + </div>
35 +
36 + <!-- Bottom Actions -->
37 + <div class="flex items-center justify-end">
38 + <div class="flex gap-3">
39 + <n-button secondary :loading @click="loadMetaData()">
40 + <template #icon>
41 + <Icon :name="RefreshIcon"></Icon>
42 + </template>
43 + Refresh
44 + </n-button>
45 + <n-button secondary type="primary" @click="setEditMode()">
46 + <template #icon>
47 + <Icon :name="EditIcon"></Icon>
48 + </template>
49 + Edit
50 + </n-button>
51 + </div>
52 + </div>
53 + </n-spin>
54 + </n-collapse-transition>
55 + </div>
56 +</template>
57 +
58 +<script setup lang="ts">
59 +import type { CustomerIntegrationMetaNetwork, CustomerIntegrationMetaThirdParty } from "@/types/integrations.d"
60 +import { NButton, NCollapseTransition, NEmpty, NSpin, useMessage } from "naive-ui"
61 +import { onBeforeMount, ref } from "vue"
62 +import Api from "@/api"
63 +import CardKV from "@/components/common/cards/CardKV.vue"
64 +import Icon from "@/components/common/Icon.vue"
65 +import CustomerIntegrationMetaForm from "./CustomerIntegrationMetaForm.vue"
66 +import { getMetaFieldLabel } from "./utils"
67 +
68 +const { customerCode, integrationName } = defineProps<{
69 + customerCode: string
70 + integrationName: string
71 +}>()
72 +
73 +type Mode = "view" | "edit"
74 +
75 +const RefreshIcon = "carbon:renew"
76 +const EditIcon = "carbon:edit"
77 +const BackIcon = "carbon:arrow-left"
78 +
79 +const message = useMessage()
80 +const loading = ref(false)
81 +const mode = ref<Mode>("view")
82 +const integrationData = ref<CustomerIntegrationMetaThirdParty | CustomerIntegrationMetaNetwork | null>(null)
83 +
84 +function setMode(newMode: Mode): void {
85 + mode.value = newMode
86 +}
87 +
88 +function setEditMode() {
89 + setMode("edit")
90 +}
91 +
92 +function setViewMode() {
93 + setMode("view")
94 +}
95 +
96 +function successHandler() {
97 + setViewMode()
98 + loadMetaData()
99 +}
100 +
101 +function loadMetaData() {
102 + loading.value = true
103 +
104 + Api.integrations
105 + .getMetaAuto(customerCode, integrationName)
106 + .then(res => {
107 + if (res.data.success) {
108 + integrationData.value = res.data.data
109 + } else {
110 + message.warning(res.data?.message || "Failed to load metadata")
111 + integrationData.value = null
112 + }
113 + })
114 + .catch(err => {
115 + const errorMsg = err.response?.data?.message || "An error occurred while loading metadata"
116 + message.error(errorMsg)
117 + integrationData.value = null
118 + })
119 + .finally(() => {
120 + loading.value = false
121 + })
122 +}
123 +
124 +onBeforeMount(() => {
125 + loadMetaData()
126 +})
127 +</script>
frontend/src/components/customers/metadata/CustomerIntegrationMetaForm.vue new
+149
@@ -0,0 +1,149 @@
1 +<template>
2 + <n-spin :show="loading" content-class="flex grow flex-col">
3 + <div class="flex flex-col gap-4">
4 + <n-form ref="formRef" :model :rules label-width="auto">
5 + <div class="grid grid-cols-1 gap-x-6 gap-y-2 md:grid-cols-2">
6 + <!-- Customer Code (readonly) -->
7 + <n-form-item :label="getMetaFieldLabel('customer_code')" path="customer_code">
8 + <n-input :value="model.customer_code" disabled />
9 + </n-form-item>
10 +
11 + <!-- Integration Name (readonly) -->
12 + <n-form-item :label="getMetaFieldLabel('integration_name')" path="integration_name">
13 + <n-input :value="model.integration_name" disabled />
14 + </n-form-item>
15 +
16 + <template v-for="(_, key) of model" :key>
17 + <n-form-item
18 + v-if="!['customer_code', 'integration_name'].includes(key)"
19 + :label="getMetaFieldLabel(key)"
20 + :path="key"
21 + >
22 + <n-input v-model:value.trim="model[key]" placeholder="Optional" clearable />
23 + </n-form-item>
24 + </template>
25 + </div>
26 + </n-form>
27 +
28 + <!-- Edit Form Actions -->
29 + <div class="flex items-center justify-between gap-3">
30 + <div class="flex items-center justify-between gap-3">
31 + <slot name="extraActions" />
32 +
33 + <n-button v-if="showResetButton" @click="reset()">Reset</n-button>
34 + </div>
35 + <n-button type="primary" :loading="loading" @click="save()">
36 + <template #icon>
37 + <Icon :name="SaveIcon"></Icon>
38 + </template>
39 + Save Changes
40 + </n-button>
41 + </div>
42 + </div>
43 + </n-spin>
44 +</template>
45 +
46 +<script setup lang="ts">
47 +import type { FormInst, FormRules } from "naive-ui"
48 +import type { UpdateMetaAutoRequest } from "@/api/endpoints/integrations"
49 +import type { CustomerIntegrationMetaNetwork, CustomerIntegrationMetaThirdParty } from "@/types/integrations.d"
50 +import { NButton, NForm, NFormItem, NInput, NSpin, useMessage } from "naive-ui"
51 +import { ref } from "vue"
52 +import Api from "@/api"
53 +import Icon from "@/components/common/Icon.vue"
54 +import { getMetaFieldLabel } from "./utils"
55 +
56 +const { integrationData, showResetButton } = defineProps<{
57 + integrationData: CustomerIntegrationMetaThirdParty | CustomerIntegrationMetaNetwork
58 + showResetButton?: boolean
59 +}>()
60 +
61 +const emit = defineEmits<{
62 + (e: "success"): void
63 +}>()
64 +
65 +const SaveIcon = "carbon:save"
66 +
67 +const message = useMessage()
68 +const loading = ref(false)
69 +const formRef = ref<FormInst | null>(null)
70 +
71 +// Form for editing
72 +const model = ref<UpdateMetaAutoRequest>(getDefaultModel(integrationData))
73 +
74 +// Form validation rules
75 +const rules: FormRules = {
76 + customer_code: {
77 + required: true
78 + },
79 + integration_name: {
80 + required: true
81 + }
82 +}
83 +
84 +function getDefaultModel(
85 + entity?: CustomerIntegrationMetaThirdParty | CustomerIntegrationMetaNetwork
86 +): UpdateMetaAutoRequest {
87 + return {
88 + customer_code: entity?.customer_code || "",
89 + integration_name:
90 + entity && "integration_name" in entity
91 + ? entity.integration_name
92 + : entity && "network_connector_name" in entity
93 + ? entity.network_connector_name
94 + : "",
95 + graylog_input_id: entity?.graylog_input_id || undefined,
96 + graylog_index_id: entity?.graylog_index_id || undefined,
97 + graylog_stream_id: entity?.graylog_stream_id || undefined,
98 + graylog_pipeline_id: entity?.graylog_pipeline_id || undefined,
99 + graylog_content_pack_input_id: entity?.graylog_content_pack_input_id || undefined,
100 + graylog_content_pack_stream_id: entity?.graylog_content_pack_stream_id || undefined,
101 + grafana_org_id: entity?.grafana_org_id || undefined,
102 + grafana_dashboard_folder_id: entity?.grafana_dashboard_folder_id || undefined,
103 + grafana_datasource_uid: entity?.grafana_datasource_uid || undefined
104 + }
105 +}
106 +
107 +function reset() {
108 + if (!loading.value) {
109 + model.value = getDefaultModel(integrationData)
110 + }
111 +}
112 +
113 +function save() {
114 + if (!formRef.value) return
115 +
116 + formRef.value.validate(errors => {
117 + if (errors) {
118 + message.error("Please fix the validation errors")
119 + return
120 + }
121 +
122 + loading.value = true
123 +
124 + const payload: UpdateMetaAutoRequest = { ...model.value }
125 + for (const key in payload) {
126 + if (!payload[key as keyof UpdateMetaAutoRequest]) payload[key as keyof UpdateMetaAutoRequest] = ""
127 + }
128 +
129 + Api.integrations
130 + .updateMetaAuto(payload)
131 + .then(res => {
132 + if (res.data.success) {
133 + message.success(res.data?.message || "Metadata updated successfully")
134 + // Reload the data to show updated values
135 + emit("success")
136 + } else {
137 + message.warning(res.data?.message || "Failed to update metadata")
138 + }
139 + })
140 + .catch(err => {
141 + const errorMsg = err.response?.data?.message || "An error occurred while updating metadata"
142 + message.error(errorMsg)
143 + })
144 + .finally(() => {
145 + loading.value = false
146 + })
147 + })
148 +}
149 +</script>
frontend/src/components/customers/metadata/utils.ts new
+20
@@ -0,0 +1,20 @@
1 +import _get from "lodash/get"
2 +
3 +export function getMetaFieldLabel(key: string): string {
4 + const labelsMap: Record<string, string> = {
5 + id: "ID",
6 + customer_code: "Customer Code",
7 + integration_name: "Integration Name",
8 + network_connector_name: "Network Connector Name",
9 + graylog_input_id: "Graylog Input ID",
10 + graylog_index_id: "Graylog Index ID",
11 + graylog_stream_id: "Graylog Stream ID",
12 + graylog_pipeline_id: "Graylog Pipeline ID",
13 + graylog_content_pack_input_id: "Graylog Content Pack Input ID",
14 + graylog_content_pack_stream_id: "Graylog Content Pack Stream ID",
15 + grafana_org_id: "Grafana Org ID",
16 + grafana_datasource_uid: "Grafana Datasource UID"
17 + }
18 +
19 + return _get(labelsMap, key, key)
20 +}
frontend/src/components/customers/networkConnectors/CustomerNetworkConnectorItem.vue
+7
@@ -22,6 +22,12 @@
22 Details
23 </n-button>
24
25 + <CustomerIntegrationMetaButton
26 + size="small"
27 + :customer-code="networkConnector.customer_code"
28 + :integration-name="serviceName"
29 + />
30 +
31 <CustomerNetworkConnectorActions
32 class="flex flex-wrap gap-3"
33 :network-connector
@@ -66,6 +72,7 @@ import Badge from "@/components/common/Badge.vue"
72 import CardEntity from "@/components/common/cards/CardEntity.vue"
73 import CardKV from "@/components/common/cards/CardKV.vue"
74 import Icon from "@/components/common/Icon.vue"
75 +import CustomerIntegrationMetaButton from "../metadata/CustomerIntegrationMetaButton.vue"
76 import CustomerNetworkConnectorActions from "./CustomerNetworkConnectorActions.vue"
77
78 const props = defineProps<{
frontend/src/types/integrations.d.ts
+32
@@ -40,3 +40,35 @@ export interface IntegrationService {
40 service_name: string
41 id: number
42 }
43 +
44 +export interface CustomerIntegrationMetaCommon {
45 + id: number
46 + customer_code: string
47 + graylog_input_id?: string
48 + graylog_index_id?: string
49 + graylog_stream_id?: string
50 + graylog_pipeline_id?: string
51 + graylog_content_pack_input_id?: string
52 + graylog_content_pack_stream_id?: string
53 + grafana_org_id?: string
54 + grafana_dashboard_folder_id?: string
55 + grafana_datasource_uid?: string
56 +}
57 +
58 +export interface CustomerIntegrationMetaThirdParty extends CustomerIntegrationMetaCommon {
59 + integration_name: string
60 +}
61 +
62 +export interface CustomerIntegrationMetaNetwork extends CustomerIntegrationMetaCommon {
63 + network_connector_name: string
64 +}
65 +
66 +export type CustomerIntegrationMetaResponse =
67 + | {
68 + data: CustomerIntegrationMetaThirdParty
69 + table_type: "integration"
70 + }
71 + | {
72 + data: CustomerIntegrationMetaNetwork
73 + table_type: "network_connector"
74 + }
frontend/tsconfig.app.json
+1 -1
@@ -2,12 +2,12 @@
2 "extends": "@vue/tsconfig/tsconfig.dom.json",
3 "compilerOptions": {
4 "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
5 + "lib": ["es2023"],
6 "paths": {
7 "@/*": ["./src/*"]
8 },
9 "typeRoots": ["./node_modules/@types", "./node_modules/vue-sjv/dist"],
10 "allowJs": true,
10 -
11 "strict": true,
12 "noFallthroughCasesInSwitch": true,
13 "noUnusedLocals": true,
frontend/tsconfig.vitest.json
+1 -1
@@ -3,7 +3,7 @@
3 "compilerOptions": {
4 "composite": true,
5 "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.vitest.tsbuildinfo",
6 - "lib": [],
6 + "lib": ["es2023"],
7 "types": ["node", "jsdom"],
8 "allowImportingTsExtensions": true
9 },