@cryptotaxi247 / CoPilot / commits / ec245381

Artifact lookup soc (#230)

* feat: Add process_name field to IrisAlertContext model and add asset to iris alert during alert escalation * feat: Add artifact recommendation endpoint and hard-coded response for testing * refactor * configs refactor bis * update artifact components * added assets ArtifactsCollect tab * precommit fixes --------- Co-authored-by: Davide Di Modica <webmaster.ddm@gmail.com>

taylor_socfortress committed Jun 5, 2024 at 14:07 UTC ec24538150f6f823196760972ef37e83f35e0226
23 files changed +305 -12100
.gitignore
+6
@@ -61,3 +61,9 @@ backend/report.pdf
61
62 backend/report.html
63 backend/app/integrations/office365/services/wazuh_config.xml
64 +
65 +frontend/tsconfig.app.tsbuildinfo
66 +
67 +frontend/tsconfig.node.tsbuildinfo
68 +
69 +frontend/tsconfig.vitest.tsbuildinfo
.vscode/settings.json
+5
@@ -20,12 +20,14 @@
20 "forgotpassword",
21 "Healthcheck",
22 "healthchecks",
23 + "hoverable",
24 "iconoir",
25 "Indicies",
26 "Logsource",
27 "majesticons",
28 "mimecast",
29 "mynaui",
30 + "nightwatch",
31 "ntime",
32 "nums",
33 "ochin",
@@ -41,8 +43,11 @@
43 "Socfortress",
44 "sparkline",
45 "Sysmon",
46 + "tabler",
47 "taze",
48 "timerange",
49 + "timesec",
50 + "tsbuildinfo",
51 "uvicorn",
52 "venv",
53 "virustotal",
backend/app/integrations/alert_escalation/schema/escalate_alert.py
+4
@@ -209,5 +209,9 @@ class IrisAlertPayload(BaseModel):
209 description="Contextual information about the alert",
210 )
211
212 + # Allow extra fields
213 + class Config:
214 + extra = Extra.allow
215 +
216 def to_dict(self):
217 return self.dict(exclude_none=True)
backend/app/integrations/alert_escalation/services/escalate_alert.py
+123 -6
@@ -11,6 +11,8 @@ from app.connectors.dfir_iris.utils.universal import fetch_and_validate_data
11 from app.connectors.dfir_iris.utils.universal import initialize_client_and_alert
12 from app.connectors.utils import get_connector_info_from_db
13 from app.connectors.wazuh_indexer.utils.universal import create_wazuh_indexer_client
14 +from app.db.universal_models import Agents
15 +from app.integrations.alert_creation.general.schema.alert import IrisAsset
16 from app.integrations.alert_creation_settings.models.alert_creation_settings import (
17 AlertCreationSettings,
18 )
@@ -23,6 +25,7 @@ from app.integrations.alert_escalation.schema.escalate_alert import IrisAlertCon
25 from app.integrations.alert_escalation.schema.escalate_alert import IrisAlertPayload
26 from app.integrations.alert_escalation.schema.escalate_alert import SourceFieldsToRemove
27 from app.integrations.alert_escalation.schema.escalate_alert import SyslogLevelMapping
28 +from app.integrations.utils.alerts import get_asset_type_id
29
30
31 async def fetch_settings(field: str, value: str, session: AsyncSession):
@@ -131,22 +134,62 @@ async def set_alert_level(syslog_level: str):
134 return 3
135
136
134 -async def get_process_name(source_dict: dict) -> List[str]:
137 +def remove_process_name_if_osquery(source_dict: dict) -> None:
138 """
136 - Get the process name from the source dictionary.
139 + Remove the process_name field from the source dictionary if rule_group1 is 'osquery'.
140 +
141 + Args:
142 + source_dict (dict): The source dictionary.
143 + """
144 + rule_group1 = source_dict.get("rule_group1")
145 + if rule_group1 == "osquery":
146 + logger.info("Removing process_name field")
147 + source_dict.pop("process_name", None)
148 +
149 +
150 +def get_process_image(source_dict: dict) -> str:
151 + """
152 + Get the process_image field from the source dictionary.
153
154 Args:
155 source_dict (dict): The source dictionary.
156
157 Returns:
142 - List[str]: The process name as a list.
158 + str: The process image.
159 """
144 - # Get the last part of the process_image path
160 process_image = source_dict.get("process_image")
146 - if process_image is None:
147 - process_image = source_dict.get("data_win_eventdata_image")
161 + logger.info(f"Process image: {process_image}")
162 + return process_image if process_image else source_dict.get("data_win_eventdata_image")
163 +
164
165 +def get_process_name_from_image(process_image: str) -> str:
166 + """
167 + Get the process name from the process image.
168 +
169 + Args:
170 + process_image (str): The process image.
171 +
172 + Returns:
173 + str: The process name.
174 + """
175 process_name = os.path.basename(process_image) if process_image else None
176 + logger.info(f"Process name: {process_name}")
177 + return process_name
178 +
179 +
180 +async def get_process_name(source_dict: dict) -> List[str]:
181 + """
182 + Get the process name from the source dictionary.
183 +
184 + Args:
185 + source_dict (dict): The source dictionary.
186 +
187 + Returns:
188 + List[str]: The process name as a list.
189 + """
190 + remove_process_name_if_osquery(source_dict)
191 + process_image = get_process_image(source_dict)
192 + process_name = get_process_name_from_image(process_image)
193 return [process_name] if process_name else []
194
195
@@ -314,6 +357,9 @@ async def build_alert_payload(
357 # Get the timefield value from the alert_details
358 if hasattr(alert_details, timefield):
359 alert_details.time_field = getattr(alert_details, timefield)
360 + # Check if its part of _source
361 + if hasattr(alert_details._source, timefield):
362 + alert_details.time_field = getattr(alert_details._source, timefield)
363 logger.info(f"Alert has context: {context_payload}")
364 try:
365 return IrisAlertPayload(
@@ -335,6 +381,75 @@ async def build_alert_payload(
381 )
382
383
384 +async def retrieve_agent_details_from_db(agent_name: str, session: AsyncSession):
385 + """
386 + Retrieve agent details from the database.
387 +
388 + Args:
389 + agent_name (str): The name of the agent.
390 + session (AsyncSession): The database session.
391 +
392 + Returns:
393 + Agents: The agent details.
394 + """
395 + logger.info(f"Retrieving agent details for {agent_name}")
396 + result = await session.execute(
397 + select(Agents).where(Agents.hostname == agent_name),
398 + )
399 + agent = result.scalars().first()
400 + if agent:
401 + return agent
402 + return None
403 +
404 +
405 +async def add_asset_to_iris_alert(alert_id: int, asset_details: Agents, iris_alert_payload: IrisAlertPayload, session: AsyncSession):
406 + client, alert_client = await initialize_client_and_alert("DFIR-IRIS")
407 + asset_data = {
408 + "assets": [
409 + dict(
410 + IrisAsset(
411 + asset_name=asset_details.hostname,
412 + asset_ip=asset_details.ip_address,
413 + asset_description="",
414 + asset_type_id=await get_asset_type_id(asset_details.os),
415 + asset_tags=f"agent_id:{asset_details.agent_id}",
416 + ).dict(),
417 + ),
418 + ],
419 + }
420 + logger.info(f"Adding asset to alert {alert_id} with asset data: {asset_data}")
421 + await fetch_and_validate_data(
422 + client,
423 + alert_client.update_alert,
424 + alert_id,
425 + asset_data,
426 + )
427 +
428 +
429 +async def add_asset_if_wazuh(alert_details: GenericAlertModel, alert_id: int, iris_alert_payload: IrisAlertPayload, session: AsyncSession):
430 + """
431 + Adds the asset to the alert if the alert is from Wazuh.
432 +
433 + Args:
434 + alert_details (GenericAlertModel): The details of the alert.
435 + alert_id (int): The ID of the alert.
436 + session (AsyncSession): The database session.
437 + """
438 + # Check if `agent_id` is present in the alert details and is not equal to `000`
439 + if hasattr(alert_details._source, "agent_id") and alert_details._source.agent_id != "000":
440 + logger.info(f"Adding asset to alert {alert_id}")
441 + asset_details = await retrieve_agent_details_from_db(alert_details._source.agent_name, session)
442 + if asset_details:
443 + await add_asset_to_iris_alert(alert_id, asset_details, iris_alert_payload, session)
444 + logger.info(f"Asset added to alert {alert_id}")
445 + return None
446 + else:
447 + logger.error(f"Failed to retrieve asset details for {alert_details._source.agent_name}")
448 + return None
449 + logger.info(f"Alert {alert_id} is not from Wazuh. Skipping asset addition.")
450 + return None
451 +
452 +
453 async def create_alert(
454 alert: CreateAlertRequest,
455 session: AsyncSession,
@@ -373,6 +488,8 @@ async def create_alert(
488 )
489 alert_id = result["data"]["alert_id"]
490
491 + await add_asset_if_wazuh(alert_details, alert_id, iris_alert_payload, session)
492 +
493 es_client = await create_wazuh_indexer_client("Wazuh-Indexer")
494 iris_url = await add_alert_to_document(
495 es_client,
frontend/.eslintrc.cjs
+1 -1
@@ -14,7 +14,7 @@ module.exports = {
14 extends: ["plugin:vue/vue3-essential", "eslint:recommended", "@vue/eslint-config-typescript"],
15 overrides: [
16 {
17 - files: ["cypress/e2e/**.{cy,spec}.{js,ts,jsx,tsx}"],
17 + files: ["cypress/e2e/**.{cy,spec}.{js,ts,jsx,tsx}", "cypress/support/**/*.{js,ts,jsx,tsx}"],
18 extends: ["plugin:cypress/recommended"]
19 }
20 ],
frontend/package-lock.json deleted
-11979
@@ -1,11979 +0,0 @@
1 -{
2 - "name": "copilot",
3 - "version": "1.0.0",
4 - "lockfileVersion": 3,
5 - "requires": true,
6 - "packages": {
7 - "": {
8 - "name": "copilot",
9 - "version": "1.0.0",
10 - "dependencies": {
11 - "@ajoelp/json-to-formdata": "^1.5.0",
12 - "@f3ve/vue-markdown-it": "^0.2.2",
13 - "@fontsource/jetbrains-mono": "^5.0.20",
14 - "@fontsource/lexend": "^5.0.20",
15 - "@fontsource/public-sans": "^5.0.18",
16 - "@popperjs/core": "^2.11.8",
17 - "@shikijs/markdown-it": "^1.6.1",
18 - "@vueuse/components": "^10.10.0",
19 - "@vueuse/core": "^10.10.0",
20 - "apexcharts": "^3.49.1",
21 - "bytes": "^3.1.2",
22 - "colord": "^2.9.3",
23 - "crypto-js": "^4.2.0",
24 - "dayjs": "^1.11.11",
25 - "detect-touch-device": "^1.1.6",
26 - "echarts": "^5.5.0",
27 - "file-saver": "^2.0.5",
28 - "html-entities": "^2.5.2",
29 - "jose": "^5.3.0",
30 - "js-md5": "^0.8.3",
31 - "lodash": "^4.17.21",
32 - "mitt": "^3.0.1",
33 - "naive-ui": "^2.38.2",
34 - "password-validator": "^5.3.0",
35 - "pinia": "^2.1.7",
36 - "pinia-plugin-persistedstate": "^3.2.1",
37 - "secure-ls": "^1.2.6",
38 - "shiki": "^1.6.1",
39 - "validator": "^13.12.0",
40 - "vue": "^3.4.27",
41 - "vue-advanced-cropper": "^2.8.8",
42 - "vue-highlight-words": "^3.0.1",
43 - "vue-i18n": "^9.13.1",
44 - "vue-router": "^4.3.2",
45 - "vue-sjv": "^0.0.6",
46 - "vue3-apexcharts": "^1.5.3",
47 - "vue3-marquee": "^4.2.0",
48 - "vuedraggable": "^4.1.0"
49 - },
50 - "devDependencies": {
51 - "@clack/prompts": "^0.7.0",
52 - "@iconify/vue": "^4.1.2",
53 - "@rushstack/eslint-patch": "^1.10.3",
54 - "@tsconfig/node18": "^18.2.4",
55 - "@types/bytes": "^3.1.4",
56 - "@types/file-saver": "^2.0.7",
57 - "@types/fs-extra": "^11.0.4",
58 - "@types/inquirer": "^9.0.7",
59 - "@types/jsdom": "^21.1.6",
60 - "@types/lodash": "^4.17.4",
61 - "@types/node": "^20.12.13",
62 - "@types/validator": "^13.11.10",
63 - "@vitejs/plugin-vue": "^5.0.4",
64 - "@vitejs/plugin-vue-jsx": "^3.1.0",
65 - "@vue/eslint-config-prettier": "^9.0.0",
66 - "@vue/eslint-config-typescript": "^13.0.0",
67 - "@vue/test-utils": "^2.4.6",
68 - "@vue/tsconfig": "^0.5.1",
69 - "autoprefixer": "^10.4.19",
70 - "cypress": "^13.10.0",
71 - "eslint": "^8.57.0",
72 - "eslint-plugin-cypress": "^3.3.0",
73 - "eslint-plugin-vue": "^9.26.0",
74 - "flourite": "^1.2.4",
75 - "fs-extra": "^11.2.0",
76 - "ip": "^2.0.1",
77 - "jsdom": "^24.1.0",
78 - "json5": "^2.2.3",
79 - "npm-run-all": "^4.1.5",
80 - "picocolors": "^1.0.1",
81 - "postcss": "^8.4.38",
82 - "prettier": "^3.2.5",
83 - "sass": "^1.77.3",
84 - "start-server-and-test": "^2.0.3",
85 - "tailwind-config-viewer": "^2.0.2",
86 - "tailwindcss": "^3.4.3",
87 - "taze": "^0.13.8",
88 - "unplugin-vue-components": "^0.27.0",
89 - "vite": "^5.2.12",
90 - "vite-bundle-analyzer": "^0.9.4",
91 - "vite-bundle-visualizer": "^1.2.1",
92 - "vite-svg-loader": "^5.1.0",
93 - "vitest": "^1.6.0",
94 - "vue-tsc": "^2.0.19"
95 - },
96 - "engines": {
97 - "node": ">=18.0.0"
98 - }
99 - },
100 - "node_modules/@ajoelp/json-to-formdata": {
101 - "version": "1.5.0",
102 - "resolved": "https://registry.npmjs.org/@ajoelp/json-to-formdata/-/json-to-formdata-1.5.0.tgz",
103 - "integrity": "sha512-nrlfeTSL0X0dtx5r2KpzPiqLSIQquiiJjUKsQAKzWaCmO2QoYZCyb5ENZwF3YoffKronOCJr25mxaD8JRJmK8w==",
104 - "dependencies": {
105 - "lodash": "4.17.21"
106 - }
107 - },
108 - "node_modules/@alloc/quick-lru": {
109 - "version": "5.2.0",
110 - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
111 - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
112 - "dev": true,
113 - "engines": {
114 - "node": ">=10"
115 - },
116 - "funding": {
117 - "url": "https://github.com/sponsors/sindresorhus"
118 - }
119 - },
120 - "node_modules/@ampproject/remapping": {
121 - "version": "2.3.0",
122 - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
123 - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
124 - "dev": true,
125 - "dependencies": {
126 - "@jridgewell/gen-mapping": "^0.3.5",
127 - "@jridgewell/trace-mapping": "^0.3.24"
128 - },
129 - "engines": {
130 - "node": ">=6.0.0"
131 - }
132 - },
133 - "node_modules/@antfu/ni": {
134 - "version": "0.21.12",
135 - "resolved": "https://registry.npmjs.org/@antfu/ni/-/ni-0.21.12.tgz",
136 - "integrity": "sha512-2aDL3WUv8hMJb2L3r/PIQWsTLyq7RQr3v9xD16fiz6O8ys1xEyLhhTOv8gxtZvJiTzjTF5pHoArvRdesGL1DMQ==",
137 - "dev": true,
138 - "bin": {
139 - "na": "bin/na.mjs",
140 - "nci": "bin/nci.mjs",
141 - "ni": "bin/ni.mjs",
142 - "nlx": "bin/nlx.mjs",
143 - "nr": "bin/nr.mjs",
144 - "nu": "bin/nu.mjs",
145 - "nun": "bin/nun.mjs"
146 - }
147 - },
148 - "node_modules/@antfu/utils": {
149 - "version": "0.7.8",
150 - "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-0.7.8.tgz",
151 - "integrity": "sha512-rWQkqXRESdjXtc+7NRfK9lASQjpXJu1ayp7qi1d23zZorY+wBHVLHHoVcMsEnkqEBWTFqbztO7/QdJFzyEcLTg==",
152 - "funding": {
153 - "url": "https://github.com/sponsors/antfu"
154 - }
155 - },
156 - "node_modules/@babel/code-frame": {
157 - "version": "7.24.2",
158 - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz",
159 - "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==",
160 - "dev": true,
161 - "dependencies": {
162 - "@babel/highlight": "^7.24.2",
163 - "picocolors": "^1.0.0"
164 - },
165 - "engines": {
166 - "node": ">=6.9.0"
167 - }
168 - },
169 - "node_modules/@babel/compat-data": {
170 - "version": "7.24.4",
171 - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz",
172 - "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==",
173 - "dev": true,
174 - "engines": {
175 - "node": ">=6.9.0"
176 - }
177 - },
178 - "node_modules/@babel/core": {
179 - "version": "7.24.5",
180 - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.5.tgz",
181 - "integrity": "sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==",
182 - "dev": true,
183 - "dependencies": {
184 - "@ampproject/remapping": "^2.2.0",
185 - "@babel/code-frame": "^7.24.2",
186 - "@babel/generator": "^7.24.5",
187 - "@babel/helper-compilation-targets": "^7.23.6",
188 - "@babel/helper-module-transforms": "^7.24.5",
189 - "@babel/helpers": "^7.24.5",
190 - "@babel/parser": "^7.24.5",
191 - "@babel/template": "^7.24.0",
192 - "@babel/traverse": "^7.24.5",
193 - "@babel/types": "^7.24.5",
194 - "convert-source-map": "^2.0.0",
195 - "debug": "^4.1.0",
196 - "gensync": "^1.0.0-beta.2",
197 - "json5": "^2.2.3",
198 - "semver": "^6.3.1"
199 - },
200 - "engines": {
201 - "node": ">=6.9.0"
202 - },
203 - "funding": {
204 - "type": "opencollective",
205 - "url": "https://opencollective.com/babel"
206 - }
207 - },
208 - "node_modules/@babel/core/node_modules/semver": {
209 - "version": "6.3.1",
210 - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
211 - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
212 - "dev": true,
213 - "bin": {
214 - "semver": "bin/semver.js"
215 - }
216 - },
217 - "node_modules/@babel/generator": {
218 - "version": "7.24.5",
219 - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.5.tgz",
220 - "integrity": "sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==",
221 - "dev": true,
222 - "dependencies": {
223 - "@babel/types": "^7.24.5",
224 - "@jridgewell/gen-mapping": "^0.3.5",
225 - "@jridgewell/trace-mapping": "^0.3.25",
226 - "jsesc": "^2.5.1"
227 - },
228 - "engines": {
229 - "node": ">=6.9.0"
230 - }
231 - },
232 - "node_modules/@babel/helper-annotate-as-pure": {
233 - "version": "7.22.5",
234 - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz",
235 - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==",
236 - "dev": true,
237 - "dependencies": {
238 - "@babel/types": "^7.22.5"
239 - },
240 - "engines": {
241 - "node": ">=6.9.0"
242 - }
243 - },
244 - "node_modules/@babel/helper-compilation-targets": {
245 - "version": "7.23.6",
246 - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz",
247 - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==",
248 - "dev": true,
249 - "dependencies": {
250 - "@babel/compat-data": "^7.23.5",
251 - "@babel/helper-validator-option": "^7.23.5",
252 - "browserslist": "^4.22.2",
253 - "lru-cache": "^5.1.1",
254 - "semver": "^6.3.1"
255 - },
256 - "engines": {
257 - "node": ">=6.9.0"
258 - }
259 - },
260 - "node_modules/@babel/helper-compilation-targets/node_modules/semver": {
261 - "version": "6.3.1",
262 - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
263 - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
264 - "dev": true,
265 - "bin": {
266 - "semver": "bin/semver.js"
267 - }
268 - },
269 - "node_modules/@babel/helper-create-class-features-plugin": {
270 - "version": "7.24.5",
271 - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.5.tgz",
272 - "integrity": "sha512-uRc4Cv8UQWnE4NXlYTIIdM7wfFkOqlFztcC/gVXDKohKoVB3OyonfelUBaJzSwpBntZ2KYGF/9S7asCHsXwW6g==",
273 - "dev": true,
274 - "dependencies": {
275 - "@babel/helper-annotate-as-pure": "^7.22.5",
276 - "@babel/helper-environment-visitor": "^7.22.20",
277 - "@babel/helper-function-name": "^7.23.0",
278 - "@babel/helper-member-expression-to-functions": "^7.24.5",
279 - "@babel/helper-optimise-call-expression": "^7.22.5",
280 - "@babel/helper-replace-supers": "^7.24.1",
281 - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
282 - "@babel/helper-split-export-declaration": "^7.24.5",
283 - "semver": "^6.3.1"
284 - },
285 - "engines": {
286 - "node": ">=6.9.0"
287 - },
288 - "peerDependencies": {
289 - "@babel/core": "^7.0.0"
290 - }
291 - },
292 - "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": {
293 - "version": "6.3.1",
294 - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
295 - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
296 - "dev": true,
297 - "bin": {
298 - "semver": "bin/semver.js"
299 - }
300 - },
301 - "node_modules/@babel/helper-environment-visitor": {
302 - "version": "7.22.20",
303 - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
304 - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==",
305 - "dev": true,
306 - "engines": {
307 - "node": ">=6.9.0"
308 - }
309 - },
310 - "node_modules/@babel/helper-function-name": {
311 - "version": "7.23.0",
312 - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz",
313 - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
314 - "dev": true,
315 - "dependencies": {
316 - "@babel/template": "^7.22.15",
317 - "@babel/types": "^7.23.0"
318 - },
319 - "engines": {
320 - "node": ">=6.9.0"
321 - }
322 - },
323 - "node_modules/@babel/helper-hoist-variables": {
324 - "version": "7.22.5",
325 - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
326 - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
327 - "dev": true,
328 - "dependencies": {
329 - "@babel/types": "^7.22.5"
330 - },
331 - "engines": {
332 - "node": ">=6.9.0"
333 - }
334 - },
335 - "node_modules/@babel/helper-member-expression-to-functions": {
336 - "version": "7.24.5",
337 - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.5.tgz",
338 - "integrity": "sha512-4owRteeihKWKamtqg4JmWSsEZU445xpFRXPEwp44HbgbxdWlUV1b4Agg4lkA806Lil5XM/e+FJyS0vj5T6vmcA==",
339 - "dev": true,
340 - "dependencies": {
341 - "@babel/types": "^7.24.5"
342 - },
343 - "engines": {
344 - "node": ">=6.9.0"
345 - }
346 - },
347 - "node_modules/@babel/helper-module-imports": {
348 - "version": "7.24.3",
349 - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz",
350 - "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==",
351 - "dev": true,
352 - "dependencies": {
353 - "@babel/types": "^7.24.0"
354 - },
355 - "engines": {
356 - "node": ">=6.9.0"
357 - }
358 - },
359 - "node_modules/@babel/helper-module-transforms": {
360 - "version": "7.24.5",
361 - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz",
362 - "integrity": "sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==",
363 - "dev": true,
364 - "dependencies": {
365 - "@babel/helper-environment-visitor": "^7.22.20",
366 - "@babel/helper-module-imports": "^7.24.3",
367 - "@babel/helper-simple-access": "^7.24.5",
368 - "@babel/helper-split-export-declaration": "^7.24.5",
369 - "@babel/helper-validator-identifier": "^7.24.5"
370 - },
371 - "engines": {
372 - "node": ">=6.9.0"
373 - },
374 - "peerDependencies": {
375 - "@babel/core": "^7.0.0"
376 - }
377 - },
378 - "node_modules/@babel/helper-optimise-call-expression": {
379 - "version": "7.22.5",
380 - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz",
381 - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==",
382 - "dev": true,
383 - "dependencies": {
384 - "@babel/types": "^7.22.5"
385 - },
386 - "engines": {
387 - "node": ">=6.9.0"
388 - }
389 - },
390 - "node_modules/@babel/helper-plugin-utils": {
391 - "version": "7.24.5",
392 - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz",
393 - "integrity": "sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==",
394 - "dev": true,
395 - "engines": {
396 - "node": ">=6.9.0"
397 - }
398 - },
399 - "node_modules/@babel/helper-replace-supers": {
400 - "version": "7.24.1",
401 - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.1.tgz",
402 - "integrity": "sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==",
403 - "dev": true,
404 - "dependencies": {
405 - "@babel/helper-environment-visitor": "^7.22.20",
406 - "@babel/helper-member-expression-to-functions": "^7.23.0",
407 - "@babel/helper-optimise-call-expression": "^7.22.5"
408 - },
409 - "engines": {
410 - "node": ">=6.9.0"
411 - },
412 - "peerDependencies": {
413 - "@babel/core": "^7.0.0"
414 - }
415 - },
416 - "node_modules/@babel/helper-simple-access": {
417 - "version": "7.24.5",
418 - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz",
419 - "integrity": "sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==",
420 - "dev": true,
421 - "dependencies": {
422 - "@babel/types": "^7.24.5"
423 - },
424 - "engines": {
425 - "node": ">=6.9.0"
426 - }
427 - },
428 - "node_modules/@babel/helper-skip-transparent-expression-wrappers": {
429 - "version": "7.22.5",
430 - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz",
431 - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==",
432 - "dev": true,
433 - "dependencies": {
434 - "@babel/types": "^7.22.5"
435 - },
436 - "engines": {
437 - "node": ">=6.9.0"
438 - }
439 - },
440 - "node_modules/@babel/helper-split-export-declaration": {
441 - "version": "7.24.5",
442 - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz",
443 - "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==",
444 - "dev": true,
445 - "dependencies": {
446 - "@babel/types": "^7.24.5"
447 - },
448 - "engines": {
449 - "node": ">=6.9.0"
450 - }
451 - },
452 - "node_modules/@babel/helper-string-parser": {
453 - "version": "7.24.1",
454 - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz",
455 - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==",
456 - "dev": true,
457 - "engines": {
458 - "node": ">=6.9.0"
459 - }
460 - },
461 - "node_modules/@babel/helper-validator-identifier": {
462 - "version": "7.24.5",
463 - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz",
464 - "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==",
465 - "dev": true,
466 - "engines": {
467 - "node": ">=6.9.0"
468 - }
469 - },
470 - "node_modules/@babel/helper-validator-option": {
471 - "version": "7.23.5",
472 - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz",
473 - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==",
474 - "dev": true,
475 - "engines": {
476 - "node": ">=6.9.0"
477 - }
478 - },
479 - "node_modules/@babel/helpers": {
480 - "version": "7.24.5",
481 - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.5.tgz",
482 - "integrity": "sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==",
483 - "dev": true,
484 - "dependencies": {
485 - "@babel/template": "^7.24.0",
486 - "@babel/traverse": "^7.24.5",
487 - "@babel/types": "^7.24.5"
488 - },
489 - "engines": {
490 - "node": ">=6.9.0"
491 - }
492 - },
493 - "node_modules/@babel/highlight": {
494 - "version": "7.24.5",
495 - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.5.tgz",
496 - "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==",
497 - "dev": true,
498 - "dependencies": {
499 - "@babel/helper-validator-identifier": "^7.24.5",
500 - "chalk": "^2.4.2",
501 - "js-tokens": "^4.0.0",
502 - "picocolors": "^1.0.0"
503 - },
504 - "engines": {
505 - "node": ">=6.9.0"
506 - }
507 - },
508 - "node_modules/@babel/parser": {
509 - "version": "7.24.5",
510 - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz",
511 - "integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==",
512 - "bin": {
513 - "parser": "bin/babel-parser.js"
514 - },
515 - "engines": {
516 - "node": ">=6.0.0"
517 - }
518 - },
519 - "node_modules/@babel/plugin-syntax-jsx": {
520 - "version": "7.24.1",
521 - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz",
522 - "integrity": "sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==",
523 - "dev": true,
524 - "dependencies": {
525 - "@babel/helper-plugin-utils": "^7.24.0"
526 - },
527 - "engines": {
528 - "node": ">=6.9.0"
529 - },
530 - "peerDependencies": {
531 - "@babel/core": "^7.0.0-0"
532 - }
533 - },
534 - "node_modules/@babel/plugin-syntax-typescript": {
535 - "version": "7.24.1",
536 - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.1.tgz",
537 - "integrity": "sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==",
538 - "dev": true,
539 - "dependencies": {
540 - "@babel/helper-plugin-utils": "^7.24.0"
541 - },
542 - "engines": {
543 - "node": ">=6.9.0"
544 - },
545 - "peerDependencies": {
546 - "@babel/core": "^7.0.0-0"
547 - }
548 - },
549 - "node_modules/@babel/plugin-transform-typescript": {
550 - "version": "7.24.5",
551 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.5.tgz",
552 - "integrity": "sha512-E0VWu/hk83BIFUWnsKZ4D81KXjN5L3MobvevOHErASk9IPwKHOkTgvqzvNo1yP/ePJWqqK2SpUR5z+KQbl6NVw==",
553 - "dev": true,
554 - "dependencies": {
555 - "@babel/helper-annotate-as-pure": "^7.22.5",
556 - "@babel/helper-create-class-features-plugin": "^7.24.5",
557 - "@babel/helper-plugin-utils": "^7.24.5",
558 - "@babel/plugin-syntax-typescript": "^7.24.1"
559 - },
560 - "engines": {
561 - "node": ">=6.9.0"
562 - },
563 - "peerDependencies": {
564 - "@babel/core": "^7.0.0-0"
565 - }
566 - },
567 - "node_modules/@babel/runtime": {
568 - "version": "7.24.5",
569 - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.5.tgz",
570 - "integrity": "sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==",
571 - "dependencies": {
572 - "regenerator-runtime": "^0.14.0"
573 - },
574 - "engines": {
575 - "node": ">=6.9.0"
576 - }
577 - },
578 - "node_modules/@babel/template": {
579 - "version": "7.24.0",
580 - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz",
581 - "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==",
582 - "dev": true,
583 - "dependencies": {
584 - "@babel/code-frame": "^7.23.5",
585 - "@babel/parser": "^7.24.0",
586 - "@babel/types": "^7.24.0"
587 - },
588 - "engines": {
589 - "node": ">=6.9.0"
590 - }
591 - },
592 - "node_modules/@babel/traverse": {
593 - "version": "7.24.5",
594 - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.5.tgz",
595 - "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==",
596 - "dev": true,
597 - "dependencies": {
598 - "@babel/code-frame": "^7.24.2",
599 - "@babel/generator": "^7.24.5",
600 - "@babel/helper-environment-visitor": "^7.22.20",
601 - "@babel/helper-function-name": "^7.23.0",
602 - "@babel/helper-hoist-variables": "^7.22.5",
603 - "@babel/helper-split-export-declaration": "^7.24.5",
604 - "@babel/parser": "^7.24.5",
605 - "@babel/types": "^7.24.5",
606 - "debug": "^4.3.1",
607 - "globals": "^11.1.0"
608 - },
609 - "engines": {
610 - "node": ">=6.9.0"
611 - }
612 - },
613 - "node_modules/@babel/traverse/node_modules/globals": {
614 - "version": "11.12.0",
615 - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
616 - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
617 - "dev": true,
618 - "engines": {
619 - "node": ">=4"
620 - }
621 - },
622 - "node_modules/@babel/types": {
623 - "version": "7.24.5",
624 - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz",
625 - "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==",
626 - "dev": true,
627 - "dependencies": {
628 - "@babel/helper-string-parser": "^7.24.1",
629 - "@babel/helper-validator-identifier": "^7.24.5",
630 - "to-fast-properties": "^2.0.0"
631 - },
632 - "engines": {
633 - "node": ">=6.9.0"
634 - }
635 - },
636 - "node_modules/@clack/core": {
637 - "version": "0.3.4",
638 - "resolved": "https://registry.npmjs.org/@clack/core/-/core-0.3.4.tgz",
639 - "integrity": "sha512-H4hxZDXgHtWTwV3RAVenqcC4VbJZNegbBjlPvzOzCouXtS2y3sDvlO3IsbrPNWuLWPPlYVYPghQdSF64683Ldw==",
640 - "dev": true,
641 - "dependencies": {
642 - "picocolors": "^1.0.0",
643 - "sisteransi": "^1.0.5"
644 - }
645 - },
646 - "node_modules/@clack/prompts": {
647 - "version": "0.7.0",
648 - "resolved": "https://registry.npmjs.org/@clack/prompts/-/prompts-0.7.0.tgz",
649 - "integrity": "sha512-0MhX9/B4iL6Re04jPrttDm+BsP8y6mS7byuv0BvXgdXhbV5PdlsHt55dvNsuBCPZ7xq1oTAOOuotR9NFbQyMSA==",
650 - "bundleDependencies": [
651 - "is-unicode-supported"
652 - ],
653 - "dev": true,
654 - "dependencies": {
655 - "@clack/core": "^0.3.3",
656 - "is-unicode-supported": "*",
657 - "picocolors": "^1.0.0",
658 - "sisteransi": "^1.0.5"
659 - }
660 - },
661 - "node_modules/@clack/prompts/node_modules/is-unicode-supported": {
662 - "version": "1.3.0",
663 - "inBundle": true,
664 - "license": "MIT",
665 - "engines": {
666 - "node": ">=12"
667 - },
668 - "funding": {
669 - "url": "https://github.com/sponsors/sindresorhus"
670 - }
671 - },
672 - "node_modules/@colors/colors": {
673 - "version": "1.5.0",
674 - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
675 - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==",
676 - "dev": true,
677 - "optional": true,
678 - "engines": {
679 - "node": ">=0.1.90"
680 - }
681 - },
682 - "node_modules/@css-render/plugin-bem": {
683 - "version": "0.15.14",
684 - "resolved": "https://registry.npmjs.org/@css-render/plugin-bem/-/plugin-bem-0.15.14.tgz",
685 - "integrity": "sha512-QK513CJ7yEQxm/P3EwsI+d+ha8kSOcjGvD6SevM41neEMxdULE+18iuQK6tEChAWMOQNQPLG/Rw3Khb69r5neg==",
686 - "peerDependencies": {
687 - "css-render": "~0.15.14"
688 - }
689 - },
690 - "node_modules/@css-render/vue3-ssr": {
691 - "version": "0.15.14",
692 - "resolved": "https://registry.npmjs.org/@css-render/vue3-ssr/-/vue3-ssr-0.15.14.tgz",
693 - "integrity": "sha512-//8027GSbxE9n3QlD73xFY6z4ZbHbvrOVB7AO6hsmrEzGbg+h2A09HboUyDgu+xsmj7JnvJD39Irt+2D0+iV8g==",
694 - "peerDependencies": {
695 - "vue": "^3.0.11"
696 - }
697 - },
698 - "node_modules/@cypress/request": {
699 - "version": "3.0.1",
700 - "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.1.tgz",
701 - "integrity": "sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ==",
702 - "dev": true,
703 - "dependencies": {
704 - "aws-sign2": "~0.7.0",
705 - "aws4": "^1.8.0",
706 - "caseless": "~0.12.0",
707 - "combined-stream": "~1.0.6",
708 - "extend": "~3.0.2",
709 - "forever-agent": "~0.6.1",
710 - "form-data": "~2.3.2",
711 - "http-signature": "~1.3.6",
712 - "is-typedarray": "~1.0.0",
713 - "isstream": "~0.1.2",
714 - "json-stringify-safe": "~5.0.1",
715 - "mime-types": "~2.1.19",
716 - "performance-now": "^2.1.0",
717 - "qs": "6.10.4",
718 - "safe-buffer": "^5.1.2",
719 - "tough-cookie": "^4.1.3",
720 - "tunnel-agent": "^0.6.0",
721 - "uuid": "^8.3.2"
722 - },
723 - "engines": {
724 - "node": ">= 6"
725 - }
726 - },
727 - "node_modules/@cypress/xvfb": {
728 - "version": "1.2.4",
729 - "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz",
730 - "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==",
731 - "dev": true,
732 - "dependencies": {
733 - "debug": "^3.1.0",
734 - "lodash.once": "^4.1.1"
735 - }
736 - },
737 - "node_modules/@cypress/xvfb/node_modules/debug": {
738 - "version": "3.2.7",
739 - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
740 - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
741 - "dev": true,
742 - "dependencies": {
743 - "ms": "^2.1.1"
744 - }
745 - },
746 - "node_modules/@emotion/hash": {
747 - "version": "0.8.0",
748 - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz",
749 - "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow=="
750 - },
751 - "node_modules/@esbuild/aix-ppc64": {
752 - "version": "0.20.2",
753 - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz",
754 - "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==",
755 - "cpu": [
756 - "ppc64"
757 - ],
758 - "dev": true,
759 - "optional": true,
760 - "os": [
761 - "aix"
762 - ],
763 - "engines": {
764 - "node": ">=12"
765 - }
766 - },
767 - "node_modules/@esbuild/android-arm": {
768 - "version": "0.20.2",
769 - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz",
770 - "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==",
771 - "cpu": [
772 - "arm"
773 - ],
774 - "dev": true,
775 - "optional": true,
776 - "os": [
777 - "android"
778 - ],
779 - "engines": {
780 - "node": ">=12"
781 - }
782 - },
783 - "node_modules/@esbuild/android-arm64": {
784 - "version": "0.20.2",
785 - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz",
786 - "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==",
787 - "cpu": [
788 - "arm64"
789 - ],
790 - "dev": true,
791 - "optional": true,
792 - "os": [
793 - "android"
794 - ],
795 - "engines": {
796 - "node": ">=12"
797 - }
798 - },
799 - "node_modules/@esbuild/android-x64": {
800 - "version": "0.20.2",
801 - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz",
802 - "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==",
803 - "cpu": [
804 - "x64"
805 - ],
806 - "dev": true,
807 - "optional": true,
808 - "os": [
809 - "android"
810 - ],
811 - "engines": {
812 - "node": ">=12"
813 - }
814 - },
815 - "node_modules/@esbuild/darwin-arm64": {
816 - "version": "0.20.2",
817 - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz",
818 - "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==",
819 - "cpu": [
820 - "arm64"
821 - ],
822 - "dev": true,
823 - "optional": true,
824 - "os": [
825 - "darwin"
826 - ],
827 - "engines": {
828 - "node": ">=12"
829 - }
830 - },
831 - "node_modules/@esbuild/darwin-x64": {
832 - "version": "0.20.2",
833 - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz",
834 - "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==",
835 - "cpu": [
836 - "x64"
837 - ],
838 - "dev": true,
839 - "optional": true,
840 - "os": [
841 - "darwin"
842 - ],
843 - "engines": {
844 - "node": ">=12"
845 - }
846 - },
847 - "node_modules/@esbuild/freebsd-arm64": {
848 - "version": "0.20.2",
849 - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz",
850 - "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==",
851 - "cpu": [
852 - "arm64"
853 - ],
854 - "dev": true,
855 - "optional": true,
856 - "os": [
857 - "freebsd"
858 - ],
859 - "engines": {
860 - "node": ">=12"
861 - }
862 - },
863 - "node_modules/@esbuild/freebsd-x64": {
864 - "version": "0.20.2",
865 - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz",
866 - "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==",
867 - "cpu": [
868 - "x64"
869 - ],
870 - "dev": true,
871 - "optional": true,
872 - "os": [
873 - "freebsd"
874 - ],
875 - "engines": {
876 - "node": ">=12"
877 - }
878 - },
879 - "node_modules/@esbuild/linux-arm": {
880 - "version": "0.20.2",
881 - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz",
882 - "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==",
883 - "cpu": [
884 - "arm"
885 - ],
886 - "dev": true,
887 - "optional": true,
888 - "os": [
889 - "linux"
890 - ],
891 - "engines": {
892 - "node": ">=12"
893 - }
894 - },
895 - "node_modules/@esbuild/linux-arm64": {
896 - "version": "0.20.2",
897 - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz",
898 - "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==",
899 - "cpu": [
900 - "arm64"
901 - ],
902 - "dev": true,
903 - "optional": true,
904 - "os": [
905 - "linux"
906 - ],
907 - "engines": {
908 - "node": ">=12"
909 - }
910 - },
911 - "node_modules/@esbuild/linux-ia32": {
912 - "version": "0.20.2",
913 - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz",
914 - "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==",
915 - "cpu": [
916 - "ia32"
917 - ],
918 - "dev": true,
919 - "optional": true,
920 - "os": [
921 - "linux"
922 - ],
923 - "engines": {
924 - "node": ">=12"
925 - }
926 - },
927 - "node_modules/@esbuild/linux-loong64": {
928 - "version": "0.20.2",
929 - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz",
930 - "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==",
931 - "cpu": [
932 - "loong64"
933 - ],
934 - "dev": true,
935 - "optional": true,
936 - "os": [
937 - "linux"
938 - ],
939 - "engines": {
940 - "node": ">=12"
941 - }
942 - },
943 - "node_modules/@esbuild/linux-mips64el": {
944 - "version": "0.20.2",
945 - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz",
946 - "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==",
947 - "cpu": [
948 - "mips64el"
949 - ],
950 - "dev": true,
951 - "optional": true,
952 - "os": [
953 - "linux"
954 - ],
955 - "engines": {
956 - "node": ">=12"
957 - }
958 - },
959 - "node_modules/@esbuild/linux-ppc64": {
960 - "version": "0.20.2",
961 - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz",
962 - "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==",
963 - "cpu": [
964 - "ppc64"
965 - ],
966 - "dev": true,
967 - "optional": true,
968 - "os": [
969 - "linux"
970 - ],
971 - "engines": {
972 - "node": ">=12"
973 - }
974 - },
975 - "node_modules/@esbuild/linux-riscv64": {
976 - "version": "0.20.2",
977 - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz",
978 - "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==",
979 - "cpu": [
980 - "riscv64"
981 - ],
982 - "dev": true,
983 - "optional": true,
984 - "os": [
985 - "linux"
986 - ],
987 - "engines": {
988 - "node": ">=12"
989 - }
990 - },
991 - "node_modules/@esbuild/linux-s390x": {
992 - "version": "0.20.2",
993 - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz",
994 - "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==",
995 - "cpu": [
996 - "s390x"
997 - ],
998 - "dev": true,
999 - "optional": true,
1000 - "os": [
1001 - "linux"
1002 - ],
1003 - "engines": {
1004 - "node": ">=12"
1005 - }
1006 - },
1007 - "node_modules/@esbuild/linux-x64": {
1008 - "version": "0.20.2",
1009 - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz",
1010 - "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==",
1011 - "cpu": [
1012 - "x64"
1013 - ],
1014 - "dev": true,
1015 - "optional": true,
1016 - "os": [
1017 - "linux"
1018 - ],
1019 - "engines": {
1020 - "node": ">=12"
1021 - }
1022 - },
1023 - "node_modules/@esbuild/netbsd-x64": {
1024 - "version": "0.20.2",
1025 - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz",
1026 - "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==",
1027 - "cpu": [
1028 - "x64"
1029 - ],
1030 - "dev": true,
1031 - "optional": true,
1032 - "os": [
1033 - "netbsd"
1034 - ],
1035 - "engines": {
1036 - "node": ">=12"
1037 - }
1038 - },
1039 - "node_modules/@esbuild/openbsd-x64": {
1040 - "version": "0.20.2",
1041 - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz",
1042 - "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==",
1043 - "cpu": [
1044 - "x64"
1045 - ],
1046 - "dev": true,
1047 - "optional": true,
1048 - "os": [
1049 - "openbsd"
1050 - ],
1051 - "engines": {
1052 - "node": ">=12"
1053 - }
1054 - },
1055 - "node_modules/@esbuild/sunos-x64": {
1056 - "version": "0.20.2",
1057 - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz",
1058 - "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==",
1059 - "cpu": [
1060 - "x64"
1061 - ],
1062 - "dev": true,
1063 - "optional": true,
1064 - "os": [
1065 - "sunos"
1066 - ],
1067 - "engines": {
1068 - "node": ">=12"
1069 - }
1070 - },
1071 - "node_modules/@esbuild/win32-arm64": {
1072 - "version": "0.20.2",
1073 - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz",
1074 - "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==",
1075 - "cpu": [
1076 - "arm64"
1077 - ],
1078 - "dev": true,
1079 - "optional": true,
1080 - "os": [
1081 - "win32"
1082 - ],
1083 - "engines": {
1084 - "node": ">=12"
1085 - }
1086 - },
1087 - "node_modules/@esbuild/win32-ia32": {
1088 - "version": "0.20.2",
1089 - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz",
1090 - "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==",
1091 - "cpu": [
1092 - "ia32"
1093 - ],
1094 - "dev": true,
1095 - "optional": true,
1096 - "os": [
1097 - "win32"
1098 - ],
1099 - "engines": {
1100 - "node": ">=12"
1101 - }
1102 - },
1103 - "node_modules/@esbuild/win32-x64": {
1104 - "version": "0.20.2",
1105 - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz",
1106 - "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==",
1107 - "cpu": [
1108 - "x64"
1109 - ],
1110 - "dev": true,
1111 - "optional": true,
1112 - "os": [
1113 - "win32"
1114 - ],
1115 - "engines": {
1116 - "node": ">=12"
1117 - }
1118 - },
1119 - "node_modules/@eslint-community/eslint-utils": {
1120 - "version": "4.4.0",
1121 - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
1122 - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
1123 - "dependencies": {
1124 - "eslint-visitor-keys": "^3.3.0"
1125 - },
1126 - "engines": {
1127 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
1128 - },
1129 - "peerDependencies": {
1130 - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
1131 - }
1132 - },
1133 - "node_modules/@eslint-community/regexpp": {
1134 - "version": "4.10.0",
1135 - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz",
1136 - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==",
1137 - "engines": {
1138 - "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
1139 - }
1140 - },
1141 - "node_modules/@eslint/eslintrc": {
1142 - "version": "2.1.4",
1143 - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
1144 - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
1145 - "dependencies": {
1146 - "ajv": "^6.12.4",
1147 - "debug": "^4.3.2",
1148 - "espree": "^9.6.0",
1149 - "globals": "^13.19.0",
1150 - "ignore": "^5.2.0",
1151 - "import-fresh": "^3.2.1",
1152 - "js-yaml": "^4.1.0",
1153 - "minimatch": "^3.1.2",
1154 - "strip-json-comments": "^3.1.1"
1155 - },
1156 - "engines": {
1157 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
1158 - },
1159 - "funding": {
1160 - "url": "https://opencollective.com/eslint"
1161 - }
1162 - },
1163 - "node_modules/@eslint/eslintrc/node_modules/brace-expansion": {
1164 - "version": "1.1.11",
1165 - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
1166 - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
1167 - "dependencies": {
1168 - "balanced-match": "^1.0.0",
1169 - "concat-map": "0.0.1"
1170 - }
1171 - },
1172 - "node_modules/@eslint/eslintrc/node_modules/minimatch": {
1173 - "version": "3.1.2",
1174 - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
1175 - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
1176 - "dependencies": {
1177 - "brace-expansion": "^1.1.7"
1178 - },
1179 - "engines": {
1180 - "node": "*"
1181 - }
1182 - },
1183 - "node_modules/@eslint/js": {
1184 - "version": "8.57.0",
1185 - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz",
1186 - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==",
1187 - "engines": {
1188 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
1189 - }
1190 - },
1191 - "node_modules/@f3ve/eslint-config": {
1192 - "version": "1.0.6",
1193 - "resolved": "https://registry.npmjs.org/@f3ve/eslint-config/-/eslint-config-1.0.6.tgz",
1194 - "integrity": "sha512-DVLPAVZskaOUY6Gu/1VFaL0gGyY3VhjZBVExZVde2siwwgdwt+8XDSupLll0arKqVv4bqO2fRK21QomN3jy2yg==",
1195 - "funding": [
1196 - {
1197 - "type": "GitHub Sponsors",
1198 - "url": "https://github.com/sponsors/f3ve"
1199 - },
1200 - {
1201 - "type": "Buy me a Coffee",
1202 - "url": "https://www.buymeacoffee.com/f3ve"
1203 - }
1204 - ],
1205 - "dependencies": {
1206 - "@eslint/js": "^8.50.0",
1207 - "@typescript-eslint/eslint-plugin": "^6.7.3",
1208 - "@typescript-eslint/parser": "^6.7.3",
1209 - "@unocss/eslint-config": "^0.56.4",
1210 - "eslint-config-prettier": "^9.0.0",
1211 - "eslint-define-config": "^1.23.0",
1212 - "eslint-plugin-prettier": "^5.0.0",
1213 - "eslint-plugin-vue": "^9.17.0",
1214 - "globals": "^13.22.0",
1215 - "vue-eslint-parser": "^9.3.1"
1216 - },
1217 - "peerDependencies": {
1218 - "eslint": ">=8.0.0"
1219 - }
1220 - },
1221 - "node_modules/@f3ve/vue-markdown-it": {
1222 - "version": "0.2.2",
1223 - "resolved": "https://registry.npmjs.org/@f3ve/vue-markdown-it/-/vue-markdown-it-0.2.2.tgz",
1224 - "integrity": "sha512-0LVoa7bCI+pKuMRp8iap7DNNSVgXH51xkAxFmBWjdY6gd9yXBwD64P0p7o1NSYFUXaQCGR+cfOpsudJY7zjeBg==",
1225 - "dependencies": {
1226 - "@f3ve/eslint-config": "^1.0.6",
1227 - "markdown-it": "^14.1.0"
1228 - },
1229 - "peerDependencies": {
1230 - "vue": "^3.3.4"
1231 - }
1232 - },
1233 - "node_modules/@fontsource/jetbrains-mono": {
1234 - "version": "5.0.20",
1235 - "resolved": "https://registry.npmjs.org/@fontsource/jetbrains-mono/-/jetbrains-mono-5.0.20.tgz",
1236 - "integrity": "sha512-QkrihYWqftzs+04TinulIhnFqNwO6990HR07iCUae/6daOZAMy7urUPzytrRT9M8KLTTHBeHOY0CKqOs1+o2OQ=="
1237 - },
1238 - "node_modules/@fontsource/lexend": {
1239 - "version": "5.0.20",
1240 - "resolved": "https://registry.npmjs.org/@fontsource/lexend/-/lexend-5.0.20.tgz",
1241 - "integrity": "sha512-up8jVBRNP7AMRb7MuRBU/Nh1qHqI1ZWIVfqO1fa4gzOwNEnXyPMfvNy4LV2zYqrS19MfTe5ic7kUKpohsVVsZg=="
1242 - },
1243 - "node_modules/@fontsource/public-sans": {
1244 - "version": "5.0.18",
1245 - "resolved": "https://registry.npmjs.org/@fontsource/public-sans/-/public-sans-5.0.18.tgz",
1246 - "integrity": "sha512-dYx/ULF7pRkjBO1ncCwIRXWWmI2oCsMsWxheHgjtNANm4+prtfq3gdGy3KOsuNcAhEKn6BQeIyg0hFqeoTpAaQ=="
1247 - },
1248 - "node_modules/@hapi/hoek": {
1249 - "version": "9.3.0",
1250 - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz",
1251 - "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==",
1252 - "dev": true
1253 - },
1254 - "node_modules/@hapi/topo": {
1255 - "version": "5.1.0",
1256 - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz",
1257 - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==",
1258 - "dev": true,
1259 - "dependencies": {
1260 - "@hapi/hoek": "^9.0.0"
1261 - }
1262 - },
1263 - "node_modules/@humanwhocodes/config-array": {
1264 - "version": "0.11.14",
1265 - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
1266 - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
1267 - "dependencies": {
1268 - "@humanwhocodes/object-schema": "^2.0.2",
1269 - "debug": "^4.3.1",
1270 - "minimatch": "^3.0.5"
1271 - },
1272 - "engines": {
1273 - "node": ">=10.10.0"
1274 - }
1275 - },
1276 - "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": {
1277 - "version": "1.1.11",
1278 - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
1279 - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
1280 - "dependencies": {
1281 - "balanced-match": "^1.0.0",
1282 - "concat-map": "0.0.1"
1283 - }
1284 - },
1285 - "node_modules/@humanwhocodes/config-array/node_modules/minimatch": {
1286 - "version": "3.1.2",
1287 - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
1288 - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
1289 - "dependencies": {
1290 - "brace-expansion": "^1.1.7"
1291 - },
1292 - "engines": {
1293 - "node": "*"
1294 - }
1295 - },
1296 - "node_modules/@humanwhocodes/module-importer": {
1297 - "version": "1.0.1",
1298 - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
1299 - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
1300 - "engines": {
1301 - "node": ">=12.22"
1302 - },
1303 - "funding": {
1304 - "type": "github",
1305 - "url": "https://github.com/sponsors/nzakas"
1306 - }
1307 - },
1308 - "node_modules/@humanwhocodes/object-schema": {
1309 - "version": "2.0.3",
1310 - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
1311 - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA=="
1312 - },
1313 - "node_modules/@iconify/types": {
1314 - "version": "2.0.0",
1315 - "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz",
1316 - "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==",
1317 - "dev": true
1318 - },
1319 - "node_modules/@iconify/vue": {
1320 - "version": "4.1.2",
1321 - "resolved": "https://registry.npmjs.org/@iconify/vue/-/vue-4.1.2.tgz",
1322 - "integrity": "sha512-CQnYqLiQD5LOAaXhBrmj1mdL2/NCJvwcC4jtW2Z8ukhThiFkLDkutarTOV2trfc9EXqUqRs0KqXOL9pZ/IyysA==",
1323 - "dev": true,
1324 - "dependencies": {
1325 - "@iconify/types": "^2.0.0"
1326 - },
1327 - "funding": {
1328 - "url": "https://github.com/sponsors/cyberalien"
1329 - },
1330 - "peerDependencies": {
1331 - "vue": ">=3"
1332 - }
1333 - },
1334 - "node_modules/@intlify/core-base": {
1335 - "version": "9.13.1",
1336 - "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.13.1.tgz",
1337 - "integrity": "sha512-+bcQRkJO9pcX8d0gel9ZNfrzU22sZFSA0WVhfXrf5jdJOS24a+Bp8pozuS9sBI9Hk/tGz83pgKfmqcn/Ci7/8w==",
1338 - "dependencies": {
1339 - "@intlify/message-compiler": "9.13.1",
1340 - "@intlify/shared": "9.13.1"
1341 - },
1342 - "engines": {
1343 - "node": ">= 16"
1344 - },
1345 - "funding": {
1346 - "url": "https://github.com/sponsors/kazupon"
1347 - }
1348 - },
1349 - "node_modules/@intlify/message-compiler": {
1350 - "version": "9.13.1",
1351 - "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.13.1.tgz",
1352 - "integrity": "sha512-SKsVa4ajYGBVm7sHMXd5qX70O2XXjm55zdZB3VeMFCvQyvLew/dLvq3MqnaIsTMF1VkkOb9Ttr6tHcMlyPDL9w==",
1353 - "dependencies": {
1354 - "@intlify/shared": "9.13.1",
1355 - "source-map-js": "^1.0.2"
1356 - },
1357 - "engines": {
1358 - "node": ">= 16"
1359 - },
1360 - "funding": {
1361 - "url": "https://github.com/sponsors/kazupon"
1362 - }
1363 - },
1364 - "node_modules/@intlify/shared": {
1365 - "version": "9.13.1",
1366 - "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-9.13.1.tgz",
1367 - "integrity": "sha512-u3b6BKGhE6j/JeRU6C/RL2FgyJfy6LakbtfeVF8fJXURpZZTzfh3e05J0bu0XPw447Q6/WUp3C4ajv4TMS4YsQ==",
1368 - "engines": {
1369 - "node": ">= 16"
1370 - },
1371 - "funding": {
1372 - "url": "https://github.com/sponsors/kazupon"
1373 - }
1374 - },
1375 - "node_modules/@isaacs/cliui": {
1376 - "version": "8.0.2",
1377 - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
1378 - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
1379 - "dev": true,
1380 - "dependencies": {
1381 - "string-width": "^5.1.2",
1382 - "string-width-cjs": "npm:string-width@^4.2.0",
1383 - "strip-ansi": "^7.0.1",
1384 - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
1385 - "wrap-ansi": "^8.1.0",
1386 - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
1387 - },
1388 - "engines": {
1389 - "node": ">=12"
1390 - }
1391 - },
1392 - "node_modules/@isaacs/cliui/node_modules/ansi-regex": {
1393 - "version": "6.0.1",
1394 - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
1395 - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
1396 - "dev": true,
1397 - "engines": {
1398 - "node": ">=12"
1399 - },
1400 - "funding": {
1401 - "url": "https://github.com/chalk/ansi-regex?sponsor=1"
1402 - }
1403 - },
1404 - "node_modules/@isaacs/cliui/node_modules/emoji-regex": {
1405 - "version": "9.2.2",
1406 - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
1407 - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
1408 - "dev": true
1409 - },
1410 - "node_modules/@isaacs/cliui/node_modules/string-width": {
1411 - "version": "5.1.2",
1412 - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
1413 - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
1414 - "dev": true,
1415 - "dependencies": {
1416 - "eastasianwidth": "^0.2.0",
1417 - "emoji-regex": "^9.2.2",
1418 - "strip-ansi": "^7.0.1"
1419 - },
1420 - "engines": {
1421 - "node": ">=12"
1422 - },
1423 - "funding": {
1424 - "url": "https://github.com/sponsors/sindresorhus"
1425 - }
1426 - },
1427 - "node_modules/@isaacs/cliui/node_modules/strip-ansi": {
1428 - "version": "7.1.0",
1429 - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
1430 - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
1431 - "dev": true,
1432 - "dependencies": {
1433 - "ansi-regex": "^6.0.1"
1434 - },
1435 - "engines": {
1436 - "node": ">=12"
1437 - },
1438 - "funding": {
1439 - "url": "https://github.com/chalk/strip-ansi?sponsor=1"
1440 - }
1441 - },
1442 - "node_modules/@jest/schemas": {
1443 - "version": "29.6.3",
1444 - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
1445 - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
1446 - "dev": true,
1447 - "dependencies": {
1448 - "@sinclair/typebox": "^0.27.8"
1449 - },
1450 - "engines": {
1451 - "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
1452 - }
1453 - },
1454 - "node_modules/@jridgewell/gen-mapping": {
1455 - "version": "0.3.5",
1456 - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
1457 - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
1458 - "dev": true,
1459 - "dependencies": {
1460 - "@jridgewell/set-array": "^1.2.1",
1461 - "@jridgewell/sourcemap-codec": "^1.4.10",
1462 - "@jridgewell/trace-mapping": "^0.3.24"
1463 - },
1464 - "engines": {
1465 - "node": ">=6.0.0"
1466 - }
1467 - },
1468 - "node_modules/@jridgewell/resolve-uri": {
1469 - "version": "3.1.2",
1470 - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
1471 - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
1472 - "dev": true,
1473 - "engines": {
1474 - "node": ">=6.0.0"
1475 - }
1476 - },
1477 - "node_modules/@jridgewell/set-array": {
1478 - "version": "1.2.1",
1479 - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
1480 - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
1481 - "dev": true,
1482 - "engines": {
1483 - "node": ">=6.0.0"
1484 - }
1485 - },
1486 - "node_modules/@jridgewell/sourcemap-codec": {
1487 - "version": "1.4.15",
1488 - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
1489 - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
1490 - },
1491 - "node_modules/@jridgewell/trace-mapping": {
1492 - "version": "0.3.25",
1493 - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
1494 - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
1495 - "dev": true,
1496 - "dependencies": {
1497 - "@jridgewell/resolve-uri": "^3.1.0",
1498 - "@jridgewell/sourcemap-codec": "^1.4.14"
1499 - }
1500 - },
1501 - "node_modules/@jsdevtools/ez-spawn": {
1502 - "version": "3.0.4",
1503 - "resolved": "https://registry.npmjs.org/@jsdevtools/ez-spawn/-/ez-spawn-3.0.4.tgz",
1504 - "integrity": "sha512-f5DRIOZf7wxogefH03RjMPMdBF7ADTWUMoOs9kaJo06EfwF+aFhMZMDZxHg/Xe12hptN9xoZjGso2fdjapBRIA==",
1505 - "dev": true,
1506 - "dependencies": {
1507 - "call-me-maybe": "^1.0.1",
1508 - "cross-spawn": "^7.0.3",
1509 - "string-argv": "^0.3.1",
1510 - "type-detect": "^4.0.8"
1511 - },
1512 - "engines": {
1513 - "node": ">=10"
1514 - }
1515 - },
1516 - "node_modules/@juggle/resize-observer": {
1517 - "version": "3.4.0",
1518 - "resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz",
1519 - "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA=="
1520 - },
1521 - "node_modules/@koa/router": {
1522 - "version": "12.0.1",
1523 - "resolved": "https://registry.npmjs.org/@koa/router/-/router-12.0.1.tgz",
1524 - "integrity": "sha512-ribfPYfHb+Uw3b27Eiw6NPqjhIhTpVFzEWLwyc/1Xp+DCdwRRyIlAUODX+9bPARF6aQtUu1+/PHzdNvRzcs/+Q==",
1525 - "dev": true,
1526 - "dependencies": {
1527 - "debug": "^4.3.4",
1528 - "http-errors": "^2.0.0",
1529 - "koa-compose": "^4.1.0",
1530 - "methods": "^1.1.2",
1531 - "path-to-regexp": "^6.2.1"
1532 - },
1533 - "engines": {
1534 - "node": ">= 12"
1535 - }
1536 - },
1537 - "node_modules/@nodelib/fs.scandir": {
1538 - "version": "2.1.5",
1539 - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
1540 - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
1541 - "dependencies": {
1542 - "@nodelib/fs.stat": "2.0.5",
1543 - "run-parallel": "^1.1.9"
1544 - },
1545 - "engines": {
1546 - "node": ">= 8"
1547 - }
1548 - },
1549 - "node_modules/@nodelib/fs.stat": {
1550 - "version": "2.0.5",
1551 - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
1552 - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
1553 - "engines": {
1554 - "node": ">= 8"
1555 - }
1556 - },
1557 - "node_modules/@nodelib/fs.walk": {
1558 - "version": "1.2.8",
1559 - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
1560 - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
1561 - "dependencies": {
1562 - "@nodelib/fs.scandir": "2.1.5",
1563 - "fastq": "^1.6.0"
1564 - },
1565 - "engines": {
1566 - "node": ">= 8"
1567 - }
1568 - },
1569 - "node_modules/@one-ini/wasm": {
1570 - "version": "0.1.1",
1571 - "resolved": "https://registry.npmjs.org/@one-ini/wasm/-/wasm-0.1.1.tgz",
1572 - "integrity": "sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==",
1573 - "dev": true
1574 - },
1575 - "node_modules/@pkgjs/parseargs": {
1576 - "version": "0.11.0",
1577 - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
1578 - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
1579 - "dev": true,
1580 - "optional": true,
1581 - "engines": {
1582 - "node": ">=14"
1583 - }
1584 - },
1585 - "node_modules/@pkgr/core": {
1586 - "version": "0.1.1",
1587 - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz",
1588 - "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==",
1589 - "engines": {
1590 - "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
1591 - },
1592 - "funding": {
1593 - "url": "https://opencollective.com/unts"
1594 - }
1595 - },
1596 - "node_modules/@popperjs/core": {
1597 - "version": "2.11.8",
1598 - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
1599 - "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==",
1600 - "funding": {
1601 - "type": "opencollective",
1602 - "url": "https://opencollective.com/popperjs"
1603 - }
1604 - },
1605 - "node_modules/@rollup/pluginutils": {
1606 - "version": "5.1.0",
1607 - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz",
1608 - "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==",
1609 - "dev": true,
1610 - "dependencies": {
1611 - "@types/estree": "^1.0.0",
1612 - "estree-walker": "^2.0.2",
1613 - "picomatch": "^2.3.1"
1614 - },
1615 - "engines": {
1616 - "node": ">=14.0.0"
1617 - },
1618 - "peerDependencies": {
1619 - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
1620 - },
1621 - "peerDependenciesMeta": {
1622 - "rollup": {
1623 - "optional": true
1624 - }
1625 - }
1626 - },
1627 - "node_modules/@rollup/rollup-android-arm-eabi": {
1628 - "version": "4.17.2",
1629 - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.17.2.tgz",
1630 - "integrity": "sha512-NM0jFxY8bB8QLkoKxIQeObCaDlJKewVlIEkuyYKm5An1tdVZ966w2+MPQ2l8LBZLjR+SgyV+nRkTIunzOYBMLQ==",
1631 - "cpu": [
1632 - "arm"
1633 - ],
1634 - "dev": true,
1635 - "optional": true,
1636 - "os": [
1637 - "android"
1638 - ]
1639 - },
1640 - "node_modules/@rollup/rollup-android-arm64": {
1641 - "version": "4.17.2",
1642 - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.17.2.tgz",
1643 - "integrity": "sha512-yeX/Usk7daNIVwkq2uGoq2BYJKZY1JfyLTaHO/jaiSwi/lsf8fTFoQW/n6IdAsx5tx+iotu2zCJwz8MxI6D/Bw==",
1644 - "cpu": [
1645 - "arm64"
1646 - ],
1647 - "dev": true,
1648 - "optional": true,
1649 - "os": [
1650 - "android"
1651 - ]
1652 - },
1653 - "node_modules/@rollup/rollup-darwin-arm64": {
1654 - "version": "4.17.2",
1655 - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.17.2.tgz",
1656 - "integrity": "sha512-kcMLpE6uCwls023+kknm71ug7MZOrtXo+y5p/tsg6jltpDtgQY1Eq5sGfHcQfb+lfuKwhBmEURDga9N0ol4YPw==",
1657 - "cpu": [
1658 - "arm64"
1659 - ],
1660 - "dev": true,
1661 - "optional": true,
1662 - "os": [
1663 - "darwin"
1664 - ]
1665 - },
1666 - "node_modules/@rollup/rollup-darwin-x64": {
1667 - "version": "4.17.2",
1668 - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.17.2.tgz",
1669 - "integrity": "sha512-AtKwD0VEx0zWkL0ZjixEkp5tbNLzX+FCqGG1SvOu993HnSz4qDI6S4kGzubrEJAljpVkhRSlg5bzpV//E6ysTQ==",
1670 - "cpu": [
1671 - "x64"
1672 - ],
1673 - "dev": true,
1674 - "optional": true,
1675 - "os": [
1676 - "darwin"
1677 - ]
1678 - },
1679 - "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
1680 - "version": "4.17.2",
1681 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.17.2.tgz",
1682 - "integrity": "sha512-3reX2fUHqN7sffBNqmEyMQVj/CKhIHZd4y631duy0hZqI8Qoqf6lTtmAKvJFYa6bhU95B1D0WgzHkmTg33In0A==",
1683 - "cpu": [
1684 - "arm"
1685 - ],
1686 - "dev": true,
1687 - "optional": true,
1688 - "os": [
1689 - "linux"
1690 - ]
1691 - },
1692 - "node_modules/@rollup/rollup-linux-arm-musleabihf": {
1693 - "version": "4.17.2",
1694 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.17.2.tgz",
1695 - "integrity": "sha512-uSqpsp91mheRgw96xtyAGP9FW5ChctTFEoXP0r5FAzj/3ZRv3Uxjtc7taRQSaQM/q85KEKjKsZuiZM3GyUivRg==",
1696 - "cpu": [
1697 - "arm"
1698 - ],
1699 - "dev": true,
1700 - "optional": true,
1701 - "os": [
1702 - "linux"
1703 - ]
1704 - },
1705 - "node_modules/@rollup/rollup-linux-arm64-gnu": {
1706 - "version": "4.17.2",
1707 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.17.2.tgz",
1708 - "integrity": "sha512-EMMPHkiCRtE8Wdk3Qhtciq6BndLtstqZIroHiiGzB3C5LDJmIZcSzVtLRbwuXuUft1Cnv+9fxuDtDxz3k3EW2A==",
1709 - "cpu": [
1710 - "arm64"
1711 - ],
1712 - "dev": true,
1713 - "optional": true,
1714 - "os": [
1715 - "linux"
1716 - ]
1717 - },
1718 - "node_modules/@rollup/rollup-linux-arm64-musl": {
1719 - "version": "4.17.2",
1720 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.17.2.tgz",
1721 - "integrity": "sha512-NMPylUUZ1i0z/xJUIx6VUhISZDRT+uTWpBcjdv0/zkp7b/bQDF+NfnfdzuTiB1G6HTodgoFa93hp0O1xl+/UbA==",
1722 - "cpu": [
1723 - "arm64"
1724 - ],
1725 - "dev": true,
1726 - "optional": true,
1727 - "os": [
1728 - "linux"
1729 - ]
1730 - },
1731 - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
1732 - "version": "4.17.2",
1733 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.17.2.tgz",
1734 - "integrity": "sha512-T19My13y8uYXPw/L/k0JYaX1fJKFT/PWdXiHr8mTbXWxjVF1t+8Xl31DgBBvEKclw+1b00Chg0hxE2O7bTG7GQ==",
1735 - "cpu": [
1736 - "ppc64"
1737 - ],
1738 - "dev": true,
1739 - "optional": true,
1740 - "os": [
1741 - "linux"
1742 - ]
1743 - },
1744 - "node_modules/@rollup/rollup-linux-riscv64-gnu": {
1745 - "version": "4.17.2",
1746 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.17.2.tgz",
1747 - "integrity": "sha512-BOaNfthf3X3fOWAB+IJ9kxTgPmMqPPH5f5k2DcCsRrBIbWnaJCgX2ll77dV1TdSy9SaXTR5iDXRL8n7AnoP5cg==",
1748 - "cpu": [
1749 - "riscv64"
1750 - ],
1751 - "dev": true,
1752 - "optional": true,
1753 - "os": [
1754 - "linux"
1755 - ]
1756 - },
1757 - "node_modules/@rollup/rollup-linux-s390x-gnu": {
1758 - "version": "4.17.2",
1759 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.17.2.tgz",
1760 - "integrity": "sha512-W0UP/x7bnn3xN2eYMql2T/+wpASLE5SjObXILTMPUBDB/Fg/FxC+gX4nvCfPBCbNhz51C+HcqQp2qQ4u25ok6g==",
1761 - "cpu": [
1762 - "s390x"
1763 - ],
1764 - "dev": true,
1765 - "optional": true,
1766 - "os": [
1767 - "linux"
1768 - ]
1769 - },
1770 - "node_modules/@rollup/rollup-linux-x64-gnu": {
1771 - "version": "4.17.2",
1772 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.17.2.tgz",
1773 - "integrity": "sha512-Hy7pLwByUOuyaFC6mAr7m+oMC+V7qyifzs/nW2OJfC8H4hbCzOX07Ov0VFk/zP3kBsELWNFi7rJtgbKYsav9QQ==",
1774 - "cpu": [
1775 - "x64"
1776 - ],
1777 - "dev": true,
1778 - "optional": true,
1779 - "os": [
1780 - "linux"
1781 - ]
1782 - },
1783 - "node_modules/@rollup/rollup-linux-x64-musl": {
1784 - "version": "4.17.2",
1785 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.17.2.tgz",
1786 - "integrity": "sha512-h1+yTWeYbRdAyJ/jMiVw0l6fOOm/0D1vNLui9iPuqgRGnXA0u21gAqOyB5iHjlM9MMfNOm9RHCQ7zLIzT0x11Q==",
1787 - "cpu": [
1788 - "x64"
1789 - ],
1790 - "dev": true,
1791 - "optional": true,
1792 - "os": [
1793 - "linux"
1794 - ]
1795 - },
1796 - "node_modules/@rollup/rollup-win32-arm64-msvc": {
1797 - "version": "4.17.2",
1798 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.17.2.tgz",
1799 - "integrity": "sha512-tmdtXMfKAjy5+IQsVtDiCfqbynAQE/TQRpWdVataHmhMb9DCoJxp9vLcCBjEQWMiUYxO1QprH/HbY9ragCEFLA==",
1800 - "cpu": [
1801 - "arm64"
1802 - ],
1803 - "dev": true,
1804 - "optional": true,
1805 - "os": [
1806 - "win32"
1807 - ]
1808 - },
1809 - "node_modules/@rollup/rollup-win32-ia32-msvc": {
1810 - "version": "4.17.2",
1811 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.17.2.tgz",
1812 - "integrity": "sha512-7II/QCSTAHuE5vdZaQEwJq2ZACkBpQDOmQsE6D6XUbnBHW8IAhm4eTufL6msLJorzrHDFv3CF8oCA/hSIRuZeQ==",
1813 - "cpu": [
1814 - "ia32"
1815 - ],
1816 - "dev": true,
1817 - "optional": true,
1818 - "os": [
1819 - "win32"
1820 - ]
1821 - },
1822 - "node_modules/@rollup/rollup-win32-x64-msvc": {
1823 - "version": "4.17.2",
1824 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.17.2.tgz",
1825 - "integrity": "sha512-TGGO7v7qOq4CYmSBVEYpI1Y5xDuCEnbVC5Vth8mOsW0gDSzxNrVERPc790IGHsrT2dQSimgMr9Ub3Y1Jci5/8w==",
1826 - "cpu": [
1827 - "x64"
1828 - ],
1829 - "dev": true,
1830 - "optional": true,
1831 - "os": [
1832 - "win32"
1833 - ]
1834 - },
1835 - "node_modules/@rushstack/eslint-patch": {
1836 - "version": "1.10.3",
1837 - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.3.tgz",
1838 - "integrity": "sha512-qC/xYId4NMebE6w/V33Fh9gWxLgURiNYgVNObbJl2LZv0GUUItCcCqC5axQSwRaAgaxl2mELq1rMzlswaQ0Zxg==",
1839 - "dev": true
1840 - },
1841 - "node_modules/@shikijs/core": {
1842 - "version": "1.6.1",
1843 - "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.6.1.tgz",
1844 - "integrity": "sha512-CqYyepN4SnBopaoXYwng4NO8riB5ask/LTCkhOFq+GNGtr2X+aKeD767eYdqYukeixEUvv4bXdyTYVaogj7KBw=="
1845 - },
1846 - "node_modules/@shikijs/markdown-it": {
1847 - "version": "1.6.1",
1848 - "resolved": "https://registry.npmjs.org/@shikijs/markdown-it/-/markdown-it-1.6.1.tgz",
1849 - "integrity": "sha512-l6yCxrL18vNGtChXonuq2SxFeqYna6qwIXDncb/fH1RASFZjLroEblV/lsONvuDudRyhKJu8MC3ErLIpcT9BLw==",
1850 - "dependencies": {
1851 - "@shikijs/transformers": "1.6.1",
1852 - "markdown-it": "^14.1.0",
1853 - "shiki": "1.6.1"
1854 - }
1855 - },
1856 - "node_modules/@shikijs/transformers": {
1857 - "version": "1.6.1",
1858 - "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-1.6.1.tgz",
1859 - "integrity": "sha512-m/h2Dh99XWvTzHL8MUQmEnrB+/gxDljIfgDNR00Zg941KENqORx8Hi9sKpGYjCgXoEJKASZlEMQdPnkHj9/8aQ==",
1860 - "dependencies": {
1861 - "shiki": "1.6.1"
1862 - }
1863 - },
1864 - "node_modules/@sideway/address": {
1865 - "version": "4.1.5",
1866 - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz",
1867 - "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==",
1868 - "dev": true,
1869 - "dependencies": {
1870 - "@hapi/hoek": "^9.0.0"
1871 - }
1872 - },
1873 - "node_modules/@sideway/formula": {
1874 - "version": "3.0.1",
1875 - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz",
1876 - "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==",
1877 - "dev": true
1878 - },
1879 - "node_modules/@sideway/pinpoint": {
1880 - "version": "2.0.0",
1881 - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz",
1882 - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==",
1883 - "dev": true
1884 - },
1885 - "node_modules/@sinclair/typebox": {
1886 - "version": "0.27.8",
1887 - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
1888 - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==",
1889 - "dev": true
1890 - },
1891 - "node_modules/@trysound/sax": {
1892 - "version": "0.2.0",
1893 - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz",
1894 - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==",
1895 - "dev": true,
1896 - "engines": {
1897 - "node": ">=10.13.0"
1898 - }
1899 - },
1900 - "node_modules/@tsconfig/node18": {
1901 - "version": "18.2.4",
1902 - "resolved": "https://registry.npmjs.org/@tsconfig/node18/-/node18-18.2.4.tgz",
1903 - "integrity": "sha512-5xxU8vVs9/FNcvm3gE07fPbn9tl6tqGGWA9tSlwsUEkBxtRnTsNmwrV8gasZ9F/EobaSv9+nu8AxUKccw77JpQ==",
1904 - "dev": true
1905 - },
1906 - "node_modules/@types/bytes": {
1907 - "version": "3.1.4",
1908 - "resolved": "https://registry.npmjs.org/@types/bytes/-/bytes-3.1.4.tgz",
1909 - "integrity": "sha512-A0uYgOj3zNc4hNjHc5lYUfJQ/HVyBXiUMKdXd7ysclaE6k9oJdavQzODHuwjpUu2/boCP8afjQYi8z/GtvNCWA==",
1910 - "dev": true
1911 - },
1912 - "node_modules/@types/estree": {
1913 - "version": "1.0.5",
1914 - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
1915 - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
1916 - "dev": true
1917 - },
1918 - "node_modules/@types/file-saver": {
1919 - "version": "2.0.7",
1920 - "resolved": "https://registry.npmjs.org/@types/file-saver/-/file-saver-2.0.7.tgz",
1921 - "integrity": "sha512-dNKVfHd/jk0SkR/exKGj2ggkB45MAkzvWCaqLUUgkyjITkGNzH8H+yUwr+BLJUBjZOe9w8X3wgmXhZDRg1ED6A==",
1922 - "dev": true
1923 - },
1924 - "node_modules/@types/fs-extra": {
1925 - "version": "11.0.4",
1926 - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-11.0.4.tgz",
1927 - "integrity": "sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==",
1928 - "dev": true,
1929 - "dependencies": {
1930 - "@types/jsonfile": "*",
1931 - "@types/node": "*"
1932 - }
1933 - },
1934 - "node_modules/@types/inquirer": {
1935 - "version": "9.0.7",
1936 - "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-9.0.7.tgz",
1937 - "integrity": "sha512-Q0zyBupO6NxGRZut/JdmqYKOnN95Eg5V8Csg3PGKkP+FnvsUZx1jAyK7fztIszxxMuoBA6E3KXWvdZVXIpx60g==",
1938 - "dev": true,
1939 - "dependencies": {
1940 - "@types/through": "*",
1941 - "rxjs": "^7.2.0"
1942 - }
1943 - },
1944 - "node_modules/@types/jsdom": {
1945 - "version": "21.1.6",
1946 - "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-21.1.6.tgz",
1947 - "integrity": "sha512-/7kkMsC+/kMs7gAYmmBR9P0vGTnOoLhQhyhQJSlXGI5bzTHp6xdo0TtKWQAsz6pmSAeVqKSbqeyP6hytqr9FDw==",
1948 - "dev": true,
1949 - "dependencies": {
1950 - "@types/node": "*",
1951 - "@types/tough-cookie": "*",
1952 - "parse5": "^7.0.0"
1953 - }
1954 - },
1955 - "node_modules/@types/json-schema": {
1956 - "version": "7.0.15",
1957 - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
1958 - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="
1959 - },
1960 - "node_modules/@types/jsonfile": {
1961 - "version": "6.1.4",
1962 - "resolved": "https://registry.npmjs.org/@types/jsonfile/-/jsonfile-6.1.4.tgz",
1963 - "integrity": "sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==",
1964 - "dev": true,
1965 - "dependencies": {
1966 - "@types/node": "*"
1967 - }
1968 - },
1969 - "node_modules/@types/katex": {
1970 - "version": "0.16.7",
1971 - "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.7.tgz",
1972 - "integrity": "sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ=="
1973 - },
1974 - "node_modules/@types/lodash": {
1975 - "version": "4.17.4",
1976 - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.4.tgz",
1977 - "integrity": "sha512-wYCP26ZLxaT3R39kiN2+HcJ4kTd3U1waI/cY7ivWYqFP6pW3ZNpvi6Wd6PHZx7T/t8z0vlkXMg3QYLa7DZ/IJQ=="
1978 - },
1979 - "node_modules/@types/lodash-es": {
1980 - "version": "4.17.12",
1981 - "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz",
1982 - "integrity": "sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==",
1983 - "dependencies": {
1984 - "@types/lodash": "*"
1985 - }
1986 - },
1987 - "node_modules/@types/node": {
1988 - "version": "20.12.13",
1989 - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.13.tgz",
1990 - "integrity": "sha512-gBGeanV41c1L171rR7wjbMiEpEI/l5XFQdLLfhr/REwpgDy/4U8y89+i8kRiLzDyZdOkXh+cRaTetUnCYutoXA==",
1991 - "dev": true,
1992 - "dependencies": {
1993 - "undici-types": "~5.26.4"
1994 - }
1995 - },
1996 - "node_modules/@types/semver": {
1997 - "version": "7.5.8",
1998 - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz",
1999 - "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ=="
2000 - },
2001 - "node_modules/@types/sinonjs__fake-timers": {
2002 - "version": "8.1.1",
2003 - "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz",
2004 - "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==",
2005 - "dev": true
2006 - },
2007 - "node_modules/@types/sizzle": {
2008 - "version": "2.3.8",
2009 - "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.8.tgz",
2010 - "integrity": "sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg==",
2011 - "dev": true
2012 - },
2013 - "node_modules/@types/through": {
2014 - "version": "0.0.33",
2015 - "resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.33.tgz",
2016 - "integrity": "sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==",
2017 - "dev": true,
2018 - "dependencies": {
2019 - "@types/node": "*"
2020 - }
2021 - },
2022 - "node_modules/@types/tough-cookie": {
2023 - "version": "4.0.5",
2024 - "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz",
2025 - "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==",
2026 - "dev": true
2027 - },
2028 - "node_modules/@types/validator": {
2029 - "version": "13.11.10",
2030 - "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.11.10.tgz",
2031 - "integrity": "sha512-e2PNXoXLr6Z+dbfx5zSh9TRlXJrELycxiaXznp4S5+D2M3b9bqJEitNHA5923jhnB2zzFiZHa2f0SI1HoIahpg==",
2032 - "dev": true
2033 - },
2034 - "node_modules/@types/web-bluetooth": {
2035 - "version": "0.0.20",
2036 - "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz",
2037 - "integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow=="
2038 - },
2039 - "node_modules/@types/yauzl": {
2040 - "version": "2.10.3",
2041 - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz",
2042 - "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==",
2043 - "dev": true,
2044 - "optional": true,
2045 - "dependencies": {
2046 - "@types/node": "*"
2047 - }
2048 - },
2049 - "node_modules/@typescript-eslint/eslint-plugin": {
2050 - "version": "6.21.0",
2051 - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz",
2052 - "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==",
2053 - "dependencies": {
2054 - "@eslint-community/regexpp": "^4.5.1",
2055 - "@typescript-eslint/scope-manager": "6.21.0",
2056 - "@typescript-eslint/type-utils": "6.21.0",
2057 - "@typescript-eslint/utils": "6.21.0",
2058 - "@typescript-eslint/visitor-keys": "6.21.0",
2059 - "debug": "^4.3.4",
2060 - "graphemer": "^1.4.0",
2061 - "ignore": "^5.2.4",
2062 - "natural-compare": "^1.4.0",
2063 - "semver": "^7.5.4",
2064 - "ts-api-utils": "^1.0.1"
2065 - },
2066 - "engines": {
2067 - "node": "^16.0.0 || >=18.0.0"
2068 - },
2069 - "funding": {
2070 - "type": "opencollective",
2071 - "url": "https://opencollective.com/typescript-eslint"
2072 - },
2073 - "peerDependencies": {
2074 - "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha",
2075 - "eslint": "^7.0.0 || ^8.0.0"
2076 - },
2077 - "peerDependenciesMeta": {
2078 - "typescript": {
2079 - "optional": true
2080 - }
2081 - }
2082 - },
2083 - "node_modules/@typescript-eslint/parser": {
2084 - "version": "6.21.0",
2085 - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz",
2086 - "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==",
2087 - "dependencies": {
2088 - "@typescript-eslint/scope-manager": "6.21.0",
2089 - "@typescript-eslint/types": "6.21.0",
2090 - "@typescript-eslint/typescript-estree": "6.21.0",
2091 - "@typescript-eslint/visitor-keys": "6.21.0",
2092 - "debug": "^4.3.4"
2093 - },
2094 - "engines": {
2095 - "node": "^16.0.0 || >=18.0.0"
2096 - },
2097 - "funding": {
2098 - "type": "opencollective",
2099 - "url": "https://opencollective.com/typescript-eslint"
2100 - },
2101 - "peerDependencies": {
2102 - "eslint": "^7.0.0 || ^8.0.0"
2103 - },
2104 - "peerDependenciesMeta": {
2105 - "typescript": {
2106 - "optional": true
2107 - }
2108 - }
2109 - },
2110 - "node_modules/@typescript-eslint/scope-manager": {
2111 - "version": "6.21.0",
2112 - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz",
2113 - "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==",
2114 - "dependencies": {
2115 - "@typescript-eslint/types": "6.21.0",
2116 - "@typescript-eslint/visitor-keys": "6.21.0"
2117 - },
2118 - "engines": {
2119 - "node": "^16.0.0 || >=18.0.0"
2120 - },
2121 - "funding": {
2122 - "type": "opencollective",
2123 - "url": "https://opencollective.com/typescript-eslint"
2124 - }
2125 - },
2126 - "node_modules/@typescript-eslint/type-utils": {
2127 - "version": "6.21.0",
2128 - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz",
2129 - "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==",
2130 - "dependencies": {
2131 - "@typescript-eslint/typescript-estree": "6.21.0",
2132 - "@typescript-eslint/utils": "6.21.0",
2133 - "debug": "^4.3.4",
2134 - "ts-api-utils": "^1.0.1"
2135 - },
2136 - "engines": {
2137 - "node": "^16.0.0 || >=18.0.0"
2138 - },
2139 - "funding": {
2140 - "type": "opencollective",
2141 - "url": "https://opencollective.com/typescript-eslint"
2142 - },
2143 - "peerDependencies": {
2144 - "eslint": "^7.0.0 || ^8.0.0"
2145 - },
2146 - "peerDependenciesMeta": {
2147 - "typescript": {
2148 - "optional": true
2149 - }
2150 - }
2151 - },
2152 - "node_modules/@typescript-eslint/types": {
2153 - "version": "6.21.0",
2154 - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz",
2155 - "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==",
2156 - "engines": {
2157 - "node": "^16.0.0 || >=18.0.0"
2158 - },
2159 - "funding": {
2160 - "type": "opencollective",
2161 - "url": "https://opencollective.com/typescript-eslint"
2162 - }
2163 - },
2164 - "node_modules/@typescript-eslint/typescript-estree": {
2165 - "version": "6.21.0",
2166 - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz",
2167 - "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==",
2168 - "dependencies": {
2169 - "@typescript-eslint/types": "6.21.0",
2170 - "@typescript-eslint/visitor-keys": "6.21.0",
2171 - "debug": "^4.3.4",
2172 - "globby": "^11.1.0",
2173 - "is-glob": "^4.0.3",
2174 - "minimatch": "9.0.3",
2175 - "semver": "^7.5.4",
2176 - "ts-api-utils": "^1.0.1"
2177 - },
2178 - "engines": {
2179 - "node": "^16.0.0 || >=18.0.0"
2180 - },
2181 - "funding": {
2182 - "type": "opencollective",
2183 - "url": "https://opencollective.com/typescript-eslint"
2184 - },
2185 - "peerDependenciesMeta": {
2186 - "typescript": {
2187 - "optional": true
2188 - }
2189 - }
2190 - },
2191 - "node_modules/@typescript-eslint/utils": {
2192 - "version": "6.21.0",
2193 - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz",
2194 - "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==",
2195 - "dependencies": {
2196 - "@eslint-community/eslint-utils": "^4.4.0",
2197 - "@types/json-schema": "^7.0.12",
2198 - "@types/semver": "^7.5.0",
2199 - "@typescript-eslint/scope-manager": "6.21.0",
2200 - "@typescript-eslint/types": "6.21.0",
2201 - "@typescript-eslint/typescript-estree": "6.21.0",
2202 - "semver": "^7.5.4"
2203 - },
2204 - "engines": {
2205 - "node": "^16.0.0 || >=18.0.0"
2206 - },
2207 - "funding": {
2208 - "type": "opencollective",
2209 - "url": "https://opencollective.com/typescript-eslint"
2210 - },
2211 - "peerDependencies": {
2212 - "eslint": "^7.0.0 || ^8.0.0"
2213 - }
2214 - },
2215 - "node_modules/@typescript-eslint/visitor-keys": {
2216 - "version": "6.21.0",
2217 - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz",
2218 - "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==",
2219 - "dependencies": {
2220 - "@typescript-eslint/types": "6.21.0",
2221 - "eslint-visitor-keys": "^3.4.1"
2222 - },
2223 - "engines": {
2224 - "node": "^16.0.0 || >=18.0.0"
2225 - },
2226 - "funding": {
2227 - "type": "opencollective",
2228 - "url": "https://opencollective.com/typescript-eslint"
2229 - }
2230 - },
2231 - "node_modules/@ungap/structured-clone": {
2232 - "version": "1.2.0",
2233 - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
2234 - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ=="
2235 - },
2236 - "node_modules/@unocss/config": {
2237 - "version": "0.56.5",
2238 - "resolved": "https://registry.npmjs.org/@unocss/config/-/config-0.56.5.tgz",
2239 - "integrity": "sha512-rscnFIYgUlN/0hXHdhANyjFcDjDutt3JO0ZRITdNLzoglh7GVNiDTURBJwUZejF/vGJ7IkMd3qOdNhPFuRY1Bg==",
2240 - "dependencies": {
2241 - "@unocss/core": "0.56.5",
2242 - "unconfig": "^0.3.10"
2243 - },
2244 - "engines": {
2245 - "node": ">=14"
2246 - },
2247 - "funding": {
2248 - "url": "https://github.com/sponsors/antfu"
2249 - }
2250 - },
2251 - "node_modules/@unocss/core": {
2252 - "version": "0.56.5",
2253 - "resolved": "https://registry.npmjs.org/@unocss/core/-/core-0.56.5.tgz",
2254 - "integrity": "sha512-fx5VhOjSHn0HdV2D34pEwFMAHJcJQRTCp1xEE4GzxY1irXzaa+m2aYf5PZjmDxehiOC16IH7TO9FOWANXk1E0w==",
2255 - "funding": {
2256 - "url": "https://github.com/sponsors/antfu"
2257 - }
2258 - },
2259 - "node_modules/@unocss/eslint-config": {
2260 - "version": "0.56.5",
2261 - "resolved": "https://registry.npmjs.org/@unocss/eslint-config/-/eslint-config-0.56.5.tgz",
2262 - "integrity": "sha512-UP7EBTl4ORRO0yqptW7oUWxM0qNh1Nk+z4rufC0C2kI8vKc8yab+sWvlBSC8DeX3kzR7uJxvtUsHGcBcoqZujg==",
2263 - "dependencies": {
2264 - "@unocss/eslint-plugin": "0.56.5"
2265 - },
2266 - "engines": {
2267 - "node": ">=14"
2268 - },
2269 - "funding": {
2270 - "url": "https://github.com/sponsors/antfu"
2271 - }
2272 - },
2273 - "node_modules/@unocss/eslint-plugin": {
2274 - "version": "0.56.5",
2275 - "resolved": "https://registry.npmjs.org/@unocss/eslint-plugin/-/eslint-plugin-0.56.5.tgz",
2276 - "integrity": "sha512-nMVw/kc0sYU5i8UBU1rEahzKhZRPTUjCztpPzo2KUKFKLBPAbTv0gJAOmU/n2kV3YiGk5Tl6jmShxu1MHjk5rA==",
2277 - "dependencies": {
2278 - "@typescript-eslint/utils": "^6.7.3",
2279 - "@unocss/config": "0.56.5",
2280 - "@unocss/core": "0.56.5",
2281 - "magic-string": "^0.30.3",
2282 - "synckit": "^0.8.5"
2283 - },
2284 - "engines": {
2285 - "node": ">=14"
2286 - },
2287 - "funding": {
2288 - "url": "https://github.com/sponsors/antfu"
2289 - }
2290 - },
2291 - "node_modules/@vitejs/plugin-vue": {
2292 - "version": "5.0.4",
2293 - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.0.4.tgz",
2294 - "integrity": "sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==",
2295 - "dev": true,
2296 - "engines": {
2297 - "node": "^18.0.0 || >=20.0.0"
2298 - },
2299 - "peerDependencies": {
2300 - "vite": "^5.0.0",
2301 - "vue": "^3.2.25"
2302 - }
2303 - },
2304 - "node_modules/@vitejs/plugin-vue-jsx": {
2305 - "version": "3.1.0",
2306 - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-3.1.0.tgz",
2307 - "integrity": "sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA==",
2308 - "dev": true,
2309 - "dependencies": {
2310 - "@babel/core": "^7.23.3",
2311 - "@babel/plugin-transform-typescript": "^7.23.3",
2312 - "@vue/babel-plugin-jsx": "^1.1.5"
2313 - },
2314 - "engines": {
2315 - "node": "^14.18.0 || >=16.0.0"
2316 - },
2317 - "peerDependencies": {
2318 - "vite": "^4.0.0 || ^5.0.0",
2319 - "vue": "^3.0.0"
2320 - }
2321 - },
2322 - "node_modules/@vitest/expect": {
2323 - "version": "1.6.0",
2324 - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.6.0.tgz",
2325 - "integrity": "sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==",
2326 - "dev": true,
2327 - "dependencies": {
2328 - "@vitest/spy": "1.6.0",
2329 - "@vitest/utils": "1.6.0",
2330 - "chai": "^4.3.10"
2331 - },
2332 - "funding": {
2333 - "url": "https://opencollective.com/vitest"
2334 - }
2335 - },
2336 - "node_modules/@vitest/runner": {
2337 - "version": "1.6.0",
2338 - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.6.0.tgz",
2339 - "integrity": "sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==",
2340 - "dev": true,
2341 - "dependencies": {
2342 - "@vitest/utils": "1.6.0",
2343 - "p-limit": "^5.0.0",
2344 - "pathe": "^1.1.1"
2345 - },
2346 - "funding": {
2347 - "url": "https://opencollective.com/vitest"
2348 - }
2349 - },
2350 - "node_modules/@vitest/runner/node_modules/p-limit": {
2351 - "version": "5.0.0",
2352 - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz",
2353 - "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==",
2354 - "dev": true,
2355 - "dependencies": {
2356 - "yocto-queue": "^1.0.0"
2357 - },
2358 - "engines": {
2359 - "node": ">=18"
2360 - },
2361 - "funding": {
2362 - "url": "https://github.com/sponsors/sindresorhus"
2363 - }
2364 - },
2365 - "node_modules/@vitest/runner/node_modules/yocto-queue": {
2366 - "version": "1.0.0",
2367 - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz",
2368 - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==",
2369 - "dev": true,
2370 - "engines": {
2371 - "node": ">=12.20"
2372 - },
2373 - "funding": {
2374 - "url": "https://github.com/sponsors/sindresorhus"
2375 - }
2376 - },
2377 - "node_modules/@vitest/snapshot": {
2378 - "version": "1.6.0",
2379 - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.6.0.tgz",
2380 - "integrity": "sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==",
2381 - "dev": true,
2382 - "dependencies": {
2383 - "magic-string": "^0.30.5",
2384 - "pathe": "^1.1.1",
2385 - "pretty-format": "^29.7.0"
2386 - },
2387 - "funding": {
2388 - "url": "https://opencollective.com/vitest"
2389 - }
2390 - },
2391 - "node_modules/@vitest/spy": {
2392 - "version": "1.6.0",
2393 - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.6.0.tgz",
2394 - "integrity": "sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==",
2395 - "dev": true,
2396 - "dependencies": {
2397 - "tinyspy": "^2.2.0"
2398 - },
2399 - "funding": {
2400 - "url": "https://opencollective.com/vitest"
2401 - }
2402 - },
2403 - "node_modules/@vitest/utils": {
2404 - "version": "1.6.0",
2405 - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.6.0.tgz",
2406 - "integrity": "sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==",
2407 - "dev": true,
2408 - "dependencies": {
2409 - "diff-sequences": "^29.6.3",
2410 - "estree-walker": "^3.0.3",
2411 - "loupe": "^2.3.7",
2412 - "pretty-format": "^29.7.0"
2413 - },
2414 - "funding": {
2415 - "url": "https://opencollective.com/vitest"
2416 - }
2417 - },
2418 - "node_modules/@vitest/utils/node_modules/estree-walker": {
2419 - "version": "3.0.3",
2420 - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
2421 - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
2422 - "dev": true,
2423 - "dependencies": {
2424 - "@types/estree": "^1.0.0"
2425 - }
2426 - },
2427 - "node_modules/@volar/language-core": {
2428 - "version": "2.2.4",
2429 - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.2.4.tgz",
2430 - "integrity": "sha512-7As47GndxGxsqqYnbreLrfB5NDUeQioPM2LJKUuB4/34c0NpEJ2byVl3c9KYdjIdiEstWZ9JLtLKNTaPWb5jtA==",
2431 - "dev": true,
2432 - "dependencies": {
2433 - "@volar/source-map": "2.2.4"
2434 - }
2435 - },
2436 - "node_modules/@volar/source-map": {
2437 - "version": "2.2.4",
2438 - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.2.4.tgz",
2439 - "integrity": "sha512-m92FLpR9vB1YEZfiZ+bfgpLrToL/DNkOrorWVep3pffHrwwI4Tx2oIQN+sqHJfKkiT5N3J1owC+8crhAEinfjg==",
2440 - "dev": true,
2441 - "dependencies": {
2442 - "muggle-string": "^0.4.0"
2443 - }
2444 - },
2445 - "node_modules/@volar/typescript": {
2446 - "version": "2.2.4",
2447 - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.2.4.tgz",
2448 - "integrity": "sha512-uAQC53tgEbHO62G8NXMfmBrJAlP2QJ9WxVEEQqqK3I6VSy8frL5LbH3hAWODxiwMWixv74wJLWlKbWXOgdIoRQ==",
2449 - "dev": true,
2450 - "dependencies": {
2451 - "@volar/language-core": "2.2.4",
2452 - "path-browserify": "^1.0.1"
2453 - }
2454 - },
2455 - "node_modules/@vue/babel-helper-vue-transform-on": {
2456 - "version": "1.2.2",
2457 - "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.2.2.tgz",
2458 - "integrity": "sha512-nOttamHUR3YzdEqdM/XXDyCSdxMA9VizUKoroLX6yTyRtggzQMHXcmwh8a7ZErcJttIBIc9s68a1B8GZ+Dmvsw==",
2459 - "dev": true
2460 - },
2461 - "node_modules/@vue/babel-plugin-jsx": {
2462 - "version": "1.2.2",
2463 - "resolved": "https://registry.npmjs.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.2.2.tgz",
2464 - "integrity": "sha512-nYTkZUVTu4nhP199UoORePsql0l+wj7v/oyQjtThUVhJl1U+6qHuoVhIvR3bf7eVKjbCK+Cs2AWd7mi9Mpz9rA==",
2465 - "dev": true,
2466 - "dependencies": {
2467 - "@babel/helper-module-imports": "~7.22.15",
2468 - "@babel/helper-plugin-utils": "^7.22.5",
2469 - "@babel/plugin-syntax-jsx": "^7.23.3",
2470 - "@babel/template": "^7.23.9",
2471 - "@babel/traverse": "^7.23.9",
2472 - "@babel/types": "^7.23.9",
2473 - "@vue/babel-helper-vue-transform-on": "1.2.2",
2474 - "@vue/babel-plugin-resolve-type": "1.2.2",
2475 - "camelcase": "^6.3.0",
2476 - "html-tags": "^3.3.1",
2477 - "svg-tags": "^1.0.0"
2478 - },
2479 - "peerDependencies": {
2480 - "@babel/core": "^7.0.0-0"
2481 - },
2482 - "peerDependenciesMeta": {
2483 - "@babel/core": {
2484 - "optional": true
2485 - }
2486 - }
2487 - },
2488 - "node_modules/@vue/babel-plugin-jsx/node_modules/@babel/helper-module-imports": {
2489 - "version": "7.22.15",
2490 - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz",
2491 - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==",
2492 - "dev": true,
2493 - "dependencies": {
2494 - "@babel/types": "^7.22.15"
2495 - },
2496 - "engines": {
2497 - "node": ">=6.9.0"
2498 - }
2499 - },
2500 - "node_modules/@vue/babel-plugin-resolve-type": {
2501 - "version": "1.2.2",
2502 - "resolved": "https://registry.npmjs.org/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-1.2.2.tgz",
2503 - "integrity": "sha512-EntyroPwNg5IPVdUJupqs0CFzuf6lUrVvCspmv2J1FITLeGnUCuoGNNk78dgCusxEiYj6RMkTJflGSxk5aIC4A==",
2504 - "dev": true,
2505 - "dependencies": {
2506 - "@babel/code-frame": "^7.23.5",
2507 - "@babel/helper-module-imports": "~7.22.15",
2508 - "@babel/helper-plugin-utils": "^7.22.5",
2509 - "@babel/parser": "^7.23.9",
2510 - "@vue/compiler-sfc": "^3.4.15"
2511 - },
2512 - "peerDependencies": {
2513 - "@babel/core": "^7.0.0-0"
2514 - }
2515 - },
2516 - "node_modules/@vue/babel-plugin-resolve-type/node_modules/@babel/helper-module-imports": {
2517 - "version": "7.22.15",
2518 - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz",
2519 - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==",
2520 - "dev": true,
2521 - "dependencies": {
2522 - "@babel/types": "^7.22.15"
2523 - },
2524 - "engines": {
2525 - "node": ">=6.9.0"
2526 - }
2527 - },
2528 - "node_modules/@vue/compiler-core": {
2529 - "version": "3.4.27",
2530 - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.27.tgz",
2531 - "integrity": "sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==",
2532 - "dependencies": {
2533 - "@babel/parser": "^7.24.4",
2534 - "@vue/shared": "3.4.27",
2535 - "entities": "^4.5.0",
2536 - "estree-walker": "^2.0.2",
2537 - "source-map-js": "^1.2.0"
2538 - }
2539 - },
2540 - "node_modules/@vue/compiler-dom": {
2541 - "version": "3.4.27",
2542 - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz",
2543 - "integrity": "sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==",
2544 - "dependencies": {
2545 - "@vue/compiler-core": "3.4.27",
2546 - "@vue/shared": "3.4.27"
2547 - }
2548 - },
2549 - "node_modules/@vue/compiler-sfc": {
2550 - "version": "3.4.27",
2551 - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.27.tgz",
2552 - "integrity": "sha512-nDwntUEADssW8e0rrmE0+OrONwmRlegDA1pD6QhVeXxjIytV03yDqTey9SBDiALsvAd5U4ZrEKbMyVXhX6mCGA==",
2553 - "dependencies": {
2554 - "@babel/parser": "^7.24.4",
2555 - "@vue/compiler-core": "3.4.27",
2556 - "@vue/compiler-dom": "3.4.27",
2557 - "@vue/compiler-ssr": "3.4.27",
2558 - "@vue/shared": "3.4.27",
2559 - "estree-walker": "^2.0.2",
2560 - "magic-string": "^0.30.10",
2561 - "postcss": "^8.4.38",
2562 - "source-map-js": "^1.2.0"
2563 - }
2564 - },
2565 - "node_modules/@vue/compiler-ssr": {
2566 - "version": "3.4.27",
2567 - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.27.tgz",
2568 - "integrity": "sha512-CVRzSJIltzMG5FcidsW0jKNQnNRYC8bT21VegyMMtHmhW3UOI7knmUehzswXLrExDLE6lQCZdrhD4ogI7c+vuw==",
2569 - "dependencies": {
2570 - "@vue/compiler-dom": "3.4.27",
2571 - "@vue/shared": "3.4.27"
2572 - }
2573 - },
2574 - "node_modules/@vue/devtools-api": {
2575 - "version": "6.6.1",
2576 - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.1.tgz",
2577 - "integrity": "sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA=="
2578 - },
2579 - "node_modules/@vue/eslint-config-prettier": {
2580 - "version": "9.0.0",
2581 - "resolved": "https://registry.npmjs.org/@vue/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz",
2582 - "integrity": "sha512-z1ZIAAUS9pKzo/ANEfd2sO+v2IUalz7cM/cTLOZ7vRFOPk5/xuRKQteOu1DErFLAh/lYGXMVZ0IfYKlyInuDVg==",
2583 - "dev": true,
2584 - "dependencies": {
2585 - "eslint-config-prettier": "^9.0.0",
2586 - "eslint-plugin-prettier": "^5.0.0"
2587 - },
2588 - "peerDependencies": {
2589 - "eslint": ">= 8.0.0",
2590 - "prettier": ">= 3.0.0"
2591 - }
2592 - },
2593 - "node_modules/@vue/eslint-config-typescript": {
2594 - "version": "13.0.0",
2595 - "resolved": "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-13.0.0.tgz",
2596 - "integrity": "sha512-MHh9SncG/sfqjVqjcuFLOLD6Ed4dRAis4HNt0dXASeAuLqIAx4YMB1/m2o4pUKK1vCt8fUvYG8KKX2Ot3BVZTg==",
2597 - "dev": true,
2598 - "dependencies": {
2599 - "@typescript-eslint/eslint-plugin": "^7.1.1",
2600 - "@typescript-eslint/parser": "^7.1.1",
2601 - "vue-eslint-parser": "^9.3.1"
2602 - },
2603 - "engines": {
2604 - "node": "^18.18.0 || >=20.0.0"
2605 - },
2606 - "peerDependencies": {
2607 - "eslint": "^8.56.0",
2608 - "eslint-plugin-vue": "^9.0.0",
2609 - "typescript": ">=4.7.4"
2610 - },
2611 - "peerDependenciesMeta": {
2612 - "typescript": {
2613 - "optional": true
2614 - }
2615 - }
2616 - },
2617 - "node_modules/@vue/eslint-config-typescript/node_modules/@typescript-eslint/eslint-plugin": {
2618 - "version": "7.9.0",
2619 - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.9.0.tgz",
2620 - "integrity": "sha512-6e+X0X3sFe/G/54aC3jt0txuMTURqLyekmEHViqyA2VnxhLMpvA6nqmcjIy+Cr9tLDHPssA74BP5Mx9HQIxBEA==",
2621 - "dev": true,
2622 - "dependencies": {
2623 - "@eslint-community/regexpp": "^4.10.0",
2624 - "@typescript-eslint/scope-manager": "7.9.0",
2625 - "@typescript-eslint/type-utils": "7.9.0",
2626 - "@typescript-eslint/utils": "7.9.0",
2627 - "@typescript-eslint/visitor-keys": "7.9.0",
2628 - "graphemer": "^1.4.0",
2629 - "ignore": "^5.3.1",
2630 - "natural-compare": "^1.4.0",
2631 - "ts-api-utils": "^1.3.0"
2632 - },
2633 - "engines": {
2634 - "node": "^18.18.0 || >=20.0.0"
2635 - },
2636 - "funding": {
2637 - "type": "opencollective",
2638 - "url": "https://opencollective.com/typescript-eslint"
2639 - },
2640 - "peerDependencies": {
2641 - "@typescript-eslint/parser": "^7.0.0",
2642 - "eslint": "^8.56.0"
2643 - },
2644 - "peerDependenciesMeta": {
2645 - "typescript": {
2646 - "optional": true
2647 - }
2648 - }
2649 - },
2650 - "node_modules/@vue/eslint-config-typescript/node_modules/@typescript-eslint/parser": {
2651 - "version": "7.9.0",
2652 - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.9.0.tgz",
2653 - "integrity": "sha512-qHMJfkL5qvgQB2aLvhUSXxbK7OLnDkwPzFalg458pxQgfxKDfT1ZDbHQM/I6mDIf/svlMkj21kzKuQ2ixJlatQ==",
2654 - "dev": true,
2655 - "dependencies": {
2656 - "@typescript-eslint/scope-manager": "7.9.0",
2657 - "@typescript-eslint/types": "7.9.0",
2658 - "@typescript-eslint/typescript-estree": "7.9.0",
2659 - "@typescript-eslint/visitor-keys": "7.9.0",
2660 - "debug": "^4.3.4"
2661 - },
2662 - "engines": {
2663 - "node": "^18.18.0 || >=20.0.0"
2664 - },
2665 - "funding": {
2666 - "type": "opencollective",
2667 - "url": "https://opencollective.com/typescript-eslint"
2668 - },
2669 - "peerDependencies": {
2670 - "eslint": "^8.56.0"
2671 - },
2672 - "peerDependenciesMeta": {
2673 - "typescript": {
2674 - "optional": true
2675 - }
2676 - }
2677 - },
2678 - "node_modules/@vue/eslint-config-typescript/node_modules/@typescript-eslint/scope-manager": {
2679 - "version": "7.9.0",
2680 - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.9.0.tgz",
2681 - "integrity": "sha512-ZwPK4DeCDxr3GJltRz5iZejPFAAr4Wk3+2WIBaj1L5PYK5RgxExu/Y68FFVclN0y6GGwH8q+KgKRCvaTmFBbgQ==",
2682 - "dev": true,
2683 - "dependencies": {
2684 - "@typescript-eslint/types": "7.9.0",
2685 - "@typescript-eslint/visitor-keys": "7.9.0"
2686 - },
2687 - "engines": {
2688 - "node": "^18.18.0 || >=20.0.0"
2689 - },
2690 - "funding": {
2691 - "type": "opencollective",
2692 - "url": "https://opencollective.com/typescript-eslint"
2693 - }
2694 - },
2695 - "node_modules/@vue/eslint-config-typescript/node_modules/@typescript-eslint/type-utils": {
2696 - "version": "7.9.0",
2697 - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.9.0.tgz",
2698 - "integrity": "sha512-6Qy8dfut0PFrFRAZsGzuLoM4hre4gjzWJB6sUvdunCYZsYemTkzZNwF1rnGea326PHPT3zn5Lmg32M/xfJfByA==",
2699 - "dev": true,
2700 - "dependencies": {
2701 - "@typescript-eslint/typescript-estree": "7.9.0",
2702 - "@typescript-eslint/utils": "7.9.0",
2703 - "debug": "^4.3.4",
2704 - "ts-api-utils": "^1.3.0"
2705 - },
2706 - "engines": {
2707 - "node": "^18.18.0 || >=20.0.0"
2708 - },
2709 - "funding": {
2710 - "type": "opencollective",
2711 - "url": "https://opencollective.com/typescript-eslint"
2712 - },
2713 - "peerDependencies": {
2714 - "eslint": "^8.56.0"
2715 - },
2716 - "peerDependenciesMeta": {
2717 - "typescript": {
2718 - "optional": true
2719 - }
2720 - }
2721 - },
2722 - "node_modules/@vue/eslint-config-typescript/node_modules/@typescript-eslint/types": {
2723 - "version": "7.9.0",
2724 - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.9.0.tgz",
2725 - "integrity": "sha512-oZQD9HEWQanl9UfsbGVcZ2cGaR0YT5476xfWE0oE5kQa2sNK2frxOlkeacLOTh9po4AlUT5rtkGyYM5kew0z5w==",
2726 - "dev": true,
2727 - "engines": {
2728 - "node": "^18.18.0 || >=20.0.0"
2729 - },
2730 - "funding": {
2731 - "type": "opencollective",
2732 - "url": "https://opencollective.com/typescript-eslint"
2733 - }
2734 - },
2735 - "node_modules/@vue/eslint-config-typescript/node_modules/@typescript-eslint/typescript-estree": {
2736 - "version": "7.9.0",
2737 - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.9.0.tgz",
2738 - "integrity": "sha512-zBCMCkrb2YjpKV3LA0ZJubtKCDxLttxfdGmwZvTqqWevUPN0FZvSI26FalGFFUZU/9YQK/A4xcQF9o/VVaCKAg==",
2739 - "dev": true,
2740 - "dependencies": {
2741 - "@typescript-eslint/types": "7.9.0",
2742 - "@typescript-eslint/visitor-keys": "7.9.0",
2743 - "debug": "^4.3.4",
2744 - "globby": "^11.1.0",
2745 - "is-glob": "^4.0.3",
2746 - "minimatch": "^9.0.4",
2747 - "semver": "^7.6.0",
2748 - "ts-api-utils": "^1.3.0"
2749 - },
2750 - "engines": {
2751 - "node": "^18.18.0 || >=20.0.0"
2752 - },
2753 - "funding": {
2754 - "type": "opencollective",
2755 - "url": "https://opencollective.com/typescript-eslint"
2756 - },
2757 - "peerDependenciesMeta": {
2758 - "typescript": {
2759 - "optional": true
2760 - }
2761 - }
2762 - },
2763 - "node_modules/@vue/eslint-config-typescript/node_modules/@typescript-eslint/utils": {
2764 - "version": "7.9.0",
2765 - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.9.0.tgz",
2766 - "integrity": "sha512-5KVRQCzZajmT4Ep+NEgjXCvjuypVvYHUW7RHlXzNPuak2oWpVoD1jf5xCP0dPAuNIchjC7uQyvbdaSTFaLqSdA==",
2767 - "dev": true,
2768 - "dependencies": {
2769 - "@eslint-community/eslint-utils": "^4.4.0",
2770 - "@typescript-eslint/scope-manager": "7.9.0",
2771 - "@typescript-eslint/types": "7.9.0",
2772 - "@typescript-eslint/typescript-estree": "7.9.0"
2773 - },
2774 - "engines": {
2775 - "node": "^18.18.0 || >=20.0.0"
2776 - },
2777 - "funding": {
2778 - "type": "opencollective",
2779 - "url": "https://opencollective.com/typescript-eslint"
2780 - },
2781 - "peerDependencies": {
2782 - "eslint": "^8.56.0"
2783 - }
2784 - },
2785 - "node_modules/@vue/eslint-config-typescript/node_modules/@typescript-eslint/visitor-keys": {
2786 - "version": "7.9.0",
2787 - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.9.0.tgz",
2788 - "integrity": "sha512-iESPx2TNLDNGQLyjKhUvIKprlP49XNEK+MvIf9nIO7ZZaZdbnfWKHnXAgufpxqfA0YryH8XToi4+CjBgVnFTSQ==",
2789 - "dev": true,
2790 - "dependencies": {
2791 - "@typescript-eslint/types": "7.9.0",
2792 - "eslint-visitor-keys": "^3.4.3"
2793 - },
2794 - "engines": {
2795 - "node": "^18.18.0 || >=20.0.0"
2796 - },
2797 - "funding": {
2798 - "type": "opencollective",
2799 - "url": "https://opencollective.com/typescript-eslint"
2800 - }
2801 - },
2802 - "node_modules/@vue/eslint-config-typescript/node_modules/minimatch": {
2803 - "version": "9.0.4",
2804 - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
2805 - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
2806 - "dev": true,
2807 - "dependencies": {
2808 - "brace-expansion": "^2.0.1"
2809 - },
2810 - "engines": {
2811 - "node": ">=16 || 14 >=14.17"
2812 - },
2813 - "funding": {
2814 - "url": "https://github.com/sponsors/isaacs"
2815 - }
2816 - },
2817 - "node_modules/@vue/language-core": {
2818 - "version": "2.0.19",
2819 - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.0.19.tgz",
2820 - "integrity": "sha512-A9EGOnvb51jOvnCYoRLnMP+CcoPlbZVxI9gZXE/y2GksRWM6j/PrLEIC++pnosWTN08tFpJgxhSS//E9v/Sg+Q==",
2821 - "dev": true,
2822 - "dependencies": {
2823 - "@volar/language-core": "~2.2.4",
2824 - "@vue/compiler-dom": "^3.4.0",
2825 - "@vue/shared": "^3.4.0",
2826 - "computeds": "^0.0.1",
2827 - "minimatch": "^9.0.3",
2828 - "path-browserify": "^1.0.1",
2829 - "vue-template-compiler": "^2.7.14"
2830 - },
2831 - "peerDependencies": {
2832 - "typescript": "*"
2833 - },
2834 - "peerDependenciesMeta": {
2835 - "typescript": {
2836 - "optional": true
2837 - }
2838 - }
2839 - },
2840 - "node_modules/@vue/reactivity": {
2841 - "version": "3.4.27",
2842 - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.27.tgz",
2843 - "integrity": "sha512-kK0g4NknW6JX2yySLpsm2jlunZJl2/RJGZ0H9ddHdfBVHcNzxmQ0sS0b09ipmBoQpY8JM2KmUw+a6sO8Zo+zIA==",
2844 - "dependencies": {
2845 - "@vue/shared": "3.4.27"
2846 - }
2847 - },
2848 - "node_modules/@vue/runtime-core": {
2849 - "version": "3.4.27",
2850 - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.27.tgz",
2851 - "integrity": "sha512-7aYA9GEbOOdviqVvcuweTLe5Za4qBZkUY7SvET6vE8kyypxVgaT1ixHLg4urtOlrApdgcdgHoTZCUuTGap/5WA==",
2852 - "dependencies": {
2853 - "@vue/reactivity": "3.4.27",
2854 - "@vue/shared": "3.4.27"
2855 - }
2856 - },
2857 - "node_modules/@vue/runtime-dom": {
2858 - "version": "3.4.27",
2859 - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.27.tgz",
2860 - "integrity": "sha512-ScOmP70/3NPM+TW9hvVAz6VWWtZJqkbdf7w6ySsws+EsqtHvkhxaWLecrTorFxsawelM5Ys9FnDEMt6BPBDS0Q==",
2861 - "dependencies": {
2862 - "@vue/runtime-core": "3.4.27",
2863 - "@vue/shared": "3.4.27",
2864 - "csstype": "^3.1.3"
2865 - }
2866 - },
2867 - "node_modules/@vue/server-renderer": {
2868 - "version": "3.4.27",
2869 - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.27.tgz",
2870 - "integrity": "sha512-dlAMEuvmeA3rJsOMJ2J1kXU7o7pOxgsNHVr9K8hB3ImIkSuBrIdy0vF66h8gf8Tuinf1TK3mPAz2+2sqyf3KzA==",
2871 - "dependencies": {
2872 - "@vue/compiler-ssr": "3.4.27",
2873 - "@vue/shared": "3.4.27"
2874 - },
2875 - "peerDependencies": {
2876 - "vue": "3.4.27"
2877 - }
2878 - },
2879 - "node_modules/@vue/shared": {
2880 - "version": "3.4.27",
2881 - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.27.tgz",
2882 - "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA=="
2883 - },
2884 - "node_modules/@vue/test-utils": {
2885 - "version": "2.4.6",
2886 - "resolved": "https://registry.npmjs.org/@vue/test-utils/-/test-utils-2.4.6.tgz",
2887 - "integrity": "sha512-FMxEjOpYNYiFe0GkaHsnJPXFHxQ6m4t8vI/ElPGpMWxZKpmRvQ33OIrvRXemy6yha03RxhOlQuy+gZMC3CQSow==",
2888 - "dev": true,
2889 - "dependencies": {
2890 - "js-beautify": "^1.14.9",
2891 - "vue-component-type-helpers": "^2.0.0"
2892 - }
2893 - },
2894 - "node_modules/@vue/tsconfig": {
2895 - "version": "0.5.1",
2896 - "resolved": "https://registry.npmjs.org/@vue/tsconfig/-/tsconfig-0.5.1.tgz",
2897 - "integrity": "sha512-VcZK7MvpjuTPx2w6blwnwZAu5/LgBUtejFOi3pPGQFXQN5Ela03FUtd2Qtg4yWGGissVL0dr6Ro1LfOFh+PCuQ==",
2898 - "dev": true
2899 - },
2900 - "node_modules/@vueuse/components": {
2901 - "version": "10.10.0",
2902 - "resolved": "https://registry.npmjs.org/@vueuse/components/-/components-10.10.0.tgz",
2903 - "integrity": "sha512-HiA10NQ9HJAGnju+8ZK4TyA8LIc0a6BnJmVWDa/k+TRhaYCVacSDU04k0BQ2otV+gghUDdwu98upf6TDRXpoeg==",
2904 - "dependencies": {
2905 - "@vueuse/core": "10.10.0",
2906 - "@vueuse/shared": "10.10.0",
2907 - "vue-demi": ">=0.14.7"
2908 - }
2909 - },
2910 - "node_modules/@vueuse/components/node_modules/vue-demi": {
2911 - "version": "0.14.7",
2912 - "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.7.tgz",
2913 - "integrity": "sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==",
2914 - "hasInstallScript": true,
2915 - "bin": {
2916 - "vue-demi-fix": "bin/vue-demi-fix.js",
2917 - "vue-demi-switch": "bin/vue-demi-switch.js"
2918 - },
2919 - "engines": {
2920 - "node": ">=12"
2921 - },
2922 - "funding": {
2923 - "url": "https://github.com/sponsors/antfu"
2924 - },
2925 - "peerDependencies": {
2926 - "@vue/composition-api": "^1.0.0-rc.1",
2927 - "vue": "^3.0.0-0 || ^2.6.0"
2928 - },
2929 - "peerDependenciesMeta": {
2930 - "@vue/composition-api": {
2931 - "optional": true
2932 - }
2933 - }
2934 - },
2935 - "node_modules/@vueuse/core": {
2936 - "version": "10.10.0",
2937 - "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.10.0.tgz",
2938 - "integrity": "sha512-vexJ/YXYs2S42B783rI95lMt3GzEwkxzC8Hb0Ndpd8rD+p+Lk/Za4bd797Ym7yq4jXqdSyj3JLChunF/vyYjUw==",
2939 - "dependencies": {
2940 - "@types/web-bluetooth": "^0.0.20",
2941 - "@vueuse/metadata": "10.10.0",
2942 - "@vueuse/shared": "10.10.0",
2943 - "vue-demi": ">=0.14.7"
2944 - },
2945 - "funding": {
2946 - "url": "https://github.com/sponsors/antfu"
2947 - }
2948 - },
2949 - "node_modules/@vueuse/core/node_modules/vue-demi": {
2950 - "version": "0.14.8",
2951 - "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.8.tgz",
2952 - "integrity": "sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==",
2953 - "hasInstallScript": true,
2954 - "bin": {
2955 - "vue-demi-fix": "bin/vue-demi-fix.js",
2956 - "vue-demi-switch": "bin/vue-demi-switch.js"
2957 - },
2958 - "engines": {
2959 - "node": ">=12"
2960 - },
2961 - "funding": {
2962 - "url": "https://github.com/sponsors/antfu"
2963 - },
2964 - "peerDependencies": {
2965 - "@vue/composition-api": "^1.0.0-rc.1",
2966 - "vue": "^3.0.0-0 || ^2.6.0"
2967 - },
2968 - "peerDependenciesMeta": {
2969 - "@vue/composition-api": {
2970 - "optional": true
2971 - }
2972 - }
2973 - },
2974 - "node_modules/@vueuse/metadata": {
2975 - "version": "10.10.0",
2976 - "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.10.0.tgz",
2977 - "integrity": "sha512-UNAo2sTCAW5ge6OErPEHb5z7NEAg3XcO9Cj7OK45aZXfLLH1QkexDcZD77HBi5zvEiLOm1An+p/4b5K3Worpug==",
2978 - "funding": {
2979 - "url": "https://github.com/sponsors/antfu"
2980 - }
2981 - },
2982 - "node_modules/@vueuse/shared": {
2983 - "version": "10.10.0",
2984 - "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.10.0.tgz",
2985 - "integrity": "sha512-2aW33Ac0Uk0U+9yo3Ypg9s5KcR42cuehRWl7vnUHadQyFvCktseyxxEPBi1Eiq4D2yBGACOnqLZpx1eMc7g5Og==",
2986 - "dependencies": {
2987 - "vue-demi": ">=0.14.7"
2988 - },
2989 - "funding": {
2990 - "url": "https://github.com/sponsors/antfu"
2991 - }
2992 - },
2993 - "node_modules/@vueuse/shared/node_modules/vue-demi": {
2994 - "version": "0.14.8",
2995 - "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.8.tgz",
2996 - "integrity": "sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==",
2997 - "hasInstallScript": true,
2998 - "bin": {
2999 - "vue-demi-fix": "bin/vue-demi-fix.js",
3000 - "vue-demi-switch": "bin/vue-demi-switch.js"
3001 - },
3002 - "engines": {
3003 - "node": ">=12"
3004 - },
3005 - "funding": {
3006 - "url": "https://github.com/sponsors/antfu"
3007 - },
3008 - "peerDependencies": {
3009 - "@vue/composition-api": "^1.0.0-rc.1",
3010 - "vue": "^3.0.0-0 || ^2.6.0"
3011 - },
3012 - "peerDependenciesMeta": {
3013 - "@vue/composition-api": {
3014 - "optional": true
3015 - }
3016 - }
3017 - },
3018 - "node_modules/@yr/monotone-cubic-spline": {
3019 - "version": "1.0.3",
3020 - "resolved": "https://registry.npmjs.org/@yr/monotone-cubic-spline/-/monotone-cubic-spline-1.0.3.tgz",
3021 - "integrity": "sha512-FQXkOta0XBSUPHndIKON2Y9JeQz5ZeMqLYZVVK93FliNBFm7LNMIZmY6FrMEB9XPcDbE2bekMbZD6kzDkxwYjA=="
3022 - },
3023 - "node_modules/abbrev": {
3024 - "version": "2.0.0",
3025 - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz",
3026 - "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==",
3027 - "dev": true,
3028 - "engines": {
3029 - "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
3030 - }
3031 - },
3032 - "node_modules/accepts": {
3033 - "version": "1.3.8",
3034 - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
3035 - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
3036 - "dev": true,
3037 - "dependencies": {
3038 - "mime-types": "~2.1.34",
3039 - "negotiator": "0.6.3"
3040 - },
3041 - "engines": {
3042 - "node": ">= 0.6"
3043 - }
3044 - },
3045 - "node_modules/acorn": {
3046 - "version": "8.11.3",
3047 - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
3048 - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
3049 - "bin": {
3050 - "acorn": "bin/acorn"
3051 - },
3052 - "engines": {
3053 - "node": ">=0.4.0"
3054 - }
3055 - },
3056 - "node_modules/acorn-jsx": {
3057 - "version": "5.3.2",
3058 - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
3059 - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
3060 - "peerDependencies": {
3061 - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
3062 - }
3063 - },
3064 - "node_modules/acorn-walk": {
3065 - "version": "8.3.2",
3066 - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz",
3067 - "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==",
3068 - "dev": true,
3069 - "engines": {
3070 - "node": ">=0.4.0"
3071 - }
3072 - },
3073 - "node_modules/agent-base": {
3074 - "version": "7.1.1",
3075 - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz",
3076 - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==",
3077 - "dev": true,
3078 - "dependencies": {
3079 - "debug": "^4.3.4"
3080 - },
3081 - "engines": {
3082 - "node": ">= 14"
3083 - }
3084 - },
3085 - "node_modules/aggregate-error": {
3086 - "version": "3.1.0",
3087 - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
3088 - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
3089 - "dev": true,
3090 - "dependencies": {
3091 - "clean-stack": "^2.0.0",
3092 - "indent-string": "^4.0.0"
3093 - },
3094 - "engines": {
3095 - "node": ">=8"
3096 - }
3097 - },
3098 - "node_modules/ajv": {
3099 - "version": "6.12.6",
3100 - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
3101 - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
3102 - "dependencies": {
3103 - "fast-deep-equal": "^3.1.1",
3104 - "fast-json-stable-stringify": "^2.0.0",
3105 - "json-schema-traverse": "^0.4.1",
3106 - "uri-js": "^4.2.2"
3107 - },
3108 - "funding": {
3109 - "type": "github",
3110 - "url": "https://github.com/sponsors/epoberezkin"
3111 - }
3112 - },
3113 - "node_modules/ansi-colors": {
3114 - "version": "4.1.3",
3115 - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz",
3116 - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==",
3117 - "dev": true,
3118 - "engines": {
3119 - "node": ">=6"
3120 - }
3121 - },
3122 - "node_modules/ansi-escapes": {
3123 - "version": "4.3.2",
3124 - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
3125 - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
3126 - "dev": true,
3127 - "dependencies": {
3128 - "type-fest": "^0.21.3"
3129 - },
3130 - "engines": {
3131 - "node": ">=8"
3132 - },
3133 - "funding": {
3134 - "url": "https://github.com/sponsors/sindresorhus"
3135 - }
3136 - },
3137 - "node_modules/ansi-escapes/node_modules/type-fest": {
3138 - "version": "0.21.3",
3139 - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
3140 - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
3141 - "dev": true,
3142 - "engines": {
3143 - "node": ">=10"
3144 - },
3145 - "funding": {
3146 - "url": "https://github.com/sponsors/sindresorhus"
3147 - }
3148 - },
3149 - "node_modules/ansi-regex": {
3150 - "version": "5.0.1",
3151 - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
3152 - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
3153 - "engines": {
3154 - "node": ">=8"
3155 - }
3156 - },
3157 - "node_modules/ansi-styles": {
3158 - "version": "3.2.1",
3159 - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
3160 - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
3161 - "dev": true,
3162 - "dependencies": {
3163 - "color-convert": "^1.9.0"
3164 - },
3165 - "engines": {
3166 - "node": ">=4"
3167 - }
3168 - },
3169 - "node_modules/any-promise": {
3170 - "version": "1.3.0",
3171 - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
3172 - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
3173 - "dev": true
3174 - },
3175 - "node_modules/anymatch": {
3176 - "version": "3.1.3",
3177 - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
3178 - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
3179 - "dev": true,
3180 - "dependencies": {
3181 - "normalize-path": "^3.0.0",
3182 - "picomatch": "^2.0.4"
3183 - },
3184 - "engines": {
3185 - "node": ">= 8"
3186 - }
3187 - },
3188 - "node_modules/apexcharts": {
3189 - "version": "3.49.1",
3190 - "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-3.49.1.tgz",
3191 - "integrity": "sha512-MqGtlq/KQuO8j0BBsUJYlRG8VBctKwYdwuBtajHgHTmSgUU3Oai+8oYN/rKCXwXzrUlYA+GiMgotAIbXY2BCGw==",
3192 - "dependencies": {
3193 - "@yr/monotone-cubic-spline": "^1.0.3",
3194 - "svg.draggable.js": "^2.2.2",
3195 - "svg.easing.js": "^2.0.0",
3196 - "svg.filter.js": "^2.0.2",
3197 - "svg.pathmorphing.js": "^0.1.3",
3198 - "svg.resize.js": "^1.4.3",
3199 - "svg.select.js": "^3.0.1"
3200 - }
3201 - },
3202 - "node_modules/arch": {
3203 - "version": "2.2.0",
3204 - "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz",
3205 - "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==",
3206 - "dev": true,
3207 - "funding": [
3208 - {
3209 - "type": "github",
3210 - "url": "https://github.com/sponsors/feross"
3211 - },
3212 - {
3213 - "type": "patreon",
3214 - "url": "https://www.patreon.com/feross"
3215 - },
3216 - {
3217 - "type": "consulting",
3218 - "url": "https://feross.org/support"
3219 - }
3220 - ]
3221 - },
3222 - "node_modules/arg": {
3223 - "version": "5.0.2",
3224 - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
3225 - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
3226 - "dev": true
3227 - },
3228 - "node_modules/argparse": {
3229 - "version": "2.0.1",
3230 - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
3231 - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
3232 - },
3233 - "node_modules/array-buffer-byte-length": {
3234 - "version": "1.0.1",
3235 - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz",
3236 - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==",
3237 - "dev": true,
3238 - "dependencies": {
3239 - "call-bind": "^1.0.5",
3240 - "is-array-buffer": "^3.0.4"
3241 - },
3242 - "engines": {
3243 - "node": ">= 0.4"
3244 - },
3245 - "funding": {
3246 - "url": "https://github.com/sponsors/ljharb"
3247 - }
3248 - },
3249 - "node_modules/array-union": {
3250 - "version": "2.1.0",
3251 - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
3252 - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
3253 - "engines": {
3254 - "node": ">=8"
3255 - }
3256 - },
3257 - "node_modules/arraybuffer.prototype.slice": {
3258 - "version": "1.0.3",
3259 - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz",
3260 - "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==",
3261 - "dev": true,
3262 - "dependencies": {
3263 - "array-buffer-byte-length": "^1.0.1",
3264 - "call-bind": "^1.0.5",
3265 - "define-properties": "^1.2.1",
3266 - "es-abstract": "^1.22.3",
3267 - "es-errors": "^1.2.1",
3268 - "get-intrinsic": "^1.2.3",
3269 - "is-array-buffer": "^3.0.4",
3270 - "is-shared-array-buffer": "^1.0.2"
3271 - },
3272 - "engines": {
3273 - "node": ">= 0.4"
3274 - },
3275 - "funding": {
3276 - "url": "https://github.com/sponsors/ljharb"
3277 - }
3278 - },
3279 - "node_modules/asn1": {
3280 - "version": "0.2.6",
3281 - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
3282 - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
3283 - "dev": true,
3284 - "dependencies": {
3285 - "safer-buffer": "~2.1.0"
3286 - }
3287 - },
3288 - "node_modules/assert-plus": {
3289 - "version": "1.0.0",
3290 - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
3291 - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
3292 - "dev": true,
3293 - "engines": {
3294 - "node": ">=0.8"
3295 - }
3296 - },
3297 - "node_modules/assertion-error": {
3298 - "version": "1.1.0",
3299 - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
3300 - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
3301 - "dev": true,
3302 - "engines": {
3303 - "node": "*"
3304 - }
3305 - },
3306 - "node_modules/astral-regex": {
3307 - "version": "2.0.0",
3308 - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
3309 - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
3310 - "dev": true,
3311 - "engines": {
3312 - "node": ">=8"
3313 - }
3314 - },
3315 - "node_modules/async": {
3316 - "version": "3.2.5",
3317 - "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz",
3318 - "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==",
3319 - "dev": true
3320 - },
3321 - "node_modules/async-validator": {
3322 - "version": "4.2.5",
3323 - "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz",
3324 - "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg=="
3325 - },
3326 - "node_modules/asynckit": {
3327 - "version": "0.4.0",
3328 - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
3329 - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
3330 - "dev": true
3331 - },
3332 - "node_modules/at-least-node": {
3333 - "version": "1.0.0",
3334 - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
3335 - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
3336 - "dev": true,
3337 - "engines": {
3338 - "node": ">= 4.0.0"
3339 - }
3340 - },
3341 - "node_modules/autoprefixer": {
3342 - "version": "10.4.19",
3343 - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz",
3344 - "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==",
3345 - "dev": true,
3346 - "funding": [
3347 - {
3348 - "type": "opencollective",
3349 - "url": "https://opencollective.com/postcss/"
3350 - },
3351 - {
3352 - "type": "tidelift",
3353 - "url": "https://tidelift.com/funding/github/npm/autoprefixer"
3354 - },
3355 - {
3356 - "type": "github",
3357 - "url": "https://github.com/sponsors/ai"
3358 - }
3359 - ],
3360 - "dependencies": {
3361 - "browserslist": "^4.23.0",
3362 - "caniuse-lite": "^1.0.30001599",
3363 - "fraction.js": "^4.3.7",
3364 - "normalize-range": "^0.1.2",
3365 - "picocolors": "^1.0.0",
3366 - "postcss-value-parser": "^4.2.0"
3367 - },
3368 - "bin": {
3369 - "autoprefixer": "bin/autoprefixer"
3370 - },
3371 - "engines": {
3372 - "node": "^10 || ^12 || >=14"
3373 - },
3374 - "peerDependencies": {
3375 - "postcss": "^8.1.0"
3376 - }
3377 - },
3378 - "node_modules/available-typed-arrays": {
3379 - "version": "1.0.7",
3380 - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
3381 - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
3382 - "dev": true,
3383 - "dependencies": {
3384 - "possible-typed-array-names": "^1.0.0"
3385 - },
3386 - "engines": {
3387 - "node": ">= 0.4"
3388 - },
3389 - "funding": {
3390 - "url": "https://github.com/sponsors/ljharb"
3391 - }
3392 - },
3393 - "node_modules/aws-sign2": {
3394 - "version": "0.7.0",
3395 - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
3396 - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==",
3397 - "dev": true,
3398 - "engines": {
3399 - "node": "*"
3400 - }
3401 - },
3402 - "node_modules/aws4": {
3403 - "version": "1.12.0",
3404 - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz",
3405 - "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==",
3406 - "dev": true
3407 - },
3408 - "node_modules/axios": {
3409 - "version": "1.7.1",
3410 - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.1.tgz",
3411 - "integrity": "sha512-+LV37nQcd1EpFalkXksWNBiA17NZ5m5/WspmHGmZmdx1qBOg/VNq/c4eRJiA9VQQHBOs+N0ZhhdU10h2TyNK7Q==",
3412 - "dev": true,
3413 - "dependencies": {
3414 - "follow-redirects": "^1.15.6",
3415 - "form-data": "^4.0.0",
3416 - "proxy-from-env": "^1.1.0"
3417 - }
3418 - },
3419 - "node_modules/axios/node_modules/form-data": {
3420 - "version": "4.0.0",
3421 - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
3422 - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
3423 - "dev": true,
3424 - "dependencies": {
3425 - "asynckit": "^0.4.0",
3426 - "combined-stream": "^1.0.8",
3427 - "mime-types": "^2.1.12"
3428 - },
3429 - "engines": {
3430 - "node": ">= 6"
3431 - }
3432 - },
3433 - "node_modules/axios/node_modules/proxy-from-env": {
3434 - "version": "1.1.0",
3435 - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
3436 - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
3437 - "dev": true
3438 - },
3439 - "node_modules/balanced-match": {
3440 - "version": "1.0.2",
3441 - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
3442 - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
3443 - },
3444 - "node_modules/base64-js": {
3445 - "version": "1.5.1",
3446 - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
3447 - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
3448 - "dev": true,
3449 - "funding": [
3450 - {
3451 - "type": "github",
3452 - "url": "https://github.com/sponsors/feross"
3453 - },
3454 - {
3455 - "type": "patreon",
3456 - "url": "https://www.patreon.com/feross"
3457 - },
3458 - {
3459 - "type": "consulting",
3460 - "url": "https://feross.org/support"
3461 - }
3462 - ]
3463 - },
3464 - "node_modules/bcrypt-pbkdf": {
3465 - "version": "1.0.2",
3466 - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
3467 - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==",
3468 - "dev": true,
3469 - "dependencies": {
3470 - "tweetnacl": "^0.14.3"
3471 - }
3472 - },
3473 - "node_modules/binary-extensions": {
3474 - "version": "2.3.0",
3475 - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
3476 - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
3477 - "dev": true,
3478 - "engines": {
3479 - "node": ">=8"
3480 - },
3481 - "funding": {
3482 - "url": "https://github.com/sponsors/sindresorhus"
3483 - }
3484 - },
3485 - "node_modules/blob-util": {
3486 - "version": "2.0.2",
3487 - "resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz",
3488 - "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==",
3489 - "dev": true
3490 - },
3491 - "node_modules/bluebird": {
3492 - "version": "3.7.2",
3493 - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
3494 - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
3495 - "dev": true
3496 - },
3497 - "node_modules/boolbase": {
3498 - "version": "1.0.0",
3499 - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
3500 - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="
3501 - },
3502 - "node_modules/brace-expansion": {
3503 - "version": "2.0.1",
3504 - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
3505 - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
3506 - "dependencies": {
3507 - "balanced-match": "^1.0.0"
3508 - }
3509 - },
3510 - "node_modules/braces": {
3511 - "version": "3.0.2",
3512 - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
3513 - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
3514 - "dependencies": {
3515 - "fill-range": "^7.0.1"
3516 - },
3517 - "engines": {
3518 - "node": ">=8"
3519 - }
3520 - },
3521 - "node_modules/browserslist": {
3522 - "version": "4.23.0",
3523 - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz",
3524 - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==",
3525 - "dev": true,
3526 - "funding": [
3527 - {
3528 - "type": "opencollective",
3529 - "url": "https://opencollective.com/browserslist"
3530 - },
3531 - {
3532 - "type": "tidelift",
3533 - "url": "https://tidelift.com/funding/github/npm/browserslist"
3534 - },
3535 - {
3536 - "type": "github",
3537 - "url": "https://github.com/sponsors/ai"
3538 - }
3539 - ],
3540 - "dependencies": {
3541 - "caniuse-lite": "^1.0.30001587",
3542 - "electron-to-chromium": "^1.4.668",
3543 - "node-releases": "^2.0.14",
3544 - "update-browserslist-db": "^1.0.13"
3545 - },
3546 - "bin": {
3547 - "browserslist": "cli.js"
3548 - },
3549 - "engines": {
3550 - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
3551 - }
3552 - },
3553 - "node_modules/buffer": {
3554 - "version": "5.7.1",
3555 - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
3556 - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
3557 - "dev": true,
3558 - "funding": [
3559 - {
3560 - "type": "github",
3561 - "url": "https://github.com/sponsors/feross"
3562 - },
3563 - {
3564 - "type": "patreon",
3565 - "url": "https://www.patreon.com/feross"
3566 - },
3567 - {
3568 - "type": "consulting",
3569 - "url": "https://feross.org/support"
3570 - }
3571 - ],
3572 - "dependencies": {
3573 - "base64-js": "^1.3.1",
3574 - "ieee754": "^1.1.13"
3575 - }
3576 - },
3577 - "node_modules/buffer-crc32": {
3578 - "version": "0.2.13",
3579 - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
3580 - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
3581 - "dev": true,
3582 - "engines": {
3583 - "node": "*"
3584 - }
3585 - },
3586 - "node_modules/bytes": {
3587 - "version": "3.1.2",
3588 - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
3589 - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
3590 - "engines": {
3591 - "node": ">= 0.8"
3592 - }
3593 - },
3594 - "node_modules/cac": {
3595 - "version": "6.7.14",
3596 - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz",
3597 - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==",
3598 - "dev": true,
3599 - "engines": {
3600 - "node": ">=8"
3601 - }
3602 - },
3603 - "node_modules/cache-content-type": {
3604 - "version": "1.0.1",
3605 - "resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz",
3606 - "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==",
3607 - "dev": true,
3608 - "dependencies": {
3609 - "mime-types": "^2.1.18",
3610 - "ylru": "^1.2.0"
3611 - },
3612 - "engines": {
3613 - "node": ">= 6.0.0"
3614 - }
3615 - },
3616 - "node_modules/cachedir": {
3617 - "version": "2.4.0",
3618 - "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.4.0.tgz",
3619 - "integrity": "sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==",
3620 - "dev": true,
3621 - "engines": {
3622 - "node": ">=6"
3623 - }
3624 - },
3625 - "node_modules/call-bind": {
3626 - "version": "1.0.7",
3627 - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
3628 - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
3629 - "dev": true,
3630 - "dependencies": {
3631 - "es-define-property": "^1.0.0",
3632 - "es-errors": "^1.3.0",
3633 - "function-bind": "^1.1.2",
3634 - "get-intrinsic": "^1.2.4",
3635 - "set-function-length": "^1.2.1"
3636 - },
3637 - "engines": {
3638 - "node": ">= 0.4"
3639 - },
3640 - "funding": {
3641 - "url": "https://github.com/sponsors/ljharb"
3642 - }
3643 - },
3644 - "node_modules/call-me-maybe": {
3645 - "version": "1.0.2",
3646 - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz",
3647 - "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==",
3648 - "dev": true
3649 - },
3650 - "node_modules/callsites": {
3651 - "version": "3.1.0",
3652 - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
3653 - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
3654 - "engines": {
3655 - "node": ">=6"
3656 - }
3657 - },
3658 - "node_modules/camelcase": {
3659 - "version": "6.3.0",
3660 - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
3661 - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
3662 - "dev": true,
3663 - "engines": {
3664 - "node": ">=10"
3665 - },
3666 - "funding": {
3667 - "url": "https://github.com/sponsors/sindresorhus"
3668 - }
3669 - },
3670 - "node_modules/camelcase-css": {
3671 - "version": "2.0.1",
3672 - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
3673 - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
3674 - "dev": true,
3675 - "engines": {
3676 - "node": ">= 6"
3677 - }
3678 - },
3679 - "node_modules/caniuse-lite": {
3680 - "version": "1.0.30001620",
3681 - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001620.tgz",
3682 - "integrity": "sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==",
3683 - "dev": true,
3684 - "funding": [
3685 - {
3686 - "type": "opencollective",
3687 - "url": "https://opencollective.com/browserslist"
3688 - },
3689 - {
3690 - "type": "tidelift",
3691 - "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
3692 - },
3693 - {
3694 - "type": "github",
3695 - "url": "https://github.com/sponsors/ai"
3696 - }
3697 - ]
3698 - },
3699 - "node_modules/caseless": {
3700 - "version": "0.12.0",
3701 - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
3702 - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==",
3703 - "dev": true
3704 - },
3705 - "node_modules/chai": {
3706 - "version": "4.4.1",
3707 - "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz",
3708 - "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==",
3709 - "dev": true,
3710 - "dependencies": {
3711 - "assertion-error": "^1.1.0",
3712 - "check-error": "^1.0.3",
3713 - "deep-eql": "^4.1.3",
3714 - "get-func-name": "^2.0.2",
3715 - "loupe": "^2.3.6",
3716 - "pathval": "^1.1.1",
3717 - "type-detect": "^4.0.8"
3718 - },
3719 - "engines": {
3720 - "node": ">=4"
3721 - }
3722 - },
3723 - "node_modules/chalk": {
3724 - "version": "2.4.2",
3725 - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
3726 - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
3727 - "dev": true,
3728 - "dependencies": {
3729 - "ansi-styles": "^3.2.1",
3730 - "escape-string-regexp": "^1.0.5",
3731 - "supports-color": "^5.3.0"
3732 - },
3733 - "engines": {
3734 - "node": ">=4"
3735 - }
3736 - },
3737 - "node_modules/check-error": {
3738 - "version": "1.0.3",
3739 - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz",
3740 - "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==",
3741 - "dev": true,
3742 - "dependencies": {
3743 - "get-func-name": "^2.0.2"
3744 - },
3745 - "engines": {
3746 - "node": "*"
3747 - }
3748 - },
3749 - "node_modules/check-more-types": {
3750 - "version": "2.24.0",
3751 - "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz",
3752 - "integrity": "sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==",
3753 - "dev": true,
3754 - "engines": {
3755 - "node": ">= 0.8.0"
3756 - }
3757 - },
3758 - "node_modules/chokidar": {
3759 - "version": "3.6.0",
3760 - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
3761 - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
3762 - "dev": true,
3763 - "dependencies": {
3764 - "anymatch": "~3.1.2",
3765 - "braces": "~3.0.2",
3766 - "glob-parent": "~5.1.2",
3767 - "is-binary-path": "~2.1.0",
3768 - "is-glob": "~4.0.1",
3769 - "normalize-path": "~3.0.0",
3770 - "readdirp": "~3.6.0"
3771 - },
3772 - "engines": {
3773 - "node": ">= 8.10.0"
3774 - },
3775 - "funding": {
3776 - "url": "https://paulmillr.com/funding/"
3777 - },
3778 - "optionalDependencies": {
3779 - "fsevents": "~2.3.2"
3780 - }
3781 - },
3782 - "node_modules/chokidar/node_modules/glob-parent": {
3783 - "version": "5.1.2",
3784 - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
3785 - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
3786 - "dev": true,
3787 - "dependencies": {
3788 - "is-glob": "^4.0.1"
3789 - },
3790 - "engines": {
3791 - "node": ">= 6"
3792 - }
3793 - },
3794 - "node_modules/ci-info": {
3795 - "version": "3.9.0",
3796 - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
3797 - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
3798 - "dev": true,
3799 - "funding": [
3800 - {
3801 - "type": "github",
3802 - "url": "https://github.com/sponsors/sibiraj-s"
3803 - }
3804 - ],
3805 - "engines": {
3806 - "node": ">=8"
3807 - }
3808 - },
3809 - "node_modules/classnames": {
3810 - "version": "2.5.1",
3811 - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz",
3812 - "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow=="
3813 - },
3814 - "node_modules/clean-stack": {
3815 - "version": "2.2.0",
3816 - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
3817 - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
3818 - "dev": true,
3819 - "engines": {
3820 - "node": ">=6"
3821 - }
3822 - },
3823 - "node_modules/cli-cursor": {
3824 - "version": "3.1.0",
3825 - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
3826 - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
3827 - "dev": true,
3828 - "dependencies": {
3829 - "restore-cursor": "^3.1.0"
3830 - },
3831 - "engines": {
3832 - "node": ">=8"
3833 - }
3834 - },
3835 - "node_modules/cli-progress": {
3836 - "version": "3.12.0",
3837 - "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.12.0.tgz",
3838 - "integrity": "sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==",
3839 - "dev": true,
3840 - "dependencies": {
3841 - "string-width": "^4.2.3"
3842 - },
3843 - "engines": {
3844 - "node": ">=4"
3845 - }
3846 - },
3847 - "node_modules/cli-table3": {
3848 - "version": "0.6.5",
3849 - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz",
3850 - "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==",
3851 - "dev": true,
3852 - "dependencies": {
3853 - "string-width": "^4.2.0"
3854 - },
3855 - "engines": {
3856 - "node": "10.* || >= 12.*"
3857 - },
3858 - "optionalDependencies": {
3859 - "@colors/colors": "1.5.0"
3860 - }
3861 - },
3862 - "node_modules/cli-truncate": {
3863 - "version": "2.1.0",
3864 - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz",
3865 - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==",
3866 - "dev": true,
3867 - "dependencies": {
3868 - "slice-ansi": "^3.0.0",
3869 - "string-width": "^4.2.0"
3870 - },
3871 - "engines": {
3872 - "node": ">=8"
3873 - },
3874 - "funding": {
3875 - "url": "https://github.com/sponsors/sindresorhus"
3876 - }
3877 - },
3878 - "node_modules/cliui": {
3879 - "version": "8.0.1",
3880 - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
3881 - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
3882 - "dev": true,
3883 - "dependencies": {
3884 - "string-width": "^4.2.0",
3885 - "strip-ansi": "^6.0.1",
3886 - "wrap-ansi": "^7.0.0"
3887 - },
3888 - "engines": {
3889 - "node": ">=12"
3890 - }
3891 - },
3892 - "node_modules/cliui/node_modules/ansi-styles": {
3893 - "version": "4.3.0",
3894 - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
3895 - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
3896 - "dev": true,
3897 - "dependencies": {
3898 - "color-convert": "^2.0.1"
3899 - },
3900 - "engines": {
3901 - "node": ">=8"
3902 - },
3903 - "funding": {
3904 - "url": "https://github.com/chalk/ansi-styles?sponsor=1"
3905 - }
3906 - },
3907 - "node_modules/cliui/node_modules/color-convert": {
3908 - "version": "2.0.1",
3909 - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
3910 - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
3911 - "dev": true,
3912 - "dependencies": {
3913 - "color-name": "~1.1.4"
3914 - },
3915 - "engines": {
3916 - "node": ">=7.0.0"
3917 - }
3918 - },
3919 - "node_modules/cliui/node_modules/color-name": {
3920 - "version": "1.1.4",
3921 - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
3922 - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
3923 - "dev": true
3924 - },
3925 - "node_modules/cliui/node_modules/wrap-ansi": {
3926 - "version": "7.0.0",
3927 - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
3928 - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
3929 - "dev": true,
3930 - "dependencies": {
3931 - "ansi-styles": "^4.0.0",
3932 - "string-width": "^4.1.0",
3933 - "strip-ansi": "^6.0.0"
3934 - },
3935 - "engines": {
3936 - "node": ">=10"
3937 - },
3938 - "funding": {
3939 - "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
3940 - }
3941 - },
3942 - "node_modules/co": {
3943 - "version": "4.6.0",
3944 - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
3945 - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
3946 - "dev": true,
3947 - "engines": {
3948 - "iojs": ">= 1.0.0",
3949 - "node": ">= 0.12.0"
3950 - }
3951 - },
3952 - "node_modules/color-convert": {
3953 - "version": "1.9.3",
3954 - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
3955 - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
3956 - "dev": true,
3957 - "dependencies": {
3958 - "color-name": "1.1.3"
3959 - }
3960 - },
3961 - "node_modules/color-name": {
3962 - "version": "1.1.3",
3963 - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
3964 - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
3965 - "dev": true
3966 - },
3967 - "node_modules/colord": {
3968 - "version": "2.9.3",
3969 - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz",
3970 - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw=="
3971 - },
3972 - "node_modules/colorette": {
3973 - "version": "2.0.20",
3974 - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
3975 - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
3976 - "dev": true
3977 - },
3978 - "node_modules/combined-stream": {
3979 - "version": "1.0.8",
3980 - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
3981 - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
3982 - "dev": true,
3983 - "dependencies": {
3984 - "delayed-stream": "~1.0.0"
3985 - },
3986 - "engines": {
3987 - "node": ">= 0.8"
3988 - }
3989 - },
3990 - "node_modules/commander": {
3991 - "version": "6.2.1",
3992 - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz",
3993 - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==",
3994 - "dev": true,
3995 - "engines": {
3996 - "node": ">= 6"
3997 - }
3998 - },
3999 - "node_modules/common-tags": {
4000 - "version": "1.8.2",
4001 - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz",
4002 - "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==",
4003 - "dev": true,
4004 - "engines": {
4005 - "node": ">=4.0.0"
4006 - }
4007 - },
4008 - "node_modules/computeds": {
4009 - "version": "0.0.1",
4010 - "resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz",
4011 - "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==",
4012 - "dev": true
4013 - },
4014 - "node_modules/concat-map": {
4015 - "version": "0.0.1",
4016 - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
4017 - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
4018 - },
4019 - "node_modules/confbox": {
4020 - "version": "0.1.7",
4021 - "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.7.tgz",
4022 - "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==",
4023 - "dev": true
4024 - },
4025 - "node_modules/config-chain": {
4026 - "version": "1.1.13",
4027 - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz",
4028 - "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==",
4029 - "dev": true,
4030 - "dependencies": {
4031 - "ini": "^1.3.4",
4032 - "proto-list": "~1.2.1"
4033 - }
4034 - },
4035 - "node_modules/config-chain/node_modules/ini": {
4036 - "version": "1.3.8",
4037 - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
4038 - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
4039 - "dev": true
4040 - },
4041 - "node_modules/content-disposition": {
4042 - "version": "0.5.4",
4043 - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
4044 - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
4045 - "dev": true,
4046 - "dependencies": {
4047 - "safe-buffer": "5.2.1"
4048 - },
4049 - "engines": {
4050 - "node": ">= 0.6"
4051 - }
4052 - },
4053 - "node_modules/content-type": {
4054 - "version": "1.0.5",
4055 - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
4056 - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
4057 - "dev": true,
4058 - "engines": {
4059 - "node": ">= 0.6"
4060 - }
4061 - },
4062 - "node_modules/convert-source-map": {
4063 - "version": "2.0.0",
4064 - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
4065 - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
4066 - "dev": true
4067 - },
4068 - "node_modules/cookies": {
4069 - "version": "0.9.1",
4070 - "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.9.1.tgz",
4071 - "integrity": "sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==",
4072 - "dev": true,
4073 - "dependencies": {
4074 - "depd": "~2.0.0",
4075 - "keygrip": "~1.1.0"
4076 - },
4077 - "engines": {
4078 - "node": ">= 0.8"
4079 - }
4080 - },
4081 - "node_modules/core-util-is": {
4082 - "version": "1.0.2",
4083 - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
4084 - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==",
4085 - "dev": true
4086 - },
4087 - "node_modules/cross-spawn": {
4088 - "version": "7.0.3",
4089 - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
4090 - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
4091 - "dependencies": {
4092 - "path-key": "^3.1.0",
4093 - "shebang-command": "^2.0.0",
4094 - "which": "^2.0.1"
4095 - },
4096 - "engines": {
4097 - "node": ">= 8"
4098 - }
4099 - },
4100 - "node_modules/crypto-js": {
4101 - "version": "4.2.0",
4102 - "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz",
4103 - "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q=="
4104 - },
4105 - "node_modules/css-render": {
4106 - "version": "0.15.14",
4107 - "resolved": "https://registry.npmjs.org/css-render/-/css-render-0.15.14.tgz",
4108 - "integrity": "sha512-9nF4PdUle+5ta4W5SyZdLCCmFd37uVimSjg1evcTqKJCyvCEEj12WKzOSBNak6r4im4J4iYXKH1OWpUV5LBYFg==",
4109 - "dependencies": {
4110 - "@emotion/hash": "~0.8.0",
4111 - "csstype": "~3.0.5"
4112 - }
4113 - },
4114 - "node_modules/css-render/node_modules/csstype": {
4115 - "version": "3.0.11",
4116 - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.11.tgz",
4117 - "integrity": "sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw=="
4118 - },
4119 - "node_modules/css-select": {
4120 - "version": "5.1.0",
4121 - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz",
4122 - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==",
4123 - "dev": true,
4124 - "dependencies": {
4125 - "boolbase": "^1.0.0",
4126 - "css-what": "^6.1.0",
4127 - "domhandler": "^5.0.2",
4128 - "domutils": "^3.0.1",
4129 - "nth-check": "^2.0.1"
4130 - },
4131 - "funding": {
4132 - "url": "https://github.com/sponsors/fb55"
4133 - }
4134 - },
4135 - "node_modules/css-tree": {
4136 - "version": "2.3.1",
4137 - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz",
4138 - "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==",
4139 - "dev": true,
4140 - "dependencies": {
4141 - "mdn-data": "2.0.30",
4142 - "source-map-js": "^1.0.1"
4143 - },
4144 - "engines": {
4145 - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
4146 - }
4147 - },
4148 - "node_modules/css-what": {
4149 - "version": "6.1.0",
4150 - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
4151 - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
4152 - "dev": true,
4153 - "engines": {
4154 - "node": ">= 6"
4155 - },
4156 - "funding": {
4157 - "url": "https://github.com/sponsors/fb55"
4158 - }
4159 - },
4160 - "node_modules/cssesc": {
4161 - "version": "3.0.0",
4162 - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
4163 - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
4164 - "bin": {
4165 - "cssesc": "bin/cssesc"
4166 - },
4167 - "engines": {
4168 - "node": ">=4"
4169 - }
4170 - },
4171 - "node_modules/csso": {
4172 - "version": "5.0.5",
4173 - "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz",
4174 - "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==",
4175 - "dev": true,
4176 - "dependencies": {
4177 - "css-tree": "~2.2.0"
4178 - },
4179 - "engines": {
4180 - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0",
4181 - "npm": ">=7.0.0"
4182 - }
4183 - },
4184 - "node_modules/csso/node_modules/css-tree": {
4185 - "version": "2.2.1",
4186 - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz",
4187 - "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==",
4188 - "dev": true,
4189 - "dependencies": {
4190 - "mdn-data": "2.0.28",
4191 - "source-map-js": "^1.0.1"
4192 - },
4193 - "engines": {
4194 - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0",
4195 - "npm": ">=7.0.0"
4196 - }
4197 - },
4198 - "node_modules/csso/node_modules/mdn-data": {
4199 - "version": "2.0.28",
4200 - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz",
4201 - "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==",
4202 - "dev": true
4203 - },
4204 - "node_modules/cssstyle": {
4205 - "version": "4.0.1",
4206 - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.0.1.tgz",
4207 - "integrity": "sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==",
4208 - "dev": true,
4209 - "dependencies": {
4210 - "rrweb-cssom": "^0.6.0"
4211 - },
4212 - "engines": {
4213 - "node": ">=18"
4214 - }
4215 - },
4216 - "node_modules/csstype": {
4217 - "version": "3.1.3",
4218 - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
4219 - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
4220 - },
4221 - "node_modules/cypress": {
4222 - "version": "13.10.0",
4223 - "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.10.0.tgz",
4224 - "integrity": "sha512-tOhwRlurVOQbMduX+KonoMeQILs2cwR3yHGGENoFvvSoLUBHmJ8b9/n21gFSDqjlOJ+SRVcwuh+fG/JDsHsT6Q==",
4225 - "dev": true,
4226 - "hasInstallScript": true,
4227 - "dependencies": {
4228 - "@cypress/request": "^3.0.0",
4229 - "@cypress/xvfb": "^1.2.4",
4230 - "@types/sinonjs__fake-timers": "8.1.1",
4231 - "@types/sizzle": "^2.3.2",
4232 - "arch": "^2.2.0",
4233 - "blob-util": "^2.0.2",
4234 - "bluebird": "^3.7.2",
4235 - "buffer": "^5.7.1",
4236 - "cachedir": "^2.3.0",
4237 - "chalk": "^4.1.0",
4238 - "check-more-types": "^2.24.0",
4239 - "cli-cursor": "^3.1.0",
4240 - "cli-table3": "~0.6.1",
4241 - "commander": "^6.2.1",
4242 - "common-tags": "^1.8.0",
4243 - "dayjs": "^1.10.4",
4244 - "debug": "^4.3.4",
4245 - "enquirer": "^2.3.6",
4246 - "eventemitter2": "6.4.7",
4247 - "execa": "4.1.0",
4248 - "executable": "^4.1.1",
4249 - "extract-zip": "2.0.1",
4250 - "figures": "^3.2.0",
4251 - "fs-extra": "^9.1.0",
4252 - "getos": "^3.2.1",
4253 - "is-ci": "^3.0.1",
4254 - "is-installed-globally": "~0.4.0",
4255 - "lazy-ass": "^1.6.0",
4256 - "listr2": "^3.8.3",
4257 - "lodash": "^4.17.21",
4258 - "log-symbols": "^4.0.0",
4259 - "minimist": "^1.2.8",
4260 - "ospath": "^1.2.2",
4261 - "pretty-bytes": "^5.6.0",
4262 - "process": "^0.11.10",
4263 - "proxy-from-env": "1.0.0",
4264 - "request-progress": "^3.0.0",
4265 - "semver": "^7.5.3",
4266 - "supports-color": "^8.1.1",
4267 - "tmp": "~0.2.1",
4268 - "untildify": "^4.0.0",
4269 - "yauzl": "^2.10.0"
4270 - },
4271 - "bin": {
4272 - "cypress": "bin/cypress"
4273 - },
4274 - "engines": {
4275 - "node": "^16.0.0 || ^18.0.0 || >=20.0.0"
4276 - }
4277 - },
4278 - "node_modules/cypress/node_modules/ansi-styles": {
4279 - "version": "4.3.0",
4280 - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
4281 - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
4282 - "dev": true,
4283 - "dependencies": {
4284 - "color-convert": "^2.0.1"
4285 - },
4286 - "engines": {
4287 - "node": ">=8"
4288 - },
4289 - "funding": {
4290 - "url": "https://github.com/chalk/ansi-styles?sponsor=1"
4291 - }
4292 - },
4293 - "node_modules/cypress/node_modules/chalk": {
4294 - "version": "4.1.2",
4295 - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
4296 - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
4297 - "dev": true,
4298 - "dependencies": {
4299 - "ansi-styles": "^4.1.0",
4300 - "supports-color": "^7.1.0"
4301 - },
4302 - "engines": {
4303 - "node": ">=10"
4304 - },
4305 - "funding": {
4306 - "url": "https://github.com/chalk/chalk?sponsor=1"
4307 - }
4308 - },
4309 - "node_modules/cypress/node_modules/chalk/node_modules/supports-color": {
4310 - "version": "7.2.0",
4311 - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
4312 - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
4313 - "dev": true,
4314 - "dependencies": {
4315 - "has-flag": "^4.0.0"
4316 - },
4317 - "engines": {
4318 - "node": ">=8"
4319 - }
4320 - },
4321 - "node_modules/cypress/node_modules/color-convert": {
4322 - "version": "2.0.1",
4323 - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
4324 - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
4325 - "dev": true,
4326 - "dependencies": {
4327 - "color-name": "~1.1.4"
4328 - },
4329 - "engines": {
4330 - "node": ">=7.0.0"
4331 - }
4332 - },
4333 - "node_modules/cypress/node_modules/color-name": {
4334 - "version": "1.1.4",
4335 - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
4336 - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
4337 - "dev": true
4338 - },
4339 - "node_modules/cypress/node_modules/fs-extra": {
4340 - "version": "9.1.0",
4341 - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
4342 - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
4343 - "dev": true,
4344 - "dependencies": {
4345 - "at-least-node": "^1.0.0",
4346 - "graceful-fs": "^4.2.0",
4347 - "jsonfile": "^6.0.1",
4348 - "universalify": "^2.0.0"
4349 - },
4350 - "engines": {
4351 - "node": ">=10"
4352 - }
4353 - },
4354 - "node_modules/cypress/node_modules/has-flag": {
4355 - "version": "4.0.0",
4356 - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
4357 - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
4358 - "dev": true,
4359 - "engines": {
4360 - "node": ">=8"
4361 - }
4362 - },
4363 - "node_modules/cypress/node_modules/supports-color": {
4364 - "version": "8.1.1",
4365 - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
4366 - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
4367 - "dev": true,
4368 - "dependencies": {
4369 - "has-flag": "^4.0.0"
4370 - },
4371 - "engines": {
4372 - "node": ">=10"
4373 - },
4374 - "funding": {
4375 - "url": "https://github.com/chalk/supports-color?sponsor=1"
4376 - }
4377 - },
4378 - "node_modules/dashdash": {
4379 - "version": "1.14.1",
4380 - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
4381 - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==",
4382 - "dev": true,
4383 - "dependencies": {
4384 - "assert-plus": "^1.0.0"
4385 - },
4386 - "engines": {
4387 - "node": ">=0.10"
4388 - }
4389 - },
4390 - "node_modules/data-urls": {
4391 - "version": "5.0.0",
4392 - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz",
4393 - "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==",
4394 - "dev": true,
4395 - "dependencies": {
4396 - "whatwg-mimetype": "^4.0.0",
4397 - "whatwg-url": "^14.0.0"
4398 - },
4399 - "engines": {
4400 - "node": ">=18"
4401 - }
4402 - },
4403 - "node_modules/data-view-buffer": {
4404 - "version": "1.0.1",
4405 - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz",
4406 - "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==",
4407 - "dev": true,
4408 - "dependencies": {
4409 - "call-bind": "^1.0.6",
4410 - "es-errors": "^1.3.0",
4411 - "is-data-view": "^1.0.1"
4412 - },
4413 - "engines": {
4414 - "node": ">= 0.4"
4415 - },
4416 - "funding": {
4417 - "url": "https://github.com/sponsors/ljharb"
4418 - }
4419 - },
4420 - "node_modules/data-view-byte-length": {
4421 - "version": "1.0.1",
4422 - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz",
4423 - "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==",
4424 - "dev": true,
4425 - "dependencies": {
4426 - "call-bind": "^1.0.7",
4427 - "es-errors": "^1.3.0",
4428 - "is-data-view": "^1.0.1"
4429 - },
4430 - "engines": {
4431 - "node": ">= 0.4"
4432 - },
4433 - "funding": {
4434 - "url": "https://github.com/sponsors/ljharb"
4435 - }
4436 - },
4437 - "node_modules/data-view-byte-offset": {
4438 - "version": "1.0.0",
4439 - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz",
4440 - "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==",
4441 - "dev": true,
4442 - "dependencies": {
4443 - "call-bind": "^1.0.6",
4444 - "es-errors": "^1.3.0",
4445 - "is-data-view": "^1.0.1"
4446 - },
4447 - "engines": {
4448 - "node": ">= 0.4"
4449 - },
4450 - "funding": {
4451 - "url": "https://github.com/sponsors/ljharb"
4452 - }
4453 - },
4454 - "node_modules/date-fns": {
4455 - "version": "2.30.0",
4456 - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz",
4457 - "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==",
4458 - "dependencies": {
4459 - "@babel/runtime": "^7.21.0"
4460 - },
4461 - "engines": {
4462 - "node": ">=0.11"
4463 - },
4464 - "funding": {
4465 - "type": "opencollective",
4466 - "url": "https://opencollective.com/date-fns"
4467 - }
4468 - },
4469 - "node_modules/date-fns-tz": {
4470 - "version": "2.0.1",
4471 - "resolved": "https://registry.npmjs.org/date-fns-tz/-/date-fns-tz-2.0.1.tgz",
4472 - "integrity": "sha512-fJCG3Pwx8HUoLhkepdsP7Z5RsucUi+ZBOxyM5d0ZZ6c4SdYustq0VMmOu6Wf7bli+yS/Jwp91TOCqn9jMcVrUA==",
4473 - "peerDependencies": {
4474 - "date-fns": "2.x"
4475 - }
4476 - },
4477 - "node_modules/dayjs": {
4478 - "version": "1.11.11",
4479 - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.11.tgz",
4480 - "integrity": "sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg=="
4481 - },
4482 - "node_modules/de-indent": {
4483 - "version": "1.0.2",
4484 - "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz",
4485 - "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==",
4486 - "dev": true
4487 - },
4488 - "node_modules/debounce": {
4489 - "version": "1.2.1",
4490 - "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz",
4491 - "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug=="
4492 - },
4493 - "node_modules/debug": {
4494 - "version": "4.3.4",
4495 - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
4496 - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
4497 - "dependencies": {
4498 - "ms": "2.1.2"
4499 - },
4500 - "engines": {
4501 - "node": ">=6.0"
4502 - },
4503 - "peerDependenciesMeta": {
4504 - "supports-color": {
4505 - "optional": true
4506 - }
4507 - }
4508 - },
4509 - "node_modules/decimal.js": {
4510 - "version": "10.4.3",
4511 - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz",
4512 - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==",
4513 - "dev": true
4514 - },
4515 - "node_modules/deep-eql": {
4516 - "version": "4.1.3",
4517 - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz",
4518 - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==",
4519 - "dev": true,
4520 - "dependencies": {
4521 - "type-detect": "^4.0.0"
4522 - },
4523 - "engines": {
4524 - "node": ">=6"
4525 - }
4526 - },
4527 - "node_modules/deep-equal": {
4528 - "version": "1.0.1",
4529 - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
4530 - "integrity": "sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==",
4531 - "dev": true
4532 - },
4533 - "node_modules/deep-is": {
4534 - "version": "0.1.4",
4535 - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
4536 - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
4537 - },
4538 - "node_modules/deepmerge": {
4539 - "version": "4.3.1",
4540 - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
4541 - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
4542 - "dev": true,
4543 - "engines": {
4544 - "node": ">=0.10.0"
4545 - }
4546 - },
4547 - "node_modules/define-data-property": {
4548 - "version": "1.1.4",
4549 - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
4550 - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
4551 - "dev": true,
4552 - "dependencies": {
4553 - "es-define-property": "^1.0.0",
4554 - "es-errors": "^1.3.0",
4555 - "gopd": "^1.0.1"
4556 - },
4557 - "engines": {
4558 - "node": ">= 0.4"
4559 - },
4560 - "funding": {
4561 - "url": "https://github.com/sponsors/ljharb"
4562 - }
4563 - },
4564 - "node_modules/define-lazy-prop": {
4565 - "version": "2.0.0",
4566 - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz",
4567 - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==",
4568 - "dev": true,
4569 - "engines": {
4570 - "node": ">=8"
4571 - }
4572 - },
4573 - "node_modules/define-properties": {
4574 - "version": "1.2.1",
4575 - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
4576 - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
4577 - "dev": true,
4578 - "dependencies": {
4579 - "define-data-property": "^1.0.1",
4580 - "has-property-descriptors": "^1.0.0",
4581 - "object-keys": "^1.1.1"
4582 - },
4583 - "engines": {
4584 - "node": ">= 0.4"
4585 - },
4586 - "funding": {
4587 - "url": "https://github.com/sponsors/ljharb"
4588 - }
4589 - },
4590 - "node_modules/defu": {
4591 - "version": "6.1.4",
4592 - "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz",
4593 - "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg=="
4594 - },
4595 - "node_modules/delayed-stream": {
4596 - "version": "1.0.0",
4597 - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
4598 - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
4599 - "dev": true,
4600 - "engines": {
4601 - "node": ">=0.4.0"
4602 - }
4603 - },
4604 - "node_modules/delegates": {
4605 - "version": "1.0.0",
4606 - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
4607 - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==",
4608 - "dev": true
4609 - },
4610 - "node_modules/depd": {
4611 - "version": "2.0.0",
4612 - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
4613 - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
4614 - "dev": true,
4615 - "engines": {
4616 - "node": ">= 0.8"
4617 - }
4618 - },
4619 - "node_modules/destroy": {
4620 - "version": "1.2.0",
4621 - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
4622 - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
4623 - "dev": true,
4624 - "engines": {
4625 - "node": ">= 0.8",
4626 - "npm": "1.2.8000 || >= 1.4.16"
4627 - }
4628 - },
4629 - "node_modules/detect-indent": {
4630 - "version": "7.0.1",
4631 - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-7.0.1.tgz",
4632 - "integrity": "sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==",
4633 - "dev": true,
4634 - "engines": {
4635 - "node": ">=12.20"
4636 - }
4637 - },
4638 - "node_modules/detect-touch-device": {
4639 - "version": "1.1.6",
4640 - "resolved": "https://registry.npmjs.org/detect-touch-device/-/detect-touch-device-1.1.6.tgz",
4641 - "integrity": "sha512-9DYLJE05EFGI9f8m/GyJtWjw7aMZMBQM2QVy6bb7zX8uC3iorOE3Erdrk3TWCj5FVOlHTfinU0bATTE9GWYebw=="
4642 - },
4643 - "node_modules/didyoumean": {
4644 - "version": "1.2.2",
4645 - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
4646 - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
4647 - "dev": true
4648 - },
4649 - "node_modules/diff-sequences": {
4650 - "version": "29.6.3",
4651 - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz",
4652 - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==",
4653 - "dev": true,
4654 - "engines": {
4655 - "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
4656 - }
4657 - },
4658 - "node_modules/dir-glob": {
4659 - "version": "3.0.1",
4660 - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
4661 - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
4662 - "dependencies": {
4663 - "path-type": "^4.0.0"
4664 - },
4665 - "engines": {
4666 - "node": ">=8"
4667 - }
4668 - },
4669 - "node_modules/dlv": {
4670 - "version": "1.1.3",
4671 - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
4672 - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
4673 - "dev": true
4674 - },
4675 - "node_modules/doctrine": {
4676 - "version": "3.0.0",
4677 - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
4678 - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
4679 - "dependencies": {
4680 - "esutils": "^2.0.2"
4681 - },
4682 - "engines": {
4683 - "node": ">=6.0.0"
4684 - }
4685 - },
4686 - "node_modules/dom-serializer": {
4687 - "version": "2.0.0",
4688 - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
4689 - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
4690 - "dev": true,
4691 - "dependencies": {
4692 - "domelementtype": "^2.3.0",
4693 - "domhandler": "^5.0.2",
4694 - "entities": "^4.2.0"
4695 - },
4696 - "funding": {
4697 - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
4698 - }
4699 - },
4700 - "node_modules/domelementtype": {
4701 - "version": "2.3.0",
4702 - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
4703 - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
4704 - "dev": true,
4705 - "funding": [
4706 - {
4707 - "type": "github",
4708 - "url": "https://github.com/sponsors/fb55"
4709 - }
4710 - ]
4711 - },
4712 - "node_modules/domhandler": {
4713 - "version": "5.0.3",
4714 - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
4715 - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
4716 - "dev": true,
4717 - "dependencies": {
4718 - "domelementtype": "^2.3.0"
4719 - },
4720 - "engines": {
4721 - "node": ">= 4"
4722 - },
4723 - "funding": {
4724 - "url": "https://github.com/fb55/domhandler?sponsor=1"
4725 - }
4726 - },
4727 - "node_modules/domutils": {
4728 - "version": "3.1.0",
4729 - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz",
4730 - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==",
4731 - "dev": true,
4732 - "dependencies": {
4733 - "dom-serializer": "^2.0.0",
4734 - "domelementtype": "^2.3.0",
4735 - "domhandler": "^5.0.3"
4736 - },
4737 - "funding": {
4738 - "url": "https://github.com/fb55/domutils?sponsor=1"
4739 - }
4740 - },
4741 - "node_modules/duplexer": {
4742 - "version": "0.1.2",
4743 - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
4744 - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==",
4745 - "dev": true
4746 - },
4747 - "node_modules/eastasianwidth": {
4748 - "version": "0.2.0",
4749 - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
4750 - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
4751 - "dev": true
4752 - },
4753 - "node_modules/easy-bem": {
4754 - "version": "1.1.1",
4755 - "resolved": "https://registry.npmjs.org/easy-bem/-/easy-bem-1.1.1.tgz",
4756 - "integrity": "sha512-GJRqdiy2h+EXy6a8E6R+ubmqUM08BK0FWNq41k24fup6045biQ8NXxoXimiwegMQvFFV3t1emADdGNL1TlS61A=="
4757 - },
4758 - "node_modules/ecc-jsbn": {
4759 - "version": "0.1.2",
4760 - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
4761 - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==",
4762 - "dev": true,
4763 - "dependencies": {
4764 - "jsbn": "~0.1.0",
4765 - "safer-buffer": "^2.1.0"
4766 - }
4767 - },
4768 - "node_modules/echarts": {
4769 - "version": "5.5.0",
4770 - "resolved": "https://registry.npmjs.org/echarts/-/echarts-5.5.0.tgz",
4771 - "integrity": "sha512-rNYnNCzqDAPCr4m/fqyUFv7fD9qIsd50S6GDFgO1DxZhncCsNsG7IfUlAlvZe5oSEQxtsjnHiUuppzccry93Xw==",
4772 - "dependencies": {
4773 - "tslib": "2.3.0",
4774 - "zrender": "5.5.0"
4775 - }
4776 - },
4777 - "node_modules/editorconfig": {
4778 - "version": "1.0.4",
4779 - "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-1.0.4.tgz",
4780 - "integrity": "sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==",
4781 - "dev": true,
4782 - "dependencies": {
4783 - "@one-ini/wasm": "0.1.1",
4784 - "commander": "^10.0.0",
4785 - "minimatch": "9.0.1",
4786 - "semver": "^7.5.3"
4787 - },
4788 - "bin": {
4789 - "editorconfig": "bin/editorconfig"
4790 - },
4791 - "engines": {
4792 - "node": ">=14"
4793 - }
4794 - },
4795 - "node_modules/editorconfig/node_modules/commander": {
4796 - "version": "10.0.1",
4797 - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
4798 - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
4799 - "dev": true,
4800 - "engines": {
4801 - "node": ">=14"
4802 - }
4803 - },
4804 - "node_modules/editorconfig/node_modules/minimatch": {
4805 - "version": "9.0.1",
4806 - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz",
4807 - "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==",
4808 - "dev": true,
4809 - "dependencies": {
4810 - "brace-expansion": "^2.0.1"
4811 - },
4812 - "engines": {
4813 - "node": ">=16 || 14 >=14.17"
4814 - },
4815 - "funding": {
4816 - "url": "https://github.com/sponsors/isaacs"
4817 - }
4818 - },
4819 - "node_modules/ee-first": {
4820 - "version": "1.1.1",
4821 - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
4822 - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
4823 - "dev": true
4824 - },
4825 - "node_modules/electron-to-chromium": {
4826 - "version": "1.4.774",
4827 - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.774.tgz",
4828 - "integrity": "sha512-132O1XCd7zcTkzS3FgkAzKmnBuNJjK8WjcTtNuoylj7MYbqw5eXehjQ5OK91g0zm7OTKIPeaAG4CPoRfD9M1Mg==",
4829 - "dev": true
4830 - },
4831 - "node_modules/emoji-regex": {
4832 - "version": "8.0.0",
4833 - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
4834 - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
4835 - "dev": true
4836 - },
4837 - "node_modules/encodeurl": {
4838 - "version": "1.0.2",
4839 - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
4840 - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
4841 - "dev": true,
4842 - "engines": {
4843 - "node": ">= 0.8"
4844 - }
4845 - },
4846 - "node_modules/end-of-stream": {
4847 - "version": "1.4.4",
4848 - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
4849 - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
4850 - "dev": true,
4851 - "dependencies": {
4852 - "once": "^1.4.0"
4853 - }
4854 - },
4855 - "node_modules/enquirer": {
4856 - "version": "2.4.1",
4857 - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz",
4858 - "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==",
4859 - "dev": true,
4860 - "dependencies": {
4861 - "ansi-colors": "^4.1.1",
4862 - "strip-ansi": "^6.0.1"
4863 - },
4864 - "engines": {
4865 - "node": ">=8.6"
4866 - }
4867 - },
4868 - "node_modules/entities": {
4869 - "version": "4.5.0",
4870 - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
4871 - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
4872 - "engines": {
4873 - "node": ">=0.12"
4874 - },
4875 - "funding": {
4876 - "url": "https://github.com/fb55/entities?sponsor=1"
4877 - }
4878 - },
4879 - "node_modules/error-ex": {
4880 - "version": "1.3.2",
4881 - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
4882 - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
4883 - "dev": true,
4884 - "dependencies": {
4885 - "is-arrayish": "^0.2.1"
4886 - }
4887 - },
4888 - "node_modules/es-abstract": {
4889 - "version": "1.23.3",
4890 - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz",
4891 - "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==",
4892 - "dev": true,
4893 - "dependencies": {
4894 - "array-buffer-byte-length": "^1.0.1",
4895 - "arraybuffer.prototype.slice": "^1.0.3",
4896 - "available-typed-arrays": "^1.0.7",
4897 - "call-bind": "^1.0.7",
4898 - "data-view-buffer": "^1.0.1",
4899 - "data-view-byte-length": "^1.0.1",
4900 - "data-view-byte-offset": "^1.0.0",
4901 - "es-define-property": "^1.0.0",
4902 - "es-errors": "^1.3.0",
4903 - "es-object-atoms": "^1.0.0",
4904 - "es-set-tostringtag": "^2.0.3",
4905 - "es-to-primitive": "^1.2.1",
4906 - "function.prototype.name": "^1.1.6",
4907 - "get-intrinsic": "^1.2.4",
4908 - "get-symbol-description": "^1.0.2",
4909 - "globalthis": "^1.0.3",
4910 - "gopd": "^1.0.1",
4911 - "has-property-descriptors": "^1.0.2",
4912 - "has-proto": "^1.0.3",
4913 - "has-symbols": "^1.0.3",
4914 - "hasown": "^2.0.2",
4915 - "internal-slot": "^1.0.7",
4916 - "is-array-buffer": "^3.0.4",
4917 - "is-callable": "^1.2.7",
4918 - "is-data-view": "^1.0.1",
4919 - "is-negative-zero": "^2.0.3",
4920 - "is-regex": "^1.1.4",
4921 - "is-shared-array-buffer": "^1.0.3",
4922 - "is-string": "^1.0.7",
4923 - "is-typed-array": "^1.1.13",
4924 - "is-weakref": "^1.0.2",
4925 - "object-inspect": "^1.13.1",
4926 - "object-keys": "^1.1.1",
4927 - "object.assign": "^4.1.5",
4928 - "regexp.prototype.flags": "^1.5.2",
4929 - "safe-array-concat": "^1.1.2",
4930 - "safe-regex-test": "^1.0.3",
4931 - "string.prototype.trim": "^1.2.9",
4932 - "string.prototype.trimend": "^1.0.8",
4933 - "string.prototype.trimstart": "^1.0.8",
4934 - "typed-array-buffer": "^1.0.2",
4935 - "typed-array-byte-length": "^1.0.1",
4936 - "typed-array-byte-offset": "^1.0.2",
4937 - "typed-array-length": "^1.0.6",
4938 - "unbox-primitive": "^1.0.2",
4939 - "which-typed-array": "^1.1.15"
4940 - },
4941 - "engines": {
4942 - "node": ">= 0.4"
4943 - },
4944 - "funding": {
4945 - "url": "https://github.com/sponsors/ljharb"
4946 - }
4947 - },
4948 - "node_modules/es-define-property": {
4949 - "version": "1.0.0",
4950 - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
4951 - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
4952 - "dev": true,
4953 - "dependencies": {
4954 - "get-intrinsic": "^1.2.4"
4955 - },
4956 - "engines": {
4957 - "node": ">= 0.4"
4958 - }
4959 - },
4960 - "node_modules/es-errors": {
4961 - "version": "1.3.0",
4962 - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
4963 - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
4964 - "dev": true,
4965 - "engines": {
4966 - "node": ">= 0.4"
4967 - }
4968 - },
4969 - "node_modules/es-object-atoms": {
4970 - "version": "1.0.0",
4971 - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz",
4972 - "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==",
4973 - "dev": true,
4974 - "dependencies": {
4975 - "es-errors": "^1.3.0"
4976 - },
4977 - "engines": {
4978 - "node": ">= 0.4"
4979 - }
4980 - },
4981 - "node_modules/es-set-tostringtag": {
4982 - "version": "2.0.3",
4983 - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz",
4984 - "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==",
4985 - "dev": true,
4986 - "dependencies": {
4987 - "get-intrinsic": "^1.2.4",
4988 - "has-tostringtag": "^1.0.2",
4989 - "hasown": "^2.0.1"
4990 - },
4991 - "engines": {
4992 - "node": ">= 0.4"
4993 - }
4994 - },
4995 - "node_modules/es-to-primitive": {
4996 - "version": "1.2.1",
4997 - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
4998 - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
4999 - "dev": true,

This file is too large to show in full.

frontend/package.json
+24 -23
@@ -2,6 +2,7 @@
2 "name": "copilot",
3 "version": "1.0.0",
4 "private": true,
5 + "type": "module",
6 "overrides": {
7 "secure-ls": {
8 "crypto-js": "^4.2.0"
@@ -10,17 +11,17 @@
11 "scripts": {
12 "dev": "vite --host 0.0.0.0",
13 "dev:debug": "DEBUG=vite:* vite",
13 - "build": "run-p type-check build-only",
14 + "build": "run-p type-check \"build-only {@}\" --",
15 "build-only": "vite build",
16 "build-analyzer": "vite-bundle-visualizer -t sunburst",
17 "preview": "vite build && echo '' && vite preview --port 4173 --host",
18 "preview-only": "vite preview --port 4173 --host",
18 - "test:unit": "vitest --environment jsdom",
19 - "test:e2e": "start-server-and-test preview http://localhost:4173/ 'cypress open --e2e'",
20 - "test:e2e:ci": "start-server-and-test preview http://localhost:4173/ 'cypress run --e2e'",
21 - "type-check": "vue-tsc --noEmit -p tsconfig.vitest.json --composite false",
22 - "lint": "eslint . --ext .vue,.ts,.tsx,.cts,.mts --fix",
23 - "tailwind-config-viewer": "tailwind-config-viewer -o",
19 + "test:unit": "vitest",
20 + "test:e2e": "start-server-and-test preview http://localhost:4173 'cypress run --e2e'",
21 + "test:e2e:dev": "start-server-and-test 'vite dev --port 4173' http://localhost:4173 'cypress open --e2e'",
22 + "type-check": "vue-tsc --build --force",
23 + "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path ../.gitignore",
24 + "tailwind-config-viewer": "tailwind-config-viewer --config ./tailwind.config.js -o",
25 "design-tokens": "node scripts/tokens-tool.js",
26 "start-server-old": "cd ../backend && uvicorn copilot:app --reload --port=5000",
27 "start-server-venv": "cd ../backend && source .venv/bin/activate && uvicorn copilot:app --port=5000 --log-level debug",
@@ -31,7 +32,7 @@
32 "libs-reload": "rm -rf node_modules package-lock.json && npm install",
33 "open:swagger": "open http://127.0.0.1:5000/docs#/",
34 "open:redoc": "open http://127.0.0.1:5000/redoc",
34 - "prettify": "prettier --write ."
35 + "format": "prettier --write src/"
36 },
37 "dependencies": {
38 "@ajoelp/json-to-formdata": "^1.5.0",
@@ -40,7 +41,7 @@
41 "@fontsource/lexend": "^5.0.20",
42 "@fontsource/public-sans": "^5.0.18",
43 "@popperjs/core": "^2.11.8",
43 - "@shikijs/markdown-it": "^1.6.1",
44 + "@shikijs/markdown-it": "^1.6.2",
45 "@vueuse/components": "^10.10.0",
46 "@vueuse/core": "^10.10.0",
47 "apexcharts": "^3.49.1",
@@ -52,7 +53,7 @@
53 "echarts": "^5.5.0",
54 "file-saver": "^2.0.5",
55 "html-entities": "^2.5.2",
55 - "jose": "^5.3.0",
56 + "jose": "^5.4.0",
57 "js-md5": "^0.8.3",
58 "lodash": "^4.17.21",
59 "mitt": "^3.0.1",
@@ -61,7 +62,7 @@
62 "pinia": "^2.1.7",
63 "pinia-plugin-persistedstate": "^3.2.1",
64 "secure-ls": "^1.2.6",
64 - "shiki": "^1.6.1",
65 + "shiki": "^1.6.2",
66 "validator": "^13.12.0",
67 "vue": "^3.4.27",
68 "vue-advanced-cropper": "^2.8.8",
@@ -77,36 +78,35 @@
78 "@clack/prompts": "^0.7.0",
79 "@iconify/vue": "^4.1.2",
80 "@rushstack/eslint-patch": "^1.10.3",
80 - "@tsconfig/node18": "^18.2.4",
81 + "@tsconfig/node20": "^20.1.4",
82 "@types/bytes": "^3.1.4",
83 "@types/file-saver": "^2.0.7",
84 "@types/fs-extra": "^11.0.4",
85 "@types/inquirer": "^9.0.7",
85 - "@types/jsdom": "^21.1.6",
86 + "@types/jsdom": "^21.1.7",
87 "@types/lodash": "^4.17.4",
87 - "@types/node": "^20.12.13",
88 + "@types/node": "^20.14.1",
89 "@types/validator": "^13.11.10",
89 - "@vitejs/plugin-vue": "^5.0.4",
90 - "@vitejs/plugin-vue-jsx": "^3.1.0",
90 + "@vitejs/plugin-vue": "^5.0.5",
91 + "@vitejs/plugin-vue-jsx": "^4.0.0",
92 "@vue/eslint-config-prettier": "^9.0.0",
93 "@vue/eslint-config-typescript": "^13.0.0",
94 "@vue/test-utils": "^2.4.6",
95 "@vue/tsconfig": "^0.5.1",
96 "autoprefixer": "^10.4.19",
96 - "cypress": "^13.10.0",
97 - "eslint": "^8.57.0",
97 + "cypress": "^13.11.0",
98 + "eslint": "8.57.0",
99 "eslint-plugin-cypress": "^3.3.0",
100 "eslint-plugin-vue": "^9.26.0",
100 - "flourite": "^1.2.4",
101 + "flourite": "^1.3.0",
102 "fs-extra": "^11.2.0",
102 - "ip": "^2.0.1",
103 "jsdom": "^24.1.0",
104 "json5": "^2.2.3",
105 - "npm-run-all": "^4.1.5",
105 + "npm-run-all2": "^6.2.0",
106 "picocolors": "^1.0.1",
107 "postcss": "^8.4.38",
108 - "prettier": "^3.2.5",
109 - "sass": "^1.77.3",
108 + "prettier": "^3.3.0",
109 + "sass": "^1.77.4",
110 "start-server-and-test": "^2.0.3",
111 "tailwind-config-viewer": "^2.0.2",
112 "tailwindcss": "^3.4.3",
@@ -115,6 +115,7 @@
115 "vite": "^5.2.12",
116 "vite-bundle-analyzer": "^0.9.4",
117 "vite-bundle-visualizer": "^1.2.1",
118 + "vite-plugin-vue-devtools": "^7.2.1",
119 "vite-svg-loader": "^5.1.0",
120 "vitest": "^1.6.0",
121 "vue-tsc": "^2.0.19"
frontend/postcss.config.js
+1 -1
@@ -1,4 +1,4 @@
1 -module.exports = {
1 +export default {
2 plugins: {
3 tailwindcss: {},
4 autoprefixer: {}
frontend/scripts/tokens-tool.js
+6 -6
@@ -1,9 +1,9 @@
1 -const process = require("node:process")
2 -const _ = require("lodash")
3 -const fs = require("fs-extra")
4 -const path = require("node:path")
5 -const os = require("node:os")
6 -const { intro, outro, select, spinner, isCancel, cancel, text } = require("@clack/prompts")
1 +import process from "node:process"
2 +import _ from "lodash"
3 +import fs from "fs-extra"
4 +import path from "node:path"
5 +import os from "node:os"
6 +import { intro, outro, select, spinner, isCancel, cancel, text } from "@clack/prompts"
7
8 const GLOBAL_KEYS = ["border-radius", "line-heights", "font-sizes", "font-families"]
9 const TYPO_KEYS = ["typo"]
frontend/src/components/artifacts/ArtifactsCollect.vue
+29 -18
@@ -1,7 +1,7 @@
1 <template>
2 <div class="artifacts-collect">
3 <div class="header flex justify-end items-start gap-2">
4 - <div class="info flex gap-5">
4 + <div class="info flex gap-5" v-if="isDirty">
5 <n-popover overlap placement="bottom-start">
6 <template #trigger>
7 <div class="bg-color border-radius">
@@ -21,9 +21,8 @@
21 </n-popover>
22 </div>
23 <div class="grow flex items-center justify-end gap-2 flex-wrap">
24 - <div class="grow basis-56">
24 + <div class="grow basis-56" v-if="!hideHostnameField">
25 <n-select
26 - v-if="!isFilterPreselected"
26 v-model:value="filters.hostname"
27 :options="agentHostnameOptions"
28 placeholder="Agent hostname"
@@ -46,10 +45,10 @@
45 :loading="loadingArtifacts"
46 />
47 </div>
49 - <div class="grow basis-56">
48 + <div class="grow basis-56" v-if="!hideVelociraptorIdField">
49 <n-input
50 v-model:value="filters.velociraptor_id"
52 - placeholder="Velociraptor id"
51 + placeholder="Velociraptor ID"
52 clearable
53 :readonly="loading"
54 size="small"
@@ -94,7 +93,7 @@ import Api from "@/api"
93 import Icon from "@/components/common/Icon.vue"
94 import CollectItem from "./CollectItem.vue"
95 import type { Agent } from "@/types/agents.d"
97 -import type { CollectRequest } from "@/api/artifacts"
96 +import type { ArtifactsQuery, CollectRequest } from "@/api/artifacts"
97 import type { Artifact, CollectResult } from "@/types/artifacts.d"
98 import { nanoid } from "nanoid"
99 // import { collectResult } from "./mock"
@@ -108,8 +107,17 @@ const emit = defineEmits<{
107 (e: "loaded-artifacts", value: Artifact[]): void
108 }>()
109
111 -const props = defineProps<{ agentHostname?: string; agents?: Agent[]; artifacts?: Artifact[] }>()
112 -const { agentHostname, agents, artifacts } = toRefs(props)
110 +const props = defineProps<{
111 + hostname?: string
112 + velociraptorId?: string
113 + agents?: Agent[]
114 + artifacts?: Artifact[]
115 + artifactsFilter?: ArtifactsQuery
116 + hideHostnameField?: boolean
117 + hideVelociraptorIdField?: boolean
118 +}>()
119 +const { hostname, velociraptorId, agents, artifacts, artifactsFilter, hideHostnameField, hideVelociraptorIdField } =
120 + toRefs(props)
121
122 const message = useMessage()
123 const loadingAgents = ref(false)
@@ -118,6 +126,7 @@ const loading = ref(false)
126 const agentsList = ref<Agent[]>([])
127 const artifactsList = ref<Artifact[]>([])
128 const collectList = ref<CollectResultExt[]>([])
129 +const isDirty = ref(false)
130
131 const InfoIcon = "carbon:information"
132
@@ -127,17 +136,13 @@ const total = computed<number>(() => {
136
137 const filters = ref<Partial<CollectRequest>>({})
138
130 -const isFilterPreselected = computed(() => {
131 - return !!agentHostname?.value
132 -})
133 -
139 const areFiltersValid = computed(() => {
140 return !!filters.value.artifact_name && !!filters.value.hostname
141 })
142
143 const agentHostnameOptions = computed(() => {
139 - if (agentHostname?.value) {
140 - return [{ value: agentHostname.value, label: agentHostname.value }]
144 + if (hostname?.value) {
145 + return [{ value: hostname.value, label: hostname.value }]
146 }
147 return (agentsList.value || []).map(o => ({ value: o.hostname, label: o.hostname }))
148 })
@@ -154,6 +159,8 @@ function getData() {
159 .collect(filters.value as CollectRequest)
160 .then(res => {
161 if (res.data.success) {
162 + isDirty.value = true
163 +
164 collectList.value = (res.data?.results || []).map(o => {
165 o.___id = nanoid()
166 return o
@@ -201,7 +208,7 @@ function getArtifacts(cb?: (artifacts: Artifact[]) => void) {
208 loadingArtifacts.value = true
209
210 Api.artifacts
204 - .getAll()
211 + .getAll(artifactsFilter.value)
212 .then(res => {
213 if (res.data.success) {
214 artifactsList.value = res.data.artifacts || []
@@ -222,8 +229,12 @@ function getArtifacts(cb?: (artifacts: Artifact[]) => void) {
229 }
230
231 onBeforeMount(() => {
225 - if (agentHostname?.value) {
226 - filters.value.hostname = agentHostname.value
232 + if (hostname?.value) {
233 + filters.value.hostname = hostname.value
234 + }
235 +
236 + if (velociraptorId?.value) {
237 + filters.value.velociraptor_id = velociraptorId.value
238 }
239
240 if (agents?.value?.length && !agentsList.value.length) {
@@ -235,7 +246,7 @@ onBeforeMount(() => {
246 }
247
248 nextTick(() => {
238 - if (!agentsList.value.length && !agentHostname?.value) {
249 + if (!agentsList.value.length && !hostname?.value) {
250 getAgents((agents: Agent[]) => {
251 emit("loaded-agents", agents)
252 })
frontend/src/components/artifacts/ArtifactsCommand.vue
+15 -13
@@ -3,7 +3,7 @@
3 <div class="header flex items-start gap-2">
4 <div class="flex flex-col gap-2 w-full">
5 <div class="grow flex items-center gap-2 flex-wrap">
6 - <div class="grow basis-56" v-if="!isFilterPreselected">
6 + <div class="grow basis-56" v-if="!hideHostnameField">
7 <n-select
8 v-model:value="filters.hostname"
9 :options="agentHostnameOptions"
@@ -27,7 +27,7 @@
27 :loading="loadingArtifacts"
28 />
29 </div>
30 - <div class="grow basis-56">
30 + <div class="grow basis-56" v-if="!hideVelociraptorIdField">
31 <n-input
32 v-model:value="filters.velociraptor_id"
33 placeholder="Velociraptor id"
@@ -132,8 +132,14 @@ const emit = defineEmits<{
132 (e: "loaded-artifacts", value: Artifact[]): void
133 }>()
134
135 -const props = defineProps<{ agentHostname?: string; agents?: Agent[]; artifacts?: Artifact[] }>()
136 -const { agentHostname, agents, artifacts } = toRefs(props)
135 +const props = defineProps<{
136 + hostname?: string
137 + agents?: Agent[]
138 + artifacts?: Artifact[]
139 + hideHostnameField?: boolean
140 + hideVelociraptorIdField?: boolean
141 +}>()
142 +const { hostname, agents, artifacts, hideHostnameField, hideVelociraptorIdField } = toRefs(props)
143
144 const TimeIcon = "carbon:time"
145 const StopWatchIcon = "quill:stopwatch"
@@ -159,17 +165,13 @@ const diffTime = computed(() => {
165
166 const filters = ref<Partial<CommandRequest>>({})
167
162 -const isFilterPreselected = computed(() => {
163 - return !!agentHostname?.value
164 -})
165 -
168 const areFiltersValid = computed(() => {
169 return !!filters.value.artifact_name && !!filters.value.hostname && !!filters.value.command
170 })
171
172 const agentHostnameOptions = computed(() => {
171 - if (agentHostname?.value) {
172 - return [{ value: agentHostname.value, label: agentHostname.value }]
173 + if (hostname?.value) {
174 + return [{ value: hostname.value, label: hostname.value }]
175 }
176 return (agentsList.value || []).map(o => ({ value: o.hostname, label: o.hostname }))
177 })
@@ -257,8 +259,8 @@ onBeforeMount(() => {
259 o => ({ name: o }) as Artifact
260 )
261
260 - if (agentHostname?.value) {
261 - filters.value.hostname = agentHostname.value
262 + if (hostname?.value) {
263 + filters.value.hostname = hostname.value
264 }
265
266 if (agents?.value?.length && !agentsList.value.length) {
@@ -270,7 +272,7 @@ onBeforeMount(() => {
272 }
273
274 nextTick(() => {
273 - if (!agentsList.value.length && !agentHostname?.value) {
275 + if (!agentsList.value.length && !hostname?.value) {
276 getAgents((agents: Agent[]) => {
277 emit("loaded-agents", agents)
278 })
frontend/src/components/artifacts/ArtifactsQuarantine.vue
+15 -14
@@ -2,9 +2,8 @@
2 <div class="artifacts-quarantine">
3 <div class="header flex justify-end items-start gap-2">
4 <div class="grow flex items-center justify-end gap-2 flex-wrap">
5 - <div class="grow basis-56">
5 + <div class="grow basis-56" v-if="!hideHostnameField">
6 <n-select
7 - v-if="!isFilterPreselected"
7 v-model:value="filters.hostname"
8 :options="agentHostnameOptions"
9 placeholder="Agent hostname"
@@ -27,7 +26,7 @@
26 :loading="loadingArtifacts"
27 />
28 </div>
30 - <div class="grow basis-56">
29 + <div class="grow basis-56" v-if="!hideVelociraptorIdField">
30 <n-input
31 v-model:value="filters.velociraptor_id"
32 placeholder="Velociraptor id"
@@ -95,8 +94,14 @@ const emit = defineEmits<{
94 (e: "action-performed"): void
95 }>()
96
98 -const props = defineProps<{ agentHostname?: string; agents?: Agent[]; artifacts?: Artifact[] }>()
99 -const { agentHostname, agents, artifacts } = toRefs(props)
97 +const props = defineProps<{
98 + hostname?: string
99 + agents?: Agent[]
100 + artifacts?: Artifact[]
101 + hideHostnameField?: boolean
102 + hideVelociraptorIdField?: boolean
103 +}>()
104 +const { hostname, agents, artifacts, hideHostnameField, hideVelociraptorIdField } = toRefs(props)
105
106 const message = useMessage()
107 const loadingAgents = ref(false)
@@ -110,17 +115,13 @@ const SubmitIcon = "carbon:play"
115
116 const filters = ref<Partial<QuarantineRequest>>({})
117
113 -const isFilterPreselected = computed(() => {
114 - return !!agentHostname?.value
115 -})
116 -
118 const areFiltersValid = computed(() => {
119 return !!filters.value.artifact_name && !!filters.value.hostname
120 })
121
122 const agentHostnameOptions = computed(() => {
122 - if (agentHostname?.value) {
123 - return [{ value: agentHostname.value, label: agentHostname.value }]
123 + if (hostname?.value) {
124 + return [{ value: hostname.value, label: hostname.value }]
125 }
126 return (agentsList.value || []).map(o => ({ value: o.hostname, label: o.hostname }))
127 })
@@ -212,8 +213,8 @@ onBeforeMount(() => {
213 o => ({ name: o }) as Artifact
214 )
215
215 - if (agentHostname?.value) {
216 - filters.value.hostname = agentHostname.value
216 + if (hostname?.value) {
217 + filters.value.hostname = hostname.value
218 }
219
220 if (agents?.value?.length && !agentsList.value.length) {
@@ -227,7 +228,7 @@ onBeforeMount(() => {
228 filters.value.action = actionsOptions.value[0].value as QuarantineRequest["action"]
229
230 nextTick(() => {
230 - if (!agentsList.value.length && !agentHostname?.value) {
231 + if (!agentsList.value.length && !hostname?.value) {
232 getAgents((agents: Agent[]) => {
233 emit("loaded-agents", agents)
234 })
frontend/src/components/soc/SocAlerts/SocAlertAssets/SocAlertAssetsItem.vue
+13 -1
@@ -117,6 +117,17 @@
117 </template>
118 </div>
119 </n-tab-pane>
120 + <n-tab-pane name="Artifact Collection" tab="Artifact Collection" display-directive="show:lazy">
121 + <div class="p-7 pt-2">
122 + <ArtifactsCollect
123 + :hostname="asset.asset_name"
124 + :artifacts-filter="{ hostname: asset.asset_name }"
125 + hide-hostname-field
126 + velociraptor-id="string"
127 + hide-velociraptor-id-field
128 + />
129 + </div>
130 + </n-tab-pane>
131 </n-tabs>
132 </n-modal>
133 </div>
@@ -126,7 +137,7 @@
137 import Icon from "@/components/common/Icon.vue"
138 import KVCard from "@/components/common/KVCard.vue"
139 import Badge from "@/components/common/Badge.vue"
129 -import { computed, ref } from "vue"
140 +import { computed, defineAsyncComponent, ref } from "vue"
141 import { NModal, NTabs, NTabPane } from "naive-ui"
142 import _omit from "lodash/omit"
143 import dayjs from "@/utils/dayjs"
@@ -134,6 +145,7 @@ import { isUrlLike } from "@/utils"
145 import type { SocAlertAsset } from "@/types/soc/asset.d"
146 import { useSettingsStore } from "@/stores/settings"
147 import { useGoto } from "@/composables/useGoto"
148 +const ArtifactsCollect = defineAsyncComponent(() => import("@/components/artifacts/ArtifactsCollect.vue"))
149
150 const { asset } = defineProps<{ asset: SocAlertAsset }>()
151
frontend/src/router/index.ts
+1 -1
@@ -227,7 +227,7 @@ const router = createRouter({
227 {
228 path: "/register",
229 name: "Register",
230 - component: () => import("@/views/auth/Login.vue"),
230 + component: Login,
231 props: { formType: "signup" as FormType },
232 meta: { title: "Register", forceLayout: Layout.Blank, checkAuth: true, skipPin: true }
233 },
frontend/src/views/Artifacts.vue
+6 -6
@@ -8,24 +8,24 @@
8 <ArtifactsCollect
9 @loaded-agents="agents = $event"
10 @loaded-artifacts="artifacts = $event"
11 - :agents="agents"
12 - :artifacts="artifacts"
11 + :agents
12 + :artifacts
13 />
14 </n-tab-pane>
15 <n-tab-pane name="command" tab="Command" display-directive="show:lazy">
16 <ArtifactsCommand
17 @loaded-agents="agents = $event"
18 @loaded-artifacts="artifacts = $event"
19 - :agents="agents"
20 - :artifacts="artifacts"
19 + :agents
20 + :artifacts
21 />
22 </n-tab-pane>
23 <n-tab-pane name="quarantine" tab="Quarantine" display-directive="show:lazy">
24 <ArtifactsQuarantine
25 @loaded-agents="agents = $event"
26 @loaded-artifacts="artifacts = $event"
27 - :agents="agents"
28 - :artifacts="artifacts"
27 + :agents
28 + :artifacts
29 />
30 </n-tab-pane>
31 </n-tabs>
frontend/src/views/agents/Overview.vue
+9 -6
@@ -89,16 +89,18 @@
89 <ArtifactsCollect
90 v-if="agent"
91 @loaded-artifacts="artifacts = $event"
92 - :agent-hostname="agent.hostname"
93 - :artifacts="artifacts"
92 + :hostname="agent.hostname"
93 + :artifacts
94 + hide-hostname-field
95 />
96 </n-tab-pane>
97 <n-tab-pane name="command" tab="Command" display-directive="show:lazy">
98 <ArtifactsCommand
99 v-if="agent"
100 @loaded-artifacts="artifacts = $event"
100 - :agent-hostname="agent.hostname"
101 - :artifacts="artifacts"
101 + :hostname="agent.hostname"
102 + :artifacts
103 + hide-hostname-field
104 />
105 </n-tab-pane>
106 <n-tab-pane name="quarantine" tab="Quarantine" display-directive="show:lazy">
@@ -106,8 +108,9 @@
108 v-if="agent"
109 @action-performed="getAgent()"
110 @loaded-artifacts="artifacts = $event"
109 - :agent-hostname="agent.hostname"
110 - :artifacts="artifacts"
111 + :hostname="agent.hostname"
112 + :artifacts
113 + hide-hostname-field
114 />
115 </n-tab-pane>
116 <n-tab-pane name="active-response" tab="Active Response" display-directive="show:lazy">
frontend/tailwind.config.js
+6 -5
@@ -1,7 +1,8 @@
1 -/** @type {import('tailwindcss').Config} */
2 -const plugin = require("tailwindcss/plugin")
3 -const tokens = require("./src/design-tokens.json")
4 -const _ = require("lodash")
1 +import { readFileSync } from "fs"
2 +import plugin from "tailwindcss/plugin.js"
3 +import _ from "lodash"
4 +const fileUrl = new URL("./src/design-tokens.json", import.meta.url)
5 +const tokens = JSON.parse(readFileSync(fileUrl))
6
7 function getValue(origin, val) {
8 if (val && val.indexOf("{") === 0) {
@@ -12,7 +13,7 @@ function getValue(origin, val) {
13 return val
14 }
15
15 -module.exports = {
16 +export default {
17 content: ["./index.html", "./src/**/*.{vue,js,ts,jsx,tsx}"],
18 darkMode: ["class"],
19 theme: {
frontend/tsconfig.app.json
+2
@@ -4,6 +4,8 @@
4 "exclude": ["src/**/__tests__/*"],
5 "compilerOptions": {
6 "composite": true,
7 + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
8 +
9 "baseUrl": ".",
10 "types": ["node", "naive-ui/volar"],
11 "moduleResolution": "node",
frontend/tsconfig.json
+4 -1
@@ -10,5 +10,8 @@
10 {
11 "path": "./tsconfig.vitest.json"
12 }
13 - ]
13 + ],
14 + "compilerOptions": {
15 + "module": "NodeNext"
16 + }
17 }
frontend/tsconfig.node.json
+4 -1
@@ -1,8 +1,11 @@
1 {
2 - "extends": "@tsconfig/node18/tsconfig.json",
2 + "extends": "@tsconfig/node20/tsconfig.json",
3 "include": ["vite.config.*", "vitest.config.*", "cypress.config.*", "nightwatch.conf.*", "playwright.config.*"],
4 "compilerOptions": {
5 "composite": true,
6 + "noEmit": true,
7 + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
8 +
9 "module": "ESNext",
10 "moduleResolution": "Bundler",
11 "types": ["node"]
frontend/tsconfig.vitest.json
+4
@@ -1,7 +1,11 @@
1 {
2 "extends": "./tsconfig.app.json",
3 + "exclude": [],
4 "compilerOptions": {
5 "composite": true,
6 + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.vitest.tsbuildinfo",
7 +
8 + "lib": [],
9 "types": ["node", "jsdom"],
10 "allowImportingTsExtensions": true
11 }
frontend/vite.config.ts renamed
+14 -7
@@ -2,24 +2,28 @@ import { fileURLToPath, URL } from "node:url"
2 import { defineConfig, loadEnv } from "vite"
3 import vue from "@vitejs/plugin-vue"
4 import vueJsx from "@vitejs/plugin-vue-jsx"
5 +import VueDevTools from "vite-plugin-vue-devtools"
6 import svgLoader from "vite-svg-loader"
7 import Components from "unplugin-vue-components/vite"
8 import fs from "fs"
9 // import { analyzer } from "vite-bundle-analyzer"
10
11 // https://vitejs.dev/config/
11 -export default (args: any) => {
12 - process.env = { ...process.env, ...loadEnv(args.mode, process.cwd()) }
12 +export default defineConfig(({ mode }) => {
13 + // Load env file based on `mode` in the current working directory.
14 + // Set the third parameter to '' to load all env regardless of the `VITE_` prefix.
15 + process.env = { ...process.env, ...loadEnv(mode, process.cwd(), "") }
16
14 - return defineConfig({
17 + return {
18 plugins: [
19 vue({
20 script: {
18 - defineModel: true,
19 - propsDestructure: true
21 + defineModel: true
22 + // propsDestructure: true
23 }
24 }),
25 vueJsx(),
26 + VueDevTools(),
27 svgLoader(),
28 Components({
29 dirs: ["src/components/cards"],
@@ -48,6 +52,9 @@ export default (args: any) => {
52 changeOrigin: true
53 }
54 }
55 + },
56 + define: {
57 + __APP_ENV__: JSON.stringify(process.env.APP_ENV)
58 }
52 - })
53 -}
59 + }
60 +})
frontend/vitest.config.ts
+13 -11
@@ -1,14 +1,16 @@
1 import { fileURLToPath } from "node:url"
2 import { mergeConfig, defineConfig, configDefaults } from "vitest/config"
3 -import viteConfig from "./vite.config.mts"
4 -// TODO: fix vite.config.mts import
5 -export default mergeConfig(
6 - viteConfig,
7 - defineConfig({
8 - test: {
9 - environment: "jsdom",
10 - exclude: [...configDefaults.exclude, "e2e/*"],
11 - root: fileURLToPath(new URL("./", import.meta.url))
12 - }
13 - })
3 +import viteConfig from "./vite.config"
4 +
5 +export default defineConfig(env =>
6 + mergeConfig(
7 + viteConfig(env),
8 + defineConfig({
9 + test: {
10 + environment: "jsdom",
11 + exclude: [...configDefaults.exclude, "e2e/*"],
12 + root: fileURLToPath(new URL("./", import.meta.url))
13 + }
14 + })
15 + )
16 )