diff --git a/src/telescope/resources/js/screens/dumps/index.vue b/src/telescope/resources/js/screens/dumps/index.vue
index 9495347de9..422c20c57e 100644
--- a/src/telescope/resources/js/screens/dumps/index.vue
+++ b/src/telescope/resources/js/screens/dumps/index.vue
@@ -21,20 +21,17 @@ export default {
};
},
-
/**
* Prepare the component.
*/
mounted() {
- document.title = "Dumps - Telescope";
+ document.title = 'Dumps - Telescope';
this.initDumperJs();
this.loadEntries();
-
},
-
/**
* Clean up before the component is unmounted.
*/
@@ -43,60 +40,66 @@ export default {
clearTimeout(this.newEntriesTimeout);
},
-
methods: {
- loadEntries(){
- const {signal} = this.requestController;
+ loadEntries() {
+ const { signal } = this.requestController;
- return axios.post(Telescope.basePath + '/telescope-api/dumps', null, {signal}).then(response => {
- if (signal.aborted) return;
+ return axios
+ .post(Telescope.basePath + '/telescope-api/dumps', null, { signal })
+ .then((response) => {
+ if (signal.aborted) return;
- this.ready = true;
- this.dump = response.data.dump;
- this.entries = response.data.entries;
- this.recordingStatus = response.data.status;
+ this.ready = true;
+ this.dump = response.data.dump;
+ this.entries = response.data.entries;
+ this.recordingStatus = response.data.status;
- this.$nextTick(() => this.triggerDumps());
+ this.$nextTick(() => this.triggerDumps());
- this.checkForNewEntries();
- }).catch(error => {
- if (signal.aborted) return;
+ this.checkForNewEntries();
+ })
+ .catch((error) => {
+ if (signal.aborted) return;
- this.ready = true;
+ this.ready = true;
- if (this.mayRetry(error, signal)) this.checkForNewEntries();
- });
+ if (this.mayRetry(error, signal)) this.checkForNewEntries();
+ });
},
-
/**
* Keep checking if there are new entries.
*/
- checkForNewEntries(){
- const {signal} = this.requestController;
+ checkForNewEntries() {
+ const { signal } = this.requestController;
clearTimeout(this.newEntriesTimeout);
this.newEntriesTimeout = setTimeout(() => {
- axios.post(Telescope.basePath + '/telescope-api/dumps?take=1', null, {signal}).then(response => {
- if (signal.aborted) return;
-
- this.recordingStatus = response.data.status;
-
- if (response.data.entries.length && !this.entries.length) {
- this.loadEntries();
- } else if (response.data.entries.length && _.first(response.data.entries).id !== _.first(this.entries).id) {
- this.loadEntries();
- } else {
- this.checkForNewEntries();
- }
- }).catch(error => {
- if (this.mayRetry(error, signal)) this.checkForNewEntries();
- });
+ axios
+ .post(Telescope.basePath + '/telescope-api/dumps?take=1', null, { signal })
+ .then((response) => {
+ if (signal.aborted) return;
+
+ this.recordingStatus = response.data.status;
+
+ if (response.data.entries.length && !this.entries.length) {
+ this.loadEntries();
+ } else if (
+ response.data.entries.length &&
+ _.first(response.data.entries).id !== _.first(this.entries).id
+ ) {
+ this.loadEntries();
+ } else {
+ this.checkForNewEntries();
+ }
+ })
+ .catch((error) => {
+ if (this.mayRetry(error, signal)) this.checkForNewEntries();
+ });
}, this.newEntriesTimer);
},
-
/**
* Initialize the VarDumper JS functions.
*/
@@ -104,16 +107,15 @@ export default {
this.sfDump = sfdump(document);
},
-
/**
* Trigger the Sfdump() for every newly dumped tag.
*/
triggerDumps() {
const divs = this.$refs.dumps;
- if (! divs) return;
+ if (!divs) return;
- divs.forEach(el => {
+ divs.forEach((el) => {
const id = el.children[0].id;
if (this.triggered.includes(id)) return;
@@ -121,9 +123,9 @@ export default {
this.sfDump(id);
this.triggered.push(id);
});
- }
- }
-}
+ },
+ },
+};
diff --git a/src/telescope/resources/js/screens/events/preview.vue b/src/telescope/resources/js/screens/events/preview.vue
index 7087c95ef6..b2ef21c688 100644
--- a/src/telescope/resources/js/screens/events/preview.vue
+++ b/src/telescope/resources/js/screens/events/preview.vue
@@ -1,13 +1,13 @@
diff --git a/src/telescope/resources/js/screens/exceptions/preview.vue b/src/telescope/resources/js/screens/exceptions/preview.vue
index ae17ab02b5..c1b7b94a4e 100644
--- a/src/telescope/resources/js/screens/exceptions/preview.vue
+++ b/src/telescope/resources/js/screens/exceptions/preview.vue
@@ -6,37 +6,37 @@ import Stacktrace from './../../components/Stacktrace.vue';
export default {
components: {
'code-preview': ExceptionCodePreview,
- 'stack-trace': Stacktrace
+ 'stack-trace': Stacktrace,
},
- data(){
+ data() {
return {
entry: null,
batch: [],
- currentTab: 'message'
+ currentTab: 'message',
};
},
methods: {
hasContext() {
- return this.entry.content.hasOwnProperty('context')
- && this.entry.content.context !== null;
+ return this.entry.content.hasOwnProperty('context') && this.entry.content.context !== null;
},
markExceptionAsResolved(entry) {
this.alertConfirm('Are you sure you want to mark this exception as resolved?', () => {
-
- axios.put(Telescope.basePath + '/telescope-api/exceptions/' + entry.id, {
- 'resolved_at': 'now',
- }).then(response => {
- if (this.$route.params.id !== entry.id) return;
-
- this.entry = response.data.entry;
- })
+ axios
+ .put(Telescope.basePath + '/telescope-api/exceptions/' + entry.id, {
+ resolved_at: 'now',
+ })
+ .then((response) => {
+ if (this.$route.params.id !== entry.id) return;
+
+ this.entry = response.data.entry;
+ });
});
},
- }
-}
+ },
+};
@@ -158,7 +158,11 @@ export default {
-
+
diff --git a/src/telescope/resources/js/screens/gates/index.vue b/src/telescope/resources/js/screens/gates/index.vue
index 74679281f3..f001c5774c 100644
--- a/src/telescope/resources/js/screens/gates/index.vue
+++ b/src/telescope/resources/js/screens/gates/index.vue
@@ -2,10 +2,8 @@
import StylesMixin from './../../mixins/entriesStyles';
export default {
- mixins: [
- StylesMixin,
- ],
-}
+ mixins: [StylesMixin],
+};
@@ -30,7 +28,7 @@ export default {
- {{truncate(slotProps.entry.content.message, 30)}}
+ {{ truncate(slotProps.entry.content.message, 30) }}
|
@@ -38,7 +35,7 @@ export default {
| Message |
- {{slotProps.entry.content.message}}
+ {{ slotProps.entry.content.message }}
|
diff --git a/src/telescope/resources/js/screens/jobs/index.vue b/src/telescope/resources/js/screens/jobs/index.vue
index 0ea3a2f032..3f9e003b54 100644
--- a/src/telescope/resources/js/screens/jobs/index.vue
+++ b/src/telescope/resources/js/screens/jobs/index.vue
@@ -2,10 +2,8 @@
import StylesMixin from './../../mixins/entriesStyles';
export default {
- mixins: [
- StylesMixin,
- ],
-}
+ mixins: [StylesMixin],
+};
diff --git a/src/telescope/resources/js/screens/jobs/preview.vue b/src/telescope/resources/js/screens/jobs/preview.vue
index b77c870abb..0b585cb172 100644
--- a/src/telescope/resources/js/screens/jobs/preview.vue
+++ b/src/telescope/resources/js/screens/jobs/preview.vue
@@ -1,5 +1,4 @@
@@ -147,7 +144,11 @@ export default {
-
+
@@ -156,8 +157,7 @@ export default {
class="code-bg p-4 mb-0 text-white"
v-if="slotProps.entry.content.exception"
v-show="currentTab == 'exception'"
- >{{ slotProps.entry.content.exception.message }}
+ >{{ slotProps.entry.content.exception.message }}
diff --git a/src/telescope/resources/js/screens/logs/preview.vue b/src/telescope/resources/js/screens/logs/preview.vue
index 91062e4bdc..3cffb59914 100644
--- a/src/telescope/resources/js/screens/logs/preview.vue
+++ b/src/telescope/resources/js/screens/logs/preview.vue
@@ -2,19 +2,16 @@
import StylesMixin from './../../mixins/entriesStyles';
export default {
- mixins: [
- StylesMixin,
- ],
+ mixins: [StylesMixin],
-
- data(){
+ data() {
return {
entry: null,
batch: [],
- currentTab: 'message'
+ currentTab: 'message',
};
},
-}
+};
@@ -77,7 +74,11 @@ export default {
-
+
diff --git a/src/telescope/resources/js/screens/mail/index.vue b/src/telescope/resources/js/screens/mail/index.vue
index d86adb5d59..8d0aa71dfd 100644
--- a/src/telescope/resources/js/screens/mail/index.vue
+++ b/src/telescope/resources/js/screens/mail/index.vue
@@ -3,14 +3,16 @@ import _ from 'lodash';
export default {
methods: {
- recipientsCount(entry){
- return _.union((entry.content.to ? Object.keys(entry.content.to) : []),
- (entry.content.cc ? Object.keys(entry.content.cc) : []),
- (entry.content.bcc ? Object.keys(entry.content.bcc) : []),
- (entry.content.replyTo ? Object.keys(entry.content.replyTo) : [])).length;
- }
- }
-}
+ recipientsCount(entry) {
+ return _.union(
+ entry.content.to ? Object.keys(entry.content.to) : [],
+ entry.content.cc ? Object.keys(entry.content.cc) : [],
+ entry.content.bcc ? Object.keys(entry.content.bcc) : [],
+ entry.content.replyTo ? Object.keys(entry.content.replyTo) : [],
+ ).length;
+ },
+ },
+};
diff --git a/src/telescope/resources/js/screens/mail/preview.vue b/src/telescope/resources/js/screens/mail/preview.vue
index 32e5ff941b..de1f8176d2 100644
--- a/src/telescope/resources/js/screens/mail/preview.vue
+++ b/src/telescope/resources/js/screens/mail/preview.vue
@@ -13,20 +13,23 @@ export default {
/**
* Format the given list of addresses.
*/
- formatAddresses(addresses){
- return _.chain(addresses).map((name, email) => {
- return (name ? "<" + name + "> " : '') + email;
- }).join(', ').value()
- }
+ formatAddresses(addresses) {
+ return _.chain(addresses)
+ .map((name, email) => {
+ return (name ? '<' + name + '> ' : '') + email;
+ })
+ .join(', ')
+ .value();
+ },
},
- data(){
+ data() {
return {
entry: null,
batch: [],
};
},
-}
+};
diff --git a/src/telescope/resources/js/screens/models/index.vue b/src/telescope/resources/js/screens/models/index.vue
index d6f57c1b95..0736edd0be 100644
--- a/src/telescope/resources/js/screens/models/index.vue
+++ b/src/telescope/resources/js/screens/models/index.vue
@@ -2,10 +2,8 @@
import StylesMixin from './../../mixins/entriesStyles';
export default {
- mixins: [
- StylesMixin,
- ],
-}
+ mixins: [StylesMixin],
+};
diff --git a/src/telescope/resources/js/screens/models/preview.vue b/src/telescope/resources/js/screens/models/preview.vue
index 329dcd695f..bf5c129a54 100644
--- a/src/telescope/resources/js/screens/models/preview.vue
+++ b/src/telescope/resources/js/screens/models/preview.vue
@@ -2,18 +2,15 @@
import StylesMixin from './../../mixins/entriesStyles';
export default {
- mixins: [
- StylesMixin,
- ],
+ mixins: [StylesMixin],
-
- data(){
+ data() {
return {
entry: null,
batch: [],
};
},
-}
+};
diff --git a/src/telescope/resources/js/screens/notifications/preview.vue b/src/telescope/resources/js/screens/notifications/preview.vue
index 9362fe5c23..8163c412fc 100644
--- a/src/telescope/resources/js/screens/notifications/preview.vue
+++ b/src/telescope/resources/js/screens/notifications/preview.vue
@@ -1,12 +1,12 @@
diff --git a/src/telescope/resources/js/screens/queries/preview.vue b/src/telescope/resources/js/screens/queries/preview.vue
index 3a3a50442b..0287d0bd88 100644
--- a/src/telescope/resources/js/screens/queries/preview.vue
+++ b/src/telescope/resources/js/screens/queries/preview.vue
@@ -50,8 +50,8 @@ export default {
},
// REMOVED: queryLanguage(); without JSON commands, every query highlights as SQL.
- }
-}
+ },
+};
@@ -90,7 +90,9 @@ export default {
- {{ formatQuery(slotProps.entry.content.sql, slotProps.entry.content.driver) }}
+ {{
+ formatQuery(slotProps.entry.content.sql, slotProps.entry.content.driver)
+ }}
diff --git a/src/telescope/resources/js/screens/redis/preview.vue b/src/telescope/resources/js/screens/redis/preview.vue
index 64c9bd2a7d..909b5f1698 100644
--- a/src/telescope/resources/js/screens/redis/preview.vue
+++ b/src/telescope/resources/js/screens/redis/preview.vue
@@ -1,12 +1,12 @@
diff --git a/src/telescope/resources/js/screens/requests/index.vue b/src/telescope/resources/js/screens/requests/index.vue
index b2d096fdbf..880c8797f7 100644
--- a/src/telescope/resources/js/screens/requests/index.vue
+++ b/src/telescope/resources/js/screens/requests/index.vue
@@ -2,10 +2,8 @@
import StylesMixin from './../../mixins/entriesStyles';
export default {
- mixins: [
- StylesMixin,
- ],
-}
+ mixins: [StylesMixin],
+};
diff --git a/src/telescope/resources/js/screens/requests/preview.vue b/src/telescope/resources/js/screens/requests/preview.vue
index 01efc99f0c..0edf3ebad8 100644
--- a/src/telescope/resources/js/screens/requests/preview.vue
+++ b/src/telescope/resources/js/screens/requests/preview.vue
@@ -2,19 +2,17 @@
import StylesMixin from './../../mixins/entriesStyles';
export default {
- mixins: [
- StylesMixin,
- ],
+ mixins: [StylesMixin],
data() {
return {
entry: null,
batch: [],
currentRequestTab: 'payload',
- currentResponseTab: 'response'
+ currentResponseTab: 'response',
};
- }
-}
+ },
+};
diff --git a/src/telescope/resources/js/screens/reverb/preview.vue b/src/telescope/resources/js/screens/reverb/preview.vue
index c8acba155b..03d6b25cae 100644
--- a/src/telescope/resources/js/screens/reverb/preview.vue
+++ b/src/telescope/resources/js/screens/reverb/preview.vue
@@ -6,7 +6,7 @@ export default {
batch: [],
};
},
-}
+};
diff --git a/src/telescope/resources/js/screens/schedule/preview.vue b/src/telescope/resources/js/screens/schedule/preview.vue
index 3de13e06c0..6a749fadf6 100644
--- a/src/telescope/resources/js/screens/schedule/preview.vue
+++ b/src/telescope/resources/js/screens/schedule/preview.vue
@@ -1,12 +1,12 @@
@@ -55,9 +55,11 @@ export default {
| Exit Code |
- {{ slotProps.entry.content.exit_code === undefined || slotProps.entry.content.exit_code === null
- ? '-'
- : slotProps.entry.content.exit_code }}
+ {{
+ slotProps.entry.content.exit_code === undefined || slotProps.entry.content.exit_code === null
+ ? '-'
+ : slotProps.entry.content.exit_code
+ }}
|
diff --git a/src/telescope/resources/js/screens/views/preview.vue b/src/telescope/resources/js/screens/views/preview.vue
index 81729b2a50..4b974983c9 100644
--- a/src/telescope/resources/js/screens/views/preview.vue
+++ b/src/telescope/resources/js/screens/views/preview.vue
@@ -2,19 +2,16 @@
import StylesMixin from './../../mixins/entriesStyles';
export default {
- mixins: [
- StylesMixin,
- ],
+ mixins: [StylesMixin],
-
- data(){
+ data() {
return {
entry: null,
batch: [],
- currentTab: 'data'
+ currentTab: 'data',
};
},
-}
+};
diff --git a/src/telescope/resources/sass/base.scss b/src/telescope/resources/sass/base.scss
index fb2a815184..a93a7c596e 100644
--- a/src/telescope/resources/sass/base.scss
+++ b/src/telescope/resources/sass/base.scss
@@ -74,7 +74,9 @@ svg.icon {
}
.card {
- box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
+ box-shadow:
+ 0 4px 6px -1px rgb(0 0 0 / 0.1),
+ 0 2px 4px -2px rgb(0 0 0 / 0.1);
border: none;
.bottom-radius {
diff --git a/src/telescope/resources/sass/styles.scss b/src/telescope/resources/sass/styles.scss
index c2bbe44af1..39394ec806 100644
--- a/src/telescope/resources/sass/styles.scss
+++ b/src/telescope/resources/sass/styles.scss
@@ -91,14 +91,14 @@ $grid-breakpoints: (
sm: 2px,
md: 8px,
lg: 9px,
- xl: 10px
+ xl: 10px,
) !default;
$container-max-widths: (
sm: 1137px,
md: 1138px,
lg: 1139px,
- xl: 1140px
+ xl: 1140px,
) !default;
@import 'base';
diff --git a/src/wayfinder/resources/js/wayfinder.ts b/src/wayfinder/resources/js/wayfinder.ts
index 428aa0613c..ca098ea67f 100644
--- a/src/wayfinder/resources/js/wayfinder.ts
+++ b/src/wayfinder/resources/js/wayfinder.ts
@@ -9,7 +9,15 @@ export type QueryParams = {
| QueryParams;
};
-type Method = "get" | "post" | "put" | "delete" | "patch" | "head" | "options" | "query";
+type Method =
+ | "get"
+ | "post"
+ | "put"
+ | "delete"
+ | "patch"
+ | "head"
+ | "options"
+ | "query";
type UrlDefaults = Record;
let urlDefaults: () => UrlDefaults = () => ({});
@@ -65,8 +73,7 @@ export const formatRouteParameter = (
const encoded = encodeURIComponent(getValue(value)).replace(
/['()]/g,
- (character) =>
- `%${character.charCodeAt(0).toString(16).toUpperCase()}`,
+ (character) => `%${character.charCodeAt(0).toString(16).toUpperCase()}`,
);
return encoded.replace(
@@ -190,11 +197,7 @@ export const validateParameters = (
const missing = optional.filter((key) => {
const value = args?.[key];
- return (
- value === undefined ||
- value === null ||
- value === ""
- );
+ return value === undefined || value === null || value === "";
});
const expectedMissing = optional.slice(missing.length * -1);
diff --git a/src/wayfinder/tests/build.ts b/src/wayfinder/tests/build.ts
index de913e6834..8d90770b85 100644
--- a/src/wayfinder/tests/build.ts
+++ b/src/wayfinder/tests/build.ts
@@ -1,15 +1,17 @@
-import { execFileSync } from 'node:child_process';
-import { dirname, resolve } from 'node:path';
-import { fileURLToPath } from 'node:url';
+import { execFileSync } from "node:child_process";
+import { dirname, resolve } from "node:path";
+import { fileURLToPath } from "node:url";
const here = dirname(fileURLToPath(import.meta.url));
-const generated = resolve(here, '.generated');
+const generated = resolve(here, ".generated");
export function setup(): void {
try {
- execFileSync('php', [`${here}/generate.php`, generated], { stdio: 'inherit' });
+ execFileSync("php", [`${here}/generate.php`, generated], {
+ stdio: "inherit",
+ });
} catch {
- console.error('Wayfinder fixture generation failed');
+ console.error("Wayfinder fixture generation failed");
process.exit(1);
}
}
From f49cd79c40af3c33b4a31c27c14a54563d087746 Mon Sep 17 00:00:00 2001
From: Raj Siva-Rajah <5361908+binaryfire@users.noreply.github.com>
Date: Wed, 28 Oct 2026 19:06:40 +0000
Subject: [PATCH 02/16] Consolidate framework frontend tooling under Vite+
Bring Horizon, Telescope, the exception renderer, Workbench, Wayfinder and the AI workbench into one pnpm workspace with a shared dependency catalog and lockfile. Keep application skeletons independent and preserve package-local build outputs for Composer distribution.
Pin Vite+ and its matching core and Vitest versions, declare direct dependencies, retain distinct supported Tailwind majors, and remove superseded npm locks and policy files. Preserve the release-age policy and explicitly allow only the required dependency build script.
Use native Vite+ formatting, linting, type checking, test projects and task selection. Generate Wayfinder fixtures before quality checks so the commands work on a fresh installation, and keep cached-route testing in its owning package. Validate frozen installs, all member builds, test discovery and generated TypeScript output.
---
.gitignore | 5 +-
.npmrc | 5 -
dogfood/ai/.gitignore | 1 +
dogfood/ai/workbench/jsconfig.json | 3 +-
dogfood/ai/workbench/package-lock.json | 3217 --------
dogfood/ai/workbench/package.json | 15 +-
dogfood/ai/workbench/vite.config.js | 2 +-
package.json | 38 +-
pnpm-lock.yaml | 6763 +++++++++++++++--
pnpm-workspace.yaml | 45 +-
.../resources/exceptions/renderer/.npmrc | 5 -
.../exceptions/renderer/package-lock.json | 2078 -----
.../exceptions/renderer/package.json | 29 +-
.../exceptions/renderer/vite.config.js | 4 +-
src/horizon/.npmrc | 6 -
src/horizon/package-lock.json | 2192 ------
src/horizon/package.json | 40 +-
src/horizon/vite.config.js | 13 +-
src/telescope/.npmrc | 6 -
src/telescope/package-lock.json | 3070 --------
src/telescope/package.json | 49 +-
src/telescope/vite.config.js | 7 +-
src/telescope/vitest.config.js | 10 -
src/wayfinder/package.json | 9 +-
.../{vitest.config.ts => vite.config.ts} | 12 +-
src/workbench/.npmrc | 6 -
src/workbench/package-lock.json | 1982 -----
src/workbench/package.json | 19 +-
src/workbench/vite.config.js | 2 +-
tsconfig.json | 2 +-
vite.config.ts | 75 +
vitest.config.ts | 22 -
32 files changed, 6263 insertions(+), 13469 deletions(-)
delete mode 100644 .npmrc
delete mode 100644 dogfood/ai/workbench/package-lock.json
delete mode 100644 src/foundation/resources/exceptions/renderer/.npmrc
delete mode 100644 src/foundation/resources/exceptions/renderer/package-lock.json
delete mode 100644 src/horizon/.npmrc
delete mode 100644 src/horizon/package-lock.json
delete mode 100644 src/telescope/.npmrc
delete mode 100644 src/telescope/package-lock.json
delete mode 100644 src/telescope/vitest.config.js
rename src/wayfinder/{vitest.config.ts => vite.config.ts} (56%)
delete mode 100644 src/workbench/.npmrc
delete mode 100644 src/workbench/package-lock.json
create mode 100644 vite.config.ts
delete mode 100644 vitest.config.ts
diff --git a/.gitignore b/.gitignore
index 69ce1baa6d..b5fba8f9ce 100644
--- a/.gitignore
+++ b/.gitignore
@@ -20,8 +20,9 @@
/dogfood/testbench-package/.phpunit.cache/
/dogfood/testbench-package/composer.lock
/dogfood/testbench-package/vendor/
-/node_modules
-/src/*/node_modules
+node_modules/
+.vite/
+.vite-plus/
/src/wayfinder/tests/.generated
/coverage
*.tsbuildinfo
diff --git a/.npmrc b/.npmrc
deleted file mode 100644
index abe47e0175..0000000000
--- a/.npmrc
+++ /dev/null
@@ -1,5 +0,0 @@
-# Supply-chain defense: require packages to be at least 7 days old.
-# Compromised packages typically get yanked within hours; this buffer
-# dramatically reduces the chance of pulling a malicious release.
-# npm measures this value in days.
-min-release-age=7
diff --git a/dogfood/ai/.gitignore b/dogfood/ai/.gitignore
index c33ff48000..3d73ec477c 100644
--- a/dogfood/ai/.gitignore
+++ b/dogfood/ai/.gitignore
@@ -4,3 +4,4 @@
/workbench/node_modules/
/workbench/public/
/workbench/database/*.sqlite*
+/workbench/storage/framework/hypervel.pid
diff --git a/dogfood/ai/workbench/jsconfig.json b/dogfood/ai/workbench/jsconfig.json
index bee4e812fa..aeb43ad8c9 100644
--- a/dogfood/ai/workbench/jsconfig.json
+++ b/dogfood/ai/workbench/jsconfig.json
@@ -1,8 +1,7 @@
{
"compilerOptions": {
- "baseUrl": ".",
"paths": {
- "@/*": ["resources/js/*"]
+ "@/*": ["./resources/js/*"]
}
}
}
diff --git a/dogfood/ai/workbench/package-lock.json b/dogfood/ai/workbench/package-lock.json
deleted file mode 100644
index 1ddad7b1ec..0000000000
--- a/dogfood/ai/workbench/package-lock.json
+++ /dev/null
@@ -1,3217 +0,0 @@
-{
- "name": "workbench",
- "lockfileVersion": 3,
- "requires": true,
- "packages": {
- "": {
- "name": "workbench",
- "dependencies": {
- "@shadcn/react": "^0.2.0",
- "class-variance-authority": "^0.7.1",
- "clsx": "^2.1.1",
- "lucide-react": "^1.23.0",
- "radix-ui": "^1.6.1",
- "react": "^19.0.0",
- "react-dom": "^19.0.0",
- "tailwind-merge": "^3.6.0"
- },
- "devDependencies": {
- "@tailwindcss/vite": "^4.3.2",
- "@vitejs/plugin-react": "^6.0.3",
- "laravel-vite-plugin": "^3.1.0",
- "tailwindcss": "^4.3.2",
- "vite": "^8.0.0"
- }
- },
- "node_modules/@emnapi/core": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.1.tgz",
- "integrity": "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "@emnapi/wasi-threads": "1.2.2",
- "tslib": "^2.4.0"
- }
- },
- "node_modules/@emnapi/runtime": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.1.tgz",
- "integrity": "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "tslib": "^2.4.0"
- }
- },
- "node_modules/@emnapi/wasi-threads": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz",
- "integrity": "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "tslib": "^2.4.0"
- }
- },
- "node_modules/@floating-ui/core": {
- "version": "1.7.5",
- "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.5.tgz",
- "integrity": "sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==",
- "license": "MIT",
- "dependencies": {
- "@floating-ui/utils": "^0.2.11"
- }
- },
- "node_modules/@floating-ui/dom": {
- "version": "1.7.6",
- "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.6.tgz",
- "integrity": "sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==",
- "license": "MIT",
- "dependencies": {
- "@floating-ui/core": "^1.7.5",
- "@floating-ui/utils": "^0.2.11"
- }
- },
- "node_modules/@floating-ui/react-dom": {
- "version": "2.1.8",
- "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.8.tgz",
- "integrity": "sha512-cC52bHwM/n/CxS87FH0yWdngEZrjdtLW/qVruo68qg+prK7ZQ4YGdut2GyDVpoGeAYe/h899rVeOVm6Oi40k2A==",
- "license": "MIT",
- "dependencies": {
- "@floating-ui/dom": "^1.7.6"
- },
- "peerDependencies": {
- "react": ">=16.8.0",
- "react-dom": ">=16.8.0"
- }
- },
- "node_modules/@floating-ui/utils": {
- "version": "0.2.11",
- "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.11.tgz",
- "integrity": "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==",
- "license": "MIT"
- },
- "node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.13",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
- "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/sourcemap-codec": "^1.5.0",
- "@jridgewell/trace-mapping": "^0.3.24"
- }
- },
- "node_modules/@jridgewell/remapping": {
- "version": "2.3.5",
- "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz",
- "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.5",
- "@jridgewell/trace-mapping": "^0.3.24"
- }
- },
- "node_modules/@jridgewell/resolve-uri": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
- "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.5.5",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
- "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.31",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
- "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/resolve-uri": "^3.1.0",
- "@jridgewell/sourcemap-codec": "^1.4.14"
- }
- },
- "node_modules/@napi-rs/wasm-runtime": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.6.tgz",
- "integrity": "sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "@tybys/wasm-util": "^0.10.3"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/Brooooooklyn"
- },
- "peerDependencies": {
- "@emnapi/core": "^1.7.1",
- "@emnapi/runtime": "^1.7.1"
- }
- },
- "node_modules/@oxc-project/types": {
- "version": "0.138.0",
- "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.138.0.tgz",
- "integrity": "sha512-1a7ZKmrRTCoN1XMZ4L0PyyqrMnrNlLyPuOkdSX2MZg7IiIGRUyurNhAm73ptDOraoBcIordsIGKNPKUzy3ZmfA==",
- "dev": true,
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/Boshen"
- }
- },
- "node_modules/@radix-ui/number": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.2.tgz",
- "integrity": "sha512-ceTwaxc4I5IOi97DgCotl3pqiyRGvffcc0oOsE2dQYaJOFIDsDt4VWG6xEbg1QePv9QWausCEIppud/tJ1wNig==",
- "license": "MIT"
- },
- "node_modules/@radix-ui/primitive": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.4.tgz",
- "integrity": "sha512-7AdCK9PQyiljKoBDbN8OuctCbd/esdwZPQ8RtOE3SsyQtUpiPb+ND75q0jEhC1m1ecBI0MFNeLJvwIh9iKHRcQ==",
- "license": "MIT"
- },
- "node_modules/@radix-ui/react-accessible-icon": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-accessible-icon/-/react-accessible-icon-1.1.11.tgz",
- "integrity": "sha512-HQDOFTKwSnmUij6l54wYJJtxTAnxI71+YJLOrjm2ladFB8HAV5Jt7hwaZPhWTGBkYoW4+ZAOfNZrLDh/qvxSYA==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-visually-hidden": "1.2.7"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-accordion": {
- "version": "1.2.15",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-accordion/-/react-accordion-1.2.15.tgz",
- "integrity": "sha512-24Zz/0SYx8F2bSVThBnQrdJs2VbKelyuJordcFRRdA0fRAhrq/wSegGCqaQz34VQoiWqSMGYCYXEhynLSlyQlg==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.4",
- "@radix-ui/react-collapsible": "1.1.15",
- "@radix-ui/react-collection": "1.1.11",
- "@radix-ui/react-compose-refs": "1.1.3",
- "@radix-ui/react-context": "1.1.4",
- "@radix-ui/react-direction": "1.1.2",
- "@radix-ui/react-id": "1.1.2",
- "@radix-ui/react-primitive": "2.1.7",
- "@radix-ui/react-use-controllable-state": "1.2.3"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-alert-dialog": {
- "version": "1.1.18",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.1.18.tgz",
- "integrity": "sha512-6c2cXpNlAgHDhKguK24XcWHHayMpK+lk7/WwBXBco+ZJ4Dv7xP++GBM280KgTD/HCRu3jSdfe8WQiZssonYaIA==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.4",
- "@radix-ui/react-compose-refs": "1.1.3",
- "@radix-ui/react-context": "1.1.4",
- "@radix-ui/react-dialog": "1.1.18",
- "@radix-ui/react-primitive": "2.1.7"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-arrow": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.11.tgz",
- "integrity": "sha512-Kdil9BB1rIFC/khmf4hC35bn8701AJcizTU7G7cUbEbk5XqqbjDuHW60uUfKqO5WojjZcbAW51Q7P0hRmMLw8A==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-primitive": "2.1.7"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-aspect-ratio": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-aspect-ratio/-/react-aspect-ratio-1.1.11.tgz",
- "integrity": "sha512-IUAhIVpBUvP5NNICjlaB1OFmtRLGqQqTF3ZOSGPoq3XeLXRFtHiWTRxSVEULgOd9GQR2c7tsYqDnhUennapZnw==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-primitive": "2.1.7"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-avatar": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.2.1.tgz",
- "integrity": "sha512-+8PWoLLZv3AVb5m0pvoiOca/bQGzc9vPVb+982HB2x3Un0DpYEPM3zLMl4oqRpBsocJuNqLkiv/HXTnTrlwr4g==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-context": "1.1.4",
- "@radix-ui/react-primitive": "2.1.7",
- "@radix-ui/react-use-callback-ref": "1.1.2",
- "@radix-ui/react-use-is-hydrated": "0.1.1",
- "@radix-ui/react-use-layout-effect": "1.1.2"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-checkbox": {
- "version": "1.3.6",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.3.6.tgz",
- "integrity": "sha512-eUEUoGMDpfkgHWSE97ZZaUJtzR1M7EKnNIpD1Q16+8JR9NWghcaqMulx9PuCQ720w0UclfYn6FEbCdd5Hx087g==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.4",
- "@radix-ui/react-compose-refs": "1.1.3",
- "@radix-ui/react-context": "1.1.4",
- "@radix-ui/react-presence": "1.1.6",
- "@radix-ui/react-primitive": "2.1.7",
- "@radix-ui/react-use-controllable-state": "1.2.3",
- "@radix-ui/react-use-previous": "1.1.2",
- "@radix-ui/react-use-size": "1.1.2"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-collapsible": {
- "version": "1.1.15",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.1.15.tgz",
- "integrity": "sha512-8A1zibu5skAQ+UVbaeNH5hVMibiFCRJzgMuM14LTWGttnTZKQL9jwYnhAbHRuxrtCqPXa4JvvnVUq1pTNgyZYw==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.4",
- "@radix-ui/react-compose-refs": "1.1.3",
- "@radix-ui/react-context": "1.1.4",
- "@radix-ui/react-id": "1.1.2",
- "@radix-ui/react-presence": "1.1.6",
- "@radix-ui/react-primitive": "2.1.7",
- "@radix-ui/react-use-controllable-state": "1.2.3",
- "@radix-ui/react-use-layout-effect": "1.1.2"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-collection": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.11.tgz",
- "integrity": "sha512-djW9+zeg137KQdlPtmE8xnaD+K2rcXXMWFrSg0hsmYZ6HRbdTA7tDHFgpaW9+huWVEu0RCabL+985T4TA0BE7g==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-compose-refs": "1.1.3",
- "@radix-ui/react-context": "1.1.4",
- "@radix-ui/react-primitive": "2.1.7",
- "@radix-ui/react-slot": "1.3.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-compose-refs": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.3.tgz",
- "integrity": "sha512-rYOP8OMnuuPMQF1uhPVlGNcCDlkokKqGFE3JcxFViIkAXP7EvFWUliJAstrapypaBLJNHbZL6jGhbVDGTwmVhA==",
- "license": "MIT",
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-context": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.4.tgz",
- "integrity": "sha512-QwH4PO5urrbO+FaGd5Aglg+YJgWTyyuZ3g/6mKvsqraLkglDdckw9JafgL5McL5VEJ6EPNduPaT3ZE9BttDAqg==",
- "license": "MIT",
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-context-menu": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-context-menu/-/react-context-menu-2.3.2.tgz",
- "integrity": "sha512-qzsA/ZPhF6yMxBOTIk1nlCkoy2mswSbwYL+ErBa2iP0s4WWrlxmczArYqMcpVfEjmM7KJj/ADPXky0yZfbSxtQ==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.4",
- "@radix-ui/react-context": "1.1.4",
- "@radix-ui/react-menu": "2.1.19",
- "@radix-ui/react-primitive": "2.1.7",
- "@radix-ui/react-use-controllable-state": "1.2.3"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-dialog": {
- "version": "1.1.18",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.18.tgz",
- "integrity": "sha512-apa28mldjMgORmE6g/w3sCcA0Y9UAVeeDVoozN4i7kOw12mLl9RBchfzK3Nn6qxOWjrZhK1Lfy7f07kyzxtnBw==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.4",
- "@radix-ui/react-compose-refs": "1.1.3",
- "@radix-ui/react-context": "1.1.4",
- "@radix-ui/react-dismissable-layer": "1.1.14",
- "@radix-ui/react-focus-guards": "1.1.4",
- "@radix-ui/react-focus-scope": "1.1.11",
- "@radix-ui/react-id": "1.1.2",
- "@radix-ui/react-portal": "1.1.13",
- "@radix-ui/react-presence": "1.1.6",
- "@radix-ui/react-primitive": "2.1.7",
- "@radix-ui/react-slot": "1.3.0",
- "@radix-ui/react-use-controllable-state": "1.2.3",
- "aria-hidden": "^1.2.4",
- "react-remove-scroll": "^2.7.2"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-direction": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.2.tgz",
- "integrity": "sha512-C3vFhbyi4SW3PmbAi6Awpu4OzJtd0MxGurvSsYtr7p7nM8RNB3VAF3CUmnp2j50knpkrRcB7+ycVXzgLgF6yNA==",
- "license": "MIT",
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-dismissable-layer": {
- "version": "1.1.14",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.14.tgz",
- "integrity": "sha512-4lUhWTWAjbDIqFrAPWJ3WqBOpO5YchVZ88X3nh6H9Lu5AFi5nCUeTPj3D8FSDmabmFeRe9ME0BDA4MwKTha5GQ==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.4",
- "@radix-ui/react-compose-refs": "1.1.3",
- "@radix-ui/react-primitive": "2.1.7",
- "@radix-ui/react-use-callback-ref": "1.1.2",
- "@radix-ui/react-use-effect-event": "0.0.3"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-dropdown-menu": {
- "version": "2.1.19",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.19.tgz",
- "integrity": "sha512-HZccBkbK0LOi8nYKIp5jll/zIRW0cCOmG6WWyqsSpmXCU+ZlcBbTqIwlBvPCu886C5RVu6c/kHV7xSP8IgYNHw==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.4",
- "@radix-ui/react-compose-refs": "1.1.3",
- "@radix-ui/react-context": "1.1.4",
- "@radix-ui/react-id": "1.1.2",
- "@radix-ui/react-menu": "2.1.19",
- "@radix-ui/react-primitive": "2.1.7",
- "@radix-ui/react-use-controllable-state": "1.2.3"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-focus-guards": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.4.tgz",
- "integrity": "sha512-cot/aB/mOm0IYVYTTmQcEEK1M48lZWi8FlYe5nDPQQ8NYZUlXEFgncJ9p2Kzer3RKSrY7cTTpEMLZKNo9QoP5Q==",
- "license": "MIT",
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-focus-scope": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.11.tgz",
- "integrity": "sha512-Mn88Vg2whaRocGJNOH+DKFqYm6ySFPQaiwHNxZPyjn99B52KAEJWWY9NP83+nWdk2HM3rdov+STu9AG471Rt9w==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-compose-refs": "1.1.3",
- "@radix-ui/react-primitive": "2.1.7",
- "@radix-ui/react-use-callback-ref": "1.1.2"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-form": {
- "version": "0.1.11",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-form/-/react-form-0.1.11.tgz",
- "integrity": "sha512-0mTMJHv1gQAuEQoq5VDpTD3MRgmfUFdXAVFhpqR7wBeUr+tyRsof0wv/4XdPHLwQrefhoH2FiGHCggrCJhalIw==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.4",
- "@radix-ui/react-compose-refs": "1.1.3",
- "@radix-ui/react-context": "1.1.4",
- "@radix-ui/react-id": "1.1.2",
- "@radix-ui/react-label": "2.1.11",
- "@radix-ui/react-primitive": "2.1.7"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-hover-card": {
- "version": "1.1.18",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-hover-card/-/react-hover-card-1.1.18.tgz",
- "integrity": "sha512-rt+Fx4HoCeEwFL2IdoV2QaPltqDLlzxN77i9nwB3Y70scFlfAHh1QCdE2TXKuFJtA1TNygb0oivnFBZifgtZOw==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.4",
- "@radix-ui/react-compose-refs": "1.1.3",
- "@radix-ui/react-context": "1.1.4",
- "@radix-ui/react-dismissable-layer": "1.1.14",
- "@radix-ui/react-popper": "1.3.2",
- "@radix-ui/react-portal": "1.1.13",
- "@radix-ui/react-presence": "1.1.6",
- "@radix-ui/react-primitive": "2.1.7",
- "@radix-ui/react-use-controllable-state": "1.2.3"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-id": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.2.tgz",
- "integrity": "sha512-orBC88futVpqCmhX1p4cvquNHsELQ+w+vBJnuj3ftETI5bJb0bZn3Tqu3SWN2IOcPycTnMGnhwoermvISt72sA==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-use-layout-effect": "1.1.2"
- },
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-label": {
- "version": "2.1.11",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.11.tgz",
- "integrity": "sha512-3PKvDDxOn62k0oV1n4QtNtD2vpu+zYjXR7ojLBPaO6SPvhy53yg0vAmgNeBQeJW5rV3dffoRG+HYfLBZuzw0CQ==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-primitive": "2.1.7"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-menu": {
- "version": "2.1.19",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.19.tgz",
- "integrity": "sha512-Mht9BVd1AIsNFVQr4KG3bIK7XQn5IXF0TL/2ObsrzOdc1loaly/+kBDL5roSCYn8j8XZkvpOD0WYLz2FQtH1Eg==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.4",
- "@radix-ui/react-collection": "1.1.11",
- "@radix-ui/react-compose-refs": "1.1.3",
- "@radix-ui/react-context": "1.1.4",
- "@radix-ui/react-direction": "1.1.2",
- "@radix-ui/react-dismissable-layer": "1.1.14",
- "@radix-ui/react-focus-guards": "1.1.4",
- "@radix-ui/react-focus-scope": "1.1.11",
- "@radix-ui/react-id": "1.1.2",
- "@radix-ui/react-popper": "1.3.2",
- "@radix-ui/react-portal": "1.1.13",
- "@radix-ui/react-presence": "1.1.6",
- "@radix-ui/react-primitive": "2.1.7",
- "@radix-ui/react-roving-focus": "1.1.14",
- "@radix-ui/react-slot": "1.3.0",
- "@radix-ui/react-use-callback-ref": "1.1.2",
- "aria-hidden": "^1.2.4",
- "react-remove-scroll": "^2.7.2"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-menubar": {
- "version": "1.1.19",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-menubar/-/react-menubar-1.1.19.tgz",
- "integrity": "sha512-Glt6mebxcgQvLeVkH3HiqV5bgQubE+31ELxLs7q0GlYI5k0XYkOkeuPrhXoylxK8eufvIt9CJjzY1TfFMXK3qw==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.4",
- "@radix-ui/react-collection": "1.1.11",
- "@radix-ui/react-compose-refs": "1.1.3",
- "@radix-ui/react-context": "1.1.4",
- "@radix-ui/react-direction": "1.1.2",
- "@radix-ui/react-id": "1.1.2",
- "@radix-ui/react-menu": "2.1.19",
- "@radix-ui/react-primitive": "2.1.7",
- "@radix-ui/react-roving-focus": "1.1.14",
- "@radix-ui/react-use-controllable-state": "1.2.3"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-navigation-menu": {
- "version": "1.2.17",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-navigation-menu/-/react-navigation-menu-1.2.17.tgz",
- "integrity": "sha512-fYeYQvbeNn5AQk2RBbpO7koLm2YbS00UYxC/IL2sgLlninEH5UNIv+X3E0KJ1Vy4WIo+dhN9w8GNqSHhbHWCIg==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.4",
- "@radix-ui/react-collection": "1.1.11",
- "@radix-ui/react-compose-refs": "1.1.3",
- "@radix-ui/react-context": "1.1.4",
- "@radix-ui/react-direction": "1.1.2",
- "@radix-ui/react-dismissable-layer": "1.1.14",
- "@radix-ui/react-id": "1.1.2",
- "@radix-ui/react-presence": "1.1.6",
- "@radix-ui/react-primitive": "2.1.7",
- "@radix-ui/react-use-callback-ref": "1.1.2",
- "@radix-ui/react-use-controllable-state": "1.2.3",
- "@radix-ui/react-use-layout-effect": "1.1.2",
- "@radix-ui/react-use-previous": "1.1.2",
- "@radix-ui/react-visually-hidden": "1.2.7"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-one-time-password-field": {
- "version": "0.1.11",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-one-time-password-field/-/react-one-time-password-field-0.1.11.tgz",
- "integrity": "sha512-Rsgab65u73E5kPVh8OS6PgPwJgPyf08GFfJDGAbMdF4DL7CgDhFOaDnXuk/DiMEVF6kgQwl0oJmFklvipmiOLg==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/number": "1.1.2",
- "@radix-ui/primitive": "1.1.4",
- "@radix-ui/react-collection": "1.1.11",
- "@radix-ui/react-compose-refs": "1.1.3",
- "@radix-ui/react-context": "1.1.4",
- "@radix-ui/react-direction": "1.1.2",
- "@radix-ui/react-primitive": "2.1.7",
- "@radix-ui/react-roving-focus": "1.1.14",
- "@radix-ui/react-use-controllable-state": "1.2.3",
- "@radix-ui/react-use-effect-event": "0.0.3",
- "@radix-ui/react-use-is-hydrated": "0.1.1",
- "@radix-ui/react-use-layout-effect": "1.1.2"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-password-toggle-field": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-password-toggle-field/-/react-password-toggle-field-0.1.6.tgz",
- "integrity": "sha512-pQ3xGp/uemomASPH97Eb3shfXX8QlG11bBJyEvRBV+vwtO4HvQlS06Yj9f31Ao7XepvF98SFrRgVDQ7jv+2xjQ==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.4",
- "@radix-ui/react-compose-refs": "1.1.3",
- "@radix-ui/react-context": "1.1.4",
- "@radix-ui/react-id": "1.1.2",
- "@radix-ui/react-primitive": "2.1.7",
- "@radix-ui/react-use-controllable-state": "1.2.3",
- "@radix-ui/react-use-effect-event": "0.0.3",
- "@radix-ui/react-use-is-hydrated": "0.1.1"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-popover": {
- "version": "1.1.18",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.18.tgz",
- "integrity": "sha512-qdXDes+eHlnMUGlBAAAe5EG7oOQvqsXuq4mq585diMudg80iB+jHbsSeG3+Q4eWNsogNyhqU2p/3i+Y0iEepqg==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.4",
- "@radix-ui/react-compose-refs": "1.1.3",
- "@radix-ui/react-context": "1.1.4",
- "@radix-ui/react-dismissable-layer": "1.1.14",
- "@radix-ui/react-focus-guards": "1.1.4",
- "@radix-ui/react-focus-scope": "1.1.11",
- "@radix-ui/react-id": "1.1.2",
- "@radix-ui/react-popper": "1.3.2",
- "@radix-ui/react-portal": "1.1.13",
- "@radix-ui/react-presence": "1.1.6",
- "@radix-ui/react-primitive": "2.1.7",
- "@radix-ui/react-slot": "1.3.0",
- "@radix-ui/react-use-controllable-state": "1.2.3",
- "aria-hidden": "^1.2.4",
- "react-remove-scroll": "^2.7.2"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-popper": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.3.2.tgz",
- "integrity": "sha512-3QXNeMkdshed1MR3LNoiCirBywRFPkD8ETJa/HlPuLwSajaQixf2ro+isoDNJlGABg9ug41XuZpINZJIle4XWg==",
- "license": "MIT",
- "dependencies": {
- "@floating-ui/react-dom": "^2.0.0",
- "@radix-ui/react-arrow": "1.1.11",
- "@radix-ui/react-compose-refs": "1.1.3",
- "@radix-ui/react-context": "1.1.4",
- "@radix-ui/react-primitive": "2.1.7",
- "@radix-ui/react-use-callback-ref": "1.1.2",
- "@radix-ui/react-use-layout-effect": "1.1.2",
- "@radix-ui/react-use-rect": "1.1.2",
- "@radix-ui/react-use-size": "1.1.2",
- "@radix-ui/rect": "1.1.2"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-portal": {
- "version": "1.1.13",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.13.tgz",
- "integrity": "sha512-z3oXfmaHLJTF1wktbjgD6cn9jiEbq3WSondB10LIuIt2m2Ym4iJlrW04/euMwENDdWDdE7z+OuY7Qyp1YpRSwA==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-primitive": "2.1.7",
- "@radix-ui/react-use-layout-effect": "1.1.2"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-presence": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.6.tgz",
- "integrity": "sha512-zdTk4PlUO0E18HnZ3wYbW0KkJJxWCdiNYp6g6X1PtONFhxVkg01vliTJAmwIszU6mHiyBOoW9P0rAugl5/hULQ==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-use-layout-effect": "1.1.2"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-primitive": {
- "version": "2.1.7",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.7.tgz",
- "integrity": "sha512-bC3NiwsprbxKjuon9l7X6BUTw7FPVzEYaL92MPEY5SCd/9hUTPXVFtVwRix7778wtRsVao+zE062gL79FZleeQ==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-slot": "1.3.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-progress": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-progress/-/react-progress-1.1.11.tgz",
- "integrity": "sha512-KqiGJcFaZDc+BvveAgU3ZhACg2MvSUDrCBx4lRR/ZVRNal0bvt8lBpvnSkep9heeOuF8Qfw3fszLDX4OpQ2NVw==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-context": "1.1.4",
- "@radix-ui/react-primitive": "2.1.7"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-radio-group": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-radio-group/-/react-radio-group-1.4.2.tgz",
- "integrity": "sha512-W8Uo9riHnlzLLWy+r2mVHUyuEWqD/+be4PZzbEvaGoFSBDHkm+GYWjtcE6u3AmPKNyfanWpnVfpZ2GqPCdzzsw==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.4",
- "@radix-ui/react-compose-refs": "1.1.3",
- "@radix-ui/react-context": "1.1.4",
- "@radix-ui/react-direction": "1.1.2",
- "@radix-ui/react-presence": "1.1.6",
- "@radix-ui/react-primitive": "2.1.7",
- "@radix-ui/react-roving-focus": "1.1.14",
- "@radix-ui/react-use-controllable-state": "1.2.3",
- "@radix-ui/react-use-previous": "1.1.2",
- "@radix-ui/react-use-size": "1.1.2"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-roving-focus": {
- "version": "1.1.14",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.14.tgz",
- "integrity": "sha512-8Qcnx9447tx/aCBgw6Jenfqg4Skq+vqab9mCBmuGNipIS5YXvL275wbKEu7+ICYHIlAPgCduUMJH1XOYewKF6Q==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.4",
- "@radix-ui/react-collection": "1.1.11",
- "@radix-ui/react-compose-refs": "1.1.3",
- "@radix-ui/react-context": "1.1.4",
- "@radix-ui/react-direction": "1.1.2",
- "@radix-ui/react-id": "1.1.2",
- "@radix-ui/react-primitive": "2.1.7",
- "@radix-ui/react-use-callback-ref": "1.1.2",
- "@radix-ui/react-use-controllable-state": "1.2.3"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-scroll-area": {
- "version": "1.2.13",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.2.13.tgz",
- "integrity": "sha512-7tncSubo2G0UY1e8rk+72qe3XRzrGnOLtZQ1PL1KoBfRUNX0NrJT5akb+0kfwSCc3gVR4wdHqyhAQBDpDNOwDw==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/number": "1.1.2",
- "@radix-ui/primitive": "1.1.4",
- "@radix-ui/react-compose-refs": "1.1.3",
- "@radix-ui/react-context": "1.1.4",
- "@radix-ui/react-direction": "1.1.2",
- "@radix-ui/react-presence": "1.1.6",
- "@radix-ui/react-primitive": "2.1.7",
- "@radix-ui/react-use-callback-ref": "1.1.2",
- "@radix-ui/react-use-layout-effect": "1.1.2"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-select": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.3.2.tgz",
- "integrity": "sha512-brXD6C/V0fVK0DDbscLVw6LsXrjQ+ay8jdOBaN+tLb4vsHsAMm6Gt6eT77wHX1Eq8GPtD5rJ+RxFtfDozsb4+Q==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/number": "1.1.2",
- "@radix-ui/primitive": "1.1.4",
- "@radix-ui/react-collection": "1.1.11",
- "@radix-ui/react-compose-refs": "1.1.3",
- "@radix-ui/react-context": "1.1.4",
- "@radix-ui/react-direction": "1.1.2",
- "@radix-ui/react-dismissable-layer": "1.1.14",
- "@radix-ui/react-focus-guards": "1.1.4",
- "@radix-ui/react-focus-scope": "1.1.11",
- "@radix-ui/react-id": "1.1.2",
- "@radix-ui/react-popper": "1.3.2",
- "@radix-ui/react-portal": "1.1.13",
- "@radix-ui/react-presence": "1.1.6",
- "@radix-ui/react-primitive": "2.1.7",
- "@radix-ui/react-slot": "1.3.0",
- "@radix-ui/react-use-callback-ref": "1.1.2",
- "@radix-ui/react-use-controllable-state": "1.2.3",
- "@radix-ui/react-use-layout-effect": "1.1.2",
- "@radix-ui/react-use-previous": "1.1.2",
- "@radix-ui/react-visually-hidden": "1.2.7",
- "aria-hidden": "^1.2.4",
- "react-remove-scroll": "^2.7.2"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-separator": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.1.11.tgz",
- "integrity": "sha512-jRhe86+8PF7VZ1u14eOWVOuh2BuAhALg/FT1VcMC4OHedMTRUazDnDlKTt+yxo5cRNKHMfmvZ4sSQtWDeMV4CQ==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-primitive": "2.1.7"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-slider": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-slider/-/react-slider-1.4.2.tgz",
- "integrity": "sha512-qt5C1ppJz66aUDrH1VccjPrq7aFchK0wBrn6xsxlCHNUyE57dRRQ7lp1QFpF7OscMexZF8MCGBTVBlENHPkNiA==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/number": "1.1.2",
- "@radix-ui/primitive": "1.1.4",
- "@radix-ui/react-collection": "1.1.11",
- "@radix-ui/react-compose-refs": "1.1.3",
- "@radix-ui/react-context": "1.1.4",
- "@radix-ui/react-direction": "1.1.2",
- "@radix-ui/react-primitive": "2.1.7",
- "@radix-ui/react-use-controllable-state": "1.2.3",
- "@radix-ui/react-use-layout-effect": "1.1.2",
- "@radix-ui/react-use-previous": "1.1.2",
- "@radix-ui/react-use-size": "1.1.2"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-slot": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.3.0.tgz",
- "integrity": "sha512-MojKku4U/miO8Av4Dkb+ctMAQx7JmY96LmtDQlAarCRtd7rN52QCSzBF+XAvr5S6coSVj9HEPBgHAHKEJVk/WA==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-compose-refs": "1.1.3"
- },
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-switch": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.3.2.tgz",
- "integrity": "sha512-tgRBI3DdNwAJYE4BBZyZcz/HRRCvAsPkRvG1wvKc+41tBGMxPn/a87T/wikXAvyDypNQ9kaZwHbeZe+veHCGpA==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.4",
- "@radix-ui/react-compose-refs": "1.1.3",
- "@radix-ui/react-context": "1.1.4",
- "@radix-ui/react-primitive": "2.1.7",
- "@radix-ui/react-use-controllable-state": "1.2.3",
- "@radix-ui/react-use-previous": "1.1.2",
- "@radix-ui/react-use-size": "1.1.2"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-tabs": {
- "version": "1.1.16",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.16.tgz",
- "integrity": "sha512-v3Ab2l7z6U7tRB4xA0IyKdq0OsqaO1o9ZjsIEoKKnSZ/l96mZz8aCTX0NCXw+YVHJXr8Km4d+Mn6/Q8YjXa+gw==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.4",
- "@radix-ui/react-context": "1.1.4",
- "@radix-ui/react-direction": "1.1.2",
- "@radix-ui/react-id": "1.1.2",
- "@radix-ui/react-presence": "1.1.6",
- "@radix-ui/react-primitive": "2.1.7",
- "@radix-ui/react-roving-focus": "1.1.14",
- "@radix-ui/react-use-controllable-state": "1.2.3"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-toast": {
- "version": "1.2.18",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-toast/-/react-toast-1.2.18.tgz",
- "integrity": "sha512-YNEnTHV47hPep+U0QvVM02OJNka9uygREc+k4Nh5VSZBg4MmE+myI442x3hCGfRpX7N2WSSYSJKws4gE+Z8lgg==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.4",
- "@radix-ui/react-collection": "1.1.11",
- "@radix-ui/react-compose-refs": "1.1.3",
- "@radix-ui/react-context": "1.1.4",
- "@radix-ui/react-dismissable-layer": "1.1.14",
- "@radix-ui/react-portal": "1.1.13",
- "@radix-ui/react-presence": "1.1.6",
- "@radix-ui/react-primitive": "2.1.7",
- "@radix-ui/react-use-callback-ref": "1.1.2",
- "@radix-ui/react-use-controllable-state": "1.2.3",
- "@radix-ui/react-use-layout-effect": "1.1.2",
- "@radix-ui/react-visually-hidden": "1.2.7"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-toggle": {
- "version": "1.1.13",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle/-/react-toggle-1.1.13.tgz",
- "integrity": "sha512-bI2ILJrzwgmAsH05TsJ9pVrzqQwAip7OM2/krqAdYn0R16bl86UPWbe5VPHsALat0EnqpV01cGtkleaUKPNdNg==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.4",
- "@radix-ui/react-primitive": "2.1.7",
- "@radix-ui/react-use-controllable-state": "1.2.3"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-toggle-group": {
- "version": "1.1.14",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle-group/-/react-toggle-group-1.1.14.tgz",
- "integrity": "sha512-TK1vusNKb8IRhF23FTbRgUNZ9zfs5rGIyI7LfR3h26p9LrQ060i0uW9QWeD8baZMddaaP0DBGlIa6pbZG+mitg==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.4",
- "@radix-ui/react-context": "1.1.4",
- "@radix-ui/react-direction": "1.1.2",
- "@radix-ui/react-primitive": "2.1.7",
- "@radix-ui/react-roving-focus": "1.1.14",
- "@radix-ui/react-toggle": "1.1.13",
- "@radix-ui/react-use-controllable-state": "1.2.3"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-toolbar": {
- "version": "1.1.14",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-toolbar/-/react-toolbar-1.1.14.tgz",
- "integrity": "sha512-L/EkWVqlnj3lL2toHh4C7PwH2jxfa7OCq6lGfXSCii99ve2S4Ux5rc9HnOa7LN9exHa/Nl9kmCAmP9BuDPy5UA==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.4",
- "@radix-ui/react-context": "1.1.4",
- "@radix-ui/react-direction": "1.1.2",
- "@radix-ui/react-primitive": "2.1.7",
- "@radix-ui/react-roving-focus": "1.1.14",
- "@radix-ui/react-separator": "1.1.11",
- "@radix-ui/react-toggle-group": "1.1.14"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-tooltip": {
- "version": "1.2.11",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.2.11.tgz",
- "integrity": "sha512-8XZ6Py3y3W2nEzAUGCN5cfVKaUi+CVApcz1d6lrNVVf2hvYEixMRkq8k9ggPKnQUpRRuOV5avt8uvxViH2jLwA==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.4",
- "@radix-ui/react-compose-refs": "1.1.3",
- "@radix-ui/react-context": "1.1.4",
- "@radix-ui/react-dismissable-layer": "1.1.14",
- "@radix-ui/react-id": "1.1.2",
- "@radix-ui/react-popper": "1.3.2",
- "@radix-ui/react-portal": "1.1.13",
- "@radix-ui/react-presence": "1.1.6",
- "@radix-ui/react-primitive": "2.1.7",
- "@radix-ui/react-slot": "1.3.0",
- "@radix-ui/react-use-controllable-state": "1.2.3",
- "@radix-ui/react-visually-hidden": "1.2.7"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-use-callback-ref": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.2.tgz",
- "integrity": "sha512-xCso9j1/u8sEgP1RNHjFrXJLApL8LiqOkI1R4ywuN00rxWdYg4oQXuwKLS3i0j5NWLromUD27/4nlxj2UFVvIw==",
- "license": "MIT",
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-use-controllable-state": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.3.tgz",
- "integrity": "sha512-PLzC90MS+ReootmjC597dvopoelpZ8Q61HJkDXZSExitIq7PL55vHNnesAHwguHK0aPfBnpdNzQtv1uliaqQrA==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-use-effect-event": "0.0.3",
- "@radix-ui/react-use-layout-effect": "1.1.2"
- },
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-use-effect-event": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.3.tgz",
- "integrity": "sha512-6c8ZqvPTWILEKnyVkP53EGRCcpnJiKTC21sS/6R1GF5xKyHJJWQEPfkqlcgUkdRQivd6tb23abUwe4ngWmY0JA==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-use-layout-effect": "1.1.2"
- },
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-use-escape-keydown": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.3.tgz",
- "integrity": "sha512-3wEkMiPHXha/2VadZ68rYBcmYnPINVGl4Y3gtcM7fKRjANk0OscK+cdqBgUWdozb7YJxsh0vefM7vgAMHXOjqg==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-use-callback-ref": "1.1.2"
- },
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-use-is-hydrated": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-is-hydrated/-/react-use-is-hydrated-0.1.1.tgz",
- "integrity": "sha512-qwOiz4Tjo8CNnrOLAYUMXeZwDzXgXpvK4TKQPmWLECM9XoWvA6+0Z2/7Ag3A4ivjS4ovbLJPbskkxioFyBhr8A==",
- "license": "MIT",
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-use-layout-effect": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.2.tgz",
- "integrity": "sha512-jrBWOxZITuGcnjRCM2t2U5ZPkCLxD+Ym6DjfssS5haTj2iiak/DOb64JeN6OdLfLgptb6/e2kKR+ZuTrGoZTPA==",
- "license": "MIT",
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-use-previous": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.2.tgz",
- "integrity": "sha512-IGBQPtRFdhN6MQ8dbegVmBq1LVZluya3F1jWY+puIcQC3MHctRwTDSBWCkL/3ZcnMJLTMJ++Z+ktmvg0F89iCw==",
- "license": "MIT",
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-use-rect": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.2.tgz",
- "integrity": "sha512-d8a+bBY/FxikNPlgJJoaBHZX+zKVbWHYJGTLnLvveQgFSTntkGdEKv3JDtHrMS0DNYpllz2nRsTLGLKYttbpmw==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/rect": "1.1.2"
- },
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-use-size": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.2.tgz",
- "integrity": "sha512-giWQp+4mxjBPt4KZ0MmyuykFNWfbDxKt4x+fPkRYmgRFJSbCZFzUglvMb/Kjn38tm10YP4ufiQZDx3zna4LU6w==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-use-layout-effect": "1.1.2"
- },
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-visually-hidden": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.2.7.tgz",
- "integrity": "sha512-1wNZBggTDK3GRuuQ6nP4k2yi7a6l7I5qbMPbZcRsrGsGVead/f/d5FhEzUvqFs0bcrDLx7n1zKQ3JvLR6whaaw==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-primitive": "2.1.7"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/rect": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.2.tgz",
- "integrity": "sha512-xnXE7wG13PI+cxieVssYXlQJuYVRhH9NBoxt3KNwzghDIA69GMm7d4wXRouHIYjE+KvS6U/MsMO73NdS2MH9ZA==",
- "license": "MIT"
- },
- "node_modules/@rolldown/binding-android-arm64": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.1.4.tgz",
- "integrity": "sha512-EZLpf/8y7GXkkra90ML47kzik/GMP3EMcE9bPyHmRfxLC6z9+aW5A8poCsoxjrT5GfEcNAAvWwUHjvP1pUQkfw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-darwin-arm64": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.1.4.tgz",
- "integrity": "sha512-aUi+HBvmYb7j8krl1+qJgkG8C17fO79gk3c+jPw4S8glRFc1DTija9S3EyaTSQUm5GJXYKDAsugBEhFHH2vYiQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-darwin-x64": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.1.4.tgz",
- "integrity": "sha512-F7hHC3gwY11+vByKPRWqwGbeXWVgKmL+pTGCinaEhdihzBV2aQ0fvZOch9cXYUOKuKKq429HeYXOqQLc7wFCEg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-freebsd-x64": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.1.4.tgz",
- "integrity": "sha512-sI5yw+7s92SK6odiEhD5lKCBlWcpjHS5qyqpVQbZAJ0fIzEUXrmbl3DH2ybR3PZogulNJF+COLtmA8hUfvkCCQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-linux-arm-gnueabihf": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.1.4.tgz",
- "integrity": "sha512-mCi0OKgEieFircrtVYmQAFGszRtMnZ6fpZAXrxanXAu7lqZcsK1E1RAaZNG0uKAnxox3B1f4EyQNnoyMfN1vAA==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-linux-arm64-gnu": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.1.4.tgz",
- "integrity": "sha512-B9Ial3Kv5sh0SHnB1g/QWcUQCEvCF6QKGAl4zXypYj65mVI+B4AhFBwPtSN7pDrJeIx8Z7zdy4ntx+wQABom7w==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-linux-arm64-musl": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.1.4.tgz",
- "integrity": "sha512-lZVym0PuHE1KZ22gmFTC15lAkrg9iTszR617oYRB/iPY1A56ywoJzVKOJBKaot5RiikCObmur6pogpse3gRcng==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "libc": [
- "musl"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-linux-ppc64-gnu": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.1.4.tgz",
- "integrity": "sha512-t2DNiLJWNTbnEHyUzTumldML6ET4/g16467LZoDDJ3tSxGvguL5/NyC2lCsNKuyRycg9XeDQF5SSv+TNOhQEXg==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-linux-s390x-gnu": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.1.4.tgz",
- "integrity": "sha512-0WIRnL1Uw4BvTZRLQt+PVgo6ZKTJadlC2btP+/EOXv2f/DWbY0rEgl+y834mIVwP1FkTlWVTrGGJXf12lru7EQ==",
- "cpu": [
- "s390x"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-linux-x64-gnu": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.1.4.tgz",
- "integrity": "sha512-JWtGshGfX+oENAKonoNkqEJX+7hC8yfhi9GUyPX1VX4mdh1y5r+ZiJLR5XzAB0aoP6s/PcILsGjKq8O0mm24bw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-linux-x64-musl": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.1.4.tgz",
- "integrity": "sha512-rT6yQcxUuXs4CnbofqwHRRV0iem349rLMYpTjkgQGLjrY4ado/eDzwPZPTCgTOlF6Nkp8NEv70yLMTn6qkWxsQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "libc": [
- "musl"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-openharmony-arm64": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.1.4.tgz",
- "integrity": "sha512-KXMGoboq5cyaCQjDA4GLuRiOwBQ0EyFnJoVViLeZ45/3rFItRODEr+NdsBcVpll40hhNArlm/speWGRvj08LzA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openharmony"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-wasm32-wasi": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.1.4.tgz",
- "integrity": "sha512-5K83rb36oJiY7BCyE9zLZtGcPV4g5wvq+xwdO0XPIwDVZI8cyB/AUjkNXGb92/rnmezEkjMOpgY61rtwjQtFwg==",
- "cpu": [
- "wasm32"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "@emnapi/core": "1.11.1",
- "@emnapi/runtime": "1.11.1",
- "@napi-rs/wasm-runtime": "^1.1.6"
- },
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-win32-arm64-msvc": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.1.4.tgz",
- "integrity": "sha512-PnWBtw3TV5KOg69HQQDR0mnQuyCmSGR2pAB4DC1rPF808fgKeTUMj2EOEyKATpgiuxuR5APQmiDO7PDgEjTFSA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-win32-x64-msvc": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.1.4.tgz",
- "integrity": "sha512-M1lpniBePobTfsa7Ks9a199e1akxsXn+GYBUKsEzv3YFzOm1HJAMNwKI3qr0Zq+mxwx9gOZoTdP1yXRYsZUocQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/pluginutils": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz",
- "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@shadcn/react": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/@shadcn/react/-/react-0.2.0.tgz",
- "integrity": "sha512-g/LMtyL0eiHCHkOCelhYf32RC5nTMdtUNag1ZQRhSDCW+jnHxDY1Dajk7P6zJosOg8z2N4wzfKOY5sh54QTDYA==",
- "license": "MIT",
- "peerDependencies": {
- "@types/react": ">=19",
- "react": ">=19"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "react": {
- "optional": true
- }
- }
- },
- "node_modules/@tailwindcss/node": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.3.2.tgz",
- "integrity": "sha512-yWP/sqEcBLaD8JuA6zNwxoYKr75qxTioYwlRwekj5Jr/I5GXnoJfjetH/psLUIv74cYTH2lBUEzBkinthoYcBg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/remapping": "^2.3.5",
- "enhanced-resolve": "5.21.6",
- "jiti": "^2.7.0",
- "lightningcss": "1.32.0",
- "magic-string": "^0.30.21",
- "source-map-js": "^1.2.1",
- "tailwindcss": "4.3.2"
- }
- },
- "node_modules/@tailwindcss/oxide": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.3.2.tgz",
- "integrity": "sha512-z8ZgnzX8gdNoWLBLqBPoh/sjnxkwvf9ZuWjnO0l0yIzbLa5/9S+eC5QxGZKRobVHIC3/1BoMWjHblqWjcgFgag==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 20"
- },
- "optionalDependencies": {
- "@tailwindcss/oxide-android-arm64": "4.3.2",
- "@tailwindcss/oxide-darwin-arm64": "4.3.2",
- "@tailwindcss/oxide-darwin-x64": "4.3.2",
- "@tailwindcss/oxide-freebsd-x64": "4.3.2",
- "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.2",
- "@tailwindcss/oxide-linux-arm64-gnu": "4.3.2",
- "@tailwindcss/oxide-linux-arm64-musl": "4.3.2",
- "@tailwindcss/oxide-linux-x64-gnu": "4.3.2",
- "@tailwindcss/oxide-linux-x64-musl": "4.3.2",
- "@tailwindcss/oxide-wasm32-wasi": "4.3.2",
- "@tailwindcss/oxide-win32-arm64-msvc": "4.3.2",
- "@tailwindcss/oxide-win32-x64-msvc": "4.3.2"
- }
- },
- "node_modules/@tailwindcss/oxide-android-arm64": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.3.2.tgz",
- "integrity": "sha512-WHxqIuHpvZ5VtdX6GTl1Ik/Vp2YuN42Et+0CdeaVd/frQ9jAvGmvR8vLT+jk3e8/Q3x8kECB9+R17pgpp2BulA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">= 20"
- }
- },
- "node_modules/@tailwindcss/oxide-darwin-arm64": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.3.2.tgz",
- "integrity": "sha512-GZypeUY/IDJW3877KeM+O67vbXr3MBnbtEL4aYhNErv/JWZhye2vGSWWG9tB6iiqR2MqRNkY8IOUy4NdSZV26w==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 20"
- }
- },
- "node_modules/@tailwindcss/oxide-darwin-x64": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.3.2.tgz",
- "integrity": "sha512-UIIzmefR6KO1sDU7MzRqAxC8iBpft/VhkGjTjnhoS6k7Z3rQ9wEgA1ODSiyH/tcSYssulNm4Ci3hOeK1jH7ccQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 20"
- }
- },
- "node_modules/@tailwindcss/oxide-freebsd-x64": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.3.2.tgz",
- "integrity": "sha512-GN+uAmcI6DNspnCDwtOAZrTz6oukJnp337qZvxqCGLd3BHBzJpO0ZbTLRvJNdztOeAmTzewewGIMPb0tk2R4WA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">= 20"
- }
- },
- "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.3.2.tgz",
- "integrity": "sha512-4ABn7qSbdHRwTiDiuWNegCyb5+2FJ4vKIKc3DmKrvAFw7MU1Lm11dIkTPwUaFdTzc7IsOpDbqBrlh0x6y36U/w==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 20"
- }
- },
- "node_modules/@tailwindcss/oxide-linux-arm64-gnu": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.3.2.tgz",
- "integrity": "sha512-wDgEIGwoM8w8pufh9LVt1PahDgNdKXrLC2qfAnV3vAmococ9RWbxeAw4pxPttd/TsJfwjyLf90Dg1y9y8I6Emw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 20"
- }
- },
- "node_modules/@tailwindcss/oxide-linux-arm64-musl": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.3.2.tgz",
- "integrity": "sha512-J5Nuk0uZQIiMTJj3LEx4sAA9tMFUoXQZFv1J6An+QGYe53HKRJuFDi0rpq/tuouCZeAbOBY3kQ6g8qeD4TUjtA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "libc": [
- "musl"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 20"
- }
- },
- "node_modules/@tailwindcss/oxide-linux-x64-gnu": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.3.2.tgz",
- "integrity": "sha512-kqCZpSKOBEJO4mz7OqWoofBZeXTAwaVGPj0ErAj7CojmhKpWVWVOnrt9dE8odoIraZq4oj3ausM37kXi+Tow8w==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 20"
- }
- },
- "node_modules/@tailwindcss/oxide-linux-x64-musl": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.3.2.tgz",
- "integrity": "sha512-cixpqbh2toJDmkuCRI68nXA8ZxNmdK9Y+9v5h3MC3ZQKy/0BO8AWzlkWyRM7JAFSGBlfig4YVTPsK6MVgqz1uw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "libc": [
- "musl"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 20"
- }
- },
- "node_modules/@tailwindcss/oxide-wasm32-wasi": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.3.2.tgz",
- "integrity": "sha512-4ec2Z/LOmRsAgU23CS4xeJfcJlmRg94A/XrbGRCF1gyU/zdDfRLYDVsS+ynSZCmGNxQ1jQriQOKMQeQxBA3Isw==",
- "bundleDependencies": [
- "@napi-rs/wasm-runtime",
- "@emnapi/core",
- "@emnapi/runtime",
- "@tybys/wasm-util",
- "@emnapi/wasi-threads",
- "tslib"
- ],
- "cpu": [
- "wasm32"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "@emnapi/core": "^1.11.1",
- "@emnapi/runtime": "^1.11.1",
- "@emnapi/wasi-threads": "^1.2.2",
- "@napi-rs/wasm-runtime": "^1.1.4",
- "@tybys/wasm-util": "^0.10.2",
- "tslib": "^2.8.1"
- },
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/@tailwindcss/oxide-win32-arm64-msvc": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.2.tgz",
- "integrity": "sha512-Zyr/M0+XcYZu3bZrUytc7TXvrk0ftWfl8gN2MwekNDzhqhKRUucMPSeOzM0o0wH5AWOU49BsKRrfKxI2atCPMQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 20"
- }
- },
- "node_modules/@tailwindcss/oxide-win32-x64-msvc": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.3.2.tgz",
- "integrity": "sha512-QI9BO7KlNZsp2GuO0jwAAj5jCDABOKXRkCk2XuKTSaNEFSdfzqswYVTtCHBNKHLsqyjFyFkqlDiwkNbTYSssMQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 20"
- }
- },
- "node_modules/@tailwindcss/vite": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.3.2.tgz",
- "integrity": "sha512-eHpMeX4JXfVNJDEcsouTeCBubJBTcTLigeaw/NTUW6PB5ATKKXdyonnXgTBX2VuRbjz1hjfz6C5XAhr52ImQXA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@tailwindcss/node": "4.3.2",
- "@tailwindcss/oxide": "4.3.2",
- "tailwindcss": "4.3.2"
- },
- "peerDependencies": {
- "vite": "^5.2.0 || ^6 || ^7 || ^8"
- }
- },
- "node_modules/@tybys/wasm-util": {
- "version": "0.10.3",
- "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz",
- "integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "tslib": "^2.4.0"
- }
- },
- "node_modules/@vitejs/plugin-react": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.0.3.tgz",
- "integrity": "sha512-vmFvco5/QuC2f9Oj+wTk0+9XeDFkHxSamwZKYc7MxYwKICfvUvlMhqKI0VuICPltGqh1neqBKDvO4kes1ya8vg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@rolldown/pluginutils": "^1.0.1"
- },
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- },
- "peerDependencies": {
- "@rolldown/plugin-babel": "^0.1.7 || ^0.2.0",
- "babel-plugin-react-compiler": "^1.0.0",
- "vite": "^8.0.0"
- },
- "peerDependenciesMeta": {
- "@rolldown/plugin-babel": {
- "optional": true
- },
- "babel-plugin-react-compiler": {
- "optional": true
- }
- }
- },
- "node_modules/aria-hidden": {
- "version": "1.2.6",
- "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz",
- "integrity": "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==",
- "license": "MIT",
- "dependencies": {
- "tslib": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/class-variance-authority": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz",
- "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==",
- "license": "Apache-2.0",
- "dependencies": {
- "clsx": "^2.1.1"
- },
- "funding": {
- "url": "https://polar.sh/cva"
- }
- },
- "node_modules/clsx": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
- "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/detect-libc": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
- "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/detect-node-es": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz",
- "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==",
- "license": "MIT"
- },
- "node_modules/enhanced-resolve": {
- "version": "5.21.6",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.21.6.tgz",
- "integrity": "sha512-aNnGCvbJ/RIyWo1IuhNdVjnNF+EjH9wpzpNHt+ci/m9He9LJvUN8wrCcXjp9cWsGNAuvSpVFTx/vraAFQ8qGjQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "graceful-fs": "^4.2.4",
- "tapable": "^2.3.3"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/fdir": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
- "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12.0.0"
- },
- "peerDependencies": {
- "picomatch": "^3 || ^4"
- },
- "peerDependenciesMeta": {
- "picomatch": {
- "optional": true
- }
- }
- },
- "node_modules/fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "dev": true,
- "hasInstallScript": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
- "node_modules/get-nonce": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz",
- "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/graceful-fs": {
- "version": "4.2.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
- "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/jiti": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz",
- "integrity": "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==",
- "dev": true,
- "license": "MIT",
- "bin": {
- "jiti": "lib/jiti-cli.mjs"
- }
- },
- "node_modules/laravel-vite-plugin": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/laravel-vite-plugin/-/laravel-vite-plugin-3.1.0.tgz",
- "integrity": "sha512-Fzocl+X4eQ9jOi0RwdphYRGkUbPJ3ky1pTAST5Ot18cS2gw6d2vldK2eCrlKDVjtibCjCx5qptYDlA0373n7qg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "picocolors": "^1.0.0",
- "tinyglobby": "^0.2.12",
- "vite-plugin-full-reload": "^1.1.0"
- },
- "bin": {
- "clean-orphaned-assets": "bin/clean.js"
- },
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- },
- "peerDependencies": {
- "fontaine": "^0.5.0",
- "vite": "^8.0.0"
- },
- "peerDependenciesMeta": {
- "fontaine": {
- "optional": true
- }
- }
- },
- "node_modules/lightningcss": {
- "version": "1.32.0",
- "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz",
- "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==",
- "dev": true,
- "license": "MPL-2.0",
- "dependencies": {
- "detect-libc": "^2.0.3"
- },
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- },
- "optionalDependencies": {
- "lightningcss-android-arm64": "1.32.0",
- "lightningcss-darwin-arm64": "1.32.0",
- "lightningcss-darwin-x64": "1.32.0",
- "lightningcss-freebsd-x64": "1.32.0",
- "lightningcss-linux-arm-gnueabihf": "1.32.0",
- "lightningcss-linux-arm64-gnu": "1.32.0",
- "lightningcss-linux-arm64-musl": "1.32.0",
- "lightningcss-linux-x64-gnu": "1.32.0",
- "lightningcss-linux-x64-musl": "1.32.0",
- "lightningcss-win32-arm64-msvc": "1.32.0",
- "lightningcss-win32-x64-msvc": "1.32.0"
- }
- },
- "node_modules/lightningcss-android-arm64": {
- "version": "1.32.0",
- "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz",
- "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-darwin-arm64": {
- "version": "1.32.0",
- "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz",
- "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-darwin-x64": {
- "version": "1.32.0",
- "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz",
- "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-freebsd-x64": {
- "version": "1.32.0",
- "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz",
- "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-arm-gnueabihf": {
- "version": "1.32.0",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz",
- "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-arm64-gnu": {
- "version": "1.32.0",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz",
- "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-arm64-musl": {
- "version": "1.32.0",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz",
- "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "libc": [
- "musl"
- ],
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-x64-gnu": {
- "version": "1.32.0",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz",
- "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-x64-musl": {
- "version": "1.32.0",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz",
- "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "libc": [
- "musl"
- ],
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-win32-arm64-msvc": {
- "version": "1.32.0",
- "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz",
- "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-win32-x64-msvc": {
- "version": "1.32.0",
- "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz",
- "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lucide-react": {
- "version": "1.23.0",
- "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.23.0.tgz",
- "integrity": "sha512-38BpJcD0JhFosxHApP/BYsBetLpQFRoTRzEzstM/XCc3jsAG7wqaY1lgVwxiUe3xqYE+lNxo2PkCmYwXWrwwIw==",
- "license": "ISC",
- "peerDependencies": {
- "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0"
- }
- },
- "node_modules/magic-string": {
- "version": "0.30.21",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
- "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/sourcemap-codec": "^1.5.5"
- }
- },
- "node_modules/nanoid": {
- "version": "3.3.16",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.16.tgz",
- "integrity": "sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "bin": {
- "nanoid": "bin/nanoid.cjs"
- },
- "engines": {
- "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
- }
- },
- "node_modules/picocolors": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
- "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/picomatch": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
- "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/postcss": {
- "version": "8.5.23",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.23.tgz",
- "integrity": "sha512-g50586zr4bZmwFiTlflMu8E0bDTb5I5gertgwAKmsdUlTQIhZtunzUlD1WSzwcVWPoAVpsrA6vlfCD7oXvRwgg==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/postcss"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "nanoid": "^3.3.16",
- "picocolors": "^1.1.1",
- "source-map-js": "^1.2.1"
- },
- "engines": {
- "node": "^10 || ^12 || >=14"
- }
- },
- "node_modules/radix-ui": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/radix-ui/-/radix-ui-1.6.1.tgz",
- "integrity": "sha512-QXDXJtB6sK83mLASONYUZCauatcWb+knFviFpN1EhtdbbmlsRmzCLrbZSKztnNiem2KOHIBbiDbauVB7SORXMw==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.4",
- "@radix-ui/react-accessible-icon": "1.1.11",
- "@radix-ui/react-accordion": "1.2.15",
- "@radix-ui/react-alert-dialog": "1.1.18",
- "@radix-ui/react-arrow": "1.1.11",
- "@radix-ui/react-aspect-ratio": "1.1.11",
- "@radix-ui/react-avatar": "1.2.1",
- "@radix-ui/react-checkbox": "1.3.6",
- "@radix-ui/react-collapsible": "1.1.15",
- "@radix-ui/react-collection": "1.1.11",
- "@radix-ui/react-compose-refs": "1.1.3",
- "@radix-ui/react-context": "1.1.4",
- "@radix-ui/react-context-menu": "2.3.2",
- "@radix-ui/react-dialog": "1.1.18",
- "@radix-ui/react-direction": "1.1.2",
- "@radix-ui/react-dismissable-layer": "1.1.14",
- "@radix-ui/react-dropdown-menu": "2.1.19",
- "@radix-ui/react-focus-guards": "1.1.4",
- "@radix-ui/react-focus-scope": "1.1.11",
- "@radix-ui/react-form": "0.1.11",
- "@radix-ui/react-hover-card": "1.1.18",
- "@radix-ui/react-label": "2.1.11",
- "@radix-ui/react-menu": "2.1.19",
- "@radix-ui/react-menubar": "1.1.19",
- "@radix-ui/react-navigation-menu": "1.2.17",
- "@radix-ui/react-one-time-password-field": "0.1.11",
- "@radix-ui/react-password-toggle-field": "0.1.6",
- "@radix-ui/react-popover": "1.1.18",
- "@radix-ui/react-popper": "1.3.2",
- "@radix-ui/react-portal": "1.1.13",
- "@radix-ui/react-presence": "1.1.6",
- "@radix-ui/react-primitive": "2.1.7",
- "@radix-ui/react-progress": "1.1.11",
- "@radix-ui/react-radio-group": "1.4.2",
- "@radix-ui/react-roving-focus": "1.1.14",
- "@radix-ui/react-scroll-area": "1.2.13",
- "@radix-ui/react-select": "2.3.2",
- "@radix-ui/react-separator": "1.1.11",
- "@radix-ui/react-slider": "1.4.2",
- "@radix-ui/react-slot": "1.3.0",
- "@radix-ui/react-switch": "1.3.2",
- "@radix-ui/react-tabs": "1.1.16",
- "@radix-ui/react-toast": "1.2.18",
- "@radix-ui/react-toggle": "1.1.13",
- "@radix-ui/react-toggle-group": "1.1.14",
- "@radix-ui/react-toolbar": "1.1.14",
- "@radix-ui/react-tooltip": "1.2.11",
- "@radix-ui/react-use-callback-ref": "1.1.2",
- "@radix-ui/react-use-controllable-state": "1.2.3",
- "@radix-ui/react-use-effect-event": "0.0.3",
- "@radix-ui/react-use-escape-keydown": "1.1.3",
- "@radix-ui/react-use-is-hydrated": "0.1.1",
- "@radix-ui/react-use-layout-effect": "1.1.2",
- "@radix-ui/react-use-size": "1.1.2",
- "@radix-ui/react-visually-hidden": "1.2.7"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/react": {
- "version": "19.2.7",
- "resolved": "https://registry.npmjs.org/react/-/react-19.2.7.tgz",
- "integrity": "sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/react-dom": {
- "version": "19.2.7",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.7.tgz",
- "integrity": "sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ==",
- "license": "MIT",
- "dependencies": {
- "scheduler": "^0.27.0"
- },
- "peerDependencies": {
- "react": "^19.2.7"
- }
- },
- "node_modules/react-remove-scroll": {
- "version": "2.7.2",
- "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.2.tgz",
- "integrity": "sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==",
- "license": "MIT",
- "dependencies": {
- "react-remove-scroll-bar": "^2.3.7",
- "react-style-singleton": "^2.2.3",
- "tslib": "^2.1.0",
- "use-callback-ref": "^1.3.3",
- "use-sidecar": "^1.1.3"
- },
- "engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/react-remove-scroll-bar": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz",
- "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==",
- "license": "MIT",
- "dependencies": {
- "react-style-singleton": "^2.2.2",
- "tslib": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/react-style-singleton": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz",
- "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==",
- "license": "MIT",
- "dependencies": {
- "get-nonce": "^1.0.0",
- "tslib": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/rolldown": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.1.4.tgz",
- "integrity": "sha512-IjZYiLxZwpnhwhdBH2ugdTGVSdhCQUmLxLoqyjiL0JxYjyRst+5a0P3xfrTxJ5F638j4Mvvw5FAX5XE6eHpXbA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@oxc-project/types": "=0.138.0",
- "@rolldown/pluginutils": "^1.0.0"
- },
- "bin": {
- "rolldown": "bin/cli.mjs"
- },
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- },
- "optionalDependencies": {
- "@rolldown/binding-android-arm64": "1.1.4",
- "@rolldown/binding-darwin-arm64": "1.1.4",
- "@rolldown/binding-darwin-x64": "1.1.4",
- "@rolldown/binding-freebsd-x64": "1.1.4",
- "@rolldown/binding-linux-arm-gnueabihf": "1.1.4",
- "@rolldown/binding-linux-arm64-gnu": "1.1.4",
- "@rolldown/binding-linux-arm64-musl": "1.1.4",
- "@rolldown/binding-linux-ppc64-gnu": "1.1.4",
- "@rolldown/binding-linux-s390x-gnu": "1.1.4",
- "@rolldown/binding-linux-x64-gnu": "1.1.4",
- "@rolldown/binding-linux-x64-musl": "1.1.4",
- "@rolldown/binding-openharmony-arm64": "1.1.4",
- "@rolldown/binding-wasm32-wasi": "1.1.4",
- "@rolldown/binding-win32-arm64-msvc": "1.1.4",
- "@rolldown/binding-win32-x64-msvc": "1.1.4"
- }
- },
- "node_modules/scheduler": {
- "version": "0.27.0",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz",
- "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==",
- "license": "MIT"
- },
- "node_modules/source-map-js": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.2.tgz",
- "integrity": "sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw==",
- "dev": true,
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/tailwind-merge": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.6.0.tgz",
- "integrity": "sha512-uxL7qAVQriqRQPAyK3pj66VqskWqoZ37PW94jwOTwNfq/z9oyu1V+eqrZqtR2+fCiXdYOZe/Modt8GtvqNzu+w==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/dcastil"
- }
- },
- "node_modules/tailwindcss": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.3.2.tgz",
- "integrity": "sha512-WtctNNSH8A9jlMIqxzuYumOHU5uGZyRv0Q5svQl+oEPy5w84YpBxdb7MdqyiSPQge5jTJ6zFQLq0PFygdccSBA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/tapable": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz",
- "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- }
- },
- "node_modules/tinyglobby": {
- "version": "0.2.17",
- "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz",
- "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "fdir": "^6.5.0",
- "picomatch": "^4.0.4"
- },
- "engines": {
- "node": ">=12.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/SuperchupuDev"
- }
- },
- "node_modules/tslib": {
- "version": "2.8.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
- "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
- "license": "0BSD"
- },
- "node_modules/use-callback-ref": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz",
- "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==",
- "license": "MIT",
- "dependencies": {
- "tslib": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/use-sidecar": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz",
- "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==",
- "license": "MIT",
- "dependencies": {
- "detect-node-es": "^1.1.0",
- "tslib": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/vite": {
- "version": "8.1.3",
- "resolved": "https://registry.npmjs.org/vite/-/vite-8.1.3.tgz",
- "integrity": "sha512-Ds+gBRbj0lwRO2Y5hwnUBdxSwlAve9LeRyU4sNnAr0ewW0gWF0n5bgXgUzbgZ49MV9BVUAQUFYVcDUcilUExMA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "lightningcss": "^1.32.0",
- "picomatch": "^4.0.4",
- "postcss": "^8.5.16",
- "rolldown": "~1.1.3",
- "tinyglobby": "^0.2.17"
- },
- "bin": {
- "vite": "bin/vite.js"
- },
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- },
- "funding": {
- "url": "https://github.com/vitejs/vite?sponsor=1"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.3"
- },
- "peerDependencies": {
- "@types/node": "^20.19.0 || >=22.12.0",
- "@vitejs/devtools": "^0.3.0",
- "esbuild": "^0.27.0 || ^0.28.0",
- "jiti": ">=1.21.0",
- "less": "^4.0.0",
- "sass": "^1.70.0",
- "sass-embedded": "^1.70.0",
- "stylus": ">=0.54.8",
- "sugarss": "^5.0.0",
- "terser": "^5.16.0",
- "tsx": "^4.8.1",
- "yaml": "^2.4.2"
- },
- "peerDependenciesMeta": {
- "@types/node": {
- "optional": true
- },
- "@vitejs/devtools": {
- "optional": true
- },
- "esbuild": {
- "optional": true
- },
- "jiti": {
- "optional": true
- },
- "less": {
- "optional": true
- },
- "sass": {
- "optional": true
- },
- "sass-embedded": {
- "optional": true
- },
- "stylus": {
- "optional": true
- },
- "sugarss": {
- "optional": true
- },
- "terser": {
- "optional": true
- },
- "tsx": {
- "optional": true
- },
- "yaml": {
- "optional": true
- }
- }
- },
- "node_modules/vite-plugin-full-reload": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/vite-plugin-full-reload/-/vite-plugin-full-reload-1.2.0.tgz",
- "integrity": "sha512-kz18NW79x0IHbxRSHm0jttP4zoO9P9gXh+n6UTwlNKnviTTEpOlum6oS9SmecrTtSr+muHEn5TUuC75UovQzcA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "picocolors": "^1.0.0",
- "picomatch": "^2.3.1"
- }
- },
- "node_modules/vite-plugin-full-reload/node_modules/picomatch": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz",
- "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- }
- }
-}
diff --git a/dogfood/ai/workbench/package.json b/dogfood/ai/workbench/package.json
index ce8132b563..e0e98970b4 100644
--- a/dogfood/ai/workbench/package.json
+++ b/dogfood/ai/workbench/package.json
@@ -1,10 +1,10 @@
{
- "name": "workbench",
+ "name": "@hypervel/ai-workbench",
"private": true,
"type": "module",
"scripts": {
- "dev": "vite",
- "build": "vite build"
+ "dev": "vp dev",
+ "build": "vp build"
},
"dependencies": {
"@shadcn/react": "^0.2.0",
@@ -17,10 +17,11 @@
"tailwind-merge": "^3.6.0"
},
"devDependencies": {
- "@tailwindcss/vite": "^4.3.2",
+ "@tailwindcss/vite": "catalog:",
"@vitejs/plugin-react": "^6.0.3",
- "laravel-vite-plugin": "^3.1.0",
- "tailwindcss": "^4.3.2",
- "vite": "^8.0.0"
+ "laravel-vite-plugin": "catalog:",
+ "tailwindcss": "catalog:",
+ "vite": "catalog:",
+ "vite-plus": "catalog:"
}
}
diff --git a/dogfood/ai/workbench/vite.config.js b/dogfood/ai/workbench/vite.config.js
index ecade738aa..fce724798e 100644
--- a/dogfood/ai/workbench/vite.config.js
+++ b/dogfood/ai/workbench/vite.config.js
@@ -1,4 +1,4 @@
-import { defineConfig } from 'vite';
+import { defineConfig } from 'vite-plus';
import laravel from 'laravel-vite-plugin';
import react from '@vitejs/plugin-react';
import tailwindcss from '@tailwindcss/vite';
diff --git a/package.json b/package.json
index c127cec5ec..bf7f8264ad 100644
--- a/package.json
+++ b/package.json
@@ -4,22 +4,38 @@
"type": "module",
"packageManager": "pnpm@12.10.1+sha512.ba40a37eb1a370d60fea8c4cf1d364c13bcccef518e98ad2bcee954f539d38da37458e58261a3fa55e06523450ea0ffff9f497b135be41f2c15c1642bacace6c",
"engines": {
- "node": "^22.12.0 || ^24.0.0 || >=26.0.0"
+ "node": "^22.22.2 || ^24.15.0 || >=26.0.0"
+ },
+ "devEngines": {
+ "runtime": {
+ "name": "node",
+ "version": "^24.15.0",
+ "onFail": "ignore"
+ }
},
"scripts": {
- "test": "vitest run",
- "test:watch": "vitest",
- "test:mcp": "vitest run --project mcp",
+ "check": "php src/wayfinder/tests/generate.php src/wayfinder/tests/.generated && vp check",
+ "check:fix": "php src/wayfinder/tests/generate.php src/wayfinder/tests/.generated && vp check --fix",
+ "test": "vp test",
+ "test:watch": "vp test watch",
+ "test:mcp": "vp test --project mcp",
+ "test:horizon": "vp test --project horizon",
+ "test:telescope": "vp test --project telescope",
"minify:mcp": "terser src/mcp/resources/js/mcp-sdk.js --compress --mangle --output src/mcp/resources/js/mcp-sdk.min.js",
- "test:wayfinder": "pnpm --dir src/wayfinder test",
- "test:wayfinder:cached": "pnpm --dir src/wayfinder test:cached",
- "typecheck:wayfinder": "pnpm --dir src/wayfinder typecheck"
+ "test:wayfinder": "vp test --project wayfinder",
+ "test:wayfinder:cached": "vp run @hypervel/wayfinder#test:cached",
+ "typecheck:wayfinder": "vp run @hypervel/wayfinder#typecheck",
+ "build": "vp run --filter @hypervel/horizon --filter @hypervel/telescope --filter @hypervel/exception-renderer --filter @hypervel/workbench --filter @hypervel/ai-workbench build && vp run minify:mcp",
+ "build:horizon": "vp run @hypervel/horizon#build",
+ "build:telescope": "vp run @hypervel/telescope#build",
+ "build:exception-renderer": "vp run @hypervel/exception-renderer#build",
+ "build:workbench": "vp run @hypervel/workbench#build",
+ "build:ai-workbench": "vp run @hypervel/ai-workbench#build"
},
"devDependencies": {
- "@types/node": "^22.20.5",
+ "@types/node": "catalog:",
"terser": "5.51.2",
- "typescript": "^7.0.2",
- "vite": "^8.3.3",
- "vitest": "^5.0.3"
+ "typescript": "catalog:",
+ "vite-plus": "catalog:"
}
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 2e3aa30abd..5fc31bd114 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -1,198 +1,447 @@
----
lockfileVersion: '9.0'
-importers:
-
- .:
- configDependencies: {}
- packageManagerDependencies:
- pnpm:
- specifier: 12.10.1
- version: 12.10.1
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
-packages:
+catalogs:
+ default:
+ '@popperjs/core':
+ specifier: ^2.11.8
+ version: 2.11.8
+ '@tailwindcss/vite':
+ specifier: ^4.3.3
+ version: 4.3.3
+ '@types/node':
+ specifier: ^22.20.5
+ version: 22.20.5
+ '@vitejs/plugin-vue':
+ specifier: ^6.0.10
+ version: 6.0.10
+ '@vue/compiler-dom':
+ specifier: ^3.5.44
+ version: 3.5.44
+ '@vue/server-renderer':
+ specifier: ^3.5.44
+ version: 3.5.44
+ '@vue/test-utils':
+ specifier: ^2.5.1
+ version: 2.5.1
+ alpinejs:
+ specifier: ^3.17.5
+ version: 3.17.5
+ axios:
+ specifier: ^1.20.0
+ version: 1.20.0
+ bootstrap:
+ specifier: ^5.3.8
+ version: 5.3.8
+ jsdom:
+ specifier: ^30.1.3
+ version: 30.1.3
+ laravel-vite-plugin:
+ specifier: ^3.2.0
+ version: 3.2.0
+ moment-timezone:
+ specifier: ^0.5.48
+ version: 0.5.48
+ sass:
+ specifier: ^1.106.0
+ version: 1.106.0
+ tailwindcss:
+ specifier: ^4.3.3
+ version: 4.3.3
+ typescript:
+ specifier: ^7.0.2
+ version: 7.0.2
+ vite:
+ specifier: npm:@voidzero-dev/vite-plus-core@1.3.0
+ version: 1.3.0
+ vite-plus:
+ specifier: 1.3.0
+ version: 1.3.0
+ vue:
+ specifier: ^3.5.44
+ version: 3.5.44
+ vue-json-pretty:
+ specifier: ^2.6.0
+ version: 2.6.0
+ vue-router:
+ specifier: ^4.6.4
+ version: 4.6.4
+
+overrides:
+ vite@*: npm:@voidzero-dev/vite-plus-core@1.3.0
+ vitest@*: 5.0.5
- '@pnpm/exe.android-arm64@12.10.1':
- resolution: {integrity: sha512-CVTlHPwNvadQCJD9bGSMzWIhFX8QpjtqC2c27dhdnn/9iKzEjZ3qL62o3gHpKbIuo6qn4WxTKRoaokgNdReBig==}
- cpu: [arm64]
- os: [android]
+importers:
- '@pnpm/exe.android-x64@12.10.1':
- resolution: {integrity: sha512-NFiYLIaodY7da0XIebwcU3JoP7IK/lzF7zgKSSP+9H+QcFnQ1GDfBkuBKCYJzZ+Xu0WH54neIPLBBCaOjaaauA==}
- cpu: [x64]
- os: [android]
+ .:
+ devDependencies:
+ '@types/node':
+ specifier: 'catalog:'
+ version: 22.20.5
+ terser:
+ specifier: 5.51.2
+ version: 5.51.2
+ typescript:
+ specifier: 'catalog:'
+ version: 7.0.2
+ vite-plus:
+ specifier: 'catalog:'
+ version: 1.3.0(@types/node@22.20.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)
- '@pnpm/exe.darwin-arm64@12.10.1':
- resolution: {integrity: sha512-0O8tdQ8ijlPJudXspLMTcitMkdBEz6uUflazL5uQE0WMs85oQIp0U+5hfEktMFB64QqEhjqlvvujTwbzdr9oMg==}
- cpu: [arm64]
- os: [darwin]
+ dogfood/ai/workbench:
+ dependencies:
+ '@shadcn/react':
+ specifier: ^0.2.0
+ version: 0.2.1(react@19.3.1)
+ class-variance-authority:
+ specifier: ^0.7.1
+ version: 0.7.1
+ clsx:
+ specifier: ^2.1.1
+ version: 2.1.1
+ lucide-react:
+ specifier: ^1.23.0
+ version: 1.61.0(react@19.3.1)
+ radix-ui:
+ specifier: ^1.6.1
+ version: 1.8.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ react:
+ specifier: ^19.0.0
+ version: 19.3.1
+ react-dom:
+ specifier: ^19.0.0
+ version: 19.3.1(react@19.3.1)
+ tailwind-merge:
+ specifier: ^3.6.0
+ version: 3.7.0
+ devDependencies:
+ '@tailwindcss/vite':
+ specifier: 'catalog:'
+ version: 4.3.3(@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))
+ '@vitejs/plugin-react':
+ specifier: ^6.0.3
+ version: 6.1.2(@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))
+ laravel-vite-plugin:
+ specifier: 'catalog:'
+ version: 3.2.0(@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))
+ tailwindcss:
+ specifier: 'catalog:'
+ version: 4.3.3
+ vite:
+ specifier: 'catalog:'
+ version: '@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)'
+ vite-plus:
+ specifier: 'catalog:'
+ version: 1.3.0(@types/node@22.20.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)
- '@pnpm/exe.darwin-x64@12.10.1':
- resolution: {integrity: sha512-ud+1/uZOKEo8P/AsPynOJc/LNwfI0j6WwCElibj71rU9l4nIBnsSn+wWTIPZPkZ4BBSH5+82azSnAARMyJ1lNA==}
- cpu: [x64]
- os: [darwin]
+ src/foundation/resources/exceptions/renderer:
+ dependencies:
+ '@shikijs/langs':
+ specifier: ^3.23.0
+ version: 3.23.0
+ '@shikijs/themes':
+ specifier: ^3.23.0
+ version: 3.23.0
+ alpinejs:
+ specifier: 'catalog:'
+ version: 3.17.5
+ shiki:
+ specifier: ^3.23.0
+ version: 3.23.0
+ tailwindcss:
+ specifier: 'catalog:'
+ version: 4.3.3
+ tippy.js:
+ specifier: ^6.3.7
+ version: 6.3.7
+ tw-animate-css:
+ specifier: ^1.3.7
+ version: 1.4.0
+ devDependencies:
+ '@tailwindcss/vite':
+ specifier: 'catalog:'
+ version: 4.3.3(@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))
+ vite:
+ specifier: 'catalog:'
+ version: '@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)'
+ vite-plus:
+ specifier: 'catalog:'
+ version: 1.3.0(@types/node@22.20.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)
- '@pnpm/exe.freebsd-x64@12.10.1':
- resolution: {integrity: sha512-mj9PE5rf8uAfQQ2K66HSATMSut+lNiB4eSqFd5+azFVCMnxNSy/32xpZQJT21PhnN3Y4qbK+iKHe5nWAxSuRhw==}
- cpu: [x64]
- os: [freebsd]
+ src/horizon:
+ devDependencies:
+ '@popperjs/core':
+ specifier: 'catalog:'
+ version: 2.11.8
+ '@vitejs/plugin-vue':
+ specifier: 'catalog:'
+ version: 6.0.10(@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(vue@3.5.44(typescript@7.0.2))
+ '@vue/compiler-dom':
+ specifier: 'catalog:'
+ version: 3.5.44
+ '@vue/server-renderer':
+ specifier: 'catalog:'
+ version: 3.5.44
+ '@vue/test-utils':
+ specifier: 'catalog:'
+ version: 2.5.1(@vue/compiler-dom@3.5.44)(@vue/server-renderer@3.5.44)(vue@3.5.44(typescript@7.0.2))
+ axios:
+ specifier: 'catalog:'
+ version: 1.20.0(debug@4.4.3)
+ bootstrap:
+ specifier: 'catalog:'
+ version: 5.3.8(@popperjs/core@2.11.8)
+ chart.js:
+ specifier: ^2.9.4
+ version: 2.9.4
+ jsdom:
+ specifier: 'catalog:'
+ version: 30.1.3
+ moment:
+ specifier: ^2.31.0
+ version: 2.31.0
+ moment-timezone:
+ specifier: 'catalog:'
+ version: 0.5.48
+ phpunserialize:
+ specifier: ^1.3.0
+ version: 1.3.0
+ sass:
+ specifier: 'catalog:'
+ version: 1.106.0
+ vite:
+ specifier: 'catalog:'
+ version: '@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)'
+ vite-plus:
+ specifier: 'catalog:'
+ version: 1.3.0(@types/node@22.20.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)
+ vue:
+ specifier: 'catalog:'
+ version: 3.5.44(typescript@7.0.2)
+ vue-json-pretty:
+ specifier: 'catalog:'
+ version: 2.6.0(vue@3.5.44(typescript@7.0.2))
+ vue-router:
+ specifier: 'catalog:'
+ version: 4.6.4(vue@3.5.44(typescript@7.0.2))
+
+ src/telescope:
+ devDependencies:
+ '@popperjs/core':
+ specifier: 'catalog:'
+ version: 2.11.8
+ '@vitejs/plugin-vue':
+ specifier: 'catalog:'
+ version: 6.0.10(@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(vue@3.5.44(typescript@7.0.2))
+ '@vue/compiler-dom':
+ specifier: 'catalog:'
+ version: 3.5.44
+ '@vue/server-renderer':
+ specifier: 'catalog:'
+ version: 3.5.44
+ '@vue/test-utils':
+ specifier: 'catalog:'
+ version: 2.5.1(@vue/compiler-dom@3.5.44)(@vue/server-renderer@3.5.44)(vue@3.5.44(typescript@7.0.2))
+ axios:
+ specifier: 'catalog:'
+ version: 1.20.0(debug@4.4.3)
+ bootstrap:
+ specifier: 'catalog:'
+ version: 5.3.8(@popperjs/core@2.11.8)
+ copy-to-clipboard:
+ specifier: ^3.3.3
+ version: 3.3.3
+ highlight.js:
+ specifier: ^11.3.1
+ version: 11.12.0
+ jsdom:
+ specifier: 'catalog:'
+ version: 30.1.3
+ lodash:
+ specifier: ^4.18.1
+ version: 4.18.1
+ moment-timezone:
+ specifier: 'catalog:'
+ version: 0.5.48
+ sass:
+ specifier: 'catalog:'
+ version: 1.106.0
+ sql-formatter:
+ specifier: ^15.6.2
+ version: 15.9.0
+ vite:
+ specifier: 'catalog:'
+ version: '@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)'
+ vite-plus:
+ specifier: 'catalog:'
+ version: 1.3.0(@types/node@22.20.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)
+ vue:
+ specifier: 'catalog:'
+ version: 3.5.44(typescript@7.0.2)
+ vue-json-pretty:
+ specifier: 'catalog:'
+ version: 2.6.0(vue@3.5.44(typescript@7.0.2))
+ vue-router:
+ specifier: 'catalog:'
+ version: 4.6.4(vue@3.5.44(typescript@7.0.2))
- '@pnpm/exe.linux-arm64-musl@12.10.1':
- resolution: {integrity: sha512-xba+00wZJ8Um6rBJJjWl88uJj0tydB8dtomvjlCLvi0uL32vpa9CRP8Vv26FIXvbiZ1bo2RCzYt/eChxJVV52w==}
- cpu: [arm64]
- os: [linux]
- libc: [musl]
+ src/wayfinder:
+ devDependencies:
+ '@types/node':
+ specifier: 'catalog:'
+ version: 22.20.5
+ happy-dom:
+ specifier: ^21.0.4
+ version: 21.0.4
+ typescript:
+ specifier: 'catalog:'
+ version: 7.0.2
+ vite-plus:
+ specifier: 'catalog:'
+ version: 1.3.0(@types/node@22.20.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)
- '@pnpm/exe.linux-arm64@12.10.1':
- resolution: {integrity: sha512-oBdMp69ScC9UnniG4qZAQVr2fBDSXjm4yk/72vkEVyrlwS23yMxcRQl7Qdo3sgXPAygY6TWnPRKm4rXzjoyW7w==}
- cpu: [arm64]
- os: [linux]
- libc: [glibc]
+ src/workbench:
+ devDependencies:
+ '@tailwindcss/forms':
+ specifier: ^0.5.11
+ version: 0.5.11(tailwindcss@3.4.19)
+ alpinejs:
+ specifier: 'catalog:'
+ version: 3.17.5
+ autoprefixer:
+ specifier: ^10.6.1
+ version: 10.6.1(postcss@8.5.31)
+ laravel-vite-plugin:
+ specifier: 'catalog:'
+ version: 3.2.0(@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))
+ postcss:
+ specifier: ^8.5.28
+ version: 8.5.31
+ tailwindcss:
+ specifier: ^3.4.19
+ version: 3.4.19
+ vite:
+ specifier: 'catalog:'
+ version: '@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)'
+ vite-plus:
+ specifier: 'catalog:'
+ version: 1.3.0(@types/node@22.20.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@1.21.7)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)
- '@pnpm/exe.linux-ppc64@12.10.1':
- resolution: {integrity: sha512-Yyb3wu09h3c7mLme270uHFiVaAIUHC411Ru9LIU2BKUIstrGlXa9OqqVWoXaRgYRdFdOFknkwG7GNn6ygwLbnw==}
- cpu: [ppc64]
- os: [linux]
- libc: [glibc]
+packages:
- '@pnpm/exe.linux-riscv64@12.10.1':
- resolution: {integrity: sha512-PdkeUFFkybknnGkWP0H22eMpIiS4OZXL5BcQzF4lh+vmrW3IaC2HOkbANKgot/PKO0Kl77pzA/6PKFxgbgfXIQ==}
- cpu: [riscv64]
- os: [linux]
- libc: [glibc]
+ '@alloc/quick-lru@5.3.0':
+ resolution: {integrity: sha512-U4+70Pc5ZS9osnCBCE5Jha/ciHM+Yp+CNMNC/7HvYbNRk1Ldd+f7qO65W5qfhu/TCv+/ozljlXXe9Nj8419DMA==}
+ engines: {node: '>=10'}
- '@pnpm/exe.linux-s390x@12.10.1':
- resolution: {integrity: sha512-1okKuHKJwJPAbofDxfhZWAUxEWtee4ZSf7Pah8kcvocaJkf2WxFJ5KVTiNIvDml5GLidDQsgf7Pcf/WHbCak7Q==}
- cpu: [s390x]
- os: [linux]
- libc: [glibc]
+ '@asamuzakjp/css-color@7.1.7':
+ resolution: {integrity: sha512-Q7ioeear07HwixdIitIn9KS1LZi97CEDFCSjPNm9v+y8KNbsu9q4Lrd4zUQW4faED+E7qxvfeVnbNRW46wFKuw==}
+ engines: {node: ^22.22.2 || ^24.15.0 || >=26.0.0}
- '@pnpm/exe.linux-x64-musl@12.10.1':
- resolution: {integrity: sha512-e6IqzVNkPa7srFKJKnY23uWJ+qz0LaRWiTUo/sHfFXRRMRzB5uNOr6qWWip/jqhdGwU91n9J7LrEYZ6e0tRczw==}
- cpu: [x64]
- os: [linux]
- libc: [musl]
+ '@asamuzakjp/dom-selector@10.0.4':
+ resolution: {integrity: sha512-A6f1nKy99I6tyoK82U6kBHvQQZmdHmTmPzJYPY/0eaOW0r8/qPmEOwjGHs+hL/vCgOwQTupu4LT1XtXNUuDruA==}
+ engines: {node: ^22.22.2 || ^24.15.0 || >=26.0.0}
- '@pnpm/exe.linux-x64@12.10.1':
- resolution: {integrity: sha512-ZByV0DRgWzGaDSjT5ddRBASdwz+r/qPMYh7o6RGmPQjtRGNFbSl94xY2DcAM8mqCOZJUUDtAXQ+wpBXcdpKlkg==}
- cpu: [x64]
- os: [linux]
- libc: [glibc]
+ '@babel/code-frame@7.29.7':
+ resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==}
+ engines: {node: '>=6.9.0'}
- '@pnpm/exe.win32-arm64@12.10.1':
- resolution: {integrity: sha512-I7QZHcjioG7orFeCRUFUHByJ1G0zFPnAlaGGyrUvb6MGkv5oeNwNPl7t+Gp+7zHfnMcgLGJ1a+Wfim0IDw3lOw==}
- cpu: [arm64]
- os: [win32]
+ '@babel/helper-string-parser@7.29.7':
+ resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==}
+ engines: {node: '>=6.9.0'}
- '@pnpm/exe.win32-x64@12.10.1':
- resolution: {integrity: sha512-4WJFdp58EKlCj0zLobrXU0vpszSZIr4X/3y/uNbAQqGW0zE+VdruZB0gFc3L2kzsUzVwTYbaCn+XEhnCYSAlTg==}
- cpu: [x64]
- os: [win32]
+ '@babel/helper-validator-identifier@7.29.7':
+ resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==}
+ engines: {node: '>=6.9.0'}
- pnpm@12.10.1:
- resolution: {integrity: sha512-ukCjfrGjcNYP6oxM8dNkwTvMzvUY6YrSvO6VT1OdONo3RY5YJho/pV4GUjRQ6g//+fSXsTW+QfLBXBZCusrObA==}
- engines: {node: '>=18.*'}
+ '@babel/parser@7.29.9':
+ resolution: {integrity: sha512-CjXrNHTnvqBVqHgdBysY3vk2T8tpJHb5/RMeHJBTyVa9xgugCB0CJTx/3oO8RV2QRQP391RWpB7D6hLjm8V9uA==}
+ engines: {node: '>=6.0.0'}
hasBin: true
-snapshots:
-
- '@pnpm/exe.android-arm64@12.10.1':
- optional: true
-
- '@pnpm/exe.android-x64@12.10.1':
- optional: true
-
- '@pnpm/exe.darwin-arm64@12.10.1':
- optional: true
-
- '@pnpm/exe.darwin-x64@12.10.1':
- optional: true
-
- '@pnpm/exe.freebsd-x64@12.10.1':
- optional: true
-
- '@pnpm/exe.linux-arm64-musl@12.10.1':
- optional: true
+ '@babel/runtime@7.29.10':
+ resolution: {integrity: sha512-NpugTzbKgGrNe45Ui32cN8vCFFMxVtP/9rtfwv0nP5FRDAjvYBxJcLVpYA9mr1jxP6cnIT7x9LUzuDTbWYYNRA==}
+ engines: {node: '>=6.9.0'}
- '@pnpm/exe.linux-arm64@12.10.1':
- optional: true
+ '@babel/types@7.29.8':
+ resolution: {integrity: sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==}
+ engines: {node: '>=6.9.0'}
- '@pnpm/exe.linux-ppc64@12.10.1':
- optional: true
+ '@blazediff/core@1.10.0':
+ resolution: {integrity: sha512-AOQff0zgR7cGsZL+4E7hVkmujoPUpm0J9xzWGWZj5wCjd3gmxESXAPfKyuzs93VdpQNFhHlBhfOjrcZ+XTERtQ==}
- '@pnpm/exe.linux-riscv64@12.10.1':
- optional: true
+ '@bramus/specificity@2.4.3':
+ resolution: {integrity: sha512-0GEz8qJWokkUVYQYRukmkSHIFNoBH8QTreeHrAFbvz1XFYc3Y+puhMs8PQ5x8GNugiC2l5jvDBXKLbBIByeSBw==}
+ hasBin: true
- '@pnpm/exe.linux-s390x@12.10.1':
- optional: true
+ '@csstools/color-helpers@6.1.2':
+ resolution: {integrity: sha512-grhRy3OKmniaAEKXMjua5z/EODX0MSqBGjunw8+j/3HQjOnahs2AGhvEOIYVUWcU6ScApbhLhVrQTX8XqrMrow==}
+ engines: {node: '>=20.19.0'}
- '@pnpm/exe.linux-x64-musl@12.10.1':
- optional: true
+ '@csstools/css-calc@3.4.3':
+ resolution: {integrity: sha512-iex20d8CHVkyvg6B7UKV7uHnI2Bqo9g+EFfT9E0y+GvTvhZ/DwONJ+9aKb1dlqm0ZiGsL5RXjp0fCoJYnkeDjA==}
+ engines: {node: '>=20.19.0'}
+ peerDependencies:
+ '@csstools/css-parser-algorithms': ^4.0.2
+ '@csstools/css-tokenizer': ^4.0.2
- '@pnpm/exe.linux-x64@12.10.1':
- optional: true
+ '@csstools/css-color-parser@4.2.6':
+ resolution: {integrity: sha512-iiPQ3iRWwnJkeEn6RIu6SJPr7hYrLz6XZ9s/QZl+2/LI5KQVjpl2fdmDSZKuD4xP6GMmMPgHFFXg6k1Wkz0Trg==}
+ engines: {node: '>=20.19.0'}
+ peerDependencies:
+ '@csstools/css-parser-algorithms': ^4.0.2
+ '@csstools/css-tokenizer': ^4.0.2
- '@pnpm/exe.win32-arm64@12.10.1':
- optional: true
+ '@csstools/css-parser-algorithms@4.0.2':
+ resolution: {integrity: sha512-40cSKyMvK+tq4qz6Awrlye2WGuOKt3FwPgtGg6KTfbHOWNw+Rk1rzbAtZnZ6IBhsY491HLRnDXwoyBAijmmILA==}
+ engines: {node: '>=20.19.0'}
+ peerDependencies:
+ '@csstools/css-tokenizer': ^4.0.2
- '@pnpm/exe.win32-x64@12.10.1':
- optional: true
+ '@csstools/css-syntax-patches-for-csstree@1.1.15':
+ resolution: {integrity: sha512-J0u7HkVl2nzSlhsiTOp4AmwcUQ3D+mGEEKfBy/7To5/y7F2OHwyLrXfrhR0SMgr4p5Lo+eaMVSeai24zUcBIxA==}
+ peerDependencies:
+ css-tree: ^3.2.1
+ peerDependenciesMeta:
+ css-tree:
+ optional: true
- pnpm@12.10.1:
- optionalDependencies:
- '@pnpm/exe.android-arm64': 12.10.1
- '@pnpm/exe.android-x64': 12.10.1
- '@pnpm/exe.darwin-arm64': 12.10.1
- '@pnpm/exe.darwin-x64': 12.10.1
- '@pnpm/exe.freebsd-x64': 12.10.1
- '@pnpm/exe.linux-arm64': 12.10.1
- '@pnpm/exe.linux-arm64-musl': 12.10.1
- '@pnpm/exe.linux-ppc64': 12.10.1
- '@pnpm/exe.linux-riscv64': 12.10.1
- '@pnpm/exe.linux-s390x': 12.10.1
- '@pnpm/exe.linux-x64': 12.10.1
- '@pnpm/exe.linux-x64-musl': 12.10.1
- '@pnpm/exe.win32-arm64': 12.10.1
- '@pnpm/exe.win32-x64': 12.10.1
-
----
-lockfileVersion: '9.0'
+ '@csstools/css-tokenizer@4.0.2':
+ resolution: {integrity: sha512-OoKoR0f76dCY666JlcbhmVTs2drYj1GUXZTYTcbUgJjh9Nv41aFfZ21bPQTERm5+L5cBDo466NltB2lplS5GBw==}
+ engines: {node: '>=20.19.0'}
-settings:
- autoInstallPeers: true
- excludeLinksFromLockfile: false
+ '@exodus/bytes@1.16.0':
+ resolution: {integrity: sha512-IcpW84uEn3N7ETtNZMlxKhfl6Pec8rUNGOTBtWbK1FKhJxIFAptZyVrvVRVBimAJxJCgc3PxepxkdWWG4DVzfA==}
+ engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
+ peerDependencies:
+ '@noble/hashes': ^1.8.0 || ^2.0.0
+ peerDependenciesMeta:
+ '@noble/hashes':
+ optional: true
-importers:
+ '@floating-ui/core@1.8.0':
+ resolution: {integrity: sha512-0CIZ5itps/8x7BG8dEIhs53BvCUH2PCoogtakwRTut+Arm58sJooJ0AuZhLw2HJYIR5cMLNPBSS728sPho2khQ==}
- .:
- devDependencies:
- '@types/node':
- specifier: ^22.20.5
- version: 22.20.5
- terser:
- specifier: 5.51.2
- version: 5.51.2
- typescript:
- specifier: ^7.0.2
- version: 7.0.2
- vite:
- specifier: ^8.3.3
- version: 8.3.3(@types/node@22.20.5)(terser@5.51.2)
- vitest:
- specifier: ^5.0.3
- version: 5.0.3(@types/node@22.20.5)(happy-dom@20.14.5)(vite@8.3.3(@types/node@22.20.5)(terser@5.51.2))
+ '@floating-ui/dom@1.8.0':
+ resolution: {integrity: sha512-yXSrzeHZBTZadLOlfyhCkJHNeLJnHRnRInwdZ40L7ZiaAtrBwoYlsDrX3v5zB1Utk7CLfzcOVnVVWoXEky7Ceg==}
- src/wayfinder:
- devDependencies:
- happy-dom:
- specifier: ^20.14.5
- version: 20.14.5
+ '@floating-ui/react-dom@2.1.9':
+ resolution: {integrity: sha512-JDjEFGCpImxDCA7JJKviA0M9+RtmJdj0m/NVU5IMgBK+AmZouAQQ7/+2GLH0GXXY0YMw9oXPB8hKdbPYg5QLYg==}
+ peerDependencies:
+ react: '>=16.8.0'
+ react-dom: '>=16.8.0'
-packages:
+ '@floating-ui/utils@0.2.12':
+ resolution: {integrity: sha512-HpCo8tmWzLVad5s2d19EhAz5zqrrQ6s69qd6moPMQvkOuSwDT1YgRfWSVuc4ennqrgv3OHppiOGMQ7oC13yIww==}
'@jridgewell/gen-mapping@0.3.13':
resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==}
+ '@jridgewell/remapping@2.3.5':
+ resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==}
+
'@jridgewell/resolve-uri@3.1.2':
resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
engines: {node: '>=6.0.0'}
@@ -206,868 +455,5534 @@ packages:
'@jridgewell/trace-mapping@0.3.31':
resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
- '@oxc-project/types@0.152.0':
- resolution: {integrity: sha512-oM/5rLBm2tPkg0iBgkH/FOeR3PCDpY19GTgAZjMFM8h9WI9VW7cLgzp6nwtarYKmovavIQZ+Fe/RKX/8C8O/Rw==}
+ '@nodelib/fs.scandir@2.1.5':
+ resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
+ engines: {node: '>= 8'}
+
+ '@nodelib/fs.stat@2.0.5':
+ resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
+ engines: {node: '>= 8'}
+
+ '@nodelib/fs.walk@1.2.8':
+ resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
+ engines: {node: '>= 8'}
+
+ '@one-ini/wasm@0.2.1':
+ resolution: {integrity: sha512-TUqERXGNTifZ9y2g3wPxQrw3HpHv/02DsW3D90T9x0hhonrL1ZqpSmNrU2XkoIq0fP1N6gZfVQzy2Fw1ZvGBNg==}
+
+ '@oxc-project/runtime@0.154.0':
+ resolution: {integrity: sha512-cBQNGoh659BNgvA8OC/e4BNDtFkv03dJaYdkp2adgOQNtISNAPQ+nB4S8XvWtNk7Xl+0g+7aa+iRGR25Xycd1Q==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+
+ '@oxc-project/types@0.154.0':
+ resolution: {integrity: sha512-KYOUGQFlLWR+s4QMV2Q9ko38TZm7EdO87Qm7rvZLqk/webse/cDjtyxKhg/47l0byCbs/k46LT8qc4PKjAikzA==}
- '@rolldown/binding-android-arm-eabi@1.2.12':
- resolution: {integrity: sha512-dB/a1214qKfHMXCpgqR4OZT+jS4kTyEXbQGJPqzobt5EwH5rX080pxE37alt3RzvR1bf1Yz/yGqRfrYAxuPw0A==}
+ '@oxfmt/binding-android-arm-eabi@0.73.0':
+ resolution: {integrity: sha512-dhunAdMbi/4o0Y66/+Wl6rpsNqpvE4i26Qw6bB77A97L2lJoktWg6m+X9QOon8iOEEqzD9rEZqFi5uZ4oIzhCA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm]
os: [android]
- '@rolldown/binding-android-arm64@1.2.12':
- resolution: {integrity: sha512-7KHFgQ5VJxIHcLlrwrc3Xbds7oTNQT7Pgi9gQCJKrd2VGab/UksIOYp6VD8MzCstGxOKMgNamPwUCfxPdP1OHg==}
+ '@oxfmt/binding-android-arm64@0.73.0':
+ resolution: {integrity: sha512-dBoypjC2/xeyKyIhN2waX0/XeoccH9k0lVVe+sGRc4X8HSJVRtqyZDoXdr7bGY9A75c51dX0z0dLDpGQKwCdCg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [android]
- '@rolldown/binding-darwin-arm64@1.2.12':
- resolution: {integrity: sha512-3YIhqHD96nA5SaYNRBR16HnGv4oavZvXfD/ayHM+oYZ0WD/8lBAtf6zQua4kEyAvpqrluKXl0lnOBoiNby7x9w==}
+ '@oxfmt/binding-darwin-arm64@0.73.0':
+ resolution: {integrity: sha512-Tn7Y+qWIpCQK+qdYwBcn6YvqeBuPiuG3tcNlYg16a5QL2o3rSmrgBB1nCyYqo0uvc1LNrfQW9/CK2tzFuID/Fg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [darwin]
- '@rolldown/binding-darwin-x64@1.2.12':
- resolution: {integrity: sha512-UuuJ35MFw4gmFOrE9pEqIV+K3syIKveph+Qc1/ljHZVdoDW4pz/JHR/eMVom+TZGl/5OOvGJOWaOCVt3ZfqhxA==}
+ '@oxfmt/binding-darwin-x64@0.73.0':
+ resolution: {integrity: sha512-yVb0E0tg/+9Xc9YJCBq66qF1DC/aN5mhb5nnHz0k4ikwkMANtSul2VPDSwjYdXR6/DFimc+pPUgLBqkIa5Ctuw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [darwin]
- '@rolldown/binding-freebsd-x64@1.2.12':
- resolution: {integrity: sha512-uMvssit0a4W+/7D8CbHUvG719mH3R2jwXAlh/XcPvuHTE0g++LymF88DCGNX0HM2rBOn0xrzgXktIB6fLSJBTQ==}
+ '@oxfmt/binding-freebsd-x64@0.73.0':
+ resolution: {integrity: sha512-IKR4lFnBkYNL9Uqdxa5GMTQLvnLj+3sDwTvh2atHCzah0xeo+1xR5bigRU8uyXlOsA4VpXUn0UAimq4E4RBGmQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [freebsd]
- '@rolldown/binding-linux-arm-gnueabihf@1.2.12':
- resolution: {integrity: sha512-XcFu0R0xWnwzSf4IQgFH1rJIckPN1pLy2R+4r9IDB7Yfu/ys9cVqfa4pBrMHj7a3gl8mIR4nRNPg0e5IvEVs6g==}
+ '@oxfmt/binding-linux-arm-gnueabihf@0.73.0':
+ resolution: {integrity: sha512-7qnZ4g0ZCO3aZevOOQpZIABYwwXJW1lLDo2elviGdPQ0i11255xKEMFsi97fC1/nauQFseCJfELUy/k2JoOP+g==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm]
+ os: [linux]
+
+ '@oxfmt/binding-linux-arm-musleabihf@0.73.0':
+ resolution: {integrity: sha512-36eBico2j/WPB84gb4FYd/jjqGCKOwU4M+TWLBUIqlnzTozQueLy0joA5BwsSp2OZFVkOlpCwvA3ndPamdiyLw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm]
os: [linux]
- '@rolldown/binding-linux-arm64-gnu@1.2.12':
- resolution: {integrity: sha512-260UrKgn8tz39ak+SMDOirKzr7V04M9dWPw5llW00SwBivCZoWcRBKV1d8cXnRkUmSZA3BdiUmBHWk7734Ulpw==}
+ '@oxfmt/binding-linux-arm64-gnu@0.73.0':
+ resolution: {integrity: sha512-VZ3cSgCAT18knKo52DcACmAuIoqG6qVEyeZRFbJd0xmYQ8GyYjuBc6IAh6MZHijT6q7p4/HPI+6ZWsCuhdV6iw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [linux]
libc: [glibc]
- '@rolldown/binding-linux-arm64-musl@1.2.12':
- resolution: {integrity: sha512-5YK1I9SqDkbPgc1IA8BgDl34suqUS2q0KWnBrirm0E51YjOs6eo6dV6jbQfNE/argHRSvd0QUGgtpIoYx+WWpw==}
+ '@oxfmt/binding-linux-arm64-musl@0.73.0':
+ resolution: {integrity: sha512-8YVzH59XSHcqwXNgc5qK851zCqwpmBgOifARXEPPe5/xTsIbHceYoPZAyqfpYV0CfKmzSaEDBgYHFza4rhx+Zw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [linux]
libc: [musl]
- '@rolldown/binding-linux-ppc64-gnu@1.2.12':
- resolution: {integrity: sha512-Rkcrmp7eFRg74yL5fXEU91JEWbdEPLevWwGtXpmhbjlD1StScbWTmO94Bhly+Mo+ketKYkdmM1vNUKeWSlx8cQ==}
+ '@oxfmt/binding-linux-ppc64-gnu@0.73.0':
+ resolution: {integrity: sha512-MqRJnmCys0rwOgpWyEidSA7v/bvOqfNDJhPkQoR9mPVYrvSmMaW2Xhdpl28cbTA+brOM1is62GjIvJplVlUVpw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [ppc64]
os: [linux]
libc: [glibc]
- '@rolldown/binding-linux-s390x-gnu@1.2.12':
- resolution: {integrity: sha512-qvK4DuAsQc2BSjlx+Xr+IzOIvvxbGZqxFwdWfG6F518Erj0GGISyQbJ6pIappnOxlNPzNHvo/L0BwB30GZ+zVw==}
+ '@oxfmt/binding-linux-riscv64-gnu@0.73.0':
+ resolution: {integrity: sha512-4t2F3SWJSK/O/kRRFnL0elJzn75fJGGu71gs1HtiWcS80SmJOpkHiwwLnTp9suGdns8VHEPxYS0GTcyVwHKWBA==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [riscv64]
+ os: [linux]
+ libc: [glibc]
+
+ '@oxfmt/binding-linux-riscv64-musl@0.73.0':
+ resolution: {integrity: sha512-D8b4I8I1kLdJQFwdFXNV+cwh3xWSiNKofjdGUk0nDpc0AHOds8T+poGbP9RWQMvgsvMb9OMgp/aV7ahBR37TbQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [riscv64]
+ os: [linux]
+ libc: [musl]
+
+ '@oxfmt/binding-linux-s390x-gnu@0.73.0':
+ resolution: {integrity: sha512-QrC1S5VL1+N5rvorB15jH7CPvjVHA7GyUI5oVEd8Bd9m5605RDBQYTxDQ920DuylRoZOh2V7/xXpfCtFUrojUQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [s390x]
os: [linux]
libc: [glibc]
- '@rolldown/binding-linux-x64-gnu@1.2.12':
- resolution: {integrity: sha512-Q9uLBO53Xd4QIq1WOycVQyPP1O4HhraEV2qqb3uTrnVw6QZih9duY4vNXOivL1xoUS1/z+W8eF4NMfl2a8Sdjw==}
+ '@oxfmt/binding-linux-x64-gnu@0.73.0':
+ resolution: {integrity: sha512-dFcUKQPltCEPa+YlkF3zqufn6nJPZdG73LpnjBvZFFsU3laCMssDXSYB99mVaj43FqdEgjpz5TO6gbYXcczd9g==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [linux]
libc: [glibc]
- '@rolldown/binding-linux-x64-musl@1.2.12':
- resolution: {integrity: sha512-3IBxWFMjbOZskDPKv8Lf9BCnahlKuHthWkYnyIxOH/QcJrFcS4EmcenthApkwr/5+nEqZlLzeYbxeMaX7A5u4g==}
+ '@oxfmt/binding-linux-x64-musl@0.73.0':
+ resolution: {integrity: sha512-LmQe+nV8e+eUwfPNCxDF+owbsg88toBiR/8rZRgVOeKQP3MaGefXZRvBoc1UG37iWEQ/9JlCXG9Mc4nf4N3agw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [linux]
libc: [musl]
- '@rolldown/binding-openharmony-arm64@1.2.12':
- resolution: {integrity: sha512-xtX61xg4LKPkPWilZU1ynKClz5Gj4bf74LML4r3eVLWumKnGjoEr1OSHQhMdbBDoYTi+yjrujvpZe2pUnqCrrA==}
+ '@oxfmt/binding-openharmony-arm64@0.73.0':
+ resolution: {integrity: sha512-8weOr1OKknE0G2DbR6ejJUT9AOsoBU6cXlsetmbihHv1K+bK7qP61T6lJxY0k/aAO7GyOJiRGNlL+04r4eH8Xg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [openharmony]
- '@rolldown/binding-win32-arm64-msvc@1.2.12':
- resolution: {integrity: sha512-At7fPB6PCaIjzgIhEZFxuT+BBFqiQibJDT4d3PhiR3f4E7bbMZF4aKblbFfEM3sETRDd1YiQx/+U/g/B/ou5Ew==}
+ '@oxfmt/binding-win32-arm64-msvc@0.73.0':
+ resolution: {integrity: sha512-mZV+QxXYgb8E18gzAFItb937VIsE4dqWdStrD3tRRC52UubOYEuU+e7NaIqUsGdB5YsJqNeuck3Ue/af2r9wyA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [win32]
- '@rolldown/binding-win32-x64-msvc@1.2.12':
- resolution: {integrity: sha512-WIw2haVKwjuYdXkHaoC0mF8Le71TuCBxjrdKqLbJGctbBABj+ClfmNvtbOnzpq3RokNo5+V1qhtSzJyXorsklQ==}
+ '@oxfmt/binding-win32-ia32-msvc@0.73.0':
+ resolution: {integrity: sha512-QJPUsbgUb97ZPPMkFUq6VQq0fLhC4Np19KL9aB/qKVwXnpKE6MIiILXqzhKnQ/UbnEDjKJ7Xv1d6zH4bYPCUdQ==}
engines: {node: ^20.19.0 || >=22.12.0}
- cpu: [x64]
+ cpu: [ia32]
os: [win32]
- '@rolldown/pluginutils@1.0.1':
- resolution: {integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==}
+ '@oxfmt/binding-win32-x64-msvc@0.73.0':
+ resolution: {integrity: sha512-cGcze2fu+ykIaFtkEvZlkZ3HvnCLk+WISthtq99zWTWn0x13t5L9TxvGdLZMUMvtfYR+ICkiCwKnguVubdcw0w==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [x64]
+ os: [win32]
- '@types/chai@5.2.3':
- resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==}
+ '@oxlint-tsgolint/darwin-arm64@7.0.2004':
+ resolution: {integrity: sha512-uJk3ttju7Lz+Nv8WG4CsLyewoL1qf/Ny8S8OksJ7Bm/F14Tc9gMfW6arM1PCc57IzH/X/I79YsCWTgxX1FKibQ==}
+ cpu: [arm64]
+ os: [darwin]
- '@types/deep-eql@4.0.2':
- resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==}
+ '@oxlint-tsgolint/darwin-x64@7.0.2004':
+ resolution: {integrity: sha512-0BFfHTzDxNDFPcu0UZAXT6CyCJHAXM0dZveyDb4KEHa2qF/DSnOKOrmvK/wFuFol9kvijbGM9JfuOsor+zWXRw==}
+ cpu: [x64]
+ os: [darwin]
- '@types/estree@1.0.9':
- resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==}
+ '@oxlint-tsgolint/linux-arm64@7.0.2004':
+ resolution: {integrity: sha512-TAehQc+qdRXyDN3nl/r/3/oPrBVrbtrDeGMkFyG6mf+XphpoJ2lAMVFLclyvrVZCw02RbKROjyw8h72XwQQHcw==}
+ cpu: [arm64]
+ os: [linux]
- '@types/node@22.20.5':
- resolution: {integrity: sha512-U2+DNr+wSjpsTS/wZGYHq7GcwfuSmKiKvoPvK22zwTlRhU91yOniN4qRR5KhIjvif7ysw/dz/hKmfDH0Ris4aA==}
+ '@oxlint-tsgolint/linux-x64@7.0.2004':
+ resolution: {integrity: sha512-LPunZvm6ZbWPfHMAyfZf9ci3HHvNEzLejO8zdqO3GoVGoSEHqqufHUD7+OgeatVSaJP7uXDJ2HaNOHIoH7go4Q==}
+ cpu: [x64]
+ os: [linux]
- '@types/node@26.6.4':
- resolution: {integrity: sha512-ldVPDCzj7fsaGZrLB0NuHuTvJcsNasysBAqMolr/cgxrLd1xbqxIr3XJiPnHHJUCxj5sNF1vnRj9aWnrVh5Jcg==}
+ '@oxlint-tsgolint/win32-arm64@7.0.2004':
+ resolution: {integrity: sha512-FVWplzDImWhiuawnIZVETaQecv4GWom6Jv4Fx2xj7hhXXDZ5okEgiw1gTCImHTIQsi2ycC5oSxVwrn69bMh7iw==}
+ cpu: [arm64]
+ os: [win32]
- '@types/whatwg-mimetype@3.0.2':
- resolution: {integrity: sha512-c2AKvDT8ToxLIOUlN51gTiHXflsfIFisS4pO7pDPoKouJCESkhZnEy623gwP9laCy5lnLDAw1vAzu2vM2YLOrA==}
+ '@oxlint-tsgolint/win32-x64@7.0.2004':
+ resolution: {integrity: sha512-7PsxuUx11Ry9DYTWcljTzRbmZY9B6O9fFFfZV+aodQEMy6pfRT3fhoQRv9PtGN/89z1pPz3nFKrsFm6WqNtX7w==}
+ cpu: [x64]
+ os: [win32]
- '@types/ws@8.18.2':
- resolution: {integrity: sha512-67MQl+fpWKVTT1NYdnmo3U4sc/xPo/zQBncVnI74qmQa0z/b+1g6iYqNmGCPbxO+zz2aklb08a0oHfegiVd0/w==}
+ '@oxlint/binding-android-arm-eabi@1.88.0':
+ resolution: {integrity: sha512-k6Fgkf86ubfeH4GvqYsRolfuVAp0pfYVZvifSlXNHPdMaWUOfxUrmLEeDD7hF6U2oJuhsVxhSWq86/xCJ+9MmA==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm]
+ os: [android]
- '@typescript/typescript-aix-ppc64@7.0.2':
- resolution: {integrity: sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==}
- engines: {node: '>=16.20.0'}
- cpu: [ppc64]
- os: [aix]
+ '@oxlint/binding-android-arm64@1.88.0':
+ resolution: {integrity: sha512-AsIyhl9o1ejwtac7NMbhKpMdSml6NWR0ljKjZERxC8OHYDAW8o/Om9n1QHVLi4VCEUo42Zte2/Op9kyoGpJZMg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [android]
- '@typescript/typescript-darwin-arm64@7.0.2':
- resolution: {integrity: sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==}
- engines: {node: '>=16.20.0'}
+ '@oxlint/binding-darwin-arm64@1.88.0':
+ resolution: {integrity: sha512-qgBjB7eEKcCB4RqjXGuoSZq74g0wD09fWFJ+HWcCJcKaga8TeUHtb+BY0SsxdleSLBgx4RZ7qmgo0EzqEq7JoQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [darwin]
- '@typescript/typescript-darwin-x64@7.0.2':
- resolution: {integrity: sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==}
- engines: {node: '>=16.20.0'}
+ '@oxlint/binding-darwin-x64@1.88.0':
+ resolution: {integrity: sha512-sCz3X5Mw/xdzEzn4fsCt1Iq8NKJnGNfhR+b9B5k+4DysYAHsmIhYoocnBPiQ9kvY3+pUun2A0Z8Vtun/Nv6YoQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [darwin]
- '@typescript/typescript-freebsd-arm64@7.0.2':
- resolution: {integrity: sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==}
- engines: {node: '>=16.20.0'}
- cpu: [arm64]
- os: [freebsd]
-
- '@typescript/typescript-freebsd-x64@7.0.2':
- resolution: {integrity: sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==}
- engines: {node: '>=16.20.0'}
+ '@oxlint/binding-freebsd-x64@1.88.0':
+ resolution: {integrity: sha512-xTOdYOIqCufgIj0knvxu86FBfovP6QBiD7ngNva01gb8xPQCD5gXkE5APGczH35zStim1O3zqvFbLQmY85xXRg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [freebsd]
- '@typescript/typescript-linux-arm64@7.0.2':
- resolution: {integrity: sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==}
- engines: {node: '>=16.20.0'}
- cpu: [arm64]
+ '@oxlint/binding-linux-arm-gnueabihf@1.88.0':
+ resolution: {integrity: sha512-BLadtw88NdYJBrAtC1dYzrPfSP2d5zgx6iuZycdD0YmZBJ2Nqbit9Z4PSaIb6gxK25dweArGMPbOmq/0ugwUPg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm]
os: [linux]
- '@typescript/typescript-linux-arm@7.0.2':
- resolution: {integrity: sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==}
- engines: {node: '>=16.20.0'}
+ '@oxlint/binding-linux-arm-musleabihf@1.88.0':
+ resolution: {integrity: sha512-wILSczl/DaZsCcf7j7tvNbssp8hxEHIJxrv4j7+JjI3TAL1U/JTWbeUtoJJC/vo8+2hkTmHLYoKJjmiNbijdXw==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm]
os: [linux]
- '@typescript/typescript-linux-loong64@7.0.2':
- resolution: {integrity: sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==}
- engines: {node: '>=16.20.0'}
- cpu: [loong64]
+ '@oxlint/binding-linux-arm64-gnu@1.88.0':
+ resolution: {integrity: sha512-jutT2Hy8JCuZuMwIFHo2HtyxfOfBJHyQxlBHBK1SL9W2f8n/WhjAP0FnDMz9d/mjhv9+QA0mx5AdQ9fDjsrFFg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
os: [linux]
+ libc: [glibc]
- '@typescript/typescript-linux-mips64el@7.0.2':
- resolution: {integrity: sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==}
- engines: {node: '>=16.20.0'}
- cpu: [mips64el]
+ '@oxlint/binding-linux-arm64-musl@1.88.0':
+ resolution: {integrity: sha512-8N8iGV9hh4Lkeuq7QsEkjoXNRRflqR1G2qyoGYXcA0k5qllrdqmfylKEXyHIVERxqNDyMO4StqDQ0uLxXcBQAg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
os: [linux]
+ libc: [musl]
- '@typescript/typescript-linux-ppc64@7.0.2':
- resolution: {integrity: sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==}
- engines: {node: '>=16.20.0'}
+ '@oxlint/binding-linux-ppc64-gnu@1.88.0':
+ resolution: {integrity: sha512-5ydcQt3znNQ/rGEWYRvpS2cK9+T18P2VYgnyJ+eloEAwi9YUmsXy5VGrRqNWIK6qzWwHGnEE3ojVqqQNo+f0hA==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [ppc64]
os: [linux]
+ libc: [glibc]
- '@typescript/typescript-linux-riscv64@7.0.2':
- resolution: {integrity: sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==}
- engines: {node: '>=16.20.0'}
+ '@oxlint/binding-linux-riscv64-gnu@1.88.0':
+ resolution: {integrity: sha512-iGx0uvFT54b/5DPJdEBCxYIrVB3v0uTy+JhRh3CyEp8/22BXDkG8rffkFwREdLsdj9mOrPbJYVOZw8ipcBuzjw==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [riscv64]
os: [linux]
+ libc: [glibc]
- '@typescript/typescript-linux-s390x@7.0.2':
- resolution: {integrity: sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==}
- engines: {node: '>=16.20.0'}
+ '@oxlint/binding-linux-riscv64-musl@1.88.0':
+ resolution: {integrity: sha512-Wt47mKMWelVjRjuR7BCFxXkB0m79K1sTEbqMHRWciKUgo5iv7sWsF4RXSOyFYHD9zerNrkRZblnN273rhwOA1Q==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [riscv64]
+ os: [linux]
+ libc: [musl]
+
+ '@oxlint/binding-linux-s390x-gnu@1.88.0':
+ resolution: {integrity: sha512-g3L12KCS4+1gtUt3RbJ4F+Yxx4LNmmZLEPfhd8rAHEJjJk2lAgNfnjGoP/phJyhG5WS6VbNYbJtadJelNfvTMA==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [s390x]
os: [linux]
+ libc: [glibc]
- '@typescript/typescript-linux-x64@7.0.2':
- resolution: {integrity: sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==}
- engines: {node: '>=16.20.0'}
+ '@oxlint/binding-linux-x64-gnu@1.88.0':
+ resolution: {integrity: sha512-og/XHVDOD9ZJgRiZkT9DgzQd4sr+JZW7e4l17Q/jVMZiIbeEd4uIu9iAoUbTF1gIvVZoRc4QDOxyVUvQGp4WHg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [linux]
+ libc: [glibc]
- '@typescript/typescript-netbsd-arm64@7.0.2':
- resolution: {integrity: sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==}
- engines: {node: '>=16.20.0'}
- cpu: [arm64]
- os: [netbsd]
-
- '@typescript/typescript-netbsd-x64@7.0.2':
- resolution: {integrity: sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==}
- engines: {node: '>=16.20.0'}
+ '@oxlint/binding-linux-x64-musl@1.88.0':
+ resolution: {integrity: sha512-EmhBsp+xuKb6YbZNEMLBo80Xw71AZOIm18do8ni/GLX/Lw1XzNhVYpbxO1KasYtoAvrGtCOdCPULRlIE0bPbTQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
- os: [netbsd]
+ os: [linux]
+ libc: [musl]
- '@typescript/typescript-openbsd-arm64@7.0.2':
- resolution: {integrity: sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==}
- engines: {node: '>=16.20.0'}
+ '@oxlint/binding-openharmony-arm64@1.88.0':
+ resolution: {integrity: sha512-DBUcx/KwYdg1DAz+G01P/GFv512J04EsZadbHptx2FTpWT/MWRg21ZToNHt9pnsfQRBQ3et/g+vqzbvrdAVbuA==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
- os: [openbsd]
-
- '@typescript/typescript-openbsd-x64@7.0.2':
- resolution: {integrity: sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==}
- engines: {node: '>=16.20.0'}
- cpu: [x64]
- os: [openbsd]
-
- '@typescript/typescript-sunos-x64@7.0.2':
- resolution: {integrity: sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==}
- engines: {node: '>=16.20.0'}
- cpu: [x64]
- os: [sunos]
+ os: [openharmony]
- '@typescript/typescript-win32-arm64@7.0.2':
- resolution: {integrity: sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==}
- engines: {node: '>=16.20.0'}
+ '@oxlint/binding-win32-arm64-msvc@1.88.0':
+ resolution: {integrity: sha512-xeVd0n4XG5HvynxfYvXi6uB+JvZbVZataowPS8cYpMbYg9mwE4sSyElFQd4LVJFifq8bRLDSR18XgEildmcXAg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [win32]
- '@typescript/typescript-win32-x64@7.0.2':
- resolution: {integrity: sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==}
- engines: {node: '>=16.20.0'}
- cpu: [x64]
+ '@oxlint/binding-win32-ia32-msvc@1.88.0':
+ resolution: {integrity: sha512-MA6iOw//amleaz2mVMsZrA7NHlEexjTrhIxSMFCXQi6IUuQO+3Od00GZhr2iCYw6RFzMW36jkKK/WHBXMsoQAw==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [ia32]
os: [win32]
- '@vitest/mocker@5.0.3':
- resolution: {integrity: sha512-T8sWAIbkSyAjkwTcaEc3Iu0o9A27X1/kdXrizhZkGuSKScRQtRzclfAMpOTcGdXCsqxeWlpGy3XjqaW8CpLORg==}
- peerDependencies:
- msw: ^2.4.9
- vite: ^6.0.0 || ^7.0.0 || ^8.0.0
- peerDependenciesMeta:
- msw:
- optional: true
- vite:
- optional: true
-
- '@vitest/spy@5.0.3':
- resolution: {integrity: sha512-XhFysQTB8AZ+P4gMi+Lpo99vg2AZi0qKpaB9yXQl37+CaMEAPO3iH/wGVnSyL5MPERiLezpqTVtrR6UZH5GCXg==}
-
- acorn@8.19.0:
- resolution: {integrity: sha512-oJlA3XiRm7Cyk6qFD2Jn8ak9B7jSy0qy00ADO3+8dpT0LSjFihQYv4C02LFCSYJV3Q37xYwwRy5m+IpIiUzqWw==}
- engines: {node: '>=0.4.0'}
- hasBin: true
-
- assertion-error@2.0.1:
- resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
- engines: {node: '>=12'}
-
- buffer-from@1.1.2:
- resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
-
- buffer-image-size@0.6.4:
- resolution: {integrity: sha512-nEh+kZOPY1w+gcCMobZ6ETUp9WfibndnosbpwB1iJk/8Gt5ZF2bhS6+B6bPYz424KtwsR6Rflc3tCz1/ghX2dQ==}
- engines: {node: '>=4.0'}
-
- chai@6.3.0:
- resolution: {integrity: sha512-XWAtwJ6OHO+tj0EKCs0Y2UamnyOxseZWltU4x2U2wh8g4AigdjwvtUjvLP2tqkA/avxHEtzxNaqGq/YGNwckKg==}
- engines: {node: '>=18'}
-
- commander@2.20.3:
- resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
-
- detect-libc@2.1.2:
- resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==}
- engines: {node: '>=8'}
-
- entities@7.0.1:
- resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==}
- engines: {node: '>=0.12'}
-
- es-module-lexer@2.3.2:
- resolution: {integrity: sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==}
-
- estree-walker@3.0.3:
- resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
-
- expect-type@1.4.0:
- resolution: {integrity: sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==}
- engines: {node: '>=12.0.0'}
-
- fdir@6.5.0:
- resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
- engines: {node: '>=12.0.0'}
- peerDependencies:
- picomatch: ^3 || ^4
- peerDependenciesMeta:
- picomatch:
- optional: true
-
- fsevents@2.3.3:
- resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
- engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
- os: [darwin]
+ '@oxlint/binding-win32-x64-msvc@1.88.0':
+ resolution: {integrity: sha512-3Sz6rVWe8Dy+ufsXurFN1GX2dX43F/lQMSLelK9gFjiba7nHvLlqlhR5cHlWVnCpSqUY1hN9pyCX9XToe6ve6g==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [x64]
+ os: [win32]
- happy-dom@20.14.5:
- resolution: {integrity: sha512-x/RzkpWO40bTjIoT30iQtt64FLLmH/iRcUCN2X//bLx7H3ifkdfPXyqsro/OYtqzIAhiLMMA7mmiOR9C3NOKjQ==}
- engines: {node: '>=20.0.0'}
+ '@oxlint/plugins@1.88.0':
+ resolution: {integrity: sha512-G2xbfWTrbqYRhR/vfeKNMQf/sS3/ti0iKJAAkRxHuXWZH/hne/dyIb9QKk5LuR6cJLARxsL6FMoAYmfspd74MQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- lightningcss-android-arm64@1.33.0:
- resolution: {integrity: sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==}
- engines: {node: '>= 12.0.0'}
+ '@parcel/watcher-android-arm64@2.6.0':
+ resolution: {integrity: sha512-trgpLSCKRC/huFjXX/Smh+0sWe4+YtKfktIToiMl59ghz7z+qkH6kMvNnUbLyRs9N11t8l4svSCs1+5B3rOAhA==}
+ engines: {node: '>= 10.0.0'}
cpu: [arm64]
os: [android]
- lightningcss-darwin-arm64@1.33.0:
- resolution: {integrity: sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==}
- engines: {node: '>= 12.0.0'}
+ '@parcel/watcher-darwin-arm64@2.6.0':
+ resolution: {integrity: sha512-Y3QV0gl7Q1zbfueunkWIERICbEojQFCgpyG7YqOGNFLsckXyI1xu9mAIUpKY9QBYzBtSkN8dBPwd3yiAO9ovMw==}
+ engines: {node: '>= 10.0.0'}
cpu: [arm64]
os: [darwin]
- lightningcss-darwin-x64@1.33.0:
- resolution: {integrity: sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==}
- engines: {node: '>= 12.0.0'}
+ '@parcel/watcher-darwin-x64@2.6.0':
+ resolution: {integrity: sha512-Ohv6OpzhUfKYD7Beb8kDvG0jbIxORCYY1JRdZnaBtnjjkJxgD7ZVL0nw2sCYd0yTMKTvz3nnTnOF3cDifK+kvw==}
+ engines: {node: '>= 10.0.0'}
cpu: [x64]
os: [darwin]
- lightningcss-freebsd-x64@1.33.0:
- resolution: {integrity: sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==}
- engines: {node: '>= 12.0.0'}
+ '@parcel/watcher-freebsd-x64@2.6.0':
+ resolution: {integrity: sha512-5HmXvDgs8VK+74jF9y9/2FE3/OnlcKmc56tjmSrEuZjpSZOGL+fvAu+HKJBdPs9uwoP2hE6TlSUpXZ/C5jUFmQ==}
+ engines: {node: '>= 10.0.0'}
cpu: [x64]
os: [freebsd]
- lightningcss-linux-arm-gnueabihf@1.33.0:
- resolution: {integrity: sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==}
- engines: {node: '>= 12.0.0'}
+ '@parcel/watcher-linux-arm-glibc@2.6.0':
+ resolution: {integrity: sha512-Ps/hui3A+vMbjdqlqAowK2ZL8+BO8dBjxeWXj6npTBs3jx4wWmbPpaLuqwrQrSqIVMCnpWo238bJ1U37GhQOYg==}
+ engines: {node: '>= 10.0.0'}
cpu: [arm]
os: [linux]
+ libc: [glibc]
- lightningcss-linux-arm64-gnu@1.33.0:
- resolution: {integrity: sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==}
- engines: {node: '>= 12.0.0'}
+ '@parcel/watcher-linux-arm-musl@2.6.0':
+ resolution: {integrity: sha512-9c6AUHgHoG+IY88MRIHupztQiQnrbqHYQjkM2btA+Bf/wQnQMuiD0Wfk1EVv3TlNT3x41uU71rn6E4xh/+zvkw==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm]
+ os: [linux]
+ libc: [musl]
+
+ '@parcel/watcher-linux-arm64-glibc@2.6.0':
+ resolution: {integrity: sha512-yHRqS2owEXe6Hic9z6Mh1ECsCd+ODVOGvZDyciqRd21+v+o+DnXMOrw50DSpIG2sb8GPEaPPmfeCAWKPJdq46g==}
+ engines: {node: '>= 10.0.0'}
cpu: [arm64]
os: [linux]
libc: [glibc]
- lightningcss-linux-arm64-musl@1.33.0:
- resolution: {integrity: sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==}
- engines: {node: '>= 12.0.0'}
+ '@parcel/watcher-linux-arm64-musl@2.6.0':
+ resolution: {integrity: sha512-WhB2e/V7rqdHHWZusBSPuy5Ei8S6lSz6FE5TKKQz5h3a0O+C+mhY7vxU9b/stqvMb8beLnPY82ZrFTLKs+SrKA==}
+ engines: {node: '>= 10.0.0'}
cpu: [arm64]
os: [linux]
libc: [musl]
- lightningcss-linux-x64-gnu@1.33.0:
- resolution: {integrity: sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==}
- engines: {node: '>= 12.0.0'}
+ '@parcel/watcher-linux-x64-glibc@2.6.0':
+ resolution: {integrity: sha512-ulGE6x6Oz6iAwg75T8YQSoguBWasniIbX+QWpaYPcCnDOpdWX3k+4xbEYPZVLxOuoJI+svJJPD3sEj8G7lrQ3A==}
+ engines: {node: '>= 10.0.0'}
cpu: [x64]
os: [linux]
libc: [glibc]
- lightningcss-linux-x64-musl@1.33.0:
- resolution: {integrity: sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==}
- engines: {node: '>= 12.0.0'}
+ '@parcel/watcher-linux-x64-musl@2.6.0':
+ resolution: {integrity: sha512-tkBYKt7YQrjIJWYDnto2YgO8MRkjlMTSNoRHzsXinBqbLdeOM3L32wPZJvIZxqaLMfSlS/4sUjH/6STVP/XDLw==}
+ engines: {node: '>= 10.0.0'}
cpu: [x64]
os: [linux]
libc: [musl]
- lightningcss-win32-arm64-msvc@1.33.0:
- resolution: {integrity: sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==}
- engines: {node: '>= 12.0.0'}
+ '@parcel/watcher-win32-arm64@2.6.0':
+ resolution: {integrity: sha512-gIZAP23jaHjGWasY/TY6yL7NHFClf0Ga7FN+iINvk+KN94rhm94lYZhFsbYFNcA04/onvGD9kKmiJLJB2HbNwQ==}
+ engines: {node: '>= 10.0.0'}
cpu: [arm64]
os: [win32]
- lightningcss-win32-x64-msvc@1.33.0:
- resolution: {integrity: sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==}
- engines: {node: '>= 12.0.0'}
+ '@parcel/watcher-win32-x64@2.6.0':
+ resolution: {integrity: sha512-cA+/pXV2YkfxlIcXOQ5fSWqAzzPyD78/x5qbK/I0vUkrlYHA8TIz+MXjAbGouguKVSI4bOmkTSJ1/poVSsgt+A==}
+ engines: {node: '>= 10.0.0'}
cpu: [x64]
os: [win32]
- lightningcss@1.33.0:
- resolution: {integrity: sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==}
- engines: {node: '>= 12.0.0'}
+ '@parcel/watcher@2.6.0':
+ resolution: {integrity: sha512-7FNeNl8NCE7aINx7WXiKQrPYZWC/hvrTsmk6zmxbI7LTXE7hVek/n8AfVgpe2y82zl3w0HvCHN0bVKMBoJcC0w==}
+ engines: {node: '>= 10.0.0'}
- magic-string@1.4.3:
- resolution: {integrity: sha512-z12OxmaPGE0F4xlpGdjuAUckipLpQlTAuAmyGhNoD7ODpYUzvDfvtxUbjM/jwznyP178oju/KDdyi220wNJ0RQ==}
+ '@polka/url@1.0.0-next.29':
+ resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==}
- nanoid@3.3.20:
- resolution: {integrity: sha512-uKdg2G3GNCKQn9byYOpxbGqrT2fGO5KRt5J/8b3pok8rT6qxGWF6hxMyJiEYtAf+FVyYuD9hRaDqX5uPFYJ4ZQ==}
- engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
- hasBin: true
+ '@popperjs/core@2.11.8':
+ resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==}
- obug@2.2.1:
- resolution: {integrity: sha512-XrsrhT5sybtKI6wakr2SPOlGZWWYbUXZ7a0jT8/QOeAPau+1X/bSegNe5YR75oJmEZQbKningirmGOEJCIk61Q==}
- engines: {node: '>=12.20.0'}
+ '@radix-ui/number@1.1.3':
+ resolution: {integrity: sha512-Road2bidD0uu/1BGDOWNdPI06g0lIRy6IF9GZcIrDK2KGItfor8IQwQa+yM2ERgHM1MmHxaxpTzk0/Jp42lNfA==}
+
+ '@radix-ui/primitive@1.2.0':
+ resolution: {integrity: sha512-KABY+VMIRPJL+Vyzv/335FEhXXD/xDv8BMb1kl48/aXJZMH0LtHCTx5ga5RnxaEP3nZHtmTLf1P9vanmFX46bw==}
+
+ '@radix-ui/react-accessible-icon@1.2.0':
+ resolution: {integrity: sha512-BB4+HHkFl3HipEAhm/mLhrpXV+2kRX7MvY4AaImUcQVeWQt5KhV1JEByNs8NGfJOcr95RcQGijt9+OrCo68xGA==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-accordion@1.3.1':
+ resolution: {integrity: sha512-lCZ6sbGS/7WO0j84yx4srIgOf0MRJ/sZ13RonADXxvKBym8xrxNCq5f6DibGcr38sIlwPk8/52uYdXeOPsbEDw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-alert-dialog@1.2.1':
+ resolution: {integrity: sha512-MWC4N7RY+qsbNrFNo7yQ9ZbdoZEW+B5DtpWxJfUnVCqcQxxqqg3qis3RMPTDbCNaTIdHJSn5XDkl9ZdVWXknLg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-arrow@1.1.17':
+ resolution: {integrity: sha512-67jjcVvxjXCCStnTW3Z+M7jmaFMuMR7M2JgpDzH4w7JSRrikmzhjfYgP/09ECb8n7whnsgh1ifJ+Ie96qEj+pQ==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-aspect-ratio@1.2.0':
+ resolution: {integrity: sha512-gHEU+Lx8DlT/FYIjZQvvBJrFSwUngXTjh7FeL9QvJaNALDLez6pgDj2axCUihBjtPBy82LN0gNb25+sTcSXNmA==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-avatar@1.3.1':
+ resolution: {integrity: sha512-ssZOkfQNkFpYVmCPQlr978xSaU7moSrGXdwg4j2Xs2WlGl/1KsSZtfpK+WnLnx0Rwll1BAh6oUrAy/uR31SBvQ==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-checkbox@1.4.1':
+ resolution: {integrity: sha512-KWtwhh+98ML3seZ9vO9yRY2OwaQG90dCiDAxjpSNY2AaZ3Hik3B0dsk6m0ILywo/no3A9/SozadyPMNweVT8yw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-collapsible@1.2.1':
+ resolution: {integrity: sha512-fSzLb/qy1wuZSxQBcxpW0hNXYHDMWiIXDGyJGdA4+FSLknOWZsNRrTCUavxb4PI8b8lvHo/CysO6NVi5zLpo5g==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-collection@1.2.0':
+ resolution: {integrity: sha512-+yiQzqcc7Sy7/5s0jrMCjpPRFB3538VNrXPWdTLZhE/SCfgEws4aI6lHWN/vvcnyhHndROWBzqmqB4QBrITZ9Q==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-compose-refs@1.1.5':
+ resolution: {integrity: sha512-+48PbAAbq3didjJxa+OaWY2ZwgAKsNiRGyeHKszblZMQ+kcpd9pAaT11cMkGEie0vsOi3QdeTE6d5Fe3Gn61kA==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-context-menu@2.4.1':
+ resolution: {integrity: sha512-Pddn3Z8lio3/ChxyXaEP3jHTTo1LTHCWwF8+mG1chQlWijP+ttVHBKwezrQTiV6Mj670ojvumqvuGh+mdv33iQ==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-context@1.3.0':
+ resolution: {integrity: sha512-v5AYEocMISkbJ+1fTXzZpiFv7NRr3D2WiYbLIKf+FkmJ8VkP6d503eV2n34MFussHXY1pcoq3yfJiQH77dc4Mg==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-dialog@1.3.1':
+ resolution: {integrity: sha512-+0E4qvVTwjAWra9sEhJ+9BTsvHE00zkUuNw1VGh7S+Gc13dfYk+S1PVQdchWDj+XYHhAai7Z7IpzXVDCGsDplg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-direction@1.2.0':
+ resolution: {integrity: sha512-FtRA52a/r+LKStFT+neLUm+8vSe7wbzkbQGGeU8ixFiwC8NU14Evoq9ATECqL3eGbcUzJR4fyfA4KkK/q6dfqg==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-dismissable-layer@1.2.1':
+ resolution: {integrity: sha512-KIfDcAsx+oVylFZ4xryVKusJUrLLhTQmfnJW4kwk4Km5myvhHCrj04hnWWUC166+xD4DHdH8tQGylwYX1h6+Pg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-dropdown-menu@2.2.1':
+ resolution: {integrity: sha512-XsHcmYG2AcqnvTqrOXXWcMrhquEIlqucizuDH1MV/qMRW+DndpBCMvNeTRXOxqmG1H5j89M/+I0/34Zdd+zDcQ==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-focus-guards@1.2.0':
+ resolution: {integrity: sha512-MPm5R0iRGUDrDnPNxmLBkv+X7pN4XKzt+MbWJEuJQsH3NFH4omrbpXpucyYCCKTSt+na/ZxGhEWQrWTZ0285cA==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-focus-scope@1.3.1':
+ resolution: {integrity: sha512-ugeMhbXt4y5S2T1GnIqbWDKEN962PDwnX1fN0eKOOgf5f63Dh2mn8F1FUySlgW0iF6GiVsRF32DzuDIWTUyQJg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-form@0.3.0':
+ resolution: {integrity: sha512-KnmrCM27m7Jo1R8S6cFDPrEeq20Jfn5dqde0SZrJr2lVXlj6/QZSUCyFoYh1d8ti0uUrMNK5Lx6dUDuINT+f4Q==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-hover-card@1.2.1':
+ resolution: {integrity: sha512-4QooHxgmpCKRjj1Pft+hETKidYcrbPKcVwMGtk2Oa5DcWY2IH1fHuQt9LG6q5hUQBBV2MhQxSvtx6B/C1xfiTw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-id@1.1.4':
+ resolution: {integrity: sha512-TMQp2llA+RYn7JcjnrMnz7wN4pcVttPZnRZo52PLQsoLVKzNlVwUeHmfePgTgRluXFvlD3GD5g5MOVVTJCO0qA==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-label@2.1.17':
+ resolution: {integrity: sha512-xmj7MN/drx1oUAXkfiFIvyDmGNUIN/omGobvA5oAoNqu9zO2MkISYGZOkBcqSzs/UZXXwV+/3ACRE7q7mGcmkA==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-menu@2.2.1':
+ resolution: {integrity: sha512-G34BsU90SBj5foYpz8pQqq/Q0Dlfyyl6KitWEfRwXC0QvfwhWNAwS49DWP2+rRJ0iwv20Z2Qx7Sk+T03bGo5JA==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-menubar@1.2.1':
+ resolution: {integrity: sha512-bRTYtS9JITV2dUYqYZb7+N5SooQBkZrNRejfmyrSKe3Y57aXhKgx//kBUP0kY7pEpsWR/U1AHsAJRzjwCrK3PA==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-navigation-menu@1.4.1':
+ resolution: {integrity: sha512-XPPZjkeyCSMNNvt0FyDv/PUauG7Ow4GwHQ/XZSwW36F/TS7rR4HFTsXH8ewLnXTOLn3x96/pmTPNQIVoTX/86g==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-one-time-password-field@0.2.1':
+ resolution: {integrity: sha512-KtHdcgnaAK6rohQ/MMJoGYcbgSRJsIuGBdHrFeTB1/9SaKlDs14oSOniW6BL6M43HqvgCO3u4WuVdFLkuc6sqw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-password-toggle-field@0.2.1':
+ resolution: {integrity: sha512-vu4+ZoJAaFjdI7l1lDSZRs+4dEv83Jmu7lyzajPrAeQzX74y84n0rUNWbWSgN9XB5NE8IY86Z02kGH6oRrzR+w==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-popover@1.3.1':
+ resolution: {integrity: sha512-ZNxvXRx5W2Wos4fXCXb5lpdqN0Z5chf+mStOUOTr4ik7d+62MRvoe9rzCA/eGNg36lxXqSrKEKmwuZEcUrIstw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-popper@1.4.0':
+ resolution: {integrity: sha512-yCWRvLeGv9Pz3+efwHqGPp70mZ56r3kfIgQVF56Oj2aAa4uP/Tb+IE59wNcc+758rctqbCKx4LbK8II/r7Bn0Q==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-portal@1.2.0':
+ resolution: {integrity: sha512-StX7xXnaRU41VvFtMm9zlhVGz8XF6GmWWTXftkQaY+tqVkbs/R9UmAp5mLzHHapk5hM9RMZQvO/3usyIP/g42g==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-presence@1.1.11':
+ resolution: {integrity: sha512-Z7/atlkab36Z8hm+V8zYc79r0W+tiOB1o0tun1By94JyadkekLQmtEAnBSP9XKXBNQsStoStS4+gX10JpS5akA==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-primitive@2.2.0':
+ resolution: {integrity: sha512-HCTSPMNqv55Qk0IX4geJbpyXazmqulcimwuyjxTkKi29v+QZbG2Zho9BnbBq4YS2PF+KlNb2CXoLz66uUmblkg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-progress@1.2.1':
+ resolution: {integrity: sha512-yQBiM6J3YM8Ums1orkEFpbznK47geKxa0igikzcaS1xHgdba3DdAQBsGbCTt5BVfR8zhEvgxQ0poGcINaD3lvw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-radio-group@1.5.1':
+ resolution: {integrity: sha512-QbyVT1ddnjqB9H+CUYKkNWdU9fIK3QHCYtjf7mS6ekSqiuXkWtWn5UZW9mhA8qtl3vrVyIsmR9gePstAtKrqkw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-roving-focus@1.2.1':
+ resolution: {integrity: sha512-UwraORzVUeEPMclhO1p0vz0qI+TbdDLO9i+FiOqhJyHKwdpCRCck9yVEscUnAMIzCiuNoQa8D4A9bIpOPXGt6Q==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-scroll-area@1.4.0':
+ resolution: {integrity: sha512-CFrLqHNejWq5FhKAcj9V/WPGRsol76HBQto81NdOBVFEOqIEkJkKIJt0Z824A/9hHLCtoiR/Kw3euRgzXP2pxg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-select@2.4.1':
+ resolution: {integrity: sha512-888ZwW0Md6GyptuqYABRX9nLKgoYfcooCyBBvVaX5Jp3e+8Jp2i4Zo/Uy50Hm+Ysn2JfloQXstW4U36w8teVtg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-separator@1.2.0':
+ resolution: {integrity: sha512-1jUAap0wZEqVP05Ou7kJgRxe/W+Qftng+rUNWGa0qkKbv9r5pWTG3E7a3ELKo2eJoHKMECnzuYrZpSyO1YgcYQ==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-slider@1.6.1':
+ resolution: {integrity: sha512-IRNRR90moPqxfwCJ0XbMJIxo70W0/1ZExT/sNCxEHMaPx0SF9HoQrcPEC75+H28cFKa0b+KH63anfLYJmwKacw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-slot@1.5.0':
+ resolution: {integrity: sha512-tyYd9ddPXAysAbdbD9eYxgwpCSv6f3PncqVSNKQFSR5lcJVLz3cb/pANDoYrLiHBpXv7skortyUgGUWsYuPPFQ==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-switch@1.4.1':
+ resolution: {integrity: sha512-NpBGwc40rY02ZmSvuyeKk0Bvc8ZsNeTMi4qHvJ+ZH4EiYCv0zIXEgdCW4bVdzgIUeP9xxbLJSxKOUfqITYNmkA==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-tabs@1.2.1':
+ resolution: {integrity: sha512-hRoJlode+hg5ZNlR+3tkfkUliIybdTpD5lkAvHQ9yaXseGf7XVO9Ib2GPEIOuaJJbo7YWYbNpDDRfo8Dhf6/xA==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-toast@1.3.1':
+ resolution: {integrity: sha512-iQvL0J7XK4HtJNGkkWMyYrboNseI7vtotFeUkIno8YNxVA9oM7B6//fh0Mc6TSKI96+zioLWi98lQLso88yJmQ==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-toggle-group@1.2.1':
+ resolution: {integrity: sha512-O8Ldx5ao4p4KoW+DO8/PmkOe5mdKNi3F2SseqjVj88wvDGDHe60cUmO0Zm/uHsKrvNgQGV8Efpuh95Tht/h4vw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-toggle@1.2.1':
+ resolution: {integrity: sha512-+3MUq+WyiBplXYqQ0EIYlq8R4sLQ0T5NbOK7DMdDLCKO93pe2uE0DUJTWWfTBprpJJXxfoF3eMW0xpakVZrYsg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-toolbar@1.2.1':
+ resolution: {integrity: sha512-Cm8m7JTEeUdbfA6T9xgyu8HfOpyvSx8pB/wj0DlEuWaJe9FilIs4Az9wci/lU9RbthV/UkltszMw5WnnD+m/Ug==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-tooltip@1.4.1':
+ resolution: {integrity: sha512-NxLFGSFtZ78zVfcoOhTwR1xwqo5qx1Jh8Pw6FMZ9McCaqfRzz7/gIRahs2Oy5XlPgQ+8QkUcKbN5B0U44J/kCg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-use-callback-ref@1.1.5':
+ resolution: {integrity: sha512-Y5GBf4NKeADoXI1geiMlMuMoURT3k9MizzzKhGb/m55H94aGigZ01PIpkvsO6lML13BA6XYAXSJ6gza7vTn5nw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-controllable-state@1.3.0':
+ resolution: {integrity: sha512-TAcBI7bw2ljYCbv4+zuTSd6zICu8pRt6SDN2vJ/Z06K2MXh6I9WYFe/A9ovlFDtR5HVHGm5iDxDoABm/++dbKg==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-effect-event@0.0.5':
+ resolution: {integrity: sha512-7cshFL8HGS/7HEiHH+9kL9HBwp2sa9yX18Knwek6KYWmXwM7pegMgta2AXMQKI+rq3JnfSj9x8wYqFMTdG1Jgg==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-escape-keydown@1.1.6':
+ resolution: {integrity: sha512-9cRullnQRv+kqnRmFlmh0WC3kAPuGmHiQ9VwsXdrYk//sBhgCKEttcpPEPgIQbyx6TGUmooVEHYTyohwz/lSJg==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-is-hydrated@0.1.3':
+ resolution: {integrity: sha512-umO/aJ+82CpOnhDZUTbILCQf7kU/g0iv+oGs/Q8jw7IkhWBzaEP4sA268PhFAJTFetbwp3ICc6ktpI4TqtxcIw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-layout-effect@1.1.4':
+ resolution: {integrity: sha512-K20DkRkUwDnxEYMBPcg3Y6voLkEy5p5QQmszZgLngKKiC7dzBR/aEuK3w1qlx2JWDUNH6FluahYdgR3BP+QbYw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-previous@1.1.4':
+ resolution: {integrity: sha512-XoSLhbRbqxFtgJoi2fNHA3C6pDlY34x508vUpUGoFZfvePfHXHbE1lC4FYFMnJWgiCRroSTw6fOsXQoVS9RwZg==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-rect@1.1.4':
+ resolution: {integrity: sha512-cSOCh6JlkmfjLyNcLiu2nB4v+nm+dkZ+Q5KHWk/soo4U7ZLiEQFKHK9/YmtBHjfCEaU43IBKQOc4/uJmCaiCTQ==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-size@1.1.5':
+ resolution: {integrity: sha512-V1McDQkMGzgivwqdu7u96APs7oi0Jvj9LTzgq3WWrDZqxWdAqU9yZnZQqk5OizGFR8badUQwZsrlao7MOlWYOA==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-visually-hidden@1.2.13':
+ resolution: {integrity: sha512-feijiN1oPk4rck4u9Dm9tsU4mT6Wp9oeEEhaz1WUEs1VuqLf8xzsFG+Qk+uWq6TnMH9O+WRECRg0NftyP9E4Fw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/rect@1.1.3':
+ resolution: {integrity: sha512-JtyZR+mqgBibTo8xea3B6ZRmzZiM/YeVBtUkas6zMuXjAlfIFIW2FgqeM9eLyvEaYX66vr6DJMK+4U6LV0KhNw==}
+
+ '@rolldown/pluginutils@1.0.1':
+ resolution: {integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==}
+
+ '@shadcn/react@0.2.1':
+ resolution: {integrity: sha512-5krgi3dRMKb5jH6a+qPzVJUy/54s0kKE4Rw4LjDfLqOdVQTWKUgxWf1kW8r912I0jX/Lzxqc+pgjkjWxUIK5BQ==}
+ peerDependencies:
+ '@types/react': '>=19'
+ react: '>=19'
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ react:
+ optional: true
+
+ '@shikijs/core@3.23.0':
+ resolution: {integrity: sha512-NSWQz0riNb67xthdm5br6lAkvpDJRTgB36fxlo37ZzM2yq0PQFFzbd8psqC2XMPgCzo1fW6cVi18+ArJ44wqgA==}
+
+ '@shikijs/engine-javascript@3.23.0':
+ resolution: {integrity: sha512-aHt9eiGFobmWR5uqJUViySI1bHMqrAgamWE1TYSUoftkAeCCAiGawPMwM+VCadylQtF4V3VNOZ5LmfItH5f3yA==}
+
+ '@shikijs/engine-oniguruma@3.23.0':
+ resolution: {integrity: sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g==}
+
+ '@shikijs/langs@3.23.0':
+ resolution: {integrity: sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg==}
+
+ '@shikijs/themes@3.23.0':
+ resolution: {integrity: sha512-5qySYa1ZgAT18HR/ypENL9cUSGOeI2x+4IvYJu4JgVJdizn6kG4ia5Q1jDEOi7gTbN4RbuYtmHh0W3eccOrjMA==}
+
+ '@shikijs/types@3.23.0':
+ resolution: {integrity: sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ==}
+
+ '@shikijs/vscode-textmate@10.1.0':
+ resolution: {integrity: sha512-cVBuhDQjBZaNMTwBquYfPydrUP+E3hE6oYGasx8h6ZrODIM7/r+gxLDXdd66oszbrggZHEntdE6j+5gYIVyMWQ==}
+
+ '@tailwindcss/forms@0.5.11':
+ resolution: {integrity: sha512-h9wegbZDPurxG22xZSoWtdzc41/OlNEUQERNqI/0fOwa2aVlWGu7C35E/x6LDyD3lgtztFSSjKZyuVM0hxhbgA==}
+ peerDependencies:
+ tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20 || >= 4.0.0-beta.1'
+
+ '@tailwindcss/node@4.3.3':
+ resolution: {integrity: sha512-/T8IKEsf9VTU6tLjgC7+sv2mOPtQxzE2jMw7u4Tt40Tx+QSZxpzh95/H6cMKoja9XuW7iMdLJYBB0o9G1CaAgg==}
+
+ '@tailwindcss/oxide-android-arm64@4.3.3':
+ resolution: {integrity: sha512-Y85A2gmPSkl5Ve5qR86GL4HT509cFqQh1aes9p3sSkyTPwt0Pppf3GkwGe4JPACcRYjgJIEhQgM6dBClnr0NYw==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [android]
+
+ '@tailwindcss/oxide-darwin-arm64@4.3.3':
+ resolution: {integrity: sha512-BiaWatpBcERQFDlOjRDpIVXuFK5PJez5SA4JMg6VYZdBYU+qKfV/vqjcIs+IYmtitf1xYQZTwXvU/8y4lfZUGw==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@tailwindcss/oxide-darwin-x64@4.3.3':
+ resolution: {integrity: sha512-fAeUqfV5ndhxRwai8cXGzdLvul9utWOmeTkv69unv4ZXixjn61Z+p9lCWdwOwA3TYboG3BwdVuN/RDjhBRl0mw==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@tailwindcss/oxide-freebsd-x64@4.3.3':
+ resolution: {integrity: sha512-iyf5bV6+wnAlflVeEy7R25dupxTNECZN5QMI0qNT6eT+EgaGdZcKhGkr5SdoaWiLJ3spLqIY9VCeSGrwmtg4kw==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@tailwindcss/oxide-linux-arm-gnueabihf@4.3.3':
+ resolution: {integrity: sha512-aAYUprJAJQWWbRrPvtjdroZ56Md+JM8pMiopS6xGEwDfLhqj+2ver2p4nU4Mb3CRqcMmNBjo8KkUgcxhkzVQGQ==}
+ engines: {node: '>= 20'}
+ cpu: [arm]
+ os: [linux]
+
+ '@tailwindcss/oxide-linux-arm64-gnu@4.3.3':
+ resolution: {integrity: sha512-nDxldcEENOxZRzC2uu9jrutZdAAQtb+8WWDCSnWL1zvBk1+FN+x6MtDViPB5AJMfttVCUhehGWus3XBPgatM/w==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ '@tailwindcss/oxide-linux-arm64-musl@4.3.3':
+ resolution: {integrity: sha512-Md44bD6veX/PC5iyF8cDVnw4HBIANZepRZZ7a8DQOvkfo5WUBwcp6iAuCUz23u+4SUkhJlD3eL7hNdW8ezd/kA==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ '@tailwindcss/oxide-linux-x64-gnu@4.3.3':
+ resolution: {integrity: sha512-tx7us1muwOKAKWao2v/GaafFeQboE6aj88vC6ziN2NCGcRm8gWUhwjzg+YdVB1e4boAtdtma4L43onunI6NS4w==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ '@tailwindcss/oxide-linux-x64-musl@4.3.3':
+ resolution: {integrity: sha512-SJxX60smvHgasZoBy11dX6YRjXJFovwWBoedhbQPOBzgFWBHGB+TVPWB9BxzR7TTxU8FQZAI2AyiNCMzFm8Img==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ '@tailwindcss/oxide-wasm32-wasi@4.3.3':
+ resolution: {integrity: sha512-jx1+rPhY/5Ympkktd656HBWEBLxP7dH06losBLjjf5vgCODXvi9KhtftWcMIwTFIDqBr7cRnQkdLnAG+IOlGvQ==}
+ engines: {node: '>=14.0.0'}
+ cpu: [wasm32]
+ bundledDependencies:
+ - '@napi-rs/wasm-runtime'
+ - '@emnapi/core'
+ - '@emnapi/runtime'
+ - '@tybys/wasm-util'
+ - '@emnapi/wasi-threads'
+ - tslib
+
+ '@tailwindcss/oxide-win32-arm64-msvc@4.3.3':
+ resolution: {integrity: sha512-3rc292Ca2ceK6Ulcc/bAVnTs/3nDtoPhyEKlgPv+yQJQi/JS/AMJlqzxvlDacL1nekbrcf6bTqp/jV4qgnPxNQ==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@tailwindcss/oxide-win32-x64-msvc@4.3.3':
+ resolution: {integrity: sha512-yJ0pwIVc/nYeGoV02WtsN8KYyLQv7kyI2wDnkezyJlGGjkd4QLwDGAwl47YpPJeuI0M0ObaXGSPjvWDPeTPggw==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [win32]
+
+ '@tailwindcss/oxide@4.3.3':
+ resolution: {integrity: sha512-krXjAikiaFSPaK/FkAQT5UTx3VormQaiZ5hBFlJZ9UFQGB/rwg1MZIhHAG9smMQRTdyJxP6Qt5MwMtdyU5FWrA==}
+ engines: {node: '>= 20'}
+
+ '@tailwindcss/vite@4.3.3':
+ resolution: {integrity: sha512-yYU8cogLeSh/ms2jh8Fj7jaba/EWa7Ja6GoUqYZaraEuCI5YS6ms6ObZgjjedm+jm6XZjdNRWBpPP6Z86oOxcw==}
+ peerDependencies:
+ vite: ^5.2.0 || ^6 || ^7 || ^8
+
+ '@testing-library/dom@10.4.2':
+ resolution: {integrity: sha512-yzr2S9HyAIdhz2/6qHgbs665Q7PKVcDF05vsOlHPxG1mo36gKVesdYVeDLnXgfjJ03CrKRk08knc6+E/9m8v2Q==}
+ engines: {node: '>=18'}
+
+ '@testing-library/user-event@14.6.8':
+ resolution: {integrity: sha512-vgSSqnANMnkcYR/vUNDbwS7aM3OErRLNUG8vCVVlj4oc6cKffUrccX7UAS5AmJQQNZTSibi9z5GvvRZ0aYgUCQ==}
+ engines: {node: '>=12', npm: '>=6'}
+ peerDependencies:
+ '@testing-library/dom': '>=7.21.4'
+
+ '@types/aria-query@5.0.4':
+ resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==}
+
+ '@types/chai@5.2.3':
+ resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==}
+
+ '@types/deep-eql@4.0.2':
+ resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==}
+
+ '@types/estree@1.0.9':
+ resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==}
+
+ '@types/hast@3.0.5':
+ resolution: {integrity: sha512-rp/ezSWaD1m44dPKICGhiskI13nVr7qTloFwDa/IYkhhf5nzwP+zIQcIJh3WIFSBOy/H1PzB40jPjMDksN4F+g==}
+
+ '@types/mdast@4.0.4':
+ resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==}
+
+ '@types/node@22.20.5':
+ resolution: {integrity: sha512-U2+DNr+wSjpsTS/wZGYHq7GcwfuSmKiKvoPvK22zwTlRhU91yOniN4qRR5KhIjvif7ysw/dz/hKmfDH0Ris4aA==}
+
+ '@types/unist@3.0.3':
+ resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==}
+
+ '@types/whatwg-mimetype@3.0.2':
+ resolution: {integrity: sha512-c2AKvDT8ToxLIOUlN51gTiHXflsfIFisS4pO7pDPoKouJCESkhZnEy623gwP9laCy5lnLDAw1vAzu2vM2YLOrA==}
+
+ '@types/ws@8.18.2':
+ resolution: {integrity: sha512-67MQl+fpWKVTT1NYdnmo3U4sc/xPo/zQBncVnI74qmQa0z/b+1g6iYqNmGCPbxO+zz2aklb08a0oHfegiVd0/w==}
+
+ '@typescript/typescript-aix-ppc64@7.0.2':
+ resolution: {integrity: sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==}
+ engines: {node: '>=16.20.0'}
+ cpu: [ppc64]
+ os: [aix]
+
+ '@typescript/typescript-darwin-arm64@7.0.2':
+ resolution: {integrity: sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==}
+ engines: {node: '>=16.20.0'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@typescript/typescript-darwin-x64@7.0.2':
+ resolution: {integrity: sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==}
+ engines: {node: '>=16.20.0'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@typescript/typescript-freebsd-arm64@7.0.2':
+ resolution: {integrity: sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==}
+ engines: {node: '>=16.20.0'}
+ cpu: [arm64]
+ os: [freebsd]
+
+ '@typescript/typescript-freebsd-x64@7.0.2':
+ resolution: {integrity: sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==}
+ engines: {node: '>=16.20.0'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@typescript/typescript-linux-arm64@7.0.2':
+ resolution: {integrity: sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==}
+ engines: {node: '>=16.20.0'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@typescript/typescript-linux-arm@7.0.2':
+ resolution: {integrity: sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==}
+ engines: {node: '>=16.20.0'}
+ cpu: [arm]
+ os: [linux]
+
+ '@typescript/typescript-linux-loong64@7.0.2':
+ resolution: {integrity: sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==}
+ engines: {node: '>=16.20.0'}
+ cpu: [loong64]
+ os: [linux]
+
+ '@typescript/typescript-linux-mips64el@7.0.2':
+ resolution: {integrity: sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==}
+ engines: {node: '>=16.20.0'}
+ cpu: [mips64el]
+ os: [linux]
+
+ '@typescript/typescript-linux-ppc64@7.0.2':
+ resolution: {integrity: sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==}
+ engines: {node: '>=16.20.0'}
+ cpu: [ppc64]
+ os: [linux]
+
+ '@typescript/typescript-linux-riscv64@7.0.2':
+ resolution: {integrity: sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==}
+ engines: {node: '>=16.20.0'}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@typescript/typescript-linux-s390x@7.0.2':
+ resolution: {integrity: sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==}
+ engines: {node: '>=16.20.0'}
+ cpu: [s390x]
+ os: [linux]
+
+ '@typescript/typescript-linux-x64@7.0.2':
+ resolution: {integrity: sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==}
+ engines: {node: '>=16.20.0'}
+ cpu: [x64]
+ os: [linux]
+
+ '@typescript/typescript-netbsd-arm64@7.0.2':
+ resolution: {integrity: sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==}
+ engines: {node: '>=16.20.0'}
+ cpu: [arm64]
+ os: [netbsd]
+
+ '@typescript/typescript-netbsd-x64@7.0.2':
+ resolution: {integrity: sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==}
+ engines: {node: '>=16.20.0'}
+ cpu: [x64]
+ os: [netbsd]
+
+ '@typescript/typescript-openbsd-arm64@7.0.2':
+ resolution: {integrity: sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==}
+ engines: {node: '>=16.20.0'}
+ cpu: [arm64]
+ os: [openbsd]
+
+ '@typescript/typescript-openbsd-x64@7.0.2':
+ resolution: {integrity: sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==}
+ engines: {node: '>=16.20.0'}
+ cpu: [x64]
+ os: [openbsd]
+
+ '@typescript/typescript-sunos-x64@7.0.2':
+ resolution: {integrity: sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==}
+ engines: {node: '>=16.20.0'}
+ cpu: [x64]
+ os: [sunos]
+
+ '@typescript/typescript-win32-arm64@7.0.2':
+ resolution: {integrity: sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==}
+ engines: {node: '>=16.20.0'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@typescript/typescript-win32-x64@7.0.2':
+ resolution: {integrity: sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==}
+ engines: {node: '>=16.20.0'}
+ cpu: [x64]
+ os: [win32]
+
+ '@ungap/structured-clone@1.4.0':
+ resolution: {integrity: sha512-1mEZtMKPM09vDmQt5y7YvmN2+DFTP7Tg0EWXdic8/C6VRnpb33e4ghisCIE3WZjsE2N8mf+QV1Zqh7ZFYLWInQ==}
+
+ '@vitejs/plugin-react@6.1.2':
+ resolution: {integrity: sha512-fhJNGUdscQa4HkI0xFxwonWyhnVReCPDbXI7FH7jmzpnVCrFQI7PRrhWecO263610vOrs9tr2Y4xcf8uAdFxbw==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ peerDependencies:
+ '@rolldown/plugin-babel': ^0.1.7 || ^0.2.0
+ babel-plugin-react-compiler: ^1.0.0
+ oxc-transform-react: ^0.152.0
+ vite: ^8.0.0
+ peerDependenciesMeta:
+ '@rolldown/plugin-babel':
+ optional: true
+ babel-plugin-react-compiler:
+ optional: true
+ oxc-transform-react:
+ optional: true
+
+ '@vitejs/plugin-vue@6.0.10':
+ resolution: {integrity: sha512-b80aUQh3n+qEzzZm5oQp3rT2QImeCx58K6eFl/RkJ3d65KW0kTuv5lNsLRVAjbW9YRUpo/wzmvzMgV34bTAItA==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ peerDependencies:
+ vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0
+ vue: ^3.2.25 || ^3.6.0-rc.10
+
+ '@vitest/browser-preview@5.0.5':
+ resolution: {integrity: sha512-ViNg4UlomGSJHtnnr7Txm+55P7/aAMMoS+1WYnWjp5w5tzf7YEUAICcs2sb1uMovEnC8el/8zUfkWZ8+7fPCKA==}
+ peerDependencies:
+ vitest: 5.0.5
+
+ '@vitest/browser@5.0.5':
+ resolution: {integrity: sha512-IDMoZX/iZ8rkilw7weaSgN8tJ7iZ9hUv0wYoKXyiyjWjWFwLSWAY707DcVTgxTYOudWC1E3HA9LYn7kVa9a7uQ==}
+ peerDependencies:
+ vitest: 5.0.5
+
+ '@vitest/mocker@5.0.5':
+ resolution: {integrity: sha512-xLL3lkDegJZw+MGoGaCCsFayDZthGgpAtr3Vziyfc4p7xH89K7KRPcRBBh/kEYm0Aqkt5DtTmkYpBtRV/FrHZg==}
+ peerDependencies:
+ msw: ^2.4.9 || ^3.0.0
+ vite: ^6.0.0 || ^7.0.0 || ^8.0.0
+ peerDependenciesMeta:
+ msw:
+ optional: true
+ vite:
+ optional: true
+
+ '@vitest/pretty-format@5.0.5':
+ resolution: {integrity: sha512-24sSdIlMA9DVPXnYiB9siwU0bTd887Y9jX3+vabztCSsvHwo7ipvJ/a2L3Rljw8+2rK1f5fCj3h5U9I/Jsqgbw==}
+
+ '@vitest/snapshot@5.0.5':
+ resolution: {integrity: sha512-dHyFElWMQy0wFBGrIaPPeUWfJFh+jAUrv46ImIJGd8CADdKV3mlrAu3FyD0wesdxELFCs9M807e040Kba/XKtA==}
+
+ '@vitest/spy@5.0.5':
+ resolution: {integrity: sha512-lwJRExuH417257Q5wv9QYugN9IMJkoxcrKrYxGPQkBzl7wlNpTUxD/5yNX4ESKVUIShKPgkGchYPFMWOOk0wzw==}
+
+ '@vitest/ui@5.0.5':
+ resolution: {integrity: sha512-dCoGUOdgmCaSB2g+WQ/spPCBkytAWdNUkFSXY4z+eYp2d8JEOY8v0uDRaJTG9qf/kTlTVZ4CuYMYMz/f1HS/qQ==}
+ peerDependencies:
+ vitest: 5.0.5
+
+ '@vitest/utils@5.0.5':
+ resolution: {integrity: sha512-/rBu7gzLDQI/SC79Tn98b5DwOgaHU/Gt4I9OVeP3YofzNaYtbImRCOJQmT1S6vOJg9gEIlWC+r3QxKkjuSa1nQ==}
+
+ '@voidzero-dev/vite-plus-core@1.3.0':
+ resolution: {integrity: sha512-Bk/LBwNrxoB8XbGUtGJE3r+U9P4puvdZ6UH36ekygE1J+on/ytwM/yBgQwBnvmX6/MVax+2xxj8wk0N/KkyNeA==}
+ engines: {node: ^20.19.0 || ^22.18.0 || >=24.11.0}
+ peerDependencies:
+ '@arethetypeswrong/core': ^0.18.1
+ '@types/node': ^20.19.0 || >=22.12.0
+ '@typescript/native-preview': '*'
+ '@vitejs/devtools': ^0.7.1
+ '@volar/typescript': ~2.4.0
+ '@vue/language-core': ~3.2.0 || ~3.3.0
+ esbuild: ^0.27.0 || ^0.28.0
+ jiti: '>=1.21.0'
+ less: ^4.0.0
+ publint: ^0.3.8
+ sass: ^1.70.0
+ sass-embedded: ^1.70.0
+ stylus: '>=0.54.8'
+ sugarss: ^5.0.0
+ terser: ^5.16.0
+ tsx: ^4.8.1
+ typescript: ^5.0.0 || ^6.0.0 || ^7.0.0
+ unplugin-unused: '>=0.5.0'
+ unrun: '*'
+ vue-tsc: ~3.2.0 || ~3.3.0
+ yaml: ^2.4.2
+ peerDependenciesMeta:
+ '@arethetypeswrong/core':
+ optional: true
+ '@types/node':
+ optional: true
+ '@typescript/native-preview':
+ optional: true
+ '@vitejs/devtools':
+ optional: true
+ '@volar/typescript':
+ optional: true
+ '@vue/language-core':
+ optional: true
+ esbuild:
+ optional: true
+ jiti:
+ optional: true
+ less:
+ optional: true
+ publint:
+ optional: true
+ sass:
+ optional: true
+ sass-embedded:
+ optional: true
+ stylus:
+ optional: true
+ sugarss:
+ optional: true
+ terser:
+ optional: true
+ tsx:
+ optional: true
+ typescript:
+ optional: true
+ unplugin-unused:
+ optional: true
+ unrun:
+ optional: true
+ vue-tsc:
+ optional: true
+ yaml:
+ optional: true
+
+ '@voidzero-dev/vite-plus-darwin-arm64@1.3.0':
+ resolution: {integrity: sha512-BF4W+UwGxUkHPrH2pZLhafJfkJT20WZIbMzZgZLGQ44LPpZPX8Sb+qtblUnXUkkCzTqad4XtSPgiLKglvZkNQQ==}
+ engines: {node: '>=20.0.0'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@voidzero-dev/vite-plus-darwin-x64@1.3.0':
+ resolution: {integrity: sha512-vLZTk0r+s3e7mycj4SGBbcpK+xyM8a86hXQZtQbJyW7xrGJzsavISy7/m4gGZpWN32Hl4Tmx9V/ffeaoXLkRdg==}
+ engines: {node: '>=20.0.0'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@voidzero-dev/vite-plus-linux-arm64-gnu@1.3.0':
+ resolution: {integrity: sha512-H43Dj9RkEyjOFXxTk3DLTa6hqmHhxUN9vbbqNdwQoc3/TPNhC1zsLZy3qgUFbYGLdS7M9jICCqFzj5GDSYrhIw==}
+ engines: {node: '>=20.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ '@voidzero-dev/vite-plus-linux-arm64-musl@1.3.0':
+ resolution: {integrity: sha512-Se2GlvzUZOvFy+5hoQHoG7LFeiplKs+EJwaskayCSLwZAP+e6/LTK7EK+8OcdMpmdsLPtZoTJHkIjSzrQowJwQ==}
+ engines: {node: '>=20.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ '@voidzero-dev/vite-plus-linux-x64-gnu@1.3.0':
+ resolution: {integrity: sha512-moxojk6zmog2SaLE4/cG75acE6X3cjR0/52Ba8OG2ct0r+dv55VSE0kellAuxS6o9VHy7TBhkIpwpFpQ34rnAA==}
+ engines: {node: '>=20.0.0'}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ '@voidzero-dev/vite-plus-linux-x64-musl@1.3.0':
+ resolution: {integrity: sha512-CykxH008Dy9u20Myki9/UIqq3Dbo1ZMqa098aS6AtWp3QKyEKzSLPB3jKDUklgmu83xiFe5BpPA+33oF0yNY7A==}
+ engines: {node: '>=20.0.0'}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ '@voidzero-dev/vite-plus-win32-arm64-msvc@1.3.0':
+ resolution: {integrity: sha512-l61S9b8aeiDpi8wPRfz4HonqRkLpt/OVYs0sCskvlXYSW/L8qfLOtuWH/xpF8xDjMIfBefKejBVfU1UlRax5Tw==}
+ engines: {node: '>=20.0.0'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@voidzero-dev/vite-plus-win32-x64-msvc@1.3.0':
+ resolution: {integrity: sha512-b6Ng8YezA6JA3adQBNA+8Mn26+OX4fw/tsPfnk//5Cx+1XFDZoAxWYXtGzc0yUQPEKnoGtfw/0OUvcibg61yYg==}
+ engines: {node: '>=20.0.0'}
+ cpu: [x64]
+ os: [win32]
+
+ '@vue/compiler-core@3.5.44':
+ resolution: {integrity: sha512-k34nCytbK8PQ1gR2mGROYOw6Pnv/mumqIdrZ3x2tbyXZDWm7ViKGLTfdB+DRrWqEQsLgGJvn0WN9jBif5zCTLQ==}
+
+ '@vue/compiler-dom@3.5.44':
+ resolution: {integrity: sha512-W5AoBFWdw1lQAKiHowkfgFKFab82oSRT6sGsPfw/q1GRjsy/ZJFLHGhJyBRIFN9APLTUduDH9U2JAiPOIyKuYg==}
+
+ '@vue/compiler-sfc@3.5.44':
+ resolution: {integrity: sha512-dzHmQ4jXTpdr5FjIQUeykVakN/uzqFbUo9/C5ikBFg3a3PeM6uRxeczx1ZbXBML0/zJstEh3ygYipzR5Z7b2Pw==}
+
+ '@vue/compiler-ssr@3.5.44':
+ resolution: {integrity: sha512-xr5gb1JVHlfXJwSlRz1FeP6uxoazdzHuMTVLE7up+4Vrqxk219CvxLPxD9NXBt47yvZW7+p4DXfyp4O1fkByIA==}
+
+ '@vue/devtools-api@6.6.4':
+ resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==}
+
+ '@vue/reactivity@3.5.44':
+ resolution: {integrity: sha512-u+QJdKeBBEADkPdevsL+6E12QlYVfBD8Zcw5qjDQKtamI6l14KyqazJMobhCKelhWN5zpyKUiEDoTyHE93cqWw==}
+
+ '@vue/runtime-core@3.5.44':
+ resolution: {integrity: sha512-uEa/ndwjhrrhnOfb2p+sZy6zeoamJOISqaLSJGk/8R6nABT1ZldpzcJoPzKj+zHVomVBPcmQYyC2r4LtvDV6CQ==}
+
+ '@vue/runtime-dom@3.5.44':
+ resolution: {integrity: sha512-3fc4ARcXVhVBaJ3ujWiNZJARD6pkyRcwG+ZYhMzjKtKUp7MAY0HLwr7r3Smep3Li6ZaWT6ewdmx8XqdaD5oNZg==}
+
+ '@vue/server-renderer@3.5.44':
+ resolution: {integrity: sha512-R4S1UoH4h5Frrauv8Z5XE5TxV9oBiUSgWIC4TyVK1FK+RocRnOLwFA5Xcmo2011RlgJp+AbZCnw6afrhlgRuUQ==}
+
+ '@vue/shared@3.5.44':
+ resolution: {integrity: sha512-H82XLH0DjmSOdbEwO15x3QTo1f5PWEtv237eLpYKc0mqLu+B8hnq16lFWmuBmNurkeiG3wr+oM1FhOll/YVFRg==}
+
+ '@vue/test-utils@2.5.1':
+ resolution: {integrity: sha512-V/4a99odJ7hapr0bRt35XxljGk8hefq31gSOnlKTcEq2fUeoj2qb+FcpJYfQu4qfYhW9Ug+O2+CZ3QmZ7gXDzA==}
+ peerDependencies:
+ '@vue/compiler-dom': 3.x
+ '@vue/server-renderer': 3.x
+ vue: 3.x
+ peerDependenciesMeta:
+ '@vue/server-renderer':
+ optional: true
+
+ '@yuku-core/binding-android-arm64@0.19.0':
+ resolution: {integrity: sha512-wdL2XmTiZixAOaHk9Z0JJZ8u9Qm8d333Zjpc6gaxXFX+UR5BlsfxZ7a2+2Rm71pamppsPYGUGFq2oVLbh6DISw==}
+ cpu: [arm64]
+ os: [android]
+
+ '@yuku-core/binding-darwin-arm64@0.19.0':
+ resolution: {integrity: sha512-7sNJa6XJhyetnTy64jw3NEi4YgUcezHk1G5GH9FSvXAuC8wIlbaOwT9lgq5qo5sspjrZJQlBR1TWflP49uRpMw==}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@yuku-core/binding-darwin-x64@0.19.0':
+ resolution: {integrity: sha512-pTC7dYEc59isdyizc3nsuyFNBu2LU5wMYZ1be6UMr59PY/AJNtO1aBLWV0MgL/z7C1nv/2sX4TNjGgKLoeevJw==}
+ cpu: [x64]
+ os: [darwin]
+
+ '@yuku-core/binding-freebsd-x64@0.19.0':
+ resolution: {integrity: sha512-xrZjF6XOEwyLOiDIfrwDdRCS6ghxcJeirNC1KivQhVcUwlRonaU79S3/Uiyx3lBylPnT8qKJ3/aMT+H52nGTJQ==}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@yuku-core/binding-linux-arm-gnu@0.19.0':
+ resolution: {integrity: sha512-0OyIH53C0I1CbADHn9FSdCfX5qbpeLwJhmOVhonFJNYheybOnkSJ50qGMfTJIb8y5zrwqvLs7FVBvz6Fk8maZg==}
+ cpu: [arm]
+ os: [linux]
+ libc: [glibc]
+
+ '@yuku-core/binding-linux-arm-musl@0.19.0':
+ resolution: {integrity: sha512-z/iPfkCOCSXE34VXNt0uP1ORSW+4mEa9b5CiJcWZeqZH08g49bFU/jRM2T04f+Wpw5mJ6HIzNBiojxeAbrHjeg==}
+ cpu: [arm]
+ os: [linux]
+ libc: [musl]
+
+ '@yuku-core/binding-linux-arm64-gnu@0.19.0':
+ resolution: {integrity: sha512-jLNTi+gzaRwBJ+gwhCJ+rDb5dmx/8hEBx93UWd7hjMSqPTL1D1wvVSvXVAldV5kALvju7b0/m51EHEhs4+I1fA==}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ '@yuku-core/binding-linux-arm64-musl@0.19.0':
+ resolution: {integrity: sha512-YwyPIdW/rN2Fmv0MTFWi47FaB3F9g+2b+sJISyAw83Yd60RWH4T3Nx6XkAHHVN+uKJNBAd6So7/BVihSiFYvuQ==}
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ '@yuku-core/binding-linux-x64-gnu@0.19.0':
+ resolution: {integrity: sha512-/vskaAXVX3ESR43FiTdfiYS7z1b9uoQJwVQ/0RgUHgN2sWoAyCZs+aX4CgU7eKGIHTVfp9VFwv+c+2XchYiEtQ==}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ '@yuku-core/binding-linux-x64-musl@0.19.0':
+ resolution: {integrity: sha512-FuXL5igeSKib9Rye02TdH+D6SQezTyGxIATMu1Qsn/QywrzwpGl35OLpS2C1x5vpGLeVE2XgiLd5mVPFHmIglQ==}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ '@yuku-core/binding-win32-arm64@0.19.0':
+ resolution: {integrity: sha512-YuJAe7zEKT1Xa7LuHlhGJpPnYQeVtvo0rZvNjJRqkH0hQGOw4C8QeP30Tg5VKGzZfo2x8CjhjEhKt4TmLwfmdg==}
+ cpu: [arm64]
+ os: [win32]
+
+ '@yuku-core/binding-win32-x64@0.19.0':
+ resolution: {integrity: sha512-o8iY/mXwlRkedp0LNTr4+TEfXTPQwoNZmv6k+1WIAd1ZXEn8xJJTBCtB0osaVvdZo/x/cNmV16UrWrrGpM5Mvw==}
+ cpu: [x64]
+ os: [win32]
+
+ '@yuku-toolchain/types@0.19.0':
+ resolution: {integrity: sha512-tFkNbsP4WXX9UMUC5syJGdK9dPMLK0PPaIuXCcCYH75sZ8MrebfBZ2XvCILRTw8AgLivSSCfDa4R67iYBDa4Kg==}
+
+ abbrev@5.0.0:
+ resolution: {integrity: sha512-/XrFJgzQQQHpti1raDJC6m4ws6aNktmjBlhk8Fdlk7LwCEuDoieEJJY9OFHjfiFJFFRM2tK+Ky/IsfbbmlMu1w==}
+ engines: {node: ^22.22.2 || ^24.15.0 || >=26.0.0}
+
+ acorn@8.19.0:
+ resolution: {integrity: sha512-oJlA3XiRm7Cyk6qFD2Jn8ak9B7jSy0qy00ADO3+8dpT0LSjFihQYv4C02LFCSYJV3Q37xYwwRy5m+IpIiUzqWw==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+
+ agent-base@6.0.2:
+ resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
+ engines: {node: '>= 6.0.0'}
+
+ alpinejs@3.17.5:
+ resolution: {integrity: sha512-XewMqRC6zjy8iaUPn86dxjvooAsNai3hUtQbdn0A5H2w7Jt10xHGZ1SczN5+Dvp3UKkuSEt9moy/UaUWOwKdnQ==}
+
+ ansi-regex@5.0.1:
+ resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
+ engines: {node: '>=8'}
+
+ ansi-styles@5.2.0:
+ resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
+ engines: {node: '>=10'}
+
+ any-promise@1.3.0:
+ resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
+
+ anymatch@3.1.3:
+ resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
+ engines: {node: '>= 8'}
+
+ arg@5.0.2:
+ resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
+
+ argparse@2.0.1:
+ resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
+
+ aria-hidden@1.2.6:
+ resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==}
+ engines: {node: '>=10'}
+
+ aria-query@5.3.0:
+ resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
+
+ assertion-error@2.0.1:
+ resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
+ engines: {node: '>=12'}
+
+ asynckit@0.4.0:
+ resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
+
+ autoprefixer@10.6.1:
+ resolution: {integrity: sha512-cL1Qz6ADZhcEbny/8HPfe99J6HhNoYtpX2LFLIbhgGE7Q1hlQVkYFdetDN7Id3KiQxhDrHwzlHr/YQCnZ8+xSA==}
+ engines: {node: ^10 || ^12 || >=14}
+ hasBin: true
+ peerDependencies:
+ postcss: ^8.1.0
+
+ axios@1.20.0:
+ resolution: {integrity: sha512-r8aOh8j9cGKpgQAqpzrUHnSIc6a59Y3Xf/cv8sy1DrHCkZHzQGEuoq1tARk6qSyDdtQGSDgpb9kFlruzPvrgwg==}
+
+ balanced-match@4.0.4:
+ resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==}
+ engines: {node: 18 || 20 || >=22}
+
+ baseline-browser-mapping@2.11.30:
+ resolution: {integrity: sha512-YJs6Pz17RMNv8HoyKREtCY38E3BV1nPkWVmIb+XN1uHC1Vqt3KZCH/uJH9ZKRoiKb/icZ6tvehyee6RZNbFfRA==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+
+ bidi-js@1.1.0:
+ resolution: {integrity: sha512-fX1Onk0tdVPC7obPWB5EbJ1z7NVhLq4m2xZLq2YXBkxzMXIGRpNMU88n0EPgWseKl12J7zXs7qrDxPK4sRs2fg==}
+
+ binary-extensions@2.3.0:
+ resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
+ engines: {node: '>=8'}
+
+ bootstrap@5.3.8:
+ resolution: {integrity: sha512-HP1SZDqaLDPwsNiqRqi5NcP0SSXciX2s9E+RyqJIIqGo+vJeN5AJVM98CXmW/Wux0nQ5L7jeWUdplCEf0Ee+tg==}
+ peerDependencies:
+ '@popperjs/core': ^2.11.8
+
+ brace-expansion@5.0.12:
+ resolution: {integrity: sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==}
+ engines: {node: 20 || >=22}
+
+ braces@3.0.3:
+ resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
+ engines: {node: '>=8'}
+
+ browserslist@4.29.4:
+ resolution: {integrity: sha512-2TcbbiwXEq+N0kD36tykpCfyyQigUXmuwNQbnPp4Xk4PX9JOqVIKjJlIDjpH7uY6tmRGoAd+apeT1p60T8wsdA==}
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+ hasBin: true
+
+ buffer-from@1.1.2:
+ resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
+
+ buffer-image-size@0.6.4:
+ resolution: {integrity: sha512-nEh+kZOPY1w+gcCMobZ6ETUp9WfibndnosbpwB1iJk/8Gt5ZF2bhS6+B6bPYz424KtwsR6Rflc3tCz1/ghX2dQ==}
+ engines: {node: '>=4.0'}
+
+ call-bind-apply-helpers@1.0.2:
+ resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
+ engines: {node: '>= 0.4'}
+
+ camelcase-css@2.0.1:
+ resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
+ engines: {node: '>= 6'}
+
+ caniuse-lite@1.0.30001818:
+ resolution: {integrity: sha512-XJbgo4adscw7R4MZU4/qVFkoMyPaNUAWmdNY4o/k9x7fFwmv4frIlndI9lWuaxviW9ObiZel9LuncnQPn6hQ5A==}
+
+ ccount@2.0.1:
+ resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
+
+ chai@6.3.0:
+ resolution: {integrity: sha512-XWAtwJ6OHO+tj0EKCs0Y2UamnyOxseZWltU4x2U2wh8g4AigdjwvtUjvLP2tqkA/avxHEtzxNaqGq/YGNwckKg==}
+ engines: {node: '>=18'}
+
+ character-entities-html4@2.1.0:
+ resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==}
+
+ character-entities-legacy@3.0.0:
+ resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==}
+
+ chart.js@2.9.4:
+ resolution: {integrity: sha512-B07aAzxcrikjAPyV+01j7BmOpxtQETxTSlQ26BEYJ+3iUkbNKaOJ/nDbT6JjyqYxseM0ON12COHYdU2cTIjC7A==}
+
+ chartjs-color-string@0.6.0:
+ resolution: {integrity: sha512-TIB5OKn1hPJvO7JcteW4WY/63v6KwEdt6udfnDE9iCAZgy+V4SrbSxoIbTw/xkUIapjEI4ExGtD0+6D3KyFd7A==}
+
+ chartjs-color@2.4.1:
+ resolution: {integrity: sha512-haqOg1+Yebys/Ts/9bLo/BqUcONQOdr/hoEr2LLTRl6C5LXctUdHxsCYfvQVg5JIxITrfCNUDr4ntqmQk9+/0w==}
+
+ chokidar@3.6.0:
+ resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
+ engines: {node: '>= 8.10.0'}
+
+ chokidar@5.0.0:
+ resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==}
+ engines: {node: '>= 20.19.0'}
+
+ class-variance-authority@0.7.1:
+ resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==}
+
+ clsx@2.1.1:
+ resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
+ engines: {node: '>=6'}
+
+ color-convert@1.9.3:
+ resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
+
+ color-name@1.1.3:
+ resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
+
+ color-name@1.1.4:
+ resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+
+ combined-stream@1.0.8:
+ resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
+ engines: {node: '>= 0.8'}
+
+ comma-separated-tokens@2.0.3:
+ resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
+
+ commander@14.0.3:
+ resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==}
+ engines: {node: '>=20'}
+
+ commander@2.20.3:
+ resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
+
+ commander@4.1.1:
+ resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
+ engines: {node: '>= 6'}
+
+ config-chain@1.1.13:
+ resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==}
+
+ convert-source-map@2.0.0:
+ resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
+
+ copy-to-clipboard@3.3.3:
+ resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==}
+
+ css-tree@3.2.1:
+ resolution: {integrity: sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==}
+ engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
+
+ cssesc@3.0.0:
+ resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
+ engines: {node: '>=4'}
+ hasBin: true
+
+ csstype@3.2.3:
+ resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==}
+
+ data-urls@8.0.0:
+ resolution: {integrity: sha512-JQUCCK+/CAGbGGx618PlFZMXH81Jtj7t73CHv9dd/zVWvxgGT2zLFRjnKb+Ng46GIwcy+f7f88qd4duqllK+WQ==}
+ engines: {node: ^22.14.0 || >=24.0.0}
+
+ debug@4.4.3:
+ resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
+ decimal.js@10.6.0:
+ resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==}
+
+ delayed-stream@1.0.0:
+ resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
+ engines: {node: '>=0.4.0'}
+
+ dequal@2.0.3:
+ resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
+ engines: {node: '>=6'}
+
+ detect-libc@2.1.2:
+ resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==}
+ engines: {node: '>=8'}
+
+ detect-node-es@1.1.0:
+ resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==}
+
+ devlop@1.1.0:
+ resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
+
+ didyoumean@1.2.2:
+ resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
+
+ discontinuous-range@1.0.0:
+ resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==}
+
+ dlv@1.1.3:
+ resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
+
+ dom-accessibility-api@0.5.16:
+ resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==}
+
+ dunder-proto@1.0.1:
+ resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
+ engines: {node: '>= 0.4'}
+
+ editorconfig@3.0.2:
+ resolution: {integrity: sha512-T0ix8GhtxyKVfUFEcvdNDt3YGqlwkFHbD4/5bgFUDgFmxhI/cSRAeJ87/Sz//Cq8Eam6JX/e23RkoFO71P7aAA==}
+ engines: {node: '>=20'}
+ hasBin: true
+
+ electron-to-chromium@1.5.463:
+ resolution: {integrity: sha512-nVWNU6ltFjopvOdD44J4zoBkgO0M+WZiFKKFV7EjebOH9z0KNphk6bCEjplXtJofL21ARIuuwWOCsFkBVklm6w==}
+
+ enhanced-resolve@5.26.0:
+ resolution: {integrity: sha512-9vhedylFonb2YGogzUKX6+Ja72gOJbN1QHAqdrvqLwhdl/QWbKopzoUC9EbQNVsAns/bx/4uyqalrQAoy1IByw==}
+ engines: {node: '>=10.13.0'}
+
+ entities@7.0.1:
+ resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==}
+ engines: {node: '>=0.12'}
+
+ entities@8.1.0:
+ resolution: {integrity: sha512-kxL7msIffSuh9aaFAMD7rxAIuTRMAHMeBtgHW2yUdWw732ZNh4MehkF2gdjvtdmikkaIP9bFDDJOPlsvm7avrA==}
+ engines: {node: '>=20.19.0'}
+
+ es-define-property@1.0.1:
+ resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==}
+ engines: {node: '>= 0.4'}
+
+ es-errors@1.3.0:
+ resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
+ engines: {node: '>= 0.4'}
+
+ es-module-lexer@2.3.2:
+ resolution: {integrity: sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==}
+
+ es-object-atoms@1.1.2:
+ resolution: {integrity: sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==}
+ engines: {node: '>= 0.4'}
+
+ es-set-tostringtag@2.1.0:
+ resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==}
+ engines: {node: '>= 0.4'}
+
+ escalade@3.2.0:
+ resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
+ engines: {node: '>=6'}
+
+ estree-walker@2.0.2:
+ resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
+
+ estree-walker@3.0.3:
+ resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
+
+ expect-type@1.4.0:
+ resolution: {integrity: sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==}
+ engines: {node: '>=12.0.0'}
+
+ fast-glob@3.3.3:
+ resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==}
+ engines: {node: '>=8.6.0'}
+
+ fastq@1.20.3:
+ resolution: {integrity: sha512-XKv5nnLs6nLF71NgiKJLIZFLkPyIEuOselLG7ujZnGrRfQK8HpvY+WqKhAJUAdLomwVHErVS4LfxFlPq0/FTAw==}
+
+ fdir@6.5.0:
+ resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
+ engines: {node: '>=12.0.0'}
+ peerDependencies:
+ picomatch: ^3 || ^4
+ peerDependenciesMeta:
+ picomatch:
+ optional: true
+
+ fflate@0.8.3:
+ resolution: {integrity: sha512-tbZNuJrLwGUp3zshBtdy4W+ORxZuIh8a5ilyIEQDC5rY1f3U20JMry0Ll3WBzU58EZKsEuJFXhb5gwv8CsPvgA==}
+
+ fill-range@7.1.1:
+ resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
+ engines: {node: '>=8'}
+
+ flatted@3.4.4:
+ resolution: {integrity: sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==}
+
+ follow-redirects@1.16.1:
+ resolution: {integrity: sha512-FNvFGzoMLWmE6Yj9spb/zjd7yiNCHiAW9/Tg9CXrQ8wuu32HtlJOwWO11OJafl5FfY3DxTdQ0vj42zU1kvv5jg==}
+ engines: {node: '>=4.0'}
+ peerDependencies:
+ debug: '*'
+ peerDependenciesMeta:
+ debug:
+ optional: true
+
+ form-data@4.0.6:
+ resolution: {integrity: sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==}
+ engines: {node: '>= 6'}
+
+ fraction.js@5.3.4:
+ resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==}
+
+ fsevents@2.3.3:
+ resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+
+ function-bind@1.1.2:
+ resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
+
+ get-intrinsic@1.3.0:
+ resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==}
+ engines: {node: '>= 0.4'}
+
+ get-nonce@1.0.1:
+ resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==}
+ engines: {node: '>=6'}
+
+ get-proto@1.0.1:
+ resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
+ engines: {node: '>= 0.4'}
+
+ glob-parent@5.1.2:
+ resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
+ engines: {node: '>= 6'}
+
+ glob-parent@6.0.2:
+ resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
+ engines: {node: '>=10.13.0'}
+
+ glob@13.0.6:
+ resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==}
+ engines: {node: 18 || 20 || >=22}
+
+ gopd@1.2.0:
+ resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
+ engines: {node: '>= 0.4'}
+
+ graceful-fs@4.2.11:
+ resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
+
+ happy-dom@21.0.4:
+ resolution: {integrity: sha512-tFm+GaLBgo6o0awHnvHaNoraVo27qJ+2tZEtZ+cIa08hXbeitrxAJajLI05hsUy/2/YTKcUjQYzHe5mCcraLBw==}
+ engines: {node: '>=20.0.0'}
+
+ has-symbols@1.1.0:
+ resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==}
+ engines: {node: '>= 0.4'}
+
+ has-tostringtag@1.0.2:
+ resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
+ engines: {node: '>= 0.4'}
+
+ hasown@2.0.4:
+ resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==}
+ engines: {node: '>= 0.4'}
+
+ hast-util-to-html@9.0.5:
+ resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==}
+
+ hast-util-whitespace@3.0.0:
+ resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==}
+
+ highlight.js@11.12.0:
+ resolution: {integrity: sha512-nbfWpyRMcMrPMmDwJB+dhX/eiaPKtc2RB+0QZskqJ3WjRA/FDS0e9hZrx8EC/lbEv8gXy98FcDbNa/dspAaJMg==}
+ engines: {node: '>=12.0.0'}
+
+ html-encoding-sniffer@7.0.0:
+ resolution: {integrity: sha512-UikN5yr7xsCDAq87Or5or0PAlD3HJJOKVzM05az588WnpDJ4Ux7a2A53Qi6gofGg2/EtvF/H4hCi/TXfCW4Y6w==}
+ engines: {node: ^22.13.0 || >=24.0.0}
+
+ html-void-elements@3.0.0:
+ resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
+
+ https-proxy-agent@5.0.1:
+ resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
+ engines: {node: '>= 6'}
+
+ immutable@5.1.9:
+ resolution: {integrity: sha512-m8nVez3rwrgmWxtLMt1ZYXB2Lv7OKYn/disyxAlSDYAlKSlFoPPfIAmAM/M5xqL4m4C/wAPw7S2/CNaUii1Hxg==}
+
+ ini@1.3.8:
+ resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
+
+ is-binary-path@2.1.0:
+ resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
+ engines: {node: '>=8'}
+
+ is-core-module@2.17.0:
+ resolution: {integrity: sha512-J/vG0zBCbIKOQFfufSwyXdMrsohyJIUNkrnmo6WZGzoM7tr/lsbfW5b2BvisL6zsyMzK9UxV9L6c7AoFbyXHOA==}
+ engines: {node: '>= 0.4'}
+
+ is-extglob@2.1.1:
+ resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
+ engines: {node: '>=0.10.0'}
+
+ is-glob@4.0.3:
+ resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
+ engines: {node: '>=0.10.0'}
+
+ is-number@7.0.0:
+ resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
+ engines: {node: '>=0.12.0'}
+
+ is-potential-custom-element-name@1.0.1:
+ resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==}
+
+ jiti@1.21.7:
+ resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==}
+ hasBin: true
+
+ jiti@2.7.0:
+ resolution: {integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==}
+ hasBin: true
+
+ js-beautify@2.0.3:
+ resolution: {integrity: sha512-cyFbh3tkPhknnTD/0bLf0T0yy2ZIbqL05mttzbt4y1Zfr7NxqXQZ62dkBLKs3oHH/lpjmDRAnciJiSUyOy8XwQ==}
+ engines: {node: '>=14'}
+ hasBin: true
+
+ js-cookie@3.0.8:
+ resolution: {integrity: sha512-yeJd4aNAdYZQjaon2bpD/Gb0B/omw7HQOsynXXcOiWVCacbBcPlgn8S/d1X6blFSaHao7ozqtW7NZW19xpCtIw==}
+
+ js-tokens@4.0.0:
+ resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
+
+ jsdom@30.1.3:
+ resolution: {integrity: sha512-hQMUPvRgN7KxsfIytDQji7bimuJeRQa6Qo5+iuiZQk5CafeRxLIA10/cG5YCBFNpD9RO3oqIiN4CO1Y44kxqXg==}
+ engines: {node: ^22.22.2 || ^24.15.0 || >=26.0.0}
+ peerDependencies:
+ canvas: ^3.2.3
+ peerDependenciesMeta:
+ canvas:
+ optional: true
+
+ laravel-vite-plugin@3.2.0:
+ resolution: {integrity: sha512-xSxY9Gzeb/eancd8WeK09piAFP+a6i5QIBqNCKNv9L0Eq6wziwzSem7F1GvMSrtjMh5F/QVKFxn8t9naGOA66A==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ hasBin: true
+ peerDependencies:
+ fontaine: ^0.8.0
+ vite: ^8.0.0
+ peerDependenciesMeta:
+ fontaine:
+ optional: true
+
+ lightningcss-android-arm64@1.32.0:
+ resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [android]
+
+ lightningcss-android-arm64@1.33.0:
+ resolution: {integrity: sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [android]
+
+ lightningcss-darwin-arm64@1.32.0:
+ resolution: {integrity: sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [darwin]
+
+ lightningcss-darwin-arm64@1.33.0:
+ resolution: {integrity: sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [darwin]
+
+ lightningcss-darwin-x64@1.32.0:
+ resolution: {integrity: sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [darwin]
+
+ lightningcss-darwin-x64@1.33.0:
+ resolution: {integrity: sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [darwin]
+
+ lightningcss-freebsd-x64@1.32.0:
+ resolution: {integrity: sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [freebsd]
+
+ lightningcss-freebsd-x64@1.33.0:
+ resolution: {integrity: sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [freebsd]
+
+ lightningcss-linux-arm-gnueabihf@1.32.0:
+ resolution: {integrity: sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm]
+ os: [linux]
+
+ lightningcss-linux-arm-gnueabihf@1.33.0:
+ resolution: {integrity: sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm]
+ os: [linux]
+
+ lightningcss-linux-arm64-gnu@1.32.0:
+ resolution: {integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ lightningcss-linux-arm64-gnu@1.33.0:
+ resolution: {integrity: sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ lightningcss-linux-arm64-musl@1.32.0:
+ resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ lightningcss-linux-arm64-musl@1.33.0:
+ resolution: {integrity: sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ lightningcss-linux-x64-gnu@1.32.0:
+ resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ lightningcss-linux-x64-gnu@1.33.0:
+ resolution: {integrity: sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ lightningcss-linux-x64-musl@1.32.0:
+ resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ lightningcss-linux-x64-musl@1.33.0:
+ resolution: {integrity: sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ lightningcss-win32-arm64-msvc@1.32.0:
+ resolution: {integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [win32]
+
+ lightningcss-win32-arm64-msvc@1.33.0:
+ resolution: {integrity: sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [win32]
+
+ lightningcss-win32-x64-msvc@1.32.0:
+ resolution: {integrity: sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [win32]
+
+ lightningcss-win32-x64-msvc@1.33.0:
+ resolution: {integrity: sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [win32]
+
+ lightningcss@1.32.0:
+ resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==}
+ engines: {node: '>= 12.0.0'}
+
+ lightningcss@1.33.0:
+ resolution: {integrity: sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==}
+ engines: {node: '>= 12.0.0'}
+
+ lilconfig@3.1.4:
+ resolution: {integrity: sha512-zJZyBmQhArDRefuWTypZxwDpFDIYmrj8ypSBvwGD5P13Y95s6DjzKgu4DVdGbeQa5PDEsAOCAPNk4X+QOR006w==}
+ engines: {node: '>=14'}
+
+ lines-and-columns@1.2.4:
+ resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
+
+ lodash@4.18.1:
+ resolution: {integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==}
+
+ lru-cache@11.5.3:
+ resolution: {integrity: sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==}
+ engines: {node: 20 || >=22}
+
+ lucide-react@1.61.0:
+ resolution: {integrity: sha512-v2SQPPPNjnr+BlhL9Spuzmo5yR+hLkftfuE4E3jaxdNPgSH0hJKPcLJBP7yAta87jQNPsSERS59PJjCJ/CorBA==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ lz-string@1.5.0:
+ resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==}
+ hasBin: true
+
+ magic-string@0.30.21:
+ resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
+
+ magic-string@1.4.3:
+ resolution: {integrity: sha512-z12OxmaPGE0F4xlpGdjuAUckipLpQlTAuAmyGhNoD7ODpYUzvDfvtxUbjM/jwznyP178oju/KDdyi220wNJ0RQ==}
+
+ math-intrinsics@1.1.0:
+ resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
+ engines: {node: '>= 0.4'}
+
+ mdast-util-to-hast@13.2.1:
+ resolution: {integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==}
+
+ mdn-data@2.27.1:
+ resolution: {integrity: sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==}
+
+ merge2@1.4.1:
+ resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
+ engines: {node: '>= 8'}
+
+ micromark-util-character@2.1.1:
+ resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==}
+
+ micromark-util-encode@2.0.1:
+ resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==}
+
+ micromark-util-sanitize-uri@2.0.1:
+ resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==}
+
+ micromark-util-symbol@2.0.1:
+ resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==}
+
+ micromark-util-types@2.0.3:
+ resolution: {integrity: sha512-oxB2Ik03hI0gv+VNn9tnh1t1YEe9MDPptViAEgfdf3YQHsn0pzGTgCdlSCJXcwhqm8phaEuM7zeEu3QQzVBrPg==}
+
+ micromatch@4.0.8:
+ resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
+ engines: {node: '>=8.6'}
+
+ mime-db@1.52.0:
+ resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
+ engines: {node: '>= 0.6'}
+
+ mime-types@2.1.35:
+ resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
+ engines: {node: '>= 0.6'}
+
+ mini-svg-data-uri@1.4.4:
+ resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==}
+ hasBin: true
+
+ minimatch@10.2.6:
+ resolution: {integrity: sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==}
+ engines: {node: 18 || 20 || >=22}
+
+ minipass@7.1.3:
+ resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==}
+ engines: {node: '>=16 || 14 >=14.17'}
+
+ moment-timezone@0.5.48:
+ resolution: {integrity: sha512-f22b8LV1gbTO2ms2j2z13MuPogNoh5UzxL3nzNAYKGraILnbGc9NEE6dyiiiLv46DGRb8A4kg8UKWLjPthxBHw==}
+
+ moment@2.31.0:
+ resolution: {integrity: sha512-0acOTfMiWOheYS4eoWb80yYMb/JLvVv9SHbs2PehaDzfUG0Bw855SKyk0IKTnPGa5+U2bmi3W68l1+sGLX/pvw==}
+
+ moo@0.5.3:
+ resolution: {integrity: sha512-m2fmM2dDm7GZQsY7KK2cme8agi+AAljILjQnof7p1ZMDe6dQ4bdnSMx0cPppudoeNv5hEFQirN6u+O4fDE0IWA==}
+
+ mrmime@2.0.1:
+ resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==}
+ engines: {node: '>=10'}
+
+ ms@2.1.3:
+ resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+
+ mz@2.7.0:
+ resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
+
+ nanoid@3.3.20:
+ resolution: {integrity: sha512-uKdg2G3GNCKQn9byYOpxbGqrT2fGO5KRt5J/8b3pok8rT6qxGWF6hxMyJiEYtAf+FVyYuD9hRaDqX5uPFYJ4ZQ==}
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+ hasBin: true
+
+ nearley@2.20.1:
+ resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==}
+ hasBin: true
+
+ node-addon-api@7.1.1:
+ resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==}
+
+ node-releases@2.0.59:
+ resolution: {integrity: sha512-5qr2okC4ItAI0hG5SaV0HoYMpnM/Y6+Oqr7AmPYy/2uEoGvS+GbSKLeRxSS1uAdu59yz0ouzcuXievSgg///WA==}
+ engines: {node: '>=18'}
+
+ nopt@10.0.1:
+ resolution: {integrity: sha512-df3sBr/6ax9hSGuC3CspvLlbnX8cP5L5nZwXF8cGN8l0zSWR6BvzmQ6jPUKjvo6+/xdpkNvEcucBNUdBeeV13g==}
+ engines: {node: ^22.22.2 || ^24.15.0 || >=26.0.0}
+ hasBin: true
+
+ normalize-path@3.0.0:
+ resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
+ engines: {node: '>=0.10.0'}
+
+ object-assign@4.1.1:
+ resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
+ engines: {node: '>=0.10.0'}
+
+ object-hash@3.0.0:
+ resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
+ engines: {node: '>= 6'}
+
+ obug@3.0.0:
+ resolution: {integrity: sha512-5vvB5+W7ePv+p3uqxi+RcW1XAzLW0/hxt3/4X4Lc4qHudzOhmBiBwOY6DRob4WnanAEGvNcLjF+KNOufrUoEQw==}
+ engines: {node: '>=12.20.0'}
+
+ oniguruma-parser@0.12.2:
+ resolution: {integrity: sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw==}
+
+ oniguruma-to-es@4.3.6:
+ resolution: {integrity: sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA==}
+
+ oxfmt@0.73.0:
+ resolution: {integrity: sha512-Ke4xbpuzqIBP4bkd48q815RhqWNJqOBzxVA9199M4qcF0y0LtpUv7UTg1dJ5ea6jw0RBUDZvX3qOUMNmmxfxbw==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ hasBin: true
+ peerDependencies:
+ '@astrojs/compiler-rs': ^0.4.0 || ^0.5.0
+ svelte: ^5.0.0
+ vite-plus: '*'
+ peerDependenciesMeta:
+ '@astrojs/compiler-rs':
+ optional: true
+ svelte:
+ optional: true
+ vite-plus:
+ optional: true
+
+ oxlint-tsgolint@7.0.2004:
+ resolution: {integrity: sha512-vQ9WDF3fiZJvRdSDosNOflerOCOpwol6vWzVDxW76RcU19cjTh7engvkHLvmv+tzedR8fAiJUVUGr6IVZdkzXQ==}
+ hasBin: true
+
+ oxlint@1.88.0:
+ resolution: {integrity: sha512-uIcFgw8BmqvFRGzH5+r7d2zJMEexwNSrEmM6WQNnGh3VkO0XYTEFoyxyNE6tjKMUib9Cue4XJA2DoWruO5D6aw==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ hasBin: true
+ peerDependencies:
+ oxlint-tsgolint: '>=7.0.2003'
+ vite-plus: '*'
+ peerDependenciesMeta:
+ oxlint-tsgolint:
+ optional: true
+ vite-plus:
+ optional: true
+
+ parse5@8.0.1:
+ resolution: {integrity: sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==}
+
+ path-parse@1.0.7:
+ resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
+
+ path-scurry@2.0.2:
+ resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==}
+ engines: {node: 18 || 20 || >=22}
+
+ pathe@2.0.3:
+ resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
+
+ phpunserialize@1.3.0:
+ resolution: {integrity: sha512-i+zbz8OdXq09m2d5EOLMz8tZdfeDRJE29CQUxnsz5o/hT9ZGs7ZKt7dc7Txg+OhY15QImfPZ8dvqXwD4m78dhA==}
+
+ picocolors@1.1.1:
+ resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
+
+ picomatch@2.3.2:
+ resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==}
+ engines: {node: '>=8.6'}
+
+ picomatch@4.0.7:
+ resolution: {integrity: sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==}
+ engines: {node: '>=12'}
+
+ pirates@4.0.7:
+ resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==}
+ engines: {node: '>= 6'}
+
+ pngjs@7.0.0:
+ resolution: {integrity: sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==}
+ engines: {node: '>=14.19.0'}
+
+ postcss-import@15.1.0:
+ resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ postcss: ^8.0.0
+
+ postcss-js@4.1.0:
+ resolution: {integrity: sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==}
+ engines: {node: ^12 || ^14 || >= 16}
+ peerDependencies:
+ postcss: ^8.4.21
+
+ postcss-load-config@6.0.1:
+ resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==}
+ engines: {node: '>= 18'}
+ peerDependencies:
+ jiti: '>=1.21.0'
+ postcss: '>=8.0.9'
+ tsx: ^4.8.1
+ yaml: ^2.4.2
+ peerDependenciesMeta:
+ jiti:
+ optional: true
+ postcss:
+ optional: true
+ tsx:
+ optional: true
+ yaml:
+ optional: true
+
+ postcss-nested@6.2.0:
+ resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==}
+ engines: {node: '>=12.0'}
+ peerDependencies:
+ postcss: ^8.2.14
+
+ postcss-selector-parser@6.1.5:
+ resolution: {integrity: sha512-TEHFzb5KRDKaOgJ4TYE+0jyJtFbjLvkdVOu0fZ2b6MTWzoqZd4Le+61aEppWkvTlYePgOX4ATL1wsAIPMLTw6Q==}
+ engines: {node: '>=4'}
+
+ postcss-value-parser@4.2.0:
+ resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
+
+ postcss@8.5.31:
+ resolution: {integrity: sha512-YUbWYCgErwnMAVkjUnYa+KlMBzGpHwiIt/DE7f0G33AuX2LH9UcTk6KgWxd3zRU+pN3u/C+Xl3EnMLM4Hea7Sg==}
+ engines: {node: ^10 || ^12 || >=14}
+
+ pretty-format@27.5.1:
+ resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+
+ property-information@7.2.0:
+ resolution: {integrity: sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg==}
+
+ proto-list@1.2.4:
+ resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==}
+
+ proxy-from-env@2.1.0:
+ resolution: {integrity: sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==}
+ engines: {node: '>=10'}
+
+ punycode@2.3.1:
+ resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
+ engines: {node: '>=6'}
+
+ queue-microtask@1.2.3:
+ resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
+
+ radix-ui@1.8.1:
+ resolution: {integrity: sha512-HPfpVGizO9xANlsFSauruLhRe/3+iOt3vPX0MXYle/UQi3gorQrSYtBcdiv0BZYewcl2rvL59qrIuLFMGAmUrw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ railroad-diagrams@1.0.0:
+ resolution: {integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==}
+
+ randexp@0.4.6:
+ resolution: {integrity: sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==}
+ engines: {node: '>=0.12'}
+
+ react-dom@19.3.1:
+ resolution: {integrity: sha512-Y0bARz53lhEC1NMCASs0/j+faB/zqt3R8hpvg1e8+61ZVJ4UL0UdC4cBbXfZMcIuhrfgeILTLe+ZeBCavQPtKQ==}
+ peerDependencies:
+ react: ^19.3.1
+
+ react-is@17.0.2:
+ resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==}
+
+ react-remove-scroll-bar@2.3.8:
+ resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ react-remove-scroll@2.7.2:
+ resolution: {integrity: sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ react-style-singleton@2.2.3:
+ resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ react@19.3.1:
+ resolution: {integrity: sha512-QNhWdt7nrgVWWQG58QuGsAR3jv3Hbe4mb4vz7w2csnHavciZJgda1CPNaldF6eVxv90ud3jUXpKlHL69gO38yw==}
+ engines: {node: '>=0.10.0'}
+
+ read-cache@1.0.2:
+ resolution: {integrity: sha512-/peqiBB/n07gQGLsWaHho3WfvUyRscw0gYTsEFMhrIe/nWLkYaf5SbKYjGYqtRV3aPwykJgF2VEMo1ac4bnsGA==}
+
+ readdirp@3.6.0:
+ resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
+ engines: {node: '>=8.10.0'}
+
+ readdirp@5.1.1:
+ resolution: {integrity: sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA==}
+ engines: {node: '>= 20.19.0'}
+
+ regex-recursion@6.0.2:
+ resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==}
+
+ regex-utilities@2.3.0:
+ resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==}
+
+ regex@6.1.0:
+ resolution: {integrity: sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==}
+
+ require-from-string@2.0.2:
+ resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
+ engines: {node: '>=0.10.0'}
+
+ resolve@1.22.13:
+ resolution: {integrity: sha512-Dj/cW9zBV2aRj6XzCxuGIs3ESZKv02jixne3q6jFZYZ3/Tg09gHHviSMDL4kObh9pqSahdRHEnDoaP2gn8YLhA==}
+ engines: {node: '>= 0.4'}
+ hasBin: true
+
+ ret@0.1.15:
+ resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==}
+ engines: {node: '>=0.12'}
+
+ reusify@1.1.0:
+ resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==}
+ engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
+
+ run-parallel@1.2.0:
+ resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
+
+ sass@1.106.0:
+ resolution: {integrity: sha512-JHAqUksyijU5tsmDLCDq8/IX3Mq8mVkOtxvcXnUdwy8vsX5MVnvQauMomauxyuEux8uBJdT/OuBwWBYavoWUqQ==}
+ engines: {node: '>=20.19.0'}
+ hasBin: true
+
+ saxes@6.0.0:
+ resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
+ engines: {node: '>=v12.22.7'}
+
+ scheduler@0.28.0:
+ resolution: {integrity: sha512-juorfCmIkIw8tT+p5BXSm6PJjQF/ycEYmKyzURCIt/RaZIhL+PulbQ9Yu2z1HdOJDdqDTlxA1+xKBmHXJsczAw==}
+
+ semver@7.8.5:
+ resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==}
+ engines: {node: '>=10'}
+ hasBin: true
+
+ shiki@3.23.0:
+ resolution: {integrity: sha512-55Dj73uq9ZXL5zyeRPzHQsK7Nbyt6Y10k5s7OjuFZGMhpp4r/rsLBH0o/0fstIzX1Lep9VxefWljK/SKCzygIA==}
+
+ sirv@3.0.2:
+ resolution: {integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==}
+ engines: {node: '>=18'}
+
+ source-map-js@1.2.2:
+ resolution: {integrity: sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw==}
+ engines: {node: '>=0.10.0'}
+
+ source-map-support@0.5.21:
+ resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
+
+ source-map@0.6.1:
+ resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
+ engines: {node: '>=0.10.0'}
+
+ space-separated-tokens@2.0.2:
+ resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
+
+ sql-formatter@15.9.0:
+ resolution: {integrity: sha512-3A/N+v+mA5/PDU+FlO4uTFE0L/Mmg63c/Ny161Qv2b1Mxp9IX8War+LLmq17LA/Kgu4KXAR7iutK2JaHWJMMtw==}
+ hasBin: true
+
+ std-env@4.3.0:
+ resolution: {integrity: sha512-OtU/EgQ1kIm5KwqQpBC6ZEMXrZRui11w8zgfTWp8cdO9B8OaPsbA8bTHO2P+HNo1VlUTGMVBwPhydu6poeXiag==}
+
+ stringify-entities@4.0.4:
+ resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==}
+
+ sucrase@3.35.1:
+ resolution: {integrity: sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==}
+ engines: {node: '>=16 || 14 >=14.17'}
+ hasBin: true
+
+ supports-preserve-symlinks-flag@1.0.0:
+ resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
+ engines: {node: '>= 0.4'}
+
+ tailwind-merge@3.7.0:
+ resolution: {integrity: sha512-XPPUyAc+cvspz3lHTcR/QgPfW2A0lv/xQNIjX3HGhLR+Nq2lHaLq5MtTesHn8GUr3W3DguT2KT5x3NVgRtYwmA==}
+
+ tailwindcss@3.4.19:
+ resolution: {integrity: sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==}
+ engines: {node: '>=14.0.0'}
+ hasBin: true
+
+ tailwindcss@4.3.3:
+ resolution: {integrity: sha512-gOhV3P7ufE62QDGg1zVaTgCR+EtPv92k2nIhVcVKcLmxT1sUBsQGhnZj175j+MqRt4zLF7ic+sCYjfhxMxj7YQ==}
+
+ tapable@2.3.3:
+ resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==}
+ engines: {node: '>=6'}
+
+ terser@5.51.2:
+ resolution: {integrity: sha512-bWnjSNscmuI+GJze6ZupnHP8G/cTcsJF+bXCeQknk2SHQsgbNJnLrqiH9jZ2W4STPVXH2mDKKRX3iwPhc9Cn/Q==}
+ engines: {node: '>=10'}
+ hasBin: true
+
+ thenify-all@1.6.0:
+ resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
+ engines: {node: '>=0.8'}
+
+ thenify@3.3.1:
+ resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
+
+ tinybench@6.2.2:
+ resolution: {integrity: sha512-nIZ2N2dFpjBsg2hgitKu7mA+FvsIJuGJOwysRngmVRRmWgR/UyPjwJj8c/fT/dhm8EkHnF5EOogRf+0Z2qrimA==}
+ engines: {node: '>=20.0.0'}
+
+ tinyexec@1.3.1:
+ resolution: {integrity: sha512-GCvB3aoys96IuDFBMcTB46JOR6mdMtAToqwiW8JlWhsoh1mhHi/xn9ss/Dg7N555GiJyEt2qzoG/NHCwM6h1EA==}
+ engines: {node: '>=18'}
+
+ tinyglobby@0.2.17:
+ resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==}
+ engines: {node: '>=12.0.0'}
+
+ tinypool@2.2.0:
+ resolution: {integrity: sha512-jBrmx4lYmaC9k/mgPbylxs7kBUxHtD8256up+HjLaDFfXScKJQyil+SWXSvhAtT7XHo+yTVlpB81PGmHP8oLSQ==}
+ engines: {node: ^20.0.0 || >=22.0.0}
+
+ tinyrainbow@3.2.0:
+ resolution: {integrity: sha512-LgO3D9yZJjApUiuUfl9iFAwrtaX4+lok3wJIqttGoKCHlWUqHqbQpnxCf82L8FjgKsh4iGo78hqJwgL8F6To2A==}
+ engines: {node: '>=14.0.0'}
+
+ tippy.js@6.3.7:
+ resolution: {integrity: sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==}
+
+ tldts-core@7.4.19:
+ resolution: {integrity: sha512-goNXV6Ho9TIOfpJZanTd6CKG5DyYgYAL+k+22T0SLh8l6+KHIfBUPFuePuSZv05UttIaaLmI9tb7TmGIdK5AkQ==}
+
+ tldts@7.4.19:
+ resolution: {integrity: sha512-48dH6aSpQnpbzDUc4vIQZ1VjB8tkK+e8c1yx05/SZK+rkssgjEOlxDd/yU8/a4vGYQ9vRgJr9dwMq9TJ0b3X2Q==}
+ hasBin: true
+
+ to-regex-range@5.0.1:
+ resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
+ engines: {node: '>=8.0'}
+
+ toggle-selection@1.0.6:
+ resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==}
+
+ totalist@3.0.1:
+ resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
+ engines: {node: '>=6'}
+
+ tough-cookie@6.0.2:
+ resolution: {integrity: sha512-exgYmnmL/sJpR3upZfXG5PoatXQii55xAiXGXzY+sROLZ/Y+SLcp9PgJNI9Vz37HpQ74WvDcLT8eqm+kV3FzrA==}
+ engines: {node: '>=16'}
+
+ tr46@7.0.0:
+ resolution: {integrity: sha512-BcDSDW+SIGWVOns1Zm6Yg91q9AEj7eaID0QDY9oIqJD1A8dscNwMcl9Sms2DeuWCNov1X0/oXanHGYQBSLwZsg==}
+ engines: {node: ^22.14.0 || >=24.0.0}
+
+ trim-lines@3.0.1:
+ resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
+
+ ts-interface-checker@0.1.13:
+ resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
+
+ tslib@2.8.1:
+ resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
+
+ tw-animate-css@1.4.0:
+ resolution: {integrity: sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ==}
+
+ typescript@7.0.2:
+ resolution: {integrity: sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==}
+ engines: {node: '>=16.20.0'}
+ hasBin: true
+
+ undici-types@6.21.0:
+ resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
+
+ undici@8.12.3:
+ resolution: {integrity: sha512-+fdndUTwBP86cVjihTp21hZHo7d6oj1c/47XPA3lL8mM0XHs+C4EkcjmgRsFnFk2f/UONGDy9ItBItmXsLOQHw==}
+ engines: {node: '>=22.19.0'}
+
+ unist-util-is@6.0.1:
+ resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==}
+
+ unist-util-position@5.0.0:
+ resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==}
+
+ unist-util-stringify-position@4.0.0:
+ resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
+
+ unist-util-visit-parents@6.0.2:
+ resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==}
+
+ unist-util-visit@5.1.0:
+ resolution: {integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==}
+
+ update-browserslist-db@1.3.4:
+ resolution: {integrity: sha512-t8wonIOdQyOjtPd2VktlBu6QjTVTks6v8bSi7kd0r2Vll8TK1JYDZtRRdbmCHOAMphkZgrzK+L+vXK4pyZ8t4A==}
+ hasBin: true
+ peerDependencies:
+ browserslist: '>= 4.21.0'
+
+ use-callback-ref@1.3.3:
+ resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ use-sidecar@1.1.3:
+ resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ util-deprecate@1.0.2:
+ resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
+
+ vfile-message@4.0.3:
+ resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==}
+
+ vfile@6.0.3:
+ resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==}
+
+ vite-plugin-full-reload@1.2.0:
+ resolution: {integrity: sha512-kz18NW79x0IHbxRSHm0jttP4zoO9P9gXh+n6UTwlNKnviTTEpOlum6oS9SmecrTtSr+muHEn5TUuC75UovQzcA==}
+
+ vite-plus@1.3.0:
+ resolution: {integrity: sha512-wZGsDeYfPcrCegqgY68pJJHGTpEZdsZvIMH2/mWXkGkBD72UY3M7z24Sv3ZeOL/FrqbbtyqBOfkKO6BvoQ8wMw==}
+ engines: {node: ^22.18.0 || ^24.11.0 || >=26.0.0}
+ hasBin: true
+ peerDependencies:
+ '@vitest/browser-playwright': 5.0.5
+ '@vitest/browser-webdriverio': ^5.0.0-beta.5 || >=5.0.0
+ playwright: '*'
+ peerDependenciesMeta:
+ '@vitest/browser-playwright':
+ optional: true
+ '@vitest/browser-webdriverio':
+ optional: true
+ playwright:
+ optional: true
+
+ vitest@5.0.5:
+ resolution: {integrity: sha512-cPODOMF8YnkiiYtDdHo6n4wWmBrOBBbOIYH2d33M4l3CdNn72h+qMmO6uXffUN6A5AZFXNND/d+krS9mgkXRfg==}
+ engines: {node: ^22.12.0 || ^24.0.0 || >=26.0.0}
+ hasBin: true
+ peerDependencies:
+ '@edge-runtime/vm': '*'
+ '@opentelemetry/api': ^1.9.0
+ '@types/node': ^22.0.0 || >=24.0.0
+ '@vitest/browser-playwright': 5.0.5
+ '@vitest/browser-preview': 5.0.5
+ '@vitest/browser-webdriverio': ^5.0.0-beta.5 || >=5.0.0
+ '@vitest/coverage-istanbul': 5.0.5
+ '@vitest/coverage-v8': 5.0.5
+ '@vitest/ui': 5.0.5
+ happy-dom: '*'
+ jsdom: '*'
+ vite: ^6.4.0 || ^7.0.0 || ^8.0.0
+ peerDependenciesMeta:
+ '@edge-runtime/vm':
+ optional: true
+ '@opentelemetry/api':
+ optional: true
+ '@types/node':
+ optional: true
+ '@vitest/browser-playwright':
+ optional: true
+ '@vitest/browser-preview':
+ optional: true
+ '@vitest/browser-webdriverio':
+ optional: true
+ '@vitest/coverage-istanbul':
+ optional: true
+ '@vitest/coverage-v8':
+ optional: true
+ '@vitest/ui':
+ optional: true
+ happy-dom:
+ optional: true
+ jsdom:
+ optional: true
+
+ vue-component-type-helpers@3.3.13:
+ resolution: {integrity: sha512-02KCxSmKDhIITjKyJ4QT5csP6L0WoRborLqY/34a40+S9uvMvdNgMV0yVjO3p2Gkz3ZoPmFz/0JsGHacwJYTxw==}
+
+ vue-json-pretty@2.6.0:
+ resolution: {integrity: sha512-glz1aBVS35EO8+S9agIl3WOQaW2cJZW192UVKTuGmryx01ZvOVWc4pR3t+5UcyY4jdOfBUgVHjcpRpcnjRhCAg==}
+ engines: {node: '>= 10.0.0', npm: '>= 5.0.0'}
+ peerDependencies:
+ vue: '>=3.0.0'
+
+ vue-router@4.6.4:
+ resolution: {integrity: sha512-Hz9q5sa33Yhduglwz6g9skT8OBPii+4bFn88w6J+J4MfEo4KRRpmiNG/hHHkdbRFlLBOqxN8y8gf2Fb0MTUgVg==}
+ peerDependencies:
+ vue: ^3.5.0
+
+ vue@3.5.44:
+ resolution: {integrity: sha512-dvvmaOCG7lAMkJTPqPwWeGMsPS6DIsFsfZDUgBp9V6mHf9b3+/wyVwYR4Es+WV6uJC0FKRxp81Obcq0ZwUcGFQ==}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ w3c-xmlserializer@6.0.0:
+ resolution: {integrity: sha512-4Nsy8K5Tr6SPDH9jhKJOHf7ChDrc1zufZTVSF7x72hwuEXBqxqk9G6cK+K2NRUtB3iELRJqjXb4JPDMBjMTl2Q==}
+ engines: {node: ^22.22.2 || ^24.15.0 || >=26.0.0}
+
+ webidl-conversions@8.0.1:
+ resolution: {integrity: sha512-BMhLD/Sw+GbJC21C/UgyaZX41nPt8bUTg+jWyDeg7e7YN4xOM05YPSIXceACnXVtqyEw/LMClUQMtMZ+PGGpqQ==}
+ engines: {node: '>=20'}
+
+ whatwg-mimetype@3.0.0:
+ resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==}
+ engines: {node: '>=12'}
+
+ whatwg-mimetype@5.0.0:
+ resolution: {integrity: sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==}
+ engines: {node: '>=20'}
+
+ whatwg-url@17.3.0:
+ resolution: {integrity: sha512-KwOAJrpf+GTgBvcBQJcP38sMF0DsQKdwtG+TxM2pW44P6E5k0hDbWrDmyuJDIF0Uef0aQq0ZoJs+5oI+k8ddhg==}
+ engines: {node: ^22.14.0 || >=24.0.0}
+
+ why-is-node-running@3.2.1:
+ resolution: {integrity: sha512-Tb2FUhB4vUsGQlfSquQLYkApkuPAFQXGFzxWKHHumVz2dK+X1RUm/HnID4+TfIGYJ1kTcwOaCk/buYCEJr6YjQ==}
+ engines: {node: '>=20.11'}
+ hasBin: true
+
+ ws@8.22.0:
+ resolution: {integrity: sha512-Ydggc987+RO0AnWtZ/7Wq9FtNvcrL1b/RO0ud9mWjUPgDrsAAwQSF51sm2hm1XofbU/4jkpGEsLFsZZxU+1DOg==}
+ engines: {node: '>=10.0.0'}
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: '>=5.0.2'
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+
+ xml-name-validator@5.0.0:
+ resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==}
+ engines: {node: '>=18'}
+
+ xmlchars@2.2.0:
+ resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
+
+ yuku-core@0.19.0:
+ resolution: {integrity: sha512-kYK9e1XdfirNhkipzW0wmMcSWcVF/CWnuugodfVYRCUwvoBefweL9HzB96OiKEhsx78V5WbUxbJqlizMX869Qg==}
+ engines: {node: '>=14.18.0'}
+
+ yuku-parser@0.19.0:
+ resolution: {integrity: sha512-XrBh9ZiQK5mJVRxZBAvD6LwRyAYrK3MFtH3+onyuxFL5hFD44EC3QOmIC1FjTj6H2MMwq46/NAI+NZxLZPZgxg==}
+ engines: {node: '>=14.18.0'}
+
+ zwitch@2.0.4:
+ resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
+
+snapshots:
+
+ '@alloc/quick-lru@5.3.0': {}
+
+ '@asamuzakjp/css-color@7.1.7':
+ dependencies:
+ '@csstools/css-calc': 3.4.3(@csstools/css-parser-algorithms@4.0.2(@csstools/css-tokenizer@4.0.2))(@csstools/css-tokenizer@4.0.2)
+ '@csstools/css-color-parser': 4.2.6(@csstools/css-parser-algorithms@4.0.2(@csstools/css-tokenizer@4.0.2))(@csstools/css-tokenizer@4.0.2)
+ '@csstools/css-parser-algorithms': 4.0.2(@csstools/css-tokenizer@4.0.2)
+ '@csstools/css-tokenizer': 4.0.2
+ lru-cache: 11.5.3
+
+ '@asamuzakjp/dom-selector@10.0.4':
+ dependencies:
+ bidi-js: 1.1.0
+ css-tree: 3.2.1
+ is-potential-custom-element-name: 1.0.1
+ lru-cache: 11.5.3
+
+ '@babel/code-frame@7.29.7':
+ dependencies:
+ '@babel/helper-validator-identifier': 7.29.7
+ js-tokens: 4.0.0
+ picocolors: 1.1.1
+
+ '@babel/helper-string-parser@7.29.7': {}
+
+ '@babel/helper-validator-identifier@7.29.7': {}
+
+ '@babel/parser@7.29.9':
+ dependencies:
+ '@babel/types': 7.29.8
+
+ '@babel/runtime@7.29.10': {}
+
+ '@babel/types@7.29.8':
+ dependencies:
+ '@babel/helper-string-parser': 7.29.7
+ '@babel/helper-validator-identifier': 7.29.7
+
+ '@blazediff/core@1.10.0': {}
+
+ '@bramus/specificity@2.4.3':
+ dependencies:
+ css-tree: 3.2.1
+
+ '@csstools/color-helpers@6.1.2': {}
+
+ '@csstools/css-calc@3.4.3(@csstools/css-parser-algorithms@4.0.2(@csstools/css-tokenizer@4.0.2))(@csstools/css-tokenizer@4.0.2)':
+ dependencies:
+ '@csstools/css-parser-algorithms': 4.0.2(@csstools/css-tokenizer@4.0.2)
+ '@csstools/css-tokenizer': 4.0.2
+
+ '@csstools/css-color-parser@4.2.6(@csstools/css-parser-algorithms@4.0.2(@csstools/css-tokenizer@4.0.2))(@csstools/css-tokenizer@4.0.2)':
+ dependencies:
+ '@csstools/color-helpers': 6.1.2
+ '@csstools/css-calc': 3.4.3(@csstools/css-parser-algorithms@4.0.2(@csstools/css-tokenizer@4.0.2))(@csstools/css-tokenizer@4.0.2)
+ '@csstools/css-parser-algorithms': 4.0.2(@csstools/css-tokenizer@4.0.2)
+ '@csstools/css-tokenizer': 4.0.2
+
+ '@csstools/css-parser-algorithms@4.0.2(@csstools/css-tokenizer@4.0.2)':
+ dependencies:
+ '@csstools/css-tokenizer': 4.0.2
+
+ '@csstools/css-syntax-patches-for-csstree@1.1.15(css-tree@3.2.1)':
+ optionalDependencies:
+ css-tree: 3.2.1
+
+ '@csstools/css-tokenizer@4.0.2': {}
+
+ '@exodus/bytes@1.16.0': {}
+
+ '@floating-ui/core@1.8.0':
+ dependencies:
+ '@floating-ui/utils': 0.2.12
+
+ '@floating-ui/dom@1.8.0':
+ dependencies:
+ '@floating-ui/core': 1.8.0
+ '@floating-ui/utils': 0.2.12
+
+ '@floating-ui/react-dom@2.1.9(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@floating-ui/dom': 1.8.0
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+
+ '@floating-ui/utils@0.2.12': {}
+
+ '@jridgewell/gen-mapping@0.3.13':
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.6.0
+ '@jridgewell/trace-mapping': 0.3.31
+
+ '@jridgewell/remapping@2.3.5':
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.13
+ '@jridgewell/trace-mapping': 0.3.31
+
+ '@jridgewell/resolve-uri@3.1.2': {}
+
+ '@jridgewell/source-map@0.3.11':
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.13
+ '@jridgewell/trace-mapping': 0.3.31
+
+ '@jridgewell/sourcemap-codec@1.6.0': {}
+
+ '@jridgewell/trace-mapping@0.3.31':
+ dependencies:
+ '@jridgewell/resolve-uri': 3.1.2
+ '@jridgewell/sourcemap-codec': 1.6.0
+
+ '@nodelib/fs.scandir@2.1.5':
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ run-parallel: 1.2.0
+
+ '@nodelib/fs.stat@2.0.5': {}
+
+ '@nodelib/fs.walk@1.2.8':
+ dependencies:
+ '@nodelib/fs.scandir': 2.1.5
+ fastq: 1.20.3
+
+ '@one-ini/wasm@0.2.1': {}
+
+ '@oxc-project/runtime@0.154.0': {}
+
+ '@oxc-project/types@0.154.0': {}
+
+ '@oxfmt/binding-android-arm-eabi@0.73.0':
+ optional: true
+
+ '@oxfmt/binding-android-arm64@0.73.0':
+ optional: true
+
+ '@oxfmt/binding-darwin-arm64@0.73.0':
+ optional: true
+
+ '@oxfmt/binding-darwin-x64@0.73.0':
+ optional: true
+
+ '@oxfmt/binding-freebsd-x64@0.73.0':
+ optional: true
+
+ '@oxfmt/binding-linux-arm-gnueabihf@0.73.0':
+ optional: true
+
+ '@oxfmt/binding-linux-arm-musleabihf@0.73.0':
+ optional: true
+
+ '@oxfmt/binding-linux-arm64-gnu@0.73.0':
+ optional: true
+
+ '@oxfmt/binding-linux-arm64-musl@0.73.0':
+ optional: true
+
+ '@oxfmt/binding-linux-ppc64-gnu@0.73.0':
+ optional: true
+
+ '@oxfmt/binding-linux-riscv64-gnu@0.73.0':
+ optional: true
+
+ '@oxfmt/binding-linux-riscv64-musl@0.73.0':
+ optional: true
+
+ '@oxfmt/binding-linux-s390x-gnu@0.73.0':
+ optional: true
+
+ '@oxfmt/binding-linux-x64-gnu@0.73.0':
+ optional: true
+
+ '@oxfmt/binding-linux-x64-musl@0.73.0':
+ optional: true
+
+ '@oxfmt/binding-openharmony-arm64@0.73.0':
+ optional: true
+
+ '@oxfmt/binding-win32-arm64-msvc@0.73.0':
+ optional: true
+
+ '@oxfmt/binding-win32-ia32-msvc@0.73.0':
+ optional: true
+
+ '@oxfmt/binding-win32-x64-msvc@0.73.0':
+ optional: true
+
+ '@oxlint-tsgolint/darwin-arm64@7.0.2004':
+ optional: true
+
+ '@oxlint-tsgolint/darwin-x64@7.0.2004':
+ optional: true
+
+ '@oxlint-tsgolint/linux-arm64@7.0.2004':
+ optional: true
+
+ '@oxlint-tsgolint/linux-x64@7.0.2004':
+ optional: true
+
+ '@oxlint-tsgolint/win32-arm64@7.0.2004':
+ optional: true
+
+ '@oxlint-tsgolint/win32-x64@7.0.2004':
+ optional: true
+
+ '@oxlint/binding-android-arm-eabi@1.88.0':
+ optional: true
+
+ '@oxlint/binding-android-arm64@1.88.0':
+ optional: true
+
+ '@oxlint/binding-darwin-arm64@1.88.0':
+ optional: true
+
+ '@oxlint/binding-darwin-x64@1.88.0':
+ optional: true
+
+ '@oxlint/binding-freebsd-x64@1.88.0':
+ optional: true
+
+ '@oxlint/binding-linux-arm-gnueabihf@1.88.0':
+ optional: true
+
+ '@oxlint/binding-linux-arm-musleabihf@1.88.0':
+ optional: true
+
+ '@oxlint/binding-linux-arm64-gnu@1.88.0':
+ optional: true
+
+ '@oxlint/binding-linux-arm64-musl@1.88.0':
+ optional: true
+
+ '@oxlint/binding-linux-ppc64-gnu@1.88.0':
+ optional: true
+
+ '@oxlint/binding-linux-riscv64-gnu@1.88.0':
+ optional: true
+
+ '@oxlint/binding-linux-riscv64-musl@1.88.0':
+ optional: true
+
+ '@oxlint/binding-linux-s390x-gnu@1.88.0':
+ optional: true
+
+ '@oxlint/binding-linux-x64-gnu@1.88.0':
+ optional: true
+
+ '@oxlint/binding-linux-x64-musl@1.88.0':
+ optional: true
+
+ '@oxlint/binding-openharmony-arm64@1.88.0':
+ optional: true
+
+ '@oxlint/binding-win32-arm64-msvc@1.88.0':
+ optional: true
+
+ '@oxlint/binding-win32-ia32-msvc@1.88.0':
+ optional: true
+
+ '@oxlint/binding-win32-x64-msvc@1.88.0':
+ optional: true
+
+ '@oxlint/plugins@1.88.0': {}
+
+ '@parcel/watcher-android-arm64@2.6.0':
+ optional: true
+
+ '@parcel/watcher-darwin-arm64@2.6.0':
+ optional: true
+
+ '@parcel/watcher-darwin-x64@2.6.0':
+ optional: true
+
+ '@parcel/watcher-freebsd-x64@2.6.0':
+ optional: true
+
+ '@parcel/watcher-linux-arm-glibc@2.6.0':
+ optional: true
+
+ '@parcel/watcher-linux-arm-musl@2.6.0':
+ optional: true
+
+ '@parcel/watcher-linux-arm64-glibc@2.6.0':
+ optional: true
+
+ '@parcel/watcher-linux-arm64-musl@2.6.0':
+ optional: true
+
+ '@parcel/watcher-linux-x64-glibc@2.6.0':
+ optional: true
+
+ '@parcel/watcher-linux-x64-musl@2.6.0':
+ optional: true
+
+ '@parcel/watcher-win32-arm64@2.6.0':
+ optional: true
+
+ '@parcel/watcher-win32-x64@2.6.0':
+ optional: true
+
+ '@parcel/watcher@2.6.0':
+ dependencies:
+ detect-libc: 2.1.2
+ is-glob: 4.0.3
+ node-addon-api: 7.1.1
+ picomatch: 4.0.7
+ optionalDependencies:
+ '@parcel/watcher-android-arm64': 2.6.0
+ '@parcel/watcher-darwin-arm64': 2.6.0
+ '@parcel/watcher-darwin-x64': 2.6.0
+ '@parcel/watcher-freebsd-x64': 2.6.0
+ '@parcel/watcher-linux-arm-glibc': 2.6.0
+ '@parcel/watcher-linux-arm-musl': 2.6.0
+ '@parcel/watcher-linux-arm64-glibc': 2.6.0
+ '@parcel/watcher-linux-arm64-musl': 2.6.0
+ '@parcel/watcher-linux-x64-glibc': 2.6.0
+ '@parcel/watcher-linux-x64-musl': 2.6.0
+ '@parcel/watcher-win32-arm64': 2.6.0
+ '@parcel/watcher-win32-x64': 2.6.0
+ optional: true
+
+ '@polka/url@1.0.0-next.29': {}
+
+ '@popperjs/core@2.11.8': {}
+
+ '@radix-ui/number@1.1.3': {}
+
+ '@radix-ui/primitive@1.2.0': {}
+
+ '@radix-ui/react-accessible-icon@1.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@radix-ui/react-visually-hidden': 1.2.13(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+
+ '@radix-ui/react-accordion@1.3.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.2.0
+ '@radix-ui/react-collapsible': 1.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-collection': 1.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-compose-refs': 1.1.5(react@19.3.1)
+ '@radix-ui/react-context': 1.3.0(react@19.3.1)
+ '@radix-ui/react-direction': 1.2.0(react@19.3.1)
+ '@radix-ui/react-id': 1.1.4(react@19.3.1)
+ '@radix-ui/react-primitive': 2.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-use-controllable-state': 1.3.0(react@19.3.1)
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+
+ '@radix-ui/react-alert-dialog@1.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.2.0
+ '@radix-ui/react-compose-refs': 1.1.5(react@19.3.1)
+ '@radix-ui/react-context': 1.3.0(react@19.3.1)
+ '@radix-ui/react-dialog': 1.3.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-primitive': 2.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+
+ '@radix-ui/react-arrow@1.1.17(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+
+ '@radix-ui/react-aspect-ratio@1.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+
+ '@radix-ui/react-avatar@1.3.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.2.0
+ '@radix-ui/react-context': 1.3.0(react@19.3.1)
+ '@radix-ui/react-primitive': 2.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.5(react@19.3.1)
+ '@radix-ui/react-use-is-hydrated': 0.1.3(react@19.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.4(react@19.3.1)
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+
+ '@radix-ui/react-checkbox@1.4.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.2.0
+ '@radix-ui/react-compose-refs': 1.1.5(react@19.3.1)
+ '@radix-ui/react-context': 1.3.0(react@19.3.1)
+ '@radix-ui/react-presence': 1.1.11(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-primitive': 2.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-use-controllable-state': 1.3.0(react@19.3.1)
+ '@radix-ui/react-use-size': 1.1.5(react@19.3.1)
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+
+ '@radix-ui/react-collapsible@1.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.2.0
+ '@radix-ui/react-compose-refs': 1.1.5(react@19.3.1)
+ '@radix-ui/react-context': 1.3.0(react@19.3.1)
+ '@radix-ui/react-id': 1.1.4(react@19.3.1)
+ '@radix-ui/react-presence': 1.1.11(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-primitive': 2.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-use-controllable-state': 1.3.0(react@19.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.4(react@19.3.1)
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+
+ '@radix-ui/react-collection@1.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.5(react@19.3.1)
+ '@radix-ui/react-context': 1.3.0(react@19.3.1)
+ '@radix-ui/react-primitive': 2.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-slot': 1.5.0(react@19.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.4(react@19.3.1)
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+
+ '@radix-ui/react-compose-refs@1.1.5(react@19.3.1)':
+ dependencies:
+ react: 19.3.1
+
+ '@radix-ui/react-context-menu@2.4.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.2.0
+ '@radix-ui/react-context': 1.3.0(react@19.3.1)
+ '@radix-ui/react-menu': 2.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-primitive': 2.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-use-controllable-state': 1.3.0(react@19.3.1)
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+
+ '@radix-ui/react-context@1.3.0(react@19.3.1)':
+ dependencies:
+ react: 19.3.1
+
+ '@radix-ui/react-dialog@1.3.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.2.0
+ '@radix-ui/react-compose-refs': 1.1.5(react@19.3.1)
+ '@radix-ui/react-context': 1.3.0(react@19.3.1)
+ '@radix-ui/react-dismissable-layer': 1.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-focus-guards': 1.2.0(react@19.3.1)
+ '@radix-ui/react-focus-scope': 1.3.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-id': 1.1.4(react@19.3.1)
+ '@radix-ui/react-portal': 1.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-presence': 1.1.11(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-primitive': 2.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-slot': 1.5.0(react@19.3.1)
+ '@radix-ui/react-use-controllable-state': 1.3.0(react@19.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.4(react@19.3.1)
+ aria-hidden: 1.2.6
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+ react-remove-scroll: 2.7.2(react@19.3.1)
+
+ '@radix-ui/react-direction@1.2.0(react@19.3.1)':
+ dependencies:
+ react: 19.3.1
+
+ '@radix-ui/react-dismissable-layer@1.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.2.0
+ '@radix-ui/react-compose-refs': 1.1.5(react@19.3.1)
+ '@radix-ui/react-primitive': 2.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.5(react@19.3.1)
+ '@radix-ui/react-use-effect-event': 0.0.5(react@19.3.1)
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+
+ '@radix-ui/react-dropdown-menu@2.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.2.0
+ '@radix-ui/react-compose-refs': 1.1.5(react@19.3.1)
+ '@radix-ui/react-context': 1.3.0(react@19.3.1)
+ '@radix-ui/react-id': 1.1.4(react@19.3.1)
+ '@radix-ui/react-menu': 2.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-primitive': 2.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-use-controllable-state': 1.3.0(react@19.3.1)
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+
+ '@radix-ui/react-focus-guards@1.2.0(react@19.3.1)':
+ dependencies:
+ react: 19.3.1
+
+ '@radix-ui/react-focus-scope@1.3.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.5(react@19.3.1)
+ '@radix-ui/react-primitive': 2.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.5(react@19.3.1)
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+
+ '@radix-ui/react-form@0.3.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.2.0
+ '@radix-ui/react-compose-refs': 1.1.5(react@19.3.1)
+ '@radix-ui/react-context': 1.3.0(react@19.3.1)
+ '@radix-ui/react-id': 1.1.4(react@19.3.1)
+ '@radix-ui/react-label': 2.1.17(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-primitive': 2.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+
+ '@radix-ui/react-hover-card@1.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.2.0
+ '@radix-ui/react-compose-refs': 1.1.5(react@19.3.1)
+ '@radix-ui/react-context': 1.3.0(react@19.3.1)
+ '@radix-ui/react-dismissable-layer': 1.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-focus-scope': 1.3.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-popper': 1.4.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-portal': 1.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-presence': 1.1.11(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-primitive': 2.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-use-controllable-state': 1.3.0(react@19.3.1)
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+
+ '@radix-ui/react-id@1.1.4(react@19.3.1)':
+ dependencies:
+ '@radix-ui/react-use-layout-effect': 1.1.4(react@19.3.1)
+ react: 19.3.1
+
+ '@radix-ui/react-label@2.1.17(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+
+ '@radix-ui/react-menu@2.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.2.0
+ '@radix-ui/react-collection': 1.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-compose-refs': 1.1.5(react@19.3.1)
+ '@radix-ui/react-context': 1.3.0(react@19.3.1)
+ '@radix-ui/react-direction': 1.2.0(react@19.3.1)
+ '@radix-ui/react-dismissable-layer': 1.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-focus-guards': 1.2.0(react@19.3.1)
+ '@radix-ui/react-focus-scope': 1.3.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-id': 1.1.4(react@19.3.1)
+ '@radix-ui/react-popper': 1.4.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-portal': 1.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-presence': 1.1.11(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-primitive': 2.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-roving-focus': 1.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-slot': 1.5.0(react@19.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.5(react@19.3.1)
+ aria-hidden: 1.2.6
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+ react-remove-scroll: 2.7.2(react@19.3.1)
+
+ '@radix-ui/react-menubar@1.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.2.0
+ '@radix-ui/react-collection': 1.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-compose-refs': 1.1.5(react@19.3.1)
+ '@radix-ui/react-context': 1.3.0(react@19.3.1)
+ '@radix-ui/react-direction': 1.2.0(react@19.3.1)
+ '@radix-ui/react-id': 1.1.4(react@19.3.1)
+ '@radix-ui/react-menu': 2.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-primitive': 2.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-roving-focus': 1.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-use-controllable-state': 1.3.0(react@19.3.1)
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+
+ '@radix-ui/react-navigation-menu@1.4.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.2.0
+ '@radix-ui/react-collection': 1.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-compose-refs': 1.1.5(react@19.3.1)
+ '@radix-ui/react-context': 1.3.0(react@19.3.1)
+ '@radix-ui/react-direction': 1.2.0(react@19.3.1)
+ '@radix-ui/react-dismissable-layer': 1.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-id': 1.1.4(react@19.3.1)
+ '@radix-ui/react-presence': 1.1.11(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-primitive': 2.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-slot': 1.5.0(react@19.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.5(react@19.3.1)
+ '@radix-ui/react-use-controllable-state': 1.3.0(react@19.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.4(react@19.3.1)
+ '@radix-ui/react-use-previous': 1.1.4(react@19.3.1)
+ '@radix-ui/react-visually-hidden': 1.2.13(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+
+ '@radix-ui/react-one-time-password-field@0.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@radix-ui/number': 1.1.3
+ '@radix-ui/primitive': 1.2.0
+ '@radix-ui/react-collection': 1.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-compose-refs': 1.1.5(react@19.3.1)
+ '@radix-ui/react-context': 1.3.0(react@19.3.1)
+ '@radix-ui/react-direction': 1.2.0(react@19.3.1)
+ '@radix-ui/react-primitive': 2.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-roving-focus': 1.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-use-controllable-state': 1.3.0(react@19.3.1)
+ '@radix-ui/react-use-effect-event': 0.0.5(react@19.3.1)
+ '@radix-ui/react-use-is-hydrated': 0.1.3(react@19.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.4(react@19.3.1)
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+
+ '@radix-ui/react-password-toggle-field@0.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.2.0
+ '@radix-ui/react-compose-refs': 1.1.5(react@19.3.1)
+ '@radix-ui/react-context': 1.3.0(react@19.3.1)
+ '@radix-ui/react-id': 1.1.4(react@19.3.1)
+ '@radix-ui/react-primitive': 2.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-use-controllable-state': 1.3.0(react@19.3.1)
+ '@radix-ui/react-use-effect-event': 0.0.5(react@19.3.1)
+ '@radix-ui/react-use-is-hydrated': 0.1.3(react@19.3.1)
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+
+ '@radix-ui/react-popover@1.3.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.2.0
+ '@radix-ui/react-compose-refs': 1.1.5(react@19.3.1)
+ '@radix-ui/react-context': 1.3.0(react@19.3.1)
+ '@radix-ui/react-dismissable-layer': 1.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-focus-guards': 1.2.0(react@19.3.1)
+ '@radix-ui/react-focus-scope': 1.3.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-id': 1.1.4(react@19.3.1)
+ '@radix-ui/react-popper': 1.4.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-portal': 1.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-presence': 1.1.11(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-primitive': 2.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-slot': 1.5.0(react@19.3.1)
+ '@radix-ui/react-use-controllable-state': 1.3.0(react@19.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.4(react@19.3.1)
+ aria-hidden: 1.2.6
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+ react-remove-scroll: 2.7.2(react@19.3.1)
+
+ '@radix-ui/react-popper@1.4.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@floating-ui/react-dom': 2.1.9(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-arrow': 1.1.17(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-compose-refs': 1.1.5(react@19.3.1)
+ '@radix-ui/react-context': 1.3.0(react@19.3.1)
+ '@radix-ui/react-primitive': 2.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.5(react@19.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.4(react@19.3.1)
+ '@radix-ui/react-use-rect': 1.1.4(react@19.3.1)
+ '@radix-ui/react-use-size': 1.1.5(react@19.3.1)
+ '@radix-ui/rect': 1.1.3
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+
+ '@radix-ui/react-portal@1.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.4(react@19.3.1)
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+
+ '@radix-ui/react-presence@1.1.11(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@radix-ui/react-use-layout-effect': 1.1.4(react@19.3.1)
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+
+ '@radix-ui/react-primitive@2.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@radix-ui/react-slot': 1.5.0(react@19.3.1)
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+
+ '@radix-ui/react-progress@1.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@radix-ui/react-context': 1.3.0(react@19.3.1)
+ '@radix-ui/react-primitive': 2.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+
+ '@radix-ui/react-radio-group@1.5.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.2.0
+ '@radix-ui/react-compose-refs': 1.1.5(react@19.3.1)
+ '@radix-ui/react-context': 1.3.0(react@19.3.1)
+ '@radix-ui/react-direction': 1.2.0(react@19.3.1)
+ '@radix-ui/react-presence': 1.1.11(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-primitive': 2.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-roving-focus': 1.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-use-controllable-state': 1.3.0(react@19.3.1)
+ '@radix-ui/react-use-size': 1.1.5(react@19.3.1)
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+
+ '@radix-ui/react-roving-focus@1.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.2.0
+ '@radix-ui/react-collection': 1.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-compose-refs': 1.1.5(react@19.3.1)
+ '@radix-ui/react-context': 1.3.0(react@19.3.1)
+ '@radix-ui/react-direction': 1.2.0(react@19.3.1)
+ '@radix-ui/react-id': 1.1.4(react@19.3.1)
+ '@radix-ui/react-primitive': 2.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.5(react@19.3.1)
+ '@radix-ui/react-use-controllable-state': 1.3.0(react@19.3.1)
+ '@radix-ui/react-use-is-hydrated': 0.1.3(react@19.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.4(react@19.3.1)
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+
+ '@radix-ui/react-scroll-area@1.4.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@radix-ui/number': 1.1.3
+ '@radix-ui/primitive': 1.2.0
+ '@radix-ui/react-compose-refs': 1.1.5(react@19.3.1)
+ '@radix-ui/react-context': 1.3.0(react@19.3.1)
+ '@radix-ui/react-direction': 1.2.0(react@19.3.1)
+ '@radix-ui/react-presence': 1.1.11(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-primitive': 2.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-slot': 1.5.0(react@19.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.5(react@19.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.4(react@19.3.1)
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+
+ '@radix-ui/react-select@2.4.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@radix-ui/number': 1.1.3
+ '@radix-ui/primitive': 1.2.0
+ '@radix-ui/react-collection': 1.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-compose-refs': 1.1.5(react@19.3.1)
+ '@radix-ui/react-context': 1.3.0(react@19.3.1)
+ '@radix-ui/react-direction': 1.2.0(react@19.3.1)
+ '@radix-ui/react-dismissable-layer': 1.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-focus-guards': 1.2.0(react@19.3.1)
+ '@radix-ui/react-focus-scope': 1.3.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-id': 1.1.4(react@19.3.1)
+ '@radix-ui/react-popper': 1.4.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-portal': 1.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-presence': 1.1.11(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-primitive': 2.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-slot': 1.5.0(react@19.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.5(react@19.3.1)
+ '@radix-ui/react-use-controllable-state': 1.3.0(react@19.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.4(react@19.3.1)
+ '@radix-ui/react-visually-hidden': 1.2.13(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ aria-hidden: 1.2.6
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+ react-remove-scroll: 2.7.2(react@19.3.1)
+
+ '@radix-ui/react-separator@1.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+
+ '@radix-ui/react-slider@1.6.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@radix-ui/number': 1.1.3
+ '@radix-ui/primitive': 1.2.0
+ '@radix-ui/react-collection': 1.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-compose-refs': 1.1.5(react@19.3.1)
+ '@radix-ui/react-context': 1.3.0(react@19.3.1)
+ '@radix-ui/react-direction': 1.2.0(react@19.3.1)
+ '@radix-ui/react-primitive': 2.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-use-controllable-state': 1.3.0(react@19.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.4(react@19.3.1)
+ '@radix-ui/react-use-size': 1.1.5(react@19.3.1)
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+
+ '@radix-ui/react-slot@1.5.0(react@19.3.1)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.5(react@19.3.1)
+ react: 19.3.1
+
+ '@radix-ui/react-switch@1.4.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.2.0
+ '@radix-ui/react-compose-refs': 1.1.5(react@19.3.1)
+ '@radix-ui/react-context': 1.3.0(react@19.3.1)
+ '@radix-ui/react-primitive': 2.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-use-controllable-state': 1.3.0(react@19.3.1)
+ '@radix-ui/react-use-size': 1.1.5(react@19.3.1)
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+
+ '@radix-ui/react-tabs@1.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.2.0
+ '@radix-ui/react-context': 1.3.0(react@19.3.1)
+ '@radix-ui/react-direction': 1.2.0(react@19.3.1)
+ '@radix-ui/react-id': 1.1.4(react@19.3.1)
+ '@radix-ui/react-presence': 1.1.11(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-primitive': 2.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-roving-focus': 1.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-use-controllable-state': 1.3.0(react@19.3.1)
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+
+ '@radix-ui/react-toast@1.3.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.2.0
+ '@radix-ui/react-collection': 1.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-compose-refs': 1.1.5(react@19.3.1)
+ '@radix-ui/react-context': 1.3.0(react@19.3.1)
+ '@radix-ui/react-dismissable-layer': 1.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-portal': 1.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-presence': 1.1.11(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-primitive': 2.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.5(react@19.3.1)
+ '@radix-ui/react-use-controllable-state': 1.3.0(react@19.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.4(react@19.3.1)
+ '@radix-ui/react-visually-hidden': 1.2.13(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+
+ '@radix-ui/react-toggle-group@1.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.2.0
+ '@radix-ui/react-context': 1.3.0(react@19.3.1)
+ '@radix-ui/react-direction': 1.2.0(react@19.3.1)
+ '@radix-ui/react-primitive': 2.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-roving-focus': 1.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-toggle': 1.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-use-controllable-state': 1.3.0(react@19.3.1)
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+
+ '@radix-ui/react-toggle@1.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.2.0
+ '@radix-ui/react-primitive': 2.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-use-controllable-state': 1.3.0(react@19.3.1)
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+
+ '@radix-ui/react-toolbar@1.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.2.0
+ '@radix-ui/react-context': 1.3.0(react@19.3.1)
+ '@radix-ui/react-direction': 1.2.0(react@19.3.1)
+ '@radix-ui/react-primitive': 2.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-roving-focus': 1.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-separator': 1.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-toggle-group': 1.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+
+ '@radix-ui/react-tooltip@1.4.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.2.0
+ '@radix-ui/react-compose-refs': 1.1.5(react@19.3.1)
+ '@radix-ui/react-context': 1.3.0(react@19.3.1)
+ '@radix-ui/react-dismissable-layer': 1.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-focus-scope': 1.3.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-id': 1.1.4(react@19.3.1)
+ '@radix-ui/react-popper': 1.4.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-portal': 1.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-presence': 1.1.11(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-primitive': 2.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-slot': 1.5.0(react@19.3.1)
+ '@radix-ui/react-use-controllable-state': 1.3.0(react@19.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.4(react@19.3.1)
+ '@radix-ui/react-visually-hidden': 1.2.13(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+
+ '@radix-ui/react-use-callback-ref@1.1.5(react@19.3.1)':
+ dependencies:
+ '@radix-ui/react-use-layout-effect': 1.1.4(react@19.3.1)
+ react: 19.3.1
+
+ '@radix-ui/react-use-controllable-state@1.3.0(react@19.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.2.0
+ '@radix-ui/react-use-effect-event': 0.0.5(react@19.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.4(react@19.3.1)
+ react: 19.3.1
+
+ '@radix-ui/react-use-effect-event@0.0.5(react@19.3.1)':
+ dependencies:
+ '@radix-ui/react-use-layout-effect': 1.1.4(react@19.3.1)
+ react: 19.3.1
+
+ '@radix-ui/react-use-escape-keydown@1.1.6(react@19.3.1)':
+ dependencies:
+ '@radix-ui/react-use-callback-ref': 1.1.5(react@19.3.1)
+ react: 19.3.1
+
+ '@radix-ui/react-use-is-hydrated@0.1.3(react@19.3.1)':
+ dependencies:
+ react: 19.3.1
+
+ '@radix-ui/react-use-layout-effect@1.1.4(react@19.3.1)':
+ dependencies:
+ react: 19.3.1
+
+ '@radix-ui/react-use-previous@1.1.4(react@19.3.1)':
+ dependencies:
+ react: 19.3.1
+
+ '@radix-ui/react-use-rect@1.1.4(react@19.3.1)':
+ dependencies:
+ '@radix-ui/rect': 1.1.3
+ react: 19.3.1
+
+ '@radix-ui/react-use-size@1.1.5(react@19.3.1)':
+ dependencies:
+ '@radix-ui/react-use-layout-effect': 1.1.4(react@19.3.1)
+ react: 19.3.1
+
+ '@radix-ui/react-visually-hidden@1.2.13(react-dom@19.3.1(react@19.3.1))(react@19.3.1)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+
+ '@radix-ui/rect@1.1.3': {}
+
+ '@rolldown/pluginutils@1.0.1': {}
+
+ '@shadcn/react@0.2.1(react@19.3.1)':
+ optionalDependencies:
+ react: 19.3.1
+
+ '@shikijs/core@3.23.0':
+ dependencies:
+ '@shikijs/types': 3.23.0
+ '@shikijs/vscode-textmate': 10.1.0
+ '@types/hast': 3.0.5
+ hast-util-to-html: 9.0.5
+
+ '@shikijs/engine-javascript@3.23.0':
+ dependencies:
+ '@shikijs/types': 3.23.0
+ '@shikijs/vscode-textmate': 10.1.0
+ oniguruma-to-es: 4.3.6
+
+ '@shikijs/engine-oniguruma@3.23.0':
+ dependencies:
+ '@shikijs/types': 3.23.0
+ '@shikijs/vscode-textmate': 10.1.0
+
+ '@shikijs/langs@3.23.0':
+ dependencies:
+ '@shikijs/types': 3.23.0
+
+ '@shikijs/themes@3.23.0':
+ dependencies:
+ '@shikijs/types': 3.23.0
+
+ '@shikijs/types@3.23.0':
+ dependencies:
+ '@shikijs/vscode-textmate': 10.1.0
+ '@types/hast': 3.0.5
+
+ '@shikijs/vscode-textmate@10.1.0': {}
+
+ '@tailwindcss/forms@0.5.11(tailwindcss@3.4.19)':
+ dependencies:
+ mini-svg-data-uri: 1.4.4
+ tailwindcss: 3.4.19
+
+ '@tailwindcss/node@4.3.3':
+ dependencies:
+ '@jridgewell/remapping': 2.3.5
+ enhanced-resolve: 5.26.0
+ jiti: 2.7.0
+ lightningcss: 1.32.0
+ magic-string: 0.30.21
+ source-map-js: 1.2.2
+ tailwindcss: 4.3.3
+
+ '@tailwindcss/oxide-android-arm64@4.3.3':
+ optional: true
+
+ '@tailwindcss/oxide-darwin-arm64@4.3.3':
+ optional: true
+
+ '@tailwindcss/oxide-darwin-x64@4.3.3':
+ optional: true
+
+ '@tailwindcss/oxide-freebsd-x64@4.3.3':
+ optional: true
+
+ '@tailwindcss/oxide-linux-arm-gnueabihf@4.3.3':
+ optional: true
+
+ '@tailwindcss/oxide-linux-arm64-gnu@4.3.3':
+ optional: true
+
+ '@tailwindcss/oxide-linux-arm64-musl@4.3.3':
+ optional: true
+
+ '@tailwindcss/oxide-linux-x64-gnu@4.3.3':
+ optional: true
+
+ '@tailwindcss/oxide-linux-x64-musl@4.3.3':
+ optional: true
+
+ '@tailwindcss/oxide-wasm32-wasi@4.3.3':
+ optional: true
+
+ '@tailwindcss/oxide-win32-arm64-msvc@4.3.3':
+ optional: true
+
+ '@tailwindcss/oxide-win32-x64-msvc@4.3.3':
+ optional: true
+
+ '@tailwindcss/oxide@4.3.3':
+ optionalDependencies:
+ '@tailwindcss/oxide-android-arm64': 4.3.3
+ '@tailwindcss/oxide-darwin-arm64': 4.3.3
+ '@tailwindcss/oxide-darwin-x64': 4.3.3
+ '@tailwindcss/oxide-freebsd-x64': 4.3.3
+ '@tailwindcss/oxide-linux-arm-gnueabihf': 4.3.3
+ '@tailwindcss/oxide-linux-arm64-gnu': 4.3.3
+ '@tailwindcss/oxide-linux-arm64-musl': 4.3.3
+ '@tailwindcss/oxide-linux-x64-gnu': 4.3.3
+ '@tailwindcss/oxide-linux-x64-musl': 4.3.3
+ '@tailwindcss/oxide-wasm32-wasi': 4.3.3
+ '@tailwindcss/oxide-win32-arm64-msvc': 4.3.3
+ '@tailwindcss/oxide-win32-x64-msvc': 4.3.3
+
+ '@tailwindcss/vite@4.3.3(@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))':
+ dependencies:
+ '@tailwindcss/node': 4.3.3
+ '@tailwindcss/oxide': 4.3.3
+ tailwindcss: 4.3.3
+ vite: '@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)'
+
+ '@testing-library/dom@10.4.2':
+ dependencies:
+ '@babel/code-frame': 7.29.7
+ '@babel/runtime': 7.29.10
+ '@types/aria-query': 5.0.4
+ aria-query: 5.3.0
+ dom-accessibility-api: 0.5.16
+ lz-string: 1.5.0
+ picocolors: 1.1.1
+ pretty-format: 27.5.1
+
+ '@testing-library/user-event@14.6.8(@testing-library/dom@10.4.2)':
+ dependencies:
+ '@testing-library/dom': 10.4.2
+
+ '@types/aria-query@5.0.4': {}
+
+ '@types/chai@5.2.3':
+ dependencies:
+ '@types/deep-eql': 4.0.2
+ assertion-error: 2.0.1
+
+ '@types/deep-eql@4.0.2': {}
+
+ '@types/estree@1.0.9': {}
+
+ '@types/hast@3.0.5':
+ dependencies:
+ '@types/unist': 3.0.3
+
+ '@types/mdast@4.0.4':
+ dependencies:
+ '@types/unist': 3.0.3
+
+ '@types/node@22.20.5':
+ dependencies:
+ undici-types: 6.21.0
+
+ '@types/unist@3.0.3': {}
+
+ '@types/whatwg-mimetype@3.0.2': {}
+
+ '@types/ws@8.18.2':
+ dependencies:
+ '@types/node': 22.20.5
+
+ '@typescript/typescript-aix-ppc64@7.0.2':
+ optional: true
+
+ '@typescript/typescript-darwin-arm64@7.0.2':
+ optional: true
+
+ '@typescript/typescript-darwin-x64@7.0.2':
+ optional: true
+
+ '@typescript/typescript-freebsd-arm64@7.0.2':
+ optional: true
+
+ '@typescript/typescript-freebsd-x64@7.0.2':
+ optional: true
+
+ '@typescript/typescript-linux-arm64@7.0.2':
+ optional: true
+
+ '@typescript/typescript-linux-arm@7.0.2':
+ optional: true
+
+ '@typescript/typescript-linux-loong64@7.0.2':
+ optional: true
+
+ '@typescript/typescript-linux-mips64el@7.0.2':
+ optional: true
+
+ '@typescript/typescript-linux-ppc64@7.0.2':
+ optional: true
+
+ '@typescript/typescript-linux-riscv64@7.0.2':
+ optional: true
+
+ '@typescript/typescript-linux-s390x@7.0.2':
+ optional: true
+
+ '@typescript/typescript-linux-x64@7.0.2':
+ optional: true
+
+ '@typescript/typescript-netbsd-arm64@7.0.2':
+ optional: true
+
+ '@typescript/typescript-netbsd-x64@7.0.2':
+ optional: true
+
+ '@typescript/typescript-openbsd-arm64@7.0.2':
+ optional: true
+
+ '@typescript/typescript-openbsd-x64@7.0.2':
+ optional: true
+
+ '@typescript/typescript-sunos-x64@7.0.2':
+ optional: true
+
+ '@typescript/typescript-win32-arm64@7.0.2':
+ optional: true
+
+ '@typescript/typescript-win32-x64@7.0.2':
+ optional: true
+
+ '@ungap/structured-clone@1.4.0': {}
+
+ '@vitejs/plugin-react@6.1.2(@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))':
+ dependencies:
+ '@rolldown/pluginutils': 1.0.1
+ vite: '@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)'
+
+ '@vitejs/plugin-vue@6.0.10(@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(vue@3.5.44(typescript@7.0.2))':
+ dependencies:
+ '@rolldown/pluginutils': 1.0.1
+ vite: '@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)'
+ vue: 3.5.44(typescript@7.0.2)
+
+ '@vitest/browser-preview@5.0.5(@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(vitest@5.0.5)':
+ dependencies:
+ '@testing-library/dom': 10.4.2
+ '@testing-library/user-event': 14.6.8(@testing-library/dom@10.4.2)
+ '@vitest/browser': 5.0.5(@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(vitest@5.0.5)
+ vitest: 5.0.5(@types/node@22.20.5)(@vitest/browser-preview@5.0.5)(@vitest/ui@5.0.5)(@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(happy-dom@21.0.4)(jsdom@30.1.3)
+ transitivePeerDependencies:
+ - bufferutil
+ - msw
+ - utf-8-validate
+ - vite
+
+ '@vitest/browser-preview@5.0.5(@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(vitest@5.0.5)':
+ dependencies:
+ '@testing-library/dom': 10.4.2
+ '@testing-library/user-event': 14.6.8(@testing-library/dom@10.4.2)
+ '@vitest/browser': 5.0.5(@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(vitest@5.0.5)
+ vitest: 5.0.5(@types/node@22.20.5)(@vitest/browser-preview@5.0.5)(@vitest/ui@5.0.5)(@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(happy-dom@21.0.4)(jsdom@30.1.3)
+ transitivePeerDependencies:
+ - bufferutil
+ - msw
+ - utf-8-validate
+ - vite
+
+ '@vitest/browser@5.0.5(@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(vitest@5.0.5)':
+ dependencies:
+ '@blazediff/core': 1.10.0
+ '@vitest/mocker': 5.0.5(@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))
+ '@vitest/ui': 5.0.5(vitest@5.0.5)
+ '@vitest/utils': 5.0.5
+ magic-string: 1.4.3
+ pngjs: 7.0.0
+ sirv: 3.0.2
+ tinyrainbow: 3.2.0
+ vitest: 5.0.5(@types/node@22.20.5)(@vitest/browser-preview@5.0.5)(@vitest/ui@5.0.5)(@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(happy-dom@21.0.4)(jsdom@30.1.3)
+ ws: 8.22.0
+ transitivePeerDependencies:
+ - bufferutil
+ - msw
+ - utf-8-validate
+ - vite
+
+ '@vitest/browser@5.0.5(@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(vitest@5.0.5)':
+ dependencies:
+ '@blazediff/core': 1.10.0
+ '@vitest/mocker': 5.0.5(@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))
+ '@vitest/ui': 5.0.5(vitest@5.0.5)
+ '@vitest/utils': 5.0.5
+ magic-string: 1.4.3
+ pngjs: 7.0.0
+ sirv: 3.0.2
+ tinyrainbow: 3.2.0
+ vitest: 5.0.5(@types/node@22.20.5)(@vitest/browser-preview@5.0.5)(@vitest/ui@5.0.5)(@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(happy-dom@21.0.4)(jsdom@30.1.3)
+ ws: 8.22.0
+ transitivePeerDependencies:
+ - bufferutil
+ - msw
+ - utf-8-validate
+ - vite
+
+ '@vitest/mocker@5.0.5(@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))':
+ dependencies:
+ '@jridgewell/trace-mapping': 0.3.31
+ '@vitest/spy': 5.0.5
+ estree-walker: 3.0.3
+ magic-string: 1.4.3
+ optionalDependencies:
+ vite: '@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)'
+
+ '@vitest/mocker@5.0.5(@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))':
+ dependencies:
+ '@jridgewell/trace-mapping': 0.3.31
+ '@vitest/spy': 5.0.5
+ estree-walker: 3.0.3
+ magic-string: 1.4.3
+ optionalDependencies:
+ vite: '@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)'
+
+ '@vitest/pretty-format@5.0.5':
+ dependencies:
+ tinyrainbow: 3.2.0
+
+ '@vitest/snapshot@5.0.5':
+ dependencies:
+ '@vitest/pretty-format': 5.0.5
+ '@vitest/utils': 5.0.5
+ magic-string: 1.4.3
+ pathe: 2.0.3
+
+ '@vitest/spy@5.0.5': {}
+
+ '@vitest/ui@5.0.5(vitest@5.0.5)':
+ dependencies:
+ '@vitest/utils': 5.0.5
+ fflate: 0.8.3
+ flatted: 3.4.4
+ pathe: 2.0.3
+ sirv: 3.0.2
+ tinyrainbow: 3.2.0
+ vitest: 5.0.5(@types/node@22.20.5)(@vitest/browser-preview@5.0.5)(@vitest/ui@5.0.5)(@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(happy-dom@21.0.4)(jsdom@30.1.3)
+
+ '@vitest/utils@5.0.5':
+ dependencies:
+ '@vitest/pretty-format': 5.0.5
+ convert-source-map: 2.0.0
+ tinyrainbow: 3.2.0
+
+ '@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)':
+ dependencies:
+ '@oxc-project/runtime': 0.154.0
+ '@oxc-project/types': 0.154.0
+ lightningcss: 1.33.0
+ postcss: 8.5.31
+ yuku-parser: 0.19.0
+ optionalDependencies:
+ '@types/node': 22.20.5
+ '@voidzero-dev/vite-plus-darwin-arm64': 1.3.0
+ '@voidzero-dev/vite-plus-darwin-x64': 1.3.0
+ '@voidzero-dev/vite-plus-linux-arm64-gnu': 1.3.0
+ '@voidzero-dev/vite-plus-linux-arm64-musl': 1.3.0
+ '@voidzero-dev/vite-plus-linux-x64-gnu': 1.3.0
+ '@voidzero-dev/vite-plus-linux-x64-musl': 1.3.0
+ '@voidzero-dev/vite-plus-win32-arm64-msvc': 1.3.0
+ '@voidzero-dev/vite-plus-win32-x64-msvc': 1.3.0
+ fsevents: 2.3.3
+ jiti: 1.21.7
+ sass: 1.106.0
+ terser: 5.51.2
+ typescript: 7.0.2
+
+ '@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)':
+ dependencies:
+ '@oxc-project/runtime': 0.154.0
+ '@oxc-project/types': 0.154.0
+ lightningcss: 1.33.0
+ postcss: 8.5.31
+ yuku-parser: 0.19.0
+ optionalDependencies:
+ '@types/node': 22.20.5
+ '@voidzero-dev/vite-plus-darwin-arm64': 1.3.0
+ '@voidzero-dev/vite-plus-darwin-x64': 1.3.0
+ '@voidzero-dev/vite-plus-linux-arm64-gnu': 1.3.0
+ '@voidzero-dev/vite-plus-linux-arm64-musl': 1.3.0
+ '@voidzero-dev/vite-plus-linux-x64-gnu': 1.3.0
+ '@voidzero-dev/vite-plus-linux-x64-musl': 1.3.0
+ '@voidzero-dev/vite-plus-win32-arm64-msvc': 1.3.0
+ '@voidzero-dev/vite-plus-win32-x64-msvc': 1.3.0
+ fsevents: 2.3.3
+ jiti: 2.7.0
+ sass: 1.106.0
+ terser: 5.51.2
+ typescript: 7.0.2
+
+ '@voidzero-dev/vite-plus-darwin-arm64@1.3.0':
+ optional: true
+
+ '@voidzero-dev/vite-plus-darwin-x64@1.3.0':
+ optional: true
+
+ '@voidzero-dev/vite-plus-linux-arm64-gnu@1.3.0':
+ optional: true
+
+ '@voidzero-dev/vite-plus-linux-arm64-musl@1.3.0':
+ optional: true
+
+ '@voidzero-dev/vite-plus-linux-x64-gnu@1.3.0':
+ optional: true
+
+ '@voidzero-dev/vite-plus-linux-x64-musl@1.3.0':
+ optional: true
+
+ '@voidzero-dev/vite-plus-win32-arm64-msvc@1.3.0':
+ optional: true
+
+ '@voidzero-dev/vite-plus-win32-x64-msvc@1.3.0':
+ optional: true
+
+ '@vue/compiler-core@3.5.44':
+ dependencies:
+ '@babel/parser': 7.29.9
+ '@vue/shared': 3.5.44
+ entities: 7.0.1
+ estree-walker: 2.0.2
+ source-map-js: 1.2.2
+
+ '@vue/compiler-dom@3.5.44':
+ dependencies:
+ '@vue/compiler-core': 3.5.44
+ '@vue/shared': 3.5.44
+
+ '@vue/compiler-sfc@3.5.44':
+ dependencies:
+ '@babel/parser': 7.29.9
+ '@vue/compiler-core': 3.5.44
+ '@vue/compiler-dom': 3.5.44
+ '@vue/compiler-ssr': 3.5.44
+ '@vue/shared': 3.5.44
+ estree-walker: 2.0.2
+ magic-string: 0.30.21
+ postcss: 8.5.31
+ source-map-js: 1.2.2
+
+ '@vue/compiler-ssr@3.5.44':
+ dependencies:
+ '@vue/compiler-dom': 3.5.44
+ '@vue/shared': 3.5.44
+
+ '@vue/devtools-api@6.6.4': {}
+
+ '@vue/reactivity@3.5.44':
+ dependencies:
+ '@vue/shared': 3.5.44
+
+ '@vue/runtime-core@3.5.44':
+ dependencies:
+ '@vue/reactivity': 3.5.44
+ '@vue/shared': 3.5.44
+
+ '@vue/runtime-dom@3.5.44':
+ dependencies:
+ '@vue/reactivity': 3.5.44
+ '@vue/runtime-core': 3.5.44
+ '@vue/shared': 3.5.44
+ csstype: 3.2.3
+
+ '@vue/server-renderer@3.5.44':
+ dependencies:
+ '@vue/compiler-ssr': 3.5.44
+ '@vue/runtime-dom': 3.5.44
+ '@vue/shared': 3.5.44
+
+ '@vue/shared@3.5.44': {}
+
+ '@vue/test-utils@2.5.1(@vue/compiler-dom@3.5.44)(@vue/server-renderer@3.5.44)(vue@3.5.44(typescript@7.0.2))':
+ dependencies:
+ '@vue/compiler-dom': 3.5.44
+ js-beautify: 2.0.3
+ vue: 3.5.44(typescript@7.0.2)
+ vue-component-type-helpers: 3.3.13
+ optionalDependencies:
+ '@vue/server-renderer': 3.5.44
+
+ '@yuku-core/binding-android-arm64@0.19.0':
+ optional: true
+
+ '@yuku-core/binding-darwin-arm64@0.19.0':
+ optional: true
+
+ '@yuku-core/binding-darwin-x64@0.19.0':
+ optional: true
+
+ '@yuku-core/binding-freebsd-x64@0.19.0':
+ optional: true
+
+ '@yuku-core/binding-linux-arm-gnu@0.19.0':
+ optional: true
+
+ '@yuku-core/binding-linux-arm-musl@0.19.0':
+ optional: true
+
+ '@yuku-core/binding-linux-arm64-gnu@0.19.0':
+ optional: true
+
+ '@yuku-core/binding-linux-arm64-musl@0.19.0':
+ optional: true
+
+ '@yuku-core/binding-linux-x64-gnu@0.19.0':
+ optional: true
+
+ '@yuku-core/binding-linux-x64-musl@0.19.0':
+ optional: true
+
+ '@yuku-core/binding-win32-arm64@0.19.0':
+ optional: true
+
+ '@yuku-core/binding-win32-x64@0.19.0':
+ optional: true
+
+ '@yuku-toolchain/types@0.19.0': {}
+
+ abbrev@5.0.0: {}
+
+ acorn@8.19.0: {}
+
+ agent-base@6.0.2:
+ dependencies:
+ debug: 4.4.3
+ transitivePeerDependencies:
+ - supports-color
+
+ alpinejs@3.17.5:
+ dependencies:
+ '@vue/reactivity': 3.5.44
+
+ ansi-regex@5.0.1: {}
+
+ ansi-styles@5.2.0: {}
+
+ any-promise@1.3.0: {}
+
+ anymatch@3.1.3:
+ dependencies:
+ normalize-path: 3.0.0
+ picomatch: 2.3.2
+
+ arg@5.0.2: {}
+
+ argparse@2.0.1: {}
+
+ aria-hidden@1.2.6:
+ dependencies:
+ tslib: 2.8.1
+
+ aria-query@5.3.0:
+ dependencies:
+ dequal: 2.0.3
+
+ assertion-error@2.0.1: {}
+
+ asynckit@0.4.0: {}
+
+ autoprefixer@10.6.1(postcss@8.5.31):
+ dependencies:
+ browserslist: 4.29.4
+ caniuse-lite: 1.0.30001818
+ fraction.js: 5.3.4
+ picocolors: 1.1.1
+ postcss: 8.5.31
+ postcss-value-parser: 4.2.0
+
+ axios@1.20.0(debug@4.4.3):
+ dependencies:
+ follow-redirects: 1.16.1(debug@4.4.3)
+ form-data: 4.0.6
+ https-proxy-agent: 5.0.1
+ proxy-from-env: 2.1.0
+ transitivePeerDependencies:
+ - debug
+ - supports-color
+
+ balanced-match@4.0.4: {}
+
+ baseline-browser-mapping@2.11.30: {}
+
+ bidi-js@1.1.0:
+ dependencies:
+ require-from-string: 2.0.2
+
+ binary-extensions@2.3.0: {}
+
+ bootstrap@5.3.8(@popperjs/core@2.11.8):
+ dependencies:
+ '@popperjs/core': 2.11.8
+
+ brace-expansion@5.0.12:
+ dependencies:
+ balanced-match: 4.0.4
+
+ braces@3.0.3:
+ dependencies:
+ fill-range: 7.1.1
+
+ browserslist@4.29.4:
+ dependencies:
+ baseline-browser-mapping: 2.11.30
+ caniuse-lite: 1.0.30001818
+ electron-to-chromium: 1.5.463
+ node-releases: 2.0.59
+ update-browserslist-db: 1.3.4(browserslist@4.29.4)
+
+ buffer-from@1.1.2: {}
+
+ buffer-image-size@0.6.4:
+ dependencies:
+ '@types/node': 22.20.5
+
+ call-bind-apply-helpers@1.0.2:
+ dependencies:
+ es-errors: 1.3.0
+ function-bind: 1.1.2
+
+ camelcase-css@2.0.1: {}
+
+ caniuse-lite@1.0.30001818: {}
+
+ ccount@2.0.1: {}
+
+ chai@6.3.0: {}
+
+ character-entities-html4@2.1.0: {}
+
+ character-entities-legacy@3.0.0: {}
+
+ chart.js@2.9.4:
+ dependencies:
+ chartjs-color: 2.4.1
+ moment: 2.31.0
+
+ chartjs-color-string@0.6.0:
+ dependencies:
+ color-name: 1.1.4
+
+ chartjs-color@2.4.1:
+ dependencies:
+ chartjs-color-string: 0.6.0
+ color-convert: 1.9.3
+
+ chokidar@3.6.0:
+ dependencies:
+ anymatch: 3.1.3
+ braces: 3.0.3
+ glob-parent: 5.1.2
+ is-binary-path: 2.1.0
+ is-glob: 4.0.3
+ normalize-path: 3.0.0
+ readdirp: 3.6.0
+ optionalDependencies:
+ fsevents: 2.3.3
+
+ chokidar@5.0.0:
+ dependencies:
+ readdirp: 5.1.1
+
+ class-variance-authority@0.7.1:
+ dependencies:
+ clsx: 2.1.1
+
+ clsx@2.1.1: {}
+
+ color-convert@1.9.3:
+ dependencies:
+ color-name: 1.1.3
+
+ color-name@1.1.3: {}
+
+ color-name@1.1.4: {}
+
+ combined-stream@1.0.8:
+ dependencies:
+ delayed-stream: 1.0.0
+
+ comma-separated-tokens@2.0.3: {}
+
+ commander@14.0.3: {}
+
+ commander@2.20.3: {}
+
+ commander@4.1.1: {}
+
+ config-chain@1.1.13:
+ dependencies:
+ ini: 1.3.8
+ proto-list: 1.2.4
+
+ convert-source-map@2.0.0: {}
+
+ copy-to-clipboard@3.3.3:
+ dependencies:
+ toggle-selection: 1.0.6
+
+ css-tree@3.2.1:
+ dependencies:
+ mdn-data: 2.27.1
+ source-map-js: 1.2.2
+
+ cssesc@3.0.0: {}
+
+ csstype@3.2.3: {}
+
+ data-urls@8.0.0:
+ dependencies:
+ whatwg-mimetype: 5.0.0
+ whatwg-url: 17.3.0
+ transitivePeerDependencies:
+ - '@noble/hashes'
+
+ debug@4.4.3:
+ dependencies:
+ ms: 2.1.3
+
+ decimal.js@10.6.0: {}
+
+ delayed-stream@1.0.0: {}
+
+ dequal@2.0.3: {}
+
+ detect-libc@2.1.2: {}
+
+ detect-node-es@1.1.0: {}
+
+ devlop@1.1.0:
+ dependencies:
+ dequal: 2.0.3
+
+ didyoumean@1.2.2: {}
+
+ discontinuous-range@1.0.0: {}
+
+ dlv@1.1.3: {}
+
+ dom-accessibility-api@0.5.16: {}
+
+ dunder-proto@1.0.1:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-errors: 1.3.0
+ gopd: 1.2.0
+
+ editorconfig@3.0.2:
+ dependencies:
+ '@one-ini/wasm': 0.2.1
+ commander: 14.0.3
+ minimatch: 10.2.6
+ semver: 7.8.5
+
+ electron-to-chromium@1.5.463: {}
+
+ enhanced-resolve@5.26.0:
+ dependencies:
+ graceful-fs: 4.2.11
+ tapable: 2.3.3
+
+ entities@7.0.1: {}
+
+ entities@8.1.0: {}
+
+ es-define-property@1.0.1: {}
+
+ es-errors@1.3.0: {}
+
+ es-module-lexer@2.3.2: {}
+
+ es-object-atoms@1.1.2:
+ dependencies:
+ es-errors: 1.3.0
+
+ es-set-tostringtag@2.1.0:
+ dependencies:
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+ has-tostringtag: 1.0.2
+ hasown: 2.0.4
+
+ escalade@3.2.0: {}
+
+ estree-walker@2.0.2: {}
+
+ estree-walker@3.0.3:
+ dependencies:
+ '@types/estree': 1.0.9
+
+ expect-type@1.4.0: {}
+
+ fast-glob@3.3.3:
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ '@nodelib/fs.walk': 1.2.8
+ glob-parent: 5.1.2
+ merge2: 1.4.1
+ micromatch: 4.0.8
+
+ fastq@1.20.3:
+ dependencies:
+ reusify: 1.1.0
+
+ fdir@6.5.0(picomatch@4.0.7):
+ optionalDependencies:
+ picomatch: 4.0.7
+
+ fflate@0.8.3: {}
+
+ fill-range@7.1.1:
+ dependencies:
+ to-regex-range: 5.0.1
+
+ flatted@3.4.4: {}
+
+ follow-redirects@1.16.1(debug@4.4.3):
+ optionalDependencies:
+ debug: 4.4.3
+
+ form-data@4.0.6:
+ dependencies:
+ asynckit: 0.4.0
+ combined-stream: 1.0.8
+ es-set-tostringtag: 2.1.0
+ hasown: 2.0.4
+ mime-types: 2.1.35
+
+ fraction.js@5.3.4: {}
+
+ fsevents@2.3.3:
+ optional: true
+
+ function-bind@1.1.2: {}
+
+ get-intrinsic@1.3.0:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-define-property: 1.0.1
+ es-errors: 1.3.0
+ es-object-atoms: 1.1.2
+ function-bind: 1.1.2
+ get-proto: 1.0.1
+ gopd: 1.2.0
+ has-symbols: 1.1.0
+ hasown: 2.0.4
+ math-intrinsics: 1.1.0
+
+ get-nonce@1.0.1: {}
+
+ get-proto@1.0.1:
+ dependencies:
+ dunder-proto: 1.0.1
+ es-object-atoms: 1.1.2
+
+ glob-parent@5.1.2:
+ dependencies:
+ is-glob: 4.0.3
+
+ glob-parent@6.0.2:
+ dependencies:
+ is-glob: 4.0.3
+
+ glob@13.0.6:
+ dependencies:
+ minimatch: 10.2.6
+ minipass: 7.1.3
+ path-scurry: 2.0.2
+
+ gopd@1.2.0: {}
+
+ graceful-fs@4.2.11: {}
+
+ happy-dom@21.0.4:
+ dependencies:
+ '@types/node': 22.20.5
+ '@types/whatwg-mimetype': 3.0.2
+ '@types/ws': 8.18.2
+ buffer-image-size: 0.6.4
+ entities: 7.0.1
+ whatwg-mimetype: 3.0.0
+ ws: 8.22.0
+ transitivePeerDependencies:
+ - bufferutil
+ - utf-8-validate
- picocolors@1.1.1:
- resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
+ has-symbols@1.1.0: {}
- picomatch@4.0.7:
- resolution: {integrity: sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==}
- engines: {node: '>=12'}
+ has-tostringtag@1.0.2:
+ dependencies:
+ has-symbols: 1.1.0
- postcss@8.5.29:
- resolution: {integrity: sha512-49cGhUbXj8Qenv0iTMxA1cFBzxXoctpC9Ujd77t1WcbJIr6nF/eI7g/8MgxrYldFRuAXvja7xQRwavoW7kgrxQ==}
- engines: {node: ^10 || ^12 || >=14}
+ hasown@2.0.4:
+ dependencies:
+ function-bind: 1.1.2
- rolldown@1.2.12:
- resolution: {integrity: sha512-8wafseiaG80xmXSfqidUNqZcylTlhmPZZt+za2m+js2sFZ8dTNlhIOV2WcbIPx2hgwPBJpEUGFAMZ9bgBBLTSQ==}
- engines: {node: ^20.19.0 || >=22.12.0}
- hasBin: true
+ hast-util-to-html@9.0.5:
+ dependencies:
+ '@types/hast': 3.0.5
+ '@types/unist': 3.0.3
+ ccount: 2.0.1
+ comma-separated-tokens: 2.0.3
+ hast-util-whitespace: 3.0.0
+ html-void-elements: 3.0.0
+ mdast-util-to-hast: 13.2.1
+ property-information: 7.2.0
+ space-separated-tokens: 2.0.2
+ stringify-entities: 4.0.4
+ zwitch: 2.0.4
+
+ hast-util-whitespace@3.0.0:
+ dependencies:
+ '@types/hast': 3.0.5
- source-map-js@1.2.2:
- resolution: {integrity: sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw==}
- engines: {node: '>=0.10.0'}
+ highlight.js@11.12.0: {}
- source-map-support@0.5.21:
- resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
+ html-encoding-sniffer@7.0.0:
+ dependencies:
+ '@exodus/bytes': 1.16.0
+ transitivePeerDependencies:
+ - '@noble/hashes'
- source-map@0.6.1:
- resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
- engines: {node: '>=0.10.0'}
+ html-void-elements@3.0.0: {}
- std-env@4.3.0:
- resolution: {integrity: sha512-OtU/EgQ1kIm5KwqQpBC6ZEMXrZRui11w8zgfTWp8cdO9B8OaPsbA8bTHO2P+HNo1VlUTGMVBwPhydu6poeXiag==}
+ https-proxy-agent@5.0.1:
+ dependencies:
+ agent-base: 6.0.2
+ debug: 4.4.3
+ transitivePeerDependencies:
+ - supports-color
- terser@5.51.2:
- resolution: {integrity: sha512-bWnjSNscmuI+GJze6ZupnHP8G/cTcsJF+bXCeQknk2SHQsgbNJnLrqiH9jZ2W4STPVXH2mDKKRX3iwPhc9Cn/Q==}
- engines: {node: '>=10'}
- hasBin: true
+ immutable@5.1.9: {}
- tinybench@6.2.1:
- resolution: {integrity: sha512-IAbQaPJIIdhVxi0mqy9lez1wEwje0UQf9F1vwtbelEG5Nbgn0nPOxCvU+mNeNS9gyJTAhrHp74CbUaSynQpZcQ==}
- engines: {node: '>=20.0.0'}
+ ini@1.3.8: {}
- tinyexec@1.3.1:
- resolution: {integrity: sha512-GCvB3aoys96IuDFBMcTB46JOR6mdMtAToqwiW8JlWhsoh1mhHi/xn9ss/Dg7N555GiJyEt2qzoG/NHCwM6h1EA==}
- engines: {node: '>=18'}
+ is-binary-path@2.1.0:
+ dependencies:
+ binary-extensions: 2.3.0
- tinyglobby@0.2.17:
- resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==}
- engines: {node: '>=12.0.0'}
+ is-core-module@2.17.0:
+ dependencies:
+ hasown: 2.0.4
- typescript@7.0.2:
- resolution: {integrity: sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==}
- engines: {node: '>=16.20.0'}
- hasBin: true
+ is-extglob@2.1.1: {}
- undici-types@6.21.0:
- resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
+ is-glob@4.0.3:
+ dependencies:
+ is-extglob: 2.1.1
- undici-types@8.9.0:
- resolution: {integrity: sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg==}
+ is-number@7.0.0: {}
- vite@8.3.3:
- resolution: {integrity: sha512-cTAldKPImjg6c+gk48U19POPn3GCBzZwpdsN8ZMEEcbpes+6/wvfqUd0C2y3qYY4wsj8PwgFwrZ/1jBPVttMSg==}
- engines: {node: ^20.19.0 || >=22.12.0}
- hasBin: true
- peerDependencies:
- '@types/node': ^20.19.0 || >=22.12.0
- '@vitejs/devtools': ^0.7.1
- esbuild: ^0.27.0 || ^0.28.0
- jiti: '>=1.21.0'
- less: ^4.0.0
- sass: ^1.70.0
- sass-embedded: ^1.70.0
- stylus: '>=0.54.8'
- sugarss: ^5.0.0
- terser: ^5.16.0
- tsx: ^4.8.1
- yaml: ^2.4.2
- peerDependenciesMeta:
- '@types/node':
- optional: true
- '@vitejs/devtools':
- optional: true
- esbuild:
- optional: true
- jiti:
- optional: true
- less:
- optional: true
- sass:
- optional: true
- sass-embedded:
- optional: true
- stylus:
- optional: true
- sugarss:
- optional: true
- terser:
- optional: true
- tsx:
- optional: true
- yaml:
- optional: true
+ is-potential-custom-element-name@1.0.1: {}
- vitest@5.0.3:
- resolution: {integrity: sha512-xMw97S3rjdtj5dkVat7jCsqWBpvchs3RlpQctUqwJD0KkERk40vz2fJ77lDwW/Vzh/pk18eItYAzkodhSes3jQ==}
- engines: {node: ^22.12.0 || ^24.0.0 || >=26.0.0}
- hasBin: true
- peerDependencies:
- '@edge-runtime/vm': '*'
- '@opentelemetry/api': ^1.9.0
- '@types/node': ^22.0.0 || >=24.0.0
- '@vitest/browser-playwright': 5.0.3
- '@vitest/browser-preview': 5.0.3
- '@vitest/browser-webdriverio': ^5.0.0-beta.5 || >=5.0.0
- '@vitest/coverage-istanbul': 5.0.3
- '@vitest/coverage-v8': 5.0.3
- '@vitest/ui': 5.0.3
- happy-dom: '*'
- jsdom: '*'
- vite: ^6.4.0 || ^7.0.0 || ^8.0.0
- peerDependenciesMeta:
- '@edge-runtime/vm':
- optional: true
- '@opentelemetry/api':
- optional: true
- '@types/node':
- optional: true
- '@vitest/browser-playwright':
- optional: true
- '@vitest/browser-preview':
- optional: true
- '@vitest/browser-webdriverio':
- optional: true
- '@vitest/coverage-istanbul':
- optional: true
- '@vitest/coverage-v8':
- optional: true
- '@vitest/ui':
- optional: true
- happy-dom:
- optional: true
- jsdom:
- optional: true
+ jiti@1.21.7: {}
- whatwg-mimetype@3.0.0:
- resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==}
- engines: {node: '>=12'}
+ jiti@2.7.0: {}
- why-is-node-running@3.2.1:
- resolution: {integrity: sha512-Tb2FUhB4vUsGQlfSquQLYkApkuPAFQXGFzxWKHHumVz2dK+X1RUm/HnID4+TfIGYJ1kTcwOaCk/buYCEJr6YjQ==}
- engines: {node: '>=20.11'}
- hasBin: true
+ js-beautify@2.0.3:
+ dependencies:
+ config-chain: 1.1.13
+ editorconfig: 3.0.2
+ glob: 13.0.6
+ js-cookie: 3.0.8
+ nopt: 10.0.1
- ws@8.22.0:
- resolution: {integrity: sha512-Ydggc987+RO0AnWtZ/7Wq9FtNvcrL1b/RO0ud9mWjUPgDrsAAwQSF51sm2hm1XofbU/4jkpGEsLFsZZxU+1DOg==}
- engines: {node: '>=10.0.0'}
- peerDependencies:
- bufferutil: ^4.0.1
- utf-8-validate: '>=5.0.2'
- peerDependenciesMeta:
- bufferutil:
- optional: true
- utf-8-validate:
- optional: true
+ js-cookie@3.0.8: {}
-snapshots:
+ js-tokens@4.0.0: {}
- '@jridgewell/gen-mapping@0.3.13':
+ jsdom@30.1.3:
dependencies:
- '@jridgewell/sourcemap-codec': 1.6.0
- '@jridgewell/trace-mapping': 0.3.31
+ '@asamuzakjp/css-color': 7.1.7
+ '@asamuzakjp/dom-selector': 10.0.4
+ '@bramus/specificity': 2.4.3
+ '@csstools/css-syntax-patches-for-csstree': 1.1.15(css-tree@3.2.1)
+ '@exodus/bytes': 1.16.0
+ css-tree: 3.2.1
+ data-urls: 8.0.0
+ decimal.js: 10.6.0
+ html-encoding-sniffer: 7.0.0
+ is-potential-custom-element-name: 1.0.1
+ lru-cache: 11.5.3
+ parse5: 8.0.1
+ saxes: 6.0.0
+ tough-cookie: 6.0.2
+ undici: 8.12.3
+ w3c-xmlserializer: 6.0.0
+ webidl-conversions: 8.0.1
+ whatwg-mimetype: 5.0.0
+ whatwg-url: 17.3.0
+ xml-name-validator: 5.0.0
+ transitivePeerDependencies:
+ - '@noble/hashes'
- '@jridgewell/resolve-uri@3.1.2': {}
+ laravel-vite-plugin@3.2.0(@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)):
+ dependencies:
+ picocolors: 1.1.1
+ tinyglobby: 0.2.17
+ vite: '@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)'
+ vite-plugin-full-reload: 1.2.0
- '@jridgewell/source-map@0.3.11':
+ laravel-vite-plugin@3.2.0(@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)):
dependencies:
- '@jridgewell/gen-mapping': 0.3.13
- '@jridgewell/trace-mapping': 0.3.31
+ picocolors: 1.1.1
+ tinyglobby: 0.2.17
+ vite: '@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)'
+ vite-plugin-full-reload: 1.2.0
- '@jridgewell/sourcemap-codec@1.6.0': {}
+ lightningcss-android-arm64@1.32.0:
+ optional: true
- '@jridgewell/trace-mapping@0.3.31':
- dependencies:
- '@jridgewell/resolve-uri': 3.1.2
- '@jridgewell/sourcemap-codec': 1.6.0
+ lightningcss-android-arm64@1.33.0:
+ optional: true
- '@oxc-project/types@0.152.0': {}
+ lightningcss-darwin-arm64@1.32.0:
+ optional: true
- '@rolldown/binding-android-arm-eabi@1.2.12':
+ lightningcss-darwin-arm64@1.33.0:
optional: true
- '@rolldown/binding-android-arm64@1.2.12':
+ lightningcss-darwin-x64@1.32.0:
optional: true
- '@rolldown/binding-darwin-arm64@1.2.12':
+ lightningcss-darwin-x64@1.33.0:
optional: true
- '@rolldown/binding-darwin-x64@1.2.12':
+ lightningcss-freebsd-x64@1.32.0:
optional: true
- '@rolldown/binding-freebsd-x64@1.2.12':
+ lightningcss-freebsd-x64@1.33.0:
optional: true
- '@rolldown/binding-linux-arm-gnueabihf@1.2.12':
+ lightningcss-linux-arm-gnueabihf@1.32.0:
optional: true
- '@rolldown/binding-linux-arm64-gnu@1.2.12':
+ lightningcss-linux-arm-gnueabihf@1.33.0:
optional: true
- '@rolldown/binding-linux-arm64-musl@1.2.12':
+ lightningcss-linux-arm64-gnu@1.32.0:
optional: true
- '@rolldown/binding-linux-ppc64-gnu@1.2.12':
+ lightningcss-linux-arm64-gnu@1.33.0:
optional: true
- '@rolldown/binding-linux-s390x-gnu@1.2.12':
+ lightningcss-linux-arm64-musl@1.32.0:
optional: true
- '@rolldown/binding-linux-x64-gnu@1.2.12':
+ lightningcss-linux-arm64-musl@1.33.0:
optional: true
- '@rolldown/binding-linux-x64-musl@1.2.12':
+ lightningcss-linux-x64-gnu@1.32.0:
optional: true
- '@rolldown/binding-openharmony-arm64@1.2.12':
+ lightningcss-linux-x64-gnu@1.33.0:
optional: true
- '@rolldown/binding-win32-arm64-msvc@1.2.12':
+ lightningcss-linux-x64-musl@1.32.0:
optional: true
- '@rolldown/binding-win32-x64-msvc@1.2.12':
+ lightningcss-linux-x64-musl@1.33.0:
optional: true
- '@rolldown/pluginutils@1.0.1': {}
+ lightningcss-win32-arm64-msvc@1.32.0:
+ optional: true
- '@types/chai@5.2.3':
+ lightningcss-win32-arm64-msvc@1.33.0:
+ optional: true
+
+ lightningcss-win32-x64-msvc@1.32.0:
+ optional: true
+
+ lightningcss-win32-x64-msvc@1.33.0:
+ optional: true
+
+ lightningcss@1.32.0:
dependencies:
- '@types/deep-eql': 4.0.2
- assertion-error: 2.0.1
+ detect-libc: 2.1.2
+ optionalDependencies:
+ lightningcss-android-arm64: 1.32.0
+ lightningcss-darwin-arm64: 1.32.0
+ lightningcss-darwin-x64: 1.32.0
+ lightningcss-freebsd-x64: 1.32.0
+ lightningcss-linux-arm-gnueabihf: 1.32.0
+ lightningcss-linux-arm64-gnu: 1.32.0
+ lightningcss-linux-arm64-musl: 1.32.0
+ lightningcss-linux-x64-gnu: 1.32.0
+ lightningcss-linux-x64-musl: 1.32.0
+ lightningcss-win32-arm64-msvc: 1.32.0
+ lightningcss-win32-x64-msvc: 1.32.0
- '@types/deep-eql@4.0.2': {}
+ lightningcss@1.33.0:
+ dependencies:
+ detect-libc: 2.1.2
+ optionalDependencies:
+ lightningcss-android-arm64: 1.33.0
+ lightningcss-darwin-arm64: 1.33.0
+ lightningcss-darwin-x64: 1.33.0
+ lightningcss-freebsd-x64: 1.33.0
+ lightningcss-linux-arm-gnueabihf: 1.33.0
+ lightningcss-linux-arm64-gnu: 1.33.0
+ lightningcss-linux-arm64-musl: 1.33.0
+ lightningcss-linux-x64-gnu: 1.33.0
+ lightningcss-linux-x64-musl: 1.33.0
+ lightningcss-win32-arm64-msvc: 1.33.0
+ lightningcss-win32-x64-msvc: 1.33.0
- '@types/estree@1.0.9': {}
+ lilconfig@3.1.4: {}
- '@types/node@22.20.5':
+ lines-and-columns@1.2.4: {}
+
+ lodash@4.18.1: {}
+
+ lru-cache@11.5.3: {}
+
+ lucide-react@1.61.0(react@19.3.1):
dependencies:
- undici-types: 6.21.0
+ react: 19.3.1
- '@types/node@26.6.4':
+ lz-string@1.5.0: {}
+
+ magic-string@0.30.21:
dependencies:
- undici-types: 8.9.0
+ '@jridgewell/sourcemap-codec': 1.6.0
- '@types/whatwg-mimetype@3.0.2': {}
+ magic-string@1.4.3:
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.6.0
- '@types/ws@8.18.2':
+ math-intrinsics@1.1.0: {}
+
+ mdast-util-to-hast@13.2.1:
dependencies:
- '@types/node': 26.6.4
+ '@types/hast': 3.0.5
+ '@types/mdast': 4.0.4
+ '@ungap/structured-clone': 1.4.0
+ devlop: 1.1.0
+ micromark-util-sanitize-uri: 2.0.1
+ trim-lines: 3.0.1
+ unist-util-position: 5.0.0
+ unist-util-visit: 5.1.0
+ vfile: 6.0.3
- '@typescript/typescript-aix-ppc64@7.0.2':
- optional: true
+ mdn-data@2.27.1: {}
- '@typescript/typescript-darwin-arm64@7.0.2':
- optional: true
+ merge2@1.4.1: {}
- '@typescript/typescript-darwin-x64@7.0.2':
+ micromark-util-character@2.1.1:
+ dependencies:
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.3
+
+ micromark-util-encode@2.0.1: {}
+
+ micromark-util-sanitize-uri@2.0.1:
+ dependencies:
+ micromark-util-character: 2.1.1
+ micromark-util-encode: 2.0.1
+ micromark-util-symbol: 2.0.1
+
+ micromark-util-symbol@2.0.1: {}
+
+ micromark-util-types@2.0.3: {}
+
+ micromatch@4.0.8:
+ dependencies:
+ braces: 3.0.3
+ picomatch: 2.3.2
+
+ mime-db@1.52.0: {}
+
+ mime-types@2.1.35:
+ dependencies:
+ mime-db: 1.52.0
+
+ mini-svg-data-uri@1.4.4: {}
+
+ minimatch@10.2.6:
+ dependencies:
+ brace-expansion: 5.0.12
+
+ minipass@7.1.3: {}
+
+ moment-timezone@0.5.48:
+ dependencies:
+ moment: 2.31.0
+
+ moment@2.31.0: {}
+
+ moo@0.5.3: {}
+
+ mrmime@2.0.1: {}
+
+ ms@2.1.3: {}
+
+ mz@2.7.0:
+ dependencies:
+ any-promise: 1.3.0
+ object-assign: 4.1.1
+ thenify-all: 1.6.0
+
+ nanoid@3.3.20: {}
+
+ nearley@2.20.1:
+ dependencies:
+ commander: 2.20.3
+ moo: 0.5.3
+ railroad-diagrams: 1.0.0
+ randexp: 0.4.6
+
+ node-addon-api@7.1.1:
optional: true
- '@typescript/typescript-freebsd-arm64@7.0.2':
- optional: true
+ node-releases@2.0.59: {}
+
+ nopt@10.0.1:
+ dependencies:
+ abbrev: 5.0.0
+
+ normalize-path@3.0.0: {}
+
+ object-assign@4.1.1: {}
- '@typescript/typescript-freebsd-x64@7.0.2':
- optional: true
+ object-hash@3.0.0: {}
- '@typescript/typescript-linux-arm64@7.0.2':
- optional: true
+ obug@3.0.0: {}
- '@typescript/typescript-linux-arm@7.0.2':
- optional: true
+ oniguruma-parser@0.12.2: {}
- '@typescript/typescript-linux-loong64@7.0.2':
- optional: true
+ oniguruma-to-es@4.3.6:
+ dependencies:
+ oniguruma-parser: 0.12.2
+ regex: 6.1.0
+ regex-recursion: 6.0.2
- '@typescript/typescript-linux-mips64el@7.0.2':
- optional: true
+ oxfmt@0.73.0(vite-plus@1.3.0(@types/node@22.20.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@1.21.7)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)):
+ dependencies:
+ tinypool: 2.2.0
+ optionalDependencies:
+ '@oxfmt/binding-android-arm-eabi': 0.73.0
+ '@oxfmt/binding-android-arm64': 0.73.0
+ '@oxfmt/binding-darwin-arm64': 0.73.0
+ '@oxfmt/binding-darwin-x64': 0.73.0
+ '@oxfmt/binding-freebsd-x64': 0.73.0
+ '@oxfmt/binding-linux-arm-gnueabihf': 0.73.0
+ '@oxfmt/binding-linux-arm-musleabihf': 0.73.0
+ '@oxfmt/binding-linux-arm64-gnu': 0.73.0
+ '@oxfmt/binding-linux-arm64-musl': 0.73.0
+ '@oxfmt/binding-linux-ppc64-gnu': 0.73.0
+ '@oxfmt/binding-linux-riscv64-gnu': 0.73.0
+ '@oxfmt/binding-linux-riscv64-musl': 0.73.0
+ '@oxfmt/binding-linux-s390x-gnu': 0.73.0
+ '@oxfmt/binding-linux-x64-gnu': 0.73.0
+ '@oxfmt/binding-linux-x64-musl': 0.73.0
+ '@oxfmt/binding-openharmony-arm64': 0.73.0
+ '@oxfmt/binding-win32-arm64-msvc': 0.73.0
+ '@oxfmt/binding-win32-ia32-msvc': 0.73.0
+ '@oxfmt/binding-win32-x64-msvc': 0.73.0
+ vite-plus: 1.3.0(@types/node@22.20.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@1.21.7)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)
+
+ oxfmt@0.73.0(vite-plus@1.3.0(@types/node@22.20.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)):
+ dependencies:
+ tinypool: 2.2.0
+ optionalDependencies:
+ '@oxfmt/binding-android-arm-eabi': 0.73.0
+ '@oxfmt/binding-android-arm64': 0.73.0
+ '@oxfmt/binding-darwin-arm64': 0.73.0
+ '@oxfmt/binding-darwin-x64': 0.73.0
+ '@oxfmt/binding-freebsd-x64': 0.73.0
+ '@oxfmt/binding-linux-arm-gnueabihf': 0.73.0
+ '@oxfmt/binding-linux-arm-musleabihf': 0.73.0
+ '@oxfmt/binding-linux-arm64-gnu': 0.73.0
+ '@oxfmt/binding-linux-arm64-musl': 0.73.0
+ '@oxfmt/binding-linux-ppc64-gnu': 0.73.0
+ '@oxfmt/binding-linux-riscv64-gnu': 0.73.0
+ '@oxfmt/binding-linux-riscv64-musl': 0.73.0
+ '@oxfmt/binding-linux-s390x-gnu': 0.73.0
+ '@oxfmt/binding-linux-x64-gnu': 0.73.0
+ '@oxfmt/binding-linux-x64-musl': 0.73.0
+ '@oxfmt/binding-openharmony-arm64': 0.73.0
+ '@oxfmt/binding-win32-arm64-msvc': 0.73.0
+ '@oxfmt/binding-win32-ia32-msvc': 0.73.0
+ '@oxfmt/binding-win32-x64-msvc': 0.73.0
+ vite-plus: 1.3.0(@types/node@22.20.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)
+
+ oxlint-tsgolint@7.0.2004:
+ optionalDependencies:
+ '@oxlint-tsgolint/darwin-arm64': 7.0.2004
+ '@oxlint-tsgolint/darwin-x64': 7.0.2004
+ '@oxlint-tsgolint/linux-arm64': 7.0.2004
+ '@oxlint-tsgolint/linux-x64': 7.0.2004
+ '@oxlint-tsgolint/win32-arm64': 7.0.2004
+ '@oxlint-tsgolint/win32-x64': 7.0.2004
+
+ oxlint@1.88.0(oxlint-tsgolint@7.0.2004)(vite-plus@1.3.0(@types/node@22.20.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@1.21.7)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)):
+ optionalDependencies:
+ '@oxlint/binding-android-arm-eabi': 1.88.0
+ '@oxlint/binding-android-arm64': 1.88.0
+ '@oxlint/binding-darwin-arm64': 1.88.0
+ '@oxlint/binding-darwin-x64': 1.88.0
+ '@oxlint/binding-freebsd-x64': 1.88.0
+ '@oxlint/binding-linux-arm-gnueabihf': 1.88.0
+ '@oxlint/binding-linux-arm-musleabihf': 1.88.0
+ '@oxlint/binding-linux-arm64-gnu': 1.88.0
+ '@oxlint/binding-linux-arm64-musl': 1.88.0
+ '@oxlint/binding-linux-ppc64-gnu': 1.88.0
+ '@oxlint/binding-linux-riscv64-gnu': 1.88.0
+ '@oxlint/binding-linux-riscv64-musl': 1.88.0
+ '@oxlint/binding-linux-s390x-gnu': 1.88.0
+ '@oxlint/binding-linux-x64-gnu': 1.88.0
+ '@oxlint/binding-linux-x64-musl': 1.88.0
+ '@oxlint/binding-openharmony-arm64': 1.88.0
+ '@oxlint/binding-win32-arm64-msvc': 1.88.0
+ '@oxlint/binding-win32-ia32-msvc': 1.88.0
+ '@oxlint/binding-win32-x64-msvc': 1.88.0
+ oxlint-tsgolint: 7.0.2004
+ vite-plus: 1.3.0(@types/node@22.20.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@1.21.7)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)
+
+ oxlint@1.88.0(oxlint-tsgolint@7.0.2004)(vite-plus@1.3.0(@types/node@22.20.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)):
+ optionalDependencies:
+ '@oxlint/binding-android-arm-eabi': 1.88.0
+ '@oxlint/binding-android-arm64': 1.88.0
+ '@oxlint/binding-darwin-arm64': 1.88.0
+ '@oxlint/binding-darwin-x64': 1.88.0
+ '@oxlint/binding-freebsd-x64': 1.88.0
+ '@oxlint/binding-linux-arm-gnueabihf': 1.88.0
+ '@oxlint/binding-linux-arm-musleabihf': 1.88.0
+ '@oxlint/binding-linux-arm64-gnu': 1.88.0
+ '@oxlint/binding-linux-arm64-musl': 1.88.0
+ '@oxlint/binding-linux-ppc64-gnu': 1.88.0
+ '@oxlint/binding-linux-riscv64-gnu': 1.88.0
+ '@oxlint/binding-linux-riscv64-musl': 1.88.0
+ '@oxlint/binding-linux-s390x-gnu': 1.88.0
+ '@oxlint/binding-linux-x64-gnu': 1.88.0
+ '@oxlint/binding-linux-x64-musl': 1.88.0
+ '@oxlint/binding-openharmony-arm64': 1.88.0
+ '@oxlint/binding-win32-arm64-msvc': 1.88.0
+ '@oxlint/binding-win32-ia32-msvc': 1.88.0
+ '@oxlint/binding-win32-x64-msvc': 1.88.0
+ oxlint-tsgolint: 7.0.2004
+ vite-plus: 1.3.0(@types/node@22.20.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)
+
+ parse5@8.0.1:
+ dependencies:
+ entities: 8.1.0
- '@typescript/typescript-linux-ppc64@7.0.2':
- optional: true
+ path-parse@1.0.7: {}
- '@typescript/typescript-linux-riscv64@7.0.2':
- optional: true
+ path-scurry@2.0.2:
+ dependencies:
+ lru-cache: 11.5.3
+ minipass: 7.1.3
- '@typescript/typescript-linux-s390x@7.0.2':
- optional: true
+ pathe@2.0.3: {}
- '@typescript/typescript-linux-x64@7.0.2':
- optional: true
+ phpunserialize@1.3.0: {}
- '@typescript/typescript-netbsd-arm64@7.0.2':
- optional: true
+ picocolors@1.1.1: {}
- '@typescript/typescript-netbsd-x64@7.0.2':
- optional: true
+ picomatch@2.3.2: {}
- '@typescript/typescript-openbsd-arm64@7.0.2':
- optional: true
+ picomatch@4.0.7: {}
- '@typescript/typescript-openbsd-x64@7.0.2':
- optional: true
+ pirates@4.0.7: {}
- '@typescript/typescript-sunos-x64@7.0.2':
- optional: true
+ pngjs@7.0.0: {}
- '@typescript/typescript-win32-arm64@7.0.2':
- optional: true
+ postcss-import@15.1.0(postcss@8.5.31):
+ dependencies:
+ postcss: 8.5.31
+ postcss-value-parser: 4.2.0
+ read-cache: 1.0.2
+ resolve: 1.22.13
- '@typescript/typescript-win32-x64@7.0.2':
- optional: true
+ postcss-js@4.1.0(postcss@8.5.31):
+ dependencies:
+ camelcase-css: 2.0.1
+ postcss: 8.5.31
- '@vitest/mocker@5.0.3(vite@8.3.3(@types/node@22.20.5)(terser@5.51.2))':
+ postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.31):
dependencies:
- '@jridgewell/trace-mapping': 0.3.31
- '@vitest/spy': 5.0.3
- estree-walker: 3.0.3
- magic-string: 1.4.3
+ lilconfig: 3.1.4
optionalDependencies:
- vite: 8.3.3(@types/node@22.20.5)(terser@5.51.2)
+ jiti: 1.21.7
+ postcss: 8.5.31
- '@vitest/spy@5.0.3': {}
+ postcss-nested@6.2.0(postcss@8.5.31):
+ dependencies:
+ postcss: 8.5.31
+ postcss-selector-parser: 6.1.5
- acorn@8.19.0: {}
+ postcss-selector-parser@6.1.5:
+ dependencies:
+ cssesc: 3.0.0
+ util-deprecate: 1.0.2
- assertion-error@2.0.1: {}
+ postcss-value-parser@4.2.0: {}
- buffer-from@1.1.2: {}
+ postcss@8.5.31:
+ dependencies:
+ nanoid: 3.3.20
+ picocolors: 1.1.1
+ source-map-js: 1.2.2
- buffer-image-size@0.6.4:
+ pretty-format@27.5.1:
dependencies:
- '@types/node': 26.6.4
+ ansi-regex: 5.0.1
+ ansi-styles: 5.2.0
+ react-is: 17.0.2
- chai@6.3.0: {}
+ property-information@7.2.0: {}
- commander@2.20.3: {}
+ proto-list@1.2.4: {}
- detect-libc@2.1.2: {}
+ proxy-from-env@2.1.0: {}
- entities@7.0.1: {}
+ punycode@2.3.1: {}
- es-module-lexer@2.3.2: {}
+ queue-microtask@1.2.3: {}
- estree-walker@3.0.3:
+ radix-ui@1.8.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1):
dependencies:
- '@types/estree': 1.0.9
+ '@radix-ui/primitive': 1.2.0
+ '@radix-ui/react-accessible-icon': 1.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-accordion': 1.3.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-alert-dialog': 1.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-arrow': 1.1.17(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-aspect-ratio': 1.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-avatar': 1.3.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-checkbox': 1.4.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-collapsible': 1.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-collection': 1.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-compose-refs': 1.1.5(react@19.3.1)
+ '@radix-ui/react-context': 1.3.0(react@19.3.1)
+ '@radix-ui/react-context-menu': 2.4.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-dialog': 1.3.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-direction': 1.2.0(react@19.3.1)
+ '@radix-ui/react-dismissable-layer': 1.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-dropdown-menu': 2.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-focus-guards': 1.2.0(react@19.3.1)
+ '@radix-ui/react-focus-scope': 1.3.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-form': 0.3.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-hover-card': 1.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-label': 2.1.17(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-menu': 2.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-menubar': 1.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-navigation-menu': 1.4.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-one-time-password-field': 0.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-password-toggle-field': 0.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-popover': 1.3.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-popper': 1.4.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-portal': 1.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-presence': 1.1.11(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-primitive': 2.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-progress': 1.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-radio-group': 1.5.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-roving-focus': 1.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-scroll-area': 1.4.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-select': 2.4.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-separator': 1.2.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-slider': 1.6.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-slot': 1.5.0(react@19.3.1)
+ '@radix-ui/react-switch': 1.4.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-tabs': 1.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-toast': 1.3.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-toggle': 1.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-toggle-group': 1.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-toolbar': 1.2.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-tooltip': 1.4.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.5(react@19.3.1)
+ '@radix-ui/react-use-controllable-state': 1.3.0(react@19.3.1)
+ '@radix-ui/react-use-effect-event': 0.0.5(react@19.3.1)
+ '@radix-ui/react-use-escape-keydown': 1.1.6(react@19.3.1)
+ '@radix-ui/react-use-is-hydrated': 0.1.3(react@19.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.4(react@19.3.1)
+ '@radix-ui/react-use-size': 1.1.5(react@19.3.1)
+ '@radix-ui/react-visually-hidden': 1.2.13(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
+ react: 19.3.1
+ react-dom: 19.3.1(react@19.3.1)
+
+ railroad-diagrams@1.0.0: {}
+
+ randexp@0.4.6:
+ dependencies:
+ discontinuous-range: 1.0.0
+ ret: 0.1.15
- expect-type@1.4.0: {}
+ react-dom@19.3.1(react@19.3.1):
+ dependencies:
+ react: 19.3.1
+ scheduler: 0.28.0
- fdir@6.5.0(picomatch@4.0.7):
- optionalDependencies:
- picomatch: 4.0.7
+ react-is@17.0.2: {}
- fsevents@2.3.3:
- optional: true
+ react-remove-scroll-bar@2.3.8(react@19.3.1):
+ dependencies:
+ react: 19.3.1
+ react-style-singleton: 2.2.3(react@19.3.1)
+ tslib: 2.8.1
- happy-dom@20.14.5:
+ react-remove-scroll@2.7.2(react@19.3.1):
dependencies:
- '@types/node': 26.6.4
- '@types/whatwg-mimetype': 3.0.2
- '@types/ws': 8.18.2
- buffer-image-size: 0.6.4
- entities: 7.0.1
- whatwg-mimetype: 3.0.0
- ws: 8.22.0
- transitivePeerDependencies:
- - bufferutil
- - utf-8-validate
+ react: 19.3.1
+ react-remove-scroll-bar: 2.3.8(react@19.3.1)
+ react-style-singleton: 2.2.3(react@19.3.1)
+ tslib: 2.8.1
+ use-callback-ref: 1.3.3(react@19.3.1)
+ use-sidecar: 1.1.3(react@19.3.1)
+
+ react-style-singleton@2.2.3(react@19.3.1):
+ dependencies:
+ get-nonce: 1.0.1
+ react: 19.3.1
+ tslib: 2.8.1
- lightningcss-android-arm64@1.33.0:
- optional: true
+ react@19.3.1: {}
- lightningcss-darwin-arm64@1.33.0:
- optional: true
+ read-cache@1.0.2: {}
- lightningcss-darwin-x64@1.33.0:
- optional: true
+ readdirp@3.6.0:
+ dependencies:
+ picomatch: 2.3.2
- lightningcss-freebsd-x64@1.33.0:
- optional: true
+ readdirp@5.1.1: {}
- lightningcss-linux-arm-gnueabihf@1.33.0:
- optional: true
+ regex-recursion@6.0.2:
+ dependencies:
+ regex-utilities: 2.3.0
- lightningcss-linux-arm64-gnu@1.33.0:
- optional: true
+ regex-utilities@2.3.0: {}
- lightningcss-linux-arm64-musl@1.33.0:
- optional: true
+ regex@6.1.0:
+ dependencies:
+ regex-utilities: 2.3.0
- lightningcss-linux-x64-gnu@1.33.0:
- optional: true
+ require-from-string@2.0.2: {}
- lightningcss-linux-x64-musl@1.33.0:
- optional: true
+ resolve@1.22.13:
+ dependencies:
+ es-errors: 1.3.0
+ is-core-module: 2.17.0
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
- lightningcss-win32-arm64-msvc@1.33.0:
- optional: true
+ ret@0.1.15: {}
- lightningcss-win32-x64-msvc@1.33.0:
- optional: true
+ reusify@1.1.0: {}
- lightningcss@1.33.0:
+ run-parallel@1.2.0:
dependencies:
- detect-libc: 2.1.2
- optionalDependencies:
- lightningcss-android-arm64: 1.33.0
- lightningcss-darwin-arm64: 1.33.0
- lightningcss-darwin-x64: 1.33.0
- lightningcss-freebsd-x64: 1.33.0
- lightningcss-linux-arm-gnueabihf: 1.33.0
- lightningcss-linux-arm64-gnu: 1.33.0
- lightningcss-linux-arm64-musl: 1.33.0
- lightningcss-linux-x64-gnu: 1.33.0
- lightningcss-linux-x64-musl: 1.33.0
- lightningcss-win32-arm64-msvc: 1.33.0
- lightningcss-win32-x64-msvc: 1.33.0
+ queue-microtask: 1.2.3
- magic-string@1.4.3:
+ sass@1.106.0:
dependencies:
- '@jridgewell/sourcemap-codec': 1.6.0
-
- nanoid@3.3.20: {}
+ chokidar: 5.0.0
+ immutable: 5.1.9
+ source-map-js: 1.2.2
+ optionalDependencies:
+ '@parcel/watcher': 2.6.0
- obug@2.2.1: {}
+ saxes@6.0.0:
+ dependencies:
+ xmlchars: 2.2.0
- picocolors@1.1.1: {}
+ scheduler@0.28.0: {}
- picomatch@4.0.7: {}
+ semver@7.8.5: {}
- postcss@8.5.29:
+ shiki@3.23.0:
dependencies:
- nanoid: 3.3.20
- picocolors: 1.1.1
- source-map-js: 1.2.2
-
- rolldown@1.2.12:
+ '@shikijs/core': 3.23.0
+ '@shikijs/engine-javascript': 3.23.0
+ '@shikijs/engine-oniguruma': 3.23.0
+ '@shikijs/langs': 3.23.0
+ '@shikijs/themes': 3.23.0
+ '@shikijs/types': 3.23.0
+ '@shikijs/vscode-textmate': 10.1.0
+ '@types/hast': 3.0.5
+
+ sirv@3.0.2:
dependencies:
- '@oxc-project/types': 0.152.0
- '@rolldown/pluginutils': 1.0.1
- optionalDependencies:
- '@rolldown/binding-android-arm-eabi': 1.2.12
- '@rolldown/binding-android-arm64': 1.2.12
- '@rolldown/binding-darwin-arm64': 1.2.12
- '@rolldown/binding-darwin-x64': 1.2.12
- '@rolldown/binding-freebsd-x64': 1.2.12
- '@rolldown/binding-linux-arm-gnueabihf': 1.2.12
- '@rolldown/binding-linux-arm64-gnu': 1.2.12
- '@rolldown/binding-linux-arm64-musl': 1.2.12
- '@rolldown/binding-linux-ppc64-gnu': 1.2.12
- '@rolldown/binding-linux-s390x-gnu': 1.2.12
- '@rolldown/binding-linux-x64-gnu': 1.2.12
- '@rolldown/binding-linux-x64-musl': 1.2.12
- '@rolldown/binding-openharmony-arm64': 1.2.12
- '@rolldown/binding-win32-arm64-msvc': 1.2.12
- '@rolldown/binding-win32-x64-msvc': 1.2.12
+ '@polka/url': 1.0.0-next.29
+ mrmime: 2.0.1
+ totalist: 3.0.1
source-map-js@1.2.2: {}
@@ -1078,8 +5993,66 @@ snapshots:
source-map@0.6.1: {}
+ space-separated-tokens@2.0.2: {}
+
+ sql-formatter@15.9.0:
+ dependencies:
+ argparse: 2.0.1
+ nearley: 2.20.1
+
std-env@4.3.0: {}
+ stringify-entities@4.0.4:
+ dependencies:
+ character-entities-html4: 2.1.0
+ character-entities-legacy: 3.0.0
+
+ sucrase@3.35.1:
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.13
+ commander: 4.1.1
+ lines-and-columns: 1.2.4
+ mz: 2.7.0
+ pirates: 4.0.7
+ tinyglobby: 0.2.17
+ ts-interface-checker: 0.1.13
+
+ supports-preserve-symlinks-flag@1.0.0: {}
+
+ tailwind-merge@3.7.0: {}
+
+ tailwindcss@3.4.19:
+ dependencies:
+ '@alloc/quick-lru': 5.3.0
+ arg: 5.0.2
+ chokidar: 3.6.0
+ didyoumean: 1.2.2
+ dlv: 1.1.3
+ fast-glob: 3.3.3
+ glob-parent: 6.0.2
+ is-glob: 4.0.3
+ jiti: 1.21.7
+ lilconfig: 3.1.4
+ micromatch: 4.0.8
+ normalize-path: 3.0.0
+ object-hash: 3.0.0
+ picocolors: 1.1.1
+ postcss: 8.5.31
+ postcss-import: 15.1.0(postcss@8.5.31)
+ postcss-js: 4.1.0(postcss@8.5.31)
+ postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.31)
+ postcss-nested: 6.2.0(postcss@8.5.31)
+ postcss-selector-parser: 6.1.5
+ resolve: 1.22.13
+ sucrase: 3.35.1
+ transitivePeerDependencies:
+ - tsx
+ - yaml
+
+ tailwindcss@4.3.3: {}
+
+ tapable@2.3.3: {}
+
terser@5.51.2:
dependencies:
'@jridgewell/source-map': 0.3.11
@@ -1087,7 +6060,15 @@ snapshots:
commander: 2.20.3
source-map-support: 0.5.21
- tinybench@6.2.1: {}
+ thenify-all@1.6.0:
+ dependencies:
+ thenify: 3.3.1
+
+ thenify@3.3.1:
+ dependencies:
+ any-promise: 1.3.0
+
+ tinybench@6.2.2: {}
tinyexec@1.3.1: {}
@@ -1096,6 +6077,44 @@ snapshots:
fdir: 6.5.0(picomatch@4.0.7)
picomatch: 4.0.7
+ tinypool@2.2.0: {}
+
+ tinyrainbow@3.2.0: {}
+
+ tippy.js@6.3.7:
+ dependencies:
+ '@popperjs/core': 2.11.8
+
+ tldts-core@7.4.19: {}
+
+ tldts@7.4.19:
+ dependencies:
+ tldts-core: 7.4.19
+
+ to-regex-range@5.0.1:
+ dependencies:
+ is-number: 7.0.0
+
+ toggle-selection@1.0.6: {}
+
+ totalist@3.0.1: {}
+
+ tough-cookie@6.0.2:
+ dependencies:
+ tldts: 7.4.19
+
+ tr46@7.0.0:
+ dependencies:
+ punycode: 2.3.1
+
+ trim-lines@3.0.1: {}
+
+ ts-interface-checker@0.1.13: {}
+
+ tslib@2.8.1: {}
+
+ tw-animate-css@1.4.0: {}
+
typescript@7.0.2:
optionalDependencies:
'@typescript/typescript-aix-ppc64': 7.0.2
@@ -1121,44 +6140,302 @@ snapshots:
undici-types@6.21.0: {}
- undici-types@8.9.0: {}
+ undici@8.12.3: {}
- vite@8.3.3(@types/node@22.20.5)(terser@5.51.2):
+ unist-util-is@6.0.1:
dependencies:
- lightningcss: 1.33.0
+ '@types/unist': 3.0.3
+
+ unist-util-position@5.0.0:
+ dependencies:
+ '@types/unist': 3.0.3
+
+ unist-util-stringify-position@4.0.0:
+ dependencies:
+ '@types/unist': 3.0.3
+
+ unist-util-visit-parents@6.0.2:
+ dependencies:
+ '@types/unist': 3.0.3
+ unist-util-is: 6.0.1
+
+ unist-util-visit@5.1.0:
+ dependencies:
+ '@types/unist': 3.0.3
+ unist-util-is: 6.0.1
+ unist-util-visit-parents: 6.0.2
+
+ update-browserslist-db@1.3.4(browserslist@4.29.4):
+ dependencies:
+ browserslist: 4.29.4
+ escalade: 3.2.0
+ picocolors: 1.1.1
+
+ use-callback-ref@1.3.3(react@19.3.1):
+ dependencies:
+ react: 19.3.1
+ tslib: 2.8.1
+
+ use-sidecar@1.1.3(react@19.3.1):
+ dependencies:
+ detect-node-es: 1.1.0
+ react: 19.3.1
+ tslib: 2.8.1
+
+ util-deprecate@1.0.2: {}
+
+ vfile-message@4.0.3:
+ dependencies:
+ '@types/unist': 3.0.3
+ unist-util-stringify-position: 4.0.0
+
+ vfile@6.0.3:
+ dependencies:
+ '@types/unist': 3.0.3
+ vfile-message: 4.0.3
+
+ vite-plugin-full-reload@1.2.0:
+ dependencies:
+ picocolors: 1.1.1
+ picomatch: 2.3.2
+
+ vite-plus@1.3.0(@types/node@22.20.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@1.21.7)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2):
+ dependencies:
+ '@oxc-project/types': 0.154.0
+ '@oxlint/plugins': 1.88.0
+ '@vitest/browser': 5.0.5(@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(vitest@5.0.5)
+ '@vitest/browser-preview': 5.0.5(@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(vitest@5.0.5)
+ '@vitest/mocker': 5.0.5(@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))
+ '@vitest/pretty-format': 5.0.5
+ '@vitest/snapshot': 5.0.5
+ '@vitest/spy': 5.0.5
+ '@vitest/utils': 5.0.5
+ oxfmt: 0.73.0(vite-plus@1.3.0(@types/node@22.20.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@1.21.7)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))
+ oxlint: 1.88.0(oxlint-tsgolint@7.0.2004)(vite-plus@1.3.0(@types/node@22.20.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@1.21.7)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))
+ oxlint-tsgolint: 7.0.2004
+ vite: '@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)'
+ vitest: 5.0.5(@types/node@22.20.5)(@vitest/browser-preview@5.0.5)(@vitest/ui@5.0.5)(@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(happy-dom@21.0.4)(jsdom@30.1.3)
+ optionalDependencies:
+ '@voidzero-dev/vite-plus-darwin-arm64': 1.3.0
+ '@voidzero-dev/vite-plus-darwin-x64': 1.3.0
+ '@voidzero-dev/vite-plus-linux-arm64-gnu': 1.3.0
+ '@voidzero-dev/vite-plus-linux-arm64-musl': 1.3.0
+ '@voidzero-dev/vite-plus-linux-x64-gnu': 1.3.0
+ '@voidzero-dev/vite-plus-linux-x64-musl': 1.3.0
+ '@voidzero-dev/vite-plus-win32-arm64-msvc': 1.3.0
+ '@voidzero-dev/vite-plus-win32-x64-msvc': 1.3.0
+ transitivePeerDependencies:
+ - '@arethetypeswrong/core'
+ - '@astrojs/compiler-rs'
+ - '@edge-runtime/vm'
+ - '@opentelemetry/api'
+ - '@types/node'
+ - '@typescript/native-preview'
+ - '@vitejs/devtools'
+ - '@vitest/coverage-istanbul'
+ - '@vitest/coverage-v8'
+ - '@vitest/ui'
+ - '@volar/typescript'
+ - '@vue/language-core'
+ - bufferutil
+ - esbuild
+ - happy-dom
+ - jiti
+ - jsdom
+ - less
+ - msw
+ - publint
+ - sass
+ - sass-embedded
+ - stylus
+ - sugarss
+ - svelte
+ - terser
+ - tsx
+ - typescript
+ - unplugin-unused
+ - unrun
+ - utf-8-validate
+ - vue-tsc
+ - yaml
+
+ vite-plus@1.3.0(@types/node@22.20.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2):
+ dependencies:
+ '@oxc-project/types': 0.154.0
+ '@oxlint/plugins': 1.88.0
+ '@vitest/browser': 5.0.5(@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(vitest@5.0.5)
+ '@vitest/browser-preview': 5.0.5(@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(vitest@5.0.5)
+ '@vitest/mocker': 5.0.5(@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))
+ '@vitest/pretty-format': 5.0.5
+ '@vitest/snapshot': 5.0.5
+ '@vitest/spy': 5.0.5
+ '@vitest/utils': 5.0.5
+ oxfmt: 0.73.0(vite-plus@1.3.0(@types/node@22.20.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))
+ oxlint: 1.88.0(oxlint-tsgolint@7.0.2004)(vite-plus@1.3.0(@types/node@22.20.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))
+ oxlint-tsgolint: 7.0.2004
+ vite: '@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)'
+ vitest: 5.0.5(@types/node@22.20.5)(@vitest/browser-preview@5.0.5)(@vitest/ui@5.0.5)(@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(happy-dom@21.0.4)(jsdom@30.1.3)
+ optionalDependencies:
+ '@voidzero-dev/vite-plus-darwin-arm64': 1.3.0
+ '@voidzero-dev/vite-plus-darwin-x64': 1.3.0
+ '@voidzero-dev/vite-plus-linux-arm64-gnu': 1.3.0
+ '@voidzero-dev/vite-plus-linux-arm64-musl': 1.3.0
+ '@voidzero-dev/vite-plus-linux-x64-gnu': 1.3.0
+ '@voidzero-dev/vite-plus-linux-x64-musl': 1.3.0
+ '@voidzero-dev/vite-plus-win32-arm64-msvc': 1.3.0
+ '@voidzero-dev/vite-plus-win32-x64-msvc': 1.3.0
+ transitivePeerDependencies:
+ - '@arethetypeswrong/core'
+ - '@astrojs/compiler-rs'
+ - '@edge-runtime/vm'
+ - '@opentelemetry/api'
+ - '@types/node'
+ - '@typescript/native-preview'
+ - '@vitejs/devtools'
+ - '@vitest/coverage-istanbul'
+ - '@vitest/coverage-v8'
+ - '@vitest/ui'
+ - '@volar/typescript'
+ - '@vue/language-core'
+ - bufferutil
+ - esbuild
+ - happy-dom
+ - jiti
+ - jsdom
+ - less
+ - msw
+ - publint
+ - sass
+ - sass-embedded
+ - stylus
+ - sugarss
+ - svelte
+ - terser
+ - tsx
+ - typescript
+ - unplugin-unused
+ - unrun
+ - utf-8-validate
+ - vue-tsc
+ - yaml
+
+ vitest@5.0.5(@types/node@22.20.5)(@vitest/browser-preview@5.0.5)(@vitest/ui@5.0.5)(@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(happy-dom@21.0.4)(jsdom@30.1.3):
+ dependencies:
+ '@types/chai': 5.2.3
+ '@vitest/mocker': 5.0.5(@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))
+ chai: 6.3.0
+ es-module-lexer: 2.3.2
+ expect-type: 1.4.0
+ magic-string: 1.4.3
+ obug: 3.0.0
picomatch: 4.0.7
- postcss: 8.5.29
- rolldown: 1.2.12
+ std-env: 4.3.0
+ tinybench: 6.2.2
+ tinyexec: 1.3.1
tinyglobby: 0.2.17
+ vite: '@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)'
+ why-is-node-running: 3.2.1
optionalDependencies:
'@types/node': 22.20.5
- fsevents: 2.3.3
- terser: 5.51.2
+ '@vitest/browser-preview': 5.0.5(@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(vitest@5.0.5)
+ '@vitest/ui': 5.0.5(vitest@5.0.5)
+ happy-dom: 21.0.4
+ jsdom: 30.1.3
+ transitivePeerDependencies:
+ - msw
- vitest@5.0.3(@types/node@22.20.5)(happy-dom@20.14.5)(vite@8.3.3(@types/node@22.20.5)(terser@5.51.2)):
+ vitest@5.0.5(@types/node@22.20.5)(@vitest/browser-preview@5.0.5)(@vitest/ui@5.0.5)(@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(happy-dom@21.0.4)(jsdom@30.1.3):
dependencies:
'@types/chai': 5.2.3
- '@vitest/mocker': 5.0.3(vite@8.3.3(@types/node@22.20.5)(terser@5.51.2))
+ '@vitest/mocker': 5.0.5(@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))
chai: 6.3.0
es-module-lexer: 2.3.2
expect-type: 1.4.0
magic-string: 1.4.3
- obug: 2.2.1
+ obug: 3.0.0
picomatch: 4.0.7
std-env: 4.3.0
- tinybench: 6.2.1
+ tinybench: 6.2.2
tinyexec: 1.3.1
tinyglobby: 0.2.17
- vite: 8.3.3(@types/node@22.20.5)(terser@5.51.2)
+ vite: '@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)'
why-is-node-running: 3.2.1
optionalDependencies:
'@types/node': 22.20.5
- happy-dom: 20.14.5
+ '@vitest/browser-preview': 5.0.5(@voidzero-dev/vite-plus-core@1.3.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(vitest@5.0.5)
+ '@vitest/ui': 5.0.5(vitest@5.0.5)
+ happy-dom: 21.0.4
+ jsdom: 30.1.3
transitivePeerDependencies:
- msw
+ vue-component-type-helpers@3.3.13: {}
+
+ vue-json-pretty@2.6.0(vue@3.5.44(typescript@7.0.2)):
+ dependencies:
+ vue: 3.5.44(typescript@7.0.2)
+
+ vue-router@4.6.4(vue@3.5.44(typescript@7.0.2)):
+ dependencies:
+ '@vue/devtools-api': 6.6.4
+ vue: 3.5.44(typescript@7.0.2)
+
+ vue@3.5.44(typescript@7.0.2):
+ dependencies:
+ '@vue/compiler-dom': 3.5.44
+ '@vue/compiler-sfc': 3.5.44
+ '@vue/runtime-dom': 3.5.44
+ '@vue/server-renderer': 3.5.44
+ '@vue/shared': 3.5.44
+ optionalDependencies:
+ typescript: 7.0.2
+
+ w3c-xmlserializer@6.0.0:
+ dependencies:
+ xml-name-validator: 5.0.0
+
+ webidl-conversions@8.0.1: {}
+
whatwg-mimetype@3.0.0: {}
+ whatwg-mimetype@5.0.0: {}
+
+ whatwg-url@17.3.0:
+ dependencies:
+ '@exodus/bytes': 1.16.0
+ tr46: 7.0.0
+ webidl-conversions: 8.0.1
+ transitivePeerDependencies:
+ - '@noble/hashes'
+
why-is-node-running@3.2.1: {}
ws@8.22.0: {}
+
+ xml-name-validator@5.0.0: {}
+
+ xmlchars@2.2.0: {}
+
+ yuku-core@0.19.0:
+ dependencies:
+ '@yuku-toolchain/types': 0.19.0
+ optionalDependencies:
+ '@yuku-core/binding-android-arm64': 0.19.0
+ '@yuku-core/binding-darwin-arm64': 0.19.0
+ '@yuku-core/binding-darwin-x64': 0.19.0
+ '@yuku-core/binding-freebsd-x64': 0.19.0
+ '@yuku-core/binding-linux-arm-gnu': 0.19.0
+ '@yuku-core/binding-linux-arm-musl': 0.19.0
+ '@yuku-core/binding-linux-arm64-gnu': 0.19.0
+ '@yuku-core/binding-linux-arm64-musl': 0.19.0
+ '@yuku-core/binding-linux-x64-gnu': 0.19.0
+ '@yuku-core/binding-linux-x64-musl': 0.19.0
+ '@yuku-core/binding-win32-arm64': 0.19.0
+ '@yuku-core/binding-win32-x64': 0.19.0
+
+ yuku-parser@0.19.0:
+ dependencies:
+ '@yuku-toolchain/types': 0.19.0
+ yuku-core: 0.19.0
+
+ zwitch@2.0.4: {}
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index 13470304b2..9ad013edd8 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -1,15 +1,46 @@
packages:
- 'src/*'
- # Exclude standalone-UI packages that ship their own Vite build
- # chains. They're maintained independently and pulling their
- # deps into the workspace install would bloat `pnpm install` for
- # contributors who only need the TS test infrastructure.
- - '!src/horizon'
- - '!src/telescope'
- - '!src/workbench'
+ - 'src/foundation/resources/exceptions/renderer'
+ - 'dogfood/ai/workbench'
+
+# Vite+ manages the runtime and package manager declared in package.json.
+runtimeOnFail: ignore
+pmOnFail: ignore
+
+allowBuilds:
+ '@parcel/watcher': true
+
+# The core alias exposes the Vite+ version, so Vite-compatible plugins can
+# report a peer version mismatch despite using the bundled Vite runtime.
+# Update both core aliases with the vite-plus catalog pin; match Vitest to `vp toolchain vitest`.
+overrides:
+ 'vite@*': npm:@voidzero-dev/vite-plus-core@1.3.0
+ 'vitest@*': 5.0.5
# Supply-chain defense: require packages to be at least 7 days old before
# install. Compromised packages typically get yanked within hours, so this
# buffer dramatically reduces the chance of pulling a malicious release.
# Value is in minutes (7 days × 24h × 60min = 10080).
minimumReleaseAge: 10080
+catalog:
+ '@popperjs/core': ^2.11.8
+ '@tailwindcss/vite': ^4.3.3
+ '@types/node': ^22.20.5
+ '@vitejs/plugin-vue': ^6.0.10
+ '@vue/compiler-dom': ^3.5.44
+ '@vue/server-renderer': ^3.5.44
+ '@vue/test-utils': ^2.5.1
+ alpinejs: ^3.17.5
+ axios: ^1.20.0
+ bootstrap: ^5.3.8
+ jsdom: ^30.1.3
+ laravel-vite-plugin: ^3.2.0
+ moment-timezone: ^0.5.48
+ sass: ^1.106.0
+ tailwindcss: ^4.3.3
+ typescript: ^7.0.2
+ vite: npm:@voidzero-dev/vite-plus-core@1.3.0
+ vite-plus: 1.3.0
+ vue: ^3.5.44
+ vue-json-pretty: ^2.6.0
+ vue-router: ^4.6.4
diff --git a/src/foundation/resources/exceptions/renderer/.npmrc b/src/foundation/resources/exceptions/renderer/.npmrc
deleted file mode 100644
index abe47e0175..0000000000
--- a/src/foundation/resources/exceptions/renderer/.npmrc
+++ /dev/null
@@ -1,5 +0,0 @@
-# Supply-chain defense: require packages to be at least 7 days old.
-# Compromised packages typically get yanked within hours; this buffer
-# dramatically reduces the chance of pulling a malicious release.
-# npm measures this value in days.
-min-release-age=7
diff --git a/src/foundation/resources/exceptions/renderer/package-lock.json b/src/foundation/resources/exceptions/renderer/package-lock.json
deleted file mode 100644
index f40df09bfe..0000000000
--- a/src/foundation/resources/exceptions/renderer/package-lock.json
+++ /dev/null
@@ -1,2078 +0,0 @@
-{
- "name": "renderer",
- "lockfileVersion": 3,
- "requires": true,
- "packages": {
- "": {
- "dependencies": {
- "alpinejs": "^3.14.9",
- "shiki": "^3.13.0",
- "tailwindcss": "^4.1.12",
- "tippy.js": "^6.3.7",
- "tw-animate-css": "^1.3.7"
- },
- "devDependencies": {
- "@tailwindcss/vite": "^4.3.3",
- "vite": "^8.3.0"
- },
- "engines": {
- "node": ">=22.19.0"
- }
- },
- "node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.13",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
- "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/sourcemap-codec": "^1.5.0",
- "@jridgewell/trace-mapping": "^0.3.24"
- }
- },
- "node_modules/@jridgewell/remapping": {
- "version": "2.3.5",
- "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz",
- "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.5",
- "@jridgewell/trace-mapping": "^0.3.24"
- }
- },
- "node_modules/@jridgewell/resolve-uri": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
- "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz",
- "integrity": "sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.31",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
- "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/resolve-uri": "^3.1.0",
- "@jridgewell/sourcemap-codec": "^1.4.14"
- }
- },
- "node_modules/@oxc-project/types": {
- "version": "0.150.0",
- "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.150.0.tgz",
- "integrity": "sha512-rDS5/31E9HfPl/CIzGrn0DOlvBbXFseQ5URJ9sYMfstbKLD/c6Gm9vmRzRGDdAXyOIL4zmO37lc9RIwYqVruZw==",
- "dev": true,
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/oxc-project"
- }
- },
- "node_modules/@popperjs/core": {
- "version": "2.11.8",
- "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
- "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==",
- "license": "MIT",
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/popperjs"
- }
- },
- "node_modules/@rolldown/binding-android-arm-eabi": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm-eabi/-/binding-android-arm-eabi-1.2.9.tgz",
- "integrity": "sha512-tNISae1QEf/vkb3xkRcjV5SEdzPE97We5IVaa2Z8jSszQPZ8U60B/YCYpw4QI7VidYsBtKavczXf+DyDs9WGxw==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-android-arm64": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.9.tgz",
- "integrity": "sha512-YC8YsI30o606GTZi0VyzYlsDKFP8W61i/QzayHDkLbNEz/IShqAmTa+hsJRj13xTHA0H+6fk4b2UmGn+Q/cMlg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-darwin-arm64": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.9.tgz",
- "integrity": "sha512-IwhlH3qK5urrY8hZiEgGkHKEFN901p/p2bjxCxJlr4GyNnF7wYpUvK+Y43uaRYuC4hpfjzbR3SJC3arX1jGvmw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-darwin-x64": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.9.tgz",
- "integrity": "sha512-XxpJfVzFh+jilRxIXUqcfYAYcunIc/XEzIizsOL1fcJee5Sf7H3mH8WlLmfHfluz5amqR88QQo9izKtmMlavAw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-freebsd-x64": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.9.tgz",
- "integrity": "sha512-kSfvhmgeWyfkbT3p/1s5vSgboogoah2zkm9fX2zjg2hHxSV7T4KhMWRUUaRk4OXNqoD3QAUeRqLcs1aZOK4U1g==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-linux-arm-gnueabihf": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.9.tgz",
- "integrity": "sha512-1RVzG17pxqbTfYLC352JlLt6kKLG+6Hr30n8DlIJqsnV5luUDd2Qdx9Ayw1Cabfyb1K9k0jXEZ7evxkRoT+uiw==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-linux-arm64-gnu": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.9.tgz",
- "integrity": "sha512-BXqPvZ2drqVD+/Z8UpKwcs4Mp7grM+eGFku4CAEKrEtcbAsUpzREphK1sogCRZGreVPiMkiiBtw0n3TPteuqvw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-linux-arm64-musl": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.9.tgz",
- "integrity": "sha512-11vWvo8YDwLzukt27J3aYDWU+gg2P7J+ZOmiJ0hkF5BXZDW7pVya7r40MXDy6ya0i9KamoENSVKIugvJNgFXIA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "libc": [
- "musl"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-linux-ppc64-gnu": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.9.tgz",
- "integrity": "sha512-a1tijMkdwsIARtc0F39ApURROkf3NwqinI6TOiSSWCTR7dT96dffNvMUtDHnq64wKNTIZOIlzKrFvvFUznJiyw==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-linux-s390x-gnu": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.9.tgz",
- "integrity": "sha512-x6SQNdAvv4c3hWqTMaWuawzMX9myaCs/yEmlGsxJzkdClnHW7FbrjQuSiRDhuSYzEYoEMhsaJy9qHG/XNemJPQ==",
- "cpu": [
- "s390x"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-linux-x64-gnu": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.9.tgz",
- "integrity": "sha512-9s0AZ8BFK5/n7B/TBoa2yJE3gI3KURrbXcPBlsAsvjU4VeJKgE90y1YtNxyEUIcHPQkg6/yfF3qihUrcM/Kf0Q==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-linux-x64-musl": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.9.tgz",
- "integrity": "sha512-P7VWAmV+WdJluH7ovnRGoiv2i8To7GAZ+kGzfGup635cyL7SyYl3lSUaA3Gp5THf0n/Co5EyEqb2zbqq+nMOHQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "libc": [
- "musl"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-openharmony-arm64": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.9.tgz",
- "integrity": "sha512-1qixtsE4BK8h+yS3BfmZ09UhA7O/N4IACva6YBr7EBvCJraByTuRcgOTaiA62Tm0vey3UcKXLOaoGHtYmNGEVg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openharmony"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-win32-arm64-msvc": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.9.tgz",
- "integrity": "sha512-ok8IQjcEPs1AKZfuEUznVBrJw+gK4soq+bx8b1X2XoMqVClarc1q5JDmVtWXY1xfr6ZuHTAsPXHTgTrqKTZeww==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-win32-x64-msvc": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.9.tgz",
- "integrity": "sha512-Ip2mXoU0hM0boq3Rf+ekuT653OROSo6aSYcPT1VHE4q52KvyxgFkQgrgb/IEsxOuvQ2fZZbs8khJAyCEPM24/g==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/pluginutils": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz",
- "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@shikijs/core": {
- "version": "3.22.0",
- "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-3.22.0.tgz",
- "integrity": "sha512-iAlTtSDDbJiRpvgL5ugKEATDtHdUVkqgHDm/gbD2ZS9c88mx7G1zSYjjOxp5Qa0eaW0MAQosFRmJSk354PRoQA==",
- "license": "MIT",
- "dependencies": {
- "@shikijs/types": "3.22.0",
- "@shikijs/vscode-textmate": "^10.0.2",
- "@types/hast": "^3.0.4",
- "hast-util-to-html": "^9.0.5"
- }
- },
- "node_modules/@shikijs/engine-javascript": {
- "version": "3.22.0",
- "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-3.22.0.tgz",
- "integrity": "sha512-jdKhfgW9CRtj3Tor0L7+yPwdG3CgP7W+ZEqSsojrMzCjD1e0IxIbwUMDDpYlVBlC08TACg4puwFGkZfLS+56Tw==",
- "license": "MIT",
- "dependencies": {
- "@shikijs/types": "3.22.0",
- "@shikijs/vscode-textmate": "^10.0.2",
- "oniguruma-to-es": "^4.3.4"
- }
- },
- "node_modules/@shikijs/engine-oniguruma": {
- "version": "3.22.0",
- "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.22.0.tgz",
- "integrity": "sha512-DyXsOG0vGtNtl7ygvabHd7Mt5EY8gCNqR9Y7Lpbbd/PbJvgWrqaKzH1JW6H6qFkuUa8aCxoiYVv8/YfFljiQxA==",
- "license": "MIT",
- "dependencies": {
- "@shikijs/types": "3.22.0",
- "@shikijs/vscode-textmate": "^10.0.2"
- }
- },
- "node_modules/@shikijs/langs": {
- "version": "3.22.0",
- "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.22.0.tgz",
- "integrity": "sha512-x/42TfhWmp6H00T6uwVrdTJGKgNdFbrEdhaDwSR5fd5zhQ1Q46bHq9EO61SCEWJR0HY7z2HNDMaBZp8JRmKiIA==",
- "license": "MIT",
- "dependencies": {
- "@shikijs/types": "3.22.0"
- }
- },
- "node_modules/@shikijs/themes": {
- "version": "3.22.0",
- "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.22.0.tgz",
- "integrity": "sha512-o+tlOKqsr6FE4+mYJG08tfCFDS+3CG20HbldXeVoyP+cYSUxDhrFf3GPjE60U55iOkkjbpY2uC3It/eeja35/g==",
- "license": "MIT",
- "dependencies": {
- "@shikijs/types": "3.22.0"
- }
- },
- "node_modules/@shikijs/types": {
- "version": "3.22.0",
- "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.22.0.tgz",
- "integrity": "sha512-491iAekgKDBFE67z70Ok5a8KBMsQ2IJwOWw3us/7ffQkIBCyOQfm/aNwVMBUriP02QshIfgHCBSIYAl3u2eWjg==",
- "license": "MIT",
- "dependencies": {
- "@shikijs/vscode-textmate": "^10.0.2",
- "@types/hast": "^3.0.4"
- }
- },
- "node_modules/@shikijs/vscode-textmate": {
- "version": "10.0.2",
- "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz",
- "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==",
- "license": "MIT"
- },
- "node_modules/@tailwindcss/node": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.3.3.tgz",
- "integrity": "sha512-/T8IKEsf9VTU6tLjgC7+sv2mOPtQxzE2jMw7u4Tt40Tx+QSZxpzh95/H6cMKoja9XuW7iMdLJYBB0o9G1CaAgg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/remapping": "^2.3.5",
- "enhanced-resolve": "^5.24.1",
- "jiti": "^2.7.0",
- "lightningcss": "1.32.0",
- "magic-string": "^0.30.21",
- "source-map-js": "^1.2.1",
- "tailwindcss": "4.3.3"
- }
- },
- "node_modules/@tailwindcss/oxide": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.3.3.tgz",
- "integrity": "sha512-krXjAikiaFSPaK/FkAQT5UTx3VormQaiZ5hBFlJZ9UFQGB/rwg1MZIhHAG9smMQRTdyJxP6Qt5MwMtdyU5FWrA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 20"
- },
- "optionalDependencies": {
- "@tailwindcss/oxide-android-arm64": "4.3.3",
- "@tailwindcss/oxide-darwin-arm64": "4.3.3",
- "@tailwindcss/oxide-darwin-x64": "4.3.3",
- "@tailwindcss/oxide-freebsd-x64": "4.3.3",
- "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.3",
- "@tailwindcss/oxide-linux-arm64-gnu": "4.3.3",
- "@tailwindcss/oxide-linux-arm64-musl": "4.3.3",
- "@tailwindcss/oxide-linux-x64-gnu": "4.3.3",
- "@tailwindcss/oxide-linux-x64-musl": "4.3.3",
- "@tailwindcss/oxide-wasm32-wasi": "4.3.3",
- "@tailwindcss/oxide-win32-arm64-msvc": "4.3.3",
- "@tailwindcss/oxide-win32-x64-msvc": "4.3.3"
- }
- },
- "node_modules/@tailwindcss/oxide-android-arm64": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.3.3.tgz",
- "integrity": "sha512-Y85A2gmPSkl5Ve5qR86GL4HT509cFqQh1aes9p3sSkyTPwt0Pppf3GkwGe4JPACcRYjgJIEhQgM6dBClnr0NYw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">= 20"
- }
- },
- "node_modules/@tailwindcss/oxide-darwin-arm64": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.3.3.tgz",
- "integrity": "sha512-BiaWatpBcERQFDlOjRDpIVXuFK5PJez5SA4JMg6VYZdBYU+qKfV/vqjcIs+IYmtitf1xYQZTwXvU/8y4lfZUGw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 20"
- }
- },
- "node_modules/@tailwindcss/oxide-darwin-x64": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.3.3.tgz",
- "integrity": "sha512-fAeUqfV5ndhxRwai8cXGzdLvul9utWOmeTkv69unv4ZXixjn61Z+p9lCWdwOwA3TYboG3BwdVuN/RDjhBRl0mw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 20"
- }
- },
- "node_modules/@tailwindcss/oxide-freebsd-x64": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.3.3.tgz",
- "integrity": "sha512-iyf5bV6+wnAlflVeEy7R25dupxTNECZN5QMI0qNT6eT+EgaGdZcKhGkr5SdoaWiLJ3spLqIY9VCeSGrwmtg4kw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">= 20"
- }
- },
- "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.3.3.tgz",
- "integrity": "sha512-aAYUprJAJQWWbRrPvtjdroZ56Md+JM8pMiopS6xGEwDfLhqj+2ver2p4nU4Mb3CRqcMmNBjo8KkUgcxhkzVQGQ==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 20"
- }
- },
- "node_modules/@tailwindcss/oxide-linux-arm64-gnu": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.3.3.tgz",
- "integrity": "sha512-nDxldcEENOxZRzC2uu9jrutZdAAQtb+8WWDCSnWL1zvBk1+FN+x6MtDViPB5AJMfttVCUhehGWus3XBPgatM/w==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 20"
- }
- },
- "node_modules/@tailwindcss/oxide-linux-arm64-musl": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.3.3.tgz",
- "integrity": "sha512-Md44bD6veX/PC5iyF8cDVnw4HBIANZepRZZ7a8DQOvkfo5WUBwcp6iAuCUz23u+4SUkhJlD3eL7hNdW8ezd/kA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "libc": [
- "musl"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 20"
- }
- },
- "node_modules/@tailwindcss/oxide-linux-x64-gnu": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.3.3.tgz",
- "integrity": "sha512-tx7us1muwOKAKWao2v/GaafFeQboE6aj88vC6ziN2NCGcRm8gWUhwjzg+YdVB1e4boAtdtma4L43onunI6NS4w==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 20"
- }
- },
- "node_modules/@tailwindcss/oxide-linux-x64-musl": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.3.3.tgz",
- "integrity": "sha512-SJxX60smvHgasZoBy11dX6YRjXJFovwWBoedhbQPOBzgFWBHGB+TVPWB9BxzR7TTxU8FQZAI2AyiNCMzFm8Img==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "libc": [
- "musl"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 20"
- }
- },
- "node_modules/@tailwindcss/oxide-wasm32-wasi": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.3.3.tgz",
- "integrity": "sha512-jx1+rPhY/5Ympkktd656HBWEBLxP7dH06losBLjjf5vgCODXvi9KhtftWcMIwTFIDqBr7cRnQkdLnAG+IOlGvQ==",
- "bundleDependencies": [
- "@napi-rs/wasm-runtime",
- "@emnapi/core",
- "@emnapi/runtime",
- "@tybys/wasm-util",
- "@emnapi/wasi-threads",
- "tslib"
- ],
- "cpu": [
- "wasm32"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "@emnapi/core": "^1.11.1",
- "@emnapi/runtime": "^1.11.1",
- "@emnapi/wasi-threads": "^1.2.2",
- "@napi-rs/wasm-runtime": "^1.1.4",
- "@tybys/wasm-util": "^0.10.2",
- "tslib": "^2.8.1"
- },
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/@tailwindcss/oxide-win32-arm64-msvc": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.3.tgz",
- "integrity": "sha512-3rc292Ca2ceK6Ulcc/bAVnTs/3nDtoPhyEKlgPv+yQJQi/JS/AMJlqzxvlDacL1nekbrcf6bTqp/jV4qgnPxNQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 20"
- }
- },
- "node_modules/@tailwindcss/oxide-win32-x64-msvc": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.3.3.tgz",
- "integrity": "sha512-yJ0pwIVc/nYeGoV02WtsN8KYyLQv7kyI2wDnkezyJlGGjkd4QLwDGAwl47YpPJeuI0M0ObaXGSPjvWDPeTPggw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 20"
- }
- },
- "node_modules/@tailwindcss/vite": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.3.3.tgz",
- "integrity": "sha512-yYU8cogLeSh/ms2jh8Fj7jaba/EWa7Ja6GoUqYZaraEuCI5YS6ms6ObZgjjedm+jm6XZjdNRWBpPP6Z86oOxcw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@tailwindcss/node": "4.3.3",
- "@tailwindcss/oxide": "4.3.3",
- "tailwindcss": "4.3.3"
- },
- "peerDependencies": {
- "vite": "^5.2.0 || ^6 || ^7 || ^8"
- }
- },
- "node_modules/@types/hast": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz",
- "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "*"
- }
- },
- "node_modules/@types/mdast": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz",
- "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "*"
- }
- },
- "node_modules/@types/unist": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz",
- "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
- "license": "MIT"
- },
- "node_modules/@ungap/structured-clone": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz",
- "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==",
- "license": "ISC"
- },
- "node_modules/@vue/reactivity": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.1.5.tgz",
- "integrity": "sha512-1tdfLmNjWG6t/CsPldh+foumYFo3cpyCHgBYQ34ylaMsJ+SNHQ1kApMIa8jN+i593zQuaw3AdWH0nJTARzCFhg==",
- "license": "MIT",
- "dependencies": {
- "@vue/shared": "3.1.5"
- }
- },
- "node_modules/@vue/shared": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.1.5.tgz",
- "integrity": "sha512-oJ4F3TnvpXaQwZJNF3ZK+kLPHKarDmJjJ6jyzVNDKH9md1dptjC7lWR//jrGuLdek/U6iltWxqAnYOu8gCiOvA==",
- "license": "MIT"
- },
- "node_modules/alpinejs": {
- "version": "3.15.8",
- "resolved": "https://registry.npmjs.org/alpinejs/-/alpinejs-3.15.8.tgz",
- "integrity": "sha512-zxIfCRTBGvF1CCLIOMQOxAyBuqibxSEwS6Jm1a3HGA9rgrJVcjEWlwLcQTVGAWGS8YhAsTRLVrtQ5a5QT9bSSQ==",
- "license": "MIT",
- "dependencies": {
- "@vue/reactivity": "~3.1.1"
- }
- },
- "node_modules/ccount": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz",
- "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/character-entities-html4": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz",
- "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/character-entities-legacy": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz",
- "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/comma-separated-tokens": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz",
- "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/dequal": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
- "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/detect-libc": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
- "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/devlop": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz",
- "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==",
- "license": "MIT",
- "dependencies": {
- "dequal": "^2.0.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/enhanced-resolve": {
- "version": "5.25.1",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.25.1.tgz",
- "integrity": "sha512-nGXts5znJzmWPu+mIE9izCOzdg63oJca2mDzGWWTth7sr4aCToKcoyFVBQwN75Ij5Pf6p510EwkTqViTRzDV+w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "graceful-fs": "^4.2.4",
- "tapable": "^2.3.3"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/fdir": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
- "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12.0.0"
- },
- "peerDependencies": {
- "picomatch": "^3 || ^4"
- },
- "peerDependenciesMeta": {
- "picomatch": {
- "optional": true
- }
- }
- },
- "node_modules/fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "dev": true,
- "hasInstallScript": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
- "node_modules/graceful-fs": {
- "version": "4.2.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
- "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/hast-util-to-html": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz",
- "integrity": "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==",
- "license": "MIT",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "@types/unist": "^3.0.0",
- "ccount": "^2.0.0",
- "comma-separated-tokens": "^2.0.0",
- "hast-util-whitespace": "^3.0.0",
- "html-void-elements": "^3.0.0",
- "mdast-util-to-hast": "^13.0.0",
- "property-information": "^7.0.0",
- "space-separated-tokens": "^2.0.0",
- "stringify-entities": "^4.0.0",
- "zwitch": "^2.0.4"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-whitespace": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz",
- "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==",
- "license": "MIT",
- "dependencies": {
- "@types/hast": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/html-void-elements": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz",
- "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/jiti": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz",
- "integrity": "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==",
- "dev": true,
- "license": "MIT",
- "bin": {
- "jiti": "lib/jiti-cli.mjs"
- }
- },
- "node_modules/lightningcss": {
- "version": "1.32.0",
- "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz",
- "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==",
- "dev": true,
- "license": "MPL-2.0",
- "dependencies": {
- "detect-libc": "^2.0.3"
- },
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- },
- "optionalDependencies": {
- "lightningcss-android-arm64": "1.32.0",
- "lightningcss-darwin-arm64": "1.32.0",
- "lightningcss-darwin-x64": "1.32.0",
- "lightningcss-freebsd-x64": "1.32.0",
- "lightningcss-linux-arm-gnueabihf": "1.32.0",
- "lightningcss-linux-arm64-gnu": "1.32.0",
- "lightningcss-linux-arm64-musl": "1.32.0",
- "lightningcss-linux-x64-gnu": "1.32.0",
- "lightningcss-linux-x64-musl": "1.32.0",
- "lightningcss-win32-arm64-msvc": "1.32.0",
- "lightningcss-win32-x64-msvc": "1.32.0"
- }
- },
- "node_modules/lightningcss-android-arm64": {
- "version": "1.32.0",
- "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz",
- "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-darwin-arm64": {
- "version": "1.32.0",
- "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz",
- "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-darwin-x64": {
- "version": "1.32.0",
- "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz",
- "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-freebsd-x64": {
- "version": "1.32.0",
- "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz",
- "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-arm-gnueabihf": {
- "version": "1.32.0",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz",
- "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-arm64-gnu": {
- "version": "1.32.0",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz",
- "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-arm64-musl": {
- "version": "1.32.0",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz",
- "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "libc": [
- "musl"
- ],
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-x64-gnu": {
- "version": "1.32.0",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz",
- "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-x64-musl": {
- "version": "1.32.0",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz",
- "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "libc": [
- "musl"
- ],
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-win32-arm64-msvc": {
- "version": "1.32.0",
- "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz",
- "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-win32-x64-msvc": {
- "version": "1.32.0",
- "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz",
- "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/magic-string": {
- "version": "0.30.21",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
- "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/sourcemap-codec": "^1.5.5"
- }
- },
- "node_modules/mdast-util-to-hast": {
- "version": "13.2.1",
- "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz",
- "integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==",
- "license": "MIT",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "@types/mdast": "^4.0.0",
- "@ungap/structured-clone": "^1.0.0",
- "devlop": "^1.0.0",
- "micromark-util-sanitize-uri": "^2.0.0",
- "trim-lines": "^3.0.0",
- "unist-util-position": "^5.0.0",
- "unist-util-visit": "^5.0.0",
- "vfile": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-util-character": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
- "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-util-encode": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz",
- "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT"
- },
- "node_modules/micromark-util-sanitize-uri": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz",
- "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-character": "^2.0.0",
- "micromark-util-encode": "^2.0.0",
- "micromark-util-symbol": "^2.0.0"
- }
- },
- "node_modules/micromark-util-symbol": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
- "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT"
- },
- "node_modules/micromark-util-types": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz",
- "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT"
- },
- "node_modules/nanoid": {
- "version": "3.3.19",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.19.tgz",
- "integrity": "sha512-Y2tUNy4ouw6tq5oDSKeQYGOyhkUBhNOcGV/02KC+6kd9eDGqdZd++mjMiIDilrBYvjEnCYvVtsuHCuP+okSfug==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "bin": {
- "nanoid": "bin/nanoid.cjs"
- },
- "engines": {
- "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
- }
- },
- "node_modules/oniguruma-parser": {
- "version": "0.12.1",
- "resolved": "https://registry.npmjs.org/oniguruma-parser/-/oniguruma-parser-0.12.1.tgz",
- "integrity": "sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==",
- "license": "MIT"
- },
- "node_modules/oniguruma-to-es": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-4.3.4.tgz",
- "integrity": "sha512-3VhUGN3w2eYxnTzHn+ikMI+fp/96KoRSVK9/kMTcFqj1NRDh2IhQCKvYxDnWePKRXY/AqH+Fuiyb7VHSzBjHfA==",
- "license": "MIT",
- "dependencies": {
- "oniguruma-parser": "^0.12.1",
- "regex": "^6.0.1",
- "regex-recursion": "^6.0.2"
- }
- },
- "node_modules/picocolors": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
- "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/picomatch": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz",
- "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/postcss": {
- "version": "8.5.28",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.28.tgz",
- "integrity": "sha512-RRuzqDtt5Y9h3quz5hWhK+TPnsmVs6WwSU6LkJMeY4HstUEDuYTG8UJSdawMRzmzAtV+KEoG8N3Qg2qLy5vM/A==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/postcss"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "nanoid": "^3.3.18",
- "picocolors": "^1.1.1",
- "source-map-js": "^1.2.1"
- },
- "engines": {
- "node": "^10 || ^12 || >=14"
- }
- },
- "node_modules/property-information": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz",
- "integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/regex": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/regex/-/regex-6.1.0.tgz",
- "integrity": "sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==",
- "license": "MIT",
- "dependencies": {
- "regex-utilities": "^2.3.0"
- }
- },
- "node_modules/regex-recursion": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/regex-recursion/-/regex-recursion-6.0.2.tgz",
- "integrity": "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==",
- "license": "MIT",
- "dependencies": {
- "regex-utilities": "^2.3.0"
- }
- },
- "node_modules/regex-utilities": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/regex-utilities/-/regex-utilities-2.3.0.tgz",
- "integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==",
- "license": "MIT"
- },
- "node_modules/rolldown": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.9.tgz",
- "integrity": "sha512-hx/Pv0N1haXRb11qkfnK5MXB/iqr7i0yjWQqmO9uHqZpBgQSqzc8UsSnEpalsh+j1I8qQ2CkXAkJC8Br3dKSlg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@oxc-project/types": "=0.150.0",
- "@rolldown/pluginutils": "^1.0.0"
- },
- "bin": {
- "rolldown": "bin/cli.mjs"
- },
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- },
- "optionalDependencies": {
- "@rolldown/binding-android-arm-eabi": "1.2.9",
- "@rolldown/binding-android-arm64": "1.2.9",
- "@rolldown/binding-darwin-arm64": "1.2.9",
- "@rolldown/binding-darwin-x64": "1.2.9",
- "@rolldown/binding-freebsd-x64": "1.2.9",
- "@rolldown/binding-linux-arm-gnueabihf": "1.2.9",
- "@rolldown/binding-linux-arm64-gnu": "1.2.9",
- "@rolldown/binding-linux-arm64-musl": "1.2.9",
- "@rolldown/binding-linux-ppc64-gnu": "1.2.9",
- "@rolldown/binding-linux-s390x-gnu": "1.2.9",
- "@rolldown/binding-linux-x64-gnu": "1.2.9",
- "@rolldown/binding-linux-x64-musl": "1.2.9",
- "@rolldown/binding-openharmony-arm64": "1.2.9",
- "@rolldown/binding-win32-arm64-msvc": "1.2.9",
- "@rolldown/binding-win32-x64-msvc": "1.2.9"
- }
- },
- "node_modules/shiki": {
- "version": "3.22.0",
- "resolved": "https://registry.npmjs.org/shiki/-/shiki-3.22.0.tgz",
- "integrity": "sha512-LBnhsoYEe0Eou4e1VgJACes+O6S6QC0w71fCSp5Oya79inkwkm15gQ1UF6VtQ8j/taMDh79hAB49WUk8ALQW3g==",
- "license": "MIT",
- "dependencies": {
- "@shikijs/core": "3.22.0",
- "@shikijs/engine-javascript": "3.22.0",
- "@shikijs/engine-oniguruma": "3.22.0",
- "@shikijs/langs": "3.22.0",
- "@shikijs/themes": "3.22.0",
- "@shikijs/types": "3.22.0",
- "@shikijs/vscode-textmate": "^10.0.2",
- "@types/hast": "^3.0.4"
- }
- },
- "node_modules/source-map-js": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.2.tgz",
- "integrity": "sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw==",
- "dev": true,
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/space-separated-tokens": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz",
- "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/stringify-entities": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz",
- "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==",
- "license": "MIT",
- "dependencies": {
- "character-entities-html4": "^2.0.0",
- "character-entities-legacy": "^3.0.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/tailwindcss": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.3.3.tgz",
- "integrity": "sha512-gOhV3P7ufE62QDGg1zVaTgCR+EtPv92k2nIhVcVKcLmxT1sUBsQGhnZj175j+MqRt4zLF7ic+sCYjfhxMxj7YQ==",
- "license": "MIT"
- },
- "node_modules/tapable": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz",
- "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- }
- },
- "node_modules/tinyglobby": {
- "version": "0.2.17",
- "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz",
- "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "fdir": "^6.5.0",
- "picomatch": "^4.0.4"
- },
- "engines": {
- "node": ">=12.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/SuperchupuDev"
- }
- },
- "node_modules/tippy.js": {
- "version": "6.3.7",
- "resolved": "https://registry.npmjs.org/tippy.js/-/tippy.js-6.3.7.tgz",
- "integrity": "sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==",
- "license": "MIT",
- "dependencies": {
- "@popperjs/core": "^2.9.0"
- }
- },
- "node_modules/trim-lines": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz",
- "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/tw-animate-css": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/tw-animate-css/-/tw-animate-css-1.4.0.tgz",
- "integrity": "sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ==",
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/Wombosvideo"
- }
- },
- "node_modules/unist-util-is": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz",
- "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-position": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
- "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-stringify-position": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
- "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-visit": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz",
- "integrity": "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^3.0.0",
- "unist-util-is": "^6.0.0",
- "unist-util-visit-parents": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-visit-parents": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz",
- "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^3.0.0",
- "unist-util-is": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/vfile": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz",
- "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^3.0.0",
- "vfile-message": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/vfile-message": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz",
- "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^3.0.0",
- "unist-util-stringify-position": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/vite": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/vite/-/vite-8.3.0.tgz",
- "integrity": "sha512-lhZBVvEHefgE+HQZC9O7EBJgCU/nVzFNl7vkS4RE0APtWLP02/8QVIkQtzBxPquh7lq5/78NHipTj7ODQ6XuyQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "lightningcss": "^1.33.0",
- "picomatch": "^4.0.7",
- "postcss": "^8.5.28",
- "rolldown": "~1.2.6",
- "tinyglobby": "^0.2.17"
- },
- "bin": {
- "vite": "bin/vite.js"
- },
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- },
- "funding": {
- "url": "https://github.com/vitejs/vite?sponsor=1"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.3"
- },
- "peerDependencies": {
- "@types/node": "^20.19.0 || >=22.12.0",
- "@vitejs/devtools": "^0.7.1",
- "esbuild": "^0.27.0 || ^0.28.0",
- "jiti": ">=1.21.0",
- "less": "^4.0.0",
- "sass": "^1.70.0",
- "sass-embedded": "^1.70.0",
- "stylus": ">=0.54.8",
- "sugarss": "^5.0.0",
- "terser": "^5.16.0",
- "tsx": "^4.8.1",
- "yaml": "^2.4.2"
- },
- "peerDependenciesMeta": {
- "@types/node": {
- "optional": true
- },
- "@vitejs/devtools": {
- "optional": true
- },
- "esbuild": {
- "optional": true
- },
- "jiti": {
- "optional": true
- },
- "less": {
- "optional": true
- },
- "sass": {
- "optional": true
- },
- "sass-embedded": {
- "optional": true
- },
- "stylus": {
- "optional": true
- },
- "sugarss": {
- "optional": true
- },
- "terser": {
- "optional": true
- },
- "tsx": {
- "optional": true
- },
- "yaml": {
- "optional": true
- }
- }
- },
- "node_modules/vite/node_modules/lightningcss": {
- "version": "1.33.0",
- "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.33.0.tgz",
- "integrity": "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==",
- "dev": true,
- "license": "MPL-2.0",
- "dependencies": {
- "detect-libc": "^2.0.3"
- },
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- },
- "optionalDependencies": {
- "lightningcss-android-arm64": "1.33.0",
- "lightningcss-darwin-arm64": "1.33.0",
- "lightningcss-darwin-x64": "1.33.0",
- "lightningcss-freebsd-x64": "1.33.0",
- "lightningcss-linux-arm-gnueabihf": "1.33.0",
- "lightningcss-linux-arm64-gnu": "1.33.0",
- "lightningcss-linux-arm64-musl": "1.33.0",
- "lightningcss-linux-x64-gnu": "1.33.0",
- "lightningcss-linux-x64-musl": "1.33.0",
- "lightningcss-win32-arm64-msvc": "1.33.0",
- "lightningcss-win32-x64-msvc": "1.33.0"
- }
- },
- "node_modules/vite/node_modules/lightningcss-android-arm64": {
- "version": "1.33.0",
- "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.33.0.tgz",
- "integrity": "sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/vite/node_modules/lightningcss-darwin-arm64": {
- "version": "1.33.0",
- "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.33.0.tgz",
- "integrity": "sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/vite/node_modules/lightningcss-darwin-x64": {
- "version": "1.33.0",
- "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.33.0.tgz",
- "integrity": "sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/vite/node_modules/lightningcss-freebsd-x64": {
- "version": "1.33.0",
- "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.33.0.tgz",
- "integrity": "sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/vite/node_modules/lightningcss-linux-arm-gnueabihf": {
- "version": "1.33.0",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.33.0.tgz",
- "integrity": "sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/vite/node_modules/lightningcss-linux-arm64-gnu": {
- "version": "1.33.0",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.33.0.tgz",
- "integrity": "sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/vite/node_modules/lightningcss-linux-arm64-musl": {
- "version": "1.33.0",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.33.0.tgz",
- "integrity": "sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "libc": [
- "musl"
- ],
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/vite/node_modules/lightningcss-linux-x64-gnu": {
- "version": "1.33.0",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.33.0.tgz",
- "integrity": "sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/vite/node_modules/lightningcss-linux-x64-musl": {
- "version": "1.33.0",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.33.0.tgz",
- "integrity": "sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "libc": [
- "musl"
- ],
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/vite/node_modules/lightningcss-win32-arm64-msvc": {
- "version": "1.33.0",
- "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.33.0.tgz",
- "integrity": "sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/vite/node_modules/lightningcss-win32-x64-msvc": {
- "version": "1.33.0",
- "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.33.0.tgz",
- "integrity": "sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/zwitch": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz",
- "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- }
- }
-}
diff --git a/src/foundation/resources/exceptions/renderer/package.json b/src/foundation/resources/exceptions/renderer/package.json
index 901263b81e..132d0cbae2 100644
--- a/src/foundation/resources/exceptions/renderer/package.json
+++ b/src/foundation/resources/exceptions/renderer/package.json
@@ -1,29 +1,24 @@
{
+ "name": "@hypervel/exception-renderer",
"private": true,
"type": "module",
- "engines": {
- "node": ">=22.19.0"
- },
- "devEngines": {
- "packageManager": {
- "name": "npm",
- "version": ">=11.10.0"
- }
- },
"scripts": {
- "dev": "vite",
- "build": "vite build",
- "watch": "vite build --watch"
+ "dev": "vp dev",
+ "build": "vp build",
+ "watch": "vp build --watch"
},
"dependencies": {
- "alpinejs": "^3.14.9",
- "shiki": "^3.13.0",
- "tailwindcss": "^4.1.12",
+ "@shikijs/langs": "^3.23.0",
+ "@shikijs/themes": "^3.23.0",
+ "alpinejs": "catalog:",
+ "shiki": "^3.23.0",
+ "tailwindcss": "catalog:",
"tippy.js": "^6.3.7",
"tw-animate-css": "^1.3.7"
},
"devDependencies": {
- "@tailwindcss/vite": "^4.3.3",
- "vite": "^8.3.0"
+ "@tailwindcss/vite": "catalog:",
+ "vite": "catalog:",
+ "vite-plus": "catalog:"
}
}
diff --git a/src/foundation/resources/exceptions/renderer/vite.config.js b/src/foundation/resources/exceptions/renderer/vite.config.js
index 80e1d3ff71..7e7fd3eb25 100644
--- a/src/foundation/resources/exceptions/renderer/vite.config.js
+++ b/src/foundation/resources/exceptions/renderer/vite.config.js
@@ -1,9 +1,9 @@
-import { defineConfig } from 'vite';
+import { defineConfig } from 'vite-plus';
import tailwindcss from '@tailwindcss/vite';
export default defineConfig({
plugins: [tailwindcss()],
build: {
- rollupOptions: {
+ rolldownOptions: {
input: ['styles.css', 'scripts.js'],
output: {
assetFileNames: '[name][extname]',
diff --git a/src/horizon/.npmrc b/src/horizon/.npmrc
deleted file mode 100644
index 63d512ea37..0000000000
--- a/src/horizon/.npmrc
+++ /dev/null
@@ -1,6 +0,0 @@
-# Supply-chain defense: require packages to be at least 7 days old.
-# Compromised packages typically get yanked within hours; this buffer
-# dramatically reduces the chance of pulling a malicious release.
-# npm measures this value in days.
-min-release-age=7
-ignore-scripts=true
diff --git a/src/horizon/package-lock.json b/src/horizon/package-lock.json
deleted file mode 100644
index 870af5b792..0000000000
--- a/src/horizon/package-lock.json
+++ /dev/null
@@ -1,2192 +0,0 @@
-{
- "name": "hypervel-horizon",
- "lockfileVersion": 3,
- "requires": true,
- "packages": {
- "": {
- "name": "hypervel-horizon",
- "devDependencies": {
- "@vitejs/plugin-vue": "^5.1.3",
- "axios": "^1.20.0",
- "bootstrap": "~5.1.3",
- "chart.js": "^2.9.4",
- "highlight.js": "^10.7.3",
- "md5": "^2.3.0",
- "moment": "^2.31.0",
- "moment-timezone": "^0.5.45",
- "phpunserialize": "^1.3.0",
- "sass": "^1.105.0",
- "sql-formatter": "^4.0.2",
- "vite": "^5.4.21",
- "vue": "^3.5.43",
- "vue-json-pretty": "^2.4.0",
- "vue-router": "^4.4.4"
- }
- },
- "node_modules/@babel/helper-string-parser": {
- "version": "7.29.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz",
- "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-validator-identifier": {
- "version": "7.29.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz",
- "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/parser": {
- "version": "7.29.9",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.9.tgz",
- "integrity": "sha512-CjXrNHTnvqBVqHgdBysY3vk2T8tpJHb5/RMeHJBTyVa9xgugCB0CJTx/3oO8RV2QRQP391RWpB7D6hLjm8V9uA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/types": "^7.29.8"
- },
- "bin": {
- "parser": "bin/babel-parser.js"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@babel/types": {
- "version": "7.29.8",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.8.tgz",
- "integrity": "sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-string-parser": "^7.29.7",
- "@babel/helper-validator-identifier": "^7.29.7"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@esbuild/aix-ppc64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz",
- "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "aix"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/android-arm": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz",
- "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/android-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz",
- "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/android-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz",
- "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/darwin-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz",
- "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/darwin-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz",
- "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/freebsd-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz",
- "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/freebsd-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz",
- "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-arm": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz",
- "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz",
- "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-ia32": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz",
- "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-loong64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz",
- "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==",
- "cpu": [
- "loong64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-mips64el": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz",
- "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==",
- "cpu": [
- "mips64el"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-ppc64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz",
- "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-riscv64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz",
- "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-s390x": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz",
- "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==",
- "cpu": [
- "s390x"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz",
- "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/netbsd-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz",
- "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "netbsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/openbsd-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz",
- "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "openbsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/sunos-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz",
- "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "sunos"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/win32-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz",
- "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/win32-ia32": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz",
- "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/win32-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz",
- "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz",
- "integrity": "sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@parcel/watcher": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.6.0.tgz",
- "integrity": "sha512-7FNeNl8NCE7aINx7WXiKQrPYZWC/hvrTsmk6zmxbI7LTXE7hVek/n8AfVgpe2y82zl3w0HvCHN0bVKMBoJcC0w==",
- "dev": true,
- "hasInstallScript": true,
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "detect-libc": "^2.0.3",
- "is-glob": "^4.0.3",
- "node-addon-api": "^7.0.0",
- "picomatch": "^4.0.4"
- },
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- },
- "optionalDependencies": {
- "@parcel/watcher-android-arm64": "2.6.0",
- "@parcel/watcher-darwin-arm64": "2.6.0",
- "@parcel/watcher-darwin-x64": "2.6.0",
- "@parcel/watcher-freebsd-x64": "2.6.0",
- "@parcel/watcher-linux-arm-glibc": "2.6.0",
- "@parcel/watcher-linux-arm-musl": "2.6.0",
- "@parcel/watcher-linux-arm64-glibc": "2.6.0",
- "@parcel/watcher-linux-arm64-musl": "2.6.0",
- "@parcel/watcher-linux-x64-glibc": "2.6.0",
- "@parcel/watcher-linux-x64-musl": "2.6.0",
- "@parcel/watcher-win32-arm64": "2.6.0",
- "@parcel/watcher-win32-x64": "2.6.0"
- }
- },
- "node_modules/@parcel/watcher-android-arm64": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.6.0.tgz",
- "integrity": "sha512-trgpLSCKRC/huFjXX/Smh+0sWe4+YtKfktIToiMl59ghz7z+qkH6kMvNnUbLyRs9N11t8l4svSCs1+5B3rOAhA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-darwin-arm64": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.6.0.tgz",
- "integrity": "sha512-Y3QV0gl7Q1zbfueunkWIERICbEojQFCgpyG7YqOGNFLsckXyI1xu9mAIUpKY9QBYzBtSkN8dBPwd3yiAO9ovMw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-darwin-x64": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.6.0.tgz",
- "integrity": "sha512-Ohv6OpzhUfKYD7Beb8kDvG0jbIxORCYY1JRdZnaBtnjjkJxgD7ZVL0nw2sCYd0yTMKTvz3nnTnOF3cDifK+kvw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-freebsd-x64": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.6.0.tgz",
- "integrity": "sha512-5HmXvDgs8VK+74jF9y9/2FE3/OnlcKmc56tjmSrEuZjpSZOGL+fvAu+HKJBdPs9uwoP2hE6TlSUpXZ/C5jUFmQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-linux-arm-glibc": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.6.0.tgz",
- "integrity": "sha512-Ps/hui3A+vMbjdqlqAowK2ZL8+BO8dBjxeWXj6npTBs3jx4wWmbPpaLuqwrQrSqIVMCnpWo238bJ1U37GhQOYg==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-linux-arm-musl": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.6.0.tgz",
- "integrity": "sha512-9c6AUHgHoG+IY88MRIHupztQiQnrbqHYQjkM2btA+Bf/wQnQMuiD0Wfk1EVv3TlNT3x41uU71rn6E4xh/+zvkw==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "libc": [
- "musl"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-linux-arm64-glibc": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.6.0.tgz",
- "integrity": "sha512-yHRqS2owEXe6Hic9z6Mh1ECsCd+ODVOGvZDyciqRd21+v+o+DnXMOrw50DSpIG2sb8GPEaPPmfeCAWKPJdq46g==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-linux-arm64-musl": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.6.0.tgz",
- "integrity": "sha512-WhB2e/V7rqdHHWZusBSPuy5Ei8S6lSz6FE5TKKQz5h3a0O+C+mhY7vxU9b/stqvMb8beLnPY82ZrFTLKs+SrKA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "libc": [
- "musl"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-linux-x64-glibc": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.6.0.tgz",
- "integrity": "sha512-ulGE6x6Oz6iAwg75T8YQSoguBWasniIbX+QWpaYPcCnDOpdWX3k+4xbEYPZVLxOuoJI+svJJPD3sEj8G7lrQ3A==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-linux-x64-musl": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.6.0.tgz",
- "integrity": "sha512-tkBYKt7YQrjIJWYDnto2YgO8MRkjlMTSNoRHzsXinBqbLdeOM3L32wPZJvIZxqaLMfSlS/4sUjH/6STVP/XDLw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "libc": [
- "musl"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-win32-arm64": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.6.0.tgz",
- "integrity": "sha512-gIZAP23jaHjGWasY/TY6yL7NHFClf0Ga7FN+iINvk+KN94rhm94lYZhFsbYFNcA04/onvGD9kKmiJLJB2HbNwQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-win32-x64": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.6.0.tgz",
- "integrity": "sha512-cA+/pXV2YkfxlIcXOQ5fSWqAzzPyD78/x5qbK/I0vUkrlYHA8TIz+MXjAbGouguKVSI4bOmkTSJ1/poVSsgt+A==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@popperjs/core": {
- "version": "2.11.8",
- "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
- "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==",
- "dev": true,
- "peer": true,
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/popperjs"
- }
- },
- "node_modules/@rollup/rollup-android-arm-eabi": {
- "version": "4.59.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.59.0.tgz",
- "integrity": "sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ]
- },
- "node_modules/@rollup/rollup-android-arm64": {
- "version": "4.59.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.59.0.tgz",
- "integrity": "sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ]
- },
- "node_modules/@rollup/rollup-darwin-arm64": {
- "version": "4.59.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.59.0.tgz",
- "integrity": "sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ]
- },
- "node_modules/@rollup/rollup-darwin-x64": {
- "version": "4.59.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.59.0.tgz",
- "integrity": "sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ]
- },
- "node_modules/@rollup/rollup-freebsd-arm64": {
- "version": "4.59.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.59.0.tgz",
- "integrity": "sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ]
- },
- "node_modules/@rollup/rollup-freebsd-x64": {
- "version": "4.59.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.59.0.tgz",
- "integrity": "sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
- "version": "4.59.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.59.0.tgz",
- "integrity": "sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm-musleabihf": {
- "version": "4.59.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.59.0.tgz",
- "integrity": "sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm64-gnu": {
- "version": "4.59.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.59.0.tgz",
- "integrity": "sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm64-musl": {
- "version": "4.59.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.59.0.tgz",
- "integrity": "sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-loong64-gnu": {
- "version": "4.59.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.59.0.tgz",
- "integrity": "sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==",
- "cpu": [
- "loong64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-loong64-musl": {
- "version": "4.59.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.59.0.tgz",
- "integrity": "sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==",
- "cpu": [
- "loong64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-ppc64-gnu": {
- "version": "4.59.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.59.0.tgz",
- "integrity": "sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-ppc64-musl": {
- "version": "4.59.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.59.0.tgz",
- "integrity": "sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-riscv64-gnu": {
- "version": "4.59.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.59.0.tgz",
- "integrity": "sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-riscv64-musl": {
- "version": "4.59.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.59.0.tgz",
- "integrity": "sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-s390x-gnu": {
- "version": "4.59.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.59.0.tgz",
- "integrity": "sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==",
- "cpu": [
- "s390x"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-x64-gnu": {
- "version": "4.59.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.59.0.tgz",
- "integrity": "sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-x64-musl": {
- "version": "4.59.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.59.0.tgz",
- "integrity": "sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-openbsd-x64": {
- "version": "4.59.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.59.0.tgz",
- "integrity": "sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openbsd"
- ]
- },
- "node_modules/@rollup/rollup-openharmony-arm64": {
- "version": "4.59.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.59.0.tgz",
- "integrity": "sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openharmony"
- ]
- },
- "node_modules/@rollup/rollup-win32-arm64-msvc": {
- "version": "4.59.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.59.0.tgz",
- "integrity": "sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ]
- },
- "node_modules/@rollup/rollup-win32-ia32-msvc": {
- "version": "4.59.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.59.0.tgz",
- "integrity": "sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ]
- },
- "node_modules/@rollup/rollup-win32-x64-gnu": {
- "version": "4.59.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.59.0.tgz",
- "integrity": "sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ]
- },
- "node_modules/@rollup/rollup-win32-x64-msvc": {
- "version": "4.59.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.59.0.tgz",
- "integrity": "sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ]
- },
- "node_modules/@types/estree": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
- "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@vitejs/plugin-vue": {
- "version": "5.1.3",
- "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.1.3.tgz",
- "integrity": "sha512-3xbWsKEKXYlmX82aOHufFQVnkbMC/v8fLpWwh6hWOUrK5fbbtBh9Q/WWse27BFgSy2/e2c0fz5Scgya9h2GLhw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^18.0.0 || >=20.0.0"
- },
- "peerDependencies": {
- "vite": "^5.0.0",
- "vue": "^3.2.25"
- }
- },
- "node_modules/@vue/compiler-core": {
- "version": "3.5.43",
- "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.43.tgz",
- "integrity": "sha512-zdiLhnbe1QQqgDT8xZMpNmyqZ3qlI+/Q/FHQco57Kwl/b05HhCzN6eVGN9QU9rbga4CrS0H5SYY8VGHZCt/1Hg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/parser": "^7.29.8",
- "@vue/shared": "3.5.43",
- "entities": "^7.0.1",
- "estree-walker": "^2.0.2",
- "source-map-js": "^1.2.1"
- }
- },
- "node_modules/@vue/compiler-dom": {
- "version": "3.5.43",
- "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.43.tgz",
- "integrity": "sha512-PEZoAk3NQmsn/ejMzSOCyTYqwGqczrWm70PuhBKjjv1+TCoQAaO/zOqNwjV+honlNstT5ILxtc+8r8UUfj+iEQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vue/compiler-core": "3.5.43",
- "@vue/shared": "3.5.43"
- }
- },
- "node_modules/@vue/compiler-sfc": {
- "version": "3.5.43",
- "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.43.tgz",
- "integrity": "sha512-FCbrG3XNCRl+js3huuKx4IVHBLTvMkJhVepjbxSPu1gn4yWLaYtGNQdjJGZaMytXB6qb76qQDDmDSLy/vkmleQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/parser": "^7.29.8",
- "@vue/compiler-core": "3.5.43",
- "@vue/compiler-dom": "3.5.43",
- "@vue/compiler-ssr": "3.5.43",
- "@vue/shared": "3.5.43",
- "estree-walker": "^2.0.2",
- "magic-string": "^0.30.21",
- "postcss": "^8.5.28",
- "source-map-js": "^1.2.1"
- }
- },
- "node_modules/@vue/compiler-ssr": {
- "version": "3.5.43",
- "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.43.tgz",
- "integrity": "sha512-GF62orf7KiJX9RqrHNGrYBudsQGD0OhJ5nDs90O8UiDuS40+YMYomiXu6w6EuvtXuRDc3MSNis3EaaSKAVSWpg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vue/compiler-dom": "3.5.43",
- "@vue/shared": "3.5.43"
- }
- },
- "node_modules/@vue/devtools-api": {
- "version": "6.6.4",
- "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz",
- "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@vue/reactivity": {
- "version": "3.5.43",
- "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.43.tgz",
- "integrity": "sha512-G/c9GyOZNI2jVaaS6OX1EF1SSFSv7H0ERqNTl4+DTFMlZmB5eVAB53aLQNam/7NL2NPtaDD7RdVrzf8uJzMuOA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vue/shared": "3.5.43"
- }
- },
- "node_modules/@vue/runtime-core": {
- "version": "3.5.43",
- "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.43.tgz",
- "integrity": "sha512-hU6U6VnVhBGQDpvlnnDlIB8ZGJBiOcgk2lh/0InltHiz3D8oSkluvuvY+do1G2H3+udeKFsmaBlgVYP7gXQzEw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vue/reactivity": "3.5.43",
- "@vue/shared": "3.5.43"
- }
- },
- "node_modules/@vue/runtime-dom": {
- "version": "3.5.43",
- "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.43.tgz",
- "integrity": "sha512-Bb2Jc0YjjJdMt1SJmb9b2L/IWd3I8lIT9x9eS/xvvP9CiVgna0ffua74xKRmt4/uSJ+0r4iN8ex1jrqkhQGWQw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vue/reactivity": "3.5.43",
- "@vue/runtime-core": "3.5.43",
- "@vue/shared": "3.5.43",
- "csstype": "^3.2.3"
- }
- },
- "node_modules/@vue/server-renderer": {
- "version": "3.5.43",
- "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.43.tgz",
- "integrity": "sha512-l2Ygjv9NehV94PSBxNWsAHC0j/eIIKbn92mBuWXAPGLnn6HfJ6MH5ubsd+Nk0YoZ5FRuxWI1P2VSoh+dbPQhCQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vue/compiler-ssr": "3.5.43",
- "@vue/runtime-dom": "3.5.43",
- "@vue/shared": "3.5.43"
- }
- },
- "node_modules/@vue/shared": {
- "version": "3.5.43",
- "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.43.tgz",
- "integrity": "sha512-uksS7YGMR5NZyr4JNq0Rp+QyLns0ueaz20KwzIPW9R0LH1Vnt4E+XUM29PNseEbf1www2gOuhuDi5AKOIXag9Q==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/agent-base": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
- "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "debug": "4"
- },
- "engines": {
- "node": ">= 6.0.0"
- }
- },
- "node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true
- },
- "node_modules/asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/axios": {
- "version": "1.20.0",
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.20.0.tgz",
- "integrity": "sha512-r8aOh8j9cGKpgQAqpzrUHnSIc6a59Y3Xf/cv8sy1DrHCkZHzQGEuoq1tARk6qSyDdtQGSDgpb9kFlruzPvrgwg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "follow-redirects": "^1.16.0",
- "form-data": "^4.0.6",
- "https-proxy-agent": "^5.0.1",
- "proxy-from-env": "^2.1.0"
- }
- },
- "node_modules/bootstrap": {
- "version": "5.1.3",
- "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.1.3.tgz",
- "integrity": "sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==",
- "dev": true,
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/bootstrap"
- },
- "peerDependencies": {
- "@popperjs/core": "^2.10.2"
- }
- },
- "node_modules/call-bind-apply-helpers": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
- "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/charenc": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz",
- "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==",
- "dev": true,
- "engines": {
- "node": "*"
- }
- },
- "node_modules/chart.js": {
- "version": "2.9.4",
- "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-2.9.4.tgz",
- "integrity": "sha512-B07aAzxcrikjAPyV+01j7BmOpxtQETxTSlQ26BEYJ+3iUkbNKaOJ/nDbT6JjyqYxseM0ON12COHYdU2cTIjC7A==",
- "dev": true,
- "dependencies": {
- "chartjs-color": "^2.1.0",
- "moment": "^2.10.2"
- }
- },
- "node_modules/chartjs-color": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/chartjs-color/-/chartjs-color-2.4.1.tgz",
- "integrity": "sha512-haqOg1+Yebys/Ts/9bLo/BqUcONQOdr/hoEr2LLTRl6C5LXctUdHxsCYfvQVg5JIxITrfCNUDr4ntqmQk9+/0w==",
- "dev": true,
- "dependencies": {
- "chartjs-color-string": "^0.6.0",
- "color-convert": "^1.9.3"
- }
- },
- "node_modules/chartjs-color-string": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/chartjs-color-string/-/chartjs-color-string-0.6.0.tgz",
- "integrity": "sha512-TIB5OKn1hPJvO7JcteW4WY/63v6KwEdt6udfnDE9iCAZgy+V4SrbSxoIbTw/xkUIapjEI4ExGtD0+6D3KyFd7A==",
- "dev": true,
- "dependencies": {
- "color-name": "^1.0.0"
- }
- },
- "node_modules/chokidar": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz",
- "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "readdirp": "^5.0.0"
- },
- "engines": {
- "node": ">= 20.19.0"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- }
- },
- "node_modules/color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dev": true,
- "dependencies": {
- "color-name": "1.1.3"
- }
- },
- "node_modules/color-convert/node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true
- },
- "node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- },
- "node_modules/combined-stream": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "delayed-stream": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/crypt": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz",
- "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==",
- "dev": true,
- "engines": {
- "node": "*"
- }
- },
- "node_modules/csstype": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
- "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/debug": {
- "version": "4.4.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
- "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ms": "^2.1.3"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/detect-libc": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
- "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
- "dev": true,
- "license": "Apache-2.0",
- "optional": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/dunder-proto": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
- "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind-apply-helpers": "^1.0.1",
- "es-errors": "^1.3.0",
- "gopd": "^1.2.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/entities": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz",
- "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==",
- "dev": true,
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=0.12"
- },
- "funding": {
- "url": "https://github.com/fb55/entities?sponsor=1"
- }
- },
- "node_modules/es-define-property": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
- "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-errors": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
- "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-object-atoms": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
- "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "es-errors": "^1.3.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-set-tostringtag": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
- "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.6",
- "has-tostringtag": "^1.0.2",
- "hasown": "^2.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/esbuild": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
- "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
- "dev": true,
- "hasInstallScript": true,
- "bin": {
- "esbuild": "bin/esbuild"
- },
- "engines": {
- "node": ">=12"
- },
- "optionalDependencies": {
- "@esbuild/aix-ppc64": "0.21.5",
- "@esbuild/android-arm": "0.21.5",
- "@esbuild/android-arm64": "0.21.5",
- "@esbuild/android-x64": "0.21.5",
- "@esbuild/darwin-arm64": "0.21.5",
- "@esbuild/darwin-x64": "0.21.5",
- "@esbuild/freebsd-arm64": "0.21.5",
- "@esbuild/freebsd-x64": "0.21.5",
- "@esbuild/linux-arm": "0.21.5",
- "@esbuild/linux-arm64": "0.21.5",
- "@esbuild/linux-ia32": "0.21.5",
- "@esbuild/linux-loong64": "0.21.5",
- "@esbuild/linux-mips64el": "0.21.5",
- "@esbuild/linux-ppc64": "0.21.5",
- "@esbuild/linux-riscv64": "0.21.5",
- "@esbuild/linux-s390x": "0.21.5",
- "@esbuild/linux-x64": "0.21.5",
- "@esbuild/netbsd-x64": "0.21.5",
- "@esbuild/openbsd-x64": "0.21.5",
- "@esbuild/sunos-x64": "0.21.5",
- "@esbuild/win32-arm64": "0.21.5",
- "@esbuild/win32-ia32": "0.21.5",
- "@esbuild/win32-x64": "0.21.5"
- }
- },
- "node_modules/estree-walker": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
- "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/follow-redirects": {
- "version": "1.16.0",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz",
- "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==",
- "dev": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://github.com/sponsors/RubenVerborgh"
- }
- ],
- "license": "MIT",
- "engines": {
- "node": ">=4.0"
- },
- "peerDependenciesMeta": {
- "debug": {
- "optional": true
- }
- }
- },
- "node_modules/form-data": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz",
- "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.8",
- "es-set-tostringtag": "^2.1.0",
- "hasown": "^2.0.4",
- "mime-types": "^2.1.35"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "dev": true,
- "hasInstallScript": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
- "node_modules/function-bind": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
- "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
- "dev": true,
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/get-intrinsic": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
- "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind-apply-helpers": "^1.0.2",
- "es-define-property": "^1.0.1",
- "es-errors": "^1.3.0",
- "es-object-atoms": "^1.1.1",
- "function-bind": "^1.1.2",
- "get-proto": "^1.0.1",
- "gopd": "^1.2.0",
- "has-symbols": "^1.1.0",
- "hasown": "^2.0.2",
- "math-intrinsics": "^1.1.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/get-proto": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
- "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "dunder-proto": "^1.0.1",
- "es-object-atoms": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/gopd": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
- "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-symbols": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
- "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-tostringtag": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
- "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-symbols": "^1.0.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/hasown": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz",
- "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "function-bind": "^1.1.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/highlight.js": {
- "version": "10.7.3",
- "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz",
- "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==",
- "dev": true,
- "engines": {
- "node": "*"
- }
- },
- "node_modules/https-proxy-agent": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
- "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "agent-base": "6",
- "debug": "4"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/immutable": {
- "version": "5.1.9",
- "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.9.tgz",
- "integrity": "sha512-m8nVez3rwrgmWxtLMt1ZYXB2Lv7OKYn/disyxAlSDYAlKSlFoPPfIAmAM/M5xqL4m4C/wAPw7S2/CNaUii1Hxg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/is-buffer": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
- "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
- "dev": true
- },
- "node_modules/is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-glob": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "is-extglob": "^2.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/magic-string": {
- "version": "0.30.21",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
- "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/sourcemap-codec": "^1.5.5"
- }
- },
- "node_modules/math-intrinsics": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
- "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/md5": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz",
- "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==",
- "dev": true,
- "dependencies": {
- "charenc": "0.0.2",
- "crypt": "0.0.2",
- "is-buffer": "~1.1.6"
- }
- },
- "node_modules/mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "mime-db": "1.52.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/moment": {
- "version": "2.31.0",
- "resolved": "https://registry.npmjs.org/moment/-/moment-2.31.0.tgz",
- "integrity": "sha512-0acOTfMiWOheYS4eoWb80yYMb/JLvVv9SHbs2PehaDzfUG0Bw855SKyk0IKTnPGa5+U2bmi3W68l1+sGLX/pvw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "*"
- }
- },
- "node_modules/moment-timezone": {
- "version": "0.5.45",
- "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.45.tgz",
- "integrity": "sha512-HIWmqA86KcmCAhnMAN0wuDOARV/525R2+lOLotuGFzn4HO+FH+/645z2wx0Dt3iDv6/p61SIvKnDstISainhLQ==",
- "dev": true,
- "dependencies": {
- "moment": "^2.29.4"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/nanoid": {
- "version": "3.3.20",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.20.tgz",
- "integrity": "sha512-uKdg2G3GNCKQn9byYOpxbGqrT2fGO5KRt5J/8b3pok8rT6qxGWF6hxMyJiEYtAf+FVyYuD9hRaDqX5uPFYJ4ZQ==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "bin": {
- "nanoid": "bin/nanoid.cjs"
- },
- "engines": {
- "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
- }
- },
- "node_modules/node-addon-api": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz",
- "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==",
- "dev": true,
- "license": "MIT",
- "optional": true
- },
- "node_modules/phpunserialize": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/phpunserialize/-/phpunserialize-1.3.0.tgz",
- "integrity": "sha512-i+zbz8OdXq09m2d5EOLMz8tZdfeDRJE29CQUxnsz5o/hT9ZGs7ZKt7dc7Txg+OhY15QImfPZ8dvqXwD4m78dhA==",
- "dev": true
- },
- "node_modules/picocolors": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
- "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/picomatch": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz",
- "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/postcss": {
- "version": "8.5.29",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.29.tgz",
- "integrity": "sha512-49cGhUbXj8Qenv0iTMxA1cFBzxXoctpC9Ujd77t1WcbJIr6nF/eI7g/8MgxrYldFRuAXvja7xQRwavoW7kgrxQ==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/postcss"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "nanoid": "^3.3.19",
- "picocolors": "^1.1.1",
- "source-map-js": "^1.2.2"
- },
- "engines": {
- "node": "^10 || ^12 || >=14"
- }
- },
- "node_modules/proxy-from-env": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz",
- "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/readdirp": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.1.1.tgz",
- "integrity": "sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 20.19.0"
- },
- "funding": {
- "type": "individual",
- "url": "https://paulmillr.com/funding/"
- }
- },
- "node_modules/rollup": {
- "version": "4.59.0",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.59.0.tgz",
- "integrity": "sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/estree": "1.0.8"
- },
- "bin": {
- "rollup": "dist/bin/rollup"
- },
- "engines": {
- "node": ">=18.0.0",
- "npm": ">=8.0.0"
- },
- "optionalDependencies": {
- "@rollup/rollup-android-arm-eabi": "4.59.0",
- "@rollup/rollup-android-arm64": "4.59.0",
- "@rollup/rollup-darwin-arm64": "4.59.0",
- "@rollup/rollup-darwin-x64": "4.59.0",
- "@rollup/rollup-freebsd-arm64": "4.59.0",
- "@rollup/rollup-freebsd-x64": "4.59.0",
- "@rollup/rollup-linux-arm-gnueabihf": "4.59.0",
- "@rollup/rollup-linux-arm-musleabihf": "4.59.0",
- "@rollup/rollup-linux-arm64-gnu": "4.59.0",
- "@rollup/rollup-linux-arm64-musl": "4.59.0",
- "@rollup/rollup-linux-loong64-gnu": "4.59.0",
- "@rollup/rollup-linux-loong64-musl": "4.59.0",
- "@rollup/rollup-linux-ppc64-gnu": "4.59.0",
- "@rollup/rollup-linux-ppc64-musl": "4.59.0",
- "@rollup/rollup-linux-riscv64-gnu": "4.59.0",
- "@rollup/rollup-linux-riscv64-musl": "4.59.0",
- "@rollup/rollup-linux-s390x-gnu": "4.59.0",
- "@rollup/rollup-linux-x64-gnu": "4.59.0",
- "@rollup/rollup-linux-x64-musl": "4.59.0",
- "@rollup/rollup-openbsd-x64": "4.59.0",
- "@rollup/rollup-openharmony-arm64": "4.59.0",
- "@rollup/rollup-win32-arm64-msvc": "4.59.0",
- "@rollup/rollup-win32-ia32-msvc": "4.59.0",
- "@rollup/rollup-win32-x64-gnu": "4.59.0",
- "@rollup/rollup-win32-x64-msvc": "4.59.0",
- "fsevents": "~2.3.2"
- }
- },
- "node_modules/sass": {
- "version": "1.105.0",
- "resolved": "https://registry.npmjs.org/sass/-/sass-1.105.0.tgz",
- "integrity": "sha512-4EjSuRTyG8M4yRXXY1PT9OUV5zz23xBxJkbIAprohKHqf6HOU4MCpE3U3vAC+iO1gxobBjESNbcj8rYAQZWnyA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "chokidar": "^5.0.0",
- "immutable": "^5.1.5",
- "source-map-js": ">=0.6.2 <2.0.0"
- },
- "bin": {
- "sass": "sass.js"
- },
- "engines": {
- "node": ">=20.19.0"
- },
- "optionalDependencies": {
- "@parcel/watcher": "^2.4.1"
- }
- },
- "node_modules/source-map-js": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.2.tgz",
- "integrity": "sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw==",
- "dev": true,
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/sql-formatter": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/sql-formatter/-/sql-formatter-4.0.2.tgz",
- "integrity": "sha512-R6u9GJRiXZLr/lDo8p56L+OyyN2QFJPCDnsyEOsbdIpsnDKL8gubYFo7lNR7Zx7hfdWT80SfkoVS0CMaF/DE2w==",
- "dev": true,
- "dependencies": {
- "argparse": "^2.0.1"
- },
- "bin": {
- "sql-formatter": "bin/sqlfmt.js"
- }
- },
- "node_modules/vite": {
- "version": "5.4.21",
- "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz",
- "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "esbuild": "^0.21.3",
- "postcss": "^8.4.43",
- "rollup": "^4.20.0"
- },
- "bin": {
- "vite": "bin/vite.js"
- },
- "engines": {
- "node": "^18.0.0 || >=20.0.0"
- },
- "funding": {
- "url": "https://github.com/vitejs/vite?sponsor=1"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.3"
- },
- "peerDependencies": {
- "@types/node": "^18.0.0 || >=20.0.0",
- "less": "*",
- "lightningcss": "^1.21.0",
- "sass": "*",
- "sass-embedded": "*",
- "stylus": "*",
- "sugarss": "*",
- "terser": "^5.4.0"
- },
- "peerDependenciesMeta": {
- "@types/node": {
- "optional": true
- },
- "less": {
- "optional": true
- },
- "lightningcss": {
- "optional": true
- },
- "sass": {
- "optional": true
- },
- "sass-embedded": {
- "optional": true
- },
- "stylus": {
- "optional": true
- },
- "sugarss": {
- "optional": true
- },
- "terser": {
- "optional": true
- }
- }
- },
- "node_modules/vue": {
- "version": "3.5.43",
- "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.43.tgz",
- "integrity": "sha512-o5qZoksdnjIKvW1srZ3ab7pcDNYAerBjRe54D0LBLfRdCYFrSgBHVXokMas35czQc0//lmx4/tuY4ZNQ+Rf2Ng==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vue/compiler-dom": "3.5.43",
- "@vue/compiler-sfc": "3.5.43",
- "@vue/runtime-dom": "3.5.43",
- "@vue/server-renderer": "3.5.43",
- "@vue/shared": "3.5.43"
- },
- "peerDependencies": {
- "typescript": "*"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/vue-json-pretty": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/vue-json-pretty/-/vue-json-pretty-2.4.0.tgz",
- "integrity": "sha512-e9bP41DYYIc2tWaB6KuwqFJq5odZ8/GkE6vHQuGcbPn37kGk4a3n1RNw3ZYeDrl66NWXgTlOfS+M6NKkowmkWw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 10.0.0",
- "npm": ">= 5.0.0"
- },
- "peerDependencies": {
- "vue": ">=3.0.0"
- }
- },
- "node_modules/vue-router": {
- "version": "4.4.4",
- "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.4.4.tgz",
- "integrity": "sha512-3MlnDqwRwZwCQVbtVfpsU+nrNymNjnXSsQtXName5925NVC1+326VVfYH9vSrA0N13teGEo8z5x7gbRnGjCDiQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vue/devtools-api": "^6.6.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/posva"
- },
- "peerDependencies": {
- "vue": "^3.2.0"
- }
- }
- }
-}
diff --git a/src/horizon/package.json b/src/horizon/package.json
index 98b1897f07..0978b23a9a 100644
--- a/src/horizon/package.json
+++ b/src/horizon/package.json
@@ -1,32 +1,30 @@
{
- "name": "hypervel-horizon",
+ "name": "@hypervel/horizon",
"private": true,
"type": "module",
"scripts": {
- "build": "vite build",
- "watch": "vite build --watch"
- },
- "devEngines": {
- "packageManager": {
- "name": "npm",
- "version": ">=11.10.0"
- }
+ "build": "vp build",
+ "watch": "vp build --watch",
+ "test": "vp test"
},
"devDependencies": {
- "@vitejs/plugin-vue": "^5.1.3",
- "axios": "^1.20.0",
- "bootstrap": "~5.1.3",
+ "@popperjs/core": "catalog:",
+ "@vitejs/plugin-vue": "catalog:",
+ "@vue/compiler-dom": "catalog:",
+ "@vue/server-renderer": "catalog:",
+ "@vue/test-utils": "catalog:",
+ "axios": "catalog:",
+ "bootstrap": "catalog:",
"chart.js": "^2.9.4",
- "highlight.js": "^10.7.3",
- "md5": "^2.3.0",
+ "jsdom": "catalog:",
"moment": "^2.31.0",
- "moment-timezone": "^0.5.45",
+ "moment-timezone": "catalog:",
"phpunserialize": "^1.3.0",
- "sass": "^1.105.0",
- "sql-formatter": "^4.0.2",
- "vite": "^5.4.21",
- "vue": "^3.5.43",
- "vue-json-pretty": "^2.4.0",
- "vue-router": "^4.4.4"
+ "sass": "catalog:",
+ "vite": "catalog:",
+ "vite-plus": "catalog:",
+ "vue": "catalog:",
+ "vue-json-pretty": "catalog:",
+ "vue-router": "catalog:"
}
}
diff --git a/src/horizon/vite.config.js b/src/horizon/vite.config.js
index bbc1ce2cdb..b4a58f0074 100644
--- a/src/horizon/vite.config.js
+++ b/src/horizon/vite.config.js
@@ -1,11 +1,16 @@
import vue from '@vitejs/plugin-vue';
+import { defineConfig } from 'vite-plus';
-/** @type {import('vite').UserConfig} */
-export default {
+export default defineConfig({
plugins: [vue()],
+ test: {
+ name: 'horizon',
+ environment: 'jsdom',
+ include: ['resources/js/**/*.test.js'],
+ },
build: {
assetsDir: '',
- rollupOptions: {
+ rolldownOptions: {
input: ['resources/js/app.js', 'resources/sass/styles.scss', 'resources/sass/styles-dark.scss'],
output: {
entryFileNames: '[name].js',
@@ -19,4 +24,4 @@ export default {
'@': '/resources/js',
},
},
-};
+});
diff --git a/src/telescope/.npmrc b/src/telescope/.npmrc
deleted file mode 100644
index 63d512ea37..0000000000
--- a/src/telescope/.npmrc
+++ /dev/null
@@ -1,6 +0,0 @@
-# Supply-chain defense: require packages to be at least 7 days old.
-# Compromised packages typically get yanked within hours; this buffer
-# dramatically reduces the chance of pulling a malicious release.
-# npm measures this value in days.
-min-release-age=7
-ignore-scripts=true
diff --git a/src/telescope/package-lock.json b/src/telescope/package-lock.json
deleted file mode 100644
index e39ba7b9f6..0000000000
--- a/src/telescope/package-lock.json
+++ /dev/null
@@ -1,3070 +0,0 @@
-{
- "name": "telescope",
- "lockfileVersion": 3,
- "requires": true,
- "packages": {
- "": {
- "devDependencies": {
- "@popperjs/core": "^2.11.8",
- "@vitejs/plugin-vue": "^6.0.10",
- "@vue/compiler-dom": "^3.5.44",
- "@vue/server-renderer": "^3.5.44",
- "@vue/test-utils": "^2.5.1",
- "axios": "^1.20.0",
- "bootstrap": "^5.3.8",
- "copy-to-clipboard": "^3.3.3",
- "highlight.js": "^11.3.1",
- "jsdom": "^30.1.2",
- "lodash": "^4.18.1",
- "moment": "^2.31.0",
- "moment-timezone": "^0.5.45",
- "sass": "^1.74.1",
- "sql-formatter": "^15.6.2",
- "vite": "^8.3.5",
- "vitest": "^5.0.5",
- "vue": "^3.5.44",
- "vue-json-pretty": "^2.6.0",
- "vue-router": "^4.6.4"
- },
- "engines": {
- "node": "^22.22.2 || ^24.15.0 || >=26.0.0"
- }
- },
- "node_modules/@asamuzakjp/css-color": {
- "version": "7.1.5",
- "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-7.1.5.tgz",
- "integrity": "sha512-jCpAvj8apa7SKHZYogk0rbXB3Kb0hLFrpkWF+Ap+vBA5rirItnpv9NKyAyEuDuFizvl0qwnj6JWR70RGJ0rOlw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@csstools/css-calc": "^3.4.3",
- "@csstools/css-color-parser": "^4.2.6",
- "@csstools/css-parser-algorithms": "^4.0.2",
- "@csstools/css-tokenizer": "^4.0.2",
- "lru-cache": "^11.5.3"
- },
- "engines": {
- "node": "^22.22.2 || ^24.15.0 || >=26.0.0"
- }
- },
- "node_modules/@asamuzakjp/dom-selector": {
- "version": "9.2.4",
- "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-9.2.4.tgz",
- "integrity": "sha512-YnVzxDxLaqL0t7Q4wfcgHZjg55Wm6y5EaO7Bhu3q9J7wq/8iw3PhsnWiOQhYekx4VexnbkgWpTT6n+QIV7kczw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "bidi-js": "^1.1.0",
- "css-tree": "^3.2.1",
- "is-potential-custom-element-name": "^1.0.1",
- "lru-cache": "^11.5.3"
- },
- "engines": {
- "node": "^22.22.2 || ^24.15.0 || >=26.0.0"
- }
- },
- "node_modules/@babel/helper-string-parser": {
- "version": "7.29.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz",
- "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-validator-identifier": {
- "version": "7.29.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz",
- "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/parser": {
- "version": "7.29.9",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.9.tgz",
- "integrity": "sha512-CjXrNHTnvqBVqHgdBysY3vk2T8tpJHb5/RMeHJBTyVa9xgugCB0CJTx/3oO8RV2QRQP391RWpB7D6hLjm8V9uA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/types": "^7.29.8"
- },
- "bin": {
- "parser": "bin/babel-parser.js"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@babel/types": {
- "version": "7.29.8",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.8.tgz",
- "integrity": "sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-string-parser": "^7.29.7",
- "@babel/helper-validator-identifier": "^7.29.7"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@bramus/specificity": {
- "version": "2.4.3",
- "resolved": "https://registry.npmjs.org/@bramus/specificity/-/specificity-2.4.3.tgz",
- "integrity": "sha512-0GEz8qJWokkUVYQYRukmkSHIFNoBH8QTreeHrAFbvz1XFYc3Y+puhMs8PQ5x8GNugiC2l5jvDBXKLbBIByeSBw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "css-tree": "^3.2.1"
- },
- "bin": {
- "specificity": "bin/cli.js"
- }
- },
- "node_modules/@csstools/color-helpers": {
- "version": "6.1.2",
- "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-6.1.2.tgz",
- "integrity": "sha512-grhRy3OKmniaAEKXMjua5z/EODX0MSqBGjunw8+j/3HQjOnahs2AGhvEOIYVUWcU6ScApbhLhVrQTX8XqrMrow==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "engines": {
- "node": ">=20.19.0"
- }
- },
- "node_modules/@csstools/css-calc": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.4.3.tgz",
- "integrity": "sha512-iex20d8CHVkyvg6B7UKV7uHnI2Bqo9g+EFfT9E0y+GvTvhZ/DwONJ+9aKb1dlqm0ZiGsL5RXjp0fCoJYnkeDjA==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT",
- "engines": {
- "node": ">=20.19.0"
- },
- "peerDependencies": {
- "@csstools/css-parser-algorithms": "^4.0.2",
- "@csstools/css-tokenizer": "^4.0.2"
- }
- },
- "node_modules/@csstools/css-color-parser": {
- "version": "4.2.6",
- "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.2.6.tgz",
- "integrity": "sha512-iiPQ3iRWwnJkeEn6RIu6SJPr7hYrLz6XZ9s/QZl+2/LI5KQVjpl2fdmDSZKuD4xP6GMmMPgHFFXg6k1Wkz0Trg==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "@csstools/color-helpers": "^6.1.2",
- "@csstools/css-calc": "^3.4.3"
- },
- "engines": {
- "node": ">=20.19.0"
- },
- "peerDependencies": {
- "@csstools/css-parser-algorithms": "^4.0.2",
- "@csstools/css-tokenizer": "^4.0.2"
- }
- },
- "node_modules/@csstools/css-parser-algorithms": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-4.0.2.tgz",
- "integrity": "sha512-40cSKyMvK+tq4qz6Awrlye2WGuOKt3FwPgtGg6KTfbHOWNw+Rk1rzbAtZnZ6IBhsY491HLRnDXwoyBAijmmILA==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT",
- "engines": {
- "node": ">=20.19.0"
- },
- "peerDependencies": {
- "@csstools/css-tokenizer": "^4.0.2"
- }
- },
- "node_modules/@csstools/css-syntax-patches-for-csstree": {
- "version": "1.1.15",
- "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.15.tgz",
- "integrity": "sha512-J0u7HkVl2nzSlhsiTOp4AmwcUQ3D+mGEEKfBy/7To5/y7F2OHwyLrXfrhR0SMgr4p5Lo+eaMVSeai24zUcBIxA==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "peerDependencies": {
- "css-tree": "^3.2.1"
- },
- "peerDependenciesMeta": {
- "css-tree": {
- "optional": true
- }
- }
- },
- "node_modules/@csstools/css-tokenizer": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-4.0.2.tgz",
- "integrity": "sha512-OoKoR0f76dCY666JlcbhmVTs2drYj1GUXZTYTcbUgJjh9Nv41aFfZ21bPQTERm5+L5cBDo466NltB2lplS5GBw==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT",
- "engines": {
- "node": ">=20.19.0"
- }
- },
- "node_modules/@exodus/bytes": {
- "version": "1.16.0",
- "resolved": "https://registry.npmjs.org/@exodus/bytes/-/bytes-1.16.0.tgz",
- "integrity": "sha512-IcpW84uEn3N7ETtNZMlxKhfl6Pec8rUNGOTBtWbK1FKhJxIFAptZyVrvVRVBimAJxJCgc3PxepxkdWWG4DVzfA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
- },
- "peerDependencies": {
- "@noble/hashes": "^1.8.0 || ^2.0.0"
- },
- "peerDependenciesMeta": {
- "@noble/hashes": {
- "optional": true
- }
- }
- },
- "node_modules/@jridgewell/resolve-uri": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
- "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz",
- "integrity": "sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.31",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
- "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/resolve-uri": "^3.1.0",
- "@jridgewell/sourcemap-codec": "^1.4.14"
- }
- },
- "node_modules/@one-ini/wasm": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/@one-ini/wasm/-/wasm-0.2.1.tgz",
- "integrity": "sha512-TUqERXGNTifZ9y2g3wPxQrw3HpHv/02DsW3D90T9x0hhonrL1ZqpSmNrU2XkoIq0fP1N6gZfVQzy2Fw1ZvGBNg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@oxc-project/types": {
- "version": "0.154.0",
- "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.154.0.tgz",
- "integrity": "sha512-KYOUGQFlLWR+s4QMV2Q9ko38TZm7EdO87Qm7rvZLqk/webse/cDjtyxKhg/47l0byCbs/k46LT8qc4PKjAikzA==",
- "dev": true,
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/oxc-project"
- }
- },
- "node_modules/@parcel/watcher": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.6.0.tgz",
- "integrity": "sha512-7FNeNl8NCE7aINx7WXiKQrPYZWC/hvrTsmk6zmxbI7LTXE7hVek/n8AfVgpe2y82zl3w0HvCHN0bVKMBoJcC0w==",
- "dev": true,
- "hasInstallScript": true,
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "detect-libc": "^2.0.3",
- "is-glob": "^4.0.3",
- "node-addon-api": "^7.0.0",
- "picomatch": "^4.0.4"
- },
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- },
- "optionalDependencies": {
- "@parcel/watcher-android-arm64": "2.6.0",
- "@parcel/watcher-darwin-arm64": "2.6.0",
- "@parcel/watcher-darwin-x64": "2.6.0",
- "@parcel/watcher-freebsd-x64": "2.6.0",
- "@parcel/watcher-linux-arm-glibc": "2.6.0",
- "@parcel/watcher-linux-arm-musl": "2.6.0",
- "@parcel/watcher-linux-arm64-glibc": "2.6.0",
- "@parcel/watcher-linux-arm64-musl": "2.6.0",
- "@parcel/watcher-linux-x64-glibc": "2.6.0",
- "@parcel/watcher-linux-x64-musl": "2.6.0",
- "@parcel/watcher-win32-arm64": "2.6.0",
- "@parcel/watcher-win32-x64": "2.6.0"
- }
- },
- "node_modules/@parcel/watcher-android-arm64": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.6.0.tgz",
- "integrity": "sha512-trgpLSCKRC/huFjXX/Smh+0sWe4+YtKfktIToiMl59ghz7z+qkH6kMvNnUbLyRs9N11t8l4svSCs1+5B3rOAhA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-darwin-arm64": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.6.0.tgz",
- "integrity": "sha512-Y3QV0gl7Q1zbfueunkWIERICbEojQFCgpyG7YqOGNFLsckXyI1xu9mAIUpKY9QBYzBtSkN8dBPwd3yiAO9ovMw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-darwin-x64": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.6.0.tgz",
- "integrity": "sha512-Ohv6OpzhUfKYD7Beb8kDvG0jbIxORCYY1JRdZnaBtnjjkJxgD7ZVL0nw2sCYd0yTMKTvz3nnTnOF3cDifK+kvw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-freebsd-x64": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.6.0.tgz",
- "integrity": "sha512-5HmXvDgs8VK+74jF9y9/2FE3/OnlcKmc56tjmSrEuZjpSZOGL+fvAu+HKJBdPs9uwoP2hE6TlSUpXZ/C5jUFmQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-linux-arm-glibc": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.6.0.tgz",
- "integrity": "sha512-Ps/hui3A+vMbjdqlqAowK2ZL8+BO8dBjxeWXj6npTBs3jx4wWmbPpaLuqwrQrSqIVMCnpWo238bJ1U37GhQOYg==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-linux-arm-musl": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.6.0.tgz",
- "integrity": "sha512-9c6AUHgHoG+IY88MRIHupztQiQnrbqHYQjkM2btA+Bf/wQnQMuiD0Wfk1EVv3TlNT3x41uU71rn6E4xh/+zvkw==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-linux-arm64-glibc": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.6.0.tgz",
- "integrity": "sha512-yHRqS2owEXe6Hic9z6Mh1ECsCd+ODVOGvZDyciqRd21+v+o+DnXMOrw50DSpIG2sb8GPEaPPmfeCAWKPJdq46g==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-linux-arm64-musl": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.6.0.tgz",
- "integrity": "sha512-WhB2e/V7rqdHHWZusBSPuy5Ei8S6lSz6FE5TKKQz5h3a0O+C+mhY7vxU9b/stqvMb8beLnPY82ZrFTLKs+SrKA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-linux-x64-glibc": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.6.0.tgz",
- "integrity": "sha512-ulGE6x6Oz6iAwg75T8YQSoguBWasniIbX+QWpaYPcCnDOpdWX3k+4xbEYPZVLxOuoJI+svJJPD3sEj8G7lrQ3A==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-linux-x64-musl": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.6.0.tgz",
- "integrity": "sha512-tkBYKt7YQrjIJWYDnto2YgO8MRkjlMTSNoRHzsXinBqbLdeOM3L32wPZJvIZxqaLMfSlS/4sUjH/6STVP/XDLw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-win32-arm64": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.6.0.tgz",
- "integrity": "sha512-gIZAP23jaHjGWasY/TY6yL7NHFClf0Ga7FN+iINvk+KN94rhm94lYZhFsbYFNcA04/onvGD9kKmiJLJB2HbNwQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-win32-x64": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.6.0.tgz",
- "integrity": "sha512-cA+/pXV2YkfxlIcXOQ5fSWqAzzPyD78/x5qbK/I0vUkrlYHA8TIz+MXjAbGouguKVSI4bOmkTSJ1/poVSsgt+A==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@popperjs/core": {
- "version": "2.11.8",
- "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
- "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==",
- "dev": true,
- "license": "MIT",
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/popperjs"
- }
- },
- "node_modules/@rolldown/binding-android-arm-eabi": {
- "version": "1.2.14",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm-eabi/-/binding-android-arm-eabi-1.2.14.tgz",
- "integrity": "sha512-aWR+XKH9+rW7m5fWq/5360J3mHycrx/o6xZM2DQFdJnTMdyP7/WzxPjhtLbVWdKo2y612/4U1bWqb3HQhiF7vg==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-android-arm64": {
- "version": "1.2.14",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.14.tgz",
- "integrity": "sha512-QiVxHofl6A8lQU7WAtOUY4QMVZXohxwz7WJJoeh8NBEUyKfIkMRKhYyq8az/1RypNiIXzNTtiS6KwHz0erxYRQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-darwin-arm64": {
- "version": "1.2.14",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.14.tgz",
- "integrity": "sha512-lTQOzHuBIooh3jIr5XINQkjPGEuGy+Dsy0meXDr6Sjty0b99kYgGh4uBC/8mJX1T0kC8d6S0aPP1Y+bHkh6aBw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-darwin-x64": {
- "version": "1.2.14",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.14.tgz",
- "integrity": "sha512-hyMKEGatjmBYCs/Q4sbIcL/GqpFEqsX3wc+HYVQ/85A4rxc1o7rPm4DUI4GV4k/h0ITddwFSGpqQunI14GXjTA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-freebsd-x64": {
- "version": "1.2.14",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.14.tgz",
- "integrity": "sha512-u371GbXoVXrEgP20PwzoGNOdAOqAMhzo19JzzY+V4YmmnC+DTOoqdbMu+O+54emM59Mik/UdrtWgcuEDKWRPKA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-linux-arm-gnueabihf": {
- "version": "1.2.14",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.14.tgz",
- "integrity": "sha512-BqwKsdZQf6EqVWr8fv2MrDYzAvOZ7+NYFSJESRGs87fkseEhs0TU9TXgRJTkZoRRkxTizyEg1LKUXfU3/78uqg==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-linux-arm64-gnu": {
- "version": "1.2.14",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.14.tgz",
- "integrity": "sha512-SD9kY8M009x/7s57Z1dgUVlP5+uYBgKQK0Tkr1WIWngrtUJmRCW1RJFMY7QDla2khXhmg2i5Io7MUjcmZNZ/KQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-linux-arm64-musl": {
- "version": "1.2.14",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.14.tgz",
- "integrity": "sha512-BJ2CL19M6uuWesMgnqJzgxoI+N+eV7b0A9O9vLV42y+gitC41fNa8KElau1tHVzuLWX5GzEuxMPhAO0tQXQMkg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "libc": [
- "musl"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-linux-ppc64-gnu": {
- "version": "1.2.14",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.14.tgz",
- "integrity": "sha512-4+Kl8daPV8NDHaD7mfCcc1pRM+Qg7ab8DyMm5FG5WoZgv4h2i3KFN1CybYBNbQqmuYm7ftJLvmMI1eHYJ22S/Q==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-linux-s390x-gnu": {
- "version": "1.2.14",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.14.tgz",
- "integrity": "sha512-V/h8ePq1fKDrmtFMz6xcCN3DKvuvMRrwwD1q0PkBeeo4DpK64biaKvqWGVxqCeYKqeRk7gE7/iKPxLCn08O97A==",
- "cpu": [
- "s390x"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-linux-x64-gnu": {
- "version": "1.2.14",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.14.tgz",
- "integrity": "sha512-WxalXzgrLVpKC93xfpaJ3gCXUWzeCr+FRCbDVD2mUAy4L6Vo3lNVz0epUEUpxPWJkLNYUwM4OSIikv36OJ9mLg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-linux-x64-musl": {
- "version": "1.2.14",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.14.tgz",
- "integrity": "sha512-3G3tnAmTpdk9jO3GQtyHXqeFD2SlecfTws/Y3M2mmj9nMBwwuLT4kur8sZKeu7ENUHSpVO3cIsm5A52LEWWwlg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "libc": [
- "musl"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-openharmony-arm64": {
- "version": "1.2.14",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.14.tgz",
- "integrity": "sha512-qyr5XiNGxm2ytx17vvtcJ9nXn6v1gENETi503bJx3OGwZ1tSonj7BosxbMa/xeAfSl5iS9X6KjEWYXLu6v1L7Q==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openharmony"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-win32-arm64-msvc": {
- "version": "1.2.14",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.14.tgz",
- "integrity": "sha512-oA4o5o0S2yB199YyYXDzKUv1Z56Rc+mgOjwm7Z/vJ9Z8igiDPYvoOuDyo6g7AK/ZaF09nPhDKVnGBcYHO11GXA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-win32-x64-msvc": {
- "version": "1.2.14",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.14.tgz",
- "integrity": "sha512-9mE94bf2GZUaR/fUSXCMpBoWkctu421Mi0ORpm4zqfbkjKep7RxzPFa5etcGs5h+2KApoWBOA/hAJa/7saGgEQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/pluginutils": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz",
- "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/chai": {
- "version": "5.2.3",
- "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz",
- "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/deep-eql": "*",
- "assertion-error": "^2.0.1"
- }
- },
- "node_modules/@types/deep-eql": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz",
- "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/estree": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz",
- "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@vitejs/plugin-vue": {
- "version": "6.0.10",
- "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.10.tgz",
- "integrity": "sha512-b80aUQh3n+qEzzZm5oQp3rT2QImeCx58K6eFl/RkJ3d65KW0kTuv5lNsLRVAjbW9YRUpo/wzmvzMgV34bTAItA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@rolldown/pluginutils": "^1.0.1"
- },
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- },
- "peerDependencies": {
- "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0",
- "vue": "^3.2.25 || ^3.6.0-rc.10"
- }
- },
- "node_modules/@vitest/mocker": {
- "version": "5.0.5",
- "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-5.0.5.tgz",
- "integrity": "sha512-xLL3lkDegJZw+MGoGaCCsFayDZthGgpAtr3Vziyfc4p7xH89K7KRPcRBBh/kEYm0Aqkt5DtTmkYpBtRV/FrHZg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/trace-mapping": "0.3.31",
- "@vitest/spy": "5.0.5",
- "estree-walker": "^3.0.3",
- "magic-string": "^1.4.3"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- },
- "peerDependencies": {
- "msw": "^2.4.9 || ^3.0.0",
- "vite": "^6.0.0 || ^7.0.0 || ^8.0.0"
- },
- "peerDependenciesMeta": {
- "msw": {
- "optional": true
- },
- "vite": {
- "optional": true
- }
- }
- },
- "node_modules/@vitest/mocker/node_modules/estree-walker": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
- "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/estree": "^1.0.0"
- }
- },
- "node_modules/@vitest/spy": {
- "version": "5.0.5",
- "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-5.0.5.tgz",
- "integrity": "sha512-lwJRExuH417257Q5wv9QYugN9IMJkoxcrKrYxGPQkBzl7wlNpTUxD/5yNX4ESKVUIShKPgkGchYPFMWOOk0wzw==",
- "dev": true,
- "license": "MIT",
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/@vue/compiler-core": {
- "version": "3.5.44",
- "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.44.tgz",
- "integrity": "sha512-k34nCytbK8PQ1gR2mGROYOw6Pnv/mumqIdrZ3x2tbyXZDWm7ViKGLTfdB+DRrWqEQsLgGJvn0WN9jBif5zCTLQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/parser": "^7.29.9",
- "@vue/shared": "3.5.44",
- "entities": "^7.0.1",
- "estree-walker": "^2.0.2",
- "source-map-js": "^1.2.2"
- }
- },
- "node_modules/@vue/compiler-core/node_modules/entities": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz",
- "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==",
- "dev": true,
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=0.12"
- },
- "funding": {
- "url": "https://github.com/fb55/entities?sponsor=1"
- }
- },
- "node_modules/@vue/compiler-dom": {
- "version": "3.5.44",
- "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.44.tgz",
- "integrity": "sha512-W5AoBFWdw1lQAKiHowkfgFKFab82oSRT6sGsPfw/q1GRjsy/ZJFLHGhJyBRIFN9APLTUduDH9U2JAiPOIyKuYg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vue/compiler-core": "3.5.44",
- "@vue/shared": "3.5.44"
- }
- },
- "node_modules/@vue/compiler-sfc": {
- "version": "3.5.44",
- "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.44.tgz",
- "integrity": "sha512-dzHmQ4jXTpdr5FjIQUeykVakN/uzqFbUo9/C5ikBFg3a3PeM6uRxeczx1ZbXBML0/zJstEh3ygYipzR5Z7b2Pw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/parser": "^7.29.9",
- "@vue/compiler-core": "3.5.44",
- "@vue/compiler-dom": "3.5.44",
- "@vue/compiler-ssr": "3.5.44",
- "@vue/shared": "3.5.44",
- "estree-walker": "^2.0.2",
- "magic-string": "^0.30.21",
- "postcss": "^8.5.29",
- "source-map-js": "^1.2.2"
- }
- },
- "node_modules/@vue/compiler-sfc/node_modules/magic-string": {
- "version": "0.30.21",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
- "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/sourcemap-codec": "^1.5.5"
- }
- },
- "node_modules/@vue/compiler-ssr": {
- "version": "3.5.44",
- "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.44.tgz",
- "integrity": "sha512-xr5gb1JVHlfXJwSlRz1FeP6uxoazdzHuMTVLE7up+4Vrqxk219CvxLPxD9NXBt47yvZW7+p4DXfyp4O1fkByIA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vue/compiler-dom": "3.5.44",
- "@vue/shared": "3.5.44"
- }
- },
- "node_modules/@vue/devtools-api": {
- "version": "6.6.4",
- "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz",
- "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@vue/reactivity": {
- "version": "3.5.44",
- "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.44.tgz",
- "integrity": "sha512-u+QJdKeBBEADkPdevsL+6E12QlYVfBD8Zcw5qjDQKtamI6l14KyqazJMobhCKelhWN5zpyKUiEDoTyHE93cqWw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vue/shared": "3.5.44"
- }
- },
- "node_modules/@vue/runtime-core": {
- "version": "3.5.44",
- "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.44.tgz",
- "integrity": "sha512-uEa/ndwjhrrhnOfb2p+sZy6zeoamJOISqaLSJGk/8R6nABT1ZldpzcJoPzKj+zHVomVBPcmQYyC2r4LtvDV6CQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vue/reactivity": "3.5.44",
- "@vue/shared": "3.5.44"
- }
- },
- "node_modules/@vue/runtime-dom": {
- "version": "3.5.44",
- "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.44.tgz",
- "integrity": "sha512-3fc4ARcXVhVBaJ3ujWiNZJARD6pkyRcwG+ZYhMzjKtKUp7MAY0HLwr7r3Smep3Li6ZaWT6ewdmx8XqdaD5oNZg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vue/reactivity": "3.5.44",
- "@vue/runtime-core": "3.5.44",
- "@vue/shared": "3.5.44",
- "csstype": "^3.2.3"
- }
- },
- "node_modules/@vue/server-renderer": {
- "version": "3.5.44",
- "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.44.tgz",
- "integrity": "sha512-R4S1UoH4h5Frrauv8Z5XE5TxV9oBiUSgWIC4TyVK1FK+RocRnOLwFA5Xcmo2011RlgJp+AbZCnw6afrhlgRuUQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vue/compiler-ssr": "3.5.44",
- "@vue/runtime-dom": "3.5.44",
- "@vue/shared": "3.5.44"
- }
- },
- "node_modules/@vue/shared": {
- "version": "3.5.44",
- "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.44.tgz",
- "integrity": "sha512-H82XLH0DjmSOdbEwO15x3QTo1f5PWEtv237eLpYKc0mqLu+B8hnq16lFWmuBmNurkeiG3wr+oM1FhOll/YVFRg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@vue/test-utils": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/@vue/test-utils/-/test-utils-2.5.1.tgz",
- "integrity": "sha512-V/4a99odJ7hapr0bRt35XxljGk8hefq31gSOnlKTcEq2fUeoj2qb+FcpJYfQu4qfYhW9Ug+O2+CZ3QmZ7gXDzA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "js-beautify": "^2.0.0",
- "vue-component-type-helpers": "^3.0.0"
- },
- "peerDependencies": {
- "@vue/compiler-dom": "3.x",
- "@vue/server-renderer": "3.x",
- "vue": "3.x"
- },
- "peerDependenciesMeta": {
- "@vue/server-renderer": {
- "optional": true
- }
- }
- },
- "node_modules/abbrev": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-5.0.0.tgz",
- "integrity": "sha512-/XrFJgzQQQHpti1raDJC6m4ws6aNktmjBlhk8Fdlk7LwCEuDoieEJJY9OFHjfiFJFFRM2tK+Ky/IsfbbmlMu1w==",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": "^22.22.2 || ^24.15.0 || >=26.0.0"
- }
- },
- "node_modules/agent-base": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
- "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "debug": "4"
- },
- "engines": {
- "node": ">= 6.0.0"
- }
- },
- "node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true,
- "license": "Python-2.0"
- },
- "node_modules/assertion-error": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz",
- "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/axios": {
- "version": "1.20.0",
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.20.0.tgz",
- "integrity": "sha512-r8aOh8j9cGKpgQAqpzrUHnSIc6a59Y3Xf/cv8sy1DrHCkZHzQGEuoq1tARk6qSyDdtQGSDgpb9kFlruzPvrgwg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "follow-redirects": "^1.16.0",
- "form-data": "^4.0.6",
- "https-proxy-agent": "^5.0.1",
- "proxy-from-env": "^2.1.0"
- }
- },
- "node_modules/balanced-match": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
- "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "18 || 20 || >=22"
- }
- },
- "node_modules/bidi-js": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-1.1.0.tgz",
- "integrity": "sha512-fX1Onk0tdVPC7obPWB5EbJ1z7NVhLq4m2xZLq2YXBkxzMXIGRpNMU88n0EPgWseKl12J7zXs7qrDxPK4sRs2fg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "require-from-string": "^2.0.2"
- }
- },
- "node_modules/bootstrap": {
- "version": "5.3.8",
- "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.8.tgz",
- "integrity": "sha512-HP1SZDqaLDPwsNiqRqi5NcP0SSXciX2s9E+RyqJIIqGo+vJeN5AJVM98CXmW/Wux0nQ5L7jeWUdplCEf0Ee+tg==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/twbs"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/bootstrap"
- }
- ],
- "license": "MIT",
- "peerDependencies": {
- "@popperjs/core": "^2.11.8"
- }
- },
- "node_modules/brace-expansion": {
- "version": "5.0.12",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.12.tgz",
- "integrity": "sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^4.0.2"
- },
- "engines": {
- "node": "20 || >=22"
- }
- },
- "node_modules/call-bind-apply-helpers": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
- "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/chai": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/chai/-/chai-6.3.0.tgz",
- "integrity": "sha512-XWAtwJ6OHO+tj0EKCs0Y2UamnyOxseZWltU4x2U2wh8g4AigdjwvtUjvLP2tqkA/avxHEtzxNaqGq/YGNwckKg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/chokidar": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz",
- "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "readdirp": "^5.0.0"
- },
- "engines": {
- "node": ">= 20.19.0"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- }
- },
- "node_modules/combined-stream": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "delayed-stream": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/commander": {
- "version": "2.20.3",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
- "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/config-chain": {
- "version": "1.1.13",
- "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz",
- "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ini": "^1.3.4",
- "proto-list": "~1.2.1"
- }
- },
- "node_modules/copy-to-clipboard": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz",
- "integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "toggle-selection": "^1.0.6"
- }
- },
- "node_modules/css-tree": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz",
- "integrity": "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "mdn-data": "2.27.1",
- "source-map-js": "^1.2.1"
- },
- "engines": {
- "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
- }
- },
- "node_modules/csstype": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
- "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/data-urls": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-8.0.0.tgz",
- "integrity": "sha512-JQUCCK+/CAGbGGx618PlFZMXH81Jtj7t73CHv9dd/zVWvxgGT2zLFRjnKb+Ng46GIwcy+f7f88qd4duqllK+WQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "whatwg-mimetype": "^5.0.0",
- "whatwg-url": "^17.1.2"
- },
- "engines": {
- "node": "^22.14.0 || >=24.0.0"
- }
- },
- "node_modules/debug": {
- "version": "4.4.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
- "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ms": "^2.1.3"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/decimal.js": {
- "version": "10.6.0",
- "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz",
- "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/detect-libc": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
- "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/discontinuous-range": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz",
- "integrity": "sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/dunder-proto": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
- "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind-apply-helpers": "^1.0.1",
- "es-errors": "^1.3.0",
- "gopd": "^1.2.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/editorconfig": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-3.0.2.tgz",
- "integrity": "sha512-T0ix8GhtxyKVfUFEcvdNDt3YGqlwkFHbD4/5bgFUDgFmxhI/cSRAeJ87/Sz//Cq8Eam6JX/e23RkoFO71P7aAA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@one-ini/wasm": "0.2.1",
- "commander": "^14.0.3",
- "minimatch": "~10.2.4",
- "semver": "^7.7.4"
- },
- "bin": {
- "editorconfig": "bin/editorconfig"
- },
- "engines": {
- "node": ">=20"
- }
- },
- "node_modules/editorconfig/node_modules/commander": {
- "version": "14.0.3",
- "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz",
- "integrity": "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=20"
- }
- },
- "node_modules/entities": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-8.1.0.tgz",
- "integrity": "sha512-kxL7msIffSuh9aaFAMD7rxAIuTRMAHMeBtgHW2yUdWw732ZNh4MehkF2gdjvtdmikkaIP9bFDDJOPlsvm7avrA==",
- "dev": true,
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=20.19.0"
- },
- "funding": {
- "url": "https://github.com/fb55/entities?sponsor=1"
- }
- },
- "node_modules/es-define-property": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
- "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-errors": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
- "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-module-lexer": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.3.2.tgz",
- "integrity": "sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/es-object-atoms": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz",
- "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "es-errors": "^1.3.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-set-tostringtag": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
- "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.6",
- "has-tostringtag": "^1.0.2",
- "hasown": "^2.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/estree-walker": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
- "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/expect-type": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.4.0.tgz",
- "integrity": "sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": ">=12.0.0"
- }
- },
- "node_modules/fdir": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
- "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12.0.0"
- },
- "peerDependencies": {
- "picomatch": "^3 || ^4"
- },
- "peerDependenciesMeta": {
- "picomatch": {
- "optional": true
- }
- }
- },
- "node_modules/follow-redirects": {
- "version": "1.16.1",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.1.tgz",
- "integrity": "sha512-FNvFGzoMLWmE6Yj9spb/zjd7yiNCHiAW9/Tg9CXrQ8wuu32HtlJOwWO11OJafl5FfY3DxTdQ0vj42zU1kvv5jg==",
- "dev": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://github.com/sponsors/RubenVerborgh"
- }
- ],
- "license": "MIT",
- "engines": {
- "node": ">=4.0"
- },
- "peerDependenciesMeta": {
- "debug": {
- "optional": true
- }
- }
- },
- "node_modules/form-data": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz",
- "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.8",
- "es-set-tostringtag": "^2.1.0",
- "hasown": "^2.0.4",
- "mime-types": "^2.1.35"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "dev": true,
- "hasInstallScript": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
- "node_modules/function-bind": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
- "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
- "dev": true,
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/get-intrinsic": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
- "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind-apply-helpers": "^1.0.2",
- "es-define-property": "^1.0.1",
- "es-errors": "^1.3.0",
- "es-object-atoms": "^1.1.1",
- "function-bind": "^1.1.2",
- "get-proto": "^1.0.1",
- "gopd": "^1.2.0",
- "has-symbols": "^1.1.0",
- "hasown": "^2.0.2",
- "math-intrinsics": "^1.1.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/get-proto": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
- "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "dunder-proto": "^1.0.1",
- "es-object-atoms": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/glob": {
- "version": "13.0.6",
- "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz",
- "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==",
- "dev": true,
- "license": "BlueOak-1.0.0",
- "dependencies": {
- "minimatch": "^10.2.2",
- "minipass": "^7.1.3",
- "path-scurry": "^2.0.2"
- },
- "engines": {
- "node": "18 || 20 || >=22"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/gopd": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
- "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-symbols": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
- "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-tostringtag": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
- "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-symbols": "^1.0.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/hasown": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz",
- "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "function-bind": "^1.1.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/highlight.js": {
- "version": "11.11.1",
- "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.11.1.tgz",
- "integrity": "sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==",
- "dev": true,
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=12.0.0"
- }
- },
- "node_modules/html-encoding-sniffer": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-7.0.0.tgz",
- "integrity": "sha512-UikN5yr7xsCDAq87Or5or0PAlD3HJJOKVzM05az588WnpDJ4Ux7a2A53Qi6gofGg2/EtvF/H4hCi/TXfCW4Y6w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@exodus/bytes": "^1.15.1"
- },
- "engines": {
- "node": "^22.13.0 || >=24.0.0"
- }
- },
- "node_modules/https-proxy-agent": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
- "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "agent-base": "6",
- "debug": "4"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/immutable": {
- "version": "5.1.9",
- "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.9.tgz",
- "integrity": "sha512-m8nVez3rwrgmWxtLMt1ZYXB2Lv7OKYn/disyxAlSDYAlKSlFoPPfIAmAM/M5xqL4m4C/wAPw7S2/CNaUii1Hxg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/ini": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
- "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-glob": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "is-extglob": "^2.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-potential-custom-element-name": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
- "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/js-beautify": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-2.0.3.tgz",
- "integrity": "sha512-cyFbh3tkPhknnTD/0bLf0T0yy2ZIbqL05mttzbt4y1Zfr7NxqXQZ62dkBLKs3oHH/lpjmDRAnciJiSUyOy8XwQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "config-chain": "^1.1.13",
- "editorconfig": "^3.0.2",
- "glob": "^13.0.6",
- "js-cookie": "^3.0.8",
- "nopt": "^10.0.1"
- },
- "bin": {
- "css-beautify": "js/bin/css-beautify.js",
- "html-beautify": "js/bin/html-beautify.js",
- "js-beautify": "js/bin/js-beautify.js"
- },
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/js-cookie": {
- "version": "3.0.8",
- "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.8.tgz",
- "integrity": "sha512-yeJd4aNAdYZQjaon2bpD/Gb0B/omw7HQOsynXXcOiWVCacbBcPlgn8S/d1X6blFSaHao7ozqtW7NZW19xpCtIw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/jsdom": {
- "version": "30.1.2",
- "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-30.1.2.tgz",
- "integrity": "sha512-0FFE/jE1rppmVfUrJUgxqXjcwolZYIGtAgj1pTussMhNZxIxi7W/PvfWaMNroGi2B36X1IKHbexpZ9DhkoOPiQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@asamuzakjp/css-color": "^7.1.3",
- "@asamuzakjp/dom-selector": "^9.2.4",
- "@bramus/specificity": "^2.4.2",
- "@csstools/css-syntax-patches-for-csstree": "^1.1.15",
- "@exodus/bytes": "^1.16.0",
- "css-tree": "^3.2.1",
- "data-urls": "^8.0.0",
- "decimal.js": "^10.6.0",
- "html-encoding-sniffer": "^7.0.0",
- "is-potential-custom-element-name": "^1.0.1",
- "lru-cache": "^11.5.3",
- "parse5": "^8.0.1",
- "saxes": "^6.0.0",
- "tough-cookie": "^6.0.2",
- "undici": "^8.11.2",
- "w3c-xmlserializer": "^6.0.0",
- "webidl-conversions": "^8.0.1",
- "whatwg-mimetype": "^5.0.0",
- "whatwg-url": "^17.2.0",
- "xml-name-validator": "^5.0.0"
- },
- "engines": {
- "node": "^22.22.2 || ^24.15.0 || >=26.0.0"
- },
- "peerDependencies": {
- "canvas": "^3.2.3"
- },
- "peerDependenciesMeta": {
- "canvas": {
- "optional": true
- }
- }
- },
- "node_modules/lightningcss": {
- "version": "1.33.0",
- "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.33.0.tgz",
- "integrity": "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==",
- "dev": true,
- "license": "MPL-2.0",
- "dependencies": {
- "detect-libc": "^2.0.3"
- },
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- },
- "optionalDependencies": {
- "lightningcss-android-arm64": "1.33.0",
- "lightningcss-darwin-arm64": "1.33.0",
- "lightningcss-darwin-x64": "1.33.0",
- "lightningcss-freebsd-x64": "1.33.0",
- "lightningcss-linux-arm-gnueabihf": "1.33.0",
- "lightningcss-linux-arm64-gnu": "1.33.0",
- "lightningcss-linux-arm64-musl": "1.33.0",
- "lightningcss-linux-x64-gnu": "1.33.0",
- "lightningcss-linux-x64-musl": "1.33.0",
- "lightningcss-win32-arm64-msvc": "1.33.0",
- "lightningcss-win32-x64-msvc": "1.33.0"
- }
- },
- "node_modules/lightningcss-android-arm64": {
- "version": "1.33.0",
- "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.33.0.tgz",
- "integrity": "sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-darwin-arm64": {
- "version": "1.33.0",
- "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.33.0.tgz",
- "integrity": "sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-darwin-x64": {
- "version": "1.33.0",
- "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.33.0.tgz",
- "integrity": "sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-freebsd-x64": {
- "version": "1.33.0",
- "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.33.0.tgz",
- "integrity": "sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-arm-gnueabihf": {
- "version": "1.33.0",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.33.0.tgz",
- "integrity": "sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-arm64-gnu": {
- "version": "1.33.0",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.33.0.tgz",
- "integrity": "sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-arm64-musl": {
- "version": "1.33.0",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.33.0.tgz",
- "integrity": "sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "libc": [
- "musl"
- ],
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-x64-gnu": {
- "version": "1.33.0",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.33.0.tgz",
- "integrity": "sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-x64-musl": {
- "version": "1.33.0",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.33.0.tgz",
- "integrity": "sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "libc": [
- "musl"
- ],
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-win32-arm64-msvc": {
- "version": "1.33.0",
- "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.33.0.tgz",
- "integrity": "sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-win32-x64-msvc": {
- "version": "1.33.0",
- "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.33.0.tgz",
- "integrity": "sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lodash": {
- "version": "4.18.1",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz",
- "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/lru-cache": {
- "version": "11.5.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.3.tgz",
- "integrity": "sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==",
- "dev": true,
- "license": "BlueOak-1.0.0",
- "engines": {
- "node": "20 || >=22"
- }
- },
- "node_modules/magic-string": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-1.4.3.tgz",
- "integrity": "sha512-z12OxmaPGE0F4xlpGdjuAUckipLpQlTAuAmyGhNoD7ODpYUzvDfvtxUbjM/jwznyP178oju/KDdyi220wNJ0RQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/sourcemap-codec": "^1.6.0"
- }
- },
- "node_modules/math-intrinsics": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
- "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/mdn-data": {
- "version": "2.27.1",
- "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz",
- "integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==",
- "dev": true,
- "license": "CC0-1.0"
- },
- "node_modules/mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "mime-db": "1.52.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/minimatch": {
- "version": "10.2.6",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz",
- "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==",
- "dev": true,
- "license": "BlueOak-1.0.0",
- "dependencies": {
- "brace-expansion": "^5.0.8"
- },
- "engines": {
- "node": "18 || 20 || >=22"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/minipass": {
- "version": "7.1.3",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz",
- "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==",
- "dev": true,
- "license": "BlueOak-1.0.0",
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/moment": {
- "version": "2.31.0",
- "resolved": "https://registry.npmjs.org/moment/-/moment-2.31.0.tgz",
- "integrity": "sha512-0acOTfMiWOheYS4eoWb80yYMb/JLvVv9SHbs2PehaDzfUG0Bw855SKyk0IKTnPGa5+U2bmi3W68l1+sGLX/pvw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "*"
- }
- },
- "node_modules/moment-timezone": {
- "version": "0.5.48",
- "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.48.tgz",
- "integrity": "sha512-f22b8LV1gbTO2ms2j2z13MuPogNoh5UzxL3nzNAYKGraILnbGc9NEE6dyiiiLv46DGRb8A4kg8UKWLjPthxBHw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "moment": "^2.29.4"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/moo": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.3.tgz",
- "integrity": "sha512-m2fmM2dDm7GZQsY7KK2cme8agi+AAljILjQnof7p1ZMDe6dQ4bdnSMx0cPppudoeNv5hEFQirN6u+O4fDE0IWA==",
- "dev": true,
- "license": "BSD-3-Clause"
- },
- "node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/nanoid": {
- "version": "3.3.20",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.20.tgz",
- "integrity": "sha512-uKdg2G3GNCKQn9byYOpxbGqrT2fGO5KRt5J/8b3pok8rT6qxGWF6hxMyJiEYtAf+FVyYuD9hRaDqX5uPFYJ4ZQ==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "bin": {
- "nanoid": "bin/nanoid.cjs"
- },
- "engines": {
- "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
- }
- },
- "node_modules/nearley": {
- "version": "2.20.1",
- "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.20.1.tgz",
- "integrity": "sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "commander": "^2.19.0",
- "moo": "^0.5.0",
- "railroad-diagrams": "^1.0.0",
- "randexp": "0.4.6"
- },
- "bin": {
- "nearley-railroad": "bin/nearley-railroad.js",
- "nearley-test": "bin/nearley-test.js",
- "nearley-unparse": "bin/nearley-unparse.js",
- "nearleyc": "bin/nearleyc.js"
- },
- "funding": {
- "type": "individual",
- "url": "https://nearley.js.org/#give-to-nearley"
- }
- },
- "node_modules/node-addon-api": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz",
- "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==",
- "dev": true,
- "license": "MIT",
- "optional": true
- },
- "node_modules/nopt": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-10.0.1.tgz",
- "integrity": "sha512-df3sBr/6ax9hSGuC3CspvLlbnX8cP5L5nZwXF8cGN8l0zSWR6BvzmQ6jPUKjvo6+/xdpkNvEcucBNUdBeeV13g==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "abbrev": "^5.0.0"
- },
- "bin": {
- "nopt": "bin/nopt.js"
- },
- "engines": {
- "node": "^22.22.2 || ^24.15.0 || >=26.0.0"
- }
- },
- "node_modules/obug": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/obug/-/obug-3.0.0.tgz",
- "integrity": "sha512-5vvB5+W7ePv+p3uqxi+RcW1XAzLW0/hxt3/4X4Lc4qHudzOhmBiBwOY6DRob4WnanAEGvNcLjF+KNOufrUoEQw==",
- "dev": true,
- "funding": [
- "https://github.com/sponsors/sxzz",
- "https://opencollective.com/debug"
- ],
- "license": "MIT",
- "engines": {
- "node": ">=12.20.0"
- }
- },
- "node_modules/parse5": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.1.tgz",
- "integrity": "sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "entities": "^8.0.0"
- },
- "funding": {
- "url": "https://github.com/inikulin/parse5?sponsor=1"
- }
- },
- "node_modules/path-scurry": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz",
- "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==",
- "dev": true,
- "license": "BlueOak-1.0.0",
- "dependencies": {
- "lru-cache": "^11.0.0",
- "minipass": "^7.1.2"
- },
- "engines": {
- "node": "18 || 20 || >=22"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/picocolors": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
- "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/picomatch": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz",
- "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/postcss": {
- "version": "8.5.31",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.31.tgz",
- "integrity": "sha512-YUbWYCgErwnMAVkjUnYa+KlMBzGpHwiIt/DE7f0G33AuX2LH9UcTk6KgWxd3zRU+pN3u/C+Xl3EnMLM4Hea7Sg==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/postcss"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "nanoid": "^3.3.20",
- "picocolors": "^1.1.1",
- "source-map-js": "^1.2.2"
- },
- "engines": {
- "node": "^10 || ^12 || >=14"
- }
- },
- "node_modules/proto-list": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
- "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/proxy-from-env": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz",
- "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/punycode": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
- "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/railroad-diagrams": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz",
- "integrity": "sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==",
- "dev": true,
- "license": "CC0-1.0"
- },
- "node_modules/randexp": {
- "version": "0.4.6",
- "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz",
- "integrity": "sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "discontinuous-range": "1.0.0",
- "ret": "~0.1.10"
- },
- "engines": {
- "node": ">=0.12"
- }
- },
- "node_modules/readdirp": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz",
- "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 20.19.0"
- },
- "funding": {
- "type": "individual",
- "url": "https://paulmillr.com/funding/"
- }
- },
- "node_modules/require-from-string": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
- "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/ret": {
- "version": "0.1.15",
- "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
- "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.12"
- }
- },
- "node_modules/rolldown": {
- "version": "1.2.14",
- "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.14.tgz",
- "integrity": "sha512-eTBTTqMR6uHKLgcUqpJP8ntzDI6V4LYA8negAMBEI7gkgVvOdrx6VsvS2Ym+83KhOPdLCHWJu0w7UQFJZhHKNw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@oxc-project/types": "=0.154.0",
- "@rolldown/pluginutils": "^1.0.0"
- },
- "bin": {
- "rolldown": "bin/cli.mjs"
- },
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- },
- "optionalDependencies": {
- "@rolldown/binding-android-arm-eabi": "1.2.14",
- "@rolldown/binding-android-arm64": "1.2.14",
- "@rolldown/binding-darwin-arm64": "1.2.14",
- "@rolldown/binding-darwin-x64": "1.2.14",
- "@rolldown/binding-freebsd-x64": "1.2.14",
- "@rolldown/binding-linux-arm-gnueabihf": "1.2.14",
- "@rolldown/binding-linux-arm64-gnu": "1.2.14",
- "@rolldown/binding-linux-arm64-musl": "1.2.14",
- "@rolldown/binding-linux-ppc64-gnu": "1.2.14",
- "@rolldown/binding-linux-s390x-gnu": "1.2.14",
- "@rolldown/binding-linux-x64-gnu": "1.2.14",
- "@rolldown/binding-linux-x64-musl": "1.2.14",
- "@rolldown/binding-openharmony-arm64": "1.2.14",
- "@rolldown/binding-win32-arm64-msvc": "1.2.14",
- "@rolldown/binding-win32-x64-msvc": "1.2.14"
- }
- },
- "node_modules/sass": {
- "version": "1.102.0",
- "resolved": "https://registry.npmjs.org/sass/-/sass-1.102.0.tgz",
- "integrity": "sha512-NSOyTnaQF7rTAEOtI2fwb386vL+akyiQLBZu8Na7hXCb+umJy0GAqlcMIaqACZ6Z1VgTBS4K9PG6B3IdjHGJsw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "chokidar": "^5.0.0",
- "immutable": "^5.1.5",
- "source-map-js": ">=0.6.2 <2.0.0"
- },
- "bin": {
- "sass": "sass.js"
- },
- "engines": {
- "node": ">=20.19.0"
- },
- "optionalDependencies": {
- "@parcel/watcher": "^2.4.1"
- }
- },
- "node_modules/saxes": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz",
- "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "xmlchars": "^2.2.0"
- },
- "engines": {
- "node": ">=v12.22.7"
- }
- },
- "node_modules/semver": {
- "version": "7.8.5",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz",
- "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==",
- "dev": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/source-map-js": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.2.tgz",
- "integrity": "sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw==",
- "dev": true,
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/sql-formatter": {
- "version": "15.8.2",
- "resolved": "https://registry.npmjs.org/sql-formatter/-/sql-formatter-15.8.2.tgz",
- "integrity": "sha512-kTYRg5FIcvsDtYUG2Qn9pYT6xKwiLJN5TTIvc5Mur6hIg4pSfdpHu8Yyu5bqESLHnVM3mXzD446cb2+uEaKZXg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "argparse": "^2.0.1",
- "nearley": "^2.20.1"
- },
- "bin": {
- "sql-formatter": "bin/sql-formatter-cli.cjs"
- }
- },
- "node_modules/std-env": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.3.0.tgz",
- "integrity": "sha512-OtU/EgQ1kIm5KwqQpBC6ZEMXrZRui11w8zgfTWp8cdO9B8OaPsbA8bTHO2P+HNo1VlUTGMVBwPhydu6poeXiag==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/tinybench": {
- "version": "6.2.2",
- "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-6.2.2.tgz",
- "integrity": "sha512-nIZ2N2dFpjBsg2hgitKu7mA+FvsIJuGJOwysRngmVRRmWgR/UyPjwJj8c/fT/dhm8EkHnF5EOogRf+0Z2qrimA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=20.0.0"
- }
- },
- "node_modules/tinyexec": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.3.1.tgz",
- "integrity": "sha512-GCvB3aoys96IuDFBMcTB46JOR6mdMtAToqwiW8JlWhsoh1mhHi/xn9ss/Dg7N555GiJyEt2qzoG/NHCwM6h1EA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tinyglobby": {
- "version": "0.2.17",
- "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz",
- "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "fdir": "^6.5.0",
- "picomatch": "^4.0.4"
- },
- "engines": {
- "node": ">=12.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/SuperchupuDev"
- }
- },
- "node_modules/tldts": {
- "version": "7.4.18",
- "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.4.18.tgz",
- "integrity": "sha512-somxA8xKAUzlAxl0TX/jMSYIbRNFIVGnI96pVGJPeMc5BsHmfVXn6mOJT6U++ELnl04eGfzpfcEuZe8WiASkXg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "tldts-core": "^7.4.18"
- },
- "bin": {
- "tldts": "bin/cli.js"
- }
- },
- "node_modules/tldts-core": {
- "version": "7.4.18",
- "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.4.18.tgz",
- "integrity": "sha512-KI2PKvCmvQI/xD6ypPqkU0i7oxNXR/O58RLRaHR4svsgVUQ2JE/XC8BtMbG6PSehD27I8sZJRcC1ASnCy6lp3g==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/toggle-selection": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz",
- "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/tough-cookie": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.2.tgz",
- "integrity": "sha512-exgYmnmL/sJpR3upZfXG5PoatXQii55xAiXGXzY+sROLZ/Y+SLcp9PgJNI9Vz37HpQ74WvDcLT8eqm+kV3FzrA==",
- "dev": true,
- "license": "BSD-3-Clause",
- "dependencies": {
- "tldts": "^7.0.5"
- },
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/tr46": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-7.0.0.tgz",
- "integrity": "sha512-BcDSDW+SIGWVOns1Zm6Yg91q9AEj7eaID0QDY9oIqJD1A8dscNwMcl9Sms2DeuWCNov1X0/oXanHGYQBSLwZsg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "punycode": "^2.3.1"
- },
- "engines": {
- "node": "^22.14.0 || >=24.0.0"
- }
- },
- "node_modules/undici": {
- "version": "8.12.3",
- "resolved": "https://registry.npmjs.org/undici/-/undici-8.12.3.tgz",
- "integrity": "sha512-+fdndUTwBP86cVjihTp21hZHo7d6oj1c/47XPA3lL8mM0XHs+C4EkcjmgRsFnFk2f/UONGDy9ItBItmXsLOQHw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=22.19.0"
- }
- },
- "node_modules/vite": {
- "version": "8.3.5",
- "resolved": "https://registry.npmjs.org/vite/-/vite-8.3.5.tgz",
- "integrity": "sha512-z1YpjieJ9g0ebTmQpLBv/oq9E3F9EIlOe+7LahW8SrE3LTiG3udBRUXQOlYXP9b+IC2q2phHeVxj9xGlw34OEQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "lightningcss": "^1.33.0",
- "picomatch": "^4.0.7",
- "postcss": "^8.5.30",
- "rolldown": "~1.2.14",
- "tinyglobby": "^0.2.17"
- },
- "bin": {
- "vite": "bin/vite.js"
- },
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- },
- "funding": {
- "url": "https://github.com/vitejs/vite?sponsor=1"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.3"
- },
- "peerDependencies": {
- "@types/node": "^20.19.0 || >=22.12.0",
- "@vitejs/devtools": "^0.7.1 || ^0.8.0",
- "esbuild": "^0.27.0 || ^0.28.0",
- "jiti": ">=1.21.0",
- "less": "^4.0.0",
- "sass": "^1.70.0",
- "sass-embedded": "^1.70.0",
- "stylus": ">=0.54.8",
- "sugarss": "^5.0.0",
- "terser": "^5.16.0",
- "tsx": "^4.8.1",
- "yaml": "^2.4.2"
- },
- "peerDependenciesMeta": {
- "@types/node": {
- "optional": true
- },
- "@vitejs/devtools": {
- "optional": true
- },
- "esbuild": {
- "optional": true
- },
- "jiti": {
- "optional": true
- },
- "less": {
- "optional": true
- },
- "sass": {
- "optional": true
- },
- "sass-embedded": {
- "optional": true
- },
- "stylus": {
- "optional": true
- },
- "sugarss": {
- "optional": true
- },
- "terser": {
- "optional": true
- },
- "tsx": {
- "optional": true
- },
- "yaml": {
- "optional": true
- }
- }
- },
- "node_modules/vitest": {
- "version": "5.0.5",
- "resolved": "https://registry.npmjs.org/vitest/-/vitest-5.0.5.tgz",
- "integrity": "sha512-cPODOMF8YnkiiYtDdHo6n4wWmBrOBBbOIYH2d33M4l3CdNn72h+qMmO6uXffUN6A5AZFXNND/d+krS9mgkXRfg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/chai": "^5.2.2",
- "@vitest/mocker": "5.0.5",
- "chai": "^6.3.0",
- "es-module-lexer": "^2.3.2",
- "expect-type": "^1.4.0",
- "magic-string": "^1.4.3",
- "obug": "^3.0.0",
- "picomatch": "^4.0.7",
- "std-env": "^4.3.0",
- "tinybench": "^6.2.2",
- "tinyexec": "^1.3.1",
- "tinyglobby": "^0.2.17",
- "why-is-node-running": "3.2.1"
- },
- "bin": {
- "vitest": "vitest.mjs"
- },
- "engines": {
- "node": "^22.12.0 || ^24.0.0 || >=26.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- },
- "peerDependencies": {
- "@edge-runtime/vm": "*",
- "@opentelemetry/api": "^1.9.0",
- "@types/node": "^22.0.0 || >=24.0.0",
- "@vitest/browser-playwright": "5.0.5",
- "@vitest/browser-preview": "5.0.5",
- "@vitest/browser-webdriverio": "^5.0.0-beta.5 || >=5.0.0",
- "@vitest/coverage-istanbul": "5.0.5",
- "@vitest/coverage-v8": "5.0.5",
- "@vitest/ui": "5.0.5",
- "happy-dom": "*",
- "jsdom": "*",
- "vite": "^6.4.0 || ^7.0.0 || ^8.0.0"
- },
- "peerDependenciesMeta": {
- "@edge-runtime/vm": {
- "optional": true
- },
- "@opentelemetry/api": {
- "optional": true
- },
- "@types/node": {
- "optional": true
- },
- "@vitest/browser-playwright": {
- "optional": true
- },
- "@vitest/browser-preview": {
- "optional": true
- },
- "@vitest/browser-webdriverio": {
- "optional": true
- },
- "@vitest/coverage-istanbul": {
- "optional": true
- },
- "@vitest/coverage-v8": {
- "optional": true
- },
- "@vitest/ui": {
- "optional": true
- },
- "happy-dom": {
- "optional": true
- },
- "jsdom": {
- "optional": true
- },
- "vite": {
- "optional": false
- }
- }
- },
- "node_modules/vue": {
- "version": "3.5.44",
- "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.44.tgz",
- "integrity": "sha512-dvvmaOCG7lAMkJTPqPwWeGMsPS6DIsFsfZDUgBp9V6mHf9b3+/wyVwYR4Es+WV6uJC0FKRxp81Obcq0ZwUcGFQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vue/compiler-dom": "3.5.44",
- "@vue/compiler-sfc": "3.5.44",
- "@vue/runtime-dom": "3.5.44",
- "@vue/server-renderer": "3.5.44",
- "@vue/shared": "3.5.44"
- },
- "peerDependencies": {
- "typescript": "*"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/vue-component-type-helpers": {
- "version": "3.3.13",
- "resolved": "https://registry.npmjs.org/vue-component-type-helpers/-/vue-component-type-helpers-3.3.13.tgz",
- "integrity": "sha512-02KCxSmKDhIITjKyJ4QT5csP6L0WoRborLqY/34a40+S9uvMvdNgMV0yVjO3p2Gkz3ZoPmFz/0JsGHacwJYTxw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/vue-json-pretty": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/vue-json-pretty/-/vue-json-pretty-2.6.0.tgz",
- "integrity": "sha512-glz1aBVS35EO8+S9agIl3WOQaW2cJZW192UVKTuGmryx01ZvOVWc4pR3t+5UcyY4jdOfBUgVHjcpRpcnjRhCAg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 10.0.0",
- "npm": ">= 5.0.0"
- },
- "peerDependencies": {
- "vue": ">=3.0.0"
- }
- },
- "node_modules/vue-router": {
- "version": "4.6.4",
- "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.6.4.tgz",
- "integrity": "sha512-Hz9q5sa33Yhduglwz6g9skT8OBPii+4bFn88w6J+J4MfEo4KRRpmiNG/hHHkdbRFlLBOqxN8y8gf2Fb0MTUgVg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vue/devtools-api": "^6.6.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/posva"
- },
- "peerDependencies": {
- "vue": "^3.5.0"
- }
- },
- "node_modules/w3c-xmlserializer": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-6.0.0.tgz",
- "integrity": "sha512-4Nsy8K5Tr6SPDH9jhKJOHf7ChDrc1zufZTVSF7x72hwuEXBqxqk9G6cK+K2NRUtB3iELRJqjXb4JPDMBjMTl2Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "xml-name-validator": "^5.0.0"
- },
- "engines": {
- "node": "^22.22.2 || ^24.15.0 || >=26.0.0"
- }
- },
- "node_modules/webidl-conversions": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-8.0.1.tgz",
- "integrity": "sha512-BMhLD/Sw+GbJC21C/UgyaZX41nPt8bUTg+jWyDeg7e7YN4xOM05YPSIXceACnXVtqyEw/LMClUQMtMZ+PGGpqQ==",
- "dev": true,
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=20"
- }
- },
- "node_modules/whatwg-mimetype": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-5.0.0.tgz",
- "integrity": "sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=20"
- }
- },
- "node_modules/whatwg-url": {
- "version": "17.2.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-17.2.0.tgz",
- "integrity": "sha512-IhLIHNcBrzIixC5XXsbr4DxdjajyA5vQ5RwGZMtrUp+GbtE5Nrsge9QKau7jXrC0aTXLYGV0xiW7Tb4YS2aomw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@exodus/bytes": "^1.16.0",
- "tr46": "^7.0.0",
- "webidl-conversions": "^8.0.1"
- },
- "engines": {
- "node": "^22.14.0 || >=24.0.0"
- }
- },
- "node_modules/why-is-node-running": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-3.2.1.tgz",
- "integrity": "sha512-Tb2FUhB4vUsGQlfSquQLYkApkuPAFQXGFzxWKHHumVz2dK+X1RUm/HnID4+TfIGYJ1kTcwOaCk/buYCEJr6YjQ==",
- "dev": true,
- "license": "MIT",
- "bin": {
- "why-is-node-running": "cli.js"
- },
- "engines": {
- "node": ">=20.11"
- }
- },
- "node_modules/xml-name-validator": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz",
- "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/xmlchars": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
- "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
- "dev": true,
- "license": "MIT"
- }
- }
-}
diff --git a/src/telescope/package.json b/src/telescope/package.json
index 283cc85ea2..b4bfa7ce7f 100644
--- a/src/telescope/package.json
+++ b/src/telescope/package.json
@@ -1,41 +1,32 @@
{
+ "name": "@hypervel/telescope",
"private": true,
"type": "module",
"scripts": {
- "build": "vite build",
- "test": "vitest run",
- "test:watch": "vitest",
- "watch": "vite build --watch"
- },
- "devEngines": {
- "packageManager": {
- "name": "npm",
- "version": ">=11.10.0"
- }
+ "build": "vp build",
+ "test": "vp test",
+ "test:watch": "vp test watch",
+ "watch": "vp build --watch"
},
"devDependencies": {
- "@popperjs/core": "^2.11.8",
- "@vitejs/plugin-vue": "^6.0.10",
- "@vue/compiler-dom": "^3.5.44",
- "@vue/server-renderer": "^3.5.44",
- "@vue/test-utils": "^2.5.1",
- "axios": "^1.20.0",
- "bootstrap": "^5.3.8",
+ "@popperjs/core": "catalog:",
+ "@vitejs/plugin-vue": "catalog:",
+ "@vue/compiler-dom": "catalog:",
+ "@vue/server-renderer": "catalog:",
+ "@vue/test-utils": "catalog:",
+ "axios": "catalog:",
+ "bootstrap": "catalog:",
"copy-to-clipboard": "^3.3.3",
"highlight.js": "^11.3.1",
- "jsdom": "^30.1.2",
+ "jsdom": "catalog:",
"lodash": "^4.18.1",
- "moment": "^2.31.0",
- "moment-timezone": "^0.5.45",
- "sass": "^1.74.1",
+ "moment-timezone": "catalog:",
+ "sass": "catalog:",
"sql-formatter": "^15.6.2",
- "vite": "^8.3.5",
- "vitest": "^5.0.5",
- "vue": "^3.5.44",
- "vue-json-pretty": "^2.6.0",
- "vue-router": "^4.6.4"
- },
- "engines": {
- "node": "^22.22.2 || ^24.15.0 || >=26.0.0"
+ "vite": "catalog:",
+ "vite-plus": "catalog:",
+ "vue": "catalog:",
+ "vue-json-pretty": "catalog:",
+ "vue-router": "catalog:"
}
}
diff --git a/src/telescope/vite.config.js b/src/telescope/vite.config.js
index ae36b05306..08e58f1110 100644
--- a/src/telescope/vite.config.js
+++ b/src/telescope/vite.config.js
@@ -1,8 +1,13 @@
import vue from '@vitejs/plugin-vue';
-import { defineConfig } from 'vite';
+import { defineConfig } from 'vite-plus';
export default defineConfig({
plugins: [vue()],
+ test: {
+ name: 'telescope',
+ environment: 'jsdom',
+ include: ['resources/js/**/*.test.js'],
+ },
build: {
assetsDir: '',
rolldownOptions: {
diff --git a/src/telescope/vitest.config.js b/src/telescope/vitest.config.js
deleted file mode 100644
index 81b7888fd8..0000000000
--- a/src/telescope/vitest.config.js
+++ /dev/null
@@ -1,10 +0,0 @@
-import vue from '@vitejs/plugin-vue';
-import { defineConfig } from 'vitest/config';
-
-export default defineConfig({
- plugins: [vue()],
- test: {
- environment: 'jsdom',
- include: ['resources/js/**/*.test.js'],
- },
-});
diff --git a/src/wayfinder/package.json b/src/wayfinder/package.json
index 10391c6b02..98d4acba7b 100644
--- a/src/wayfinder/package.json
+++ b/src/wayfinder/package.json
@@ -3,11 +3,14 @@
"private": true,
"type": "module",
"scripts": {
- "test": "vitest run",
- "test:cached": "WAYFINDER_CACHE_ROUTES=1 vitest run",
+ "test": "vp test",
+ "test:cached": "WAYFINDER_CACHE_ROUTES=1 vp test",
"typecheck": "php tests/generate.php tests/.generated && tsc --noEmit --project tsconfig.json"
},
"devDependencies": {
- "happy-dom": "^20.14.5"
+ "@types/node": "catalog:",
+ "happy-dom": "^21.0.4",
+ "typescript": "catalog:",
+ "vite-plus": "catalog:"
}
}
diff --git a/src/wayfinder/vitest.config.ts b/src/wayfinder/vite.config.ts
similarity index 56%
rename from src/wayfinder/vitest.config.ts
rename to src/wayfinder/vite.config.ts
index 284f2815d0..a8c7764355 100644
--- a/src/wayfinder/vitest.config.ts
+++ b/src/wayfinder/vite.config.ts
@@ -1,14 +1,14 @@
-import { defineConfig } from 'vitest/config';
+import { defineProject } from "vite-plus";
// Vitest tests import from ./tests/.generated/ — TypeScript files that
// generate.php produces by running wayfinder:generate against the
// fixture routes at tests/Wayfinder/Fixtures/routes.php. The globalSetup
// regenerates that tree before each run.
-export default defineConfig({
+export default defineProject({
test: {
- name: 'wayfinder',
- include: ['tests/**/*.test.ts'],
- environment: 'happy-dom',
- globalSetup: './tests/build.ts',
+ name: "wayfinder",
+ include: ["tests/**/*.test.ts"],
+ environment: "happy-dom",
+ globalSetup: "./tests/build.ts",
},
});
diff --git a/src/workbench/.npmrc b/src/workbench/.npmrc
deleted file mode 100644
index 63d512ea37..0000000000
--- a/src/workbench/.npmrc
+++ /dev/null
@@ -1,6 +0,0 @@
-# Supply-chain defense: require packages to be at least 7 days old.
-# Compromised packages typically get yanked within hours; this buffer
-# dramatically reduces the chance of pulling a malicious release.
-# npm measures this value in days.
-min-release-age=7
-ignore-scripts=true
diff --git a/src/workbench/package-lock.json b/src/workbench/package-lock.json
deleted file mode 100644
index 2e560efd6b..0000000000
--- a/src/workbench/package-lock.json
+++ /dev/null
@@ -1,1982 +0,0 @@
-{
- "name": "hypervel-workbench",
- "lockfileVersion": 3,
- "requires": true,
- "packages": {
- "": {
- "name": "hypervel-workbench",
- "devDependencies": {
- "@tailwindcss/forms": "^0.5.11",
- "alpinejs": "^3.17.3",
- "autoprefixer": "^10.6.1",
- "laravel-vite-plugin": "^3.2.0",
- "postcss": "^8.5.28",
- "tailwindcss": "^3.4.19",
- "vite": "^8.3.0"
- }
- },
- "node_modules/@alloc/quick-lru": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.3.0.tgz",
- "integrity": "sha512-U4+70Pc5ZS9osnCBCE5Jha/ciHM+Yp+CNMNC/7HvYbNRk1Ldd+f7qO65W5qfhu/TCv+/ozljlXXe9Nj8419DMA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.13",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
- "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/sourcemap-codec": "^1.5.0",
- "@jridgewell/trace-mapping": "^0.3.24"
- }
- },
- "node_modules/@jridgewell/resolve-uri": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
- "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz",
- "integrity": "sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.31",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
- "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/resolve-uri": "^3.1.0",
- "@jridgewell/sourcemap-codec": "^1.4.14"
- }
- },
- "node_modules/@nodelib/fs.scandir": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
- "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@nodelib/fs.stat": "2.0.5",
- "run-parallel": "^1.1.9"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@nodelib/fs.stat": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
- "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@nodelib/fs.walk": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
- "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@nodelib/fs.scandir": "2.1.5",
- "fastq": "^1.6.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@oxc-project/types": {
- "version": "0.150.0",
- "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.150.0.tgz",
- "integrity": "sha512-rDS5/31E9HfPl/CIzGrn0DOlvBbXFseQ5URJ9sYMfstbKLD/c6Gm9vmRzRGDdAXyOIL4zmO37lc9RIwYqVruZw==",
- "dev": true,
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/oxc-project"
- }
- },
- "node_modules/@rolldown/binding-android-arm-eabi": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm-eabi/-/binding-android-arm-eabi-1.2.9.tgz",
- "integrity": "sha512-tNISae1QEf/vkb3xkRcjV5SEdzPE97We5IVaa2Z8jSszQPZ8U60B/YCYpw4QI7VidYsBtKavczXf+DyDs9WGxw==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-android-arm64": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.9.tgz",
- "integrity": "sha512-YC8YsI30o606GTZi0VyzYlsDKFP8W61i/QzayHDkLbNEz/IShqAmTa+hsJRj13xTHA0H+6fk4b2UmGn+Q/cMlg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-darwin-arm64": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.9.tgz",
- "integrity": "sha512-IwhlH3qK5urrY8hZiEgGkHKEFN901p/p2bjxCxJlr4GyNnF7wYpUvK+Y43uaRYuC4hpfjzbR3SJC3arX1jGvmw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-darwin-x64": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.9.tgz",
- "integrity": "sha512-XxpJfVzFh+jilRxIXUqcfYAYcunIc/XEzIizsOL1fcJee5Sf7H3mH8WlLmfHfluz5amqR88QQo9izKtmMlavAw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-freebsd-x64": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.9.tgz",
- "integrity": "sha512-kSfvhmgeWyfkbT3p/1s5vSgboogoah2zkm9fX2zjg2hHxSV7T4KhMWRUUaRk4OXNqoD3QAUeRqLcs1aZOK4U1g==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-linux-arm-gnueabihf": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.9.tgz",
- "integrity": "sha512-1RVzG17pxqbTfYLC352JlLt6kKLG+6Hr30n8DlIJqsnV5luUDd2Qdx9Ayw1Cabfyb1K9k0jXEZ7evxkRoT+uiw==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-linux-arm64-gnu": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.9.tgz",
- "integrity": "sha512-BXqPvZ2drqVD+/Z8UpKwcs4Mp7grM+eGFku4CAEKrEtcbAsUpzREphK1sogCRZGreVPiMkiiBtw0n3TPteuqvw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-linux-arm64-musl": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.9.tgz",
- "integrity": "sha512-11vWvo8YDwLzukt27J3aYDWU+gg2P7J+ZOmiJ0hkF5BXZDW7pVya7r40MXDy6ya0i9KamoENSVKIugvJNgFXIA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "libc": [
- "musl"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-linux-ppc64-gnu": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.9.tgz",
- "integrity": "sha512-a1tijMkdwsIARtc0F39ApURROkf3NwqinI6TOiSSWCTR7dT96dffNvMUtDHnq64wKNTIZOIlzKrFvvFUznJiyw==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-linux-s390x-gnu": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.9.tgz",
- "integrity": "sha512-x6SQNdAvv4c3hWqTMaWuawzMX9myaCs/yEmlGsxJzkdClnHW7FbrjQuSiRDhuSYzEYoEMhsaJy9qHG/XNemJPQ==",
- "cpu": [
- "s390x"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-linux-x64-gnu": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.9.tgz",
- "integrity": "sha512-9s0AZ8BFK5/n7B/TBoa2yJE3gI3KURrbXcPBlsAsvjU4VeJKgE90y1YtNxyEUIcHPQkg6/yfF3qihUrcM/Kf0Q==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-linux-x64-musl": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.9.tgz",
- "integrity": "sha512-P7VWAmV+WdJluH7ovnRGoiv2i8To7GAZ+kGzfGup635cyL7SyYl3lSUaA3Gp5THf0n/Co5EyEqb2zbqq+nMOHQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "libc": [
- "musl"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-openharmony-arm64": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.9.tgz",
- "integrity": "sha512-1qixtsE4BK8h+yS3BfmZ09UhA7O/N4IACva6YBr7EBvCJraByTuRcgOTaiA62Tm0vey3UcKXLOaoGHtYmNGEVg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openharmony"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-win32-arm64-msvc": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.9.tgz",
- "integrity": "sha512-ok8IQjcEPs1AKZfuEUznVBrJw+gK4soq+bx8b1X2XoMqVClarc1q5JDmVtWXY1xfr6ZuHTAsPXHTgTrqKTZeww==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/binding-win32-x64-msvc": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.9.tgz",
- "integrity": "sha512-Ip2mXoU0hM0boq3Rf+ekuT653OROSo6aSYcPT1VHE4q52KvyxgFkQgrgb/IEsxOuvQ2fZZbs8khJAyCEPM24/g==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@rolldown/pluginutils": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz",
- "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@tailwindcss/forms": {
- "version": "0.5.11",
- "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.11.tgz",
- "integrity": "sha512-h9wegbZDPurxG22xZSoWtdzc41/OlNEUQERNqI/0fOwa2aVlWGu7C35E/x6LDyD3lgtztFSSjKZyuVM0hxhbgA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "mini-svg-data-uri": "^1.2.3"
- },
- "peerDependencies": {
- "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20 || >= 4.0.0-beta.1"
- }
- },
- "node_modules/@vue/reactivity": {
- "version": "3.5.43",
- "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.43.tgz",
- "integrity": "sha512-G/c9GyOZNI2jVaaS6OX1EF1SSFSv7H0ERqNTl4+DTFMlZmB5eVAB53aLQNam/7NL2NPtaDD7RdVrzf8uJzMuOA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vue/shared": "3.5.43"
- }
- },
- "node_modules/@vue/shared": {
- "version": "3.5.43",
- "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.43.tgz",
- "integrity": "sha512-uksS7YGMR5NZyr4JNq0Rp+QyLns0ueaz20KwzIPW9R0LH1Vnt4E+XUM29PNseEbf1www2gOuhuDi5AKOIXag9Q==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/alpinejs": {
- "version": "3.17.3",
- "resolved": "https://registry.npmjs.org/alpinejs/-/alpinejs-3.17.3.tgz",
- "integrity": "sha512-hIfoRTBBeHMeMu6gXuKwwNoY6pJ7bwpZ91dXVrqRhUhHFOyGr4S21sUYqbxPY5Cnjo0RAmPZVRRZw1becRyV0Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vue/reactivity": "~3.5.40"
- }
- },
- "node_modules/any-promise": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
- "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/anymatch": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
- "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/arg": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
- "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/autoprefixer": {
- "version": "10.6.1",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.6.1.tgz",
- "integrity": "sha512-cL1Qz6ADZhcEbny/8HPfe99J6HhNoYtpX2LFLIbhgGE7Q1hlQVkYFdetDN7Id3KiQxhDrHwzlHr/YQCnZ8+xSA==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/autoprefixer"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "browserslist": "^4.28.9",
- "caniuse-lite": "^1.0.30001810",
- "fraction.js": "^5.3.4",
- "picocolors": "^1.1.1",
- "postcss-value-parser": "^4.2.0"
- },
- "bin": {
- "autoprefixer": "bin/autoprefixer"
- },
- "engines": {
- "node": "^10 || ^12 || >=14"
- },
- "peerDependencies": {
- "postcss": "^8.1.0"
- }
- },
- "node_modules/baseline-browser-mapping": {
- "version": "2.11.25",
- "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.25.tgz",
- "integrity": "sha512-gMmEShwwq7FJqMwvfRwvCl00v4kN+KOfJqXn+f4nrufak5gNHJOksd/60Dvjuz7sI8Y5WiSFBa8FEYr+zoyqCw==",
- "dev": true,
- "license": "Apache-2.0",
- "bin": {
- "baseline-browser-mapping": "dist/cli.cjs"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/binary-extensions": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
- "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/braces": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
- "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "fill-range": "^7.1.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/browserslist": {
- "version": "4.29.0",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.29.0.tgz",
- "integrity": "sha512-3GSvyjvDI4Dur1Meg2BekJquu5uF+9R9a1+5M1Mde192eZoXbeXjzgOsgqPS2V8D5wrrip0gR5Hf/GhWQ9ZzaA==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "baseline-browser-mapping": "^2.11.23",
- "caniuse-lite": "^1.0.30001810",
- "electron-to-chromium": "^1.5.427",
- "node-releases": "^2.0.55",
- "update-browserslist-db": "^1.3.3"
- },
- "bin": {
- "browserslist": "cli.js"
- },
- "engines": {
- "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
- }
- },
- "node_modules/camelcase-css": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
- "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/caniuse-lite": {
- "version": "1.0.30001810",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001810.tgz",
- "integrity": "sha512-TITQPUkaz+aVk5GL6NhOdwk1aEaNTSDPsGFWrTuhKGtjTF70jL/Oht2W4c6rXUe5fu7Ie19VIahAXHIIiWWNeg==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "CC-BY-4.0"
- },
- "node_modules/chokidar": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
- "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "anymatch": "~3.1.2",
- "braces": "~3.0.2",
- "glob-parent": "~5.1.2",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.6.0"
- },
- "engines": {
- "node": ">= 8.10.0"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.2"
- }
- },
- "node_modules/chokidar/node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/commander": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
- "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/cssesc": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
- "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
- "dev": true,
- "license": "MIT",
- "bin": {
- "cssesc": "bin/cssesc"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/detect-libc": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
- "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/didyoumean": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
- "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
- "dev": true,
- "license": "Apache-2.0"
- },
- "node_modules/dlv": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
- "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/electron-to-chromium": {
- "version": "1.5.433",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.433.tgz",
- "integrity": "sha512-5lCAbyZBjtmUt/RAGHRqrL2q0oEFRThDAsZHHDn9XHa89Qw7gMYOeSicBTy+AHfvo0r6vwsZvqNJTQIQy1BLzA==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/es-errors": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
- "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/escalade": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
- "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/fast-glob": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
- "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@nodelib/fs.stat": "^2.0.2",
- "@nodelib/fs.walk": "^1.2.3",
- "glob-parent": "^5.1.2",
- "merge2": "^1.3.0",
- "micromatch": "^4.0.8"
- },
- "engines": {
- "node": ">=8.6.0"
- }
- },
- "node_modules/fast-glob/node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/fastq": {
- "version": "1.20.3",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.3.tgz",
- "integrity": "sha512-XKv5nnLs6nLF71NgiKJLIZFLkPyIEuOselLG7ujZnGrRfQK8HpvY+WqKhAJUAdLomwVHErVS4LfxFlPq0/FTAw==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "reusify": "^1.0.4"
- }
- },
- "node_modules/fill-range": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
- "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "to-regex-range": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/fraction.js": {
- "version": "5.3.4",
- "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz",
- "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "*"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/rawify"
- }
- },
- "node_modules/fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "dev": true,
- "hasInstallScript": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
- "node_modules/function-bind": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
- "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
- "dev": true,
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/glob-parent": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
- "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "is-glob": "^4.0.3"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/hasown": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz",
- "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "function-bind": "^1.1.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/is-binary-path": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
- "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "binary-extensions": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-core-module": {
- "version": "2.17.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.17.0.tgz",
- "integrity": "sha512-J/vG0zBCbIKOQFfufSwyXdMrsohyJIUNkrnmo6WZGzoM7tr/lsbfW5b2BvisL6zsyMzK9UxV9L6c7AoFbyXHOA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "hasown": "^2.0.4"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-glob": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-extglob": "^2.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.12.0"
- }
- },
- "node_modules/jiti": {
- "version": "1.21.7",
- "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz",
- "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==",
- "dev": true,
- "license": "MIT",
- "bin": {
- "jiti": "bin/jiti.js"
- }
- },
- "node_modules/laravel-vite-plugin": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/laravel-vite-plugin/-/laravel-vite-plugin-3.2.0.tgz",
- "integrity": "sha512-xSxY9Gzeb/eancd8WeK09piAFP+a6i5QIBqNCKNv9L0Eq6wziwzSem7F1GvMSrtjMh5F/QVKFxn8t9naGOA66A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "picocolors": "^1.0.0",
- "tinyglobby": "^0.2.12",
- "vite-plugin-full-reload": "^1.1.0"
- },
- "bin": {
- "clean-orphaned-assets": "bin/clean.js"
- },
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- },
- "peerDependencies": {
- "fontaine": "^0.8.0",
- "vite": "^8.0.0"
- },
- "peerDependenciesMeta": {
- "fontaine": {
- "optional": true
- }
- }
- },
- "node_modules/lightningcss": {
- "version": "1.33.0",
- "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.33.0.tgz",
- "integrity": "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==",
- "dev": true,
- "license": "MPL-2.0",
- "dependencies": {
- "detect-libc": "^2.0.3"
- },
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- },
- "optionalDependencies": {
- "lightningcss-android-arm64": "1.33.0",
- "lightningcss-darwin-arm64": "1.33.0",
- "lightningcss-darwin-x64": "1.33.0",
- "lightningcss-freebsd-x64": "1.33.0",
- "lightningcss-linux-arm-gnueabihf": "1.33.0",
- "lightningcss-linux-arm64-gnu": "1.33.0",
- "lightningcss-linux-arm64-musl": "1.33.0",
- "lightningcss-linux-x64-gnu": "1.33.0",
- "lightningcss-linux-x64-musl": "1.33.0",
- "lightningcss-win32-arm64-msvc": "1.33.0",
- "lightningcss-win32-x64-msvc": "1.33.0"
- }
- },
- "node_modules/lightningcss-android-arm64": {
- "version": "1.33.0",
- "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.33.0.tgz",
- "integrity": "sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-darwin-arm64": {
- "version": "1.33.0",
- "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.33.0.tgz",
- "integrity": "sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-darwin-x64": {
- "version": "1.33.0",
- "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.33.0.tgz",
- "integrity": "sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-freebsd-x64": {
- "version": "1.33.0",
- "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.33.0.tgz",
- "integrity": "sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-arm-gnueabihf": {
- "version": "1.33.0",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.33.0.tgz",
- "integrity": "sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-arm64-gnu": {
- "version": "1.33.0",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.33.0.tgz",
- "integrity": "sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-arm64-musl": {
- "version": "1.33.0",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.33.0.tgz",
- "integrity": "sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "libc": [
- "musl"
- ],
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-x64-gnu": {
- "version": "1.33.0",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.33.0.tgz",
- "integrity": "sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-x64-musl": {
- "version": "1.33.0",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.33.0.tgz",
- "integrity": "sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "libc": [
- "musl"
- ],
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-win32-arm64-msvc": {
- "version": "1.33.0",
- "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.33.0.tgz",
- "integrity": "sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-win32-x64-msvc": {
- "version": "1.33.0",
- "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.33.0.tgz",
- "integrity": "sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lilconfig": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz",
- "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/antonk52"
- }
- },
- "node_modules/lines-and-columns": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/merge2": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/micromatch": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
- "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "braces": "^3.0.3",
- "picomatch": "^2.3.1"
- },
- "engines": {
- "node": ">=8.6"
- }
- },
- "node_modules/mini-svg-data-uri": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz",
- "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==",
- "dev": true,
- "license": "MIT",
- "bin": {
- "mini-svg-data-uri": "cli.js"
- }
- },
- "node_modules/mz": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
- "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "any-promise": "^1.0.0",
- "object-assign": "^4.0.1",
- "thenify-all": "^1.0.0"
- }
- },
- "node_modules/nanoid": {
- "version": "3.3.19",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.19.tgz",
- "integrity": "sha512-Y2tUNy4ouw6tq5oDSKeQYGOyhkUBhNOcGV/02KC+6kd9eDGqdZd++mjMiIDilrBYvjEnCYvVtsuHCuP+okSfug==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "bin": {
- "nanoid": "bin/nanoid.cjs"
- },
- "engines": {
- "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
- }
- },
- "node_modules/node-releases": {
- "version": "2.0.56",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.56.tgz",
- "integrity": "sha512-x0InOIyzgdk+eyaWaRJFH5snEtiImgBgblZ2CyPrLmqqcuMQkEvcDPHbzqbD8eDsSeJbVOjn+crzyzHaM4D+/A==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-hash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
- "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/path-parse": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/picocolors": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
- "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/picomatch": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz",
- "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/pirates": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz",
- "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/postcss": {
- "version": "8.5.28",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.28.tgz",
- "integrity": "sha512-RRuzqDtt5Y9h3quz5hWhK+TPnsmVs6WwSU6LkJMeY4HstUEDuYTG8UJSdawMRzmzAtV+KEoG8N3Qg2qLy5vM/A==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/postcss"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "nanoid": "^3.3.18",
- "picocolors": "^1.1.1",
- "source-map-js": "^1.2.1"
- },
- "engines": {
- "node": "^10 || ^12 || >=14"
- }
- },
- "node_modules/postcss-import": {
- "version": "15.1.0",
- "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
- "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "postcss-value-parser": "^4.0.0",
- "read-cache": "^1.0.0",
- "resolve": "^1.1.7"
- },
- "engines": {
- "node": ">=14.0.0"
- },
- "peerDependencies": {
- "postcss": "^8.0.0"
- }
- },
- "node_modules/postcss-js": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.1.0.tgz",
- "integrity": "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "camelcase-css": "^2.0.1"
- },
- "engines": {
- "node": "^12 || ^14 || >= 16"
- },
- "peerDependencies": {
- "postcss": "^8.4.21"
- }
- },
- "node_modules/postcss-load-config": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz",
- "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "lilconfig": "^3.1.1"
- },
- "engines": {
- "node": ">= 18"
- },
- "peerDependencies": {
- "jiti": ">=1.21.0",
- "postcss": ">=8.0.9",
- "tsx": "^4.8.1",
- "yaml": "^2.4.2"
- },
- "peerDependenciesMeta": {
- "jiti": {
- "optional": true
- },
- "postcss": {
- "optional": true
- },
- "tsx": {
- "optional": true
- },
- "yaml": {
- "optional": true
- }
- }
- },
- "node_modules/postcss-nested": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz",
- "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "postcss-selector-parser": "^6.1.1"
- },
- "engines": {
- "node": ">=12.0"
- },
- "peerDependencies": {
- "postcss": "^8.2.14"
- }
- },
- "node_modules/postcss-selector-parser": {
- "version": "6.1.4",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.4.tgz",
- "integrity": "sha512-bIoJLOmjCO1S9XdY/DcnR5hJxvrDir1PbGChrzXG3vw0/FOliy/fA3dmdhQ441kah4gKv+TwckGzex6wNS5cnQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/postcss-value-parser": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
- "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/queue-microtask": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT"
- },
- "node_modules/read-cache": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.2.tgz",
- "integrity": "sha512-/peqiBB/n07gQGLsWaHho3WfvUyRscw0gYTsEFMhrIe/nWLkYaf5SbKYjGYqtRV3aPwykJgF2VEMo1ac4bnsGA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/readdirp": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "picomatch": "^2.2.1"
- },
- "engines": {
- "node": ">=8.10.0"
- }
- },
- "node_modules/resolve": {
- "version": "1.22.12",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz",
- "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "es-errors": "^1.3.0",
- "is-core-module": "^2.16.1",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- },
- "bin": {
- "resolve": "bin/resolve"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/reusify": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
- "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "iojs": ">=1.0.0",
- "node": ">=0.10.0"
- }
- },
- "node_modules/rolldown": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.9.tgz",
- "integrity": "sha512-hx/Pv0N1haXRb11qkfnK5MXB/iqr7i0yjWQqmO9uHqZpBgQSqzc8UsSnEpalsh+j1I8qQ2CkXAkJC8Br3dKSlg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@oxc-project/types": "=0.150.0",
- "@rolldown/pluginutils": "^1.0.0"
- },
- "bin": {
- "rolldown": "bin/cli.mjs"
- },
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- },
- "optionalDependencies": {
- "@rolldown/binding-android-arm-eabi": "1.2.9",
- "@rolldown/binding-android-arm64": "1.2.9",
- "@rolldown/binding-darwin-arm64": "1.2.9",
- "@rolldown/binding-darwin-x64": "1.2.9",
- "@rolldown/binding-freebsd-x64": "1.2.9",
- "@rolldown/binding-linux-arm-gnueabihf": "1.2.9",
- "@rolldown/binding-linux-arm64-gnu": "1.2.9",
- "@rolldown/binding-linux-arm64-musl": "1.2.9",
- "@rolldown/binding-linux-ppc64-gnu": "1.2.9",
- "@rolldown/binding-linux-s390x-gnu": "1.2.9",
- "@rolldown/binding-linux-x64-gnu": "1.2.9",
- "@rolldown/binding-linux-x64-musl": "1.2.9",
- "@rolldown/binding-openharmony-arm64": "1.2.9",
- "@rolldown/binding-win32-arm64-msvc": "1.2.9",
- "@rolldown/binding-win32-x64-msvc": "1.2.9"
- }
- },
- "node_modules/run-parallel": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
- "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "queue-microtask": "^1.2.2"
- }
- },
- "node_modules/source-map-js": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.2.tgz",
- "integrity": "sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw==",
- "dev": true,
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/sucrase": {
- "version": "3.35.1",
- "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz",
- "integrity": "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.2",
- "commander": "^4.0.0",
- "lines-and-columns": "^1.1.6",
- "mz": "^2.7.0",
- "pirates": "^4.0.1",
- "tinyglobby": "^0.2.11",
- "ts-interface-checker": "^0.1.9"
- },
- "bin": {
- "sucrase": "bin/sucrase",
- "sucrase-node": "bin/sucrase-node"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/supports-preserve-symlinks-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
- "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/tailwindcss": {
- "version": "3.4.19",
- "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.19.tgz",
- "integrity": "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@alloc/quick-lru": "^5.2.0",
- "arg": "^5.0.2",
- "chokidar": "^3.6.0",
- "didyoumean": "^1.2.2",
- "dlv": "^1.1.3",
- "fast-glob": "^3.3.2",
- "glob-parent": "^6.0.2",
- "is-glob": "^4.0.3",
- "jiti": "^1.21.7",
- "lilconfig": "^3.1.3",
- "micromatch": "^4.0.8",
- "normalize-path": "^3.0.0",
- "object-hash": "^3.0.0",
- "picocolors": "^1.1.1",
- "postcss": "^8.4.47",
- "postcss-import": "^15.1.0",
- "postcss-js": "^4.0.1",
- "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0",
- "postcss-nested": "^6.2.0",
- "postcss-selector-parser": "^6.1.2",
- "resolve": "^1.22.8",
- "sucrase": "^3.35.0"
- },
- "bin": {
- "tailwind": "lib/cli.js",
- "tailwindcss": "lib/cli.js"
- },
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/thenify": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
- "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "any-promise": "^1.0.0"
- }
- },
- "node_modules/thenify-all": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
- "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "thenify": ">= 3.1.0 < 4"
- },
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/tinyglobby": {
- "version": "0.2.17",
- "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz",
- "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "fdir": "^6.5.0",
- "picomatch": "^4.0.4"
- },
- "engines": {
- "node": ">=12.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/SuperchupuDev"
- }
- },
- "node_modules/tinyglobby/node_modules/fdir": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
- "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12.0.0"
- },
- "peerDependencies": {
- "picomatch": "^3 || ^4"
- },
- "peerDependenciesMeta": {
- "picomatch": {
- "optional": true
- }
- }
- },
- "node_modules/tinyglobby/node_modules/picomatch": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz",
- "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-number": "^7.0.0"
- },
- "engines": {
- "node": ">=8.0"
- }
- },
- "node_modules/ts-interface-checker": {
- "version": "0.1.13",
- "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
- "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
- "dev": true,
- "license": "Apache-2.0"
- },
- "node_modules/update-browserslist-db": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.3.3.tgz",
- "integrity": "sha512-pJ2sYawQS0R/WI928Gj5GlPhTGzbMelq0+4INtSYNDV9ErKJcX6xjGWkoG/VnB3dpUm00zALaqkrUD77pO5TDQ==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "escalade": "^3.2.0",
- "picocolors": "^1.1.1"
- },
- "bin": {
- "update-browserslist-db": "cli.js"
- },
- "peerDependencies": {
- "browserslist": ">= 4.21.0"
- }
- },
- "node_modules/util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/vite": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/vite/-/vite-8.3.0.tgz",
- "integrity": "sha512-lhZBVvEHefgE+HQZC9O7EBJgCU/nVzFNl7vkS4RE0APtWLP02/8QVIkQtzBxPquh7lq5/78NHipTj7ODQ6XuyQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "lightningcss": "^1.33.0",
- "picomatch": "^4.0.7",
- "postcss": "^8.5.28",
- "rolldown": "~1.2.6",
- "tinyglobby": "^0.2.17"
- },
- "bin": {
- "vite": "bin/vite.js"
- },
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- },
- "funding": {
- "url": "https://github.com/vitejs/vite?sponsor=1"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.3"
- },
- "peerDependencies": {
- "@types/node": "^20.19.0 || >=22.12.0",
- "@vitejs/devtools": "^0.7.1",
- "esbuild": "^0.27.0 || ^0.28.0",
- "jiti": ">=1.21.0",
- "less": "^4.0.0",
- "sass": "^1.70.0",
- "sass-embedded": "^1.70.0",
- "stylus": ">=0.54.8",
- "sugarss": "^5.0.0",
- "terser": "^5.16.0",
- "tsx": "^4.8.1",
- "yaml": "^2.4.2"
- },
- "peerDependenciesMeta": {
- "@types/node": {
- "optional": true
- },
- "@vitejs/devtools": {
- "optional": true
- },
- "esbuild": {
- "optional": true
- },
- "jiti": {
- "optional": true
- },
- "less": {
- "optional": true
- },
- "sass": {
- "optional": true
- },
- "sass-embedded": {
- "optional": true
- },
- "stylus": {
- "optional": true
- },
- "sugarss": {
- "optional": true
- },
- "terser": {
- "optional": true
- },
- "tsx": {
- "optional": true
- },
- "yaml": {
- "optional": true
- }
- }
- },
- "node_modules/vite-plugin-full-reload": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/vite-plugin-full-reload/-/vite-plugin-full-reload-1.2.0.tgz",
- "integrity": "sha512-kz18NW79x0IHbxRSHm0jttP4zoO9P9gXh+n6UTwlNKnviTTEpOlum6oS9SmecrTtSr+muHEn5TUuC75UovQzcA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "picocolors": "^1.0.0",
- "picomatch": "^2.3.1"
- }
- },
- "node_modules/vite/node_modules/picomatch": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz",
- "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- }
- }
-}
diff --git a/src/workbench/package.json b/src/workbench/package.json
index b632f030b5..fd51bbce87 100644
--- a/src/workbench/package.json
+++ b/src/workbench/package.json
@@ -1,24 +1,19 @@
{
- "name": "hypervel-workbench",
+ "name": "@hypervel/workbench",
"private": true,
"type": "module",
"scripts": {
- "build": "vite build",
- "dev": "vite"
- },
- "devEngines": {
- "packageManager": {
- "name": "npm",
- "version": ">=11.10.0"
- }
+ "build": "vp build",
+ "dev": "vp dev"
},
"devDependencies": {
"@tailwindcss/forms": "^0.5.11",
- "alpinejs": "^3.17.3",
+ "alpinejs": "catalog:",
"autoprefixer": "^10.6.1",
- "laravel-vite-plugin": "^3.2.0",
+ "laravel-vite-plugin": "catalog:",
"postcss": "^8.5.28",
"tailwindcss": "^3.4.19",
- "vite": "^8.3.0"
+ "vite": "catalog:",
+ "vite-plus": "catalog:"
}
}
diff --git a/src/workbench/vite.config.js b/src/workbench/vite.config.js
index 32c7d19bdd..9fb1bf866a 100644
--- a/src/workbench/vite.config.js
+++ b/src/workbench/vite.config.js
@@ -1,4 +1,4 @@
-import { defineConfig } from 'vite';
+import { defineConfig } from 'vite-plus';
import laravel from 'laravel-vite-plugin';
export default defineConfig({
diff --git a/tsconfig.json b/tsconfig.json
index 24609534ab..606ec58405 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -11,7 +11,7 @@
"strict": true,
"skipLibCheck": true,
"resolveJsonModule": true,
- "types": ["node", "vitest/globals"]
+ "types": ["node"]
},
"include": []
}
diff --git a/vite.config.ts b/vite.config.ts
new file mode 100644
index 0000000000..be1b2a3c23
--- /dev/null
+++ b/vite.config.ts
@@ -0,0 +1,75 @@
+import { defineConfig } from 'vite-plus';
+
+const ignoredFiles = [
+ '**/node_modules/**',
+ '**/vendor/**',
+ '**/dist/**',
+ '**/public/build/**',
+ '**/*.min.js',
+ '**/*.blade.*',
+ '_archive/**',
+ 'skeletons/**',
+ 'tests/**/Fixtures/**',
+ 'src/wayfinder/tests/.generated/**',
+ 'src/telescope/resources/js/screens/dumps/sfdump.js',
+];
+
+export default defineConfig({
+ fmt: {
+ tabWidth: 4,
+ singleQuote: true,
+ semi: true,
+ printWidth: 120,
+ ignorePatterns: [...ignoredFiles, '**/*.php', '**/*.md', '**/*.json', '**/*.yaml', '**/*.yml'],
+ overrides: [
+ { files: ['src/horizon/**/*.vue'], options: { vueIndentScriptAndStyle: true } },
+ { files: ['src/telescope/**/*.vue'], options: { vueIndentScriptAndStyle: false } },
+ { files: ['src/mcp/**', 'tests/Mcp/**'], options: { singleQuote: false } },
+ {
+ files: ['src/wayfinder/**'],
+ options: { singleQuote: false, trailingComma: 'all', printWidth: 80 },
+ },
+ ],
+ },
+ lint: {
+ options: { typeAware: true, typeCheck: true },
+ ignorePatterns: ignoredFiles,
+ env: { browser: true },
+ rules: {
+ 'typescript/no-floating-promises': [
+ 'warn',
+ {
+ // The Node test runner owns completion and failure reporting.
+ allowForKnownSafeCalls: [{ from: 'package', name: 'test', package: 'node:test' }],
+ },
+ ],
+ },
+ overrides: [
+ {
+ files: ['**/*.config.*', '**/*.test.*', 'src/wayfinder/tests/**', '.github/scripts/**'],
+ env: { node: true },
+ },
+ {
+ files: ['**/*.test.*'],
+ // Mock assertions inspect methods without calling them.
+ rules: { 'typescript/unbound-method': 'off' },
+ },
+ { files: ['src/horizon/resources/**'], globals: { Horizon: 'readonly' } },
+ { files: ['src/telescope/resources/**'], globals: { Telescope: 'readonly' } },
+ ],
+ },
+ test: {
+ projects: [
+ 'src/wayfinder',
+ 'src/horizon',
+ 'src/telescope',
+ {
+ test: {
+ name: 'mcp',
+ include: ['tests/Mcp/**/*.test.js'],
+ environment: 'node',
+ },
+ },
+ ],
+ },
+});
diff --git a/vitest.config.ts b/vitest.config.ts
deleted file mode 100644
index 356a24a596..0000000000
--- a/vitest.config.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import { defineConfig } from 'vitest/config';
-
-// Each JavaScript test project is listed here, either inline or through
-// its package's vitest.config.ts and any package-specific setup.
-//
-// Run `pnpm test` from the repo root to execute every listed package's
-// tests. Scope to one package by passing it as a project name, e.g.
-// `pnpm test --project wayfinder`.
-export default defineConfig({
- test: {
- projects: [
- 'src/wayfinder',
- {
- test: {
- name: 'mcp',
- include: ['tests/Mcp/**/*.test.js'],
- environment: 'node',
- },
- },
- ],
- },
-});
From e4db868fcef68c0f0eeedc7b63d56c66c784c724 Mon Sep 17 00:00:00 2001
From: Raj Siva-Rajah <5361908+binaryfire@users.noreply.github.com>
Date: Wed, 28 Oct 2026 19:06:56 +0000
Subject: [PATCH 03/16] Use the shared Vite+ runner in frontend tests
Move existing Telescope and Wayfinder tests to the bundled Vite+ test APIs while preserving their behavioral assertions. Express negative generated-route argument checks through expectTypeOf and retain the separate generated-output compiler check.
Give Wayfinder test builds isolated temporary directories with cleanup instead of a shared fixed path. Apply the shared formatter to these test files as part of their runner migration. Normal and cached route tests, generated TypeScript checks and the complete JavaScript suite pass.
---
.../resources/js/components/Alert.test.js | 12 +++-
.../js/components/CopyClipboard.test.js | 2 +-
.../components/ExceptionCodePreview.test.js | 4 +-
.../js/components/IndexScreen.test.js | 34 +++++-----
.../js/components/PreviewScreen.test.js | 65 +++++++++++++------
.../js/components/RelatedEntries.test.js | 16 +++--
src/telescope/resources/js/routes.test.js | 29 ++++++---
.../js/screens/cache/preview.test.js | 6 +-
.../resources/js/screens/dumps/index.test.js | 11 ++--
.../resources/js/screens/mail/preview.test.js | 8 +--
.../js/screens/queries/preview.test.js | 6 +-
.../tests/AnonymousMiddleware.test.ts | 2 +-
.../tests/AppUrlRootResolution.test.ts | 28 ++++----
.../tests/CamelCaseRouteParameter.test.ts | 2 +-
src/wayfinder/tests/DefaultParameters.test.ts | 7 +-
.../tests/DisallowedMethodNames.test.ts | 2 +-
src/wayfinder/tests/DomainController.test.ts | 2 +-
src/wayfinder/tests/EmptyRoute.test.ts | 2 +-
src/wayfinder/tests/Export.test.ts | 2 +-
src/wayfinder/tests/GeneratedOutput.test.ts | 2 +-
.../tests/IdentifierCollisions.test.ts | 6 +-
src/wayfinder/tests/IndexNamedRoute.test.ts | 2 +-
.../tests/InvokableController.test.ts | 2 +-
.../tests/InvokablePlusController.test.ts | 2 +-
src/wayfinder/tests/KeyController.test.ts | 6 +-
.../tests/MethodNameCollision.test.ts | 2 +-
.../tests/ModelBindingController.test.ts | 18 ++---
src/wayfinder/tests/NamedRoutes.test.ts | 14 +++-
src/wayfinder/tests/NamedspacedRoute.test.ts | 2 +-
src/wayfinder/tests/NestedController.test.ts | 2 +-
.../tests/OptionalController.test.ts | 2 +-
src/wayfinder/tests/ParamaterName.test.ts | 2 +-
.../tests/PathNameNormalization.test.ts | 2 +-
src/wayfinder/tests/PostController.test.ts | 2 +-
src/wayfinder/tests/QueryMethod.test.ts | 7 +-
src/wayfinder/tests/QueryParams.test.ts | 2 +-
.../tests/RepeatedNamespaceController.test.ts | 2 +-
.../tests/SharedUriController.test.ts | 16 +++--
src/wayfinder/tests/StorageRoute.test.ts | 2 +-
.../tests/TwoRoutesSameAction.test.ts | 2 +-
.../tests/UrlDefaultsController.test.ts | 2 +-
41 files changed, 202 insertions(+), 137 deletions(-)
diff --git a/src/telescope/resources/js/components/Alert.test.js b/src/telescope/resources/js/components/Alert.test.js
index bc0b0710d0..eb806d251f 100644
--- a/src/telescope/resources/js/components/Alert.test.js
+++ b/src/telescope/resources/js/components/Alert.test.js
@@ -1,6 +1,6 @@
import { mount } from '@vue/test-utils';
import { Modal } from 'bootstrap';
-import { afterEach, expect, it, vi } from 'vitest';
+import { afterEach, expect, it, vi } from 'vite-plus/test';
import Alert from './Alert.vue';
let wrapper;
@@ -34,7 +34,10 @@ it.each([
expect(document.activeElement).toBe(wrapper.element);
expect(document.body.classList.contains('modal-open')).toBe(true);
- await wrapper.findAll('button').find(button => button.text() === label).trigger('click');
+ await wrapper
+ .findAll('button')
+ .find((button) => button.text() === label)
+ .trigger('click');
expect(action).toHaveBeenCalledOnce();
expect(alert.type).toBeNull();
@@ -78,7 +81,10 @@ it('preserves an underlying modal when the confirmation closes', async () => {
try {
underlyingModal.show();
mountAlert();
- await wrapper.findAll('button').find(button => button.text() === 'Cancel').trigger('click');
+ await wrapper
+ .findAll('button')
+ .find((button) => button.text() === 'Cancel')
+ .trigger('click');
expect(underlyingElement.classList.contains('show')).toBe(true);
expect(document.body.classList.contains('modal-open')).toBe(true);
expect(document.body.style.overflow).toBe('hidden');
diff --git a/src/telescope/resources/js/components/CopyClipboard.test.js b/src/telescope/resources/js/components/CopyClipboard.test.js
index 0ac5cc0f81..d20b64ab16 100644
--- a/src/telescope/resources/js/components/CopyClipboard.test.js
+++ b/src/telescope/resources/js/components/CopyClipboard.test.js
@@ -1,6 +1,6 @@
import { mount } from '@vue/test-utils';
import copy from 'copy-to-clipboard';
-import { afterEach, expect, it, vi } from 'vitest';
+import { afterEach, expect, it, vi } from 'vite-plus/test';
import CopyClipboard from './CopyClipboard.vue';
vi.mock('copy-to-clipboard', () => ({ default: vi.fn() }));
diff --git a/src/telescope/resources/js/components/ExceptionCodePreview.test.js b/src/telescope/resources/js/components/ExceptionCodePreview.test.js
index 2bd1555cb7..007b135138 100644
--- a/src/telescope/resources/js/components/ExceptionCodePreview.test.js
+++ b/src/telescope/resources/js/components/ExceptionCodePreview.test.js
@@ -1,5 +1,5 @@
import { mount } from '@vue/test-utils';
-import { expect, it } from 'vitest';
+import { expect, it } from 'vite-plus/test';
import ExceptionCodePreview from './ExceptionCodePreview.vue';
it('displays source text without interpreting HTML on either kind of line', () => {
@@ -9,7 +9,7 @@ it('displays source text without interpreting HTML on either kind of line', () =
});
expect(wrapper.find('img').exists()).toBe(false);
- expect(wrapper.findAll('p').map(line => line.text())).toEqual(['10 ' + source, '11 ' + source]);
+ expect(wrapper.findAll('p').map((line) => line.text())).toEqual(['10 ' + source, '11 ' + source]);
expect(wrapper.find('p.highlight').find('.hljs-keyword').exists()).toBe(false);
expect(wrapper.findAll('p')[1].find('.hljs-keyword').exists()).toBe(true);
wrapper.unmount();
diff --git a/src/telescope/resources/js/components/IndexScreen.test.js b/src/telescope/resources/js/components/IndexScreen.test.js
index 93d43c5874..e35ace1cfa 100644
--- a/src/telescope/resources/js/components/IndexScreen.test.js
+++ b/src/telescope/resources/js/components/IndexScreen.test.js
@@ -1,6 +1,6 @@
import { flushPromises, mount } from '@vue/test-utils';
import axios from 'axios';
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test';
import { h } from 'vue';
import { createMemoryHistory, createRouter, RouterView } from 'vue-router';
import Base from '../base';
@@ -28,13 +28,16 @@ async function mountIndex(path = '/logs', autoLoad = false) {
container = document.createElement('div');
document.body.appendChild(container);
- wrapper = mount({
- data: () => ({ alert: {}, autoLoadsNewEntries: autoLoad }),
- render: () => h(RouterView),
- }, {
- attachTo: container,
- global: { plugins: [router], mixins: [Base] },
- });
+ wrapper = mount(
+ {
+ data: () => ({ alert: {}, autoLoadsNewEntries: autoLoad }),
+ render: () => h(RouterView),
+ },
+ {
+ attachTo: container,
+ global: { plugins: [router], mixins: [Base] },
+ },
+ );
wrapper.vm.$root.alert = wrapper.vm.alert;
wrapper.vm.$root.autoLoadsNewEntries = autoLoad;
await flushPromises();
@@ -71,7 +74,7 @@ describe('entry lists', () => {
pending.resolve(response([entry('stale')]));
await flushPromises();
- expect(screen.vm.entries.map(entry => entry.id)).toEqual(['first']);
+ expect(screen.vm.entries.map((entry) => entry.id)).toEqual(['first']);
});
it('keeps literal tag matching when polling for new entries', async () => {
@@ -100,7 +103,7 @@ describe('entry lists', () => {
expect(axios.post).toHaveBeenCalledTimes(requests);
});
- it.each([false, true])('respects automatic loading set to %s', async autoLoad => {
+ it.each([false, true])('respects automatic loading set to %s', async (autoLoad) => {
const { screen } = await mountIndex('/logs', autoLoad);
axios.post.mockResolvedValue(response([entry('new')]));
await vi.advanceTimersByTimeAsync(2500);
@@ -114,14 +117,15 @@ describe('entry lists', () => {
it('updates pending jobs without changing unrelated entries', async () => {
axios.post.mockResolvedValue(response([entry('first'), entry('finished', 'processed')]));
const { screen } = await mountIndex('/jobs');
- axios.post.mockImplementation((_url, body) => Promise.resolve(
- response(body?.uuids ? [entry('first', 'processed')] : [entry('first')])
- ));
+ axios.post.mockImplementation((_url, body) =>
+ Promise.resolve(response(body?.uuids ? [entry('first', 'processed')] : [entry('first')])),
+ );
await vi.advanceTimersByTimeAsync(2500);
expect(axios.post.mock.calls.find(([, body]) => body?.uuids)[1]).toEqual({ uuids: ['first'] });
- expect(screen.vm.entries.map(entry => [entry.id, entry.content.status])).toEqual([
- ['first', 'processed'], ['finished', 'processed'],
+ expect(screen.vm.entries.map((entry) => [entry.id, entry.content.status])).toEqual([
+ ['first', 'processed'],
+ ['finished', 'processed'],
]);
});
diff --git a/src/telescope/resources/js/components/PreviewScreen.test.js b/src/telescope/resources/js/components/PreviewScreen.test.js
index b90be24f62..8d87fa3fcf 100644
--- a/src/telescope/resources/js/components/PreviewScreen.test.js
+++ b/src/telescope/resources/js/components/PreviewScreen.test.js
@@ -1,6 +1,6 @@
import { flushPromises, mount } from '@vue/test-utils';
import axios from 'axios';
-import { afterEach, beforeEach, expect, it, vi } from 'vitest';
+import { afterEach, beforeEach, expect, it, vi } from 'vite-plus/test';
import { h } from 'vue';
import { createMemoryHistory, createRouter, RouterView } from 'vue-router';
import Base from '../base';
@@ -24,9 +24,13 @@ async function mountPreview(path = '/jobs/first') {
const Parent = {
data: () => ({ entry: null, batch: [] }),
render() {
- return h(PreviewScreen, { resource: 'jobs', title: 'Job', id: this.$route.params.id }, {
- 'after-attributes-card': ({ entry }) => h('p', { class: 'entry-content' }, entry.id),
- });
+ return h(
+ PreviewScreen,
+ { resource: 'jobs', title: 'Job', id: this.$route.params.id },
+ {
+ 'after-attributes-card': ({ entry }) => h('p', { class: 'entry-content' }, entry.id),
+ },
+ );
},
};
const router = createRouter({
@@ -41,17 +45,20 @@ async function mountPreview(path = '/jobs/first') {
],
});
await router.push(path);
- wrapper = mount({
- data: () => ({ alert: {} }),
- render: () => h(RouterView),
- }, {
- global: {
- plugins: [router],
- mixins: [Base],
- components: { 'preview-screen': PreviewScreen },
- stubs: { 'vue-json-pretty': true, 'copy-clipboard': true },
+ wrapper = mount(
+ {
+ data: () => ({ alert: {} }),
+ render: () => h(RouterView),
},
- });
+ {
+ global: {
+ plugins: [router],
+ mixins: [Base],
+ components: { 'preview-screen': PreviewScreen },
+ stubs: { 'vue-json-pretty': true, 'copy-clipboard': true },
+ },
+ },
+ );
wrapper.vm.$root.alert = wrapper.vm.alert;
await flushPromises();
@@ -122,10 +129,12 @@ it('polls a pending job until it completes and stops on unmount', async () => {
});
it('loads scheduled entries through their endpoint and links tags to the schedule list', async () => {
- axios.get.mockResolvedValue(response({
- ...entry('first', 'finished'),
- tags: ['daily,weekly'],
- }));
+ axios.get.mockResolvedValue(
+ response({
+ ...entry('first', 'finished'),
+ tags: ['daily,weekly'],
+ }),
+ );
const { screen } = await mountPreview('/schedule/first');
expect(axios.get.mock.calls[0][0]).toBe('/telescope/telescope-api/schedule/first');
@@ -149,12 +158,26 @@ it('resolves an exception in its parent state and ignores completion after navig
const exception = {
...entry('first'),
family_hash: 'family',
- content: { ...entry('first').content, class: 'RuntimeException', message: 'Failed', context: { user: 1 }, trace: [], line_preview: {} },
+ content: {
+ ...entry('first').content,
+ class: 'RuntimeException',
+ message: 'Failed',
+ context: { user: 1 },
+ trace: [],
+ line_preview: {},
+ },
};
axios.get.mockResolvedValue(response(exception));
- axios.put.mockResolvedValue(response({ ...exception, content: { ...exception.content, resolved_at: '2026-10-28T01:00:00Z' } }));
+ axios.put.mockResolvedValue(
+ response({ ...exception, content: { ...exception.content, resolved_at: '2026-10-28T01:00:00Z' } }),
+ );
const { router } = await mountPreview('/exceptions/first');
- expect(wrapper.findAll('.nav-link').find(link => link.text() === 'Context').isVisible()).toBe(true);
+ expect(
+ wrapper
+ .findAll('.nav-link')
+ .find((link) => link.text() === 'Context')
+ .isVisible(),
+ ).toBe(true);
await wrapper.find('button').trigger('click');
wrapper.vm.alert.confirmationProceed();
await flushPromises();
diff --git a/src/telescope/resources/js/components/RelatedEntries.test.js b/src/telescope/resources/js/components/RelatedEntries.test.js
index 3b1b5f3115..b4fafa9399 100644
--- a/src/telescope/resources/js/components/RelatedEntries.test.js
+++ b/src/telescope/resources/js/components/RelatedEntries.test.js
@@ -1,6 +1,6 @@
import { mount } from '@vue/test-utils';
import { Dropdown } from 'bootstrap';
-import { afterEach, expect, it } from 'vitest';
+import { afterEach, expect, it } from 'vite-plus/test';
import Base from '../base';
import RelatedEntries from './RelatedEntries.vue';
@@ -20,7 +20,10 @@ const contents = {
client_request: { method: 'GET', uri: 'https://example.test', response_status: 200, duration: 1 },
};
const batch = Object.entries(contents).map(([type, content]) => ({
- id: type, type, content, created_at: '2026-10-28T00:00:00Z',
+ id: type,
+ type,
+ content,
+ created_at: '2026-10-28T00:00:00Z',
}));
let wrapper;
@@ -48,8 +51,13 @@ it('makes every related entry type reachable and preserves router history state'
mountRelated();
expect(wrapper.findAll('.nav-item:not(.dropdown)')).toHaveLength(7);
- expect(wrapper.findAll('.dropdown-item').map(link => link.text())).toEqual([
- 'Mail (1)', 'Notifications (1)', 'Events (1)', 'Cache (1)', 'Redis (1)', 'HTTP Client (1)',
+ expect(wrapper.findAll('.dropdown-item').map((link) => link.text())).toEqual([
+ 'Mail (1)',
+ 'Notifications (1)',
+ 'Events (1)',
+ 'Cache (1)',
+ 'Redis (1)',
+ 'HTTP Client (1)',
]);
await wrapper.findAll('.dropdown-item').at(-1).trigger('click');
expect(window.location.hash).toBe('#client_requests');
diff --git a/src/telescope/resources/js/routes.test.js b/src/telescope/resources/js/routes.test.js
index e7be5f3281..7c7d826ab3 100644
--- a/src/telescope/resources/js/routes.test.js
+++ b/src/telescope/resources/js/routes.test.js
@@ -1,5 +1,5 @@
import { mount } from '@vue/test-utils';
-import { expect, it } from 'vitest';
+import { expect, it } from 'vite-plus/test';
import { h } from 'vue';
import { createMemoryHistory, createRouter, RouterLink } from 'vue-router';
import routes from './routes';
@@ -28,19 +28,32 @@ const sections = [
it('keeps the matching sidebar section active on detail pages without changing named URLs', async () => {
const router = createRouter({ history: createMemoryHistory(), routes });
await router.push('/requests');
- const wrapper = mount({
- render: () => h('nav', sections.map(([section]) => h(RouterLink, {
- to: '/' + section,
- activeClass: 'active',
- }, () => section))),
- }, { global: { plugins: [router] } });
+ const wrapper = mount(
+ {
+ render: () =>
+ h(
+ 'nav',
+ sections.map(([section]) =>
+ h(
+ RouterLink,
+ {
+ to: '/' + section,
+ activeClass: 'active',
+ },
+ () => section,
+ ),
+ ),
+ ),
+ },
+ { global: { plugins: [router] } },
+ );
try {
for (const [section, name] of sections) {
await router.push({ name, params: { id: 'entry-id' }, query: { tag: 'Example:1' } });
expect(router.currentRoute.value.path).toBe('/' + section + '/entry-id');
- expect(wrapper.findAll('a.active').map(link => link.text())).toEqual([section]);
+ expect(wrapper.findAll('a.active').map((link) => link.text())).toEqual([section]);
expect(router.resolve({ name: section }).path).toBe('/' + section);
}
} finally {
diff --git a/src/telescope/resources/js/screens/cache/preview.test.js b/src/telescope/resources/js/screens/cache/preview.test.js
index 89bbb6e7ae..b90108af98 100644
--- a/src/telescope/resources/js/screens/cache/preview.test.js
+++ b/src/telescope/resources/js/screens/cache/preview.test.js
@@ -1,5 +1,5 @@
import { mount } from '@vue/test-utils';
-import { expect, it } from 'vitest';
+import { expect, it } from 'vite-plus/test';
import { h } from 'vue';
import Preview from './preview.vue';
@@ -23,7 +23,7 @@ function mountPreview(content) {
});
}
-it.each([0, false, '', null])('displays a recorded cache value of %j', value => {
+it.each([0, false, '', null])('displays a recorded cache value of %j', (value) => {
const wrapper = mountPreview({ value });
expect(wrapper.find('pre').exists()).toBe(true);
@@ -31,7 +31,7 @@ it.each([0, false, '', null])('displays a recorded cache value of %j', value =>
wrapper.unmount();
});
-it.each(['missed', 'forget'])('omits the value card for a %s entry without a value', type => {
+it.each(['missed', 'forget'])('omits the value card for a %s entry without a value', (type) => {
const wrapper = mountPreview({ type });
expect(wrapper.find('pre').exists()).toBe(false);
diff --git a/src/telescope/resources/js/screens/dumps/index.test.js b/src/telescope/resources/js/screens/dumps/index.test.js
index c083608387..ad37844fe2 100644
--- a/src/telescope/resources/js/screens/dumps/index.test.js
+++ b/src/telescope/resources/js/screens/dumps/index.test.js
@@ -1,6 +1,6 @@
import { flushPromises, mount } from '@vue/test-utils';
import axios from 'axios';
-import { afterEach, expect, it, vi } from 'vitest';
+import { afterEach, expect, it, vi } from 'vite-plus/test';
import Base from '../../base';
import Dumps from './index.vue';
import sfdump from './sfdump';
@@ -22,12 +22,12 @@ it('initializes new dump elements by ID across refreshes and stops on unmount',
vi.stubGlobal('Telescope', { basePath: '/telescope' });
const renderDump = vi.fn();
sfdump.mockReturnValue(renderDump);
- const entry = id => ({
+ const entry = (id) => ({
id,
created_at: '2026-10-28T00:00:00Z',
content: { dump: `value ` },
});
- const response = entries => ({ data: { entries, dump: null, status: 'enabled' } });
+ const response = (entries) => ({ data: { entries, dump: null, status: 'enabled' } });
axios.post.mockReset().mockResolvedValue(response([entry('first')]));
wrapper = mount(Dumps, { global: { mixins: [Base], stubs: { 'router-link': true } } });
await flushPromises();
@@ -37,7 +37,10 @@ it('initializes new dump elements by ID across refreshes and stops on unmount',
await vi.advanceTimersByTimeAsync(2000);
await flushPromises();
expect(renderDump.mock.calls).toEqual([['sf-dump-first'], ['sf-dump-second']]);
- expect(wrapper.findAll('pre').map(element => element.attributes('id'))).toEqual(['sf-dump-second', 'sf-dump-first']);
+ expect(wrapper.findAll('pre').map((element) => element.attributes('id'))).toEqual([
+ 'sf-dump-second',
+ 'sf-dump-first',
+ ]);
const pending = Promise.withResolvers();
axios.post.mockReturnValue(pending.promise);
diff --git a/src/telescope/resources/js/screens/mail/preview.test.js b/src/telescope/resources/js/screens/mail/preview.test.js
index 05edb18d3a..fccc74b3eb 100644
--- a/src/telescope/resources/js/screens/mail/preview.test.js
+++ b/src/telescope/resources/js/screens/mail/preview.test.js
@@ -1,5 +1,5 @@
import { mount } from '@vue/test-utils';
-import { expect, it } from 'vitest';
+import { expect, it } from 'vite-plus/test';
import { h } from 'vue';
import Preview from './preview.vue';
@@ -29,7 +29,7 @@ it('renders recorded Reply-To, CC and BCC addresses without changing mail links'
cc: { 'cc@example.test': '' },
bcc: { 'bcc@example.test': 'Hidden' },
});
- const rows = Object.fromEntries(wrapper.findAll('tr').map(row => row.findAll('td').map(cell => cell.text())));
+ const rows = Object.fromEntries(wrapper.findAll('tr').map((row) => row.findAll('td').map((cell) => cell.text())));
expect(rows['Reply-To']).toBe(' reply@example.test');
expect(rows.CC).toBe('cc@example.test');
@@ -39,9 +39,9 @@ it('renders recorded Reply-To, CC and BCC addresses without changing mail links'
wrapper.unmount();
});
-it.each([[], {}])('omits empty address collections represented by %j', empty => {
+it.each([[], {}])('omits empty address collections represented by %j', (empty) => {
const wrapper = mountPreview({ replyTo: empty, cc: empty, bcc: empty });
- const labels = wrapper.findAll('tr td:first-child').map(cell => cell.text());
+ const labels = wrapper.findAll('tr td:first-child').map((cell) => cell.text());
expect(labels).not.toContain('Reply-To');
expect(labels).not.toContain('CC');
diff --git a/src/telescope/resources/js/screens/queries/preview.test.js b/src/telescope/resources/js/screens/queries/preview.test.js
index 2e2fa00125..85999ffc46 100644
--- a/src/telescope/resources/js/screens/queries/preview.test.js
+++ b/src/telescope/resources/js/screens/queries/preview.test.js
@@ -1,6 +1,6 @@
import { shallowMount } from '@vue/test-utils';
import { format } from 'sql-formatter';
-import { describe, expect, it } from 'vitest';
+import { describe, expect, it } from 'vite-plus/test';
import { h } from 'vue';
import Preview from './preview.vue';
@@ -64,7 +64,7 @@ describe('query preview', () => {
expect(wrapper.find('pre').text()).toContain('products');
expect(wrapper.find('pre').text()).toMatch(/select/i);
expect(wrapper.find('pre').text()).toBe(
- format('select * from products where name like "%a%"', { language: 'sqlite' })
+ format('select * from products where name like "%a%"', { language: 'sqlite' }),
);
});
@@ -106,7 +106,7 @@ describe('query preview', () => {
const wrapper = mountPreview({ driver: 'mysql', sql: query });
expect(wrapper.findComponent({ name: 'copy-clipboard' }).props('data')).toBe(
- format(query, { language: 'mysql' })
+ format(query, { language: 'mysql' }),
);
});
diff --git a/src/wayfinder/tests/AnonymousMiddleware.test.ts b/src/wayfinder/tests/AnonymousMiddleware.test.ts
index df4c6f31ba..61d4ead2fc 100644
--- a/src/wayfinder/tests/AnonymousMiddleware.test.ts
+++ b/src/wayfinder/tests/AnonymousMiddleware.test.ts
@@ -1,4 +1,4 @@
-import { expect, test } from "vitest";
+import { expect, test } from "vite-plus/test";
import { show } from "./.generated/actions/Hypervel/Tests/Wayfinder/Fixtures/Controllers/AnonymousMiddlewareController";
test("will allow for closure middleware", () => {
diff --git a/src/wayfinder/tests/AppUrlRootResolution.test.ts b/src/wayfinder/tests/AppUrlRootResolution.test.ts
index f3d2184aa1..4adcf982dc 100644
--- a/src/wayfinder/tests/AppUrlRootResolution.test.ts
+++ b/src/wayfinder/tests/AppUrlRootResolution.test.ts
@@ -1,17 +1,27 @@
import { execFileSync } from "node:child_process";
-import { readFileSync, rmSync } from "node:fs";
+import { mkdtempSync, readFileSync, rmSync } from "node:fs";
+import { tmpdir } from "node:os";
import path from "node:path";
-import { expect, test } from "vitest";
+import { afterEach, beforeEach, expect, test } from "vite-plus/test";
const generatorScript = path.join(__dirname, "generate.php");
+let outputPath: string;
+
+beforeEach(() => {
+ outputPath = mkdtempSync(
+ path.join(tmpdir(), "hypervel-wayfinder-app-url-"),
+ );
+});
+
+afterEach(() => {
+ rmSync(outputPath, { recursive: true, force: true });
+});
const generateWithAppUrl = (
appUrl: string,
outputPath: string,
env: NodeJS.ProcessEnv = {},
) => {
- rmSync(outputPath, { recursive: true, force: true });
-
execFileSync("php", [generatorScript, outputPath], {
env: {
...process.env,
@@ -22,8 +32,6 @@ const generateWithAppUrl = (
};
test("prefixes generated URLs with APP_URL path", () => {
- const outputPath = "/tmp/wayfinder-app-url-path";
-
generateWithAppUrl("http://localhost:8081/v2", outputPath);
const contents = readFileSync(
@@ -39,8 +47,6 @@ test("prefixes generated URLs with APP_URL path", () => {
});
test("does not inject APP_URL port into explicit domain routes", () => {
- const outputPath = "/tmp/wayfinder-app-url-port";
-
generateWithAppUrl("https://localhost:8001", outputPath);
const contents = readFileSync(
@@ -58,8 +64,6 @@ test("does not inject APP_URL port into explicit domain routes", () => {
});
test("applies forced HTTPS scheme to explicit domain routes", () => {
- const outputPath = "/tmp/wayfinder-forced-https";
-
generateWithAppUrl("https://localhost:8001", outputPath, {
WAYFINDER_FORCE_HTTPS: "1",
});
@@ -72,7 +76,9 @@ test("applies forced HTTPS scheme to explicit domain routes", () => {
"utf8",
);
- expect(contents).toContain("url: 'https://example.test/fixed-domain/{param}'");
+ expect(contents).toContain(
+ "url: 'https://example.test/fixed-domain/{param}'",
+ );
expect(contents).toContain(
"url: 'https://{defaultDomain?}.au/default-parameters-domain/{param}'",
);
diff --git a/src/wayfinder/tests/CamelCaseRouteParameter.test.ts b/src/wayfinder/tests/CamelCaseRouteParameter.test.ts
index 1f4e2a0443..404199fceb 100644
--- a/src/wayfinder/tests/CamelCaseRouteParameter.test.ts
+++ b/src/wayfinder/tests/CamelCaseRouteParameter.test.ts
@@ -1,4 +1,4 @@
-import { expect, test } from "vitest";
+import { expect, test } from "vite-plus/test";
import { show } from "./.generated/actions/Hypervel/Tests/Wayfinder/Fixtures/Controllers/AuditEntryController";
test("can resolve model binding keys for camelCase route handler parameters", () => {
diff --git a/src/wayfinder/tests/DefaultParameters.test.ts b/src/wayfinder/tests/DefaultParameters.test.ts
index d38ca97cdc..78d266ee2c 100644
--- a/src/wayfinder/tests/DefaultParameters.test.ts
+++ b/src/wayfinder/tests/DefaultParameters.test.ts
@@ -1,4 +1,4 @@
-import { afterEach, expect, expectTypeOf, test } from "vitest";
+import { afterEach, expect, expectTypeOf, test } from "vite-plus/test";
import {
defaultParametersDomain,
dynamicParametersDomain,
@@ -103,10 +103,7 @@ test("it preserves dynamic URL defaults when adding runtime defaults", () => {
});
test("applyUrlDefaults returns an object for exact nullish inputs without widening unions", () => {
- type OptionalDefaults =
- | { locale?: string }
- | null
- | undefined;
+ type OptionalDefaults = { locale?: string } | null | undefined;
expectTypeOf(applyUrlDefaults(undefined)).toEqualTypeOf<
Record
diff --git a/src/wayfinder/tests/DisallowedMethodNames.test.ts b/src/wayfinder/tests/DisallowedMethodNames.test.ts
index 369616bfb0..dfafe5c0ca 100644
--- a/src/wayfinder/tests/DisallowedMethodNames.test.ts
+++ b/src/wayfinder/tests/DisallowedMethodNames.test.ts
@@ -1,4 +1,4 @@
-import { expect, test } from "vitest";
+import { expect, test } from "vite-plus/test";
import DisallowedMethodNameController, {
applyUrlDefaults2,
argumentsMethod,
diff --git a/src/wayfinder/tests/DomainController.test.ts b/src/wayfinder/tests/DomainController.test.ts
index 043941f9ad..d7b96e200b 100644
--- a/src/wayfinder/tests/DomainController.test.ts
+++ b/src/wayfinder/tests/DomainController.test.ts
@@ -1,4 +1,4 @@
-import { expect, test } from "vitest";
+import { expect, test } from "vite-plus/test";
import {
defaultParametersDomain,
fixedDomain,
diff --git a/src/wayfinder/tests/EmptyRoute.test.ts b/src/wayfinder/tests/EmptyRoute.test.ts
index f42c47d943..eea6d958ac 100644
--- a/src/wayfinder/tests/EmptyRoute.test.ts
+++ b/src/wayfinder/tests/EmptyRoute.test.ts
@@ -1,4 +1,4 @@
-import { expect, it } from "vitest";
+import { expect, it } from "vite-plus/test";
import { home } from "./.generated/routes";
it("doesn't add a / to an empty route", () => {
diff --git a/src/wayfinder/tests/Export.test.ts b/src/wayfinder/tests/Export.test.ts
index a1aa1b5731..a12585521a 100644
--- a/src/wayfinder/tests/Export.test.ts
+++ b/src/wayfinder/tests/Export.test.ts
@@ -1,4 +1,4 @@
-import { expect, test } from "vitest";
+import { expect, test } from "vite-plus/test";
import { exportMethod } from "./.generated/routes/index";
test("export param", () => {
diff --git a/src/wayfinder/tests/GeneratedOutput.test.ts b/src/wayfinder/tests/GeneratedOutput.test.ts
index 472cb8ea35..4d20274246 100644
--- a/src/wayfinder/tests/GeneratedOutput.test.ts
+++ b/src/wayfinder/tests/GeneratedOutput.test.ts
@@ -1,6 +1,6 @@
import { readFileSync } from "node:fs";
import path from "node:path";
-import { expect, test } from "vitest";
+import { expect, test } from "vite-plus/test";
import { syntax } from "./.generated/routes/literal";
const scalar = "string | number | boolean";
diff --git a/src/wayfinder/tests/IdentifierCollisions.test.ts b/src/wayfinder/tests/IdentifierCollisions.test.ts
index e3b3674de0..8e06813fb3 100644
--- a/src/wayfinder/tests/IdentifierCollisions.test.ts
+++ b/src/wayfinder/tests/IdentifierCollisions.test.ts
@@ -1,6 +1,6 @@
import { readFileSync } from "node:fs";
import path from "node:path";
-import { expect, test } from "vitest";
+import { expect, test } from "vite-plus/test";
import Controllers from "./.generated/actions/Hypervel/Tests/Wayfinder/Fixtures/Controllers";
import barrelAlias from "./.generated/routes/barrel-alias";
import collision from "./.generated/routes/collision";
@@ -91,9 +91,7 @@ test("uses explicit namespace imports without no-op object assignment", () => {
"utf8",
);
- expect(controllers).toContain(
- 'from "./BarrelCollisionController/index"',
- );
+ expect(controllers).toContain('from "./BarrelCollisionController/index"');
expect(controllers).toContain(
'from "./ReverseBarrelCollisionController/index"',
);
diff --git a/src/wayfinder/tests/IndexNamedRoute.test.ts b/src/wayfinder/tests/IndexNamedRoute.test.ts
index b574805851..7c7254a684 100644
--- a/src/wayfinder/tests/IndexNamedRoute.test.ts
+++ b/src/wayfinder/tests/IndexNamedRoute.test.ts
@@ -1,4 +1,4 @@
-import { expect, it } from "vitest";
+import { expect, it } from "vite-plus/test";
import albums from "./.generated/routes/albums";
import photos from "./.generated/routes/photos";
diff --git a/src/wayfinder/tests/InvokableController.test.ts b/src/wayfinder/tests/InvokableController.test.ts
index ea560c8cb1..51154743e0 100644
--- a/src/wayfinder/tests/InvokableController.test.ts
+++ b/src/wayfinder/tests/InvokableController.test.ts
@@ -1,4 +1,4 @@
-import { expect, it } from "vitest";
+import { expect, it } from "vite-plus/test";
import InvokableController from "./.generated/actions/Hypervel/Tests/Wayfinder/Fixtures/Controllers/InvokableController";
it("exports default for invokable controllers", () => {
diff --git a/src/wayfinder/tests/InvokablePlusController.test.ts b/src/wayfinder/tests/InvokablePlusController.test.ts
index b22c3997a6..eddbd07b76 100644
--- a/src/wayfinder/tests/InvokablePlusController.test.ts
+++ b/src/wayfinder/tests/InvokablePlusController.test.ts
@@ -1,4 +1,4 @@
-import { expect, it } from "vitest";
+import { expect, it } from "vite-plus/test";
import InvokablePlusController, {
InvokablePlusControllerForm2,
} from "./.generated/actions/Hypervel/Tests/Wayfinder/Fixtures/Controllers/InvokablePlusController";
diff --git a/src/wayfinder/tests/KeyController.test.ts b/src/wayfinder/tests/KeyController.test.ts
index dbd6947724..b0b521abca 100644
--- a/src/wayfinder/tests/KeyController.test.ts
+++ b/src/wayfinder/tests/KeyController.test.ts
@@ -1,4 +1,4 @@
-import { expect, it, test } from "vitest";
+import { expect, it, test } from "vite-plus/test";
import {
edit,
external,
@@ -29,9 +29,7 @@ test("route parameters use backend-equivalent encoding", () => {
expect(show.url("report?v2#final%2F.pdf")).toBe(
"/keys/report%3Fv2%23final%252F.pdf",
);
- expect(show.url("report{draft}.pdf")).toBe(
- "/keys/report%7Bdraft%7D.pdf",
- );
+ expect(show.url("report{draft}.pdf")).toBe("/keys/report%7Bdraft%7D.pdf");
});
test("route parameters preserve JavaScript replacement-token values", () => {
diff --git a/src/wayfinder/tests/MethodNameCollision.test.ts b/src/wayfinder/tests/MethodNameCollision.test.ts
index 705f2dbd65..823f367f93 100644
--- a/src/wayfinder/tests/MethodNameCollision.test.ts
+++ b/src/wayfinder/tests/MethodNameCollision.test.ts
@@ -1,4 +1,4 @@
-import { expect, test } from "vitest";
+import { expect, test } from "vite-plus/test";
import { options } from "./.generated/actions/Hypervel/Tests/Wayfinder/Fixtures/Controllers/NavigationItemController";
test("does not shadow a generated method named options", () => {
diff --git a/src/wayfinder/tests/ModelBindingController.test.ts b/src/wayfinder/tests/ModelBindingController.test.ts
index f5d5d405c8..e1531e2740 100644
--- a/src/wayfinder/tests/ModelBindingController.test.ts
+++ b/src/wayfinder/tests/ModelBindingController.test.ts
@@ -1,4 +1,4 @@
-import { expect, test } from "vitest";
+import { expect, expectTypeOf, test } from "vite-plus/test";
import {
active,
optional,
@@ -22,21 +22,17 @@ test("treats null as an omission without dereferencing bound parameters", () =>
"Missing required route parameter: user.",
);
- if (false) {
- // @ts-expect-error Required route parameters cannot be null.
- active.url(null);
- // @ts-expect-error A null binding key does not omit its route parameter.
- optional.url({ user: { id: null } });
- }
+ // @ts-expect-error Required route parameters cannot be null.
+ expectTypeOf(active.url).toBeCallableWith(null);
+ // @ts-expect-error A null binding key does not omit its route parameter.
+ expectTypeOf(optional.url).toBeCallableWith({ user: { id: null } });
});
test("prefers casts before schema and PHPDoc binding evidence", () => {
expect(price.url("12.50")).toBe("/users/price/12.50");
- if (false) {
- // @ts-expect-error Decimal casts are represented as strings.
- price.url(12.5);
- }
+ // @ts-expect-error Decimal casts are represented as strings.
+ expectTypeOf(price.url).toBeCallableWith(12.5);
});
test("uses field-specific PHPDoc primitive unions when schema evidence is unavailable", () => {
diff --git a/src/wayfinder/tests/NamedRoutes.test.ts b/src/wayfinder/tests/NamedRoutes.test.ts
index 561cbe3537..331a791784 100644
--- a/src/wayfinder/tests/NamedRoutes.test.ts
+++ b/src/wayfinder/tests/NamedRoutes.test.ts
@@ -1,5 +1,10 @@
-import { expect, it } from "vitest";
-import { dashboard, invalid_js_name, invokable, query } from "./.generated/routes";
+import { expect, it } from "vite-plus/test";
+import {
+ dashboard,
+ invalid_js_name,
+ invokable,
+ query,
+} from "./.generated/routes";
import { edit } from "./.generated/routes/posts";
it("exports named routes", () => {
@@ -30,5 +35,8 @@ it("exports named routes", () => {
it("exports QUERY routes and their form variants", () => {
expect(query()).toEqual({ url: "/query", method: "query" });
- expect(query.form()).toEqual({ action: "/query?_method=QUERY", method: "post" });
+ expect(query.form()).toEqual({
+ action: "/query?_method=QUERY",
+ method: "post",
+ });
});
diff --git a/src/wayfinder/tests/NamedspacedRoute.test.ts b/src/wayfinder/tests/NamedspacedRoute.test.ts
index 064452f91a..25ad5366bc 100644
--- a/src/wayfinder/tests/NamedspacedRoute.test.ts
+++ b/src/wayfinder/tests/NamedspacedRoute.test.ts
@@ -1,4 +1,4 @@
-import { expect, it } from "vitest";
+import { expect, it } from "vite-plus/test";
import { store } from "./.generated/routes/namespaced/my-package";
it("can access a namespaced route", () => {
diff --git a/src/wayfinder/tests/NestedController.test.ts b/src/wayfinder/tests/NestedController.test.ts
index 0d0ae5fa94..9d9f6f552d 100644
--- a/src/wayfinder/tests/NestedController.test.ts
+++ b/src/wayfinder/tests/NestedController.test.ts
@@ -1,4 +1,4 @@
-import { expect, it } from "vitest";
+import { expect, it } from "vite-plus/test";
import nested from "./.generated/routes/nested";
it("can handle conflicting nested route names", () => {
diff --git a/src/wayfinder/tests/OptionalController.test.ts b/src/wayfinder/tests/OptionalController.test.ts
index a9c32455f0..6b7531655f 100644
--- a/src/wayfinder/tests/OptionalController.test.ts
+++ b/src/wayfinder/tests/OptionalController.test.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it, test } from "vitest";
+import { describe, expect, it, test } from "vite-plus/test";
import {
manyOptional,
optional,
diff --git a/src/wayfinder/tests/ParamaterName.test.ts b/src/wayfinder/tests/ParamaterName.test.ts
index da5c122e91..c2a7ed7166 100644
--- a/src/wayfinder/tests/ParamaterName.test.ts
+++ b/src/wayfinder/tests/ParamaterName.test.ts
@@ -1,4 +1,4 @@
-import { describe, expect, test } from "vitest";
+import { describe, expect, test } from "vite-plus/test";
import {
camel,
screamingSnake,
diff --git a/src/wayfinder/tests/PathNameNormalization.test.ts b/src/wayfinder/tests/PathNameNormalization.test.ts
index 11840b3eb4..5f1eee4249 100644
--- a/src/wayfinder/tests/PathNameNormalization.test.ts
+++ b/src/wayfinder/tests/PathNameNormalization.test.ts
@@ -1,4 +1,4 @@
-import { expect, it } from "vitest";
+import { expect, it } from "vite-plus/test";
import api from "./.generated/routes/api";
import v1 from "./.generated/routes/api/v1";
diff --git a/src/wayfinder/tests/PostController.test.ts b/src/wayfinder/tests/PostController.test.ts
index a5194aeb9a..020c3509be 100644
--- a/src/wayfinder/tests/PostController.test.ts
+++ b/src/wayfinder/tests/PostController.test.ts
@@ -1,4 +1,4 @@
-import { describe, expect, test } from "vitest";
+import { describe, expect, test } from "vite-plus/test";
import {
create,
destroy,
diff --git a/src/wayfinder/tests/QueryMethod.test.ts b/src/wayfinder/tests/QueryMethod.test.ts
index c27cb9be1a..e5d7000893 100644
--- a/src/wayfinder/tests/QueryMethod.test.ts
+++ b/src/wayfinder/tests/QueryMethod.test.ts
@@ -1,5 +1,8 @@
-import { describe, expect, test } from "vitest";
-import { index, show } from "./.generated/actions/Hypervel/Tests/Wayfinder/Fixtures/Controllers/SearchController";
+import { describe, expect, test } from "vite-plus/test";
+import {
+ index,
+ show,
+} from "./.generated/actions/Hypervel/Tests/Wayfinder/Fixtures/Controllers/SearchController";
import search from "./.generated/routes/search";
describe("query only route", () => {
diff --git a/src/wayfinder/tests/QueryParams.test.ts b/src/wayfinder/tests/QueryParams.test.ts
index b00313412b..7ef8ec0d0f 100644
--- a/src/wayfinder/tests/QueryParams.test.ts
+++ b/src/wayfinder/tests/QueryParams.test.ts
@@ -1,4 +1,4 @@
-import { expect, it } from "vitest";
+import { expect, it } from "vite-plus/test";
import {
index,
show,
diff --git a/src/wayfinder/tests/RepeatedNamespaceController.test.ts b/src/wayfinder/tests/RepeatedNamespaceController.test.ts
index 6998a0816c..c6e9bfa328 100644
--- a/src/wayfinder/tests/RepeatedNamespaceController.test.ts
+++ b/src/wayfinder/tests/RepeatedNamespaceController.test.ts
@@ -1,4 +1,4 @@
-import { expect, it } from "vitest";
+import { expect, it } from "vite-plus/test";
import { readFileSync } from "node:fs";
import path from "node:path";
diff --git a/src/wayfinder/tests/SharedUriController.test.ts b/src/wayfinder/tests/SharedUriController.test.ts
index 930bce989b..bb710586e4 100644
--- a/src/wayfinder/tests/SharedUriController.test.ts
+++ b/src/wayfinder/tests/SharedUriController.test.ts
@@ -1,4 +1,4 @@
-import { expect, it } from "vitest";
+import { expect, it } from "vite-plus/test";
import SharedUriController from "./.generated/actions/Hypervel/Tests/Wayfinder/Fixtures/Controllers/SharedUriController";
it("keys routes sharing a URI by verb", () => {
@@ -18,11 +18,13 @@ it("keys routes sharing a URI by verb", () => {
method: "post",
});
- expect(SharedUriController["put|patch /shared-uri/{name}"].url("test")).toBe(
- "/shared-uri/test",
+ expect(
+ SharedUriController["put|patch /shared-uri/{name}"].url("test"),
+ ).toBe("/shared-uri/test");
+ expect(SharedUriController["put|patch /shared-uri/{name}"]("test")).toEqual(
+ {
+ url: "/shared-uri/test",
+ method: "put",
+ },
);
- expect(SharedUriController["put|patch /shared-uri/{name}"]("test")).toEqual({
- url: "/shared-uri/test",
- method: "put",
- });
});
diff --git a/src/wayfinder/tests/StorageRoute.test.ts b/src/wayfinder/tests/StorageRoute.test.ts
index 8a9fed8b63..cfa3bd646b 100644
--- a/src/wayfinder/tests/StorageRoute.test.ts
+++ b/src/wayfinder/tests/StorageRoute.test.ts
@@ -1,4 +1,4 @@
-import { expect, it } from "vitest";
+import { expect, it } from "vite-plus/test";
import storage from "./.generated/routes/storage";
it("can import storage routes", () => {
diff --git a/src/wayfinder/tests/TwoRoutesSameAction.test.ts b/src/wayfinder/tests/TwoRoutesSameAction.test.ts
index 6a68b30413..b879fe67ab 100644
--- a/src/wayfinder/tests/TwoRoutesSameAction.test.ts
+++ b/src/wayfinder/tests/TwoRoutesSameAction.test.ts
@@ -1,4 +1,4 @@
-import { expect, it } from "vitest";
+import { expect, it } from "vite-plus/test";
import {
matched,
same,
diff --git a/src/wayfinder/tests/UrlDefaultsController.test.ts b/src/wayfinder/tests/UrlDefaultsController.test.ts
index 4c31ee1ba7..f60037718f 100644
--- a/src/wayfinder/tests/UrlDefaultsController.test.ts
+++ b/src/wayfinder/tests/UrlDefaultsController.test.ts
@@ -1,4 +1,4 @@
-import { describe, expect, test } from "vitest";
+import { describe, expect, test } from "vite-plus/test";
import {
mixedDefaults,
onlyDefaults,
From 5e1ee7f3394f1942594fbef6d488b37780360bb7 Mon Sep 17 00:00:00 2001
From: Raj Siva-Rajah <5361908+binaryfire@users.noreply.github.com>
Date: Wed, 28 Oct 2026 19:07:10 +0000
Subject: [PATCH 04/16] Align MCP browser SDK checks with Vite+
Use the shared test runner and formatter while retaining the classic-script SDK and its public browser API. Mark asynchronous dispatches whose handlers already own response and error reporting with void, and remove an unused catch binding.
Regenerate the Terser output and verify the browser SDK tests against both source and minified distributions. Keep minification explicit rather than introducing a bundler wrapper or changing how applications load the SDK.
---
src/mcp/resources/js/mcp-sdk.js | 64 ++++++------------------
src/mcp/resources/js/mcp-sdk.min.js | 2 +-
tests/Mcp/BrowserSdk.test.js | 77 ++++++++++++++++-------------
3 files changed, 60 insertions(+), 83 deletions(-)
diff --git a/src/mcp/resources/js/mcp-sdk.js b/src/mcp/resources/js/mcp-sdk.js
index ea487ba0b1..db3733935f 100644
--- a/src/mcp/resources/js/mcp-sdk.js
+++ b/src/mcp/resources/js/mcp-sdk.js
@@ -21,10 +21,7 @@
const pendingRequests = new Map();
const handlers = {};
- const queuedNotifications = queuedHandlerNames.reduce(function (
- queue,
- name,
- ) {
+ const queuedNotifications = queuedHandlerNames.reduce(function (queue, name) {
queue[name] = [];
return queue;
@@ -98,7 +95,7 @@
if (typeof data === "string") {
try {
return JSON.parse(data);
- } catch (error) {
+ } catch {
return null;
}
}
@@ -111,9 +108,7 @@
}
function isObject(value) {
- return (
- value !== null && typeof value === "object" && !Array.isArray(value)
- );
+ return value !== null && typeof value === "object" && !Array.isArray(value);
}
function normalizeParams(value, key) {
@@ -137,10 +132,7 @@
const nextStyles = update.styles || {};
next.styles = mergeObjects(currentStyles, nextStyles);
- next.styles.variables = mergeObjects(
- currentStyles.variables,
- nextStyles.variables,
- );
+ next.styles.variables = mergeObjects(currentStyles.variables, nextStyles.variables);
next.styles.css = mergeObjects(currentStyles.css, nextStyles.css);
}
@@ -268,20 +260,14 @@
respondWithError(
id,
errorCodes.internalError,
- error instanceof Error
- ? error.message
- : "Unknown teardown error",
+ error instanceof Error ? error.message : "Unknown teardown error",
);
}
}
async function handleCallTool(id, params) {
if (!handlers.oncalltool) {
- respondWithError(
- id,
- errorCodes.methodNotFound,
- "No tool handler registered.",
- );
+ respondWithError(id, errorCodes.methodNotFound, "No tool handler registered.");
return;
}
@@ -298,17 +284,12 @@
async function handleListTools(id, params) {
try {
- respond(
- id,
- (await handlers.onlisttools?.(params)) ?? { tools: [] },
- );
+ respond(id, (await handlers.onlisttools?.(params)) ?? { tools: [] });
} catch (error) {
respondWithError(
id,
errorCodes.internalError,
- error instanceof Error
- ? error.message
- : "Unknown list tools error",
+ error instanceof Error ? error.message : "Unknown list tools error",
);
}
}
@@ -338,17 +319,17 @@
}
const requestHandlers = {
- "ping": function (message) {
+ ping: function (message) {
respond(message.id, {});
},
"ui/resource-teardown": function (message) {
- handleTeardown(message.id);
+ void handleTeardown(message.id);
},
"tools/call": function (message) {
- handleCallTool(message.id, message.params);
+ void handleCallTool(message.id, message.params);
},
"tools/list": function (message) {
- handleListTools(message.id, message.params);
+ void handleListTools(message.id, message.params);
},
};
@@ -358,11 +339,7 @@
if (handler) {
handler(message);
} else {
- respondWithError(
- message.id,
- errorCodes.methodNotFound,
- "Method not found: " + message.method,
- );
+ respondWithError(message.id, errorCodes.methodNotFound, "Method not found: " + message.method);
}
}
@@ -424,12 +401,7 @@
}
function listResources(cursorOrParams) {
- return request(
- "resources/list",
- cursorOrParams
- ? normalizeParams(cursorOrParams, "cursor")
- : undefined,
- );
+ return request("resources/list", cursorOrParams ? normalizeParams(cursorOrParams, "cursor") : undefined);
}
function readResource(uriOrParams) {
@@ -438,8 +410,7 @@
function sendMessage(messageOrContent, role) {
const params =
- isObject(messageOrContent) &&
- ("content" in messageOrContent || "role" in messageOrContent)
+ isObject(messageOrContent) && ("content" in messageOrContent || "role" in messageOrContent)
? {
role: messageOrContent.role || "user",
content: messageOrContent.content,
@@ -466,10 +437,7 @@
}
function requestDisplayMode(modeOrParams) {
- return request(
- "ui/request-display-mode",
- normalizeParams(modeOrParams, "mode"),
- );
+ return request("ui/request-display-mode", normalizeParams(modeOrParams, "mode"));
}
function updateModelContext(params) {
diff --git a/src/mcp/resources/js/mcp-sdk.min.js b/src/mcp/resources/js/mcp-sdk.min.js
index 9fd0943265..5c2e504764 100644
--- a/src/mcp/resources/js/mcp-sdk.min.js
+++ b/src/mcp/resources/js/mcp-sdk.min.js
@@ -1 +1 @@
-!function(){const t=-32601,n=-32603;let o=0;const e=new Map,i={},s=["ontoolinput","ontoolinputpartial","ontoolresult","ontoolcancelled","onhostcontextchanged"].reduce(function(t,n){return t[n]=[],t},{}),r={hostContext:null,hostInfo:null,hostCapabilities:null};let c=null;function u(){c&&(c.disconnect(),c=null)}const l={"ui/notifications/host-context-changed":v,"ui/notifications/tool-input":function(t){w("ontoolinput",t??{})},"ui/notifications/tool-input-partial":function(t){w("ontoolinputpartial",t??{})},"ui/notifications/tool-result":function(t){w("ontoolresult",t??{})},"ui/notifications/tool-cancelled":function(t){w("ontoolcancelled",t??{})}};function a(t){t.jsonrpc="2.0",window.parent.postMessage(t,"*")}function d(t,n){return new Promise(function(i,s){const r=++o;e.set(r,{resolve:i,reject:s}),a({id:r,method:t,params:n})})}function f(t,n){const o={method:t};void 0!==n&&(o.params=n),a(o)}function h(t,n){a({id:t,result:n})}function p(t,n,o){a({id:t,error:{code:n,message:o}})}function m(t){return null!==t&&"object"==typeof t&&!Array.isArray(t)}function g(t,n){return m(t)?t:{[n]:t}}function y(t,n){return Object.assign({},t||{},n||{})}function w(t,n){const o=i[t];o?o(n):s[t]&&s[t].push(n)}function C(t,n){i[t]=n,function(t){const n=i[t],o=s[t];if(n&&o&&0!==o.length)for(;o.length>0;)n(o.shift())}(t)}function v(t){const n=function(t){if(!t)return r.hostContext;const n=r.hostContext||{},o=y(n,t);if(n.styles||t.styles){const e=n.styles||{},i=t.styles||{};o.styles=y(e,i),o.styles.variables=y(e.variables,i.variables),o.styles.css=y(e.css,i.css)}return r.hostContext=o,o}(t);var o,e;n&&((o=n.theme)&&(document.documentElement.setAttribute("data-theme",o),document.documentElement.style.colorScheme=o),e=n.styles?.variables,e&&Object.keys(e).filter(t=>void 0!==e[t]).forEach(function(t){document.documentElement.style.setProperty(t,e[t])}),function(t){if(!t)return;let n=document.getElementById("__mcp-host-fonts");n||(n=document.createElement("style"),n.id="__mcp-host-fonts",document.head.appendChild(n)),n.textContent=t}(n.styles?.css?.fonts),w("onhostcontextchanged",n))}function b(){f("ui/notifications/size-changed",function(){const t=document.documentElement,n=t.style.height;t.style.height="max-content";const o=Math.ceil(t.getBoundingClientRect().height);return t.style.height=n,{width:Math.ceil(window.innerWidth),height:o}}())}function x(){if("undefined"!=typeof ResizeObserver&&document.body)return u(),c=new ResizeObserver(b),c.observe(document.body),u}const E={ping:function(t){h(t.id,{})},"ui/resource-teardown":function(t){!async function(t){try{u(),h(t,await(i.onteardown?.())??{})}catch(o){p(t,n,o instanceof Error?o.message:"Unknown teardown error")}}(t.id)},"tools/call":function(o){!async function(o,e){if(i.oncalltool)try{h(o,await i.oncalltool(e))}catch(t){p(o,n,t instanceof Error?t.message:"Unknown tool error")}else p(o,t,"No tool handler registered.")}(o.id,o.params)},"tools/list":function(t){!async function(t,o){try{h(t,await(i.onlisttools?.(o))??{tools:[]})}catch(o){p(t,n,o instanceof Error?o.message:"Unknown list tools error")}}(t.id,t.params)}};window.addEventListener("message",function(n){if(n.source!==window.parent)return;const o=function(t){if("string"==typeof t)try{return JSON.parse(t)}catch(t){return null}return t&&"object"==typeof t?t:null}(n.data);o&&"2.0"===o.jsonrpc&&("string"!=typeof o.method?("result"in o||"error"in o)&&function(t){if(void 0===t.id||!e.has(t.id))return;const n=e.get(t.id);e.delete(t.id),t.error?n.reject(new Error(t.error.message)):n.resolve(t.result)}(o):void 0===o.id?function(t){const n=l[t.method];n&&n(t.params)}(o):function(n){const o=E[n.method];o?o(n):p(n.id,t,"Method not found: "+n.method)}(o))}),window.createMcpApp=async function(t,n={}){const o=await d("ui/initialize",{protocolVersion:"2026-01-26",appInfo:{name:document.title||"MCP App",version:"1.0.0"},appCapabilities:n});r.hostInfo=o?.hostInfo??null,r.hostCapabilities=o?.hostCapabilities??null,v(o?.hostContext??null),f("ui/notifications/initialized"),await t({getHostContext:function(){return r.hostContext},getHostInfo:function(){return r.hostInfo},getHostCapabilities:function(){return r.hostCapabilities},callServerTool:function(t,n){return d("tools/call",m(t)?{name:t.name,arguments:t.arguments||{}}:{name:t,arguments:n||{}})},listResources:function(t){return d("resources/list",t?g(t,"cursor"):void 0)},readResource:function(t){return d("resources/read",g(t,"uri"))},sendMessage:function(t,n){return d("ui/message",m(t)&&("content"in t||"role"in t)?{role:t.role||"user",content:t.content}:{role:n||"user",content:t})},openLink:function(t){return d("ui/open-link",g(t,"url"))},downloadFile:function(t){return d("ui/download-file",m(t)&&"contents"in t?t:{contents:t})},requestDisplayMode:function(t){return d("ui/request-display-mode",g(t,"mode"))},updateModelContext:function(t){return d("ui/update-model-context",t||{})},requestTeardown:function(){f("ui/notifications/request-teardown")},sendLog:function(t,n,o){const e=m(t)?t:{level:t,data:n};return m(t)||void 0===o||(e.logger=o),f("notifications/message",e),Promise.resolve()},resize:b,autoResize:x,onTeardown:function(t){i.onteardown=t},onCallTool:function(t){i.oncalltool=t},onListTools:function(t){i.onlisttools=t},onToolInput:function(t){C("ontoolinput",t)},onToolInputPartial:function(t){C("ontoolinputpartial",t)},onToolResult:function(t){C("ontoolresult",t)},onToolCancelled:function(t){C("ontoolcancelled",t)},onHostContextChanged:function(t){C("onhostcontextchanged",t)}})}}();
\ No newline at end of file
+!function(){const t=-32601,n=-32603;let o=0;const e=new Map,i={},s=["ontoolinput","ontoolinputpartial","ontoolresult","ontoolcancelled","onhostcontextchanged"].reduce(function(t,n){return t[n]=[],t},{}),r={hostContext:null,hostInfo:null,hostCapabilities:null};let c=null;function u(){c&&(c.disconnect(),c=null)}const l={"ui/notifications/host-context-changed":v,"ui/notifications/tool-input":function(t){w("ontoolinput",t??{})},"ui/notifications/tool-input-partial":function(t){w("ontoolinputpartial",t??{})},"ui/notifications/tool-result":function(t){w("ontoolresult",t??{})},"ui/notifications/tool-cancelled":function(t){w("ontoolcancelled",t??{})}};function a(t){t.jsonrpc="2.0",window.parent.postMessage(t,"*")}function d(t,n){return new Promise(function(i,s){const r=++o;e.set(r,{resolve:i,reject:s}),a({id:r,method:t,params:n})})}function f(t,n){const o={method:t};void 0!==n&&(o.params=n),a(o)}function h(t,n){a({id:t,result:n})}function p(t,n,o){a({id:t,error:{code:n,message:o}})}function m(t){return null!==t&&"object"==typeof t&&!Array.isArray(t)}function g(t,n){return m(t)?t:{[n]:t}}function y(t,n){return Object.assign({},t||{},n||{})}function w(t,n){const o=i[t];o?o(n):s[t]&&s[t].push(n)}function C(t,n){i[t]=n,function(t){const n=i[t],o=s[t];if(n&&o&&0!==o.length)for(;o.length>0;)n(o.shift())}(t)}function v(t){const n=function(t){if(!t)return r.hostContext;const n=r.hostContext||{},o=y(n,t);if(n.styles||t.styles){const e=n.styles||{},i=t.styles||{};o.styles=y(e,i),o.styles.variables=y(e.variables,i.variables),o.styles.css=y(e.css,i.css)}return r.hostContext=o,o}(t);var o,e;n&&((o=n.theme)&&(document.documentElement.setAttribute("data-theme",o),document.documentElement.style.colorScheme=o),e=n.styles?.variables,e&&Object.keys(e).filter(t=>void 0!==e[t]).forEach(function(t){document.documentElement.style.setProperty(t,e[t])}),function(t){if(!t)return;let n=document.getElementById("__mcp-host-fonts");n||(n=document.createElement("style"),n.id="__mcp-host-fonts",document.head.appendChild(n)),n.textContent=t}(n.styles?.css?.fonts),w("onhostcontextchanged",n))}function b(){f("ui/notifications/size-changed",function(){const t=document.documentElement,n=t.style.height;t.style.height="max-content";const o=Math.ceil(t.getBoundingClientRect().height);return t.style.height=n,{width:Math.ceil(window.innerWidth),height:o}}())}function x(){if("undefined"!=typeof ResizeObserver&&document.body)return u(),c=new ResizeObserver(b),c.observe(document.body),u}const E={ping:function(t){h(t.id,{})},"ui/resource-teardown":function(t){!async function(t){try{u(),h(t,await(i.onteardown?.())??{})}catch(o){p(t,n,o instanceof Error?o.message:"Unknown teardown error")}}(t.id)},"tools/call":function(o){!async function(o,e){if(i.oncalltool)try{h(o,await i.oncalltool(e))}catch(t){p(o,n,t instanceof Error?t.message:"Unknown tool error")}else p(o,t,"No tool handler registered.")}(o.id,o.params)},"tools/list":function(t){!async function(t,o){try{h(t,await(i.onlisttools?.(o))??{tools:[]})}catch(o){p(t,n,o instanceof Error?o.message:"Unknown list tools error")}}(t.id,t.params)}};window.addEventListener("message",function(n){if(n.source!==window.parent)return;const o=function(t){if("string"==typeof t)try{return JSON.parse(t)}catch{return null}return t&&"object"==typeof t?t:null}(n.data);o&&"2.0"===o.jsonrpc&&("string"!=typeof o.method?("result"in o||"error"in o)&&function(t){if(void 0===t.id||!e.has(t.id))return;const n=e.get(t.id);e.delete(t.id),t.error?n.reject(new Error(t.error.message)):n.resolve(t.result)}(o):void 0===o.id?function(t){const n=l[t.method];n&&n(t.params)}(o):function(n){const o=E[n.method];o?o(n):p(n.id,t,"Method not found: "+n.method)}(o))}),window.createMcpApp=async function(t,n={}){const o=await d("ui/initialize",{protocolVersion:"2026-01-26",appInfo:{name:document.title||"MCP App",version:"1.0.0"},appCapabilities:n});r.hostInfo=o?.hostInfo??null,r.hostCapabilities=o?.hostCapabilities??null,v(o?.hostContext??null),f("ui/notifications/initialized"),await t({getHostContext:function(){return r.hostContext},getHostInfo:function(){return r.hostInfo},getHostCapabilities:function(){return r.hostCapabilities},callServerTool:function(t,n){return d("tools/call",m(t)?{name:t.name,arguments:t.arguments||{}}:{name:t,arguments:n||{}})},listResources:function(t){return d("resources/list",t?g(t,"cursor"):void 0)},readResource:function(t){return d("resources/read",g(t,"uri"))},sendMessage:function(t,n){return d("ui/message",m(t)&&("content"in t||"role"in t)?{role:t.role||"user",content:t.content}:{role:n||"user",content:t})},openLink:function(t){return d("ui/open-link",g(t,"url"))},downloadFile:function(t){return d("ui/download-file",m(t)&&"contents"in t?t:{contents:t})},requestDisplayMode:function(t){return d("ui/request-display-mode",g(t,"mode"))},updateModelContext:function(t){return d("ui/update-model-context",t||{})},requestTeardown:function(){f("ui/notifications/request-teardown")},sendLog:function(t,n,o){const e=m(t)?t:{level:t,data:n};return m(t)||void 0===o||(e.logger=o),f("notifications/message",e),Promise.resolve()},resize:b,autoResize:x,onTeardown:function(t){i.onteardown=t},onCallTool:function(t){i.oncalltool=t},onListTools:function(t){i.onlisttools=t},onToolInput:function(t){C("ontoolinput",t)},onToolInputPartial:function(t){C("ontoolinputpartial",t)},onToolResult:function(t){C("ontoolresult",t)},onToolCancelled:function(t){C("ontoolcancelled",t)},onHostContextChanged:function(t){C("onhostcontextchanged",t)}})}}();
\ No newline at end of file
diff --git a/tests/Mcp/BrowserSdk.test.js b/tests/Mcp/BrowserSdk.test.js
index dcc4a1567d..f60a0951a5 100644
--- a/tests/Mcp/BrowserSdk.test.js
+++ b/tests/Mcp/BrowserSdk.test.js
@@ -1,24 +1,28 @@
-import { readFileSync } from 'node:fs';
-import { createContext, runInContext } from 'node:vm';
-import { describe, expect, it } from 'vitest';
+import { readFileSync } from "node:fs";
+import { createContext, runInContext } from "node:vm";
+import { describe, expect, it } from "vite-plus/test";
async function connectApp(filename, capabilities) {
const sent = [];
let listener;
- const parent = { postMessage: message => sent.push(message) };
+ const parent = { postMessage: (message) => sent.push(message) };
const context = createContext({
window: {
parent,
- addEventListener: (name, callback) => { listener = callback; },
+ addEventListener: (name, callback) => {
+ listener = callback;
+ },
},
- document: { title: 'Test App' },
+ document: { title: "Test App" },
});
- runInContext(readFileSync(new URL(`../../src/mcp/resources/js/${filename}`, import.meta.url), 'utf8'), context);
+ runInContext(readFileSync(new URL(`../../src/mcp/resources/js/${filename}`, import.meta.url), "utf8"), context);
- const receive = message => listener({ source: parent, data: { jsonrpc: '2.0', ...message } });
+ const receive = (message) => listener({ source: parent, data: { jsonrpc: "2.0", ...message } });
let app;
- const initialized = context.window.createMcpApp(value => { app = value; }, capabilities);
+ const initialized = context.window.createMcpApp((value) => {
+ app = value;
+ }, capabilities);
const initialize = sent.at(-1);
receive({ id: initialize.id, result: {} });
await initialized;
@@ -27,82 +31,87 @@ async function connectApp(filename, capabilities) {
return { app, receive, sent, initialize };
}
-describe.each(['mcp-sdk.js', 'mcp-sdk.min.js'])('%s', filename => {
+describe.each(["mcp-sdk.js", "mcp-sdk.min.js"])("%s", (filename) => {
it.each([
[undefined, {}],
- [{ tools: {}, availableDisplayModes: ['inline', 'fullscreen'] }, { tools: {}, availableDisplayModes: ['inline', 'fullscreen'] }],
- ])('advertises the supplied app capabilities (%j)', async (capabilities, expected) => {
+ [
+ { tools: {}, availableDisplayModes: ["inline", "fullscreen"] },
+ { tools: {}, availableDisplayModes: ["inline", "fullscreen"] },
+ ],
+ ])("advertises the supplied app capabilities (%j)", async (capabilities, expected) => {
const { initialize } = await connectApp(filename, capabilities);
expect(initialize.params.appCapabilities).toEqual(expected);
});
- it('handles a host request without settling an app request with the same ID', async () => {
+ it("handles a host request without settling an app request with the same ID", async () => {
const { app, receive, sent } = await connectApp(filename);
let settled = false;
- const pending = app.callServerTool('server-tool', {}).then(result => {
+ const pending = app.callServerTool("server-tool", {}).then((result) => {
settled = true;
return result;
});
const id = sent.at(-1).id;
let receivedParams;
- const hostResult = { content: [{ type: 'text', text: 'App tool result' }] };
- app.onCallTool(params => {
+ const hostResult = { content: [{ type: "text", text: "App tool result" }] };
+ app.onCallTool((params) => {
receivedParams = params;
return hostResult;
});
- receive({ id, method: 'tools/call', params: { name: 'app-tool' } });
+ receive({ id, method: "tools/call", params: { name: "app-tool" } });
await Promise.resolve();
- expect(receivedParams).toEqual({ name: 'app-tool' });
- expect(sent.at(-1)).toEqual({ jsonrpc: '2.0', id, result: hostResult });
+ expect(receivedParams).toEqual({ name: "app-tool" });
+ expect(sent.at(-1)).toEqual({ jsonrpc: "2.0", id, result: hostResult });
expect(settled).toBe(false);
- const result = { content: [{ type: 'text', text: 'Server tool result' }] };
+ const result = { content: [{ type: "text", text: "Server tool result" }] };
receive({ id, result });
await expect(pending).resolves.toEqual(result);
});
- it('rejects the pending app request when its error response arrives', async () => {
+ it("rejects the pending app request when its error response arrives", async () => {
const { app, receive, sent } = await connectApp(filename);
- const pending = app.callServerTool('server-tool', {});
- const assertion = expect(pending).rejects.toThrow('Tool unavailable');
+ const pending = app.callServerTool("server-tool", {});
+ const assertion = expect(pending).rejects.toThrow("Tool unavailable");
- receive({ id: sent.at(-1).id, error: { code: -32601, message: 'Tool unavailable' } });
+ receive({ id: sent.at(-1).id, error: { code: -32601, message: "Tool unavailable" } });
await assertion;
});
- it('does not respond to unmatched replies', async () => {
+ it("does not respond to unmatched replies", async () => {
const { receive, sent } = await connectApp(filename);
receive({ id: 99, result: {} });
- receive({ id: 100, error: { code: -32601, message: 'Unknown method' } });
+ receive({ id: 100, error: { code: -32601, message: "Unknown method" } });
expect(sent).toEqual([]);
});
it.each([
- ['ui/resource-teardown', 'onTeardown', {}],
- ['tools/list', 'onListTools', { tools: [] }],
- ])('returns a result when an asynchronous %s handler returns nothing', async (method, register, result) => {
+ ["ui/resource-teardown", "onTeardown", {}],
+ ["tools/list", "onListTools", { tools: [] }],
+ ])("returns a result when an asynchronous %s handler returns nothing", async (method, register, result) => {
const { app, receive, sent } = await connectApp(filename);
let called = false;
- app[register](async () => { called = true; });
+ app[register](async () => {
+ called = true;
+ });
receive({ id: 42, method });
await new Promise(setImmediate);
expect(called).toBe(true);
- expect(sent).toEqual([{ jsonrpc: '2.0', id: 42, result }]);
+ expect(sent).toEqual([{ jsonrpc: "2.0", id: 42, result }]);
});
- it('answers host pings', async () => {
+ it("answers host pings", async () => {
const { receive, sent } = await connectApp(filename);
- receive({ id: 'host-ping', method: 'ping' });
+ receive({ id: "host-ping", method: "ping" });
- expect(sent).toEqual([{ jsonrpc: '2.0', id: 'host-ping', result: {} }]);
+ expect(sent).toEqual([{ jsonrpc: "2.0", id: "host-ping", result: {} }]);
});
});
From 919c64a5a3309a3cec90ea960b96fa628d6fd480 Mon Sep 17 00:00:00 2001
From: Raj Siva-Rajah <5361908+binaryfire@users.noreply.github.com>
Date: Wed, 28 Oct 2026 19:07:18 +0000
Subject: [PATCH 05/16] Keep tagged Horizon job indices aligned with pagination
Calculate the inclusive starting index once for tagged failed jobs and use it for both tag selection and returned row indices. Preserve the upstream zero cursor alias so initial requests and later pages agree about their position.
Declare getJobs indexFrom as an integer in the repository contract and implementation, matching the existing strictly typed indexJobs call and its callers. Cover absent, zero, initial and next-page cursors in the controller regression test. Targeted formatting, static analysis and Horizon PHP tests pass.
---
src/horizon/src/Contracts/JobRepository.php | 2 +-
.../Http/Controllers/FailedJobsController.php | 6 +++---
.../src/Repositories/RedisJobRepository.php | 2 +-
.../Horizon/Unit/FailedJobsControllerTest.php | 20 +++++++++++++++++++
4 files changed, 25 insertions(+), 5 deletions(-)
diff --git a/src/horizon/src/Contracts/JobRepository.php b/src/horizon/src/Contracts/JobRepository.php
index 69c1338a15..5082809b80 100644
--- a/src/horizon/src/Contracts/JobRepository.php
+++ b/src/horizon/src/Contracts/JobRepository.php
@@ -84,7 +84,7 @@ public function countRecentlyFailed(): int;
/**
* Retrieve the jobs with the given IDs.
*/
- public function getJobs(array $ids, mixed $indexFrom = 0): Collection;
+ public function getJobs(array $ids, int $indexFrom = 0): Collection;
/**
* Insert the job into storage.
diff --git a/src/horizon/src/Http/Controllers/FailedJobsController.php b/src/horizon/src/Http/Controllers/FailedJobsController.php
index 5ab3d47f03..095f14a1bc 100644
--- a/src/horizon/src/Http/Controllers/FailedJobsController.php
+++ b/src/horizon/src/Http/Controllers/FailedJobsController.php
@@ -60,14 +60,14 @@ protected function paginate(Request $request): Collection
*/
protected function paginateByTag(Request $request, string $tag): Collection
{
+ $startingAt = (int) ($request->query('starting_at') ?: -1) + 1;
+
$jobIds = $this->tags->paginate(
'failed:' . $tag,
- ((int) ($request->query('starting_at') ?? -1)) + 1,
+ $startingAt,
50
);
- $startingAt = (int) $request->query('starting_at', '0');
-
return $this->jobs->getJobs($jobIds, $startingAt)->map(function ($job) {
return $this->decode($job);
});
diff --git a/src/horizon/src/Repositories/RedisJobRepository.php b/src/horizon/src/Repositories/RedisJobRepository.php
index e6fd380c24..6c746ef616 100644
--- a/src/horizon/src/Repositories/RedisJobRepository.php
+++ b/src/horizon/src/Repositories/RedisJobRepository.php
@@ -236,7 +236,7 @@ protected function minutesForType(string $type): int
/**
* Retrieve the jobs with the given IDs.
*/
- public function getJobs(array $ids, mixed $indexFrom = 0): Collection
+ public function getJobs(array $ids, int $indexFrom = 0): Collection
{
$jobs = $this->pipeline(function ($pipe) use ($ids) {
foreach ($ids as $id) {
diff --git a/tests/Horizon/Unit/FailedJobsControllerTest.php b/tests/Horizon/Unit/FailedJobsControllerTest.php
index f80ae6e4bd..f7cc0e42c8 100644
--- a/tests/Horizon/Unit/FailedJobsControllerTest.php
+++ b/tests/Horizon/Unit/FailedJobsControllerTest.php
@@ -10,6 +10,7 @@
use Hypervel\Http\Request;
use Hypervel\Tests\Horizon\UnitTestCase;
use Mockery as m;
+use PHPUnit\Framework\Attributes\TestWith;
class FailedJobsControllerTest extends UnitTestCase
{
@@ -46,4 +47,23 @@ public function testEmptyTagUsesTheUnfilteredFailedJobList(): void
$this->assertSame(2, $result['total']);
}
+
+ #[TestWith([null, 0])]
+ #[TestWith(['0', 0])]
+ #[TestWith(['-1', 0])]
+ #[TestWith(['49', 50])]
+ public function testTaggedPaginationUsesTheSameStartForSelectionAndRowIndices(?string $cursor, int $startingAt): void
+ {
+ $jobs = m::mock(JobRepository::class);
+ $jobs->shouldReceive('getJobs')->once()->with(['job-id'], $startingAt)->andReturn(collect());
+
+ $tags = m::mock(TagRepository::class);
+ $tags->shouldReceive('paginate')->once()->with('failed:example', $startingAt, 50)->andReturn(['job-id']);
+ $tags->shouldReceive('count')->once()->with('failed:example')->andReturn(1);
+
+ (new FailedJobsController($jobs, $tags))->index(Request::create('/', 'GET', array_filter([
+ 'tag' => 'example',
+ 'starting_at' => $cursor,
+ ], static fn (?string $value): bool => $value !== null)));
+ }
}
From 5130db04960098620ffceea9417919f48af70dfc Mon Sep 17 00:00:00 2001
From: Raj Siva-Rajah <5361908+binaryfire@users.noreply.github.com>
Date: Wed, 28 Oct 2026 19:07:31 +0000
Subject: [PATCH 06/16] Correct Horizon component cleanup and polling ownership
Make Poll await an explicit callback, prevent overlapping ticks, report failures and release its busy state after settlement. Retain the existing polling intervals and visibility behavior, with focused overlap and recovery coverage.
Release Alert modal listeners, timers and instances on unmount, and fix its accessible label. Keep Chart.js instances non-reactive so animation cleanup sees the original instance and destroy charts when their component is removed.
Key the root view by route path to refresh resource screens while retaining query-only updates. Use package-based Bootstrap Sass with the existing light and dark themes, disable unused Bootstrap color-mode generation, and remove obsolete transition styles and script attributes. Verify modal and chart lifecycles against real browser assets.
---
src/horizon/resources/js/base.js | 11 +-
.../resources/js/components/Alert.test.js | 105 ++++++++++++++++
src/horizon/resources/js/components/Alert.vue | 90 ++++++--------
.../resources/js/components/LineChart.vue | 112 ++++++++++--------
.../resources/js/components/Poll.test.js | 35 ++++++
src/horizon/resources/js/components/Poll.vue | 45 +++----
.../resources/js/components/SchemeToggler.vue | 82 ++++++++-----
.../resources/js/components/Stacktrace.vue | 28 +++--
src/horizon/resources/sass/base.scss | 19 +--
src/horizon/resources/sass/styles-dark.scss | 3 -
src/horizon/resources/sass/styles.scss | 7 +-
src/horizon/resources/views/layout.blade.php | 2 +-
12 files changed, 347 insertions(+), 192 deletions(-)
create mode 100644 src/horizon/resources/js/components/Alert.test.js
create mode 100644 src/horizon/resources/js/components/Poll.test.js
diff --git a/src/horizon/resources/js/base.js b/src/horizon/resources/js/base.js
index fe28337ff6..91457984a1 100644
--- a/src/horizon/resources/js/base.js
+++ b/src/horizon/resources/js/base.js
@@ -66,8 +66,17 @@ export default {
...grouped,
[entry[key]]: [...(grouped[entry[key]] || []), entry],
}),
- {}
+ {},
);
},
+
+ /**
+ * Show an error message.
+ */
+ alertError(message) {
+ this.$root.alert.type = 'error';
+ this.$root.alert.autoClose = false;
+ this.$root.alert.message = message;
+ },
},
};
diff --git a/src/horizon/resources/js/components/Alert.test.js b/src/horizon/resources/js/components/Alert.test.js
new file mode 100644
index 0000000000..5c18b771d2
--- /dev/null
+++ b/src/horizon/resources/js/components/Alert.test.js
@@ -0,0 +1,105 @@
+import { mount } from '@vue/test-utils';
+import { Modal } from 'bootstrap';
+import { afterEach, expect, it, vi } from 'vite-plus/test';
+import Alert from './Alert.vue';
+
+let wrapper;
+let container;
+
+function mountAlert(props = {}) {
+ const alert = { type: 'confirmation', message: 'Confirm?', ...props };
+ container = document.createElement('div');
+ document.body.appendChild(container);
+ wrapper = mount(Alert, {
+ attachTo: container,
+ props: alert,
+ global: { mixins: [{ data: () => ({ alert }) }] },
+ });
+
+ return alert;
+}
+
+afterEach(() => {
+ wrapper?.unmount();
+ container?.remove();
+ vi.useRealTimers();
+});
+
+it.each([
+ ['Yes', 'confirmationProceed'],
+ ['Cancel', 'confirmationCancel'],
+])('calls the %s action and clears the alert', async (label, callback) => {
+ const action = vi.fn();
+ const alert = mountAlert({ [callback]: action });
+
+ expect(document.activeElement).toBe(wrapper.element);
+ expect(document.body.classList.contains('modal-open')).toBe(true);
+ await wrapper
+ .findAll('button')
+ .find((button) => button.text() === label)
+ .trigger('click');
+
+ expect(action).toHaveBeenCalledOnce();
+ expect(alert.type).toBeNull();
+ expect(alert.message).toBe('');
+ expect(document.body.classList.contains('modal-open')).toBe(false);
+ expect(document.body.style.overflow).toBe('');
+ expect(document.querySelector('.modal-backdrop')).toBeNull();
+});
+
+it('restores scrolling and disposes its instance when unmounted while open', () => {
+ vi.useFakeTimers();
+ const alert = mountAlert({ autoClose: 1000 });
+ const close = vi.spyOn(wrapper.vm, 'close');
+ const element = wrapper.element;
+ expect(Modal.getInstance(element)).not.toBeNull();
+
+ wrapper.unmount();
+ wrapper = null;
+ expect(Modal.getInstance(element)).toBeNull();
+ expect(document.body.classList.contains('modal-open')).toBe(false);
+ expect(document.body.style.overflow).toBe('');
+ expect(document.querySelector('.modal-backdrop')).toBeNull();
+ vi.advanceTimersByTime(1000);
+ expect(close).not.toHaveBeenCalled();
+
+ alert.type = 'success';
+ element.dispatchEvent(new Event('hidden.bs.modal'));
+ expect(alert.type).toBe('success');
+});
+
+it('closes automatically after the configured delay', async () => {
+ vi.useFakeTimers();
+ mountAlert({ type: 'success', autoClose: 1000 });
+ await vi.advanceTimersByTimeAsync(1000);
+ expect(document.body.classList.contains('modal-open')).toBe(false);
+});
+
+it('preserves an underlying modal when the confirmation closes', async () => {
+ const underlyingElement = document.createElement('div');
+ underlyingElement.className = 'modal';
+ underlyingElement.innerHTML = '';
+ document.body.appendChild(underlyingElement);
+ const underlyingModal = new Modal(underlyingElement);
+
+ try {
+ underlyingModal.show();
+ mountAlert();
+ await wrapper
+ .findAll('button')
+ .find((button) => button.text() === 'Cancel')
+ .trigger('click');
+ expect(underlyingElement.classList.contains('show')).toBe(true);
+ expect(document.body.classList.contains('modal-open')).toBe(true);
+ expect(document.body.style.overflow).toBe('hidden');
+ wrapper.unmount();
+ wrapper = null;
+ } finally {
+ underlyingModal.hide();
+ underlyingModal.dispose();
+ underlyingElement.remove();
+ }
+
+ expect(document.body.classList.contains('modal-open')).toBe(false);
+ expect(document.body.style.overflow).toBe('');
+});
diff --git a/src/horizon/resources/js/components/Alert.vue b/src/horizon/resources/js/components/Alert.vue
index ebd4657361..93da41396e 100644
--- a/src/horizon/resources/js/components/Alert.vue
+++ b/src/horizon/resources/js/components/Alert.vue
@@ -1,28 +1,44 @@
-
@@ -82,28 +87,16 @@
- {{message}}
+ {{ message }}
-
@@ -115,11 +108,4 @@
z-index: 99999;
background: rgba(0, 0, 0, 0.5);
}
-
- #alertModal svg {
- display: block;
- margin: 0 auto;
- width: 4rem;
- height: 4rem;
- }
diff --git a/src/horizon/resources/js/components/LineChart.vue b/src/horizon/resources/js/components/LineChart.vue
index 47afd65c94..1ec083480b 100644
--- a/src/horizon/resources/js/components/LineChart.vue
+++ b/src/horizon/resources/js/components/LineChart.vue
@@ -1,75 +1,83 @@
-
-
+
diff --git a/src/horizon/resources/js/components/Poll.test.js b/src/horizon/resources/js/components/Poll.test.js
new file mode 100644
index 0000000000..65f940ce59
--- /dev/null
+++ b/src/horizon/resources/js/components/Poll.test.js
@@ -0,0 +1,35 @@
+import { flushPromises, mount } from '@vue/test-utils';
+import { afterEach, expect, it, vi } from 'vite-plus/test';
+import Poll from './Poll.vue';
+
+let wrapper;
+
+afterEach(() => {
+ wrapper?.unmount();
+ vi.restoreAllMocks();
+ vi.useRealTimers();
+});
+
+it('waits for a slow callback and resumes polling after rejection', async () => {
+ vi.useFakeTimers();
+ const pending = Promise.withResolvers();
+ const callback = vi.fn().mockReturnValueOnce(pending.promise).mockResolvedValue(undefined);
+ const report = vi.spyOn(console, 'error').mockImplementation(() => {});
+ wrapper = mount(Poll, { props: { callback, keepAlive: true } });
+
+ expect(callback).toHaveBeenCalledTimes(1);
+ await vi.advanceTimersByTimeAsync(9000);
+ expect(callback).toHaveBeenCalledTimes(1);
+
+ const error = new Error('Request failed');
+ pending.reject(error);
+ await flushPromises();
+ expect(report).toHaveBeenCalledWith(error);
+
+ await vi.advanceTimersByTimeAsync(3000);
+ expect(callback).toHaveBeenCalledTimes(2);
+ wrapper.unmount();
+ wrapper = null;
+ await vi.advanceTimersByTimeAsync(3000);
+ expect(callback).toHaveBeenCalledTimes(2);
+});
diff --git a/src/horizon/resources/js/components/Poll.vue b/src/horizon/resources/js/components/Poll.vue
index a5a4b9650a..cb0ccbad8a 100644
--- a/src/horizon/resources/js/components/Poll.vue
+++ b/src/horizon/resources/js/components/Poll.vue
@@ -2,14 +2,18 @@
export default {
data() {
return {
- loading: 0,
+ loading: false,
lastExecutionTime: 0,
pollingInterval: null,
- }
+ };
},
-
props: {
+ callback: {
+ type: Function,
+ required: true,
+ },
+
interval: {
type: Number,
default: 3,
@@ -23,10 +27,9 @@
immediate: {
type: Boolean,
default: true,
- }
+ },
},
-
beforeMount() {
this.updatePollingInterval();
@@ -35,16 +38,14 @@
}
},
-
mounted() {
this.createListener();
if (!this.keepAlive) {
- document.addEventListener('visibilitychange', this.visibilitychangeListener = this.changedVisibility);
+ document.addEventListener('visibilitychange', (this.visibilitychangeListener = this.changedVisibility));
}
},
-
beforeUnmount() {
this.removeListener();
@@ -53,19 +54,23 @@
}
},
-
methods: {
- emitPoll() {
+ async emitPoll() {
if (this.loading) {
return;
}
- this.loading++;
- this.$emit('poll');
- this.loading--;
+ this.loading = true;
this.lastExecutionTime = Date.now();
- },
+ try {
+ await this.callback();
+ } catch (error) {
+ console.error(error);
+ } finally {
+ this.loading = false;
+ }
+ },
removeListener() {
if (this.poll) {
@@ -75,14 +80,12 @@
}
},
-
createListener() {
this.poll = setInterval(() => {
this.emitPoll();
}, this.pollingInterval);
},
-
updatePollingInterval() {
if (this.keepAlive) {
this.pollingInterval = this.interval * 1000;
@@ -97,22 +100,20 @@
}
},
-
changedVisibility() {
this.updatePollingInterval();
this.removeListener();
this.createListener();
// throttling
- if ((Date.now() - this.lastExecutionTime) >= this.pollingInterval) {
+ if (Date.now() - this.lastExecutionTime >= this.pollingInterval) {
this.emitPoll();
}
},
},
-
- render(h) {
+ render() {
return null;
- }
- }
+ },
+ };
diff --git a/src/horizon/resources/js/components/SchemeToggler.vue b/src/horizon/resources/js/components/SchemeToggler.vue
index 7dae4035ae..c805a5c228 100644
--- a/src/horizon/resources/js/components/SchemeToggler.vue
+++ b/src/horizon/resources/js/components/SchemeToggler.vue
@@ -1,67 +1,93 @@
-
diff --git a/src/horizon/resources/js/components/Stacktrace.vue b/src/horizon/resources/js/components/Stacktrace.vue
index 94a279837e..a65f32ba29 100644
--- a/src/horizon/resources/js/components/Stacktrace.vue
+++ b/src/horizon/resources/js/components/Stacktrace.vue
@@ -1,4 +1,4 @@
-
-
+
diff --git a/src/horizon/resources/sass/base.scss b/src/horizon/resources/sass/base.scss
index 38cc3f1af0..af2840643b 100644
--- a/src/horizon/resources/sass/base.scss
+++ b/src/horizon/resources/sass/base.scss
@@ -1,4 +1,5 @@
@import 'syntaxhighlight';
+$enable-dark-mode: false;
@import 'bootstrap';
body {
@@ -67,7 +68,9 @@ svg.icon {
}
.card {
- box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
+ box-shadow:
+ 0 4px 6px -1px rgb(0 0 0 / 0.1),
+ 0 2px 4px -2px rgb(0 0 0 / 0.1);
border: none;
.bottom-radius {
@@ -335,20 +338,6 @@ button:hover {
}
}
-.list-enter-active:not(.dontanimate) {
- transition: background 1s linear;
-}
-
-.list-enter:not(.dontanimate),
-.list-leave-to:not(.dontanimate) {
- background: $new-entries-bg;
-}
-
-.code-bg .list-enter:not(.dontanimate),
-.code-bg .list-leave-to:not(.dontanimate) {
- background: $new-code-entries-bg;
-}
-
.card table {
td {
vertical-align: middle !important;
diff --git a/src/horizon/resources/sass/styles-dark.scss b/src/horizon/resources/sass/styles-dark.scss
index 0640b023d2..6806bc849f 100644
--- a/src/horizon/resources/sass/styles-dark.scss
+++ b/src/horizon/resources/sass/styles-dark.scss
@@ -62,9 +62,6 @@ $modal-backdrop-bg: $gray-600;
$modal-footer-border-color: $input-border-color;
$modal-header-border-color: $input-border-color;
-$new-entries-bg: $violet-900;
-$new-code-entries-bg: $gray-600;
-
$control-action-icon-color: $gray-500;
$control-action-icon-hover: $violet-400;
diff --git a/src/horizon/resources/sass/styles.scss b/src/horizon/resources/sass/styles.scss
index 4ec1f5f25e..9149875880 100644
--- a/src/horizon/resources/sass/styles.scss
+++ b/src/horizon/resources/sass/styles.scss
@@ -56,9 +56,6 @@ $card-border-radius: $border-radius-lg;
$code-bg: #292d3e;
-$new-entries-bg: $violet-50;
-$new-code-entries-bg: $gray-600;
-
$control-action-icon-color: $gray-300;
$control-action-icon-hover: $violet-600;
@@ -90,14 +87,14 @@ $grid-breakpoints: (
sm: 2px,
md: 8px,
lg: 9px,
- xl: 10px
+ xl: 10px,
) !default;
$container-max-widths: (
sm: 1137px,
md: 1138px,
lg: 1139px,
- xl: 1140px
+ xl: 1140px,
) !default;
@import 'base';
diff --git a/src/horizon/resources/views/layout.blade.php b/src/horizon/resources/views/layout.blade.php
index bc831dbfd0..b86866b56a 100644
--- a/src/horizon/resources/views/layout.blade.php
+++ b/src/horizon/resources/views/layout.blade.php
@@ -124,7 +124,7 @@
@endif
-
+
From c83d0ddb51de2d4d7aad2788c1df29d26788ed7a Mon Sep 17 00:00:00 2001
From: Raj Siva-Rajah <5361908+binaryfire@users.noreply.github.com>
Date: Wed, 28 Oct 2026 19:07:42 +0000
Subject: [PATCH 07/16] Keep Horizon screen requests and actions consistent
Return every polling request to Poll and wait for all dashboard requests to settle before reporting failures. List screens cancel superseded reads and reads owned by an unmounted screen, skip refreshes during user loads, and ignore late canceled responses. Remove duplicate initial loads and redundant route watchers.
Reset failed-job pagination when searching, encode search through Axios parameters, and use after-index cursors consistently. Clear search timers on unmount. Release retry state after failures and explain unconfirmed retries; retain the success cooldown while leaving refreshes to existing polling.
Update monitoring tags only after successful requests, preserve newer drafts and avoid duplicate displayed tags. Handle both numeric and DateInterval delayed-job values. Add focused regression coverage for request settlement, list navigation, cursor boundaries, retries and monitoring behavior; verify the screens using real compiled assets.
---
.../resources/js/screens/Lists.test.js | 140 ++++++++
.../resources/js/screens/Retry.test.js | 50 +++
.../resources/js/screens/batches/index.vue | 200 ++++++++----
.../resources/js/screens/batches/preview.vue | 139 ++++----
.../resources/js/screens/dashboard.test.js | 34 ++
.../resources/js/screens/dashboard.vue | 298 +++++++++++-------
.../resources/js/screens/failedJobs/index.vue | 270 +++++++++-------
.../resources/js/screens/failedJobs/job.vue | 204 +++++++-----
.../resources/js/screens/metrics/index.vue | 25 +-
.../resources/js/screens/metrics/jobs.vue | 58 ++--
.../resources/js/screens/metrics/preview.vue | 89 +++---
.../resources/js/screens/metrics/queues.vue | 58 ++--
.../js/screens/monitoring/index.test.js | 108 +++++++
.../resources/js/screens/monitoring/index.vue | 164 ++++++----
.../js/screens/monitoring/job-row.test.js | 36 +++
.../js/screens/monitoring/job-row.vue | 53 +++-
.../js/screens/monitoring/tag-jobs.vue | 135 ++++----
.../resources/js/screens/monitoring/tag.vue | 21 +-
.../resources/js/screens/recentJobs/index.vue | 138 ++++----
.../js/screens/recentJobs/job-row.vue | 48 +--
.../resources/js/screens/recentJobs/job.vue | 75 +++--
21 files changed, 1574 insertions(+), 769 deletions(-)
create mode 100644 src/horizon/resources/js/screens/Lists.test.js
create mode 100644 src/horizon/resources/js/screens/Retry.test.js
create mode 100644 src/horizon/resources/js/screens/dashboard.test.js
create mode 100644 src/horizon/resources/js/screens/monitoring/index.test.js
create mode 100644 src/horizon/resources/js/screens/monitoring/job-row.test.js
diff --git a/src/horizon/resources/js/screens/Lists.test.js b/src/horizon/resources/js/screens/Lists.test.js
new file mode 100644
index 0000000000..ef7a328b44
--- /dev/null
+++ b/src/horizon/resources/js/screens/Lists.test.js
@@ -0,0 +1,140 @@
+import { flushPromises, shallowMount } from '@vue/test-utils';
+import { afterEach, beforeEach, expect, it, vi } from 'vite-plus/test';
+import Base from '../base';
+import Poll from '../components/Poll.vue';
+import RecentJobs from './recentJobs/index.vue';
+import FailedJobs from './failedJobs/index.vue';
+import MonitoredJobs from './monitoring/tag-jobs.vue';
+import Batches from './batches/index.vue';
+
+let wrapper;
+const http = { get: vi.fn() };
+const router = { replace: vi.fn().mockResolvedValue(undefined) };
+
+function response(key, prefix) {
+ return {
+ data: {
+ [key]: Array.from({ length: 50 }, (_, index) => ({
+ id: `${prefix}-${index}`,
+ name: prefix,
+ payload: {},
+ retried_by: [],
+ createdAt: '2026-01-01',
+ })),
+ total: 100,
+ },
+ };
+}
+
+function mountList(component) {
+ wrapper = shallowMount(component, {
+ props: component === MonitoredJobs ? { type: 'jobs' } : {},
+ global: {
+ components: { poll: Poll },
+ stubs: { poll: false, 'router-link': true },
+ mixins: [Base, { data: () => ({ autoLoadsNewEntries: true }) }],
+ mocks: { $http: http, $router: router, $route: { params: { type: 'pending', tag: 'example' }, query: {} } },
+ },
+ });
+}
+
+beforeEach(() => {
+ vi.useFakeTimers();
+ vi.stubGlobal('Horizon', { basePath: '/horizon' });
+ vi.spyOn(document, 'visibilityState', 'get').mockReturnValue('visible');
+ http.get.mockReset();
+ router.replace.mockClear();
+});
+
+afterEach(() => {
+ wrapper?.unmount();
+ vi.restoreAllMocks();
+ vi.unstubAllGlobals();
+ vi.useRealTimers();
+});
+
+it.each([
+ ['recent jobs', RecentJobs, 'jobs'],
+ ['failed jobs', FailedJobs, 'jobs'],
+ ['monitored jobs', MonitoredJobs, 'jobs'],
+ ['batches', Batches, 'batches'],
+])('%s waits for slow loads and ignores a superseded refresh', async (_, component, key) => {
+ const initial = Promise.withResolvers();
+ http.get.mockReturnValue(initial.promise);
+ mountList(component);
+ expect(http.get).toHaveBeenCalledTimes(1);
+ await vi.advanceTimersByTimeAsync(3000);
+ expect(http.get).toHaveBeenCalledTimes(1);
+ initial.resolve(response(key, 'initial'));
+ await flushPromises();
+
+ const old = Promise.withResolvers();
+ const current = Promise.withResolvers();
+ http.get.mockReturnValueOnce(old.promise).mockReturnValueOnce(current.promise);
+ await vi.advanceTimersByTimeAsync(3000);
+ const signal = http.get.mock.calls[1][1].signal;
+ await wrapper.findAll('button').at(-1).trigger('click');
+ expect(signal.aborted).toBe(true);
+ expect(http.get).toHaveBeenCalledTimes(3);
+ await vi.advanceTimersByTimeAsync(3000);
+ expect(http.get).toHaveBeenCalledTimes(3);
+
+ current.resolve(response(key, 'current'));
+ await flushPromises();
+ old.resolve(response(key, 'stale'));
+ await flushPromises();
+ expect(wrapper.vm[key][0].id).toBe('current-0');
+
+ const leaving = Promise.withResolvers();
+ http.get.mockReturnValueOnce(leaving.promise);
+ wrapper.vm.loadNewEntries();
+ const leavingSignal = http.get.mock.calls.at(-1)[1].signal;
+ wrapper.unmount();
+ wrapper = null;
+ expect(leavingSignal.aborted).toBe(true);
+ leaving.reject(new Error('canceled'));
+ await flushPromises();
+});
+
+it('keeps failed-job cursors consistent on the first page, next page and refresh', async () => {
+ http.get.mockResolvedValue(response('jobs', 'job'));
+ mountList(FailedJobs);
+ await flushPromises();
+ expect(http.get.mock.calls[0][1].params.starting_at).toBe(-1);
+ await wrapper.findAll('button').at(-1).trigger('click');
+ await flushPromises();
+ expect(http.get.mock.calls[1][1].params.starting_at).toBe(49);
+ await vi.advanceTimersByTimeAsync(3000);
+ expect(http.get.mock.calls[2][1].params.starting_at).toBe(49);
+});
+
+it('searches failed tags once from page one and cancels a queued search when leaving', async () => {
+ http.get.mockResolvedValue(response('jobs', 'job'));
+ mountList(FailedJobs);
+ await flushPromises();
+ await wrapper.findAll('button').at(-1).trigger('click');
+ await flushPromises();
+ http.get.mockClear();
+ await wrapper.find('input').setValue('queue:a+b&c#d');
+ await vi.advanceTimersByTimeAsync(500);
+ expect(http.get).toHaveBeenCalledTimes(1);
+ expect(http.get.mock.calls[0][1].params).toEqual({ tag: 'queue:a+b&c#d', starting_at: -1 });
+ expect(wrapper.vm.page).toBe(1);
+ await wrapper.find('input').setValue('abandoned');
+ wrapper.unmount();
+ wrapper = null;
+ await vi.advanceTimersByTimeAsync(500);
+ expect(http.get).toHaveBeenCalledTimes(1);
+});
+
+it('does not write batch search parameters onto the next screen after leaving', async () => {
+ http.get.mockResolvedValue(response('batches', 'batch'));
+ mountList(Batches);
+ await flushPromises();
+ await wrapper.find('input').setValue('abandoned');
+ wrapper.unmount();
+ wrapper = null;
+ await vi.advanceTimersByTimeAsync(500);
+ expect(router.replace).not.toHaveBeenCalled();
+ expect(http.get).toHaveBeenCalledTimes(1);
+});
diff --git a/src/horizon/resources/js/screens/Retry.test.js b/src/horizon/resources/js/screens/Retry.test.js
new file mode 100644
index 0000000000..5a9cfa350e
--- /dev/null
+++ b/src/horizon/resources/js/screens/Retry.test.js
@@ -0,0 +1,50 @@
+import { flushPromises, shallowMount } from '@vue/test-utils';
+import { afterEach, expect, it, vi } from 'vite-plus/test';
+import Base from '../base';
+import FailedJob from './failedJobs/job.vue';
+import FailedJobs from './failedJobs/index.vue';
+import Batch from './batches/preview.vue';
+
+let wrapper;
+
+afterEach(() => {
+ wrapper?.unmount();
+ vi.unstubAllGlobals();
+ vi.useRealTimers();
+});
+
+it.each([
+ ['failed job', FailedJob],
+ ['failed jobs list', FailedJobs],
+ ['batch', Batch],
+])('reports an unconfirmed %s retry and allows trying again', async (_, component) => {
+ vi.useFakeTimers();
+ vi.stubGlobal('Horizon', { basePath: '/horizon' });
+ const post = vi.fn().mockRejectedValueOnce(new Error('Request failed')).mockResolvedValue({});
+ wrapper = shallowMount(component, {
+ global: {
+ mixins: [Base, { data: () => ({ alert: {} }) }],
+ mocks: {
+ $http: {
+ post,
+ get: vi.fn().mockResolvedValue({
+ data: {
+ id: 'example',
+ payload: { data: {} },
+ context: {},
+ exception: '',
+ retried_by: [],
+ },
+ }),
+ },
+ $route: { params: { jobId: 'example' } },
+ },
+ stubs: { poll: true, 'vue-json-pretty': true, 'router-link': true },
+ },
+ });
+ await flushPromises();
+ await wrapper.vm.retry('example');
+ expect(wrapper.vm.$root.alert.message).toContain('could not confirm');
+ await wrapper.vm.retry('example');
+ expect(post).toHaveBeenCalledTimes(2);
+});
diff --git a/src/horizon/resources/js/screens/batches/index.vue b/src/horizon/resources/js/screens/batches/index.vue
index cfb29a8a14..cdfab45ebc 100644
--- a/src/horizon/resources/js/screens/batches/index.vue
+++ b/src/horizon/resources/js/screens/batches/index.vue
@@ -1,4 +1,4 @@
-
-
+
-
+
-
-
+
There aren't any batches.
-
- | Batch |
- Status |
- Size |
- Completion |
- Created |
-
+
+ | Batch |
+ Status |
+ Size |
+ Completion |
+ Created |
+
-
- |
- Load New Entries
-
- Loading...
- |
-
-
-
- |
-
- {{ batch.name || batch.id }}
-
- |
-
-
- Failures
-
-
- Finished
-
-
- Pending
-
-
- Cancelled
-
- |
- {{ batch.totalJobs }} |
- {{ batch.progress }}% |
-
-
- {{ formatDateIso(batch.createdAt).format("YYYY-MM-DD HH:mm:ss") }}
- |
-
+
+ |
+ Load New Entries
+
+ Loading...
+ |
+
+
+
+ |
+
+ {{ batch.name || batch.id }}
+
+ |
+
+
+ Failures
+
+
+ Finished
+
+
+ Pending
+
+ Cancelled
+ |
+ {{ batch.totalJobs }} |
+ {{ batch.progress }}% |
+
+
+ {{ formatDateIso(batch.createdAt).format('YYYY-MM-DD HH:mm:ss') }}
+ |
+
-
+
-
diff --git a/src/horizon/resources/js/screens/batches/preview.vue b/src/horizon/resources/js/screens/batches/preview.vue
index dae6e8f468..5d381e787e 100644
--- a/src/horizon/resources/js/screens/batches/preview.vue
+++ b/src/horizon/resources/js/screens/batches/preview.vue
@@ -1,4 +1,4 @@
-
-
+
-
+
-
+
Loading...
@@ -91,30 +108,39 @@
ID
- {{batch.id}}
+ {{ batch.id }}
-
+
Failures
-
+
Finished
-
+
Pending
Name
- {{batch.name}}
+ {{ batch.name }}
Queue
- {{batch.options.queue}}
+ {{ batch.options.queue }}
Connection
- {{batch.options.connection}}
+ {{ batch.options.connection }}
Created
@@ -130,19 +156,19 @@
Total Jobs
- {{batch.totalJobs}}
+ {{ batch.totalJobs }}
Pending Jobs
- {{batch.pendingJobs}}
+ {{ batch.pendingJobs }}
Failed Jobs
- {{batch.failedJobs}}
+ {{ batch.failedJobs }}
- Processed Jobs (Including Failed)
- {{ (batch.processedJobs) }} ({{batch.progress}}%)
+ Processed Jobs (Including Failed)
+ {{ batch.processedJobs }} ({{ batch.progress }}%)
@@ -154,33 +180,38 @@
-
- | Job |
- Runtime |
- Failed |
-
+
+ | Job |
+ Runtime |
+ Failed |
+
-
-
- |
-
- {{ jobBaseName(failedJob.name) }}
-
- |
-
-
- {{ failedJob.failed_at && failedJob.reserved_at ? String(( failedJob.failed_at - failedJob.reserved_at ).toFixed(2))+'s' : '-' }}
- |
-
-
- {{ readableTimestamp(failedJob.failed_at) }}
- |
-
+
+ |
+
+ {{ jobBaseName(failedJob.name) }}
+
+ |
+
+
+ {{
+ failedJob.failed_at && failedJob.reserved_at
+ ? String((failedJob.failed_at - failedJob.reserved_at).toFixed(2)) + 's'
+ : '-'
+ }}
+ |
+
+
+ {{ readableTimestamp(failedJob.failed_at) }}
+ |
+
-
diff --git a/src/horizon/resources/js/screens/dashboard.test.js b/src/horizon/resources/js/screens/dashboard.test.js
new file mode 100644
index 0000000000..0944202e25
--- /dev/null
+++ b/src/horizon/resources/js/screens/dashboard.test.js
@@ -0,0 +1,34 @@
+import { flushPromises, shallowMount } from '@vue/test-utils';
+import { afterEach, expect, it, vi } from 'vite-plus/test';
+import Dashboard from './dashboard.vue';
+
+let wrapper;
+
+afterEach(() => {
+ wrapper?.unmount();
+ vi.unstubAllGlobals();
+});
+
+it('waits for every dashboard request before reporting a partial failure', async () => {
+ vi.stubGlobal('Horizon', { basePath: '/horizon' });
+ const error = new Error('Stats unavailable');
+ const workers = Promise.withResolvers();
+ const workload = Promise.withResolvers();
+ const get = vi
+ .fn()
+ .mockRejectedValueOnce(error)
+ .mockReturnValueOnce(workers.promise)
+ .mockReturnValueOnce(workload.promise);
+ wrapper = shallowMount(Dashboard, { global: { mocks: { $http: { get } }, stubs: { poll: true } } });
+ const settled = vi.fn();
+ const request = wrapper.vm.refreshStatsPeriodically().then(settled, settled);
+ await flushPromises();
+ expect(settled).not.toHaveBeenCalled();
+ workers.resolve({ data: [] });
+ await flushPromises();
+ expect(settled).not.toHaveBeenCalled();
+ workload.resolve({ data: [] });
+ await request;
+ expect(settled).toHaveBeenCalledWith(error);
+ expect(wrapper.vm.ready).toBe(false);
+});
diff --git a/src/horizon/resources/js/screens/dashboard.vue b/src/horizon/resources/js/screens/dashboard.vue
index fc58c5b166..ec23c77a9c 100644
--- a/src/horizon/resources/js/screens/dashboard.vue
+++ b/src/horizon/resources/js/screens/dashboard.vue
@@ -1,10 +1,9 @@
-
-
+
@@ -258,12 +295,12 @@
-
- | Queue |
- Jobs |
- Processes |
- Wait |
-
+
+ | Queue |
+ Jobs |
+ Processes |
+ Wait |
+
@@ -272,20 +309,32 @@
{{ queue.name.replace(/,/g, ', ') }}
|
- {{ queue.length ? queue.length.toLocaleString() : 0 }} |
- {{ queue.processes ? queue.processes.toLocaleString() : 0 }} |
- {{ humanTime(queue.wait) }} |
+
+ {{ queue.length ? queue.length.toLocaleString() : 0 }}
+ |
+
+ {{ queue.processes ? queue.processes.toLocaleString() : 0 }}
+ |
+
+ {{ humanTime(queue.wait) }}
+ |
|
-
+
{{ split_queue.name.replace(/,/g, ', ') }}
|
- {{ split_queue.length ? split_queue.length.toLocaleString() : 0 }} |
+
+ {{ split_queue.length ? split_queue.length.toLocaleString() : 0 }}
+ |
- |
{{ humanTime(split_queue.wait) }} |
@@ -294,60 +343,95 @@
-
-
- | Supervisor |
- Connection |
- Queues |
- Processes |
- Concurrency |
- Balancing |
-
+
+ | Supervisor |
+ Connection |
+ Queues |
+ Processes |
+ Concurrency |
+ Balancing |
+
-
- |
-
-
-
-
-
-
- {{ superVisorDisplayName(supervisor.name, worker.name) }}
- |
- {{ supervisor.options.connection }} |
- {{ supervisor.options.queue.replace(/,/g, ', ') }} |
- {{ countProcesses(supervisor.processes) }} |
-
- {{ supervisor.options.concurrency || 1 }}
- |
-
- {{ upperFirst(supervisor.options.balance) }}
- |
-
- Disabled
- |
-
+
+ |
+
+
+
+
+
+
+ {{ superVisorDisplayName(supervisor.name, worker.name) }}
+ |
+ {{ supervisor.options.connection }} |
+ {{ supervisor.options.queue.replace(/,/g, ', ') }} |
+ {{ countProcesses(supervisor.processes) }} |
+
+ {{ supervisor.options.concurrency || 1 }}
+ |
+
+ {{ upperFirst(supervisor.options.balance) }}
+ |
+ Disabled |
+
-
-
diff --git a/src/horizon/resources/js/screens/failedJobs/index.vue b/src/horizon/resources/js/screens/failedJobs/index.vue
index 6127f4724c..9d0dd35cff 100644
--- a/src/horizon/resources/js/screens/failedJobs/index.vue
+++ b/src/horizon/resources/js/screens/failedJobs/index.vue
@@ -1,4 +1,4 @@
-
-
+
-
+
-
-
+
There aren't any failed jobs.
-
- | Job |
- Runtime |
- Failed |
- Retry |
-
+
+ | Job |
+ Runtime |
+ Failed |
+ Retry |
+
-
- |
- Load New Entries
-
- Loading...
- |
-
-
-
-
- {{ jobBaseName(job.name) }}
-
-
- Retried
-
-
-
-
-
- Queue: {{job.queue}}
- | Attempts: {{ job.payload.attempts }}
-
- | Retry of
-
- {{ job.payload.retry_of.split('-')[0] }}
-
-
-
- | Tags: {{ job.payload.tags && job.payload.tags.length ? job.payload.tags.join(', ') : '' }}
-
-
- |
-
-
- {{ job.failed_at ? String((job.failed_at - job.reserved_at).toFixed(2))+'s' : '-' }}
- |
-
-
- {{ readableTimestamp(job.failed_at) }}
- |
-
-
-
-
-
-
-
- |
-
+
+ |
+ Load New Entries
+
+ Loading...
+ |
+
+
+
+
+ {{ jobBaseName(job.name) }}
+
+
+ Retried
+
+
+
+
+
+ Queue: {{ job.queue }} | Attempts: {{ job.payload.attempts }}
+
+ | Retry of
+
+ {{ job.payload.retry_of.split('-')[0] }}
+
+
+
+ | Tags:
+ {{ job.payload.tags && job.payload.tags.length ? job.payload.tags.join(', ') : '' }}
+
+
+ |
+
+
+ {{
+ job.failed_at ? String((job.failed_at - job.reserved_at).toFixed(2)) + 's' : '-'
+ }}
+ |
+
+
+ {{ readableTimestamp(job.failed_at) }}
+ |
+
+
+
+
+
+
+
+ |
+
-
-
+
+
-
diff --git a/src/horizon/resources/js/screens/failedJobs/job.vue b/src/horizon/resources/js/screens/failedJobs/job.vue
index cc9a251478..0e5a90072a 100644
--- a/src/horizon/resources/js/screens/failedJobs/job.vue
+++ b/src/horizon/resources/js/screens/failedJobs/job.vue
@@ -1,13 +1,12 @@
-
-
+
-
+
-
+
Loading...
@@ -122,40 +137,47 @@
ID
- {{job.id}}
+ {{ job.id }}
Connection
- {{job.connection}}
+ {{ job.connection }}
Queue
- {{job.queue}}
+ {{ job.queue }}
Attempts
- {{job.payload.attempts}}
+ {{ job.payload.attempts }}
Retries
- {{job.retried_by.length}}
+ {{ job.retried_by.length }}
Tags
- {{ job.payload.tags && job.payload.tags.length ? job.payload.tags.join(', ') : '' }}
+
+ {{ job.payload.tags && job.payload.tags.length ? job.payload.tags.join(', ') : '' }}
+
Batch
-
+
{{ prettyPrintJob(job.payload.data).batchId }}
@@ -166,7 +188,7 @@
Failed
- {{readableTimestamp(job.failed_at)}}
+ {{ readableTimestamp(job.failed_at) }}
@@ -190,7 +212,6 @@
-
-
diff --git a/src/horizon/resources/js/screens/metrics/index.vue b/src/horizon/resources/js/screens/metrics/index.vue
index 9e7ead3e73..73d97a46ea 100644
--- a/src/horizon/resources/js/screens/metrics/index.vue
+++ b/src/horizon/resources/js/screens/metrics/index.vue
@@ -1,12 +1,12 @@
-
@@ -18,20 +18,29 @@
-
+
-
diff --git a/src/horizon/resources/js/screens/metrics/jobs.vue b/src/horizon/resources/js/screens/metrics/jobs.vue
index 1f5367d4be..948446d312 100644
--- a/src/horizon/resources/js/screens/metrics/jobs.vue
+++ b/src/horizon/resources/js/screens/metrics/jobs.vue
@@ -1,19 +1,17 @@
-
-
-
+
There aren't any jobs.
-
- | Job |
-
+
+ | Job |
+
-
-
-
- |
-
- {{ job }}
-
- |
-
+
+ |
+
+ {{ job }}
+
+ |
+
-
diff --git a/src/horizon/resources/js/screens/metrics/preview.vue b/src/horizon/resources/js/screens/metrics/preview.vue
index 8c798ff8be..b37086d5e3 100644
--- a/src/horizon/resources/js/screens/metrics/preview.vue
+++ b/src/horizon/resources/js/screens/metrics/preview.vue
@@ -1,12 +1,11 @@
-
-
+
-
- Not Enough Data
-
+ Not Enough Data
-
+
-
+
-
- Not Enough Data
-
+ Not Enough Data
-
+
diff --git a/src/horizon/resources/js/screens/metrics/queues.vue b/src/horizon/resources/js/screens/metrics/queues.vue
index bce449ad5a..97d7208976 100644
--- a/src/horizon/resources/js/screens/metrics/queues.vue
+++ b/src/horizon/resources/js/screens/metrics/queues.vue
@@ -1,19 +1,17 @@
-
-
-
+
There aren't any queues.
-
- | Queue |
-
+
+ | Queue |
+
-
-
-
- |
-
- {{ queue }}
-
- |
-
+
+ |
+
+ {{ queue }}
+
+ |
+
-
diff --git a/src/horizon/resources/js/screens/monitoring/index.test.js b/src/horizon/resources/js/screens/monitoring/index.test.js
new file mode 100644
index 0000000000..20ed3b4b4d
--- /dev/null
+++ b/src/horizon/resources/js/screens/monitoring/index.test.js
@@ -0,0 +1,108 @@
+import { flushPromises, mount } from '@vue/test-utils';
+import { Modal } from 'bootstrap';
+import { afterEach, beforeEach, expect, it, vi } from 'vite-plus/test';
+import Monitoring from './index.vue';
+import Base from '../../base';
+
+const http = { get: vi.fn(), post: vi.fn(), delete: vi.fn() };
+
+let wrapper;
+let container;
+
+async function mountMonitoring() {
+ container = document.createElement('div');
+ document.body.appendChild(container);
+ wrapper = mount(Monitoring, {
+ attachTo: container,
+ global: {
+ mixins: [Base, { data: () => ({ alert: {} }) }],
+ mocks: { $http: http },
+ stubs: { poll: true, 'router-link': { template: ' ' } },
+ },
+ });
+ wrapper.vm.loadTags();
+ await flushPromises();
+}
+
+beforeEach(() => {
+ vi.stubGlobal('Horizon', { basePath: '/horizon' });
+ http.get.mockReset().mockResolvedValue({ data: [{ tag: 'existing', count: 0 }] });
+ http.post.mockReset().mockResolvedValue({ data: {} });
+ http.delete.mockReset().mockResolvedValue({ data: {} });
+});
+
+afterEach(() => {
+ wrapper?.unmount();
+ container?.remove();
+ vi.unstubAllGlobals();
+});
+
+it('focuses the input and supports canceling and reopening the modal', async () => {
+ await mountMonitoring();
+ await wrapper.find('.card-header button').trigger('click');
+ const input = wrapper.find('input');
+ expect(document.activeElement).toBe(input.element);
+ await input.setValue('canceled');
+ await wrapper.findAll('.modal button')[1].trigger('click');
+ expect(input.element.value).toBe('');
+ expect(http.post).not.toHaveBeenCalled();
+ expect(document.body.style.overflow).toBe('');
+
+ await wrapper.find('.card-header button').trigger('click');
+ await input.setValue('new tag');
+ await input.trigger('keyup', { key: 'Enter' });
+ await flushPromises();
+ expect(wrapper.find('tbody').text()).toContain('new tag');
+ expect(http.post).toHaveBeenCalledWith('/horizon/api/monitoring', { tag: 'new tag' });
+ expect(document.body.classList.contains('modal-open')).toBe(false);
+});
+
+it('releases an open modal and restores scrolling when unmounted', async () => {
+ await mountMonitoring();
+ await wrapper.find('.card-header button').trigger('click');
+ const element = wrapper.find('.modal').element;
+ expect(Modal.getInstance(element)).not.toBeNull();
+ wrapper.unmount();
+ wrapper = null;
+
+ expect(Modal.getInstance(element)).toBeNull();
+ expect(document.body.classList.contains('modal-open')).toBe(false);
+ expect(document.body.style.overflow).toBe('');
+ expect(document.querySelector('.modal-backdrop')).toBeNull();
+});
+
+it('uses the submitted tag and preserves a newer draft while adding only one row', async () => {
+ await mountMonitoring();
+ await wrapper.find('.card-header button').trigger('click');
+ await wrapper.find('input').setValue('submitted');
+ const pending = Promise.withResolvers();
+ http.post.mockReturnValue(pending.promise);
+ const first = wrapper.vm.monitorNewTag();
+ const second = wrapper.vm.monitorNewTag();
+ await wrapper.find('input').setValue('next draft');
+
+ pending.resolve({ data: {} });
+ await Promise.all([first, second]);
+ await flushPromises();
+
+ expect(wrapper.vm.tags.filter(({ tag }) => tag === 'submitted')).toHaveLength(1);
+ expect(wrapper.find('input').element.value).toBe('next draft');
+ expect(document.body.classList.contains('modal-open')).toBe(true);
+});
+
+it('keeps tags and the draft when monitoring requests fail', async () => {
+ await mountMonitoring();
+ await wrapper.find('.card-header button').trigger('click');
+ await wrapper.find('input').setValue('new tag');
+ http.post.mockRejectedValue(new Error('Request failed'));
+ await wrapper.vm.monitorNewTag();
+ expect(wrapper.vm.tags.map(({ tag }) => tag)).toEqual(['existing']);
+ expect(wrapper.find('input').element.value).toBe('new tag');
+ expect(wrapper.vm.$root.alert.message).toContain('could not confirm');
+
+ wrapper.vm.$root.alert = {};
+ http.delete.mockRejectedValue(new Error('Request failed'));
+ await wrapper.vm.stopMonitoring('existing');
+ expect(wrapper.vm.tags.map(({ tag }) => tag)).toEqual(['existing']);
+ expect(wrapper.vm.$root.alert.message).toContain('could not confirm');
+});
diff --git a/src/horizon/resources/js/screens/monitoring/index.vue b/src/horizon/resources/js/screens/monitoring/index.vue
index c1a9c92c2f..a27ac989a1 100644
--- a/src/horizon/resources/js/screens/monitoring/index.vue
+++ b/src/horizon/resources/js/screens/monitoring/index.vue
@@ -1,4 +1,4 @@
-
-
+
-
+
-
-
+
You're not monitoring any tags.
-
-
- | Tag |
- Jobs |
- |
-
+
+ | Tag |
+ Jobs |
+ |
+
-
- |
-
- {{ tag.tag }}
-
- |
- {{ tag.count }} |
-
-
-
-
-
-
- |
-
+
+ |
+
+ {{ tag.tag }}
+
+ |
+ {{ tag.count }} |
+
+
+
+
+
+
+ |
+
-
diff --git a/src/horizon/resources/js/screens/monitoring/job-row.test.js b/src/horizon/resources/js/screens/monitoring/job-row.test.js
new file mode 100644
index 0000000000..a0b70806e2
--- /dev/null
+++ b/src/horizon/resources/js/screens/monitoring/job-row.test.js
@@ -0,0 +1,36 @@
+import { shallowMount } from '@vue/test-utils';
+import { afterEach, expect, it, vi } from 'vite-plus/test';
+import Base from '../../base';
+import JobRow from './job-row.vue';
+
+let wrapper;
+
+afterEach(() => {
+ wrapper?.unmount();
+ vi.useRealTimers();
+});
+
+it.each([
+ ['seconds', 'i:600;'],
+ ['interval', 'O:12:"DateInterval":2:{s:11:"from_string";b:1;s:11:"date_string";s:10:"10 minutes";}'],
+])('shows a monitored job delay expressed as %s', (_, delay) => {
+ vi.useFakeTimers();
+ vi.setSystemTime(new Date('2026-01-01T00:00:00Z'));
+ wrapper = shallowMount(JobRow, {
+ props: {
+ job: {
+ id: 'example',
+ name: 'ExampleJob',
+ status: 'pending',
+ payload: {
+ tags: [],
+ pushedAt: Date.now() / 1000,
+ delay: 600,
+ data: { command: `O:8:"stdClass":1:{s:5:"delay";${delay}}` },
+ },
+ },
+ },
+ global: { mixins: [Base], stubs: { 'router-link': true } },
+ });
+ expect(wrapper.find('[title="Delayed for 10 minutes"]').exists()).toBe(true);
+});
diff --git a/src/horizon/resources/js/screens/monitoring/job-row.vue b/src/horizon/resources/js/screens/monitoring/job-row.vue
index 3f44b010e0..4dd7417d15 100644
--- a/src/horizon/resources/js/screens/monitoring/job-row.vue
+++ b/src/horizon/resources/js/screens/monitoring/job-row.vue
@@ -1,22 +1,29 @@
-
+
{{ jobBaseName(job.name) }}
-
+
Delayed
-
+
- Queue: {{job.queue}}
+ Queue: {{ job.queue }}
- | Tags: {{ job.payload.tags && job.payload.tags.length ? job.payload.tags.slice(0,3).join(', ') : '' }} +{{ job.payload.tags.length - 3 }} more
+ | Tags:
+ {{ job.payload.tags && job.payload.tags.length ? job.payload.tags.slice(0, 3).join(', ') : ''
+ }}
+ +{{ job.payload.tags.length - 3 }} more
|
@@ -30,7 +37,7 @@
- {{ job.completed_at ? (job.completed_at - job.reserved_at).toFixed(2)+'s' : '-' }}
+ {{ job.completed_at ? (job.completed_at - job.reserved_at).toFixed(2) + 's' : '-' }}
|
@@ -39,37 +46,51 @@
|
-
diff --git a/src/horizon/resources/js/screens/monitoring/tag-jobs.vue b/src/horizon/resources/js/screens/monitoring/tag-jobs.vue
index 643ce495d7..7e8f87b47c 100644
--- a/src/horizon/resources/js/screens/monitoring/tag-jobs.vue
+++ b/src/horizon/resources/js/screens/monitoring/tag-jobs.vue
@@ -1,4 +1,4 @@
-
-
+
-
-
+
There aren't any jobs for this tag.
-
- | Job |
- Queued |
- Completed |
- Runtime |
- Failed |
-
+
+ | Job |
+ Queued |
+ Completed |
+ Runtime |
+ Failed |
+
-
- |
- Load New Entries
-
- Loading...
- |
-
-
-
-
+
+ |
+ Load New Entries
+
+ Loading...
+ |
+
+
+
-
-
+
+
-
diff --git a/src/horizon/resources/js/screens/monitoring/tag.vue b/src/horizon/resources/js/screens/monitoring/tag.vue
index 0c291217f5..91262dade6 100644
--- a/src/horizon/resources/js/screens/monitoring/tag.vue
+++ b/src/horizon/resources/js/screens/monitoring/tag.vue
@@ -1,5 +1,5 @@
-
@@ -11,20 +11,29 @@
-
-
+
Recent Jobs
-
-
+
Failed Jobs
-
+
-
diff --git a/src/horizon/resources/js/screens/recentJobs/index.vue b/src/horizon/resources/js/screens/recentJobs/index.vue
index e5f971e10f..c94c50c46c 100644
--- a/src/horizon/resources/js/screens/recentJobs/index.vue
+++ b/src/horizon/resources/js/screens/recentJobs/index.vue
@@ -1,4 +1,4 @@
-
-
+
-
+
+ d="M12 10a2 2 0 0 1-3.41 1.41A2 2 0 0 1 10 8V0a9.97 9.97 0 0 1 10 10h-8zm7.9 1.41A10 10 0 1 1 8.59.1v2.03a8 8 0 1 0 9.29 9.29h2.02zm-4.07 0a6 6 0 1 1-7.25-7.25v2.1a3.99 3.99 0 0 0-1.4 6.57 4 4 0 0 0 6.56-1.42h2.1z"
+ >
Loading...
-
+
There aren't any pending jobs.
There aren't any completed jobs.
There aren't any silenced jobs.
@@ -178,30 +198,38 @@
| Job |
- Queued |
- Queued |
- Completed |
- Runtime |
+ Queued |
+ Queued |
+ Completed |
+
+ Runtime
+ |
-
+
|
- Load New Entries
+ Load New Entries
Loading...
|
-
-
+
-
-
+
+
diff --git a/src/horizon/resources/js/screens/recentJobs/job-row.vue b/src/horizon/resources/js/screens/recentJobs/job-row.vue
index 579507557c..fd98c660f6 100644
--- a/src/horizon/resources/js/screens/recentJobs/job-row.vue
+++ b/src/horizon/resources/js/screens/recentJobs/job-row.vue
@@ -1,23 +1,32 @@
-
+
{{ jobBaseName(job.name) }}
-
+ v-if="delayed && (job.status == 'reserved' || job.status == 'pending')"
+ >
Delayed
-
+
- Queue: {{job.queue}}
+ Queue: {{ job.queue }}
- | Tags: {{ job.payload.tags && job.payload.tags.length ? job.payload.tags.slice(0,3).join(', ') : '' }} +{{ job.payload.tags.length - 3 }} more
+ | Tags:
+ {{ job.payload.tags && job.payload.tags.length ? job.payload.tags.slice(0, 3).join(', ') : ''
+ }}
+ +{{ job.payload.tags.length - 3 }} more
|
@@ -26,33 +35,36 @@
{{ readableTimestamp(job.payload.pushedAt) }}
-
+ |
{{ readableTimestamp(job.completed_at) }}
|
-
- {{ job.completed_at ? (job.completed_at - job.reserved_at).toFixed(2)+'s' : '-' }}
+ |
+ {{ job.completed_at ? (job.completed_at - job.reserved_at).toFixed(2) + 's' : '-' }}
|
-
diff --git a/src/horizon/resources/js/screens/recentJobs/job.vue b/src/horizon/resources/js/screens/recentJobs/job.vue
index 55b3fefd06..55d65f5d44 100644
--- a/src/horizon/resources/js/screens/recentJobs/job.vue
+++ b/src/horizon/resources/js/screens/recentJobs/job.vue
@@ -3,16 +3,19 @@
-
+
-
+
Loading...
@@ -21,17 +24,17 @@
ID
- {{job.id}}
+ {{ job.id }}
Connection
- {{job.connection}}
+ {{ job.connection }}
Queue
- {{job.queue}}
+ {{ job.queue }}
@@ -42,7 +45,12 @@
Batch
-
+
{{ prettyPrintJob(job.payload.data).batchId }}
@@ -50,12 +58,12 @@
Delayed Until
- {{delayed}}
+ {{ delayed }}
Completed
- {{readableTimestamp(job.completed_at)}}
+ {{ readableTimestamp(job.completed_at) }}
-
@@ -65,9 +73,7 @@
@@ -79,9 +85,7 @@
@@ -91,7 +95,7 @@
-
From 556bcec42fe897e7d68a762538d18a3a4b372f67 Mon Sep 17 00:00:00 2001
From: Raj Siva-Rajah <5361908+binaryfire@users.noreply.github.com>
Date: Wed, 28 Oct 2026 19:07:52 +0000
Subject: [PATCH 08/16] Confirm Telescope actions before changing dashboard
state
Update recording state only after the toggle succeeds, prevent overlapping toggle requests and release the pending state on failure. Report changes that could not be confirmed and reload cleared entries only after success. Exercise these paths through the real mounted application entry.
Wait for the initial monitoring list before enabling additions. Capture submitted tags, preserve newer drafts, deduplicate successful additions and change displayed tags only after successful mutations. Report failed additions and deletions through the existing alert.
Replace monitoring select-and-insert with one native upsert of unique tags so concurrent requests cannot collide on the tag primary key. All shipped database grammars support upsert; a custom DB::extend connection now needs upsert support in its grammar. Retain strict database errors without an insert fallback. Existing storage coverage and focused dashboard tests pass.
---
src/telescope/resources/js/app.js | 31 +++++--
src/telescope/resources/js/app.test.js | 87 +++++++++++++++++++
.../js/screens/monitoring/index.test.js | 60 +++++++++++--
.../resources/js/screens/monitoring/index.vue | 86 ++++++++++--------
.../src/Storage/DatabaseEntriesRepository.php | 7 +-
5 files changed, 224 insertions(+), 47 deletions(-)
create mode 100644 src/telescope/resources/js/app.test.js
diff --git a/src/telescope/resources/js/app.js b/src/telescope/resources/js/app.js
index b07134664e..55baf85a2c 100644
--- a/src/telescope/resources/js/app.js
+++ b/src/telescope/resources/js/app.js
@@ -36,6 +36,7 @@ const app = createApp({
autoLoadsNewEntries: localStorage[LOCALSTORAGE_AUTOLOAD_KEY] === '1',
recording: Telescope.recording,
+ recordingPending: false,
};
},
@@ -54,10 +55,25 @@ const app = createApp({
},
toggleRecording() {
- axios.post(Telescope.basePath + '/telescope-api/toggle-recording');
+ if (this.recordingPending) {
+ return;
+ }
- window.Telescope.recording = !Telescope.recording;
- this.recording = !this.recording;
+ this.recordingPending = true;
+
+ return axios
+ .post(Telescope.basePath + '/telescope-api/toggle-recording')
+ .then(() => {
+ this.recording = !this.recording;
+ })
+ .catch(() => {
+ this.alertError(
+ 'Telescope could not confirm the recording change. Reload the page to see the current status.',
+ );
+ })
+ .finally(() => {
+ this.recordingPending = false;
+ });
},
clearEntries(shouldConfirm = true) {
@@ -65,12 +81,17 @@ const app = createApp({
return;
}
- axios.delete(Telescope.basePath + '/telescope-api/entries').then((response) => location.reload());
+ return axios
+ .delete(Telescope.basePath + '/telescope-api/entries')
+ .then(() => location.reload())
+ .catch(() =>
+ this.alertError('Telescope could not confirm that entries were cleared. Reload the page to check.'),
+ );
},
keydownListener(event) {
if (event.metaKey && event.key === 'k') {
- this.clearEntries(false);
+ void this.clearEntries(false);
}
},
},
diff --git a/src/telescope/resources/js/app.test.js b/src/telescope/resources/js/app.test.js
new file mode 100644
index 0000000000..a8036f9055
--- /dev/null
+++ b/src/telescope/resources/js/app.test.js
@@ -0,0 +1,87 @@
+import { flushPromises } from '@vue/test-utils';
+import axios from 'axios';
+import { afterEach, beforeEach, expect, it, vi } from 'vite-plus/test';
+
+const mounted = vi.hoisted(() => ({ app: null, root: null }));
+
+vi.mock('axios', () => ({
+ default: { post: vi.fn(), delete: vi.fn(), defaults: { headers: { common: {} } } },
+}));
+vi.mock('./routes', () => ({ default: [{ path: '/', component: { render: () => null } }] }));
+vi.mock('vue/dist/vue.esm-bundler.js', async (importOriginal) => {
+ const vue = await importOriginal();
+
+ return {
+ ...vue,
+ createApp(...parameters) {
+ mounted.app = vue.createApp(...parameters);
+ const mount = mounted.app.mount.bind(mounted.app);
+ mounted.app.mount = (...parameters) => {
+ mounted.root = mount(...parameters);
+
+ return mounted.root;
+ };
+
+ return mounted.app;
+ },
+ };
+});
+
+beforeEach(async () => {
+ vi.resetModules();
+ axios.post.mockReset();
+ axios.delete.mockReset();
+ vi.stubGlobal('Telescope', { path: 'telescope', timezone: 'UTC', recording: true });
+ window.history.replaceState(null, '', '/telescope');
+ document.body.innerHTML = ' ';
+ await import('./app');
+ await flushPromises();
+});
+
+afterEach(() => {
+ mounted.app?.unmount();
+ mounted.app = null;
+ mounted.root = null;
+ document.body.innerHTML = '';
+ vi.unstubAllGlobals();
+ window.history.replaceState(null, '', '/');
+});
+
+it('changes recording only after confirmation and prevents overlapping toggles', async () => {
+ const response = Promise.withResolvers();
+ axios.post.mockReturnValue(response.promise);
+ const pending = mounted.root.toggleRecording();
+ mounted.root.toggleRecording();
+
+ expect(axios.post).toHaveBeenCalledExactlyOnceWith('/telescope/telescope-api/toggle-recording');
+ expect(mounted.root.recording).toBe(true);
+
+ response.resolve({ data: { success: true } });
+ await pending;
+ expect(mounted.root.recording).toBe(false);
+});
+
+it('reports an unconfirmed recording change and permits a later request', async () => {
+ axios.post.mockRejectedValueOnce(new Error('Session expired')).mockResolvedValue({ data: { success: true } });
+ await mounted.root.toggleRecording();
+
+ expect(mounted.root.recording).toBe(true);
+ expect(mounted.root.alert.type).toBe('error');
+ expect(mounted.root.alert.message).toContain('Reload the page');
+
+ await mounted.root.toggleRecording();
+ expect(axios.post).toHaveBeenCalledTimes(2);
+ expect(mounted.root.recording).toBe(false);
+});
+
+it('reports an unconfirmed clear without reloading', async () => {
+ const reload = vi.fn();
+ vi.stubGlobal('location', { reload });
+ axios.delete.mockRejectedValue(new Error('Session expired'));
+ await mounted.root.clearEntries(false);
+
+ expect(axios.delete).toHaveBeenCalledExactlyOnceWith('/telescope/telescope-api/entries');
+ expect(reload).not.toHaveBeenCalled();
+ expect(mounted.root.alert.type).toBe('error');
+ expect(mounted.root.alert.message).toContain('entries were cleared');
+});
diff --git a/src/telescope/resources/js/screens/monitoring/index.test.js b/src/telescope/resources/js/screens/monitoring/index.test.js
index 14522cd087..361b2f0b35 100644
--- a/src/telescope/resources/js/screens/monitoring/index.test.js
+++ b/src/telescope/resources/js/screens/monitoring/index.test.js
@@ -1,7 +1,7 @@
import { flushPromises, mount } from '@vue/test-utils';
import axios from 'axios';
import { Modal } from 'bootstrap';
-import { afterEach, beforeEach, expect, it, vi } from 'vitest';
+import { afterEach, beforeEach, expect, it, vi } from 'vite-plus/test';
import Base from '../../base';
import Monitoring from './index.vue';
@@ -46,6 +46,7 @@ it('focuses the input and supports canceling and reopening the modal', async ()
await wrapper.find('.card-header button').trigger('click');
await input.setValue('new tag');
await input.trigger('keyup', { key: 'Enter' });
+ await flushPromises();
expect(wrapper.find('tbody').text()).toContain('new tag');
expect(axios.post).toHaveBeenCalledWith('/telescope/telescope-api/monitored-tags', { tag: 'new tag' });
expect(document.body.classList.contains('modal-open')).toBe(false);
@@ -73,21 +74,68 @@ it('removes a tag only after confirmation', async () => {
expect(wrapper.text()).toContain('No tags are currently being monitored.');
});
-it('aborts a pending load and releases an open modal when unmounted', async () => {
- const pending = Promise.withResolvers();
- axios.get.mockReturnValue(pending.promise);
+it('releases an open modal when unmounted', async () => {
await mountMonitoring();
await wrapper.find('.card-header button').trigger('click');
const element = wrapper.find('.modal').element;
- const signal = axios.get.mock.calls[0][1].signal;
wrapper.unmount();
wrapper = null;
- expect(signal.aborted).toBe(true);
expect(Modal.getInstance(element)).toBeNull();
expect(document.body.classList.contains('modal-open')).toBe(false);
expect(document.body.style.overflow).toBe('');
expect(document.querySelector('.modal-backdrop')).toBeNull();
+});
+
+it('disables monitoring until the initial tags load and aborts that load on unmount', async () => {
+ const pending = Promise.withResolvers();
+ axios.get.mockReturnValue(pending.promise);
+ await mountMonitoring();
+ expect(wrapper.find('.card-header button').element.disabled).toBe(true);
+ const signal = axios.get.mock.calls[0][1].signal;
+ wrapper.unmount();
+ wrapper = null;
+ expect(signal.aborted).toBe(true);
pending.reject(new Error('canceled'));
await flushPromises();
});
+
+it('does not add a tag before success and preserves the draft after rejection', async () => {
+ await mountMonitoring();
+ await wrapper.find('.card-header button').trigger('click');
+ await wrapper.find('input').setValue('new tag');
+ const pending = Promise.withResolvers();
+ axios.post.mockReturnValue(pending.promise);
+ const request = wrapper.vm.monitorNewTag();
+ expect(wrapper.vm.tags).toEqual(['existing']);
+ pending.reject(new Error('Request failed'));
+ await request;
+ expect(wrapper.vm.tags).toEqual(['existing']);
+ expect(wrapper.vm.newTag).toBe('new tag');
+ expect(wrapper.vm.$root.alert.message).toContain('could not confirm');
+});
+
+it('retains a monitored tag when confirmed removal fails', async () => {
+ await mountMonitoring();
+ await wrapper.find('tbody a').trigger('click');
+ axios.post.mockRejectedValue(new Error('Request failed'));
+ await wrapper.vm.$root.alert.confirmationProceed();
+ expect(wrapper.vm.tags).toEqual(['existing']);
+ expect(wrapper.vm.$root.alert.message).toContain('could not confirm');
+});
+
+it('deduplicates successful additions without clearing a newer draft', async () => {
+ await mountMonitoring();
+ await wrapper.find('.card-header button').trigger('click');
+ await wrapper.find('input').setValue('submitted');
+ const pending = Promise.withResolvers();
+ axios.post.mockReturnValue(pending.promise);
+ const first = wrapper.vm.monitorNewTag();
+ const second = wrapper.vm.monitorNewTag();
+ await wrapper.find('input').setValue('next draft');
+ pending.resolve({ data: {} });
+ await Promise.all([first, second]);
+ expect(wrapper.vm.tags).toEqual(['existing', 'submitted']);
+ expect(wrapper.vm.newTag).toBe('next draft');
+ expect(document.body.classList.contains('modal-open')).toBe(true);
+});
diff --git a/src/telescope/resources/js/screens/monitoring/index.vue b/src/telescope/resources/js/screens/monitoring/index.vue
index 3d2488bf9d..dbd051f8df 100644
--- a/src/telescope/resources/js/screens/monitoring/index.vue
+++ b/src/telescope/resources/js/screens/monitoring/index.vue
@@ -13,34 +13,36 @@ export default {
ready: false,
newTag: '',
newTagModal: null,
- requestController: new AbortController()
+ requestController: new AbortController(),
};
},
/**
* Prepare the component.
*/
- mounted(){
- document.title = "Monitoring - Telescope";
+ mounted() {
+ document.title = 'Monitoring - Telescope';
this.newTagModal = Modal.getOrCreateInstance(this.$refs.addTagModal, {
backdrop: 'static',
});
- const {signal} = this.requestController;
+ const { signal } = this.requestController;
- axios.get(Telescope.basePath + '/telescope-api/monitored-tags', {signal}).then(response => {
- if (signal.aborted) return;
+ axios
+ .get(Telescope.basePath + '/telescope-api/monitored-tags', { signal })
+ .then((response) => {
+ if (signal.aborted) return;
- this.tags = response.data.tags;
+ this.tags = response.data.tags;
- this.ready = true;
- }).catch(error => {
- if (!signal.aborted) throw error;
- })
+ this.ready = true;
+ })
+ .catch((error) => {
+ if (!signal.aborted) throw error;
+ });
},
-
/**
* Clean up before the component is unmounted.
*/
@@ -50,52 +52,68 @@ export default {
this.newTagModal.dispose();
},
-
methods: {
- removeTag(tag){
- this.alertConfirm('Are you sure you want to remove this tag?', ()=> {
- this.tags = _.reject(this.tags, t => t === tag);
-
- axios.post(Telescope.basePath + '/telescope-api/monitored-tags/delete', {tag: tag});
+ removeTag(tag) {
+ this.alertConfirm('Are you sure you want to remove this tag?', () => {
+ return axios
+ .post(Telescope.basePath + '/telescope-api/monitored-tags/delete', { tag })
+ .then(() => {
+ this.tags = _.reject(this.tags, (t) => t === tag);
+ })
+ .catch(() => {
+ this.alertError(
+ 'Telescope could not confirm the monitoring change. Reload the page to check the current tags.',
+ );
+ });
});
},
-
/**
* Opens the modal for adding new monitored tag.
*/
- openNewTagModal(){
+ openNewTagModal() {
this.newTagModal.show();
this.$refs.newTagInput.focus();
},
-
/**
* Monitor the given tag.
*/
- monitorNewTag(){
- if (this.newTag.length && !this.tags.includes(this.newTag)) {
- axios.post(Telescope.basePath + '/telescope-api/monitored-tags', {tag: this.newTag});
+ monitorNewTag() {
+ const tag = this.newTag;
- this.tags.push(this.newTag);
+ if (!tag.length || this.tags.includes(tag)) {
+ this.cancelNewTag();
+ return;
}
- this.newTagModal.hide();
-
- this.newTag = '';
+ return axios
+ .post(Telescope.basePath + '/telescope-api/monitored-tags', { tag })
+ .then(() => {
+ if (!this.tags.includes(tag)) this.tags.push(tag);
+
+ if (this.newTag === tag) {
+ this.newTagModal.hide();
+ this.newTag = '';
+ }
+ })
+ .catch(() => {
+ this.alertError(
+ 'Telescope could not confirm the monitoring change. Reload the page to check the current tags.',
+ );
+ });
},
-
/**
* Cancel adding a new tag.
*/
- cancelNewTag(){
+ cancelNewTag() {
this.newTagModal.hide();
this.newTag = '';
- }
- }
-}
+ },
+ },
+};
@@ -103,7 +121,7 @@ export default {
diff --git a/src/telescope/src/Storage/DatabaseEntriesRepository.php b/src/telescope/src/Storage/DatabaseEntriesRepository.php
index 6be3601f15..6a942030d3 100644
--- a/src/telescope/src/Storage/DatabaseEntriesRepository.php
+++ b/src/telescope/src/Storage/DatabaseEntriesRepository.php
@@ -395,14 +395,17 @@ public function monitoring(): array
*/
public function monitor(array $tags): void
{
- $tags = array_values(array_diff(array_unique($tags), $this->monitoring()));
+ $tags = array_values(array_unique($tags));
if (empty($tags)) {
return;
}
- $this->table('telescope_monitoring')->insert(
+ // Upsert so concurrent requests monitoring the same tag cannot collide on its primary key.
+ $this->table('telescope_monitoring')->upsert(
array_map(static fn (string $tag): array => ['tag' => $tag], $tags),
+ ['tag'],
+ ['tag'],
);
}
From 49ca0b832d27a887e8b3924b8d3dd979bd7284c7 Mon Sep 17 00:00:00 2001
From: Raj Siva-Rajah <5361908+binaryfire@users.noreply.github.com>
Date: Wed, 28 Oct 2026 19:07:58 +0000
Subject: [PATCH 09/16] Remove the empty Workbench bootstrap module
Drop the unused bootstrap import and empty module from the authentication frontend. Keep Alpine initialization in its existing entry and preserve the Workbench asset publication contract. The workspace build and independent application browser check pass.
---
src/workbench/resources/js/app.js | 2 --
src/workbench/resources/js/bootstrap.js | 1 -
2 files changed, 3 deletions(-)
delete mode 100644 src/workbench/resources/js/bootstrap.js
diff --git a/src/workbench/resources/js/app.js b/src/workbench/resources/js/app.js
index a8093bee76..df80acc4e2 100644
--- a/src/workbench/resources/js/app.js
+++ b/src/workbench/resources/js/app.js
@@ -1,5 +1,3 @@
-import './bootstrap';
-
import Alpine from 'alpinejs';
window.Alpine = Alpine;
diff --git a/src/workbench/resources/js/bootstrap.js b/src/workbench/resources/js/bootstrap.js
deleted file mode 100644
index b7eafdc862..0000000000
--- a/src/workbench/resources/js/bootstrap.js
+++ /dev/null
@@ -1 +0,0 @@
-// Bootstrap.js
From ad83644ec535772f2b9ce3ca68811dc7ec52265b Mon Sep 17 00:00:00 2001
From: Raj Siva-Rajah <5361908+binaryfire@users.noreply.github.com>
Date: Wed, 28 Oct 2026 19:08:08 +0000
Subject: [PATCH 10/16] Rebuild distributed frontend assets with the shared
toolchain
Commit the dashboard, exception renderer and Workbench outputs generated from the shared workspace and reviewed source changes. Replace the obsolete Workbench chunk and update its manifest while preserving all PHP-consumed filenames and inline classic-script behavior.
Verify repeat builds produce identical output, exercise the distributed assets in browser and exported-application checks, and compare compressed bundle sizes. Composer installations continue to receive ready-to-use assets without requiring Node or access to the monorepo catalog. AI workbench build output remains untracked.
---
.../exceptions/renderer/dist/scripts.js | 36 +++---
src/horizon/dist/app.css | 2 +-
src/horizon/dist/app.js | 117 +++++-------------
src/horizon/dist/styles-dark.css | 7 +-
src/horizon/dist/styles.css | 7 +-
src/telescope/dist/app.css | 2 +-
src/telescope/dist/app.js | 22 ++--
.../public/build/assets/app-CuJtlCw-.js | 5 -
.../public/build/assets/app-CvQ5XWTR.js | 5 +
src/workbench/public/build/manifest.json | 2 +-
10 files changed, 68 insertions(+), 137 deletions(-)
delete mode 100644 src/workbench/public/build/assets/app-CuJtlCw-.js
create mode 100644 src/workbench/public/build/assets/app-CvQ5XWTR.js
diff --git a/src/foundation/resources/exceptions/renderer/dist/scripts.js b/src/foundation/resources/exceptions/renderer/dist/scripts.js
index 3b4055940c..961d7803f8 100644
--- a/src/foundation/resources/exceptions/renderer/dist/scripts.js
+++ b/src/foundation/resources/exceptions/renderer/dist/scripts.js
@@ -1,10 +1,10 @@
-var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},n=!1,r=!1,i=[],a=-1,o=!1;function s(e){u(e)}function c(){o=!0}function l(){o=!1,f()}function u(e){i.includes(e)||i.push(e),f()}function d(e){let t=i.indexOf(e);t!==-1&&t>a&&i.splice(t,1)}function f(){if(!r&&!n){if(o)return;n=!0,queueMicrotask(p)}}function p(){n=!1,r=!0;for(let e=0;ee.effect(t,{scheduler:e=>{v?s(e):e()}}),_=e.raw}function x(e){h=e}function S(e){let t=()=>{};return[n=>{let r=h(n);return e._x_effects||(e._x_effects=new Set,e._x_runEffects=()=>{e._x_effects.forEach(e=>e())}),e._x_effects.add(r),t=()=>{r!==void 0&&(e._x_effects.delete(r),g(r))},r},()=>{t()}]}function C(e,t){let n=!0,r,i=h(()=>{let i=e();if(JSON.stringify(i),!n&&(typeof i==`object`||i!==r)){let e=r;queueMicrotask(()=>{t(i,e)})}r=i,n=!1});return()=>g(i)}async function w(e){c();try{await e(),await Promise.resolve()}finally{l()}}var T=[],E=[],D=[];function O(e){D.push(e)}function k(e,t){typeof t==`function`?(e._x_cleanups||=[],e._x_cleanups.push(t)):(t=e,E.push(t))}function ee(e){T.push(e)}function A(e,t,n){e._x_attributeCleanups||={},e._x_attributeCleanups[t]||(e._x_attributeCleanups[t]=[]),e._x_attributeCleanups[t].push(n)}function j(e,t){e._x_attributeCleanups&&Object.entries(e._x_attributeCleanups).forEach(([n,r])=>{(t===void 0||t.includes(n))&&(r.forEach(e=>e()),delete e._x_attributeCleanups[n])})}function M(e){for(e._x_effects?.forEach(d);e._x_cleanups?.length;)e._x_cleanups.pop()()}var te=new MutationObserver(de),ne=!1;function re(){te.observe(document,{subtree:!0,childList:!0,attributes:!0,attributeOldValue:!0}),ne=!0}function ie(){oe(),te.disconnect(),ne=!1}var ae=[];function oe(){let e=te.takeRecords();ae.push(()=>e.length>0&&de(e));let t=ae.length;queueMicrotask(()=>{if(ae.length===t)for(;ae.length>0;)ae.shift()()})}function N(e){if(!ne)return e();ie();let t=e();return re(),t}var se=!1,ce=[];function le(){se=!0}function ue(){se=!1,de(ce),ce=[]}function de(e){if(se){ce=ce.concat(e);return}let t=[],n=new Set,r=new Map,i=new Map;for(let a=0;a{e.nodeType===1&&e._x_marker&&n.add(e)}),e[a].addedNodes.forEach(e=>{if(e.nodeType===1){if(n.has(e)){n.delete(e);return}e._x_marker||t.push(e)}})),e[a].type===`attributes`)){let t=e[a].target,n=e[a].attributeName,o=e[a].oldValue,s=()=>{r.has(t)||r.set(t,[]),r.get(t).push({name:n,value:t.getAttribute(n)})},c=()=>{i.has(t)||i.set(t,[]),i.get(t).push(n)};t.hasAttribute(n)&&o===null?s():t.hasAttribute(n)?(c(),s()):c()}i.forEach((e,t)=>{j(t,e)}),r.forEach((e,t)=>{T.forEach(n=>n(t,e))});for(let e of n)t.some(t=>t.contains(e))||E.forEach(t=>t(e));for(let e of t)e.isConnected&&D.forEach(t=>t(e));t=null,n=null,r=null,i=null}function fe(e){return he(me(e))}function pe(e,t,n){return e._x_dataStack=[t,...me(n||e)],()=>{e._x_dataStack=e._x_dataStack.filter(e=>e!==t)}}function me(e){return e._x_dataStack?e._x_dataStack:typeof ShadowRoot==`function`&&e instanceof ShadowRoot?me(e.host):e.parentNode?me(e.parentNode):[]}function he(e){return new Proxy({objects:e},ge)}var ge={ownKeys({objects:e}){return Array.from(new Set(e.flatMap(e=>Object.keys(e))))},has({objects:e},t){return t!=Symbol.unscopables&&e.some(e=>Object.prototype.hasOwnProperty.call(e,t)||Reflect.has(e,t))},get({objects:e},t,n){return t==`toJSON`?_e:Reflect.get(e.find(e=>Reflect.has(e,t))||{},t,n)},set({objects:e},t,n,r){let i=e.find(e=>Object.prototype.hasOwnProperty.call(e,t))||e[e.length-1],a=Object.getOwnPropertyDescriptor(i,t);return a?.set&&a?.get?a.set.call(r,n)||!0:Reflect.set(i,t,n)}};function _e(){return Reflect.ownKeys(this).reduce((e,t)=>(e[t]=Reflect.get(this,t),e),{})}function ve(e){let t=e=>typeof e==`object`&&!Array.isArray(e)&&e!==null,n=(r,i=``)=>{Object.entries(Object.getOwnPropertyDescriptors(r)).forEach(([a,{value:o,enumerable:s}])=>{if(s===!1||o===void 0||typeof o==`object`&&o&&o.__v_skip)return;let c=i===``?a:`${i}.${a}`;typeof o==`object`&&o&&o._x_interceptor?r[a]=o.initialize(e,c,a):t(o)&&o!==r&&!(o instanceof Element)&&n(o,c)})};return n(e)}function ye(e,t=()=>{}){let n={initialValue:void 0,_x_interceptor:!0,initialize(t,n,r){return e(this.initialValue,()=>be(t,n),e=>xe(t,n,e),n,r)}};return t(n),e=>{if(typeof e==`object`&&e&&e._x_interceptor){let t=n.initialize.bind(n);n.initialize=(r,i,a)=>{let o=e.initialize(r,i,a);return n.initialValue=o,t(r,i,a)}}else n.initialValue=e;return n}}function be(e,t){return t.split(`.`).reduce((e,t)=>e[t],e)}function xe(e,t,n){if(typeof t==`string`&&(t=t.split(`.`)),t.length===1)e[t[0]]=n;else if(t.length===0)throw error;else if(e[t[0]])return xe(e[t[0]],t.slice(1),n);else return e[t[0]]={},xe(e[t[0]],t.slice(1),n)}var Se={};function P(e,t){Se[e]=t}function F(e,t){let n=Ce(t);return Object.entries(Se).forEach(([r,i])=>{Object.defineProperty(e,`$${r}`,{get(){return i(t,n)},enumerable:!1})}),e}function Ce(e){let[t,n]=tt(e),r={interceptor:ye,...t};return k(e,n),r}function we(e,t,n,...r){try{return n(...r)}catch(n){Te(n,e,t)}}function Te(...e){return Ee(...e)}var Ee=Oe;function De(e){Ee=e}function Oe(e,t,n=void 0){e=Object.assign(e??{message:`No error message given.`},{el:t,expression:n}),console.warn(`Alpine Expression Error: ${e.message}
+var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},n=!1,r=!1,i=[],a=-1,o=!1,s=!1;function c(e){d(e)}function l(){s=!0}function u(){s=!1,p()}function d(e){i.includes(e)||(i.push(e),e._x_schedulerPriority!==void 0&&(o=!0)),p()}function f(e){let t=i.indexOf(e);t!==-1&&t>a&&i.splice(t,1)}function p(){if(!r&&!n){if(s)return;n=!0,queueMicrotask(m)}}function m(){n=!1,r=!0;for(let e=0;eg(e,n,t));for(let t=0;te.effect(t,{scheduler:e=>{w?c(e):e()}}),S=e.raw}function D(e){b=e}function O(e){let t=()=>{};return[(n,r)=>{let i=r?.priority===`structural`?C++:void 0,a=b(n);return i!==void 0&&a!==void 0&&(a._x_schedulerPriority={el:e,order:i}),e._x_effects||(e._x_effects=new Set,e._x_runEffects=()=>{e._x_effects.forEach(e=>e())}),e._x_effects.add(a),t=()=>{a!==void 0&&(e._x_effects.delete(a),x(a))},a},()=>{t()}]}function k(e,t){let n=!0,r,i,a=b(()=>{let a=e(),o=JSON.stringify(a);if(!n&&(typeof a==`object`||a!==r)){let e=typeof r==`object`?JSON.parse(i):r;queueMicrotask(()=>{t(a,e)})}r=a,i=o,n=!1});return()=>{f(a),x(a)}}async function ee(e){l();try{await e(),await Promise.resolve()}finally{u()}}var A=[],j=[],M=[];function te(e){M.push(e)}function ne(e,t){typeof t==`function`?(e._x_cleanups||=[],e._x_cleanups.push(t)):(t=e,j.push(t))}function re(e){A.push(e)}function ie(e,t,n){e._x_attributeCleanups||={},e._x_attributeCleanups[t]||(e._x_attributeCleanups[t]=[]),e._x_attributeCleanups[t].push(n)}function ae(e,t){e._x_attributeCleanups&&Object.entries(e._x_attributeCleanups).forEach(([n,r])=>{(t===void 0||t.includes(n))&&(r.forEach(e=>e()),delete e._x_attributeCleanups[n])})}function oe(e){for(e._x_effects?.forEach(f);e._x_cleanups?.length;)e._x_cleanups.pop()()}var se=new MutationObserver(ve),ce=!1;function le(){se.observe(document,{subtree:!0,childList:!0,attributes:!0,attributeOldValue:!0}),ce=!0}function ue(){fe(),se.disconnect(),ce=!1}var de=[];function fe(){let e=se.takeRecords();de.push(()=>e.length>0&&ve(e));let t=de.length;queueMicrotask(()=>{if(de.length===t)for(;de.length>0;)de.shift()()})}function pe(){for(;de.length>0;)de.shift()();let e=se.takeRecords();e.length>0&&ve(e)}function N(e){if(!ce)return e();ue();try{return e()}finally{le()}}var me=!1,he=[];function ge(){me=!0}function _e(){me=!1,ve(he),he=[]}function ve(e){if(me){he=he.concat(e);return}let t=[],n=new Set,r=new Map,i=new Map;for(let a=0;a{e.nodeType===1&&e._x_marker&&n.add(e)}),e[a].addedNodes.forEach(e=>{e.nodeType===1&&(n.has(e)?n.delete(e):e._x_marker||t.push(e))})),e[a].type===`attributes`)){let t=e[a].target,n=e[a].attributeName,o=e[a].oldValue,s=()=>{r.has(t)||r.set(t,[]),r.get(t).push({name:n,value:t.getAttribute(n)})},c=()=>{i.has(t)||i.set(t,[]),i.get(t).push(n)};t.hasAttribute(n)&&o===null?s():t.hasAttribute(n)?(c(),s()):c()}i.forEach((e,t)=>{ae(t,e)}),r.forEach((e,t)=>{A.forEach(n=>n(t,e))});for(let e of n)t.some(t=>t.contains(e))||j.forEach(t=>t(e));for(let e of t)e.isConnected&&M.forEach(t=>t(e));t=null,n=null,r=null,i=null}function ye(e){return xe(be(e))}function P(e,t,n){return e._x_dataStack=[t,...be(n||e)],()=>{e._x_dataStack=e._x_dataStack.filter(e=>e!==t)}}function be(e){return e._x_dataStack?e._x_dataStack:typeof ShadowRoot==`function`&&e instanceof ShadowRoot?be(e.host):e.parentNode?be(e.parentNode):[]}function xe(e){return new Proxy({objects:e},Ce)}function Se(e,t){return e===null||e===Object.prototype?null:Object.prototype.hasOwnProperty.call(e,t)?e:Se(Object.getPrototypeOf(e),t)}var Ce={ownKeys({objects:e}){return Array.from(new Set(e.flatMap(e=>Object.keys(e))))},has({objects:e},t){return t!=Symbol.unscopables&&e.some(e=>Object.prototype.hasOwnProperty.call(e,t)||Reflect.has(e,t))},get({objects:e},t,n){return t==`toJSON`?we:Reflect.get(e.find(e=>Reflect.has(e,t))||{},t,n)},set({objects:e},t,n,r){let i;for(let n of e)if(i=Se(n,t),i)break;i||=e[e.length-1];let a=Object.getOwnPropertyDescriptor(i,t);return a?.set&&a?.get?a.set.call(r,n)||!0:Reflect.set(i,t,n)}};function we(){return Reflect.ownKeys(this).reduce((e,t)=>(e[t]=Reflect.get(this,t),e),{})}function Te(e,t=()=>{}){let n=e=>typeof e==`object`&&!Array.isArray(e)&&e!==null,r=(i,a=``)=>{Object.entries(Object.getOwnPropertyDescriptors(i)).forEach(([o,{value:s,enumerable:c}])=>{if(c===!1||s===void 0||typeof s==`object`&&s&&s.__v_skip)return;let l=a===``?o:`${a}.${o}`;typeof s==`object`&&s&&s._x_interceptor?i[o]=s.initialize(e,l,o,t):n(s)&&s!==i&&!(s instanceof Element)&&r(s,l)})};return r(e)}function Ee(e,t=()=>{}){let n={initialValue:void 0,_x_interceptor:!0,initialize(t,n,r,i){return e(this.initialValue,()=>De(t,n),e=>Oe(t,n,e),n,r,i)}};return t(n),e=>{if(typeof e==`object`&&e&&e._x_interceptor){let t=n.initialize.bind(n);n.initialize=(r,i,a,o)=>{let s=e.initialize(r,i,a,o);return n.initialValue=s,t(r,i,a,o)}}else n.initialValue=e;return n}}function De(e,t){return t.split(`.`).reduce((e,t)=>e[t],e)}function Oe(e,t,n){if(typeof t==`string`&&(t=t.split(`.`)),t.length===1)e[t[0]]=n;else if(t.length===0)throw error;else if(e[t[0]])return Oe(e[t[0]],t.slice(1),n);else return e[t[0]]={},Oe(e[t[0]],t.slice(1),n)}var ke={};function Ae(e,t){ke[e]=t}function je(e,t){let n=Me(t);return Object.entries(ke).forEach(([r,i])=>{Object.defineProperty(e,`$${r}`,{get(){return i(t,n)},enumerable:!1})}),e}function Me(e){let[t,n]=ut(e),r={interceptor:Ee,...t};return ne(e,n),r}function Ne(e,t,n,...r){try{return n(...r)}catch(n){Pe(n,e,t)}}function Pe(...e){return Fe(...e)}var Fe=Le;function Ie(e){Fe=e}function Le(e,t,n=void 0){e=Object.assign(e??{message:`No error message given.`},{el:t,expression:n}),console.warn(`Alpine Expression Error: ${e.message}
${n?`Expression: "`+n+`"
-`:``}`,t),setTimeout(()=>{throw e},0)}var ke=!0;function Ae(e){let t=ke;ke=!1;let n=e();return ke=t,n}function je(e,t,n={}){let r;return I(e,t)(e=>r=e,n),r}function I(...e){return Me(...e)}var Me=Ie;function Ne(e){Me=e}var Pe;function Fe(e){Pe=e}function Ie(e,t){let n={};F(n,e);let r=[n,...me(e)],i=typeof t==`function`?Le(r,t):Be(r,t,e);return we.bind(null,e,t,i)}function Le(e,t){return(n=()=>{},{scope:r={},params:i=[],context:a}={})=>{if(!ke){Ve(n,t,he([r,...e]),i);return}Ve(n,t.apply(he([r,...e]),i))}}var Re={};function ze(e,t){if(Re[e])return Re[e];let n=Object.getPrototypeOf(async function(){}).constructor,r=/^[\n\s]*if.*\(.*\)/.test(e.trim())||/^(let|const)\s/.test(e.trim())?`(async()=>{ ${e} })()`:e,i=(()=>{try{let t=new n([`__self`,`scope`],`with (scope) { __self.result = ${r} }; __self.finished = true; return __self.result;`);return Object.defineProperty(t,"name",{value:`[Alpine] ${e}`}),t}catch(n){return Te(n,t,e),Promise.resolve()}})();return Re[e]=i,i}function Be(e,t,n){let r=ze(t,n);return(i=()=>{},{scope:a={},params:o=[],context:s}={})=>{r.result=void 0,r.finished=!1;let c=he([a,...e]);if(typeof r==`function`){let e=r.call(s,r,c).catch(e=>Te(e,n,t));r.finished?(Ve(i,r.result,c,o,n),r.result=void 0):e.then(e=>{Ve(i,e,c,o,n)}).catch(e=>Te(e,n,t)).finally(()=>r.result=void 0)}}}function Ve(e,t,n,r,i){if(ke&&typeof t==`function`){let a=t.apply(n,r);a instanceof Promise?a.then(t=>Ve(e,t,n,r)).catch(e=>Te(e,i,t)):e(a)}else typeof t==`object`&&t instanceof Promise?t.then(t=>e(t)):e(t)}function He(...e){return Pe(...e)}function Ue(e,t,n={}){let r={};F(r,e);let i=[r,...me(e)],a=he([n.scope??{},...i]),o=n.params??[];if(t.includes(`await`)){let e=Object.getPrototypeOf(async function(){}).constructor;return new e([`scope`],`with (scope) { let __result = ${/^[\n\s]*if.*\(.*\)/.test(t.trim())||/^(let|const)\s/.test(t.trim())?`(async()=>{ ${t} })()`:t}; return __result }`).call(n.context,a)}{let e=/^[\n\s]*if.*\(.*\)/.test(t.trim())||/^(let|const)\s/.test(t.trim())?`(()=>{ ${t} })()`:t,r=Function([`scope`],`with (scope) { let __result = ${e}; return __result }`).call(n.context,a);return typeof r==`function`&&ke?r.apply(a,o):r}}var We=`x-`;function Ge(e=``){return We+e}function Ke(e){We=e}var qe={};function L(e,t){return qe[e]=t,{before(t){if(!qe[t]){console.warn(String.raw`Cannot find directive \`${t}\`. \`${e}\` will use the default order of execution`);return}let n=ft.indexOf(t);ft.splice(n>=0?n:ft.indexOf(`DEFAULT`),0,e)}}}function Je(e){return Object.keys(qe).includes(e)}function Ye(e,t,n){if(t=Array.from(t),e._x_virtualDirectives){let n=Object.entries(e._x_virtualDirectives).map(([e,t])=>({name:e,value:t})),r=Xe(n);n=n.map(e=>r.find(t=>t.name===e.name)?{name:`x-bind:${e.name}`,value:`"${e.value}"`}:e),t=t.concat(n)}let r={};return t.map(at((e,t)=>r[e]=t)).filter(ct).map(ut(r,n)).sort(pt).map(t=>nt(e,t))}function Xe(e){return Array.from(e).map(at()).filter(e=>!ct(e))}var Ze=!1,Qe=new Map,$e=Symbol();function et(e){Ze=!0;let t=Symbol();$e=t,Qe.set(t,[]);let n=()=>{for(;Qe.get(t).length;)Qe.get(t).shift()();Qe.delete(t)};e(n),Ze=!1,n()}function tt(e){let t=[],n=e=>t.push(e),[r,i]=S(e);return t.push(i),[{Alpine:Kn,effect:r,cleanup:n,evaluateLater:I.bind(I,e),evaluate:je.bind(je,e)},()=>t.forEach(e=>e())]}function nt(e,t){let n=qe[t.type]||(()=>{}),[r,i]=tt(e);A(e,t.original,i);let a=()=>{e._x_ignore||e._x_ignoreSelf||(n.inline&&n.inline(e,t,r),n=n.bind(n,e,t,r),Ze?Qe.get($e).push(n):n())};return a.runCleanups=i,a}var rt=(e,t)=>({name:n,value:r})=>(n.startsWith(e)&&(n=n.replace(e,t)),{name:n,value:r}),it=e=>e;function at(e=()=>{}){return({name:t,value:n})=>{let{name:r,value:i}=ot.reduce((e,t)=>t(e),{name:t,value:n});return r!==t&&e(r,t),{name:r,value:i}}}var ot=[];function st(e){ot.push(e)}function ct({name:e}){return lt().test(e)}var lt=()=>RegExp(`^${We}([^:^.]+)\\b`);function ut(e,t){return({name:n,value:r})=>{n===r&&(r=``);let i=n.match(lt()),a=n.match(/:([a-zA-Z0-9\-_:]+)/),o=n.match(/\.[^.\]]+(?=[^\]]*$)/g)||[],s=t||e[n]||n;return{type:i?i[1]:null,value:a?a[1]:null,modifiers:o.map(e=>e.replace(`.`,``)),expression:r,original:s}}}var dt=`DEFAULT`,ft=[`ignore`,`ref`,`data`,`id`,`anchor`,`bind`,`init`,`for`,`model`,`modelable`,`transition`,`show`,`if`,dt,`teleport`];function pt(e,t){let n=ft.indexOf(e.type)===-1?dt:e.type,r=ft.indexOf(t.type)===-1?dt:t.type;return ft.indexOf(n)-ft.indexOf(r)}function mt(e,t,n={}){e.dispatchEvent(new CustomEvent(t,{detail:n,bubbles:!0,composed:!0,cancelable:!0}))}function ht(e,t){if(typeof ShadowRoot==`function`&&e instanceof ShadowRoot){Array.from(e.children).forEach(e=>ht(e,t));return}let n=!1;if(t(e,()=>n=!0),n)return;let r=e.firstElementChild;for(;r;)ht(r,t,!1),r=r.nextElementSibling}function R(e,...t){console.warn(`Alpine Warning: ${e}`,...t)}var gt=!1;function _t(){gt&&R(`Alpine has already been initialized on this page. Calling Alpine.start() more than once can cause problems.`),gt=!0,document.body||R("Unable to initialize. Trying to load Alpine before `` is available. Did you forget to add `defer` in Alpine's ` |