diff --git a/apps/landing/.gitignore b/apps/landing/.gitignore
new file mode 100644
index 000000000..16d54bb13
--- /dev/null
+++ b/apps/landing/.gitignore
@@ -0,0 +1,24 @@
+# build output
+dist/
+# generated types
+.astro/
+
+# dependencies
+node_modules/
+
+# logs
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+
+
+# environment variables
+.env
+.env.production
+
+# macOS-specific files
+.DS_Store
+
+# jetbrains setting folder
+.idea/
diff --git a/apps/landing/.vscode/extensions.json b/apps/landing/.vscode/extensions.json
new file mode 100644
index 000000000..22a15055d
--- /dev/null
+++ b/apps/landing/.vscode/extensions.json
@@ -0,0 +1,4 @@
+{
+ "recommendations": ["astro-build.astro-vscode"],
+ "unwantedRecommendations": []
+}
diff --git a/apps/landing/.vscode/launch.json b/apps/landing/.vscode/launch.json
new file mode 100644
index 000000000..d64220976
--- /dev/null
+++ b/apps/landing/.vscode/launch.json
@@ -0,0 +1,11 @@
+{
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "command": "./node_modules/.bin/astro dev",
+ "name": "Development server",
+ "request": "launch",
+ "type": "node-terminal"
+ }
+ ]
+}
diff --git a/apps/landing/AGENTS.md b/apps/landing/AGENTS.md
new file mode 100644
index 000000000..09557271a
--- /dev/null
+++ b/apps/landing/AGENTS.md
@@ -0,0 +1,22 @@
+## Development
+
+To start the local development server:
+
+```bash
+npm run dev
+```
+
+The server will run in the foreground at `http://localhost:4321`.
+
+## Documentation
+
+Full documentation: https://docs.astro.build
+
+Consult these guides before working on related tasks:
+
+- [Adding pages, dynamic routes, or middleware](https://docs.astro.build/en/guides/routing/)
+- [Working with Astro components](https://docs.astro.build/en/basics/astro-components/)
+- [Using React, Vue, Svelte, or other framework components](https://docs.astro.build/en/guides/framework-components/)
+- [Adding or managing content](https://docs.astro.build/en/guides/content-collections/)
+- [Adding styles or using Tailwind](https://docs.astro.build/en/guides/styling/)
+- [Supporting multiple languages](https://docs.astro.build/en/guides/internationalization/)
diff --git a/apps/landing/CLAUDE.md b/apps/landing/CLAUDE.md
new file mode 100644
index 000000000..09557271a
--- /dev/null
+++ b/apps/landing/CLAUDE.md
@@ -0,0 +1,22 @@
+## Development
+
+To start the local development server:
+
+```bash
+npm run dev
+```
+
+The server will run in the foreground at `http://localhost:4321`.
+
+## Documentation
+
+Full documentation: https://docs.astro.build
+
+Consult these guides before working on related tasks:
+
+- [Adding pages, dynamic routes, or middleware](https://docs.astro.build/en/guides/routing/)
+- [Working with Astro components](https://docs.astro.build/en/basics/astro-components/)
+- [Using React, Vue, Svelte, or other framework components](https://docs.astro.build/en/guides/framework-components/)
+- [Adding or managing content](https://docs.astro.build/en/guides/content-collections/)
+- [Adding styles or using Tailwind](https://docs.astro.build/en/guides/styling/)
+- [Supporting multiple languages](https://docs.astro.build/en/guides/internationalization/)
diff --git a/apps/landing/README.md b/apps/landing/README.md
new file mode 100644
index 000000000..8dc3b27e9
--- /dev/null
+++ b/apps/landing/README.md
@@ -0,0 +1,33 @@
+# urBackend Landing Page (Astro)
+
+This is the static, SEO-optimized landing page for **urBackend** built using **Astro**, **React**, and **framer-motion**.
+
+## ๐ Getting Started
+
+To run the development server locally:
+
+```bash
+npm run dev
+```
+
+The server will start at `http://localhost:4321/`.
+
+## ๐ฆ Project Structure
+
+- `src/layouts/Base.astro`: Base layout file containing universal SEO settings, Meta tags, JSON-LD structured schemas, and Google Fonts.
+- `src/pages/index.astro`: Main landing page built using mixed static markup and hydrated React islands.
+- `src/pages/pricing.astro`: Pricing tier page.
+- `src/components/`: Layout components (Navbar, Footer, StudioReplay, OrbitSection) and external graphic libraries like MagicBento and Hyperspeed.
+- `src/styles/landing.css`: Bundled stylesheet representing the landing page design.
+- `public/`: Public domain verification files, logos, and favicons.
+
+## ๐ ๏ธ Build and Deploy
+
+To test compiling the landing page locally:
+
+```bash
+npm run build
+```
+
+This compiles static production files directly to `./dist/`.
+For deployment, refer to the project's root deployment plan mapping to Vercel subdomains.
diff --git a/apps/landing/astro.config.mjs b/apps/landing/astro.config.mjs
new file mode 100644
index 000000000..28e824439
--- /dev/null
+++ b/apps/landing/astro.config.mjs
@@ -0,0 +1,11 @@
+// @ts-check
+import { defineConfig } from 'astro/config';
+
+import react from '@astrojs/react';
+import sitemap from '@astrojs/sitemap';
+
+// https://astro.build/config
+export default defineConfig({
+ site: 'https://urbackend.bitbros.in',
+ integrations: [react(), sitemap()]
+});
diff --git a/apps/landing/package.json b/apps/landing/package.json
new file mode 100644
index 000000000..ff78fe9bd
--- /dev/null
+++ b/apps/landing/package.json
@@ -0,0 +1,26 @@
+{
+ "name": "landing",
+ "type": "module",
+ "version": "0.0.1",
+ "engines": {
+ "node": ">=20.0.0"
+ },
+ "scripts": {
+ "dev": "astro dev",
+ "build": "astro build",
+ "preview": "astro preview",
+ "astro": "astro"
+ },
+ "dependencies": {
+ "@astrojs/react": "^4.x",
+ "@astrojs/sitemap": "^3.x",
+ "astro": "^5.0.0",
+ "framer-motion": "^11.0.0",
+ "gsap": "^3.12.0",
+ "lucide-react": "^0.470.0",
+ "postprocessing": "^6.36.0",
+ "react": "^19.0.0",
+ "react-dom": "^19.0.0",
+ "three": "^0.170.0"
+ }
+}
\ No newline at end of file
diff --git a/apps/landing/public/LOGO_SQ.png b/apps/landing/public/LOGO_SQ.png
new file mode 100644
index 000000000..2463cf784
Binary files /dev/null and b/apps/landing/public/LOGO_SQ.png differ
diff --git a/apps/landing/public/favicon.ico b/apps/landing/public/favicon.ico
new file mode 100644
index 000000000..7f48a94d1
Binary files /dev/null and b/apps/landing/public/favicon.ico differ
diff --git a/apps/landing/public/favicon.svg b/apps/landing/public/favicon.svg
new file mode 100644
index 000000000..e7b8dfb1b
--- /dev/null
+++ b/apps/landing/public/favicon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/apps/landing/public/logo.png b/apps/landing/public/logo.png
new file mode 100644
index 000000000..6147844c3
Binary files /dev/null and b/apps/landing/public/logo.png differ
diff --git a/apps/landing/public/robots.txt b/apps/landing/public/robots.txt
new file mode 100644
index 000000000..d824c96fb
--- /dev/null
+++ b/apps/landing/public/robots.txt
@@ -0,0 +1,4 @@
+User-agent: *
+Allow: /
+
+Sitemap: https://urbackend.bitbros.in/sitemap-index.xml
diff --git a/apps/landing/src/components/BorderGlow/BorderGlow.css b/apps/landing/src/components/BorderGlow/BorderGlow.css
new file mode 100644
index 000000000..9ef6848f4
--- /dev/null
+++ b/apps/landing/src/components/BorderGlow/BorderGlow.css
@@ -0,0 +1,106 @@
+.border-glow-card {
+ --edge-proximity: 0;
+ --cursor-angle: 45deg;
+ --edge-sensitivity: 30;
+ --color-sensitivity: calc(var(--edge-sensitivity) + 20);
+ --border-radius: 28px;
+ --glow-padding: 40px;
+ --cone-spread: 25;
+
+ position: relative;
+ border-radius: var(--border-radius);
+ isolation: isolate;
+ transform: translate3d(0, 0, 0.01px);
+ display: flex;
+ flex-direction: column;
+ border: 1px solid rgba(255, 255, 255, 0.08);
+ background: var(--card-bg, rgba(255, 255, 255, 0.02));
+ backdrop-filter: blur(12px);
+ -webkit-backdrop-filter: blur(12px);
+ overflow: visible;
+ box-shadow:
+ rgba(0, 0, 0, 0.1) 0px 1px 2px,
+ rgba(0, 0, 0, 0.1) 0px 2px 4px,
+ rgba(0, 0, 0, 0.1) 0px 4px 8px,
+ rgba(0, 0, 0, 0.1) 0px 8px 16px,
+ rgba(0, 0, 0, 0.1) 0px 16px 32px,
+ rgba(0, 0, 0, 0.1) 0px 32px 64px;
+}
+
+.border-glow-card::before,
+.border-glow-card > .edge-light {
+ content: "";
+ position: absolute;
+ inset: 0;
+ border-radius: inherit;
+ transition: opacity 0.25s ease-out;
+ z-index: -1;
+}
+
+.border-glow-card:not(:hover):not(.sweep-active)::before,
+.border-glow-card:not(:hover):not(.sweep-active) > .edge-light {
+ opacity: 0;
+ transition: opacity 0.75s ease-in-out;
+}
+
+/* colored mesh-gradient border */
+.border-glow-card::before {
+ border: 1px solid transparent;
+ background:
+ linear-gradient(#0c0a0f 0 100%) padding-box,
+ linear-gradient(rgba(255, 255, 255, 0) 0% 100%) border-box,
+ var(--gradient-one, radial-gradient(at 80% 55%, hsla(268, 100%, 76%, 1) 0px, transparent 50%)) border-box,
+ var(--gradient-two, radial-gradient(at 69% 34%, hsla(349, 100%, 74%, 1) 0px, transparent 50%)) border-box,
+ var(--gradient-three, radial-gradient(at 8% 6%, hsla(136, 100%, 78%, 1) 0px, transparent 50%)) border-box,
+ var(--gradient-four, radial-gradient(at 41% 38%, hsla(192, 100%, 64%, 1) 0px, transparent 50%)) border-box,
+ var(--gradient-five, radial-gradient(at 86% 85%, hsla(186, 100%, 74%, 1) 0px, transparent 50%)) border-box,
+ var(--gradient-six, radial-gradient(at 82% 18%, hsla(52, 100%, 65%, 1) 0px, transparent 50%)) border-box,
+ var(--gradient-seven, radial-gradient(at 51% 4%, hsla(12, 100%, 72%, 1) 0px, transparent 50%)) border-box,
+ var(--gradient-base, linear-gradient(#c299ff 0 100%)) border-box;
+ opacity: calc((var(--edge-proximity) - var(--color-sensitivity)) / (100 - var(--color-sensitivity)));
+ mask-image:
+ conic-gradient(
+ from var(--cursor-angle) at center,
+ black calc(var(--cone-spread) * 1%),
+ transparent calc((var(--cone-spread) + 15) * 1%),
+ transparent calc((100 - var(--cone-spread) - 15) * 1%),
+ black calc((100 - var(--cone-spread)) * 1%)
+ );
+}
+
+/* outer glow layer */
+.border-glow-card > .edge-light {
+ inset: calc(var(--glow-padding) * -1);
+ pointer-events: none;
+ z-index: 1;
+ mask-image:
+ conic-gradient(
+ from var(--cursor-angle) at center, black 2.5%, transparent 10%, transparent 90%, black 97.5%
+ );
+ opacity: calc((var(--edge-proximity) - var(--edge-sensitivity)) / (100 - var(--edge-sensitivity)));
+ mix-blend-mode: plus-lighter;
+}
+
+.border-glow-card > .edge-light::before {
+ content: "";
+ position: absolute;
+ inset: var(--glow-padding);
+ border-radius: inherit;
+ box-shadow:
+ 0 0 1px 0 var(--glow-color-60, hsl(40deg 80% 80% / 60%)),
+ 0 0 3px 0 var(--glow-color-50, hsl(40deg 80% 80% / 50%)),
+ 0 0 6px 0 var(--glow-color-40, hsl(40deg 80% 80% / 40%)),
+ 0 0 15px 0 var(--glow-color-30, hsl(40deg 80% 80% / 30%)),
+ 0 0 25px 2px var(--glow-color-20, hsl(40deg 80% 80% / 20%)),
+ 0 0 50px 2px var(--glow-color-10, hsl(40deg 80% 80% / 10%));
+}
+
+.border-glow-inner {
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+ height: 100%;
+ width: 100%;
+ position: relative;
+ z-index: 1;
+}
diff --git a/apps/landing/src/components/BorderGlow/BorderGlow.jsx b/apps/landing/src/components/BorderGlow/BorderGlow.jsx
new file mode 100644
index 000000000..f901ccd3c
--- /dev/null
+++ b/apps/landing/src/components/BorderGlow/BorderGlow.jsx
@@ -0,0 +1,170 @@
+import { useRef, useCallback, useEffect } from 'react';
+import './BorderGlow.css';
+
+function parseHSL(hslStr) {
+ const match = hslStr.match(/([\d.]+)\s*([\d.]+)%?\s*([\d.]+)%?/);
+ if (!match) return { h: 40, s: 80, l: 80 };
+ return { h: parseFloat(match[1]), s: parseFloat(match[2]), l: parseFloat(match[3]) };
+}
+
+function buildGlowVars(glowColor, intensity) {
+ const { h, s, l } = parseHSL(glowColor);
+ const base = `${h}deg ${s}% ${l}%`;
+ const opacities = [100, 60, 50, 40, 30, 20, 10];
+ const keys = ['', '-60', '-50', '-40', '-30', '-20', '-10'];
+ const vars = {};
+ for (let i = 0; i < opacities.length; i++) {
+ vars[`--glow-color${keys[i]}`] = `hsl(${base} / ${Math.min(opacities[i] * intensity, 100)}%)`;
+ }
+ return vars;
+}
+
+const GRADIENT_POSITIONS = ['80% 55%', '69% 34%', '8% 6%', '41% 38%', '86% 85%', '82% 18%', '51% 4%'];
+const GRADIENT_KEYS = ['--gradient-one', '--gradient-two', '--gradient-three', '--gradient-four', '--gradient-five', '--gradient-six', '--gradient-seven'];
+const COLOR_MAP = [0, 1, 2, 0, 1, 2, 1];
+
+function buildGradientVars(colors) {
+ const vars = {};
+ for (let i = 0; i < 7; i++) {
+ const c = colors[Math.min(COLOR_MAP[i], colors.length - 1)];
+ vars[GRADIENT_KEYS[i]] = `radial-gradient(at ${GRADIENT_POSITIONS[i]}, ${c} 0px, transparent 50%)`;
+ }
+ vars['--gradient-base'] = `linear-gradient(${colors[0]} 0 100%)`;
+ return vars;
+}
+
+function easeOutCubic(x) { return 1 - Math.pow(1 - x, 3); }
+function easeInCubic(x) { return x * x * x; }
+
+function animateValue({ start = 0, end = 100, duration = 1000, delay = 0, ease = easeOutCubic, onUpdate, onEnd }) {
+ const t0 = performance.now() + delay;
+ let rafId = null;
+ function tick() {
+ const elapsed = performance.now() - t0;
+ const t = Math.min(elapsed / duration, 1);
+ onUpdate(start + (end - start) * ease(t));
+ if (t < 1) rafId = requestAnimationFrame(tick);
+ else if (onEnd) onEnd();
+ }
+ const timeoutId = setTimeout(() => {
+ rafId = requestAnimationFrame(tick);
+ }, delay);
+
+ return () => {
+ clearTimeout(timeoutId);
+ if (rafId != null) cancelAnimationFrame(rafId);
+ };
+}
+
+const BorderGlow = ({
+ children,
+ className = '',
+ edgeSensitivity = 30,
+ glowColor = '40 80 80',
+ backgroundColor = 'rgba(255, 255, 255, 0.02)',
+ borderRadius = 16,
+ glowRadius = 40,
+ glowIntensity = 1.0,
+ coneSpread = 25,
+ animated = false,
+ colors = ['#00f5d4', '#00b4ab', '#00ffd8'],
+ fillOpacity = 0.5,
+}) => {
+ const cardRef = useRef(null);
+
+ const getCenterOfElement = useCallback((el) => {
+ const { width, height } = el.getBoundingClientRect();
+ return [width / 2, height / 2];
+ }, []);
+
+ const getEdgeProximity = useCallback((el, x, y) => {
+ const [cx, cy] = getCenterOfElement(el);
+ const dx = x - cx;
+ const dy = y - cy;
+ let kx = Infinity;
+ let ky = Infinity;
+ if (dx !== 0) kx = cx / Math.abs(dx);
+ if (dy !== 0) ky = cy / Math.abs(dy);
+ return Math.min(Math.max(1 / Math.min(kx, ky), 0), 1);
+ }, [getCenterOfElement]);
+
+ const getCursorAngle = useCallback((el, x, y) => {
+ const [cx, cy] = getCenterOfElement(el);
+ const dx = x - cx;
+ const dy = y - cy;
+ if (dx === 0 && dy === 0) return 0;
+ const radians = Math.atan2(dy, dx);
+ let degrees = radians * (180 / Math.PI) + 90;
+ if (degrees < 0) degrees += 360;
+ return degrees;
+ }, [getCenterOfElement]);
+
+ const handlePointerMove = useCallback((e) => {
+ const card = cardRef.current;
+ if (!card) return;
+
+ const rect = card.getBoundingClientRect();
+ const x = e.clientX - rect.left;
+ const y = e.clientY - rect.top;
+
+ const edge = getEdgeProximity(card, x, y);
+ const angle = getCursorAngle(card, x, y);
+
+ card.style.setProperty('--edge-proximity', `${(edge * 100).toFixed(3)}`);
+ card.style.setProperty('--cursor-angle', `${angle.toFixed(3)}deg`);
+ }, [getEdgeProximity, getCursorAngle]);
+
+ useEffect(() => {
+ if (!animated || !cardRef.current) return;
+ const card = cardRef.current;
+ const angleStart = 110;
+ const angleEnd = 465;
+ card.classList.add('sweep-active');
+ card.style.setProperty('--cursor-angle', `${angleStart}deg`);
+
+ const stops = [];
+ stops.push(animateValue({ duration: 500, onUpdate: v => card.style.setProperty('--edge-proximity', v) }));
+ stops.push(animateValue({ ease: easeInCubic, duration: 1500, end: 50, onUpdate: v => {
+ card.style.setProperty('--cursor-angle', `${(angleEnd - angleStart) * (v / 100) + angleStart}deg`);
+ }}));
+ stops.push(animateValue({ ease: easeOutCubic, delay: 1500, duration: 2250, start: 50, end: 100, onUpdate: v => {
+ card.style.setProperty('--cursor-angle', `${(angleEnd - angleStart) * (v / 100) + angleStart}deg`);
+ }}));
+ stops.push(animateValue({ ease: easeInCubic, delay: 2500, duration: 1500, start: 100, end: 0,
+ onUpdate: v => card.style.setProperty('--edge-proximity', v),
+ onEnd: () => card.classList.remove('sweep-active'),
+ }));
+
+ return () => {
+ stops.forEach(stop => stop?.());
+ card.classList.remove('sweep-active');
+ };
+ }, [animated]);
+
+ const glowVars = buildGlowVars(glowColor, glowIntensity);
+
+ return (
+
+ );
+};
+
+export default BorderGlow;
diff --git a/apps/landing/src/components/Footer.astro b/apps/landing/src/components/Footer.astro
new file mode 100644
index 000000000..d1669e31d
--- /dev/null
+++ b/apps/landing/src/components/Footer.astro
@@ -0,0 +1,261 @@
+---
+import { Github, ArrowRight } from 'lucide-react';
+const ADMIN_EMAIL = 'yashpouranik@gmail.com'; // Hardcoding since this is static site
+---
+
+
+
+
+
+
diff --git a/apps/landing/src/components/Hyperspeed/Hyperspeed.css b/apps/landing/src/components/Hyperspeed/Hyperspeed.css
new file mode 100644
index 000000000..b76bf9b0f
--- /dev/null
+++ b/apps/landing/src/components/Hyperspeed/Hyperspeed.css
@@ -0,0 +1,17 @@
+#lights {
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 0; /* Behind all content in the hero section! */
+ pointer-events: none; /* Make sure users can click elements over it */
+ opacity: 0.45; /* Soften the light beams for better foreground text readability */
+}
+
+#lights canvas {
+ width: 100%;
+ height: 100%;
+ display: block;
+}
diff --git a/apps/landing/src/components/Hyperspeed/Hyperspeed.jsx b/apps/landing/src/components/Hyperspeed/Hyperspeed.jsx
new file mode 100644
index 000000000..9a399d064
--- /dev/null
+++ b/apps/landing/src/components/Hyperspeed/Hyperspeed.jsx
@@ -0,0 +1,1235 @@
+import { BloomEffect, EffectComposer, EffectPass, RenderPass, SMAAEffect, SMAAPreset } from 'postprocessing';
+import { useEffect, useRef } from 'react';
+import * as THREE from 'three';
+
+import './Hyperspeed.css';
+
+const DEFAULT_EFFECT_OPTIONS = {
+ onSpeedUp: () => {},
+ onSlowDown: () => {},
+ distortion: 'turbulentDistortion',
+ length: 400,
+ roadWidth: 10,
+ islandWidth: 2,
+ lanesPerRoad: 4,
+ fov: 90,
+ fovSpeedUp: 150,
+ speedUp: 2,
+ carLightsFade: 0.4,
+ totalSideLightSticks: 20,
+ lightPairsPerRoadWay: 40,
+ shoulderLinesWidthPercentage: 0.05,
+ brokenLinesWidthPercentage: 0.1,
+ brokenLinesLengthPercentage: 0.5,
+ lightStickWidth: [0.12, 0.5],
+ lightStickHeight: [1.3, 1.7],
+ movingAwaySpeed: [60, 80],
+ movingCloserSpeed: [-120, -160],
+ carLightsLength: [400 * 0.03, 400 * 0.2],
+ carLightsRadius: [0.05, 0.14],
+ carWidthPercentage: [0.3, 0.5],
+ carShiftX: [-0.8, 0.8],
+ carFloorSeparation: [0, 5],
+ colors: {
+ roadColor: 0x080808,
+ islandColor: 0x0a0a0a,
+ background: 0x000000,
+ shoulderLines: 0xffffff,
+ brokenLines: 0xffffff,
+ leftCars: [0xd856bf, 0x6750a2, 0xc247ac],
+ rightCars: [0x03b3c3, 0x0e5ea5, 0x324555],
+ sticks: 0x03b3c3
+ }
+};
+
+const Hyperspeed = ({ effectOptions = DEFAULT_EFFECT_OPTIONS }) => {
+ const hyperspeed = useRef(null);
+ const appRef = useRef(null);
+
+ useEffect(() => {
+ if (appRef.current) {
+ appRef.current.dispose();
+ appRef.current = null;
+ const container = hyperspeed.current;
+ if (container) {
+ while (container.firstChild) {
+ container.removeChild(container.firstChild);
+ }
+ }
+ }
+ const mountainUniforms = {
+ uFreq: { value: new THREE.Vector3(3, 6, 10) },
+ uAmp: { value: new THREE.Vector3(30, 30, 20) }
+ };
+
+ const xyUniforms = {
+ uFreq: { value: new THREE.Vector2(5, 2) },
+ uAmp: { value: new THREE.Vector2(25, 15) }
+ };
+
+ const LongRaceUniforms = {
+ uFreq: { value: new THREE.Vector2(2, 3) },
+ uAmp: { value: new THREE.Vector2(35, 10) }
+ };
+
+ const turbulentUniforms = {
+ uFreq: { value: new THREE.Vector4(4, 8, 8, 1) },
+ uAmp: { value: new THREE.Vector4(25, 5, 10, 10) }
+ };
+
+ const deepUniforms = {
+ uFreq: { value: new THREE.Vector2(4, 8) },
+ uAmp: { value: new THREE.Vector2(10, 20) },
+ uPowY: { value: new THREE.Vector2(20, 2) }
+ };
+
+ let nsin = val => Math.sin(val) * 0.5 + 0.5;
+
+ const distortions = {
+ mountainDistortion: {
+ uniforms: mountainUniforms,
+ getDistortion: `
+ uniform vec3 uAmp;
+ uniform vec3 uFreq;
+ #define PI 3.14159265358979
+ float nsin(float val){
+ return sin(val) * 0.5 + 0.5;
+ }
+ vec3 getDistortion(float progress){
+ float movementProgressFix = 0.02;
+ return vec3(
+ cos(progress * PI * uFreq.x + uTime) * uAmp.x - cos(movementProgressFix * PI * uFreq.x + uTime) * uAmp.x,
+ nsin(progress * PI * uFreq.y + uTime) * uAmp.y - nsin(movementProgressFix * PI * uFreq.y + uTime) * uAmp.y,
+ nsin(progress * PI * uFreq.z + uTime) * uAmp.z - nsin(movementProgressFix * PI * uFreq.z + uTime) * uAmp.z
+ );
+ }
+ `,
+ getJS: (progress, time) => {
+ let movementProgressFix = 0.02;
+ let uFreq = mountainUniforms.uFreq.value;
+ let uAmp = mountainUniforms.uAmp.value;
+ let distortion = new THREE.Vector3(
+ Math.cos(progress * Math.PI * uFreq.x + time) * uAmp.x -
+ Math.cos(movementProgressFix * Math.PI * uFreq.x + time) * uAmp.x,
+ nsin(progress * Math.PI * uFreq.y + time) * uAmp.y -
+ nsin(movementProgressFix * Math.PI * uFreq.y + time) * uAmp.y,
+ nsin(progress * Math.PI * uFreq.z + time) * uAmp.z -
+ nsin(movementProgressFix * Math.PI * uFreq.z + time) * uAmp.z
+ );
+ let lookAtAmp = new THREE.Vector3(2, 2, 2);
+ let lookAtOffset = new THREE.Vector3(0, 0, -5);
+ return distortion.multiply(lookAtAmp).add(lookAtOffset);
+ }
+ },
+ xyDistortion: {
+ uniforms: xyUniforms,
+ getDistortion: `
+ uniform vec2 uFreq;
+ uniform vec2 uAmp;
+ #define PI 3.14159265358979
+ vec3 getDistortion(float progress){
+ float movementProgressFix = 0.02;
+ return vec3(
+ cos(progress * PI * uFreq.x + uTime) * uAmp.x - cos(movementProgressFix * PI * uFreq.x + uTime) * uAmp.x,
+ sin(progress * PI * uFreq.y + PI/2. + uTime) * uAmp.y - sin(movementProgressFix * PI * uFreq.y + PI/2. + uTime) * uAmp.y,
+ 0.
+ );
+ }
+ `,
+ getJS: (progress, time) => {
+ let movementProgressFix = 0.02;
+ let uFreq = xyUniforms.uFreq.value;
+ let uAmp = xyUniforms.uAmp.value;
+ let distortion = new THREE.Vector3(
+ Math.cos(progress * Math.PI * uFreq.x + time) * uAmp.x -
+ Math.cos(movementProgressFix * Math.PI * uFreq.x + time) * uAmp.x,
+ Math.sin(progress * Math.PI * uFreq.y + time + Math.PI / 2) * uAmp.y -
+ Math.sin(movementProgressFix * Math.PI * uFreq.y + time + Math.PI / 2) * uAmp.y,
+ 0
+ );
+ let lookAtAmp = new THREE.Vector3(2, 0.4, 1);
+ let lookAtOffset = new THREE.Vector3(0, 0, -3);
+ return distortion.multiply(lookAtAmp).add(lookAtOffset);
+ }
+ },
+ LongRaceDistortion: {
+ uniforms: LongRaceUniforms,
+ getDistortion: `
+ uniform vec2 uFreq;
+ uniform vec2 uAmp;
+ #define PI 3.14159265358979
+ vec3 getDistortion(float progress){
+ float camProgress = 0.0125;
+ return vec3(
+ sin(progress * PI * uFreq.x + uTime) * uAmp.x - sin(camProgress * PI * uFreq.x + uTime) * uAmp.x,
+ sin(progress * PI * uFreq.y + uTime) * uAmp.y - sin(camProgress * PI * uFreq.y + uTime) * uAmp.y,
+ 0.
+ );
+ }
+ `,
+ getJS: (progress, time) => {
+ let camProgress = 0.0125;
+ let uFreq = LongRaceUniforms.uFreq.value;
+ let uAmp = LongRaceUniforms.uAmp.value;
+ let distortion = new THREE.Vector3(
+ Math.sin(progress * Math.PI * uFreq.x + time) * uAmp.x -
+ Math.sin(camProgress * Math.PI * uFreq.x + time) * uAmp.x,
+ Math.sin(progress * Math.PI * uFreq.y + time) * uAmp.y -
+ Math.sin(camProgress * Math.PI * uFreq.y + time) * uAmp.y,
+ 0
+ );
+ let lookAtAmp = new THREE.Vector3(1, 1, 0);
+ let lookAtOffset = new THREE.Vector3(0, 0, -5);
+ return distortion.multiply(lookAtAmp).add(lookAtOffset);
+ }
+ },
+ turbulentDistortion: {
+ uniforms: turbulentUniforms,
+ getDistortion: `
+ uniform vec4 uFreq;
+ uniform vec4 uAmp;
+ float nsin(float val){
+ return sin(val) * 0.5 + 0.5;
+ }
+ #define PI 3.14159265358979
+ float getDistortionX(float progress){
+ return (
+ cos(PI * progress * uFreq.r + uTime) * uAmp.r +
+ pow(cos(PI * progress * uFreq.g + uTime * (uFreq.g / uFreq.r)), 2. ) * uAmp.g
+ );
+ }
+ float getDistortionY(float progress){
+ return (
+ -nsin(PI * progress * uFreq.b + uTime) * uAmp.b +
+ -pow(nsin(PI * progress * uFreq.a + uTime / (uFreq.b / uFreq.a)), 5.) * uAmp.a
+ );
+ }
+ vec3 getDistortion(float progress){
+ return vec3(
+ getDistortionX(progress) - getDistortionX(0.0125),
+ getDistortionY(progress) - getDistortionY(0.0125),
+ 0.
+ );
+ }
+ `,
+ getJS: (progress, time) => {
+ const uFreq = turbulentUniforms.uFreq.value;
+ const uAmp = turbulentUniforms.uAmp.value;
+
+ const getX = p =>
+ Math.cos(Math.PI * p * uFreq.x + time) * uAmp.x +
+ Math.pow(Math.cos(Math.PI * p * uFreq.y + time * (uFreq.y / uFreq.x)), 2) * uAmp.y;
+
+ const getY = p =>
+ -nsin(Math.PI * p * uFreq.z + time) * uAmp.z -
+ Math.pow(nsin(Math.PI * p * uFreq.w + time / (uFreq.z / uFreq.w)), 5) * uAmp.w;
+
+ let distortion = new THREE.Vector3(
+ getX(progress) - getX(progress + 0.007),
+ getY(progress) - getY(progress + 0.007),
+ 0
+ );
+ let lookAtAmp = new THREE.Vector3(-2, -5, 0);
+ let lookAtOffset = new THREE.Vector3(0, 0, -10);
+ return distortion.multiply(lookAtAmp).add(lookAtOffset);
+ }
+ },
+ turbulentDistortionStill: {
+ uniforms: turbulentUniforms,
+ getDistortion: `
+ uniform vec4 uFreq;
+ uniform vec4 uAmp;
+ float nsin(float val){
+ return sin(val) * 0.5 + 0.5;
+ }
+ #define PI 3.14159265358979
+ float getDistortionX(float progress){
+ return (
+ cos(PI * progress * uFreq.r) * uAmp.r +
+ pow(cos(PI * progress * uFreq.g * (uFreq.g / uFreq.r)), 2. ) * uAmp.g
+ );
+ }
+ float getDistortionY(float progress){
+ return (
+ -nsin(PI * progress * uFreq.b) * uAmp.b +
+ -pow(nsin(PI * progress * uFreq.a / (uFreq.b / uFreq.a)), 5.) * uAmp.a
+ );
+ }
+ vec3 getDistortion(float progress){
+ return vec3(
+ getDistortionX(progress) - getDistortionX(0.02),
+ getDistortionY(progress) - getDistortionY(0.02),
+ 0.
+ );
+ }
+ `
+ },
+ deepDistortionStill: {
+ uniforms: deepUniforms,
+ getDistortion: `
+ uniform vec4 uFreq;
+ uniform vec4 uAmp;
+ uniform vec2 uPowY;
+ float nsin(float val){
+ return sin(val) * 0.5 + 0.5;
+ }
+ #define PI 3.14159265358979
+ float getDistortionX(float progress){
+ return (
+ sin(progress * PI * uFreq.x) * uAmp.x * 2.
+ );
+ }
+ float getDistortionY(float progress){
+ return (
+ pow(abs(progress * uPowY.x), uPowY.y) + sin(progress * PI * uFreq.y) * uAmp.y
+ );
+ }
+ vec3 getDistortion(float progress){
+ return vec3(
+ getDistortionX(progress) - getDistortionX(0.02),
+ getDistortionY(progress) - getDistortionY(0.05),
+ 0.
+ );
+ }
+ `
+ },
+ deepDistortion: {
+ uniforms: deepUniforms,
+ getDistortion: `
+ uniform vec4 uFreq;
+ uniform vec4 uAmp;
+ uniform vec2 uPowY;
+ float nsin(float val){
+ return sin(val) * 0.5 + 0.5;
+ }
+ #define PI 3.14159265358979
+ float getDistortionX(float progress){
+ return (
+ sin(progress * PI * uFreq.x + uTime) * uAmp.x
+ );
+ }
+ float getDistortionY(float progress){
+ return (
+ pow(abs(progress * uPowY.x), uPowY.y) + sin(progress * PI * uFreq.y + uTime) * uAmp.y
+ );
+ }
+ vec3 getDistortion(float progress){
+ return vec3(
+ getDistortionX(progress) - getDistortionX(0.02),
+ getDistortionY(progress) - getDistortionY(0.02),
+ 0.
+ );
+ }
+ `,
+ getJS: (progress, time) => {
+ const uFreq = deepUniforms.uFreq.value;
+ const uAmp = deepUniforms.uAmp.value;
+ const uPowY = deepUniforms.uPowY.value;
+
+ const getX = p => Math.sin(p * Math.PI * uFreq.x + time) * uAmp.x;
+ const getY = p => Math.pow(p * uPowY.x, uPowY.y) + Math.sin(p * Math.PI * uFreq.y + time) * uAmp.y;
+
+ let distortion = new THREE.Vector3(
+ getX(progress) - getX(progress + 0.01),
+ getY(progress) - getY(progress + 0.01),
+ 0
+ );
+ let lookAtAmp = new THREE.Vector3(-2, -4, 0);
+ let lookAtOffset = new THREE.Vector3(0, 0, -10);
+ return distortion.multiply(lookAtAmp).add(lookAtOffset);
+ }
+ }
+ };
+
+ class App {
+ constructor(container, options = {}) {
+ this.options = options;
+ if (this.options.distortion == null) {
+ this.options.distortion = {
+ uniforms: distortion_uniforms,
+ getDistortion: distortion_vertex
+ };
+ }
+ this.container = container;
+ this.hasValidSize = false;
+
+ const initW = Math.max(1, container.offsetWidth);
+ const initH = Math.max(1, container.offsetHeight);
+
+ this.renderer = new THREE.WebGLRenderer({
+ antialias: false,
+ alpha: true
+ });
+ this.renderer.setSize(initW, initH, false);
+ this.renderer.setPixelRatio(Math.min(window.devicePixelRatio, 1.5));
+ this.composer = new EffectComposer(this.renderer);
+ container.append(this.renderer.domElement);
+
+ this.camera = new THREE.PerspectiveCamera(options.fov, initW / initH, 0.1, 10000);
+ this.camera.position.z = -5;
+ this.camera.position.y = 8;
+ this.camera.position.x = 0;
+ this.scene = new THREE.Scene();
+ this.scene.background = null;
+
+ let fog = new THREE.Fog(options.colors.background, options.length * 0.2, options.length * 500);
+ this.scene.fog = fog;
+ this.fogUniforms = {
+ fogColor: { value: fog.color },
+ fogNear: { value: fog.near },
+ fogFar: { value: fog.far }
+ };
+ this.clock = new THREE.Clock();
+ this.assets = {};
+ this.disposed = false;
+ this.paused = false;
+
+ this.road = new Road(this, options);
+ this.leftCarLights = new CarLights(
+ this,
+ options,
+ options.colors.leftCars,
+ options.movingAwaySpeed,
+ new THREE.Vector2(0, 1 - options.carLightsFade)
+ );
+ this.rightCarLights = new CarLights(
+ this,
+ options,
+ options.colors.rightCars,
+ options.movingCloserSpeed,
+ new THREE.Vector2(1, 0 + options.carLightsFade)
+ );
+ this.leftSticks = new LightsSticks(this, options);
+
+ this.fovTarget = options.fov;
+ this.speedUpTarget = 0;
+ this.speedUp = 0;
+ this.timeOffset = 0;
+
+ this.tick = this.tick.bind(this);
+ this.init = this.init.bind(this);
+ this.setSize = this.setSize.bind(this);
+ this.onMouseDown = this.onMouseDown.bind(this);
+ this.onMouseUp = this.onMouseUp.bind(this);
+
+ this.onTouchStart = this.onTouchStart.bind(this);
+ this.onTouchEnd = this.onTouchEnd.bind(this);
+ this.onContextMenu = this.onContextMenu.bind(this);
+
+ this.onWindowResize = this.onWindowResize.bind(this);
+ window.addEventListener('resize', this.onWindowResize);
+
+ if (container.offsetWidth > 0 && container.offsetHeight > 0) {
+ this.hasValidSize = true;
+ }
+ }
+
+ onWindowResize() {
+ const width = this.container.offsetWidth;
+ const height = this.container.offsetHeight;
+
+ if (width <= 0 || height <= 0) {
+ this.hasValidSize = false;
+ return;
+ }
+
+ this.renderer.setSize(width, height);
+ this.camera.aspect = width / height;
+ this.camera.updateProjectionMatrix();
+ this.composer.setSize(width, height);
+ this.hasValidSize = true;
+ }
+
+ initPasses() {
+ this.renderPass = new RenderPass(this.scene, this.camera);
+ this.bloomPass = new EffectPass(
+ this.camera,
+ new BloomEffect({
+ luminanceThreshold: 0.2,
+ luminanceSmoothing: 0,
+ resolutionScale: 1
+ })
+ );
+
+ const smaaPass = new EffectPass(
+ this.camera,
+ new SMAAEffect({
+ preset: SMAAPreset.MEDIUM,
+ searchImage: SMAAEffect.searchImageDataURL,
+ areaImage: SMAAEffect.areaImageDataURL
+ })
+ );
+ this.renderPass.renderToScreen = false;
+ this.bloomPass.renderToScreen = false;
+ smaaPass.renderToScreen = true;
+ this.composer.addPass(this.renderPass);
+ this.composer.addPass(this.bloomPass);
+ this.composer.addPass(smaaPass);
+ }
+
+ loadAssets() {
+ const assets = this.assets;
+ return new Promise(resolve => {
+ const manager = new THREE.LoadingManager(resolve);
+
+ const searchImage = new Image();
+ const areaImage = new Image();
+ assets.smaa = {};
+ searchImage.addEventListener('load', function () {
+ assets.smaa.search = this;
+ manager.itemEnd('smaa-search');
+ });
+
+ areaImage.addEventListener('load', function () {
+ assets.smaa.area = this;
+ manager.itemEnd('smaa-area');
+ });
+ manager.itemStart('smaa-search');
+ manager.itemStart('smaa-area');
+
+ searchImage.src = SMAAEffect.searchImageDataURL;
+ areaImage.src = SMAAEffect.areaImageDataURL;
+ });
+ }
+
+ init() {
+ this.initPasses();
+ const options = this.options;
+ this.road.init();
+ this.leftCarLights.init();
+
+ this.leftCarLights.mesh.position.setX(-options.roadWidth / 2 - options.islandWidth / 2);
+ this.rightCarLights.init();
+ this.rightCarLights.mesh.position.setX(options.roadWidth / 2 + options.islandWidth / 2);
+ this.leftSticks.init();
+ this.leftSticks.mesh.position.setX(-(options.roadWidth + options.islandWidth / 2));
+
+ this.container.addEventListener('mousedown', this.onMouseDown);
+ this.container.addEventListener('mouseup', this.onMouseUp);
+ this.container.addEventListener('mouseout', this.onMouseUp);
+
+ this.container.addEventListener('touchstart', this.onTouchStart, { passive: true });
+ this.container.addEventListener('touchend', this.onTouchEnd, { passive: true });
+ this.container.addEventListener('touchcancel', this.onTouchEnd, { passive: true });
+
+ this.container.addEventListener('contextmenu', this.onContextMenu);
+
+ this.tick();
+ }
+
+ onMouseDown(ev) {
+ if (this.options.onSpeedUp) this.options.onSpeedUp(ev);
+ this.fovTarget = this.options.fovSpeedUp;
+ this.speedUpTarget = this.options.speedUp;
+ }
+
+ onMouseUp(ev) {
+ if (this.options.onSlowDown) this.options.onSlowDown(ev);
+ this.fovTarget = this.options.fov;
+ this.speedUpTarget = 0;
+ }
+
+ onTouchStart(ev) {
+ if (this.options.onSpeedUp) this.options.onSpeedUp(ev);
+ this.fovTarget = this.options.fovSpeedUp;
+ this.speedUpTarget = this.options.speedUp;
+ }
+
+ onTouchEnd(ev) {
+ if (this.options.onSlowDown) this.options.onSlowDown(ev);
+ this.fovTarget = this.options.fov;
+ this.speedUpTarget = 0;
+ }
+
+ onContextMenu(ev) {
+ ev.preventDefault();
+ }
+
+ update(delta) {
+ let lerpPercentage = Math.exp(-(-60 * Math.log2(1 - 0.1)) * delta);
+ this.speedUp += lerp(this.speedUp, this.speedUpTarget, lerpPercentage, 0.00001);
+ this.timeOffset += this.speedUp * delta;
+
+ let time = this.clock.elapsedTime + this.timeOffset;
+
+ this.rightCarLights.update(time);
+ this.leftCarLights.update(time);
+ this.leftSticks.update(time);
+ this.road.update(time);
+
+ let updateCamera = false;
+ let fovChange = lerp(this.camera.fov, this.fovTarget, lerpPercentage);
+ if (fovChange !== 0) {
+ this.camera.fov += fovChange * delta * 6;
+ updateCamera = true;
+ }
+
+ if (this.options.distortion.getJS) {
+ const distortion = this.options.distortion.getJS(0.025, time);
+
+ this.camera.lookAt(
+ new THREE.Vector3(
+ this.camera.position.x + distortion.x,
+ this.camera.position.y + distortion.y,
+ this.camera.position.z + distortion.z
+ )
+ );
+ updateCamera = true;
+ }
+ if (updateCamera) {
+ this.camera.updateProjectionMatrix();
+ }
+ }
+
+ render(delta) {
+ this.composer.render(delta);
+ }
+
+ pause() {
+ this.paused = true;
+ }
+
+ resume() {
+ if (this.disposed || !this.paused) return;
+ this.paused = false;
+ this.clock.getDelta();
+ requestAnimationFrame(this.tick);
+ }
+
+ dispose() {
+ this.disposed = true;
+ this.paused = true;
+
+ if (this.scene) {
+ this.scene.traverse(object => {
+ const obj = object;
+ if (!obj.isMesh) return;
+
+ if (obj.geometry) obj.geometry.dispose();
+
+ if (obj.material) {
+ if (Array.isArray(obj.material)) {
+ obj.material.forEach(material => material.dispose());
+ } else {
+ obj.material.dispose();
+ }
+ }
+ });
+ this.scene.clear();
+ }
+
+ if (this.renderer) {
+ this.renderer.dispose();
+ this.renderer.forceContextLoss();
+ if (this.renderer.domElement && this.renderer.domElement.parentNode) {
+ this.renderer.domElement.parentNode.removeChild(this.renderer.domElement);
+ }
+ }
+ if (this.composer) {
+ this.composer.dispose();
+ }
+
+ window.removeEventListener('resize', this.onWindowResize);
+ if (this.container) {
+ this.container.removeEventListener('mousedown', this.onMouseDown);
+ this.container.removeEventListener('mouseup', this.onMouseUp);
+ this.container.removeEventListener('mouseout', this.onMouseUp);
+
+ this.container.removeEventListener('touchstart', this.onTouchStart);
+ this.container.removeEventListener('touchend', this.onTouchEnd);
+ this.container.removeEventListener('touchcancel', this.onTouchEnd);
+ this.container.removeEventListener('contextmenu', this.onContextMenu);
+ }
+ }
+
+ setSize(width, height, updateStyles) {
+ if (width <= 0 || height <= 0) {
+ this.hasValidSize = false;
+ return;
+ }
+ this.composer.setSize(width, height, updateStyles);
+ this.hasValidSize = true;
+ }
+
+ tick() {
+ if (this.disposed || this.paused) return;
+
+ if (!this.hasValidSize) {
+ const w = this.container.offsetWidth;
+ const h = this.container.offsetHeight;
+ if (w > 0 && h > 0) {
+ this.renderer.setSize(w, h, false);
+ this.camera.aspect = w / h;
+ this.camera.updateProjectionMatrix();
+ this.composer.setSize(w, h);
+ this.hasValidSize = true;
+ } else {
+ requestAnimationFrame(this.tick);
+ return;
+ }
+ }
+
+ if (resizeRendererToDisplaySize(this.renderer, this.setSize)) {
+ const canvas = this.renderer.domElement;
+ if (this.hasValidSize) {
+ this.camera.aspect = canvas.clientWidth / canvas.clientHeight;
+ this.camera.updateProjectionMatrix();
+ }
+ }
+
+ if (this.hasValidSize) {
+ const delta = this.clock.getDelta();
+ this.render(delta);
+ this.update(delta);
+ }
+
+ requestAnimationFrame(this.tick);
+ }
+ }
+
+ const distortion_uniforms = {
+ uDistortionX: { value: new THREE.Vector2(80, 3) },
+ uDistortionY: { value: new THREE.Vector2(-40, 2.5) }
+ };
+
+ const distortion_vertex = `
+ #define PI 3.14159265358979
+ uniform vec2 uDistortionX;
+ uniform vec2 uDistortionY;
+ float nsin(float val){
+ return sin(val) * 0.5 + 0.5;
+ }
+ vec3 getDistortion(float progress){
+ progress = clamp(progress, 0., 1.);
+ float xAmp = uDistortionX.r;
+ float xFreq = uDistortionX.g;
+ float yAmp = uDistortionY.r;
+ float yFreq = uDistortionY.g;
+ return vec3(
+ xAmp * nsin(progress * PI * xFreq - PI / 2.),
+ yAmp * nsin(progress * PI * yFreq - PI / 2.),
+ 0.
+ );
+ }
+ `;
+
+ const random = base => {
+ if (Array.isArray(base)) return Math.random() * (base[1] - base[0]) + base[0];
+ return Math.random() * base;
+ };
+
+ const pickRandom = arr => {
+ if (Array.isArray(arr)) return arr[Math.floor(Math.random() * arr.length)];
+ return arr;
+ };
+
+ function lerp(current, target, speed = 0.1, limit = 0.001) {
+ let change = (target - current) * speed;
+ if (Math.abs(change) < limit) {
+ change = target - current;
+ }
+ return change;
+ }
+
+ class CarLights {
+ constructor(webgl, options, colors, speed, fade) {
+ this.webgl = webgl;
+ this.options = options;
+ this.colors = colors;
+ this.speed = speed;
+ this.fade = fade;
+ }
+
+ init() {
+ const options = this.options;
+ let curve = new THREE.LineCurve3(new THREE.Vector3(0, 0, 0), new THREE.Vector3(0, 0, -1));
+ let geometry = new THREE.TubeGeometry(curve, 40, 1, 8, false);
+
+ let instanced = new THREE.InstancedBufferGeometry().copy(geometry);
+ instanced.instanceCount = options.lightPairsPerRoadWay * 2;
+
+ let laneWidth = options.roadWidth / options.lanesPerRoad;
+
+ let aOffset = [];
+ let aMetrics = [];
+ let aColor = [];
+
+ let colors = this.colors;
+ if (Array.isArray(colors)) {
+ colors = colors.map(c => new THREE.Color(c));
+ } else {
+ colors = new THREE.Color(colors);
+ }
+
+ for (let i = 0; i < options.lightPairsPerRoadWay; i++) {
+ let radius = random(options.carLightsRadius);
+ let length = random(options.carLightsLength);
+ let speed = random(this.speed);
+
+ let carLane = i % options.lanesPerRoad;
+ let laneX = carLane * laneWidth - options.roadWidth / 2 + laneWidth / 2;
+
+ let carWidth = random(options.carWidthPercentage) * laneWidth;
+ let carShiftX = random(options.carShiftX) * laneWidth;
+ laneX += carShiftX;
+
+ let offsetY = random(options.carFloorSeparation) + radius * 1.3;
+
+ let offsetZ = -random(options.length);
+
+ aOffset.push(laneX - carWidth / 2);
+ aOffset.push(offsetY);
+ aOffset.push(offsetZ);
+
+ aOffset.push(laneX + carWidth / 2);
+ aOffset.push(offsetY);
+ aOffset.push(offsetZ);
+
+ aMetrics.push(radius);
+ aMetrics.push(length);
+ aMetrics.push(speed);
+
+ aMetrics.push(radius);
+ aMetrics.push(length);
+ aMetrics.push(speed);
+
+ let color = pickRandom(colors);
+ aColor.push(color.r);
+ aColor.push(color.g);
+ aColor.push(color.b);
+
+ aColor.push(color.r);
+ aColor.push(color.g);
+ aColor.push(color.b);
+ }
+
+ instanced.setAttribute('aOffset', new THREE.InstancedBufferAttribute(new Float32Array(aOffset), 3, false));
+ instanced.setAttribute('aMetrics', new THREE.InstancedBufferAttribute(new Float32Array(aMetrics), 3, false));
+ instanced.setAttribute('aColor', new THREE.InstancedBufferAttribute(new Float32Array(aColor), 3, false));
+
+ let material = new THREE.ShaderMaterial({
+ fragmentShader: carLightsFragment,
+ vertexShader: carLightsVertex,
+ transparent: true,
+ uniforms: Object.assign(
+ {
+ uTime: { value: 0 },
+ uTravelLength: { value: options.length },
+ uFade: { value: this.fade }
+ },
+ this.webgl.fogUniforms,
+ options.distortion.uniforms
+ )
+ });
+
+ material.onBeforeCompile = shader => {
+ shader.vertexShader = shader.vertexShader.replace(
+ '#include ',
+ options.distortion.getDistortion
+ );
+ };
+
+ let mesh = new THREE.Mesh(instanced, material);
+ mesh.frustumCulled = false;
+ this.webgl.scene.add(mesh);
+ this.mesh = mesh;
+ }
+
+ update(time) {
+ this.mesh.material.uniforms.uTime.value = time;
+ }
+ }
+
+ const carLightsFragment = `
+ #define USE_FOG;
+ ${THREE.ShaderChunk['fog_pars_fragment']}
+ varying vec3 vColor;
+ varying vec2 vUv;
+ uniform vec2 uFade;
+ void main() {
+ vec3 color = vec3(vColor);
+ float alpha = smoothstep(uFade.x, uFade.y, vUv.x);
+ gl_FragColor = vec4(color, alpha);
+ if (gl_FragColor.a < 0.0001) discard;
+ ${THREE.ShaderChunk['fog_fragment']}
+ }
+ `;
+
+ const carLightsVertex = `
+ #define USE_FOG;
+ ${THREE.ShaderChunk['fog_pars_vertex']}
+ attribute vec3 aOffset;
+ attribute vec3 aMetrics;
+ attribute vec3 aColor;
+ uniform float uTravelLength;
+ uniform float uTime;
+ varying vec2 vUv;
+ varying vec3 vColor;
+ #include
+ void main() {
+ vec3 transformed = position.xyz;
+ float radius = aMetrics.r;
+ float myLength = aMetrics.g;
+ float speed = aMetrics.b;
+
+ transformed.xy *= radius;
+ transformed.z *= myLength;
+
+ transformed.z += myLength - mod(uTime * speed + aOffset.z, uTravelLength);
+ transformed.xy += aOffset.xy;
+
+ float progress = abs(transformed.z / uTravelLength);
+ transformed.xyz += getDistortion(progress);
+
+ vec4 mvPosition = modelViewMatrix * vec4(transformed, 1.);
+ gl_Position = projectionMatrix * mvPosition;
+ vUv = uv;
+ vColor = aColor;
+ ${THREE.ShaderChunk['fog_vertex']}
+ }
+ `;
+
+ class LightsSticks {
+ constructor(webgl, options) {
+ this.webgl = webgl;
+ this.options = options;
+ }
+
+ init() {
+ const options = this.options;
+ const geometry = new THREE.PlaneGeometry(1, 1);
+ let instanced = new THREE.InstancedBufferGeometry().copy(geometry);
+ let totalSticks = options.totalSideLightSticks;
+ instanced.instanceCount = totalSticks;
+
+ let stickoffset = options.length / (totalSticks - 1);
+ const aOffset = [];
+ const aColor = [];
+ const aMetrics = [];
+
+ let colors = options.colors.sticks;
+ if (Array.isArray(colors)) {
+ colors = colors.map(c => new THREE.Color(c));
+ } else {
+ colors = new THREE.Color(colors);
+ }
+
+ for (let i = 0; i < totalSticks; i++) {
+ let width = random(options.lightStickWidth);
+ let height = random(options.lightStickHeight);
+ aOffset.push((i - 1) * stickoffset * 2 + stickoffset * Math.random());
+
+ let color = pickRandom(colors);
+ aColor.push(color.r);
+ aColor.push(color.g);
+ aColor.push(color.b);
+
+ aMetrics.push(width);
+ aMetrics.push(height);
+ }
+
+ instanced.setAttribute('aOffset', new THREE.InstancedBufferAttribute(new Float32Array(aOffset), 1, false));
+ instanced.setAttribute('aColor', new THREE.InstancedBufferAttribute(new Float32Array(aColor), 3, false));
+ instanced.setAttribute('aMetrics', new THREE.InstancedBufferAttribute(new Float32Array(aMetrics), 2, false));
+
+ const material = new THREE.ShaderMaterial({
+ fragmentShader: sideSticksFragment,
+ vertexShader: sideSticksVertex,
+ side: THREE.DoubleSide,
+ uniforms: Object.assign(
+ {
+ uTravelLength: { value: options.length },
+ uTime: { value: 0 }
+ },
+ this.webgl.fogUniforms,
+ options.distortion.uniforms
+ )
+ });
+
+ material.onBeforeCompile = shader => {
+ shader.vertexShader = shader.vertexShader.replace(
+ '#include ',
+ options.distortion.getDistortion
+ );
+ };
+
+ const mesh = new THREE.Mesh(instanced, material);
+ mesh.frustumCulled = false;
+ this.webgl.scene.add(mesh);
+ this.mesh = mesh;
+ }
+
+ update(time) {
+ this.mesh.material.uniforms.uTime.value = time;
+ }
+ }
+
+ const sideSticksVertex = `
+ #define USE_FOG;
+ ${THREE.ShaderChunk['fog_pars_vertex']}
+ attribute float aOffset;
+ attribute vec3 aColor;
+ attribute vec2 aMetrics;
+ uniform float uTravelLength;
+ uniform float uTime;
+ varying vec3 vColor;
+ mat4 rotationY( in float angle ) {
+ return mat4( cos(angle), 0, sin(angle), 0,
+ 0, 1.0, 0, 0,
+ -sin(angle), 0, cos(angle), 0,
+ 0, 0, 0, 1);
+ }
+ #include
+ void main(){
+ vec3 transformed = position.xyz;
+ float width = aMetrics.x;
+ float height = aMetrics.y;
+
+ transformed.xy *= vec2(width, height);
+ float time = mod(uTime * 60. * 2. + aOffset, uTravelLength);
+
+ transformed = (rotationY(3.14/2.) * vec4(transformed,1.)).xyz;
+
+ transformed.z += - uTravelLength + time;
+
+ float progress = abs(transformed.z / uTravelLength);
+ transformed.xyz += getDistortion(progress);
+
+ transformed.y += height / 2.;
+ transformed.x += -width / 2.;
+ vec4 mvPosition = modelViewMatrix * vec4(transformed, 1.);
+ gl_Position = projectionMatrix * mvPosition;
+ vColor = aColor;
+ ${THREE.ShaderChunk['fog_vertex']}
+ }
+ `;
+
+ const sideSticksFragment = `
+ #define USE_FOG;
+ ${THREE.ShaderChunk['fog_pars_fragment']}
+ varying vec3 vColor;
+ void main(){
+ vec3 color = vec3(vColor);
+ gl_FragColor = vec4(color,1.);
+ ${THREE.ShaderChunk['fog_fragment']}
+ }
+ `;
+
+ class Road {
+ constructor(webgl, options) {
+ this.webgl = webgl;
+ this.options = options;
+ this.uTime = { value: 0 };
+ }
+
+ createPlane(side, width, isRoad) {
+ const options = this.options;
+ let segments = 100;
+ const geometry = new THREE.PlaneGeometry(
+ isRoad ? options.roadWidth : options.islandWidth,
+ options.length,
+ 20,
+ segments
+ );
+ let uniforms = {
+ uTravelLength: { value: options.length },
+ uColor: { value: new THREE.Color(isRoad ? options.colors.roadColor : options.colors.islandColor) },
+ uTime: this.uTime
+ };
+
+ if (isRoad) {
+ uniforms = Object.assign(uniforms, {
+ uLanes: { value: options.lanesPerRoad },
+ uBrokenLinesColor: { value: new THREE.Color(options.colors.brokenLines) },
+ uShoulderLinesColor: { value: new THREE.Color(options.colors.shoulderLines) },
+ uShoulderLinesWidthPercentage: { value: options.shoulderLinesWidthPercentage },
+ uBrokenLinesLengthPercentage: { value: options.brokenLinesLengthPercentage },
+ uBrokenLinesWidthPercentage: { value: options.brokenLinesWidthPercentage }
+ });
+ }
+
+ const material = new THREE.ShaderMaterial({
+ fragmentShader: isRoad ? roadFragment : islandFragment,
+ vertexShader: roadVertex,
+ side: THREE.DoubleSide,
+ uniforms: Object.assign(uniforms, this.webgl.fogUniforms, options.distortion.uniforms)
+ });
+
+ material.onBeforeCompile = shader => {
+ shader.vertexShader = shader.vertexShader.replace(
+ '#include ',
+ options.distortion.getDistortion
+ );
+ };
+
+ const mesh = new THREE.Mesh(geometry, material);
+ mesh.rotation.x = -Math.PI / 2;
+ mesh.position.z = -options.length / 2;
+ mesh.position.x += (this.options.islandWidth / 2 + options.roadWidth / 2) * side;
+ this.webgl.scene.add(mesh);
+
+ return mesh;
+ }
+
+ init() {
+ this.leftRoadWay = this.createPlane(-1, this.options.roadWidth, true);
+ this.rightRoadWay = this.createPlane(1, this.options.roadWidth, true);
+ this.island = this.createPlane(0, this.options.islandWidth, false);
+ }
+
+ update(time) {
+ this.uTime.value = time;
+ }
+ }
+
+ const roadBaseFragment = `
+ #define USE_FOG;
+ varying vec2 vUv;
+ uniform vec3 uColor;
+ uniform float uTime;
+ #include
+ ${THREE.ShaderChunk['fog_pars_fragment']}
+ void main() {
+ vec2 uv = vUv;
+ vec3 color = vec3(uColor);
+ #include
+ gl_FragColor = vec4(color, 1.);
+ ${THREE.ShaderChunk['fog_fragment']}
+ }
+ `;
+
+ const islandFragment = roadBaseFragment
+ .replace('#include ', '')
+ .replace('#include ', '');
+
+ const roadMarkings_vars = `
+ uniform float uLanes;
+ uniform vec3 uBrokenLinesColor;
+ uniform vec3 uShoulderLinesColor;
+ uniform float uShoulderLinesWidthPercentage;
+ uniform float uBrokenLinesWidthPercentage;
+ uniform float uBrokenLinesLengthPercentage;
+ highp float random(vec2 co) {
+ highp float a = 12.9898;
+ highp float b = 78.233;
+ highp float c = 43758.5453;
+ highp float dt = dot(co.xy, vec2(a, b));
+ highp float sn = mod(dt, 3.14);
+ return fract(sin(sn) * c);
+ }
+ `;
+
+ const roadMarkings_fragment = `
+ uv.y = mod(uv.y + uTime * 0.05, 1.);
+ float laneWidth = 1.0 / uLanes;
+ float brokenLineWidth = laneWidth * uBrokenLinesWidthPercentage;
+ float laneEmptySpace = 1. - uBrokenLinesLengthPercentage;
+
+ float brokenLines = step(1.0 - brokenLineWidth, fract(uv.x * 2.0)) * step(laneEmptySpace, fract(uv.y * 10.0));
+ float sideLines = step(1.0 - brokenLineWidth, fract((uv.x - laneWidth * (uLanes - 1.0)) * 2.0)) + step(brokenLineWidth, uv.x);
+
+ brokenLines = mix(brokenLines, sideLines, uv.x);
+ `;
+
+ const roadFragment = roadBaseFragment
+ .replace('#include ', roadMarkings_fragment)
+ .replace('#include ', roadMarkings_vars);
+
+ const roadVertex = `
+ #define USE_FOG;
+ uniform float uTime;
+ ${THREE.ShaderChunk['fog_pars_vertex']}
+ uniform float uTravelLength;
+ varying vec2 vUv;
+ #include
+ void main() {
+ vec3 transformed = position.xyz;
+ vec3 distortion = getDistortion((transformed.y + uTravelLength / 2.) / uTravelLength);
+ transformed.x += distortion.x;
+ transformed.z += distortion.y;
+ transformed.y += -1. * distortion.z;
+
+ vec4 mvPosition = modelViewMatrix * vec4(transformed, 1.);
+ gl_Position = projectionMatrix * mvPosition;
+ vUv = uv;
+ ${THREE.ShaderChunk['fog_vertex']}
+ }
+ `;
+
+ function resizeRendererToDisplaySize(renderer, setSize) {
+ const canvas = renderer.domElement;
+ const width = canvas.clientWidth;
+ const height = canvas.clientHeight;
+ if (width <= 0 || height <= 0) return false;
+ const needResize = canvas.width !== width || canvas.height !== height;
+ if (needResize) {
+ setSize(width, height, false);
+ }
+ return needResize;
+ }
+
+ const container = hyperspeed.current;
+ if (!container) return;
+
+ const options = {
+ ...DEFAULT_EFFECT_OPTIONS,
+ ...effectOptions,
+ colors: { ...DEFAULT_EFFECT_OPTIONS.colors, ...effectOptions.colors }
+ };
+ options.distortion = distortions[options.distortion];
+
+ const myApp = new App(container, options);
+ appRef.current = myApp;
+ let cancelled = false;
+ myApp.loadAssets().then(() => {
+ if (!cancelled && !myApp.disposed) {
+ myApp.init();
+ }
+ });
+
+ return () => {
+ cancelled = true;
+ if (appRef.current) {
+ appRef.current.dispose();
+ appRef.current = null;
+ }
+ };
+ }, [effectOptions]);
+
+ useEffect(() => {
+ const el = hyperspeed.current;
+ if (!el) return;
+
+ const syncPauseState = (shouldPause) => {
+ if (!appRef.current) return;
+ if (shouldPause) appRef.current.pause();
+ else appRef.current.resume();
+ };
+
+ const observer = new IntersectionObserver(
+ ([entry]) => syncPauseState(!entry.isIntersecting),
+ { rootMargin: '80px', threshold: 0 }
+ );
+ observer.observe(el);
+
+ const onVisibilityChange = () => {
+ if (document.hidden) {
+ syncPauseState(true);
+ return;
+ }
+ const rect = el.getBoundingClientRect();
+ const inView = rect.bottom > 0 && rect.top < window.innerHeight;
+ syncPauseState(!inView);
+ };
+ document.addEventListener('visibilitychange', onVisibilityChange);
+
+ return () => {
+ observer.disconnect();
+ document.removeEventListener('visibilitychange', onVisibilityChange);
+ };
+ }, []);
+
+ return
;
+};
+
+export default Hyperspeed;
diff --git a/apps/landing/src/components/MagicBento/MagicBento.css b/apps/landing/src/components/MagicBento/MagicBento.css
new file mode 100644
index 000000000..4277113c7
--- /dev/null
+++ b/apps/landing/src/components/MagicBento/MagicBento.css
@@ -0,0 +1,301 @@
+.bento-section {
+ --hue: 27;
+ --sat: 69%;
+ --white: hsl(0, 0%, 100%);
+ --purple-primary: rgba(0, 245, 212, 1);
+ --purple-glow: rgba(0, 245, 212, 0.2);
+ --purple-border: rgba(0, 245, 212, 0.8);
+ --border-color: #2F293A;
+ --background-dark: #120F17;
+}
+
+.card-grid {
+ display: grid;
+ gap: 0.75em;
+ padding: 1em;
+ max-width: 72em;
+ font-size: clamp(1rem, 0.9rem + 0.5vw, 1.5rem);
+}
+
+.magic-bento-card {
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+ position: relative;
+ min-height: 230px;
+ width: 100%;
+ max-width: 100%;
+ padding: 0; /* Remove padding since BorderGlow handles inner content */
+ border-radius: 16px;
+ background: transparent;
+ font-weight: 300;
+ overflow: visible;
+ transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
+ --glow-x: 50%;
+ --glow-y: 50%;
+ --glow-intensity: 0;
+ --glow-radius: 200px;
+}
+
+.magic-bento-card .border-glow-inner {
+ padding: 1.4em;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+ height: 100%;
+}
+
+.magic-bento-card:hover {
+ transform: translateY(-4px);
+ border-color: rgba(0, 245, 212, 0.3);
+ background: rgba(0, 245, 212, 0.04);
+ box-shadow: 0 12px 32px rgba(0, 0, 0, 0.3), 0 0 20px rgba(0, 245, 212, 0.08);
+}
+
+.magic-bento-card__header,
+.magic-bento-card__content {
+ display: flex;
+ position: relative;
+ color: var(--white);
+}
+
+.magic-bento-card__header {
+ gap: 0.75em;
+ justify-content: space-between;
+ align-items: center;
+}
+
+.magic-bento-card__content {
+ flex-direction: column;
+}
+
+.magic-bento-card__label {
+ font-size: 10px;
+ font-weight: 600;
+ letter-spacing: 0.1em;
+ text-transform: uppercase;
+ color: rgba(0, 245, 212, 0.6);
+ padding: 0.2em 0.6em;
+ border-radius: 4px;
+ background: rgba(0, 245, 212, 0.06);
+ border: 1px solid rgba(0, 245, 212, 0.1);
+ transition: all 0.4s ease;
+ transform: translateY(0);
+ opacity: 0.7;
+}
+
+.magic-bento-card:hover .magic-bento-card__label {
+ color: rgba(0, 245, 212, 0.9);
+ background: rgba(0, 245, 212, 0.1);
+ border-color: rgba(0, 245, 212, 0.25);
+ opacity: 1;
+ transform: translateY(-1px);
+}
+
+.magic-bento-card__title,
+.magic-bento-card__description {
+ --clamp-title: 1;
+ --clamp-desc: 2;
+}
+
+.magic-bento-card__title {
+ font-weight: 500;
+ font-size: 15px;
+ margin: 0 0 0.35em;
+ color: #f0f0f0;
+ letter-spacing: -0.01em;
+ transition: all 0.35s ease 0.05s;
+ transform: translateY(0);
+}
+
+.magic-bento-card:hover .magic-bento-card__title {
+ color: #ffffff;
+ transform: translateY(-2px);
+}
+
+.magic-bento-card__description {
+ font-size: 12px;
+ line-height: 1.45;
+ color: rgba(255, 255, 255, 0.45);
+ transition: all 0.4s ease 0.1s;
+ transform: translateY(0);
+}
+
+.magic-bento-card:hover .magic-bento-card__description {
+ color: rgba(255, 255, 255, 0.7);
+ transform: translateY(-2px);
+}
+
+.magic-bento-card--text-autohide .magic-bento-card__title,
+.magic-bento-card--text-autohide .magic-bento-card__description {
+ display: -webkit-box;
+ -webkit-box-orient: vertical;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+
+.magic-bento-card--text-autohide .magic-bento-card__title {
+ -webkit-line-clamp: var(--clamp-title);
+ line-clamp: var(--clamp-title);
+}
+
+.magic-bento-card--text-autohide .magic-bento-card__description {
+ -webkit-line-clamp: var(--clamp-desc);
+ line-clamp: var(--clamp-desc);
+}
+
+@media (max-width: 599px) {
+ .card-grid {
+ grid-template-columns: 1fr;
+ width: 92%;
+ margin: 0 auto;
+ padding: 0.5em;
+ }
+
+ .magic-bento-card {
+ width: 100%;
+ min-height: 200px;
+ }
+}
+
+@media (min-width: 600px) {
+ .card-grid {
+ grid-template-columns: repeat(2, 1fr);
+ }
+}
+
+@media (min-width: 1024px) {
+ .card-grid {
+ grid-template-columns: repeat(4, 1fr);
+ }
+
+ .magic-bento-card:nth-child(3) {
+ grid-column: span 2;
+ grid-row: span 2;
+ }
+
+ .magic-bento-card:nth-child(4) {
+ grid-column: 1 / span 2;
+ grid-row: 2 / span 2;
+ }
+
+ .magic-bento-card:nth-child(6) {
+ grid-column: 4;
+ grid-row: 3;
+ }
+}
+
+.magic-bento-card--border-glow::after {
+ content: '';
+ position: absolute;
+ inset: 0;
+ padding: 6px;
+ background: radial-gradient(
+ var(--glow-radius) circle at var(--glow-x) var(--glow-y),
+ rgba(0, 245, 212, calc(var(--glow-intensity) * 0.8)) 0%,
+ rgba(0, 245, 212, calc(var(--glow-intensity) * 0.4)) 30%,
+ transparent 60%
+ );
+ border-radius: inherit;
+ -webkit-mask:
+ linear-gradient(#fff 0 0) content-box,
+ linear-gradient(#fff 0 0);
+ -webkit-mask-composite: xor;
+ mask:
+ linear-gradient(#fff 0 0) content-box,
+ linear-gradient(#fff 0 0);
+ mask-composite: exclude;
+ pointer-events: none;
+ opacity: 1;
+ transition: opacity 0.3s ease;
+ z-index: 1;
+}
+
+.magic-bento-card--border-glow:hover::after {
+ opacity: 1;
+}
+
+.magic-bento-card--border-glow:hover {
+ box-shadow:
+ 0 4px 20px rgba(0, 245, 212, 0.4),
+ 0 0 30px var(--purple-glow);
+}
+
+.particle-container {
+ position: relative;
+ overflow: hidden;
+}
+
+.particle::before {
+ content: '';
+ position: absolute;
+ top: -2px;
+ left: -2px;
+ right: -2px;
+ bottom: -2px;
+ background: rgba(0, 245, 212, 0.2);
+ border-radius: 50%;
+ z-index: -1;
+}
+
+.particle-container:hover {
+ box-shadow:
+ 0 4px 20px rgba(0, 245, 212, 0.2),
+ 0 0 30px var(--purple-glow);
+}
+
+.global-spotlight {
+ mix-blend-mode: screen;
+ will-change: transform, opacity;
+ z-index: 200 !important;
+ pointer-events: none;
+}
+
+.bento-section {
+ position: relative;
+ user-select: none;
+}
+
+.magic-bento-card__visual {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex: 1;
+ width: 100%;
+ height: 100%;
+ min-height: 110px;
+ overflow: hidden;
+ position: relative;
+ z-index: 2;
+ margin: 0.35em 0;
+ opacity: 0.85;
+ transition: opacity 0.4s ease;
+}
+
+.magic-bento-card:hover .magic-bento-card__visual {
+ opacity: 1;
+}
+
+/* Default mockup scaling for 1x1 cards to fit comfortably */
+.magic-bento-card__visual > * {
+ transform: scale(0.88);
+ transform-origin: center;
+ transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
+}
+
+.magic-bento-card:hover .magic-bento-card__visual > * {
+ transform: scale(0.94);
+}
+
+/* Larger mockup scale for 2x2 double-width cards on desktop */
+@media (min-width: 1024px) {
+ .magic-bento-card:nth-child(3) .magic-bento-card__visual > *,
+ .magic-bento-card:nth-child(4) .magic-bento-card__visual > * {
+ transform: scale(1.1);
+ }
+
+ .magic-bento-card:nth-child(3):hover .magic-bento-card__visual > *,
+ .magic-bento-card:nth-child(4):hover .magic-bento-card__visual > * {
+ transform: scale(1.15);
+ }
+}
diff --git a/apps/landing/src/components/MagicBento/MagicBento.jsx b/apps/landing/src/components/MagicBento/MagicBento.jsx
new file mode 100644
index 000000000..02397462d
--- /dev/null
+++ b/apps/landing/src/components/MagicBento/MagicBento.jsx
@@ -0,0 +1,557 @@
+import { useRef, useEffect, useCallback, useState } from 'react';
+import { gsap } from 'gsap';
+import './MagicBento.css';
+import BorderGlow from '../BorderGlow/BorderGlow';
+import { APP_SERVICES } from '../../data/services.jsx';
+
+const DEFAULT_PARTICLE_COUNT = 12;
+const DEFAULT_SPOTLIGHT_RADIUS = 300;
+const DEFAULT_GLOW_COLOR = '0, 245, 212';
+const MOBILE_BREAKPOINT = 768;
+
+const cardData = [
+ {
+ color: '#120F17',
+ title: 'User Authentication',
+ description: 'Pre-configured secure login/signup flows, session handling with JWTs, and third-party login providers with zero setup.',
+ label: 'IDENTITY'
+ },
+ {
+ color: '#120F17',
+ title: 'JSON Document Database',
+ description: 'Direct database mutations and queries from your client app. Automated validation schemas protect integrity at high speed.',
+ label: 'DATABASE'
+ },
+ {
+ color: '#120F17',
+ title: 'Secure File Storage',
+ description: 'Upload, manage, and deliver media assets like avatars and documents. Integrated with bucket systems and global delivery networks.',
+ label: 'STORAGE'
+ },
+ {
+ color: '#120F17',
+ title: 'Transactional Mailer',
+ description: 'Pre-wired email dispatchers for user verification, password recovery, and system notifications with customizable templates.',
+ label: 'COMMUNICATION'
+ },
+ {
+ color: '#120F17',
+ title: 'Row-Level Security',
+ description: 'Fine-grained read/write security with RLS. Restrict access based on document ownership and user authentication tokens.',
+ label: 'SECURITY'
+ },
+ {
+ color: '#120F17',
+ title: 'Realtime Broadcast',
+ description: 'Listen to database mutations instantly or broadcast custom events across clients using low-latency WebSocket connections.',
+ label: 'REALTIME'
+ }
+];
+
+
+const createParticleElement = (x, y, color = DEFAULT_GLOW_COLOR) => {
+ const el = document.createElement('div');
+ el.className = 'particle';
+ el.style.cssText = `
+ position: absolute;
+ width: 4px;
+ height: 4px;
+ border-radius: 50%;
+ background: rgba(${color}, 1);
+ box-shadow: 0 0 6px rgba(${color}, 0.6);
+ pointer-events: none;
+ z-index: 100;
+ left: ${x}px;
+ top: ${y}px;
+ `;
+ return el;
+};
+
+const calculateSpotlightValues = radius => ({
+ proximity: radius * 0.5,
+ fadeDistance: radius * 0.75
+});
+
+const updateCardGlowProperties = (card, mouseX, mouseY, glow, radius) => {
+ const rect = card.getBoundingClientRect();
+ const relativeX = ((mouseX - rect.left) / rect.width) * 100;
+ const relativeY = ((mouseY - rect.top) / rect.height) * 100;
+
+ card.style.setProperty('--glow-x', `${relativeX}%`);
+ card.style.setProperty('--glow-y', `${relativeY}%`);
+ card.style.setProperty('--glow-intensity', glow.toString());
+ card.style.setProperty('--glow-radius', `${radius}px`);
+};
+
+const ParticleCard = ({
+ children,
+ className = '',
+ disableAnimations = false,
+ style,
+ particleCount = DEFAULT_PARTICLE_COUNT,
+ glowColor = DEFAULT_GLOW_COLOR,
+ enableTilt = true,
+ clickEffect = false,
+ enableMagnetism = false
+}) => {
+ const cardRef = useRef(null);
+ const particlesRef = useRef([]);
+ const timeoutsRef = useRef([]);
+ const isHoveredRef = useRef(false);
+ const memoizedParticles = useRef([]);
+ const particlesInitialized = useRef(false);
+ const magnetismAnimationRef = useRef(null);
+
+ const initializeParticles = useCallback(() => {
+ if (particlesInitialized.current || !cardRef.current) return;
+
+ const { width, height } = cardRef.current.getBoundingClientRect();
+ memoizedParticles.current = Array.from({ length: particleCount }, () =>
+ createParticleElement(Math.random() * width, Math.random() * height, glowColor)
+ );
+ particlesInitialized.current = true;
+ }, [particleCount, glowColor]);
+
+ const clearAllParticles = useCallback(() => {
+ timeoutsRef.current.forEach(clearTimeout);
+ timeoutsRef.current = [];
+ magnetismAnimationRef.current?.kill();
+
+ particlesRef.current.forEach(particle => {
+ gsap.to(particle, {
+ scale: 0,
+ opacity: 0,
+ duration: 0.3,
+ ease: 'back.in(1.7)',
+ onComplete: () => {
+ particle.parentNode?.removeChild(particle);
+ }
+ });
+ });
+ particlesRef.current = [];
+ }, []);
+
+ const animateParticles = useCallback(() => {
+ if (!cardRef.current || !isHoveredRef.current) return;
+
+ if (!particlesInitialized.current) {
+ initializeParticles();
+ }
+
+ memoizedParticles.current.forEach((particle, index) => {
+ const timeoutId = setTimeout(() => {
+ if (!isHoveredRef.current || !cardRef.current) return;
+
+ const clone = particle.cloneNode(true);
+ cardRef.current.appendChild(clone);
+ particlesRef.current.push(clone);
+
+ gsap.fromTo(clone, { scale: 0, opacity: 0 }, { scale: 1, opacity: 1, duration: 0.3, ease: 'back.out(1.7)' });
+
+ gsap.to(clone, {
+ x: (Math.random() - 0.5) * 100,
+ y: (Math.random() - 0.5) * 100,
+ rotation: Math.random() * 360,
+ duration: 2 + Math.random() * 2,
+ ease: 'none',
+ repeat: -1,
+ yoyo: true
+ });
+
+ gsap.to(clone, {
+ opacity: 0.3,
+ duration: 1.5,
+ ease: 'power2.inOut',
+ repeat: -1,
+ yoyo: true
+ });
+ }, index * 100);
+
+ timeoutsRef.current.push(timeoutId);
+ });
+ }, [initializeParticles]);
+
+ useEffect(() => {
+ if (disableAnimations || !cardRef.current) return;
+
+ const element = cardRef.current;
+
+ const handleMouseEnter = () => {
+ isHoveredRef.current = true;
+ animateParticles();
+
+ if (enableTilt) {
+ gsap.to(element, {
+ rotateX: 5,
+ rotateY: 5,
+ duration: 0.3,
+ ease: 'power2.out',
+ transformPerspective: 1000
+ });
+ }
+ };
+
+ const handleMouseLeave = () => {
+ isHoveredRef.current = false;
+ clearAllParticles();
+
+ if (enableTilt) {
+ gsap.to(element, {
+ rotateX: 0,
+ rotateY: 0,
+ duration: 0.3,
+ ease: 'power2.out'
+ });
+ }
+
+ if (enableMagnetism) {
+ gsap.to(element, {
+ x: 0,
+ y: 0,
+ duration: 0.3,
+ ease: 'power2.out'
+ });
+ }
+ };
+
+ const handleMouseMove = e => {
+ if (!enableTilt && !enableMagnetism) return;
+
+ const rect = element.getBoundingClientRect();
+ const x = e.clientX - rect.left;
+ const y = e.clientY - rect.top;
+ const centerX = rect.width / 2;
+ const centerY = rect.height / 2;
+
+ if (enableTilt) {
+ const rotateX = ((y - centerY) / centerY) * -10;
+ const rotateY = ((x - centerX) / centerX) * 10;
+
+ gsap.to(element, {
+ rotateX,
+ rotateY,
+ duration: 0.1,
+ ease: 'power2.out',
+ transformPerspective: 1000
+ });
+ }
+
+ if (enableMagnetism) {
+ const magnetX = (x - centerX) * 0.05;
+ const magnetY = (y - centerY) * 0.05;
+
+ magnetismAnimationRef.current = gsap.to(element, {
+ x: magnetX,
+ y: magnetY,
+ duration: 0.3,
+ ease: 'power2.out'
+ });
+ }
+ };
+
+ const handleClick = e => {
+ if (!clickEffect) return;
+
+ const rect = element.getBoundingClientRect();
+ const x = e.clientX - rect.left;
+ const y = e.clientY - rect.top;
+
+ const maxDistance = Math.max(
+ Math.hypot(x, y),
+ Math.hypot(x - rect.width, y),
+ Math.hypot(x, y - rect.height),
+ Math.hypot(x - rect.width, y - rect.height)
+ );
+
+ const ripple = document.createElement('div');
+ ripple.style.cssText = `
+ position: absolute;
+ width: ${maxDistance * 2}px;
+ height: ${maxDistance * 2}px;
+ border-radius: 50%;
+ background: radial-gradient(circle, rgba(${glowColor}, 0.4) 0%, rgba(${glowColor}, 0.2) 30%, transparent 70%);
+ left: ${x - maxDistance}px;
+ top: ${y - maxDistance}px;
+ pointer-events: none;
+ z-index: 1000;
+ `;
+
+ element.appendChild(ripple);
+
+ gsap.fromTo(
+ ripple,
+ {
+ scale: 0,
+ opacity: 1
+ },
+ {
+ scale: 1,
+ opacity: 0,
+ duration: 0.8,
+ ease: 'power2.out',
+ onComplete: () => ripple.remove()
+ }
+ );
+ };
+
+ element.addEventListener('mouseenter', handleMouseEnter);
+ element.addEventListener('mouseleave', handleMouseLeave);
+ element.addEventListener('mousemove', handleMouseMove);
+ element.addEventListener('click', handleClick);
+
+ return () => {
+ isHoveredRef.current = false;
+ element.removeEventListener('mouseenter', handleMouseEnter);
+ element.removeEventListener('mouseleave', handleMouseLeave);
+ element.removeEventListener('mousemove', handleMouseMove);
+ element.removeEventListener('click', handleClick);
+ clearAllParticles();
+ };
+ }, [animateParticles, clearAllParticles, disableAnimations, enableTilt, enableMagnetism, clickEffect, glowColor]);
+
+ return (
+
+ {children}
+
+ );
+};
+
+const GlobalSpotlight = ({
+ gridRef,
+ disableAnimations = false,
+ enabled = true,
+ spotlightRadius = DEFAULT_SPOTLIGHT_RADIUS,
+ glowColor = DEFAULT_GLOW_COLOR
+}) => {
+ const spotlightRef = useRef(null);
+ const isInsideSection = useRef(false);
+
+ useEffect(() => {
+ if (disableAnimations || !gridRef?.current || !enabled) return;
+
+ const spotlight = document.createElement('div');
+ spotlight.className = 'global-spotlight';
+ spotlight.style.cssText = `
+ position: fixed;
+ width: 800px;
+ height: 800px;
+ border-radius: 50%;
+ pointer-events: none;
+ background: radial-gradient(circle,
+ rgba(${glowColor}, 0.15) 0%,
+ rgba(${glowColor}, 0.08) 15%,
+ rgba(${glowColor}, 0.04) 25%,
+ rgba(${glowColor}, 0.02) 40%,
+ rgba(${glowColor}, 0.01) 65%,
+ transparent 70%
+ );
+ z-index: 200;
+ opacity: 0;
+ transform: translate(-50%, -50%);
+ mix-blend-mode: screen;
+ `;
+ document.body.appendChild(spotlight);
+ spotlightRef.current = spotlight;
+
+ const handleMouseMove = e => {
+ if (!spotlightRef.current || !gridRef.current) return;
+
+ const section = gridRef.current.closest('.bento-section');
+ const rect = section?.getBoundingClientRect();
+ const mouseInside =
+ rect && e.clientX >= rect.left && e.clientX <= rect.right && e.clientY >= rect.top && e.clientY <= rect.bottom;
+
+ isInsideSection.current = mouseInside || false;
+ const cards = gridRef.current.querySelectorAll('.magic-bento-card');
+
+ if (!mouseInside) {
+ gsap.to(spotlightRef.current, {
+ opacity: 0,
+ duration: 0.3,
+ ease: 'power2.out'
+ });
+ cards.forEach(card => {
+ card.style.setProperty('--glow-intensity', '0');
+ });
+ return;
+ }
+
+ const { proximity, fadeDistance } = calculateSpotlightValues(spotlightRadius);
+ let minDistance = Infinity;
+
+ cards.forEach(card => {
+ const cardElement = card;
+ const cardRect = cardElement.getBoundingClientRect();
+ const centerX = cardRect.left + cardRect.width / 2;
+ const centerY = cardRect.top + cardRect.height / 2;
+ const distance =
+ Math.hypot(e.clientX - centerX, e.clientY - centerY) - Math.max(cardRect.width, cardRect.height) / 2;
+ const effectiveDistance = Math.max(0, distance);
+
+ minDistance = Math.min(minDistance, effectiveDistance);
+
+ let glowIntensity = 0;
+ if (effectiveDistance <= proximity) {
+ glowIntensity = 1;
+ } else if (effectiveDistance <= fadeDistance) {
+ glowIntensity = (fadeDistance - effectiveDistance) / (fadeDistance - proximity);
+ }
+
+ updateCardGlowProperties(cardElement, e.clientX, e.clientY, glowIntensity, spotlightRadius);
+ });
+
+ gsap.to(spotlightRef.current, {
+ left: e.clientX,
+ top: e.clientY,
+ duration: 0.1,
+ ease: 'power2.out'
+ });
+
+ const targetOpacity =
+ minDistance <= proximity
+ ? 0.8
+ : minDistance <= fadeDistance
+ ? ((fadeDistance - minDistance) / (fadeDistance - proximity)) * 0.8
+ : 0;
+
+ gsap.to(spotlightRef.current, {
+ opacity: targetOpacity,
+ duration: targetOpacity > 0 ? 0.2 : 0.5,
+ ease: 'power2.out'
+ });
+ };
+
+ const handleMouseLeave = () => {
+ isInsideSection.current = false;
+ gridRef.current?.querySelectorAll('.magic-bento-card').forEach(card => {
+ card.style.setProperty('--glow-intensity', '0');
+ });
+ if (spotlightRef.current) {
+ gsap.to(spotlightRef.current, {
+ opacity: 0,
+ duration: 0.3,
+ ease: 'power2.out'
+ });
+ }
+ };
+
+ document.addEventListener('mousemove', handleMouseMove);
+ document.addEventListener('mouseleave', handleMouseLeave);
+
+ return () => {
+ document.removeEventListener('mousemove', handleMouseMove);
+ document.removeEventListener('mouseleave', handleMouseLeave);
+ spotlightRef.current?.parentNode?.removeChild(spotlightRef.current);
+ };
+ }, [gridRef, disableAnimations, enabled, spotlightRadius, glowColor]);
+
+ return null;
+};
+
+const BentoCardGrid = ({ children, gridRef }) => (
+
+ {children}
+
+);
+
+const useMobileDetection = () => {
+ const [isMobile, setIsMobile] = useState(false);
+
+ useEffect(() => {
+ const checkMobile = () => setIsMobile(window.innerWidth <= MOBILE_BREAKPOINT);
+
+ checkMobile();
+ window.addEventListener('resize', checkMobile);
+
+ return () => window.removeEventListener('resize', checkMobile);
+ }, []);
+
+ return isMobile;
+};
+
+const MagicBento = ({
+ cards,
+ textAutoHide = true,
+ enableSpotlight = true,
+ disableAnimations = false,
+ spotlightRadius = DEFAULT_SPOTLIGHT_RADIUS,
+ particleCount = DEFAULT_PARTICLE_COUNT,
+ enableTilt = false,
+ glowColor = DEFAULT_GLOW_COLOR,
+ clickEffect = true,
+ enableMagnetism = true
+}) => {
+ const gridRef = useRef(null);
+ const isMobile = useMobileDetection();
+ const shouldDisableAnimations = disableAnimations || isMobile;
+
+ return (
+ <>
+ {enableSpotlight && (
+
+ )}
+
+
+ {(cards || APP_SERVICES).map((card, index) => {
+ const title = card.title;
+ const description = card.description || card.desc;
+ const label = card.label || card.badge;
+ const visual = card.visual;
+
+ const baseClassName = `magic-bento-card ${textAutoHide ? 'magic-bento-card--text-autohide' : ''}`;
+
+ return (
+
+
+
+ {visual && (
+
+ {visual}
+
+ )}
+
+
{title}
+
{description}
+
+
+
+ );
+ })}
+
+ >
+ );
+};
+
+export default MagicBento;
diff --git a/apps/landing/src/components/Navbar.astro b/apps/landing/src/components/Navbar.astro
new file mode 100644
index 000000000..094376866
--- /dev/null
+++ b/apps/landing/src/components/Navbar.astro
@@ -0,0 +1,104 @@
+---
+import { Zap, Box, Check, Terminal, Menu, X, ArrowRight } from 'lucide-react';
+
+const NAV_ITEMS = [
+ { label: 'Features', href: '/#client-services', icon: Zap },
+ { label: 'Use Cases', href: '/#use-cases', icon: Box },
+ { label: 'Pricing', href: '/pricing', icon: Check },
+ { label: 'Docs', href: 'https://docs.ub.bitbros.in', icon: Terminal, external: true }
+];
+---
+
+
+
+
+
+
+
+
diff --git a/apps/landing/src/components/OrbitSection.jsx b/apps/landing/src/components/OrbitSection.jsx
new file mode 100644
index 000000000..818df5aea
--- /dev/null
+++ b/apps/landing/src/components/OrbitSection.jsx
@@ -0,0 +1,415 @@
+import React from 'react';
+import { motion as Motion } from 'framer-motion';
+
+const COMPATIBLE_TECHNOLOGIES = [
+ // React
+ {
+ id: 'react',
+ label: 'React',
+ ring: 'inner',
+ cls: 'int-react',
+ type: 'Official SDK',
+ badge: '@urbackend/react',
+ desc: 'Connect your React applications seamlessly with our official React SDK. Equip your components with hooks, authentication providers, and state utilities.',
+ color: '#61DAFB',
+ svg: (
+
+
+
+
+
+
+
+
+ ),
+ code: `import { UrProvider, useUrCollection } from '@urbackend/react';\n\n// 1. Wrap your app\nfunction App() {\n return (\n \n \n \n );\n}\n\n// 2. Use reactive database hooks!\nfunction TodoList() {\n const { documents, loading } = useUrCollection('todos');\n return (\n \n {documents.map(todo => {todo.title} )}\n \n );\n}`
+ },
+ // Next.js
+ {
+ id: 'nextjs',
+ label: 'Next.js',
+ ring: 'inner',
+ cls: 'int-next',
+ type: 'React Framework',
+ badge: 'SDK + Server Actions',
+ desc: 'Build server-rendered React applications. Works beautifully with Next.js Server Components, Middleware auth checks, and Server Actions.',
+ color: '#ffffff',
+ svg: (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ),
+ code: `// Get server-side data in Server Components\nimport { createServerClient } from '@urbackend/sdk/server';\n\nexport default async function DashboardPage() {\n const ur = createServerClient({\n endpoint: 'https://api.ub.bitbros.in',\n apiKey: process.env.UR_PRIVATE_KEY\n });\n\n const { data: posts } = await ur.db('posts').find();\n\n return (\n \n {posts.map(post =>
{post.title} )}\n \n );\n}`
+ },
+ // Flutter
+ {
+ id: 'flutter',
+ label: 'Flutter',
+ ring: 'inner',
+ cls: 'int-flutter',
+ type: 'Mobile Framework',
+ badge: 'urbackend_sdk (Dart)',
+ desc: 'Build gorgeous, high-performance mobile apps. Sync local collections, authenticate users, and manage media uploads natively in Dart.',
+ color: '#02569B',
+ svg: (
+
+
+
+
+ ),
+ code: `import 'package:urbackend_sdk/urbackend_sdk.dart';\n\nvoid main() async {\n // Initialize urBackend client\n final client = UrClient(\n endpoint: 'https://api.ub.bitbros.in',\n projectId: 'proj_123',\n );\n\n // Authenticate user\n final session = await client.auth.signIn(\n email: 'user@example.com', \n password: 'secure_password'\n );\n\n print('Access Token: \${session.accessToken}');\n}`
+ },
+ // Vue
+ {
+ id: 'vue',
+ label: 'Vue.js',
+ ring: 'inner',
+ cls: 'int-vue',
+ type: 'Frontend Framework',
+ badge: '@urbackend/sdk (ESM)',
+ desc: 'Create highly responsive web experiences. Integrates natively with Vue 3 composition APIs, reactive ref/computed state, and Pinia stores.',
+ color: '#42B883',
+ svg: (
+
+
+
+
+ ),
+ code: `\n\n\n {{ item.name }}
\n `
+ },
+ // Webflow
+ {
+ id: 'webflow',
+ label: 'Webflow',
+ ring: 'inner',
+ cls: 'int-webflow',
+ type: 'Low-Code Web',
+ badge: 'Custom Script CDN',
+ desc: 'Add custom dynamic databases, member logic, and contact forms to Webflow designs without writing a single line of backend server code.',
+ color: '#4353FF',
+ svg: (
+
+
+
+ ),
+ code: `\n\n\n`
+ },
+ // React Native
+ {
+ id: 'react-native',
+ label: 'React Native',
+ ring: 'mid',
+ cls: 'int-react-native',
+ type: 'Mobile Framework',
+ badge: '@urbackend/react-native',
+ desc: 'Write beautiful native iOS and Android apps using React and Javascript. Supports secure AsyncStorage token persistence out-of-the-box.',
+ color: '#61DAFB',
+ svg: (
+
+
+
+
+
+
+
+
+ ),
+ code: `import { UrProvider } from '@urbackend/react';\nimport AsyncStorage from '@react-native-async-storage/async-storage';\n\n// Initialize with Native Storage for sessions\nfunction App() {\n return (\n \n \n \n );\n}`
+ },
+ // Dart
+ {
+ id: 'dart',
+ label: 'Dart',
+ ring: 'mid',
+ cls: 'int-dart',
+ type: 'Programming Language',
+ badge: 'REST API Wrapper',
+ desc: 'Build CLI utilities, server-side tools, or Flutter extensions using raw Dart. Fast JSON processing and asynchronous networking.',
+ color: '#00D2B8',
+ svg: (
+
+
+
+
+
+ ),
+ code: `import 'package:http/http.dart' as http;\nimport 'dart:convert';\n\nvoid main() async {\n final url = Uri.parse('https://api.ub.bitbros.in/v1/db/analytics');\n final response = await http.post(\n url,\n headers: { 'x-api-key': 'ur_sec_dart' },\n body: jsonEncode({ 'metric': 'system_boot', 'value': 1 }),\n );\n print(jsonDecode(response.body));\n}`
+ },
+ // Nuxt
+ {
+ id: 'nuxt',
+ label: 'Nuxt',
+ ring: 'mid',
+ cls: 'int-nuxt',
+ type: 'Vue Framework',
+ badge: 'Nuxt Module',
+ desc: 'Build fullstack server-rendered Vue 3 applications. Fully integrated with Nuxt server routes and asyncData fetching.',
+ color: '#00DC82',
+ svg: (
+
+
+
+ ),
+ code: `// server/api/users.ts\nimport { createClient } from '@urbackend/sdk';\n\nexport default defineEventHandler(async (event) => {\n const ur = createClient({\n endpoint: 'https://api.ub.bitbros.in',\n apiKey: process.env.UR_API_KEY\n });\n \n const users = await ur.collection('users').find();\n return { success: true, users };\n});`
+ },
+ // Python
+ {
+ id: 'python',
+ label: 'Python',
+ ring: 'mid',
+ cls: 'int-python',
+ type: 'Official SDK',
+ badge: 'urbackend-python',
+ desc: 'For script automation, machine learning pipelines, and backend processing. A simple, robust requests-based client wrapper.',
+ color: '#FFD43B',
+ svg: (
+
+
+
+
+ ),
+ code: `from urbackend import UrClient\n\n# Initialize Python Client\nclient = UrClient(\n endpoint="https://api.ub.bitbros.in",\n api_key="ur_sec_python_999"\n)\n\n# Insert documents in MongoDB\nnew_item = client.db("inventory").insert({\n "sku": "ITEM_XYZ",\n "quantity": 150,\n "location": "Warehouse A"\n})\n\nprint(f"Created doc with ID: {new_item['_id']}")`
+ },
+ // TypeScript
+ {
+ id: 'typescript',
+ label: 'TypeScript',
+ ring: 'mid',
+ cls: 'int-typescript',
+ type: 'Official SDK',
+ badge: '@urbackend/sdk (Typed)',
+ desc: 'Lightweight core package compiled for JS/TS. Enjoy autocomplete, model schema inference, and full compiler support.',
+ color: '#3178C6',
+ svg: (
+
+
+
+
+ ),
+ code: `import { UrClient, Document } from '@urbackend/sdk';\n\ninterface Order extends Document {\n item: string;\n total: number;\n}\n\nconst client = new UrClient({ endpoint: 'https://api.ub.bitbros.in' });\n\n// Auto-inferred typing on query responses\nconst { data } = await client.db('orders').findById('ord_999');\nconsole.log(data.item.toUpperCase());`
+ },
+ // Swift
+ {
+ id: 'swift',
+ label: 'Swift',
+ ring: 'mid',
+ cls: 'int-swift',
+ type: 'Native iOS',
+ badge: 'REST API Endpoint',
+ desc: 'Integrate native Apple ecosystems. Fast and optimized REST routing designed for modern iOS, macOS, watchOS, or visionOS Apps.',
+ color: '#F05138',
+ svg: (
+
+
+
+
+ ),
+ code: `import Foundation\n\nstruct User: Codable {\n let email: String\n}\n\nfunc fetchUser(userId: String) {\n let url = URL(string: "https://api.ub.bitbros.in/v1/db/users/\\(userId)")!\n var request = URLRequest(url: url)\n request.setValue("ur_sec_swift_key", forHTTPHeaderField: "x-api-key")\n \n URLSession.shared.dataTask(with: request) { data, _, _ in\n if let data = data {\n let user = try? JSONDecoder().decode(User.self, from: data)\n print("User: \\(user?.email ?? "")")\n }\n }.resume()\n}`
+ },
+ // Kotlin
+ {
+ id: 'kotlin',
+ label: 'Kotlin',
+ ring: 'outer',
+ cls: 'int-kotlin',
+ type: 'Native Android',
+ badge: 'REST API Client',
+ desc: 'Build powerful Android applications. Fetch collections, authorize users, and write logs natively inside Kotlin-based repositories.',
+ color: '#7F52FF',
+ svg: (
+
+
+
+ ),
+ code: `import okhttp3.OkHttpClient\nimport okhttp3.Request\n\nval client = OkHttpClient()\n\nfun loadData() {\n val request = Request.Builder()\n .url("https://api.ub.bitbros.in/v1/db/products")\n .addHeader("x-api-key", "ur_sec_kotlin")\n .build()\n\n client.newCall(request).execute().use { response ->\n println(response.body?.string())\n }\n}`
+ },
+ // Go
+ {
+ id: 'go',
+ label: 'Go',
+ ring: 'outer',
+ cls: 'int-go',
+ type: 'Backend Language',
+ badge: 'Net/HTTP API Calls',
+ desc: 'Connect performant microservices. urBackend gives Go services immediate read/write access to MongoDB instances over SSL endpoints.',
+ color: '#00ADD8',
+ svg: (
+
+
+
+
+ ),
+ code: `package main\n\nimport (\n "bytes"\n "fmt"\n "net/http"\n)\n\nfunc main() {\n jsonData := []byte(\`{"device_id": "sensor_01", "temp": 24.5}\`)\n req, _ := http.NewRequest("POST", "https://api.ub.bitbros.in/v1/db/telemetry", bytes.NewBuffer(jsonData))\n req.Header.Set("x-api-key", "ur_sec_golang")\n req.Header.Set("Content-Type", "application/json")\n\n client := &http.Client{}\n resp, _ := client.Do(req)\n fmt.Println("Status Code:", resp.StatusCode)\n}`
+ },
+ // Rust
+ {
+ id: 'rust',
+ label: 'Rust',
+ ring: 'outer',
+ cls: 'int-rust',
+ type: 'Systems Language',
+ badge: 'Async REST Crates',
+ desc: 'Integrate memory-safe microservices with urBackend. Fully asynchronous request bodies with low connection latency.',
+ color: '#FF6F30',
+ svg: (
+
+
+
+
+
+ ),
+ code: `use serde_json::json;\n\n#[tokio::main]\nasync fn main() -> Result<(), reqwest::Error> {\n let client = reqwest::Client::new();\n let body = json!({ "user_id": "usr_99", "status": "active" });\n\n let res = client.post("https://api.ub.bitbros.in/v1/db/sessions")\n .header("x-api-key", "ur_sec_rust")\n .json(&body)\n .send()\n .await?;\n\n println!("Response status: {}", res.status());\n Ok(())\n}`
+ },
+ // FastAPI
+ {
+ id: 'fastapi',
+ label: 'FastAPI',
+ ring: 'outer',
+ cls: 'int-fastapi',
+ type: 'Python Framework',
+ badge: 'HTTP Client Callouts',
+ desc: 'Combine local python microservices with urBackend datastores. Offload authentication and file storage flows with ease.',
+ color: '#009485',
+ svg: (
+
+
+
+ ),
+ code: `from fastapi import FastAPI, Depends\nimport httpx\n\napp = FastAPI()\n\n@app.get("/sync-data")\nasync def sync_data():\n async with httpx.AsyncClient() as client:\n res = await client.post(\n "https://api.ub.bitbros.in/v1/db/syncs",\n headers={"x-api-key": "ur_sec_fastapi"},\n json={"status": "completed"}\n )\n return res.json()`
+ },
+ // Node.js
+ {
+ id: 'node',
+ label: 'Node.js',
+ ring: 'outer',
+ cls: 'int-node',
+ type: 'Core SDK',
+ badge: '@urbackend/sdk (ESM/CJS)',
+ desc: 'Perform server-side orchestration. Manage document indexing, trigger email deliveries, and query buckets directly from Node.js scripts.',
+ color: '#339933',
+ svg: (
+
+
+
+ ),
+ code: `const { UrClient } = require('@urbackend/sdk');\n\n// Initialize with admin privileges\nconst ur = new UrClient({\n endpoint: 'https://api.ub.bitbros.in',\n apiKey: process.env.UR_ADMIN_KEY\n});\n\nasync function sendNewsletter() {\n const result = await ur.mail.send({\n template: 'newsletter',\n to: 'subscribers@domain.com',\n data: { week: '24' }\n });\n console.log('Emails dispatched:', result.success);\n}`
+ }
+];
+
+const ORBIT_INNER_TECH = COMPATIBLE_TECHNOLOGIES.filter((t) => t.ring === 'inner');
+const ORBIT_MID_TECH = COMPATIBLE_TECHNOLOGIES.filter((t) => t.ring === 'mid');
+const ORBIT_OUTER_TECH = COMPATIBLE_TECHNOLOGIES.filter((t) => t.ring === 'outer');
+
+export default function OrbitSection() {
+ return (
+
+
+
+ Ecosystem
+ Compatible with your favorite stack
+ Connect from any framework or platform. Enjoy official client SDKs, clean typed models, or direct REST connections.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {ORBIT_INNER_TECH.map((item, i, arr) => (
+
+
+
+ {item.svg}
+ {item.label}
+
+
+ ))}
+
+
+ {ORBIT_MID_TECH.map((item, i, arr) => (
+
+
+
+ {item.svg}
+ {item.label}
+
+
+ ))}
+
+
+ {ORBIT_OUTER_TECH.map((item, i, arr) => (
+
+
+
+ {item.svg}
+ {item.label}
+
+
+ ))}
+
+
+
+
+
+ );
+}
diff --git a/apps/landing/src/components/StudioReplay.jsx b/apps/landing/src/components/StudioReplay.jsx
new file mode 100644
index 000000000..27f058630
--- /dev/null
+++ b/apps/landing/src/components/StudioReplay.jsx
@@ -0,0 +1,127 @@
+import React, { useState, useEffect } from 'react';
+import { Database, Terminal, Code, Plus, Check, Cpu } from 'lucide-react';
+
+export default function StudioReplay() {
+ const [studioStep, setStudioStep] = useState(6);
+ const [replayKey, setReplayKey] = useState(1); // Start animating on mount
+
+ useEffect(() => {
+ let active = true;
+ const runAnimation = async () => {
+ setStudioStep(0);
+ const delays = [600, 600, 600, 700, 900, 800];
+ for (let i = 0; i < delays.length; i++) {
+ await new Promise((resolve) => setTimeout(resolve, delays[i]));
+ if (!active) return;
+ setStudioStep(i + 1);
+ }
+ };
+ runAnimation();
+ return () => {
+ active = false;
+ };
+ }, [replayKey]);
+
+ const triggerStudioReplay = () => {
+ setReplayKey((prev) => prev + 1);
+ };
+
+ return (
+
+
+
+
+
+
+
+
+
+ urBackend Studio
+
+
โป Replay
+
+
+
+
+
+ Collection Builder
+ UI Mode
+
+
+
+
+ NAME
+ TYPE
+ REQ
+
+
+
= 1 ? 'visible' : ''}`}>
+ name
+ String
+
+
+
= 2 ? 'visible' : ''}`}>
+ email
+ String
+
+
+
= 3 ? 'visible' : ''}`}>
+ role
+ String
+ โ
+
+
+
+
+
+
+
+
+
+ Generated APIs
+ endpoints
+
+
= 5 ? 'visible' : ''}`}>
+
+ GET
+ /api/users
+ 200 OK
+
+
+ POST
+ /api/users
+ 201 Created
+
+
+ GET
+ /api/users/:id
+ 200 OK
+
+
+ PUT
+ /api/users/:id
+ 200 OK
+
+
+ DELETE
+ /api/users/:id
+ 200 OK
+
+
+
+
+
+ );
+}
diff --git a/apps/landing/src/data/services.jsx b/apps/landing/src/data/services.jsx
new file mode 100644
index 000000000..8caf99c50
--- /dev/null
+++ b/apps/landing/src/data/services.jsx
@@ -0,0 +1,205 @@
+import React from 'react';
+import {
+ Database,
+ HardDrive,
+ CheckCircle,
+ Lock,
+ Activity,
+ Smartphone,
+ Mail,
+ UserRound,
+ Github
+} from 'lucide-react';
+
+export const APP_SERVICES = [
+ {
+ id: 'auth',
+ title: 'User Authentication',
+ badge: 'IDENTITY',
+ desc: 'Pre-configured secure login/signup flows, session handling with JWTs, and third-party login providers (GitHub, Google) with zero setup.',
+ icon: UserRound,
+ color: '#00f5d4',
+ visual: (
+
+
+
+
+
Sign in to App
+
+
+ Continue
+
+
+
+
+
+
+ )
+ },
+ {
+ id: 'db',
+ title: 'JSON Document Database',
+ badge: 'DATABASE',
+ desc: 'Direct database mutations and queries right from your client application. Automated validation schemas protect integrity at high speed.',
+ icon: Database,
+ color: '#FFBD2E',
+ visual: (
+
+
+
const user =
await db.
find (
'users' );
+
+
{"{"}
+
+ "id" : "usr_9x" ,
+ "active" : true ,
+ "role" : "member"
+
+
{"}"}
+
+
+
+ )
+ },
+ {
+ id: 'storage',
+ title: 'Secure File Storage',
+ badge: 'STORAGE',
+ desc: 'Upload, manage, and deliver media assets like avatars, documents, and videos directly. Integrated with bucket systems and global delivery networks.',
+ icon: HardDrive,
+ color: '#409EFF',
+ visual: (
+
+
+
+
+ media-uploads
+ 3 files
+
+
+
+
IMG
+
+ avatar.png
+ 1.4 MB
+
+
+
+
+
DOC
+
+ invoice_q4.pdf
+ 340 KB
+
+
+
+
+
VID
+
+ demo_clip.mp4
+
+ Uploadingโฆ
+ Done โข 12 MB
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+ },
+ {
+ id: 'mail',
+ title: 'Transactional Mailer',
+ badge: 'COMMUNICATION',
+ desc: 'Pre-wired email dispatchers for user verification, password recovery, and system notifications. Customize layouts using pre-made email templates.',
+ icon: Mail,
+ color: '#00e676',
+ visual: (
+
+
+
+
+ verify@urbackend.com
+
+
+
Welcome! Please verify email
+
Verify Account
+
+
+ โ Sending...
+ โ Sent successfully
+
+
+
+ )
+ },
+ {
+ id: 'security',
+ title: 'Row-Level Security',
+ badge: 'SECURITY',
+ desc: 'Fine-grained read/write security configurations. Restrict access directly inside public-api based on document ownership and user authentication tokens.',
+ icon: Lock,
+ color: '#a855f7',
+ visual: (
+
+
RLS ENFORCED
+
+
policy "owner-write-only"
+
allow write: if owner == auth.id
+
allow read: if public
+
+
+ )
+ },
+ {
+ id: 'realtime',
+ title: 'Realtime Broadcast',
+ badge: 'REALTIME',
+ desc: 'Listen to database mutations instantly or broadcast custom events across clients using low-latency WebSocket connections.',
+ icon: Activity,
+ color: '#FF5F56',
+ visual: (
+
+
+
+
+ Client A
+
+
+
+
+ Client B
+
+
CONNECTED
+
+
+ )
+ }
+];
diff --git a/apps/landing/src/layouts/Base.astro b/apps/landing/src/layouts/Base.astro
new file mode 100644
index 000000000..62bb3326d
--- /dev/null
+++ b/apps/landing/src/layouts/Base.astro
@@ -0,0 +1,55 @@
+---
+interface Props {
+ title: string;
+ description: string;
+ canonicalUrl?: string;
+ ogImage?: string;
+}
+const { title, description, canonicalUrl, ogImage } = Astro.props;
+import '../styles/landing.css';
+---
+
+
+
+
+
+
+ {title}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {canonicalUrl && }
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/landing/src/pages/index.astro b/apps/landing/src/pages/index.astro
new file mode 100644
index 000000000..f71d30376
--- /dev/null
+++ b/apps/landing/src/pages/index.astro
@@ -0,0 +1,446 @@
+---
+import BaseLayout from '../layouts/Base.astro';
+import Navbar from '../components/Navbar.astro';
+import Footer from '../components/Footer.astro';
+import Hyperspeed from '../components/Hyperspeed/Hyperspeed.jsx';
+import MagicBento from '../components/MagicBento/MagicBento.jsx';
+import StudioReplay from '../components/StudioReplay.jsx';
+import OrbitSection from '../components/OrbitSection.jsx';
+import { ArrowRight, Terminal, Database, HardDrive, Zap, Layers, Smartphone, Globe as GlobeIcon, Code, ChevronDown, ChevronUp } from 'lucide-react';
+
+const HYPERSPEED_OPTIONS = {
+ distortion: 'turbulentDistortion',
+ length: 400,
+ roadWidth: 10,
+ islandWidth: 2,
+ lanesPerRoad: 3,
+ fov: 90,
+ fovSpeedUp: 150,
+ speedUp: 2,
+ carLightsFade: 0.4,
+ totalSideLightSticks: 20,
+ lightPairsPerRoadWay: 40,
+ shoulderLinesWidthPercentage: 0.05,
+ brokenLinesWidthPercentage: 0.1,
+ brokenLinesLengthPercentage: 0.5,
+ lightStickWidth: [0.12, 0.5],
+ lightStickHeight: [1.3, 1.7],
+ movingAwaySpeed: [60, 80],
+ movingCloserSpeed: [-120, -160],
+ carLightsLength: [12, 80],
+ carLightsRadius: [0.05, 0.14],
+ carWidthPercentage: [0.3, 0.5],
+ carShiftX: [-0.8, 0.8],
+ carFloorSeparation: [0, 5],
+ colors: {
+ roadColor: 0x080808,
+ islandColor: 0x0a0a0a,
+ background: 0x000000,
+ shoulderLines: 0x00f5d4,
+ brokenLines: 0x00f5d4,
+ leftCars: [0x00f5d4, 0x00ffd8, 0x00b4ab],
+ rightCars: [0x00f5d4, 0x028090, 0x00ffd8],
+ sticks: 0x00f5d4
+ }
+};
+
+const FAQ_ITEMS = [
+ { q: 'Is it really free?', a: 'Yes. The Developer Beta tier is permanently free โ create a project, connect your MongoDB cluster, and ship APIs with no credit card required.' },
+ { q: 'Is urBackend production-ready?', a: 'We are currently in Public Beta and actively testing with real-world use cases. While the core architecture is built on battle-tested technologies like Express.js and MongoDB, we recommend using it for side projects, MVPs, and internal tools as we continue to refine the platform.' },
+ { q: 'Can I use this with React or Next.js?', a: 'Yes. urBackend outputs standard REST APIs that work with any frontend or mobile framework. For Next.js, call the API from server-side routes to keep your API key secure.' },
+ { q: 'How does it handle security?', a: 'Industry-standard encryption at rest, automatic API key validation, JWT-based user sessions with refresh token rotation, and row-level security enforced on every read and write.' },
+ { q: 'Can I export my data?', a: 'Your data is yours. Since you connect your own MongoDB cluster, you always have direct access. Export at any time โ no lock-in.' },
+ { q: 'What is BYOM?', a: 'Bring Your Own MongoDB. Instead of using our managed cluster, you point urBackend at your existing Atlas or self-hosted MongoDB instance. You keep full ownership of the data while we provide the API layer, auth, and schema validation on top.' }
+];
+---
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
v0.10.1 — Now in Public Beta
+
+
+
+ Supabase for NoSQL.
+
+ Bring your MongoDB, get instant APIs.
+
+
+
+ urBackend is an open-source BaaS that turns your MongoDB into a production-ready backend
+ with REST APIs , authentication , file storage , and email โ zero backend code.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Infrastructure
+
Bring Your Own Infrastructure
+
Connect your existing MongoDB or buckets and get instant APIs without vendor lock-in.
+
+
+
+
+
+
+
+
Your Database
+
MongoDB Atlas / Self-Hosted
+
+
+
+
+
+
+
+
urBackend Engine
+
BaaS Middleware Layer
+
+
+
+
+
+
+
+
Instant APIs
+
REST ยท Auth ยท Storage ยท Email
+
+
+
+
+
+
+
+
+
+
+
+
+
+
BYO Database
+
+ Connect your self-hosted MongoDB or Atlas cluster. We provide the instant API layer, auth, and validation schema, while you keep full ownership of the data.
+
+
+ MongoDB Atlas
+ Self-Hosted
+
+
+
+
+
+
+
+
+
BYO Storage
+
+ Link your Supabase Storage, AWS S3, or Cloudflare R2 buckets. We handle upload tokens, permissions, and CDN delivery automatically.
+
+
+ Supabase
+ AWS S3
+ Cloudflare R2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Backend Architecture, Simplified.
+
We handle the complex infrastructure so you can ship professional apps faster.
+
+
+
+
+
1
+
Init Project
+
+ Instantly provision a dedicated, isolated backend environment.
+ We set up your MongoDB cluster, Storage buckets, and API Gateway automatically.
+
+
+
+
2
+
Design Schema
+
+ Use our Visual Builder to model your data.
+ We strictly validate your JSON Schema and handle complex relationships behind the scenes.
+
+
+
+
3
+
Connect API
+
+ Your secure REST endpoints are live instantly.
+ Connect from React, Vue, or Mobile apps using standard HTTP methods with low latency.
+
+
+
+
+
+
+
+
+
+
+
Build Anything.
+
Scalable infrastructure for every type of application.
+
+
+
+
+
+
SaaS Platforms
+
Handle complex data relationships, multi-tenant auth, and subscriptions securely.
+
+
+
+
Mobile Backends
+
Serve data to Flutter or React Native apps with lightweight, fast JSON responses.
+
+
+
+
Content Sites
+
Power blogs, portfolios, and e-commerce catalogs without CMS bloat.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Common Questions
+
+
+
+ {FAQ_ITEMS.map((faq, index) => (
+
+ ))}
+
+
+
+
+
+
+
+
+
+ Start Building Today
+
+
+
Ship faster. Scale smarter.
+
+
+ Your MongoDB. Instant REST APIs. Built-in Auth. Zero backend hassle.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/landing/src/pages/pricing.astro b/apps/landing/src/pages/pricing.astro
new file mode 100644
index 000000000..b43335f39
--- /dev/null
+++ b/apps/landing/src/pages/pricing.astro
@@ -0,0 +1,94 @@
+---
+import BaseLayout from '../layouts/Base.astro';
+import Navbar from '../components/Navbar.astro';
+import Footer from '../components/Footer.astro';
+import { Check } from 'lucide-react';
+
+const FREE_FEATURES = [
+ '1 Project',
+ '5 Collections per project',
+ '2,000 API requests / day',
+ '10MB File Storage',
+ '200 Auth Users',
+ '25 Emails / month',
+ 'Global email templates',
+ 'Community support',
+];
+
+const PRO_FEATURES = [
+ '10 Projects',
+ 'Unlimited collections',
+ 'Unlimited API requests',
+ 'Unlimited Auth Users',
+ 'Unlimited Webhooks',
+ 'External Database (BYOM)',
+ 'Bring your own Storage (S3/R2)',
+ '1,000 Emails / month',
+ 'Custom HTML email templates',
+ 'BYOK โ own API keys',
+ 'Analytics Pro',
+ 'AI integrations (OpenAI, Groq)',
+ 'Priority support',
+];
+---
+
+
+
+
+
+
+
+
Simple pricing for every stage
+
+
+
+
+ Free
+ Developer Beta
+
+ $0
+ /mo
+
+ Perfect for side projects, MVPs, and learning.
+
+ {FREE_FEATURES.map((feature) => (
+
+
+ {feature}
+
+ ))}
+
+
+ Start for Free
+
+
+
+
+ Pro (Beta)
+ Pro
+
+ $9
+ /mo
+
+ Try now free for a month
+
+ {PRO_FEATURES.map((feature) => (
+
+
+ {feature}
+
+ ))}
+
+
+ Get 1 month Pro for free
+
+
+
+
+
+
+
+
diff --git a/apps/landing/src/styles/landing.css b/apps/landing/src/styles/landing.css
new file mode 100644
index 000000000..978d1e6ab
--- /dev/null
+++ b/apps/landing/src/styles/landing.css
@@ -0,0 +1,4278 @@
+/* --- GLOBAL & LANDING STYLES --- */
+body {
+ margin: 0;
+ padding: 0;
+ background-color: #030303;
+}
+
+body, .landing-page, .pricing-page {
+ font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
+ -webkit-font-smoothing: antialiased;
+}
+
+.landing-page {
+ --nav-height: 70px;
+ background-color: #030303;
+ color: #fcfcfc;
+ overflow-x: hidden;
+ letter-spacing: -0.01em;
+ line-height: 1.6;
+ position: relative;
+ scrollbar-width: none;
+ -ms-overflow-style: none;
+}
+
+.landing-page::-webkit-scrollbar {
+ display: none;
+}
+
+html:has(.landing-page),
+body:has(.landing-page) {
+ scrollbar-width: none;
+ -ms-overflow-style: none;
+}
+
+html:has(.landing-page)::-webkit-scrollbar,
+body:has(.landing-page)::-webkit-scrollbar {
+ display: none;
+}
+
+/* Text Selection Color */
+::selection {
+ background: #00f5d4;
+ color: #000;
+}
+
+::-moz-selection {
+ background: #00f5d4;
+ color: #000;
+}
+
+/* GRID & GLOWS */
+.grid-bg {
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ height: 100vh;
+ z-index: 0;
+ pointer-events: none;
+ overflow: hidden;
+}
+
+/* Static dot pattern */
+.hero-lines {
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background-image: radial-gradient(circle, rgba(255, 255, 255, 0.05) 1px, transparent 1px);
+ background-size: 40px 40px;
+ opacity: 0.4;
+ mask-image: radial-gradient(ellipse 80% 60% at 50% 40%, black 20%, transparent 80%);
+}
+
+/* Hide particles */
+.hero-particles {
+ display: none;
+}
+
+.hero-glow {
+ position: absolute;
+ top: -15%;
+ left: 50%;
+ transform: translateX(-50%);
+ width: 900px;
+ height: 900px;
+ background: radial-gradient(circle, rgba(0, 245, 212, 0.06) 0%, rgba(0, 200, 180, 0.03) 40%, transparent 70%);
+ border-radius: 50%;
+ filter: blur(120px);
+ z-index: 0;
+ pointer-events: none;
+ animation: pulseGlow 10s ease-in-out infinite alternate;
+}
+
+.section-glow {
+ position: absolute;
+ width: 800px;
+ height: 800px;
+ background: radial-gradient(circle, rgba(0, 245, 212, 0.08) 0%, transparent 70%);
+ border-radius: 50%;
+ filter: blur(100px);
+ z-index: 0;
+ pointer-events: none;
+}
+
+@keyframes pulseGlow {
+ 0% { transform: translateX(-50%) scale(1); opacity: 0.8; }
+ 100% { transform: translateX(-50%) scale(1.1); opacity: 1; }
+}
+
+/* NAVBAR */
+.nav-glass {
+ background: rgba(10, 8, 15, 0.5);
+ backdrop-filter: blur(20px);
+ -webkit-backdrop-filter: blur(20px);
+ border: 1px solid rgba(255, 255, 255, 0.08);
+ position: fixed;
+ top: 1.5rem;
+ left: 50%;
+ transform: translateX(-50%);
+ z-index: 100;
+ transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
+ width: calc(100% - 3rem);
+ max-width: 1200px;
+ border-radius: 99px;
+ box-shadow:
+ 0 10px 40px rgba(0, 0, 0, 0.5),
+ inset 0 1px 0 rgba(255, 255, 255, 0.15),
+ inset 0 -1px 0 rgba(0, 0, 0, 0.3);
+}
+
+.nav-scrolled {
+ background: rgba(8, 6, 12, 0.82);
+ border: 1px solid rgba(0, 245, 212, 0.2);
+ box-shadow:
+ 0 15px 50px rgba(0, 0, 0, 0.7),
+ inset 0 1px 0 rgba(255, 255, 255, 0.1),
+ 0 0 15px rgba(0, 245, 212, 0.05);
+ top: 0.75rem;
+ width: calc(100% - 2rem);
+}
+
+.nav-hidden {
+ transform: translate(-50%, -150%);
+}
+
+.nav-container {
+ max-width: 100%;
+ margin: 0;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ padding: 0.5rem 1.5rem 0.5rem 2rem;
+ gap: 1.5rem;
+}
+
+@media (min-width: 1201px) {
+ .nav-container {
+ display: grid;
+ grid-template-columns: 1fr auto 1fr;
+ align-items: center;
+ }
+
+ .nav-logo {
+ justify-self: start;
+ }
+
+ .nav-links {
+ justify-self: center;
+ }
+
+ .nav-actions {
+ justify-self: end;
+ }
+}
+
+.nav-logo {
+ display: flex;
+ align-items: center;
+ gap: 0.75rem;
+ flex-shrink: 0;
+}
+
+.nav-logo img {
+ height: 32px;
+ width: auto;
+}
+
+.nav-logo-text {
+ font-size: 1.2rem;
+ font-weight: 800;
+ background: linear-gradient(135deg, #ffffff 40%, #a3a1a8 100%);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ letter-spacing: -0.025em;
+ text-shadow: 0 2px 10px rgba(0,0,0,0.3);
+}
+
+.nav-links {
+ display: flex;
+ align-items: center;
+ gap: 0.25rem;
+}
+
+.nav-link {
+ display: flex;
+ align-items: center;
+ gap: 0.45rem;
+ padding: 0.5rem 1.25rem;
+ color: #9e9ba5;
+ text-decoration: none;
+ font-size: 0.88rem;
+ font-weight: 500;
+ border-radius: 99px;
+ border: 1px solid transparent;
+ transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
+}
+
+.nav-link:hover {
+ color: #00f5d4;
+ background: rgba(0, 245, 212, 0.06);
+ border-color: rgba(0, 245, 212, 0.1);
+ box-shadow: 0 0 12px rgba(0, 245, 212, 0.05);
+}
+
+.nav-link svg {
+ opacity: 0.75;
+ transition: all 0.3s ease;
+}
+
+.nav-link:hover svg {
+ transform: translateY(-1px);
+ color: #00f5d4;
+ opacity: 1;
+}
+
+.nav-link.active {
+ color: #00f5d4 !important;
+ background: transparent !important;
+ border-color: transparent !important;
+ font-weight: 600;
+ box-shadow: none !important;
+}
+
+.nav-link.active svg {
+ color: #00f5d4 !important;
+ opacity: 1;
+}
+
+.nav-actions {
+ display: flex;
+ align-items: center;
+ gap: 0.5rem;
+ flex-shrink: 0;
+}
+
+.nav-btn-ghost {
+ padding: 0.45rem 1.25rem;
+ color: #9e9ba5;
+ text-decoration: none;
+ font-size: 0.88rem;
+ font-weight: 500;
+ border-radius: 99px;
+ border: 1px solid transparent;
+ transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
+}
+
+.nav-btn-ghost:hover {
+ color: #fff;
+ background: rgba(255, 255, 255, 0.06);
+ border-color: rgba(255, 255, 255, 0.05);
+}
+
+.nav-btn-primary {
+ display: flex;
+ align-items: center;
+ gap: 0.4rem;
+ padding: 0.5rem 1.35rem;
+ background: linear-gradient(135deg, #00f5d4 0%, #00ffd8 100%);
+ color: #0c0a0f !important;
+ text-decoration: none;
+ font-size: 0.88rem;
+ font-weight: 600;
+ border-radius: 99px;
+ border: none;
+ cursor: pointer;
+ transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
+ box-shadow: 0 4px 12px rgba(0, 245, 212, 0.2);
+}
+
+.nav-btn-primary:hover {
+ transform: translateY(-1px);
+ box-shadow: 0 6px 16px rgba(0, 245, 212, 0.35);
+ background: linear-gradient(135deg, #00ffd8 0%, #00ffd8 100%);
+ color: #0c0a0f !important;
+}
+
+.nav-btn-primary svg,
+.nav-btn-primary:hover svg {
+ color: #0c0a0f !important;
+}
+
+.mobile-menu-btn {
+ display: none;
+ background: none;
+ border: none;
+ color: #fff;
+ cursor: pointer;
+ padding: 0.5rem;
+}
+
+@media (max-width: 1200px) {
+ .nav-links {
+ display: none !important;
+ }
+
+ .mobile-menu-btn {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+
+ .nav-btn-ghost {
+ display: none;
+ }
+
+ .nav-container {
+ display: flex;
+ justify-content: space-between;
+ padding: 0.6rem 1rem;
+ }
+}
+
+@media (max-width: 640px) {
+ .nav-actions .nav-btn-primary {
+ display: none;
+ }
+
+ .nav-glass {
+ width: calc(100% - 1.5rem);
+ top: 1rem;
+ }
+
+ .nav-scrolled {
+ width: calc(100% - 1rem);
+ top: 0.5rem;
+ }
+
+ .nav-logo img {
+ height: 32px;
+ }
+}
+
+/* TEXT GRADIENTS & UTILS */
+.text-gradient {
+ background: linear-gradient(to bottom right, #ffffff 0%, #a1a1aa 100%);
+ -webkit-background-clip: text;
+ background-clip: text;
+ -webkit-text-fill-color: transparent;
+}
+
+.text-gradient-primary {
+ background: linear-gradient(to bottom right, #00f5d4 0%, #00d9b4 100%);
+ -webkit-background-clip: text;
+ background-clip: text;
+ -webkit-text-fill-color: transparent;
+ filter: drop-shadow(0 0 10px rgba(0, 245, 212, 0.3));
+}
+
+.section-badge {
+ display: inline-block;
+ padding: 0.35rem 0.9rem;
+ background: rgba(0,245,212,0.06);
+ border: 1px solid rgba(0,245,212,0.12);
+ border-radius: 20px;
+ font-size: 0.72rem;
+ font-weight: 600;
+ color: #00f5d4;
+ letter-spacing: 0.08em;
+ text-transform: uppercase;
+ margin-bottom: 1rem;
+}
+
+.section-title {
+ font-size: 2.5rem;
+ font-weight: 700;
+ margin-bottom: 1rem;
+ letter-spacing: -0.03em;
+ background: linear-gradient(to bottom right, #fff 0%, #a1a1aa 100%);
+ -webkit-background-clip: text;
+ background-clip: text;
+ -webkit-text-fill-color: transparent;
+}
+
+.section-desc {
+ font-size: 1.125rem;
+ color: #a1a1aa;
+ line-height: 1.6;
+ max-width: 600px;
+ margin: 0 auto;
+ font-weight: 400;
+}
+
+/* HERO BUTTONS */
+.btn-hero-primary {
+ background: linear-gradient(135deg, #00f5d4 0%, #00c9a7 100%);
+ color: #000;
+ padding: 0.85rem 2.5rem;
+ font-size: 1.05rem;
+ border-radius: 99px;
+ font-weight: 600;
+ text-decoration: none;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ gap: 8px;
+ box-shadow: 0 4px 24px rgba(0, 245, 212, 0.25), inset 0 1px 2px rgba(255,255,255,0.3);
+ transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
+ border: none;
+}
+
+.btn-hero-primary:hover {
+ transform: translateY(-2px);
+ box-shadow: 0 8px 32px rgba(0, 245, 212, 0.4), inset 0 1px 2px rgba(255,255,255,0.4);
+ background: linear-gradient(135deg, #00ffdd 0%, #00d9b4 100%);
+}
+
+.btn-hero-secondary {
+ background: rgba(255,255,255,0.04);
+ color: #fff;
+ padding: 0.85rem 2.5rem;
+ font-size: 1.05rem;
+ border-radius: 99px;
+ font-weight: 600;
+ text-decoration: none;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ border: 1px solid rgba(255,255,255,0.1);
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
+ box-shadow: inset 0 1px 0 rgba(255,255,255,0.05);
+}
+
+.btn-hero-secondary:hover {
+ background: rgba(255,255,255,0.08);
+ border-color: rgba(255,255,255,0.25);
+ transform: translateY(-2px);
+}
+
+.hero-ctas {
+ display: flex;
+ gap: 1rem;
+ flex-wrap: wrap;
+ justify-content: center;
+ z-index: 10;
+ position: relative;
+}
+
+.btn-hero-login {
+ padding: 0.85rem 2rem;
+ font-size: 1.05rem;
+ border-radius: 99px;
+ font-weight: 600;
+ text-decoration: none;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ border: 1px solid rgba(255,255,255,0.15);
+ color: #fff;
+ background: rgba(255,255,255,0.05);
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
+ box-shadow: inset 0 1px 0 rgba(255,255,255,0.05);
+}
+
+.btn-hero-login:hover {
+ background: rgba(255,255,255,0.1);
+ border-color: rgba(255,255,255,0.3);
+ transform: translateY(-2px);
+}
+
+.btn-hero-ghost {
+ padding: 0.85rem 1.5rem;
+ font-size: 1rem;
+ border-radius: 99px;
+ font-weight: 500;
+ text-decoration: none;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ color: #888;
+ transition: all 0.3s ease;
+}
+
+.btn-hero-ghost:hover {
+ color: #fff;
+ transform: translateY(-2px);
+}
+
+/* HERO SPLIT LAYOUT */
+.hero-section {
+ --hero-nav-offset: calc(1.5rem + var(--nav-height, 70px) + 0.5rem);
+ position: relative;
+ min-height: 100svh;
+ box-sizing: border-box;
+ padding: var(--hero-nav-offset) 1.5rem 2.5rem;
+ z-index: 1;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin-top: 0;
+}
+
+@media (max-width: 1200px) {
+ .hero-section {
+ --hero-nav-offset: calc(1rem + var(--nav-height, 70px) + 0.5rem);
+ padding-bottom: 2rem;
+ }
+}
+
+@media (max-width: 768px) {
+ .hero-section {
+ --hero-nav-offset: calc(1rem + var(--nav-height, 70px) + 0.25rem);
+ min-height: calc(100svh - 1rem);
+ padding-bottom: 1.5rem;
+ }
+}
+
+.hero-split {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ text-align: center;
+ gap: 2rem;
+ max-width: 900px;
+ width: 100%;
+ position: relative;
+ z-index: 1;
+}
+
+.hero-split-left {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ text-align: center;
+ width: 100%;
+}
+
+.hero-split-left .status-pill {
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.hero-split-left .hero-heading {
+ margin-left: auto;
+ margin-right: auto;
+ text-align: center;
+ font-size: clamp(2.5rem, 5.5vw, 4.25rem);
+ line-height: 1.15;
+ max-width: 850px;
+}
+
+.hero-split-left .hero-sub {
+ margin-left: auto;
+ margin-right: auto;
+ text-align: center;
+ max-width: 620px;
+ font-size: 1.15rem;
+}
+
+.hero-split-left .hero-flow {
+ margin-top: 2.5rem;
+ justify-content: center;
+ max-width: 700px;
+ padding: 0;
+}
+
+/* HERO AUTH CARD */
+.hero-split-right {
+ width: 100%;
+}
+
+.hero-auth-card {
+ background: rgba(255,255,255,0.03);
+ border: 1px solid rgba(255,255,255,0.08);
+ border-radius: 16px;
+ padding: 1.75rem;
+ box-shadow: 0 24px 48px -12px rgba(0,0,0,0.5), inset 0 1px 0 rgba(255,255,255,0.05);
+ backdrop-filter: blur(12px);
+}
+
+.hero-auth-tabs {
+ display: flex;
+ background: rgba(255,255,255,0.04);
+ border-radius: 10px;
+ padding: 3px;
+ margin-bottom: 1.5rem;
+ border: 1px solid rgba(255,255,255,0.06);
+}
+
+.hero-auth-tab {
+ flex: 1;
+ padding: 0.6rem 1rem;
+ border: none;
+ border-radius: 8px;
+ background: transparent;
+ color: #888;
+ font-size: 0.9rem;
+ font-weight: 600;
+ cursor: pointer;
+ transition: all 0.2s ease;
+}
+
+.hero-auth-tab.active {
+ background: rgba(0, 245, 212, 0.1);
+ color: #00f5d4;
+ box-shadow: 0 0 12px rgba(0, 245, 212, 0.08);
+}
+
+.hero-auth-form {
+ display: flex;
+ flex-direction: column;
+ gap: 0.9rem;
+}
+
+.hero-auth-github {
+ width: 100%;
+ padding: 0.7rem 1rem;
+ border-radius: 10px;
+ border: 1px solid rgba(255,255,255,0.12);
+ background: rgba(255,255,255,0.04);
+ color: #fff;
+ font-size: 0.9rem;
+ font-weight: 600;
+ cursor: pointer;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ gap: 8px;
+ transition: all 0.2s ease;
+}
+
+.hero-auth-github:hover {
+ background: rgba(255,255,255,0.08);
+ border-color: rgba(255,255,255,0.25);
+}
+
+.hero-auth-divider {
+ position: relative;
+ text-align: center;
+ color: #555;
+ font-size: 0.75rem;
+ text-transform: uppercase;
+ letter-spacing: 0.15em;
+ margin: 0.1rem 0;
+}
+
+.hero-auth-divider::before,
+.hero-auth-divider::after {
+ content: '';
+ position: absolute;
+ top: 50%;
+ width: calc(50% - 1.5rem);
+ height: 1px;
+ background: rgba(255,255,255,0.08);
+}
+
+.hero-auth-divider::before { left: 0; }
+.hero-auth-divider::after { right: 0; }
+
+.hero-auth-field {
+ display: flex;
+ flex-direction: column;
+ gap: 0.35rem;
+}
+
+.hero-auth-field label {
+ font-size: 0.8rem;
+ color: #aaa;
+ font-weight: 600;
+}
+
+.hero-auth-input-wrap {
+ position: relative;
+ display: flex;
+ align-items: center;
+}
+
+.hero-auth-input-wrap > svg {
+ position: absolute;
+ left: 12px;
+ color: #666;
+ pointer-events: none;
+}
+
+.hero-auth-input-wrap input {
+ width: 100%;
+ padding: 0.7rem 2.4rem 0.7rem 2.3rem;
+ border-radius: 10px;
+ border: 1px solid rgba(255,255,255,0.1);
+ background: rgba(0,0,0,0.3);
+ color: #fff;
+ font-size: 0.9rem;
+ outline: none;
+ transition: all 0.2s ease;
+}
+
+.hero-auth-input-wrap input:focus {
+ border-color: rgba(0, 245, 212, 0.4);
+ box-shadow: 0 0 0 3px rgba(0, 245, 212, 0.06);
+}
+
+.hero-auth-input-wrap input::placeholder {
+ color: #555;
+}
+
+.hero-auth-toggle {
+ position: absolute;
+ right: 8px;
+ width: 30px;
+ height: 30px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ border: none;
+ border-radius: 6px;
+ background: transparent;
+ color: #666;
+ cursor: pointer;
+ transition: all 0.2s ease;
+}
+
+.hero-auth-toggle:hover {
+ background: rgba(255,255,255,0.05);
+ color: #fff;
+}
+
+.hero-auth-forgot {
+ font-size: 0.8rem;
+ color: #00f5d4;
+ text-decoration: none;
+ font-weight: 500;
+ align-self: flex-end;
+ margin-top: -0.3rem;
+}
+
+.hero-auth-forgot:hover {
+ text-decoration: underline;
+}
+
+.hero-auth-submit {
+ width: 100%;
+ padding: 0.75rem 1rem;
+ border-radius: 10px;
+ border: none;
+ background: linear-gradient(135deg, #00f5d4 0%, #00c9a7 100%);
+ color: #000;
+ font-size: 0.95rem;
+ font-weight: 700;
+ cursor: pointer;
+ transition: all 0.3s ease;
+ box-shadow: 0 4px 20px rgba(0, 245, 212, 0.2);
+ margin-top: 0.2rem;
+}
+
+.hero-auth-submit:hover {
+ transform: translateY(-1px);
+ box-shadow: 0 6px 24px rgba(0, 245, 212, 0.3);
+}
+
+.hero-auth-submit:disabled {
+ opacity: 0.6;
+ cursor: not-allowed;
+ transform: none;
+}
+
+@media(max-width: 1024px) {
+ .hero-split {
+ grid-template-columns: 1fr;
+ gap: 2rem;
+ }
+
+ .hero-split-left {
+ align-items: center;
+ text-align: center;
+ }
+
+ .hero-split-left .status-pill {
+ margin-left: auto;
+ }
+
+ .hero-split-left .hero-heading {
+ text-align: center;
+ }
+
+ .hero-split-left .hero-sub {
+ text-align: center;
+ margin-left: auto;
+ margin-right: auto;
+ }
+
+ .hero-split-left .hero-flow {
+ justify-content: center;
+ }
+
+ .hero-split-right {
+ max-width: 420px;
+ margin: 0 auto;
+ width: 100%;
+ }
+}
+
+/* HERO */
+
+.status-pill {
+ background: rgba(255, 255, 255, 0.04);
+ border: 1px solid rgba(255, 255, 255, 0.12);
+ padding: 8px 18px;
+ border-radius: 9999px;
+ font-family: inherit;
+ font-size: 0.75rem;
+ color: #999;
+ margin-bottom: 1rem;
+ display: flex;
+ align-items: center;
+ gap: 10px;
+ letter-spacing: 0.05em;
+ backdrop-filter: blur(8px);
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
+}
+
+.status-dot {
+ width: 8px;
+ height: 8px;
+ background: #4ade80;
+ border-radius: 50%;
+ box-shadow: 0 0 10px #4ade80;
+ animation: pulse-dot 2s infinite;
+}
+
+@keyframes pulse-dot {
+ 0% { transform: scale(1); opacity: 1; }
+ 50% { transform: scale(1.2); opacity: 0.5; }
+ 100% { transform: scale(1); opacity: 1; }
+}
+
+.hero-heading {
+ font-size: clamp(2rem, 4.7vw, 3.6rem);
+ font-weight: 800;
+ line-height: 1.1;
+ letter-spacing: -0.04em;
+ margin-bottom: 1.2rem;
+ color: #fff;
+ max-width: 800px;
+ margin-left: auto;
+ margin-right: auto;
+ text-shadow: 0 2px 40px rgba(255, 255, 255, 0.1);
+}
+
+.shine-text {
+ background: linear-gradient(110deg, #fff 0%, #fff 40%, #00f5d4 48%, #00d9b4 50%, #00f5d4 52%, #fff 60%, #fff 100%);
+ background-size: 200% 100%;
+ -webkit-background-clip: text;
+ background-clip: text;
+ color: transparent;
+ animation: shine 6s linear infinite;
+ filter: drop-shadow(0 0 20px rgba(0, 245, 212, 0.3));
+}
+
+@keyframes shine {
+ to { background-position: 200% center; }
+}
+
+.hero-sub {
+ font-size: 1.05rem;
+ color: #999;
+ max-width: 550px;
+ line-height: 1.6;
+ margin-bottom: 2rem;
+ font-weight: 400;
+ letter-spacing: -0.01em;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+/* HERO FLOW DIAGRAM */
+.hero-flow {
+ margin-top: 2.5rem;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ gap: 0;
+ z-index: 10;
+ position: relative;
+ width: 100%;
+ max-width: 700px;
+ padding: 0 1rem;
+}
+
+.hf-step {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ gap: 0.5rem;
+ padding: 1.25rem 1.5rem;
+ background: rgba(255,255,255,0.02);
+ border: 1px solid rgba(255,255,255,0.08);
+ border-radius: 14px;
+ transition: all 0.4s ease;
+ flex: 1;
+ min-width: 0;
+}
+
+.hf-step:hover {
+ transform: translateY(-3px);
+ border-color: rgba(255,255,255,0.2);
+ background: rgba(255,255,255,0.04);
+ box-shadow: 0 12px 32px rgba(0,0,0,0.3);
+}
+
+.hf-highlight {
+ border-color: rgba(0, 245, 212, 0.25);
+ background: rgba(0, 245, 212, 0.04);
+ box-shadow: 0 0 20px rgba(0, 245, 212, 0.06);
+}
+
+.hf-highlight:hover {
+ border-color: rgba(0, 245, 212, 0.4);
+ background: rgba(0, 245, 212, 0.06);
+ box-shadow: 0 12px 32px rgba(0, 245, 212, 0.1);
+}
+
+.hf-icon {
+ width: 48px;
+ height: 48px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ background: rgba(255,255,255,0.04);
+ border: 1px solid rgba(255,255,255,0.1);
+ border-radius: 12px;
+ color: #00f5d4;
+}
+
+.hf-highlight .hf-icon {
+ background: rgba(0, 245, 212, 0.1);
+ border-color: rgba(0, 245, 212, 0.25);
+ color: #00f5d4;
+ box-shadow: 0 0 15px rgba(0, 245, 212, 0.15);
+}
+
+.hf-label {
+ font-size: 0.9rem;
+ font-weight: 600;
+ color: #fff;
+ white-space: nowrap;
+}
+
+.hf-desc {
+ font-size: 0.75rem;
+ color: #666;
+ white-space: nowrap;
+}
+
+.hf-connector {
+ width: 60px;
+ height: 2px;
+ background: rgba(255,255,255,0.08);
+ position: relative;
+ flex-shrink: 0;
+}
+
+.hf-dot {
+ position: absolute;
+ left: 0;
+ top: 50%;
+ width: 8px;
+ height: 8px;
+ background: #00f5d4;
+ border-radius: 50%;
+ transform: translateY(-50%);
+ box-shadow: 0 0 10px rgba(0, 245, 212, 0.6);
+ animation: hfDotMove 2s ease-in-out infinite;
+}
+
+@keyframes hfDotMove {
+ 0% { left: 0; opacity: 0; }
+ 10% { opacity: 1; }
+ 90% { opacity: 1; }
+ 100% { left: calc(100% - 8px); opacity: 0; }
+}
+
+/* SIMPLE FLOW DIAGRAM */
+.stack-container {
+ margin-top: 2rem;
+ position: relative;
+ width: 100%;
+ max-width: 900px;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ gap: 2rem;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.simple-flow {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ gap: 1.5rem;
+ flex-wrap: wrap;
+}
+
+.flow-step {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ gap: 0.75rem;
+ padding: 1.5rem 2rem;
+ background: rgba(255, 255, 255, 0.02);
+ border: 1px solid rgba(255, 255, 255, 0.1);
+ border-radius: 12px;
+ transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
+ min-width: 140px;
+}
+
+.flow-step:hover {
+ transform: translateY(-4px);
+ border-color: rgba(255, 255, 255, 0.25);
+ background: rgba(255, 255, 255, 0.04);
+ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
+}
+
+.flow-highlight {
+ background: rgba(255, 255, 255, 0.03);
+ border-color: rgba(255, 255, 255, 0.15);
+}
+
+.flow-highlight:hover {
+ background: rgba(255, 255, 255, 0.05);
+ border-color: rgba(255, 255, 255, 0.3);
+}
+
+.flow-icon {
+ width: 56px;
+ height: 56px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ background: rgba(255, 255, 255, 0.03);
+ border: 1px solid rgba(255, 255, 255, 0.1);
+ border-radius: 12px;
+ color: #fff;
+}
+
+.flow-highlight .flow-icon {
+ background: rgba(255, 255, 255, 0.05);
+ border-color: rgba(255, 255, 255, 0.15);
+ color: #fff;
+}
+
+.flow-label {
+ font-size: 0.95rem;
+ font-weight: 600;
+ color: #fff;
+ letter-spacing: -0.01em;
+}
+
+.flow-arrow {
+ color: #555;
+ display: flex;
+ align-items: center;
+ position: relative;
+ min-width: 80px;
+}
+
+.flow-arrow svg {
+ display: none;
+}
+
+/* Animated wire/connection */
+.flow-arrow::before {
+ content: '';
+ position: absolute;
+ left: 0;
+ top: 50%;
+ width: 100%;
+ height: 2px;
+ background: linear-gradient(90deg, transparent 0%, #00f5d4 50%, transparent 100%);
+ background-size: 200% 100%;
+ animation: flowWire 2s linear infinite;
+ opacity: 0.6;
+}
+
+.flow-arrow::after {
+ content: '';
+ position: absolute;
+ left: 0;
+ top: 50%;
+ transform: translateY(-50%);
+ width: 8px;
+ height: 8px;
+ background: #00f5d4;
+ border-radius: 50%;
+ box-shadow: 0 0 10px rgba(0, 245, 212, 0.8);
+ animation: flowDot 2s linear infinite;
+}
+
+@keyframes flowWire {
+ 0% {
+ background-position: 0% 0%;
+ }
+ 100% {
+ background-position: 200% 0%;
+ }
+}
+
+@keyframes flowDot {
+ 0% {
+ left: 0%;
+ opacity: 0;
+ }
+ 10% {
+ opacity: 1;
+ }
+ 90% {
+ opacity: 1;
+ }
+ 100% {
+ left: 100%;
+ opacity: 0;
+ }
+}
+
+.flow-features {
+ display: flex;
+ gap: 2rem;
+ flex-wrap: wrap;
+ justify-content: center;
+ padding-top: 1rem;
+}
+
+.mini-feature {
+ display: flex;
+ align-items: center;
+ gap: 0.5rem;
+ padding: 0.5rem 1rem;
+ background: rgba(255, 255, 255, 0.03);
+ border: 1px solid rgba(255, 255, 255, 0.08);
+ border-radius: 999px;
+ font-size: 0.875rem;
+ color: #a1a1aa;
+ transition: all 0.3s ease;
+}
+
+.mini-feature:hover {
+ border-color: rgba(0, 245, 212, 0.35);
+ color: #00f5d4;
+ background: rgba(0, 245, 212, 0.05);
+}
+
+.mini-feature svg {
+ color: #00f5d4;
+ flex-shrink: 0;
+}
+
+/* LANDING HERO INTERACTIVE WINDOW */
+/* DEMO CONSOLE */
+.demo-wrapper {
+ width: 100%;
+ background: #000;
+ border: 1px solid rgba(255, 255, 255, 0.05);
+ border-radius: 16px;
+ box-shadow: 0 40px 80px -20px rgba(0, 0, 0, 0.9), 0 0 0 1px rgba(255,255,255,0.01) inset;
+ overflow: hidden;
+ animation: fadeInUp 1.2s cubic-bezier(0.2, 0.8, 0.2, 1);
+ position: relative;
+}
+
+.demo-header {
+ background: #09090b;
+ padding: 12px 16px;
+ display: flex;
+ align-items: center;
+ border-bottom: 1px solid rgba(255, 255, 255, 0.05);
+ gap: 1rem;
+}
+
+.url-bar {
+ flex: 1;
+ background: #000;
+ color: #a1a1aa;
+ font-family: 'JetBrains Mono', monospace;
+ padding: 6px 12px;
+ border-radius: 6px;
+ font-size: 0.8125rem;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ border: 1px solid rgba(255, 255, 255, 0.08);
+}
+
+.demo-content {
+ padding: 0;
+ display: flex;
+ flex-direction: column;
+ background: #000;
+}
+
+@media(min-width: 768px) {
+ .demo-content {
+ flex-direction: row;
+ min-height: 420px;
+ }
+
+ .demo-sidebar {
+ width: 240px;
+ border-right: 1px solid rgba(255, 255, 255, 0.08);
+ }
+
+ .demo-main {
+ flex: 1;
+ padding: 1.5rem;
+ }
+}
+
+.run-btn {
+ position: absolute;
+ top: 1.5rem;
+ right: 1.5rem;
+ background: #00f5d4;
+ color: #000;
+ border: none;
+ padding: 8px 16px;
+ border-radius: 6px;
+ font-weight: 600;
+ font-size: 0.85rem;
+ cursor: pointer;
+ display: flex;
+ align-items: center;
+ gap: 6px;
+ z-index: 10;
+ box-shadow: 0 0 15px rgba(0, 245, 212, 0.4), inset 0 1px 1px rgba(255, 255, 255, 0.4);
+ transition: all 0.3s;
+}
+
+.run-btn:hover {
+ box-shadow: 0 0 25px rgba(0, 245, 212, 0.7), inset 0 1px 1px rgba(255, 255, 255, 0.5);
+ transform: translateY(-1px);
+}
+
+.demo-sidebar {
+ background: linear-gradient(to right, rgba(255, 255, 255, 0.02) 0%, transparent 100%);
+ border-right: 1px solid rgba(255, 255, 255, 0.05);
+}
+
+.demo-nav-item {
+ padding: 0.75rem 1rem;
+ display: flex;
+ align-items: center;
+ gap: 0.75rem;
+ color: #888;
+ cursor: pointer;
+ transition: all 0.2s ease;
+ border-radius: 6px;
+ margin-bottom: 4px;
+ font-size: 0.9rem;
+ font-weight: 500;
+}
+
+.demo-nav-item:hover {
+ background: rgba(255, 255, 255, 0.03);
+ color: #fff;
+}
+
+.demo-nav-item.active {
+ color: #00f5d4;
+ background: rgba(0, 245, 212, 0.08);
+ border-left: 2px solid #00f5d4;
+ padding-left: 14px;
+}
+
+/* Loading Spinner */
+.loading-spinner {
+ width: 16px;
+ height: 16px;
+ border: 2px solid rgba(0, 245, 212, 0.2);
+ border-top-color: #00f5d4;
+ border-radius: 50%;
+ animation: spin 0.8s linear infinite;
+}
+
+@keyframes spin {
+ to { transform: rotate(360deg); }
+}
+
+.dot {
+ width: 12px;
+ height: 12px;
+ border-radius: 50%;
+ box-shadow: inset 0 1px 2px rgba(255, 255, 255, 0.3), 0 0 4px rgba(0,0,0,0.5);
+}
+
+/* HOW IT WORKS */
+.step-card {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ text-align: center;
+ padding: 2.5rem;
+ background: linear-gradient(145deg, rgba(255, 255, 255, 0.03) 0%, rgba(255, 255, 255, 0.01) 100%);
+ border: 1px solid rgba(255, 255, 255, 0.06);
+ border-radius: 16px;
+ position: relative;
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), 0 10px 30px -10px rgba(0,0,0,0.5);
+ transition: transform 0.3s, border-color 0.3s, box-shadow 0.3s;
+}
+
+.step-card:hover {
+ transform: translateY(-4px);
+ border-color: rgba(0, 245, 212, 0.3);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), 0 20px 40px -15px rgba(0, 245, 212, 0.1);
+}
+
+.step-number {
+ width: 48px;
+ height: 48px;
+ background: linear-gradient(145deg, rgba(0, 245, 212, 0.2) 0%, rgba(0, 245, 212, 0.05) 100%);
+ border: 1px solid rgba(0, 245, 212, 0.3);
+ box-shadow: 0 0 15px rgba(0, 245, 212, 0.2);
+ border-radius: 50%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-weight: 700;
+ font-size: 1.2rem;
+ margin-bottom: 1.5rem;
+ color: #fff;
+}
+
+
+
+.bento-icon {
+ width: 48px;
+ height: 48px;
+ background: rgba(255, 255, 255, 0.03);
+ border-radius: 10px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin-bottom: 1.25rem;
+ color: #fff;
+ border: 1px solid rgba(255, 255, 255, 0.08);
+}
+
+.bento-title {
+ font-size: 1.375rem;
+ font-weight: 600;
+ margin-bottom: 0.75rem;
+ letter-spacing: -0.015em;
+ color: #fff;
+}
+
+.bento-desc {
+ color: #a1a1aa;
+ font-size: 1.05rem;
+ line-height: 1.6;
+}
+
+/* USE CASES & EXTRA CARDS */
+.use-case-card, .glass-card {
+ background: linear-gradient(145deg, rgba(255, 255, 255, 0.03) 0%, rgba(255, 255, 255, 0.01) 100%);
+ border: 1px solid rgba(255, 255, 255, 0.06);
+ padding: 2.5rem;
+ border-radius: 16px;
+ text-align: left;
+ transition: all 0.3s;
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03), 0 10px 30px -10px rgba(0,0,0,0.5);
+ position: relative;
+ overflow: hidden;
+}
+
+.use-case-card:hover, .glass-card:hover, .pricing-card:hover {
+ border-color: rgba(255, 255, 255, 0.15);
+ transform: translateY(-4px);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06), 0 20px 40px -15px rgba(0,0,0,0.6);
+}
+
+.pricing-card {
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
+}
+
+/* Integration - 3D Globe Section */
+.integration-section {
+ padding: 3rem 0 4rem;
+ background: #030303;
+ text-align: center;
+ position: relative;
+ overflow: hidden;
+ border-top: 1px solid rgba(255,255,255,0.04);
+}
+.integration-section::before {
+ content: '';
+ position: absolute;
+ inset: 0;
+ background: radial-gradient(ellipse 60% 50% at 50% 50%, rgba(0,245,212,0.03) 0%, transparent 70%);
+ pointer-events: none;
+}
+
+.integration-inner {
+ max-width: 1200px;
+ margin: 0 auto;
+ padding: 0 1.5rem;
+ margin-bottom: 2rem;
+ position: relative;
+ z-index: 1;
+}
+
+.integration-heading {
+ color: #888;
+ font-size: 0.9rem;
+ font-weight: 500;
+ letter-spacing: 0.1em;
+ text-transform: uppercase;
+ margin-top: 0.5rem;
+}
+
+/* Orbit Stage - Solar System */
+.orbit-stage-wrapper {
+ position: relative;
+ width: 100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ padding: 3rem 0;
+}
+
+.orbit-stage {
+ position: relative;
+ width: 940px;
+ height: 450px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ perspective: 1200px;
+ overflow: visible;
+ --radius-inner: 175px;
+ --radius-mid: 285px;
+ --radius-outer: 395px;
+}
+
+@media (max-width: 768px) {
+ .orbit-stage {
+ width: 100%;
+ max-width: 500px;
+ height: 240px;
+ --radius-inner: 100px;
+ --radius-mid: 165px;
+ --radius-outer: 230px;
+ }
+}
+
+@media (max-width: 480px) {
+ .orbit-stage {
+ height: 180px;
+ --radius-inner: 70px;
+ --radius-mid: 115px;
+ --radius-outer: 160px;
+ }
+}
+
+.orbit-container {
+ position: absolute;
+ width: 940px;
+ height: 940px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ transform: rotateX(65deg) rotateY(-10deg);
+ transform-style: preserve-3d;
+}
+
+@media (max-width: 768px) {
+ .orbit-container {
+ width: 500px;
+ height: 500px;
+ }
+}
+
+@media (max-width: 480px) {
+ .orbit-container {
+ width: 360px;
+ height: 360px;
+ }
+}
+
+
+.orbit-sun {
+ position: absolute;
+ width: 130px;
+ height: 130px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ z-index: 10;
+ pointer-events: none;
+ transform-style: preserve-3d;
+ transform: rotateY(10deg) rotateX(-65deg);
+}
+
+.orbit-sun-logo {
+ width: 80px;
+ height: 80px;
+ border-radius: 50%;
+ border: 2px solid rgba(0, 245, 212, 0.4);
+ box-shadow: 0 0 30px rgba(0, 245, 212, 0.4);
+ z-index: 2;
+ background: #09090b;
+ padding: 10px;
+}
+
+.orbit-sun-glow {
+ position: absolute;
+ width: 120px;
+ height: 120px;
+ border-radius: 50%;
+ background: radial-gradient(circle, rgba(0, 245, 212, 0.35) 0%, transparent 70%);
+ filter: blur(10px);
+ z-index: 1;
+ animation: sun-pulse 4s ease-in-out infinite alternate;
+}
+
+@keyframes sun-pulse {
+ 0% { transform: scale(0.9); opacity: 0.7; }
+ 100% { transform: scale(1.15); opacity: 1; }
+}
+
+.orbit-sun-ring-dec {
+ position: absolute;
+ border-radius: 50%;
+ border: 1px solid rgba(0, 245, 212, 0.15);
+ transform: rotateX(65deg) rotateY(-10deg);
+ pointer-events: none;
+}
+
+.orbit-sun-ring-1 {
+ width: 140px;
+ height: 140px;
+ border: 1px dashed rgba(0, 245, 212, 0.2);
+ animation: spin-clockwise 20s linear infinite;
+}
+
+.orbit-sun-ring-2 {
+ width: 185px;
+ height: 185px;
+ border: 1px dashed rgba(0, 245, 212, 0.09);
+ animation: spin-counter-clockwise 30s linear infinite;
+}
+
+@keyframes spin-clockwise {
+ 0% { transform: rotateX(65deg) rotateY(-10deg) rotateZ(0deg); }
+ 100% { transform: rotateX(65deg) rotateY(-10deg) rotateZ(360deg); }
+}
+
+@keyframes spin-counter-clockwise {
+ 0% { transform: rotateX(65deg) rotateY(-10deg) rotateZ(0deg); }
+ 100% { transform: rotateX(65deg) rotateY(-10deg) rotateZ(-360deg); }
+}
+
+.orbit-ring {
+ position: absolute;
+ border-radius: 50%;
+ border: 1.5px dashed rgba(255, 255, 255, 0.15);
+ pointer-events: none;
+ transform-style: preserve-3d;
+ width: calc(2 * var(--orbit-radius));
+ height: calc(2 * var(--orbit-radius));
+ box-shadow: inset 0 0 25px rgba(255, 255, 255, 0.02), 0 0 25px rgba(255, 255, 255, 0.02);
+}
+
+.orbit-ring-inner {
+ --orbit-radius: var(--radius-inner);
+}
+
+.orbit-ring-mid {
+ --orbit-radius: var(--radius-mid);
+}
+
+.orbit-ring-outer {
+ --orbit-radius: var(--radius-outer);
+}
+
+/* Cosmic Orbit Dust */
+.orbit-dust {
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ width: 3px;
+ height: 3px;
+ background: var(--dust-color, #00f5d4);
+ border-radius: 50%;
+ box-shadow: 0 0 6px var(--dust-color, #00f5d4);
+ opacity: 0.35;
+ pointer-events: none;
+ transform-style: preserve-3d;
+ animation: orbitMove 24s linear infinite;
+}
+
+.orbit-item-wrapper {
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ width: 0;
+ height: 0;
+ transform-style: preserve-3d;
+ pointer-events: none;
+}
+
+.orbit-logo-card {
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ transform: translate(-50%, -50%);
+ display: flex;
+ align-items: center;
+ gap: 8px;
+ padding: 0.45rem 0.95rem;
+ background: rgba(10, 10, 12, 0.65);
+ backdrop-filter: blur(12px);
+ -webkit-backdrop-filter: blur(12px);
+ border: 1px solid rgba(255, 255, 255, 0.08);
+ border-radius: 100px;
+ font-weight: 600;
+ color: #a1a1aa;
+ white-space: nowrap;
+ user-select: none;
+ cursor: pointer;
+ pointer-events: auto;
+ transition: border-color 0.3s, color 0.3s, background 0.3s, box-shadow 0.3s, scale 0.3s;
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.05);
+}
+
+.orbit-logo-card svg {
+ display: block;
+ width: 16px;
+ height: 16px;
+ transition: transform 0.3s;
+}
+
+.orbit-logo-text {
+ font-size: 0.78rem;
+ letter-spacing: -0.01em;
+}
+
+/* Hover highlights */
+.orbit-logo-card:hover {
+ color: #fff;
+ scale: 1.05;
+ background: rgba(15, 15, 20, 0.85);
+ border-color: var(--hover-color, #00f5d4);
+ box-shadow: 0 0 20px rgba(0, 0, 0, 0.6), 0 0 15px var(--hover-color, rgba(0, 245, 212, 0.2));
+}
+
+.orbit-logo-card:hover svg {
+ transform: scale(1.1);
+}
+
+.orbit-inner-wrapper {
+ --orbit-radius: var(--radius-inner);
+ animation: orbitMove 20s linear infinite;
+}
+.orbit-inner-wrapper .orbit-logo-card {
+ animation: billboardCancel 20s linear infinite;
+ animation-delay: inherit;
+}
+
+.orbit-mid-wrapper {
+ --orbit-radius: var(--radius-mid);
+ animation: orbitMove 32s linear infinite;
+}
+.orbit-mid-wrapper .orbit-logo-card {
+ animation: billboardCancel 32s linear infinite;
+ animation-delay: inherit;
+}
+
+.orbit-outer-wrapper {
+ --orbit-radius: var(--radius-outer);
+ animation: orbitMove 48s linear infinite;
+}
+.orbit-outer-wrapper .orbit-logo-card {
+ animation: billboardCancel 48s linear infinite;
+ animation-delay: inherit;
+}
+
+@keyframes orbitMove {
+ 0% {
+ transform: translate(-50%, -50%) rotateZ(0deg) translateX(var(--orbit-radius));
+ }
+ 100% {
+ transform: translate(-50%, -50%) rotateZ(-360deg) translateX(var(--orbit-radius));
+ }
+}
+
+@keyframes billboardCancel {
+ 0% {
+ transform: translate(-50%, -50%) rotateZ(0deg) rotateY(10deg) rotateX(-65deg);
+ }
+ 100% {
+ transform: translate(-50%, -50%) rotateZ(360deg) rotateY(10deg) rotateX(-65deg);
+ }
+}
+
+/* Laser connect beam */
+.orbit-connect-line {
+ position: absolute;
+ right: 0;
+ top: 50%;
+ height: 2px;
+ width: var(--orbit-radius);
+ transform: translateY(-50%);
+ background: linear-gradient(90deg,
+ rgba(0, 0, 0, 0) 0%,
+ rgba(255, 255, 255, 0.1) 20%,
+ var(--hover-color, #00f5d4) 80%,
+ var(--hover-color, #00f5d4) 100%
+ );
+ box-shadow: 0 0 8px var(--hover-color, #00f5d4), 0 0 16px rgba(0, 245, 212, 0.2);
+ transform-origin: right center;
+ opacity: 0;
+ pointer-events: none;
+ transition: opacity 0.3s ease;
+ z-index: 1;
+}
+
+/* Active connection line when hovered */
+.orbit-item-wrapper:has(.orbit-logo-card:hover) .orbit-connect-line {
+ opacity: 1;
+}
+
+.orbit-item-wrapper.active .orbit-connect-line {
+ opacity: 1;
+}
+
+/* Data pulse animation on the connection line */
+.orbit-connect-line::after {
+ content: '';
+ position: absolute;
+ top: 0;
+ right: 0;
+ height: 100%;
+ width: 40px;
+ background: linear-gradient(90deg, transparent, var(--hover-color, #00f5d4), #fff, var(--hover-color, #00f5d4), transparent);
+ filter: drop-shadow(0 0 4px var(--hover-color, #00f5d4));
+ animation: beam-pulse 1.2s infinite linear;
+}
+
+@keyframes beam-pulse {
+ 0% { transform: translateX(0); }
+ 100% { transform: translateX(calc(-1 * var(--orbit-radius))); }
+}
+
+
+
+
+.demo-main pre {
+ scrollbar-width: thin;
+ scrollbar-color: #333 transparent;
+}
+
+.demo-main pre::-webkit-scrollbar {
+ height: 6px;
+ width: 6px;
+}
+
+.demo-main pre::-webkit-scrollbar-thumb {
+ background: #333;
+ border-radius: 10px;
+}
+
+.demo-main pre::-webkit-scrollbar-track {
+ background: rgba(255, 255, 255, 0.02);
+}
+
+/* FAQ */
+.faq-item {
+ border-bottom: 1px solid rgba(255, 255, 255, 0.08);
+ margin-bottom: 1rem;
+}
+
+.faq-question {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ padding: 1.5rem 0;
+ cursor: pointer;
+ font-size: 1.1rem;
+ font-weight: 500;
+}
+
+.faq-answer {
+ padding-bottom: 1.5rem;
+ color: #888;
+ line-height: 1.6;
+}
+
+/* ANIMATIONS */
+@keyframes fadeInUp {
+ from {
+ opacity: 0;
+ transform: translateY(20px);
+ }
+
+ to {
+ opacity: 1;
+ transform: translateY(0);
+ }
+}
+
+@keyframes fadeInDown {
+ from {
+ opacity: 0;
+ transform: translateY(-20px);
+ }
+
+ to {
+ opacity: 1;
+ transform: translateY(0);
+ }
+}
+
+/* MOBILE ADJUSTMENTS */
+@media(max-width: 768px) {
+ .hero-heading {
+ font-size: 2rem;
+ }
+
+ .hero-flow {
+ flex-direction: column;
+ gap: 0;
+ max-width: 280px;
+ }
+
+ .hf-connector {
+ width: 2px;
+ height: 30px;
+ }
+
+ .hf-dot {
+ top: 0;
+ left: 50%;
+ transform: translateX(-50%);
+ animation: hfDotMoveVertical 2s ease-in-out infinite;
+ }
+
+ @keyframes hfDotMoveVertical {
+ 0% { top: 0; opacity: 0; }
+ 10% { opacity: 1; }
+ 90% { opacity: 1; }
+ 100% { top: calc(100% - 8px); opacity: 0; }
+ }
+
+ .hf-step {
+ width: 100%;
+ }
+
+ .cta-stats {
+ flex-direction: column;
+ gap: 2rem;
+ }
+
+ .stat-divider {
+ display: none;
+ }
+}
+
+/* CTA SECTION */
+.cta-section {
+ padding: 10rem 0;
+ background: #030303;
+ position: relative;
+ overflow: hidden;
+ border-top: 1px solid rgba(255, 255, 255, 0.05);
+ border-bottom: 1px solid rgba(255, 255, 255, 0.05);
+}
+
+.cta-section::before {
+ content: '';
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ width: 600px;
+ height: 600px;
+ background: radial-gradient(circle, rgba(0, 245, 212, 0.08) 0%, transparent 70%);
+ filter: blur(100px);
+ pointer-events: none;
+}
+
+.cta-container {
+ max-width: 900px;
+ margin: 0 auto;
+ padding: 0 1.5rem;
+ text-align: center;
+ position: relative;
+ z-index: 1;
+}
+
+.cta-badge {
+ display: inline-flex;
+ align-items: center;
+ gap: 0.5rem;
+ padding: 0.5rem 1.25rem;
+ background: rgba(0, 245, 212, 0.08);
+ border: 1px solid rgba(0, 245, 212, 0.2);
+ border-radius: 999px;
+ color: #00f5d4;
+ font-size: 0.875rem;
+ font-weight: 600;
+ margin-bottom: 2rem;
+ animation: fadeInDown 0.6s ease;
+}
+
+.cta-heading {
+ font-size: 4rem;
+ font-weight: 800;
+ line-height: 1.1;
+ letter-spacing: -0.04em;
+ margin-bottom: 1.5rem;
+ background: linear-gradient(to bottom, #fff 0%, #a1a1aa 100%);
+ -webkit-background-clip: text;
+ background-clip: text;
+ -webkit-text-fill-color: transparent;
+ animation: fadeInUp 0.6s ease 0.2s backwards;
+}
+
+.cta-description {
+ font-size: 1.25rem;
+ color: #888;
+ line-height: 1.6;
+ margin-bottom: 3rem;
+ max-width: 700px;
+ margin-left: auto;
+ margin-right: auto;
+ animation: fadeInUp 0.6s ease 0.3s backwards;
+}
+
+.cta-buttons {
+ display: flex;
+ gap: 1rem;
+ justify-content: center;
+ flex-wrap: wrap;
+ margin-bottom: 5rem;
+ animation: fadeInUp 0.6s ease 0.4s backwards;
+}
+
+.cta-btn-primary {
+ display: inline-flex;
+ align-items: center;
+ gap: 0.75rem;
+ padding: 1.1rem 3rem;
+ background: linear-gradient(135deg, #00f5d4 0%, #00c9a7 100%);
+ color: #000;
+ font-size: 1.1rem;
+ font-weight: 700;
+ border-radius: 99px;
+ text-decoration: none;
+ transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
+ box-shadow: 0 4px 24px rgba(0, 245, 212, 0.3), inset 0 1px 2px rgba(255, 255, 255, 0.3);
+ position: relative;
+ overflow: hidden;
+}
+
+.cta-btn-primary::before {
+ content: '';
+ position: absolute;
+ top: 0;
+ left: -100%;
+ width: 100%;
+ height: 100%;
+ background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
+ transition: left 0.5s;
+}
+
+.cta-btn-primary:hover::before {
+ left: 100%;
+}
+
+.cta-btn-primary:hover {
+ transform: translateY(-2px);
+ box-shadow: 0 8px 32px rgba(0, 245, 212, 0.5), inset 0 1px 2px rgba(255, 255, 255, 0.4);
+}
+
+.cta-btn-secondary {
+ display: inline-flex;
+ align-items: center;
+ gap: 0.75rem;
+ padding: 1.1rem 3rem;
+ background: rgba(255, 255, 255, 0.04);
+ color: #fff;
+ font-size: 1.1rem;
+ font-weight: 600;
+ border-radius: 99px;
+ border: 1px solid rgba(255, 255, 255, 0.1);
+ text-decoration: none;
+ transition: all 0.3s ease;
+}
+
+.cta-btn-secondary:hover {
+ background: rgba(255, 255, 255, 0.08);
+ border-color: rgba(255, 255, 255, 0.25);
+ transform: translateY(-2px);
+}
+
+.cta-stats {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ gap: 4rem;
+ padding-top: 3rem;
+ border-top: 1px solid rgba(255, 255, 255, 0.05);
+ animation: fadeInUp 0.6s ease 0.5s backwards;
+}
+
+.stat-item {
+ text-align: center;
+}
+
+.stat-number {
+ font-size: 2.5rem;
+ font-weight: 800;
+ color: #00f5d4;
+ margin-bottom: 0.5rem;
+ letter-spacing: -0.02em;
+ font-family: 'JetBrains Mono', monospace;
+}
+
+.stat-label {
+ font-size: 0.875rem;
+ color: #666;
+ text-transform: uppercase;
+ letter-spacing: 0.1em;
+ font-weight: 600;
+}
+
+.stat-divider {
+ width: 1px;
+ height: 60px;
+ background: rgba(255, 255, 255, 0.08);
+}
+
+.mobile-menu-overlay {
+ position: fixed;
+ inset: 0;
+ background: rgba(8, 6, 12, 0.92);
+ backdrop-filter: blur(30px);
+ -webkit-backdrop-filter: blur(30px);
+ z-index: 99;
+ padding: calc(var(--nav-height, 70px) + 2.5rem) 1.5rem 2rem;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ gap: 1.5rem;
+ overflow-y: auto;
+ scrollbar-width: none;
+ -ms-overflow-style: none;
+ opacity: 0;
+ visibility: hidden;
+ pointer-events: none;
+ transition: opacity 0.3s ease, visibility 0.3s ease;
+}
+
+.mobile-menu-overlay::-webkit-scrollbar {
+ display: none;
+}
+
+.mobile-menu-overlay.open {
+ opacity: 1;
+ visibility: visible;
+ pointer-events: auto;
+}
+
+.mobile-menu-link {
+ display: flex;
+ align-items: center;
+ gap: 0.75rem;
+ font-size: 1.35rem;
+ font-weight: 700;
+ color: #fff;
+ text-decoration: none;
+ padding: 0.35rem 0.5rem;
+ border-radius: 8px;
+ transition: color 0.2s ease;
+}
+
+.mobile-menu-link:hover {
+ color: #00f5d4;
+}
+
+.mobile-menu-link svg {
+ color: #00f5d4;
+ flex-shrink: 0;
+}
+
+.mobile-menu-divider {
+ height: 1px;
+ width: 60px;
+ background: #333;
+ margin: 0.5rem 0;
+}
+
+.mobile-menu-auth {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ gap: 1rem;
+ margin-top: 0.5rem;
+}
+
+.mobile-menu-login {
+ font-size: 1.1rem;
+ font-weight: 500;
+ color: #aaa;
+ text-decoration: none;
+}
+
+.mobile-menu-login:hover {
+ color: #fff;
+}
+
+/* BYOM Callout Section */
+.byom-callout-section {
+ padding: 7rem 0;
+ background: #000;
+ border-top: 1px solid rgba(255, 255, 255, 0.08);
+ position: relative;
+ overflow: hidden;
+}
+
+.byom-grid-bg {
+ position: absolute;
+ inset: 0;
+ background-image:
+ linear-gradient(rgba(255,255,255,0.015) 1px, transparent 1px),
+ linear-gradient(90deg, rgba(255,255,255,0.015) 1px, transparent 1px);
+ background-size: 60px 60px;
+ -webkit-mask-image: radial-gradient(ellipse 80% 60% at 50% 30%, black 30%, transparent 70%);
+ mask-image: radial-gradient(ellipse 80% 60% at 50% 30%, black 30%, transparent 70%);
+ pointer-events: none;
+}
+
+/* Pipeline */
+.byom-pipeline {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ gap: 0;
+ margin-bottom: 4.5rem;
+ padding: 2rem 0;
+}
+
+@media(max-width: 768px) {
+ .byom-pipeline {
+ flex-direction: column;
+ gap: 0.5rem;
+ padding: 1rem 0;
+ }
+}
+
+.byom-pipe-node {
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ gap: 0.45rem;
+ padding: 1.6rem 2rem;
+ background: rgba(255,255,255,0.02);
+ border: 1px solid rgba(255,255,255,0.06);
+ border-radius: 16px;
+ min-width: 170px;
+ z-index: 2;
+ transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
+}
+
+.byom-pipe-node:hover {
+ border-color: rgba(255,255,255,0.15);
+ background: rgba(255,255,255,0.04);
+ transform: translateY(-3px);
+}
+
+.byom-pipe-icon {
+ width: 52px;
+ height: 52px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ border-radius: 14px;
+ background: rgba(255,255,255,0.04);
+ border: 1px solid rgba(255,255,255,0.08);
+ color: #00f5d4;
+ transition: all 0.3s ease;
+}
+
+.byom-pipe-node:hover .byom-pipe-icon {
+ background: rgba(0,245,212,0.08);
+ border-color: rgba(0,245,212,0.2);
+ box-shadow: 0 0 20px rgba(0,245,212,0.1);
+}
+
+.byom-pipe-label {
+ font-size: 0.9rem;
+ font-weight: 700;
+ color: #fff;
+ letter-spacing: -0.01em;
+}
+
+.byom-pipe-sub {
+ font-size: 0.7rem;
+ color: #666;
+ font-weight: 500;
+ text-align: center;
+ line-height: 1.3;
+}
+
+.byom-pipe-glow {
+ position: absolute;
+ inset: -1px;
+ border-radius: 16px;
+ background: linear-gradient(135deg, rgba(0,245,212,0.06), transparent 50%, rgba(0,245,212,0.02));
+ pointer-events: none;
+ opacity: 0;
+ transition: opacity 0.4s ease;
+}
+
+.byom-pipe-node:hover .byom-pipe-glow {
+ opacity: 1;
+}
+
+.byom-pipe-center {
+ border-color: rgba(0,245,212,0.15);
+ background: rgba(0,245,212,0.03);
+ box-shadow: 0 0 40px rgba(0,245,212,0.05), inset 0 1px 0 rgba(0,245,212,0.08);
+ animation: byomCenterPulse 3s ease-in-out infinite;
+}
+
+@keyframes byomCenterPulse {
+ 0%, 100% { box-shadow: 0 0 40px rgba(0,245,212,0.05), inset 0 1px 0 rgba(0,245,212,0.08); }
+ 50% { box-shadow: 0 0 60px rgba(0,245,212,0.1), inset 0 1px 0 rgba(0,245,212,0.12); }
+}
+
+.byom-center-icon {
+ background: rgba(0,245,212,0.1);
+ border-color: rgba(0,245,212,0.25);
+ color: #00f5d4;
+ box-shadow: 0 0 20px rgba(0,245,212,0.15);
+}
+
+.byom-pipe-ring {
+ position: absolute;
+ inset: -3px;
+ border-radius: 18px;
+ border: 1px solid transparent;
+ background: linear-gradient(135deg, rgba(0,245,212,0.3), transparent 40%, transparent 60%, rgba(0,245,212,0.15)) border-box;
+ -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
+ -webkit-mask-composite: xor;
+ mask-composite: exclude;
+ pointer-events: none;
+ animation: byomRingRotate 4s linear infinite;
+}
+
+@keyframes byomRingRotate {
+ 0% { transform: rotate(0deg); }
+ 100% { transform: rotate(360deg); }
+}
+
+.byom-pipe-connector {
+ flex: 1;
+ min-width: 80px;
+ max-width: 140px;
+ height: 2px;
+ background: linear-gradient(90deg, rgba(255,255,255,0.05), rgba(255,255,255,0.12), rgba(255,255,255,0.05));
+ position: relative;
+ z-index: 1;
+ overflow: hidden;
+}
+
+@media(max-width: 768px) {
+ .byom-pipe-connector {
+ min-width: 2px;
+ min-height: 40px;
+ max-width: 2px;
+ max-height: 60px;
+ background: linear-gradient(180deg, rgba(255,255,255,0.05), rgba(255,255,255,0.12), rgba(255,255,255,0.05));
+ }
+}
+
+.byom-pipe-track {
+ position: absolute;
+ inset: 0;
+}
+
+.byom-pipe-particle {
+ position: absolute;
+ top: 50%;
+ left: -4px;
+ width: 4px;
+ height: 4px;
+ background: #00f5d4;
+ border-radius: 50%;
+ box-shadow: 0 0 6px #00f5d4, 0 0 12px rgba(0,245,212,0.3);
+ transform: translateY(-50%);
+ animation: byomParticle 2.4s ease-in-out infinite;
+}
+
+@media(max-width: 768px) {
+ .byom-pipe-particle {
+ top: -4px;
+ left: 50%;
+ transform: translateX(-50%);
+ animation: byomParticleVertical 2.4s ease-in-out infinite;
+ }
+}
+
+@keyframes byomParticle {
+ 0% { left: -4px; opacity: 0; }
+ 15% { opacity: 1; }
+ 85% { opacity: 1; }
+ 100% { left: calc(100% + 4px); opacity: 0; }
+}
+
+@keyframes byomParticleVertical {
+ 0% { top: -4px; opacity: 0; }
+ 15% { opacity: 1; }
+ 85% { opacity: 1; }
+ 100% { top: calc(100% + 4px); opacity: 0; }
+}
+
+/* BYOM Cards */
+.byom-cards {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(380px, 1fr));
+ gap: 1.5rem;
+}
+
+.byom-card {
+ position: relative;
+ padding: 2.5rem;
+ background: rgba(255,255,255,0.02);
+ border: 1px solid rgba(255,255,255,0.06);
+ border-radius: 16px;
+ overflow: hidden;
+ transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
+}
+
+.byom-card:hover {
+ background: rgba(255,255,255,0.035);
+ border-color: rgba(255,255,255,0.12);
+ transform: translateY(-4px);
+ box-shadow: 0 24px 48px -12px rgba(0,0,0,0.6);
+}
+
+.byom-card-border {
+ position: absolute;
+ inset: -1px;
+ border-radius: 16px;
+ background: linear-gradient(135deg, rgba(255,255,255,0.08), transparent 30%, transparent 70%, rgba(255,255,255,0.04));
+ opacity: 0;
+ transition: opacity 0.5s ease;
+ pointer-events: none;
+}
+
+.byom-card:hover .byom-card-border {
+ opacity: 1;
+}
+
+.byom-card-icon {
+ width: 52px;
+ height: 52px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ border-radius: 14px;
+ margin-bottom: 1.25rem;
+ position: relative;
+ transition: all 0.3s ease;
+}
+
+.byom-card-icon-db {
+ background: rgba(0,245,212,0.08);
+ color: #00f5d4;
+ border: 1px solid rgba(0,245,212,0.15);
+ box-shadow: 0 0 15px rgba(0,245,212,0.08);
+}
+
+.byom-card:hover .byom-card-icon-db {
+ background: rgba(0,245,212,0.12);
+ box-shadow: 0 0 25px rgba(0,245,212,0.2);
+ transform: scale(1.05);
+}
+
+.byom-card-icon-storage {
+ background: rgba(64,158,255,0.08);
+ color: #409EFF;
+ border: 1px solid rgba(64,158,255,0.15);
+ box-shadow: 0 0 15px rgba(64,158,255,0.08);
+}
+
+.byom-card:hover .byom-card-icon-storage {
+ background: rgba(64,158,255,0.12);
+ box-shadow: 0 0 25px rgba(64,158,255,0.2);
+ transform: scale(1.05);
+}
+
+.byom-card-title {
+ font-size: 1.35rem;
+ font-weight: 700;
+ color: #fff;
+ margin-bottom: 0.75rem;
+ letter-spacing: -0.01em;
+}
+
+.byom-card-desc {
+ color: #a1a1aa;
+ line-height: 1.7;
+ font-size: 0.92rem;
+ margin-bottom: 1.5rem;
+}
+
+.byom-card-tags {
+ display: flex;
+ gap: 8px;
+ flex-wrap: wrap;
+}
+
+.byom-card-tags span {
+ padding: 0.35rem 0.75rem;
+ background: rgba(255,255,255,0.04);
+ border: 1px solid rgba(255,255,255,0.06);
+ border-radius: 20px;
+ font-size: 0.78rem;
+ font-weight: 500;
+ color: #999;
+ transition: all 0.3s ease;
+}
+
+.byom-card:hover .byom-card-tags span {
+ background: rgba(255,255,255,0.06);
+ border-color: rgba(255,255,255,0.1);
+ color: #ccc;
+}
+
+@media(max-width: 768px) {
+ .byom-cards {
+ grid-template-columns: 1fr;
+ }
+
+ .byom-card {
+ padding: 2rem;
+ }
+
+ .byom-pipe-node {
+ padding: 1.2rem 1.5rem;
+ min-width: 140px;
+ }
+}
+
+/* OSS Strip */
+.oss-badge {
+ transition: all 0.3s ease;
+}
+
+.oss-badge:hover {
+ background: rgba(255,255,255,0.1) !important;
+ border-color: rgba(255,255,255,0.2) !important;
+ transform: translateY(-1px);
+}
+
+/* TIMELINE SECTION */
+.timeline-container {
+ position: relative;
+ max-width: 1200px;
+ margin: 4rem auto 0 auto;
+ padding: 0 1.5rem;
+ min-height: 400px;
+}
+
+/* Central vertical track */
+.timeline-track {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 50%;
+ transform: translateX(-50%);
+ width: 2px;
+ background: rgba(255, 255, 255, 0.06);
+ z-index: 1;
+ pointer-events: none;
+}
+
+.timeline-track-fill {
+ width: 100%;
+ height: 100%;
+ /* Driven dynamically in index.jsx inline styles to avoid rainbow override */
+}
+
+.timeline-items {
+ display: flex;
+ flex-direction: column;
+ position: relative;
+ z-index: 2;
+}
+
+.timeline-item {
+ display: grid;
+ grid-template-columns: 1fr 100px 1fr;
+ align-items: center;
+ margin-bottom: 6rem;
+ width: 100%;
+ position: relative;
+}
+
+.timeline-item-node {
+ grid-column: 2;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ position: relative;
+ z-index: 10;
+}
+
+.timeline-node-dot {
+ width: 16px;
+ height: 16px;
+ border-radius: 50%;
+ background: #030303;
+ border: 3px solid rgba(255, 255, 255, 0.15);
+ transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
+ cursor: pointer;
+}
+
+/* Connect card on left/right symmetrically */
+.timeline-item-odd .timeline-card-wrapper {
+ grid-column: 1;
+ display: flex;
+ justify-content: flex-end;
+}
+
+.timeline-item-even .timeline-card-wrapper {
+ grid-column: 3;
+ display: flex;
+ justify-content: flex-start;
+}
+
+.timeline-item-odd .timeline-metadata-wrapper {
+ grid-column: 3;
+ display: flex;
+ justify-content: flex-start;
+ padding-left: 2rem;
+}
+
+.timeline-item-even .timeline-metadata-wrapper {
+ grid-column: 1;
+ display: flex;
+ justify-content: flex-end;
+ padding-right: 2rem;
+}
+
+/* Premium Card Layout */
+.timeline-card {
+ background: linear-gradient(145deg, rgba(255, 255, 255, 0.03) 0%, rgba(255, 255, 255, 0.005) 100%);
+ border: 1px solid rgba(255, 255, 255, 0.06);
+ border-radius: 16px;
+ padding: 2.5rem;
+ width: 100%;
+ max-width: 480px;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+ transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03), 0 10px 30px -10px rgba(0,0,0,0.5);
+ position: relative;
+ overflow: hidden;
+ cursor: default;
+}
+
+.timeline-card::before {
+ content: '';
+ position: absolute;
+ top: 0; left: 0; right: 0; bottom: 0;
+ background: radial-gradient(circle at 50% 0%, rgba(255, 255, 255, 0.03) 0%, transparent 70%);
+ opacity: 0;
+ transition: opacity 0.4s;
+ pointer-events: none;
+}
+
+.timeline-card:hover, .timeline-card.hovered {
+ transform: translateY(-4px) scale(1.02);
+ box-shadow: 0 25px 50px -20px rgba(0, 0, 0, 0.8), inset 0 1px 0 rgba(255, 255, 255, 0.08);
+}
+
+.timeline-card:hover::before, .timeline-card.hovered::before {
+ opacity: 1;
+}
+
+/* Glowing Accent Borders & Inner glows */
+.card-accent-teal:hover, .card-accent-teal.hovered {
+ border-color: rgba(0, 245, 212, 0.35);
+ background: linear-gradient(145deg, rgba(0, 245, 212, 0.02) 0%, rgba(255, 255, 255, 0.005) 100%);
+}
+.card-accent-amber:hover, .card-accent-amber.hovered {
+ border-color: rgba(255, 189, 46, 0.35);
+ background: linear-gradient(145deg, rgba(255, 189, 46, 0.02) 0%, rgba(255, 255, 255, 0.005) 100%);
+}
+.card-accent-blue:hover, .card-accent-blue.hovered {
+ border-color: rgba(64, 158, 255, 0.35);
+ background: linear-gradient(145deg, rgba(64, 158, 255, 0.02) 0%, rgba(255, 255, 255, 0.005) 100%);
+}
+.card-accent-red:hover, .card-accent-red.hovered {
+ border-color: rgba(255, 95, 86, 0.35);
+ background: linear-gradient(145deg, rgba(255, 95, 86, 0.02) 0%, rgba(255, 255, 255, 0.005) 100%);
+}
+.card-accent-purple:hover, .card-accent-purple.hovered {
+ border-color: rgba(168, 85, 247, 0.35);
+ background: linear-gradient(145deg, rgba(168, 85, 247, 0.02) 0%, rgba(255, 255, 255, 0.005) 100%);
+}
+.card-accent-pink:hover, .card-accent-pink.hovered {
+ border-color: rgba(236, 72, 153, 0.35);
+ background: linear-gradient(145deg, rgba(236, 72, 153, 0.02) 0%, rgba(255, 255, 255, 0.005) 100%);
+}
+.card-accent-green:hover, .card-accent-green.hovered {
+ border-color: rgba(34, 197, 94, 0.35);
+ background: linear-gradient(145deg, rgba(34, 197, 94, 0.02) 0%, rgba(255, 255, 255, 0.005) 100%);
+}
+.card-accent-orange:hover, .card-accent-orange.hovered {
+ border-color: rgba(249, 115, 22, 0.35);
+ background: linear-gradient(145deg, rgba(249, 115, 22, 0.02) 0%, rgba(255, 255, 255, 0.005) 100%);
+}
+
+/* Symmetrical opposite Metadata block styling */
+.timeline-metadata {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ transition: all 0.3s ease;
+}
+
+.timeline-item-odd .timeline-metadata {
+ align-items: flex-start;
+}
+
+.timeline-item-even .timeline-metadata {
+ align-items: flex-end;
+}
+
+.metadata-tag {
+ font-size: 0.78rem;
+ font-weight: 700;
+ letter-spacing: 0.15em;
+ color: #666;
+ margin-bottom: 0.5rem;
+ transition: color 0.4s ease;
+}
+
+.metadata-number {
+ font-size: 3rem;
+ font-weight: 900;
+ color: #fff;
+ opacity: 0.04;
+ line-height: 0.9;
+ font-family: monospace;
+ transition: opacity 0.4s ease;
+}
+
+/* Connect active metadata color states */
+.timeline-card.hovered ~ .timeline-metadata-wrapper .metadata-tag,
+.timeline-card:hover ~ .timeline-metadata-wrapper .metadata-tag,
+.timeline-item-active .timeline-metadata-wrapper .metadata-tag {
+ opacity: 1;
+}
+
+.timeline-item:hover .timeline-metadata-teal .metadata-tag,
+.timeline-item-active .timeline-metadata-teal .metadata-tag { color: #00f5d4; }
+.timeline-item:hover .timeline-metadata-teal .metadata-number,
+.timeline-item-active .timeline-metadata-teal .metadata-number { opacity: 0.15; }
+
+.timeline-item:hover .timeline-metadata-amber .metadata-tag,
+.timeline-item-active .timeline-metadata-amber .metadata-tag { color: #FFBD2E; }
+.timeline-item:hover .timeline-metadata-amber .metadata-number,
+.timeline-item-active .timeline-metadata-amber .metadata-number { opacity: 0.15; }
+
+.timeline-item:hover .timeline-metadata-blue .metadata-tag,
+.timeline-item-active .timeline-metadata-blue .metadata-tag { color: #409EFF; }
+.timeline-item:hover .timeline-metadata-blue .metadata-number,
+.timeline-item-active .timeline-metadata-blue .metadata-number { opacity: 0.15; }
+
+.timeline-item:hover .timeline-metadata-red .metadata-tag,
+.timeline-item-active .timeline-metadata-red .metadata-tag { color: #FF5F56; }
+.timeline-item:hover .timeline-metadata-red .metadata-number,
+.timeline-item-active .timeline-metadata-red .metadata-number { opacity: 0.15; }
+
+.timeline-item:hover .timeline-metadata-purple .metadata-tag,
+.timeline-item-active .timeline-metadata-purple .metadata-tag { color: #a855f7; }
+.timeline-item:hover .timeline-metadata-purple .metadata-number,
+.timeline-item-active .timeline-metadata-purple .metadata-number { opacity: 0.15; }
+
+.timeline-item:hover .timeline-metadata-pink .metadata-tag,
+.timeline-item-active .timeline-metadata-pink .metadata-tag { color: #ec4899; }
+.timeline-item:hover .timeline-metadata-pink .metadata-number,
+.timeline-item-active .timeline-metadata-pink .metadata-number { opacity: 0.15; }
+
+.timeline-item:hover .timeline-metadata-green .metadata-tag,
+.timeline-item-active .timeline-metadata-green .metadata-tag { color: #22c55e; }
+.timeline-item:hover .timeline-metadata-green .metadata-number,
+.timeline-item-active .timeline-metadata-green .metadata-number { opacity: 0.15; }
+
+.timeline-item:hover .timeline-metadata-orange .metadata-tag,
+.timeline-item-active .timeline-metadata-orange .metadata-tag { color: #f97316; }
+.timeline-item:hover .timeline-metadata-orange .metadata-number,
+.timeline-item-active .timeline-metadata-orange .metadata-number { opacity: 0.15; }
+
+/* Timeline Mobile Tag (inside card, hidden on desktop) */
+.timeline-mobile-tag {
+ display: none;
+}
+
+/* Simulated infinite loader */
+.timeline-trigger-container {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ padding: 3rem 0;
+ width: 100%;
+ position: relative;
+ z-index: 5;
+ margin-top: 2rem;
+}
+
+.timeline-loader {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ gap: 1rem;
+ padding: 2rem;
+ border-radius: 12px;
+ background: rgba(255, 255, 255, 0.02);
+ border: 1px solid rgba(255, 255, 255, 0.06);
+}
+
+.loader-dots {
+ display: flex;
+ gap: 8px;
+}
+
+.loader-dot {
+ width: 10px;
+ height: 10px;
+ border-radius: 50%;
+ animation: loaderDotBounce 1.2s infinite ease-in-out;
+}
+
+.dot-teal { background: #00f5d4; animation-delay: 0s; }
+.dot-blue { background: #409EFF; animation-delay: 0.2s; }
+.dot-purple { background: #a855f7; animation-delay: 0.4s; }
+
+@keyframes loaderDotBounce {
+ 0%, 80%, 100% { transform: scale(0); opacity: 0.3; }
+ 40% { transform: scale(1); opacity: 1; }
+}
+
+.loader-text {
+ font-size: 0.85rem;
+ color: #888;
+ letter-spacing: 0.05em;
+}
+
+.timeline-end-pill {
+ position: relative;
+ z-index: 5;
+ padding: 10px 24px;
+ border-radius: 9999px;
+ background: #030303; /* Solid background to mask spine line */
+ border: 1px solid rgba(255, 255, 255, 0.08);
+ font-size: 0.85rem;
+ color: #666;
+ letter-spacing: 0.05em;
+ font-weight: 500;
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.8);
+}
+
+/* RESPONSIVE TIMELINE */
+@media (max-width: 992px) {
+ .timeline-item {
+ grid-template-columns: 1fr 80px 1fr;
+ }
+ .timeline-item-odd .timeline-metadata-wrapper {
+ padding-left: 1rem;
+ }
+ .timeline-item-even .timeline-metadata-wrapper {
+ padding-right: 1rem;
+ }
+ .timeline-card {
+ padding: 2rem;
+ }
+}
+
+@media (max-width: 768px) {
+ .timeline-track {
+ left: 20px;
+ transform: none;
+ }
+ .timeline-item {
+ grid-template-columns: 40px 1fr;
+ gap: 1rem;
+ margin-bottom: 4rem;
+ }
+ .timeline-item-node {
+ grid-column: 1;
+ justify-content: flex-start;
+ }
+ .timeline-node-dot {
+ margin-left: -7px; /* center perfectly on the 2px line */
+ }
+ .timeline-item-odd .timeline-card-wrapper,
+ .timeline-item-even .timeline-card-wrapper {
+ grid-column: 2;
+ justify-content: flex-start;
+ }
+ .timeline-metadata-wrapper {
+ display: none !important;
+ }
+ .timeline-card {
+ max-width: 100%;
+ }
+ .timeline-mobile-tag {
+ display: block;
+ font-size: 0.72rem;
+ font-weight: 700;
+ letter-spacing: 0.12em;
+ margin-bottom: 0.75rem;
+ color: #888;
+ }
+ .card-accent-teal .timeline-mobile-tag { color: #00f5d4; }
+ .card-accent-amber .timeline-mobile-tag { color: #FFBD2E; }
+ .card-accent-blue .timeline-mobile-tag { color: #409EFF; }
+ .card-accent-red .timeline-mobile-tag { color: #FF5F56; }
+ .card-accent-purple .timeline-mobile-tag { color: #a855f7; }
+ .card-accent-pink .timeline-mobile-tag { color: #ec4899; }
+ .card-accent-green .timeline-mobile-tag { color: #22c55e; }
+ .card-accent-orange .timeline-mobile-tag { color: #f97316; }
+}
+
+/* Client App Services Showcase Section */
+.services-showcase-section {
+ padding: 7rem 0;
+ background: #000;
+ border-top: 1px solid rgba(255, 255, 255, 0.08);
+ position: relative;
+ overflow: hidden;
+}
+
+.services-grid-bg {
+ position: absolute;
+ inset: 0;
+ background-image:
+ linear-gradient(rgba(255,255,255,0.01) 1px, transparent 1px),
+ linear-gradient(90deg, rgba(255,255,255,0.01) 1px, transparent 1px);
+ background-size: 80px 80px;
+ -webkit-mask-image: radial-gradient(ellipse 70% 60% at 50% 50%, black 40%, transparent 80%);
+ mask-image: radial-gradient(ellipse 70% 60% at 50% 50%, black 40%, transparent 80%);
+ pointer-events: none;
+}
+
+.services-container {
+ max-width: 1200px;
+ margin: 0 auto;
+ padding: 0 1.5rem;
+ position: relative;
+ z-index: 2;
+}
+
+.services-header {
+ text-align: center;
+ margin-bottom: 4.5rem;
+}
+
+.services-grid {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
+ gap: 2.5rem;
+ justify-content: center;
+}
+
+.service-card {
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ background: rgba(255, 255, 255, 0.015);
+ border: 1px solid rgba(255, 255, 255, 0.05);
+ border-radius: 20px;
+ padding: 2.25rem;
+ backdrop-filter: blur(16px);
+ -webkit-backdrop-filter: blur(16px);
+ transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
+ overflow: hidden;
+}
+
+.service-card-glow {
+ position: absolute;
+ inset: 0;
+ background: radial-gradient(circle at 50% 100%, var(--accent-glow) 0%, transparent 60%);
+ opacity: 0;
+ transition: opacity 0.4s ease;
+ pointer-events: none;
+}
+
+.magic-bento-card:hover .service-card-glow {
+ opacity: 1;
+}
+
+.magic-bento-card:hover {
+ border-color: rgba(0, 245, 212, 0.3);
+ background: rgba(0, 245, 212, 0.04);
+}
+
+.service-card-header {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ margin-bottom: 1.5rem;
+}
+
+.service-icon-wrap {
+ width: 44px;
+ height: 44px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ border-radius: 12px;
+ background: rgba(255, 255, 255, 0.03);
+ border: 1px solid rgba(255, 255, 255, 0.08);
+ color: var(--accent-color);
+ transition: all 0.3s ease;
+}
+
+.magic-bento-card:hover .service-icon-wrap {
+ background: var(--accent-glow);
+ border-color: var(--accent-color);
+ transform: scale(1.08);
+}
+
+.service-card-body {
+ flex-grow: 1;
+ margin-bottom: 1.5rem;
+}
+
+.service-card-title {
+ font-size: 1.3rem;
+ font-weight: 600;
+ color: #fff;
+ margin-bottom: 0.75rem;
+ letter-spacing: -0.02em;
+}
+
+.service-card-desc {
+ font-size: 0.925rem;
+ color: #a1a1aa;
+ line-height: 1.6;
+}
+
+.service-card-visual-container {
+ height: 150px;
+ background: rgba(0, 0, 0, 0.45);
+ border-radius: 14px;
+ border: 1px solid rgba(255, 255, 255, 0.03);
+ overflow: hidden;
+ position: relative;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ transition: all 0.4s ease;
+}
+
+.magic-bento-card:hover .service-card-visual-container {
+ border-color: rgba(255, 255, 255, 0.08);
+ background: rgba(0, 0, 0, 0.6);
+}
+
+/* Mini Visuals Inside Cards */
+.mini-visual {
+ width: 100%;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ padding: 1rem;
+}
+
+/* Authentication Visual */
+.auth-visual {
+ position: relative;
+}
+
+.auth-visual .mini-auth-box {
+ width: 170px;
+ background: rgba(255, 255, 255, 0.03);
+ border: 1px solid rgba(255, 255, 255, 0.08);
+ border-radius: 10px;
+ padding: 0.6rem 0.8rem;
+ box-shadow: 0 10px 25px -5px rgba(0,0,0,0.5);
+ transition: all 0.3s ease;
+ position: relative;
+}
+
+.magic-bento-card:hover .auth-visual .mini-auth-box {
+ transform: translateY(-3px) scale(1.02);
+ border-color: rgba(0, 245, 212, 0.3);
+}
+
+.mini-auth-header {
+ display: flex;
+ gap: 4px;
+ margin-bottom: 0.5rem;
+}
+
+.mini-circle {
+ width: 6px;
+ height: 6px;
+ border-radius: 50%;
+}
+
+.mini-circle.red { background: #ff5f56; }
+.mini-circle.yellow { background: #ffbd2e; }
+.mini-circle.green { background: #27c93f; }
+
+.mini-auth-body {
+ display: flex;
+ flex-direction: column;
+ gap: 0.4rem;
+}
+
+.mini-auth-label {
+ font-size: 10px;
+ color: #fff;
+ font-weight: 500;
+}
+
+.mini-auth-input {
+ height: 20px;
+ background: rgba(255,255,255,0.03);
+ border: 1px solid rgba(255,255,255,0.08);
+ border-radius: 4px;
+ display: flex;
+ align-items: center;
+ padding: 0 0.4rem;
+ gap: 0.3rem;
+}
+
+.mini-dot {
+ width: 4px;
+ height: 4px;
+ border-radius: 50%;
+ background: #00f5d4;
+}
+
+.placeholder {
+ font-size: 8px;
+ color: #666;
+}
+
+.mini-auth-btn-row {
+ margin-top: 0.1rem;
+}
+
+.mini-auth-btn-primary {
+ width: 100%;
+ height: 20px;
+ border-radius: 4px;
+ background: #00f5d4;
+ border: none;
+ font-size: 9px;
+ color: #000;
+ font-weight: 600;
+ cursor: pointer;
+ transition: all 0.3s ease;
+}
+
+.magic-bento-card:hover .mini-auth-btn-primary {
+ animation: auth-btn-click 1.6s ease forwards;
+}
+
+@keyframes auth-btn-click {
+ 0% {
+ background: #00f5d4;
+ transform: scale(1);
+ }
+ 45% {
+ background: #00f5d4;
+ transform: scale(1);
+ }
+ 50% {
+ background: #00f5d4;
+ transform: scale(0.92);
+ box-shadow: 0 0 5px rgba(0, 245, 212, 0.4);
+ }
+ 58% {
+ background: #00f5d4; transform: scale(1.02); box-shadow: 0 0 15px rgba(0, 245, 212, 0.6);
+ }
+ 100% {
+ background: #00f5d4; transform: scale(1); box-shadow: 0 0 15px rgba(0, 245, 212, 0.6);
+ }
+}
+
+.mini-auth-providers {
+ display: flex;
+ justify-content: center;
+ gap: 0.5rem;
+ margin-top: 0.2rem;
+}
+
+.mini-provider-btn {
+ width: 20px;
+ height: 20px;
+ border-radius: 4px;
+ background: rgba(255,255,255,0.05);
+ border: 1px solid rgba(255,255,255,0.08);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ color: #aaa;
+}
+
+.magic-bento-card:hover .mini-provider-btn {
+ border-color: rgba(255, 255, 255, 0.15);
+ color: #fff;
+}
+
+.mini-cursor {
+ position: absolute;
+ bottom: 2px;
+ right: 15px;
+ opacity: 0;
+ transform: translate(0, 0);
+ transition: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
+ pointer-events: none;
+ z-index: 10;
+}
+
+.magic-bento-card:hover .mini-cursor {
+ opacity: 1;
+ transform: translate(-30px, -28px);
+}
+
+/* Database Visual */
+.db-visual .mini-db-code {
+ font-family: 'Courier New', Courier, monospace;
+ font-size: 11px;
+ color: #a1a1aa;
+ line-height: 1.45;
+ text-align: left;
+ width: 90%;
+ background: rgba(0,0,0,0.3);
+ border: 1px solid rgba(255,255,255,0.04);
+ border-radius: 8px;
+ padding: 0.8rem;
+ transition: all 0.3s ease;
+}
+
+.magic-bento-card:hover .db-visual .mini-db-code {
+ border-color: rgba(0, 245, 212, 0.4);
+ box-shadow: 0 0 15px rgba(0, 245, 212, 0.15);
+}
+
+.code-key { color: #c792ea; }
+.code-var { color: #82b1ff; }
+.code-func { color: #82b1ff; }
+.code-str { color: #ecc48d; }
+.code-json {
+ margin-top: 0.2rem;
+ opacity: 0.15;
+ transition: opacity 0.4s ease;
+}
+
+.magic-bento-card:hover .code-json {
+ opacity: 1;
+ transition-delay: 0.3s;
+}
+
+.json-bracket { color: #ffd700; }
+.json-key { color: #80cbc4; }
+.json-val { color: #f78c6c; }
+.json-bool { color: #ff5370; }
+.json-str { color: #c3e88d; }
+
+/* Storage Visual - Mini File Manager Panel */
+.storage-visual .mini-storage-panel {
+ width: 200px;
+ background: rgba(255, 255, 255, 0.02);
+ border: 1px solid rgba(255, 255, 255, 0.07);
+ border-radius: 10px;
+ overflow: hidden;
+ box-shadow: 0 8px 20px -5px rgba(0,0,0,0.5);
+ transition: all 0.4s ease;
+}
+
+.magic-bento-card:hover .mini-storage-panel {
+ border-color: rgba(0, 245, 212, 0.2);
+ box-shadow: 0 8px 25px -5px rgba(0,0,0,0.6), 0 0 10px rgba(0,245,212,0.06);
+}
+
+.storage-panel-header {
+ display: flex;
+ align-items: center;
+ gap: 5px;
+ padding: 0.4rem 0.6rem;
+ background: rgba(255, 255, 255, 0.025);
+ border-bottom: 1px solid rgba(255, 255, 255, 0.05);
+}
+
+.storage-header-icon { color: #00f5d4; flex-shrink: 0; }
+
+.storage-bucket-name {
+ font-size: 9px;
+ font-weight: 600;
+ color: #ddd;
+ font-family: 'Courier New', Courier, monospace;
+}
+
+.storage-file-count {
+ margin-left: auto;
+ font-size: 7px;
+ color: #666;
+ background: rgba(255,255,255,0.04);
+ padding: 1px 5px;
+ border-radius: 3px;
+}
+
+.storage-file-list {
+ display: flex;
+ flex-direction: column;
+ padding: 0.35rem 0;
+}
+
+.storage-file-row {
+ display: flex;
+ align-items: center;
+ gap: 6px;
+ padding: 0.3rem 0.6rem;
+ transition: all 0.3s ease;
+ opacity: 0.6;
+ transform: translateX(-4px);
+}
+
+.magic-bento-card:hover .storage-file-row {
+ opacity: 1;
+ transform: translateX(0);
+}
+
+.magic-bento-card:hover .storage-file-row:nth-child(1) { transition-delay: 0.05s; }
+.magic-bento-card:hover .storage-file-row:nth-child(2) { transition-delay: 0.15s; }
+.magic-bento-card:hover .storage-file-row:nth-child(3) { transition-delay: 0.25s; }
+
+.storage-file-row:not(:last-child) {
+ border-bottom: 1px solid rgba(255, 255, 255, 0.03);
+}
+
+.storage-file-type {
+ font-size: 6px;
+ font-weight: 700;
+ letter-spacing: 0.04em;
+ padding: 2px 4px;
+ border-radius: 3px;
+ flex-shrink: 0;
+ text-align: center;
+ min-width: 22px;
+}
+
+.storage-file-type.img {
+ background: rgba(100, 210, 255, 0.12);
+ color: #64d2ff;
+ border: 1px solid rgba(100, 210, 255, 0.15);
+}
+
+.storage-file-type.doc {
+ background: rgba(255, 189, 46, 0.12);
+ color: #ffbd2e;
+ border: 1px solid rgba(255, 189, 46, 0.15);
+}
+
+.storage-file-type.vid {
+ background: rgba(0, 245, 212, 0.1);
+ color: #00f5d4;
+ border: 1px solid rgba(0, 245, 212, 0.15);
+}
+
+.storage-file-info {
+ display: flex;
+ flex-direction: column;
+ flex: 1;
+ min-width: 0;
+}
+
+.storage-fname {
+ font-size: 9px;
+ font-weight: 500;
+ color: #ccc;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+
+.storage-fsize { font-size: 7px; color: #555; }
+
+.storage-check {
+ color: rgba(0, 245, 212, 0.35);
+ flex-shrink: 0;
+ transition: color 0.3s ease;
+}
+
+.magic-bento-card:hover .storage-check {
+ color: rgba(0, 245, 212, 0.8);
+}
+
+.storage-upload-status {
+ position: relative;
+ height: 10px;
+ display: flex;
+ align-items: center;
+ overflow: hidden;
+}
+
+.storage-uploading-text {
+ font-size: 7px;
+ color: #888;
+ position: absolute;
+ left: 0;
+ opacity: 1;
+ transition: opacity 0.3s ease, transform 0.3s ease;
+}
+
+.storage-done-text {
+ font-size: 7px;
+ color: #00f5d4;
+ position: absolute;
+ left: 0;
+ opacity: 0;
+ transform: translateY(8px);
+ transition: opacity 0.3s ease, transform 0.3s ease;
+}
+
+.magic-bento-card:hover .storage-uploading-text {
+ opacity: 0;
+ transform: translateY(-8px);
+ transition-delay: 1.4s;
+}
+
+.magic-bento-card:hover .storage-done-text {
+ opacity: 1;
+ transform: translateY(0);
+ transition-delay: 1.4s;
+}
+
+.storage-upload-ring {
+ flex-shrink: 0;
+ opacity: 0.3;
+ transition: opacity 0.3s ease;
+}
+
+.magic-bento-card:hover .storage-upload-ring { opacity: 1; }
+
+.storage-ring-progress {
+ transition: stroke-dashoffset 1.5s cubic-bezier(0.4, 0, 0.2, 1) 0.3s;
+ transform: rotate(-90deg);
+ transform-origin: center;
+}
+
+.magic-bento-card:hover .storage-ring-progress { stroke-dashoffset: 0; }
+
+.storage-bar-track {
+ height: 3px;
+ background: rgba(255, 255, 255, 0.04);
+}
+
+.storage-bar-fill {
+ height: 100%;
+ width: 0%;
+ background: linear-gradient(90deg, rgba(0, 245, 212, 0.2), #00f5d4);
+ transition: width 1.6s cubic-bezier(0.4, 0, 0.2, 1) 0.2s;
+}
+
+.magic-bento-card:hover .storage-bar-fill { width: 72%; }
+
+/* Mail Visual */
+.mail-visual .mini-mail-envelope {
+ width: 180px;
+ background: rgba(255, 255, 255, 0.03);
+ border: 1px solid rgba(255, 255, 255, 0.08);
+ border-radius: 10px;
+ overflow: hidden;
+ box-shadow: 0 10px 25px -5px rgba(0,0,0,0.5);
+ transition: all 0.3s ease;
+}
+
+.magic-bento-card:hover .mini-mail-envelope {
+ border-color: rgba(0, 245, 212, 0.3);
+ transform: translateY(-3px);
+}
+
+.mail-header {
+ background: rgba(255, 255, 255, 0.03);
+ border-bottom: 1px solid rgba(255, 255, 255, 0.06);
+ padding: 0.4rem 0.6rem;
+ display: flex;
+ align-items: center;
+ gap: 0.4rem;
+ font-size: 8px;
+ color: #888;
+}
+
+.mail-badge-icon {
+ color: #00f5d4;
+}
+
+.mail-content {
+ padding: 0.6rem 0.8rem;
+ display: flex;
+ flex-direction: column;
+ gap: 0.5rem;
+}
+
+.mail-title {
+ font-size: 10px;
+ font-weight: 500;
+ color: #fff;
+}
+
+.mail-bar-btn {
+ height: 18px;
+ border-radius: 4px;
+ background: rgba(0, 245, 212, 0.15);
+ border: 1px solid rgba(0, 245, 212, 0.3);
+ font-size: 8px;
+ color: #00f5d4;
+ font-weight: 600;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ cursor: pointer;
+ transition: all 0.3s ease;
+}
+
+.magic-bento-card:hover .mail-bar-btn {
+ background: #00f5d4;
+ color: #000;
+ border-color: #00f5d4;
+ transition-delay: 0.8s;
+}
+
+.mail-status-bar {
+ display: flex;
+ align-items: center;
+ padding: 0.3rem 0.6rem;
+ background: rgba(0, 0, 0, 0.25);
+ border-top: 1px solid rgba(255, 255, 255, 0.04);
+ height: 18px;
+ position: relative;
+}
+
+.mail-status-sending {
+ font-size: 8px;
+ color: #ffbd2e;
+ position: absolute;
+ left: 8px;
+ opacity: 1;
+ transition: opacity 0.3s ease, transform 0.3s ease;
+}
+
+.mail-status-sent {
+ font-size: 8px;
+ color: #00f5d4;
+ position: absolute;
+ left: 8px;
+ opacity: 0;
+ transform: translateY(10px);
+ transition: opacity 0.3s ease, transform 0.3s ease;
+}
+
+.magic-bento-card:hover .mail-status-sending {
+ opacity: 0;
+ transform: translateY(-10px);
+ transition-delay: 0.8s;
+}
+
+.magic-bento-card:hover .mail-status-sent {
+ opacity: 1;
+ transform: translateY(0);
+ transition-delay: 0.8s;
+}
+
+/* Security Visual */
+.security-visual .policy-badge {
+ position: absolute;
+ top: 8px;
+ right: 8px;
+ padding: 0.2rem 0.4rem;
+ border-radius: 4px;
+ font-size: 7px;
+ font-weight: 700;
+ color: #00f5d4;
+ background: rgba(0, 245, 212, 0.15);
+ border: 1px solid rgba(0, 245, 212, 0.3);
+ letter-spacing: 0.05em;
+}
+
+.security-visual .policy-editor {
+ width: 90%;
+ font-family: 'Courier New', Courier, monospace;
+ font-size: 9.5px;
+ color: #888;
+ text-align: left;
+ line-height: 1.5;
+ transition: all 0.3s ease;
+}
+
+.magic-bento-card:hover .policy-editor {
+ color: #b4b4b4;
+}
+
+.policy-line {
+ white-space: nowrap;
+ transition: background-color 0.3s ease;
+}
+
+.policy-line.indent {
+ padding-left: 10px;
+}
+
+.magic-bento-card:hover .policy-line.indent {
+ background: rgba(0, 245, 212, 0.06);
+ border-radius: 2px;
+}
+
+.policy-keyword { color: #e57373; }
+.policy-action { color: #81c784; }
+
+/* Realtime Visual */
+.realtime-visual .mini-realtime-stage {
+ width: 190px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ background: rgba(255, 255, 255, 0.02);
+ border: 1px solid rgba(255, 255, 255, 0.08);
+ border-radius: 10px;
+ padding: 0.6rem 0.75rem;
+ position: relative;
+ overflow: hidden;
+ height: 55px;
+ box-shadow: 0 10px 25px -5px rgba(0,0,0,0.5);
+ transition: all 0.3s ease;
+}
+
+.magic-bento-card:hover .mini-realtime-stage {
+ border-color: rgba(0, 245, 212, 0.3);
+ box-shadow: 0 0 15px rgba(0, 245, 212, 0.15);
+}
+
+.realtime-node {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ gap: 0.2rem;
+ font-size: 8px;
+ color: #666;
+ z-index: 2;
+ transition: color 0.3s ease;
+}
+
+.realtime-node span {
+ font-size: 7px;
+}
+
+.magic-bento-card:hover .realtime-node {
+ color: #fff;
+}
+
+.realtime-pipe {
+ flex-grow: 1;
+ height: 2px;
+ background: rgba(255, 255, 255, 0.08);
+ margin: 0 0.5rem;
+ position: relative;
+ border-radius: 1px;
+}
+
+.realtime-pulse {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 25px;
+ height: 2px;
+ background: linear-gradient(90deg, transparent, #00f5d4, transparent);
+ opacity: 0;
+}
+
+.magic-bento-card:hover .realtime-pulse {
+ opacity: 1;
+ animation: realtime-packet-pulse 1.2s infinite linear;
+}
+
+@keyframes realtime-packet-pulse {
+ 0% { left: -30%; }
+ 100% { left: 110%; }
+}
+
+.realtime-status-badge {
+ position: absolute;
+ bottom: 2px;
+ left: 50%;
+ transform: translateX(-50%);
+ font-size: 6px;
+ font-weight: 700;
+ color: #444;
+ letter-spacing: 0.05em;
+ transition: all 0.3s ease;
+}
+
+.magic-bento-card:hover .realtime-status-badge {
+ color: #00f5d4;
+ text-shadow: 0 0 4px rgba(0, 245, 212, 0.6);
+}
+
+/* urBackend Studio Interactive Window in Infrastructure */
+.hero-interactive-window {
+ max-width: 860px;
+ margin: 3.5rem auto 4.5rem auto;
+ background: rgba(10, 10, 10, 0.4);
+ border: 1px solid rgba(255, 255, 255, 0.06);
+ border-radius: 14px;
+ overflow: hidden;
+ box-shadow: 0 30px 60px -15px rgba(0, 0, 0, 0.9), inset 0 1px 0 rgba(255, 255, 255, 0.05);
+ backdrop-filter: blur(20px);
+ -webkit-backdrop-filter: blur(20px);
+}
+
+.lh-header {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 0.65rem 1.25rem;
+ background: rgba(255, 255, 255, 0.02);
+ border-bottom: 1px solid rgba(255, 255, 255, 0.06);
+}
+
+.lh-dots {
+ display: flex;
+ gap: 6px;
+}
+
+.lh-dot {
+ width: 9px;
+ height: 9px;
+ border-radius: 50%;
+}
+
+.lh-dot-red { background: #ff5f56; }
+.lh-dot-yellow { background: #ffbd2e; }
+.lh-dot-green { background: #27c93f; }
+
+.lh-title {
+ display: flex;
+ align-items: center;
+ gap: 8px;
+ font-size: 0.75rem;
+ color: #888;
+ font-weight: 500;
+}
+
+.lh-title svg {
+ color: #00f5d4;
+}
+
+.lh-replay {
+ background: transparent;
+ border: none;
+ color: #00f5d4;
+ cursor: pointer;
+ font-size: 0.72rem;
+ font-weight: 600;
+ display: flex;
+ align-items: center;
+ gap: 4px;
+ padding: 0.2rem 0.5rem;
+ border-radius: 4px;
+ transition: all 0.2s ease;
+}
+
+.lh-replay:hover {
+ background: rgba(0, 245, 212, 0.08);
+ color: #fff;
+}
+
+.lh-content {
+ display: grid;
+ grid-template-columns: 1.2fr 0.3fr 1.2fr;
+ background: rgba(0, 0, 0, 0.2);
+}
+
+@media (max-width: 768px) {
+ .lh-content {
+ grid-template-columns: 1fr;
+ }
+ .lh-middle {
+ height: 50px;
+ padding: 0.5rem 0;
+ }
+ .lh-line {
+ width: 2px !important;
+ height: 100% !important;
+ }
+ .lh-pulse {
+ width: 2px !important;
+ height: 20px !important;
+ top: 0 !important;
+ left: 0 !important;
+ background: linear-gradient(180deg, transparent, #00f5d4, transparent) !important;
+ }
+ .lh-pulse.active {
+ animation: pulse-travel-vert 1.2s infinite linear !important;
+ }
+}
+
+@keyframes pulse-travel-vert {
+ 0% { top: -20%; }
+ 100% { top: 110%; }
+}
+
+.lh-pane {
+ padding: 1.5rem;
+ display: flex;
+ flex-direction: column;
+ gap: 1rem;
+}
+
+.lh-pane-header {
+ display: flex;
+ align-items: center;
+ gap: 8px;
+ font-size: 0.8rem;
+ color: #fff;
+ font-weight: 600;
+ border-bottom: 1px solid rgba(255,255,255,0.04);
+ padding-bottom: 0.45rem;
+}
+
+.lh-pane-header svg {
+ color: #00f5d4;
+}
+
+.lh-pane-label {
+ margin-left: auto;
+ font-size: 0.6rem;
+ color: #666;
+ text-transform: uppercase;
+ letter-spacing: 0.05em;
+ background: rgba(255,255,255,0.03);
+ padding: 0.1rem 0.35rem;
+ border-radius: 4px;
+}
+
+.lh-builder {
+ display: flex;
+ flex-direction: column;
+ gap: 0.75rem;
+}
+
+.lh-group {
+ display: flex;
+ flex-direction: column;
+ gap: 0.25rem;
+}
+
+.lh-group label {
+ font-size: 0.65rem;
+ color: #666;
+ font-weight: 600;
+ text-transform: uppercase;
+}
+
+.lh-input {
+ background: rgba(255,255,255,0.02);
+ border: 1px solid rgba(255,255,255,0.08);
+ border-radius: 6px;
+ padding: 0.35rem 0.6rem;
+ font-size: 0.8rem;
+ color: #fff;
+ font-family: monospace;
+}
+
+.lh-head-row {
+ display: grid;
+ grid-template-columns: 1fr 1fr 60px;
+ font-size: 0.6rem;
+ color: #444;
+ font-weight: 700;
+ letter-spacing: 0.05em;
+ padding: 0 0.4rem;
+}
+
+.lh-table {
+ display: flex;
+ flex-direction: column;
+ gap: 0.4rem;
+}
+
+.lh-row {
+ display: grid;
+ grid-template-columns: 1fr 1fr 60px;
+ background: rgba(255, 255, 255, 0.01);
+ border: 1px solid rgba(255, 255, 255, 0.04);
+ border-radius: 6px;
+ padding: 0.35rem 0.4rem;
+ font-size: 0.75rem;
+ align-items: center;
+ opacity: 0;
+ transform: translateY(5px);
+ transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
+}
+
+.lh-row.visible {
+ opacity: 1;
+ transform: translateY(0);
+}
+
+.lh-name {
+ color: #00f5d4;
+ font-family: monospace;
+}
+
+.lh-type {
+ color: #888;
+}
+
+.lh-req {
+ color: #444;
+}
+
+.lh-req.on {
+ color: #27c93f;
+ display: flex;
+ align-items: center;
+}
+
+.lh-actions {
+ margin-top: 0.2rem;
+}
+
+.lh-add-btn {
+ background: rgba(255,255,255,0.02);
+ border: 1px solid rgba(255,255,255,0.06);
+ border-radius: 6px;
+ color: #666;
+ font-size: 0.7rem;
+ padding: 0.35rem 0.6rem;
+ display: flex;
+ align-items: center;
+ gap: 5px;
+ cursor: pointer;
+ transition: all 0.2s ease;
+}
+
+.lh-add-btn:hover {
+ border-color: rgba(255,255,255,0.12);
+ color: #ccc;
+ background: rgba(255,255,255,0.04);
+}
+
+.lh-middle {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ position: relative;
+ padding: 0 0.5rem;
+}
+
+.lh-line {
+ width: 100%;
+ height: 2px;
+ background: rgba(255, 255, 255, 0.04);
+ position: relative;
+ border-radius: 1px;
+}
+
+.lh-pulse {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 25px;
+ height: 2px;
+ background: linear-gradient(90deg, transparent, #00f5d4, transparent);
+ opacity: 0;
+}
+
+.lh-pulse.active {
+ opacity: 1;
+ animation: lh-pulse-travel 1.2s infinite linear;
+}
+
+@keyframes lh-pulse-travel {
+ 0% { left: -30%; }
+ 100% { left: 110%; }
+}
+
+.lh-engine {
+ width: 34px;
+ height: 34px;
+ border-radius: 50%;
+ background: rgba(0, 0, 0, 0.5);
+ border: 1.5px solid rgba(255,255,255,0.06);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ color: #555;
+ margin-top: 1rem;
+ transition: all 0.3s ease;
+}
+
+.lh-engine.pulsing {
+ color: #00f5d4;
+ border-color: #00f5d4;
+ box-shadow: 0 0 12px rgba(0, 245, 212, 0.3);
+ animation: spin-slow 3s infinite linear;
+}
+
+@keyframes spin-slow {
+ 0% { transform: rotate(0deg); }
+ 100% { transform: rotate(360deg); }
+}
+
+.lh-pane-right {
+ border-left: 1px solid rgba(255, 255, 255, 0.04);
+}
+
+@media (max-width: 768px) {
+ .lh-pane-right {
+ border-left: none;
+ border-top: 1px solid rgba(255, 255, 255, 0.04);
+ }
+}
+
+.lh-endpoints {
+ display: flex;
+ flex-direction: column;
+ gap: 0.45rem;
+ opacity: 0.2;
+ transition: opacity 0.3s ease;
+}
+
+.lh-endpoints.visible {
+ opacity: 1;
+}
+
+.lh-endpoint {
+ display: flex;
+ align-items: center;
+ gap: 6px;
+ background: rgba(255,255,255,0.01);
+ border: 1px solid rgba(255,255,255,0.03);
+ border-radius: 6px;
+ padding: 0.35rem 0.5rem;
+ opacity: 0;
+ transform: translateX(10px);
+ transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
+}
+
+.lh-endpoints.visible .lh-endpoint {
+ opacity: 1;
+ transform: translateX(0);
+}
+
+.lh-endpoint code {
+ font-size: 0.7rem;
+ color: #bbb;
+ font-family: monospace;
+ flex-grow: 1;
+}
+
+.lh-method {
+ font-size: 0.6rem;
+ font-weight: 700;
+ padding: 0.1rem 0.3rem;
+ border-radius: 4px;
+ min-width: 44px;
+ text-align: center;
+}
+
+.lh-method.get { background: rgba(0, 245, 212, 0.08); color: #00f5d4; }
+.lh-method.post { background: rgba(255, 189, 46, 0.08); color: #FFBD2E; }
+.lh-method.put { background: rgba(64, 158, 255, 0.08); color: #409EFF; }
+.lh-method.delete { background: rgba(255, 95, 86, 0.08); color: #FF5F56; }
+
+.lh-status {
+ font-size: 0.65rem;
+ color: #27c93f;
+ display: flex;
+ align-items: center;
+ gap: 3px;
+ background: rgba(39, 201, 63, 0.08);
+ padding: 0.1rem 0.35rem;
+ border-radius: 4px;
+}
+
+.services-bento-placeholder {
+ min-height: 520px;
+}
+
+@media (prefers-reduced-motion: reduce) {
+ .orbit-inner-wrapper,
+ .orbit-mid-wrapper,
+ .orbit-outer-wrapper,
+ .orbit-dust,
+ .orbit-sun-glow,
+ .orbit-sun-ring-1,
+ .orbit-sun-ring-2,
+ .orbit-connect-line::after,
+ .hero-glow,
+ .byom-pipe-particle {
+ animation: none !important;
+ }
+}
+
+
+/* PRICING CSS */
+
+
+.pricing-page {
+ --nav-height: 70px;
+ min-height: 100svh;
+ background: #000;
+ color: #fff;
+ display: flex;
+ flex-direction: column;
+ box-sizing: border-box;
+ scrollbar-width: none;
+ -ms-overflow-style: none;
+}
+
+.pricing-page::-webkit-scrollbar {
+ display: none;
+}
+
+html:has(.pricing-page),
+body:has(.pricing-page) {
+ scrollbar-width: none;
+ -ms-overflow-style: none;
+}
+
+html:has(.pricing-page)::-webkit-scrollbar,
+body:has(.pricing-page)::-webkit-scrollbar {
+ display: none;
+}
+
+.pricing-header {
+ border-bottom: 1px solid #1a1a1a;
+ background: #000;
+ position: sticky;
+ top: 0;
+ z-index: 5;
+}
+
+.pricing-header-inner {
+ max-width: 1100px;
+ margin: 0 auto;
+ padding: 1.25rem 1.5rem;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+}
+
+.pricing-logo {
+ font-weight: 700;
+ font-size: 1.1rem;
+ color: #fff;
+ text-decoration: none;
+}
+
+.pricing-header-links {
+ display: flex;
+ gap: 1rem;
+ align-items: center;
+}
+
+.pricing-link {
+ color: #fff;
+ text-decoration: none;
+ font-size: 0.9rem;
+}
+
+.pricing-cta {
+ color: #000;
+ background: #00f5d4;
+ padding: 0.5rem 1rem;
+ border-radius: 999px;
+ text-decoration: none;
+ font-weight: 600;
+ font-size: 0.85rem;
+}
+
+.pricing-main {
+ flex: 1;
+ max-width: 1100px;
+ margin: 0 auto;
+ width: 100%;
+ box-sizing: border-box;
+ padding: calc(1.5rem + var(--nav-height) + 2rem) 1.5rem 4rem;
+}
+
+@media (max-width: 900px) {
+ .pricing-main {
+ padding-top: calc(1rem + var(--nav-height) + 1.25rem);
+ padding-bottom: 3rem;
+ }
+}
+
+.pricing-hero {
+ text-align: center;
+ margin-bottom: 3rem;
+}
+
+.pricing-hero h1 {
+ font-size: clamp(2rem, 3.2vw, 3rem);
+ margin-bottom: 0.75rem;
+}
+
+.pricing-hero p {
+ color: #c7c7c7;
+ font-size: 1rem;
+}
+
+.pricing-grid {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
+ gap: 2rem;
+}
+
+.pricing-card {
+ border: 1px solid #1f1f1f;
+ border-radius: 16px;
+ padding: 2.5rem;
+ background: #0b0b0b;
+ display: flex;
+ flex-direction: column;
+ gap: 1.25rem;
+}
+
+.pricing-card-highlight {
+ border-color: #00f5d4;
+}
+
+.pricing-badge {
+ display: inline-flex;
+ align-self: flex-start;
+ padding: 0.3rem 0.75rem;
+ border-radius: 999px;
+ background: #0f0f0f;
+ color: #00f5d4;
+ font-size: 0.75rem;
+ font-weight: 600;
+ border: 1px solid #00f5d4;
+}
+
+.pricing-price {
+ display: flex;
+ align-items: baseline;
+ gap: 0.35rem;
+}
+
+.pricing-amount {
+ font-size: 2.8rem;
+ font-weight: 800;
+}
+
+.pricing-amount-strike {
+ text-decoration: line-through;
+ text-decoration-thickness: 3px;
+}
+
+.pricing-free-trial {
+ color: #00f5d4;
+ font-weight: 600;
+}
+
+.pricing-term {
+ color: #9a9a9a;
+}
+
+.pricing-subtext {
+ color: #b0b0b0;
+ font-size: 0.95rem;
+}
+
+.pricing-list {
+ list-style: none;
+ padding: 0;
+ margin: 0;
+ display: grid;
+ gap: 0.65rem;
+}
+
+.pricing-list li {
+ display: flex;
+ align-items: center;
+ gap: 0.6rem;
+ color: #e5e5e5;
+ font-size: 0.9rem;
+}
+
+.pricing-list svg {
+ color: #00f5d4;
+}
+
+.pricing-button {
+ margin-top: auto;
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ border: 1px solid #00f5d4;
+ color: #00f5d4;
+ padding: 0.7rem 1.2rem;
+ border-radius: 10px;
+ text-decoration: none;
+ font-weight: 600;
+ background: transparent;
+}
+
+.pricing-button-green {
+ background: #00f5d4;
+ color: #000;
+}
+
+@media (max-width: 720px) {
+ .pricing-header-inner {
+ flex-direction: column;
+ gap: 1rem;
+ }
+}
+
+.mobile-menu-link {
+ font-size: 1.5rem;
+ font-weight: 700;
+ color: #fff;
+ text-decoration: none;
+}
+
+.mobile-menu-sub-link {
+ font-size: 1.2rem;
+ font-weight: 500;
+ color: #aaa;
+ text-decoration: none;
+}
+
+.mobile-menu-divider {
+ height: 1px;
+ width: 60px;
+ background: #333;
+ margin: 10px 0;
+}
+
+.mobile-menu-action {
+ font-weight: 600;
+ width: 200px;
+ padding: 12px;
+}
+
+.mobile-menu-action.btn-primary {
+ text-align: center;
+ padding: 12px 30px;
+}
diff --git a/apps/landing/tsconfig.json b/apps/landing/tsconfig.json
new file mode 100644
index 000000000..8bf91d3bb
--- /dev/null
+++ b/apps/landing/tsconfig.json
@@ -0,0 +1,5 @@
+{
+ "extends": "astro/tsconfigs/strict",
+ "include": [".astro/types.d.ts", "**/*"],
+ "exclude": ["dist"]
+}
diff --git a/package-lock.json b/package-lock.json
index a69468f50..6f41458de 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -592,6 +592,72 @@
"url": "https://github.com/sponsors/colinhacks"
}
},
+ "apps/landing": {
+ "version": "0.0.1",
+ "dependencies": {
+ "@astrojs/react": "^4.x",
+ "@astrojs/sitemap": "^3.x",
+ "astro": "^5.0.0",
+ "framer-motion": "^11.0.0",
+ "gsap": "^3.12.0",
+ "lucide-react": "^0.470.0",
+ "postprocessing": "^6.36.0",
+ "react": "^19.0.0",
+ "react-dom": "^19.0.0",
+ "three": "^0.170.0"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "apps/landing/node_modules/framer-motion": {
+ "version": "11.18.2",
+ "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-11.18.2.tgz",
+ "integrity": "sha512-5F5Och7wrvtLVElIpclDT0CBzMVg3dL22B64aZwHtsIY8RB4mXICLrkajK4G9R+ieSAGcgrLeae2SeUTg2pr6w==",
+ "license": "MIT",
+ "dependencies": {
+ "motion-dom": "^11.18.1",
+ "motion-utils": "^11.18.1",
+ "tslib": "^2.4.0"
+ },
+ "peerDependencies": {
+ "@emotion/is-prop-valid": "*",
+ "react": "^18.0.0 || ^19.0.0",
+ "react-dom": "^18.0.0 || ^19.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@emotion/is-prop-valid": {
+ "optional": true
+ },
+ "react": {
+ "optional": true
+ },
+ "react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "apps/landing/node_modules/motion-dom": {
+ "version": "11.18.1",
+ "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-11.18.1.tgz",
+ "integrity": "sha512-g76KvA001z+atjfxczdRtw/RXOM3OMSdd1f4DL77qCTF/+avrRJiawSG4yDibEQ215sr9kpinSlX2pCTJ9zbhw==",
+ "license": "MIT",
+ "dependencies": {
+ "motion-utils": "^11.18.1"
+ }
+ },
+ "apps/landing/node_modules/motion-utils": {
+ "version": "11.18.1",
+ "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-11.18.1.tgz",
+ "integrity": "sha512-49Kt+HKjtbJKLtgO/LKj9Ld+6vw9BjH5d9sc40R/kVyH8GLAXgT42M2NnuPcJNuA3s9ZfZBUcwIgpmZWGEE+hA==",
+ "license": "MIT"
+ },
+ "apps/landing/node_modules/three": {
+ "version": "0.170.0",
+ "resolved": "https://registry.npmjs.org/three/-/three-0.170.0.tgz",
+ "integrity": "sha512-FQK+LEpYc0fBD+J8g6oSEyyNzjp+Q7Ks1C568WWaoMRLW+TkNNWmenWeGgJjV105Gd+p/2ql1ZcjYvNiPZBhuQ==",
+ "license": "MIT"
+ },
"apps/public-api": {
"version": "0.10.1",
"license": "AGPL-3.0-only",
@@ -1319,191 +1385,1195 @@
"dev": true,
"license": "ISC"
},
- "node_modules/@aws-crypto/crc32": {
- "version": "5.2.0",
- "license": "Apache-2.0",
- "dependencies": {
- "@aws-crypto/util": "^5.2.0",
- "@aws-sdk/types": "^3.222.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
+ "node_modules/@astrojs/compiler": {
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/@astrojs/compiler/-/compiler-2.13.1.tgz",
+ "integrity": "sha512-f3FN83d2G/v32ipNClRKgYv30onQlMZX1vCeZMjPsMMPl1mDpmbl0+N5BYo4S/ofzqJyS5hvwacEo0CCVDn/Qg==",
+ "license": "MIT"
},
- "node_modules/@aws-crypto/crc32c": {
- "version": "5.2.0",
- "license": "Apache-2.0",
- "dependencies": {
- "@aws-crypto/util": "^5.2.0",
- "@aws-sdk/types": "^3.222.0",
- "tslib": "^2.6.2"
- }
+ "node_modules/@astrojs/internal-helpers": {
+ "version": "0.7.6",
+ "resolved": "https://registry.npmjs.org/@astrojs/internal-helpers/-/internal-helpers-0.7.6.tgz",
+ "integrity": "sha512-GOle7smBWKfMSP8osUIGOlB5kaHdQLV3foCsf+5Q9Wsuu+C6Fs3Ez/ttXmhjZ1HkSgsogcM1RXSjjOVieHq16Q==",
+ "license": "MIT"
},
- "node_modules/@aws-crypto/sha1-browser": {
- "version": "5.2.0",
- "license": "Apache-2.0",
+ "node_modules/@astrojs/markdown-remark": {
+ "version": "6.3.11",
+ "resolved": "https://registry.npmjs.org/@astrojs/markdown-remark/-/markdown-remark-6.3.11.tgz",
+ "integrity": "sha512-hcaxX/5aC6lQgHeGh1i+aauvSwIT6cfyFjKWvExYSxUhZZBBdvCliOtu06gbQyhbe0pGJNoNmqNlQZ5zYUuIyQ==",
+ "license": "MIT",
"dependencies": {
- "@aws-crypto/supports-web-crypto": "^5.2.0",
- "@aws-crypto/util": "^5.2.0",
- "@aws-sdk/types": "^3.222.0",
- "@aws-sdk/util-locate-window": "^3.0.0",
- "@smithy/util-utf8": "^2.0.0",
- "tslib": "^2.6.2"
+ "@astrojs/internal-helpers": "0.7.6",
+ "@astrojs/prism": "3.3.0",
+ "github-slugger": "^2.0.0",
+ "hast-util-from-html": "^2.0.3",
+ "hast-util-to-text": "^4.0.2",
+ "import-meta-resolve": "^4.2.0",
+ "js-yaml": "^4.1.1",
+ "mdast-util-definitions": "^6.0.0",
+ "rehype-raw": "^7.0.0",
+ "rehype-stringify": "^10.0.1",
+ "remark-gfm": "^4.0.1",
+ "remark-parse": "^11.0.0",
+ "remark-rehype": "^11.1.2",
+ "remark-smartypants": "^3.0.2",
+ "shiki": "^3.21.0",
+ "smol-toml": "^1.6.0",
+ "unified": "^11.0.5",
+ "unist-util-remove-position": "^5.0.0",
+ "unist-util-visit": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.2",
+ "vfile": "^6.0.3"
}
},
- "node_modules/@aws-crypto/sha1-browser/node_modules/@smithy/is-array-buffer": {
- "version": "2.2.0",
- "license": "Apache-2.0",
+ "node_modules/@astrojs/prism": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/@astrojs/prism/-/prism-3.3.0.tgz",
+ "integrity": "sha512-q8VwfU/fDZNoDOf+r7jUnMC2//H2l0TuQ6FkGJL8vD8nw/q5KiL3DS1KKBI3QhI9UQhpJ5dc7AtqfbXWuOgLCQ==",
+ "license": "MIT",
"dependencies": {
- "tslib": "^2.6.2"
+ "prismjs": "^1.30.0"
},
"engines": {
- "node": ">=14.0.0"
+ "node": "18.20.8 || ^20.3.0 || >=22.0.0"
}
},
- "node_modules/@aws-crypto/sha1-browser/node_modules/@smithy/util-buffer-from": {
- "version": "2.2.0",
- "license": "Apache-2.0",
+ "node_modules/@astrojs/react": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/@astrojs/react/-/react-4.4.2.tgz",
+ "integrity": "sha512-1tl95bpGfuaDMDn8O3x/5Dxii1HPvzjvpL2YTuqOOrQehs60I2DKiDgh1jrKc7G8lv+LQT5H15V6QONQ+9waeQ==",
+ "license": "MIT",
"dependencies": {
- "@smithy/is-array-buffer": "^2.2.0",
- "tslib": "^2.6.2"
+ "@vitejs/plugin-react": "^4.7.0",
+ "ultrahtml": "^1.6.0",
+ "vite": "^6.4.1"
},
"engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/@aws-crypto/sha1-browser/node_modules/@smithy/util-utf8": {
- "version": "2.3.0",
- "license": "Apache-2.0",
- "dependencies": {
- "@smithy/util-buffer-from": "^2.2.0",
- "tslib": "^2.6.2"
+ "node": "18.20.8 || ^20.3.0 || >=22.0.0"
},
- "engines": {
- "node": ">=14.0.0"
+ "peerDependencies": {
+ "@types/react": "^17.0.50 || ^18.0.21 || ^19.0.0",
+ "@types/react-dom": "^17.0.17 || ^18.0.6 || ^19.0.0",
+ "react": "^17.0.2 || ^18.0.0 || ^19.0.0",
+ "react-dom": "^17.0.2 || ^18.0.0 || ^19.0.0"
}
},
- "node_modules/@aws-crypto/sha256-browser": {
- "version": "5.2.0",
- "license": "Apache-2.0",
- "dependencies": {
- "@aws-crypto/sha256-js": "^5.2.0",
- "@aws-crypto/supports-web-crypto": "^5.2.0",
- "@aws-crypto/util": "^5.2.0",
- "@aws-sdk/types": "^3.222.0",
- "@aws-sdk/util-locate-window": "^3.0.0",
- "@smithy/util-utf8": "^2.0.0",
- "tslib": "^2.6.2"
+ "node_modules/@astrojs/react/node_modules/@esbuild/aix-ppc64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz",
+ "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==",
+ "cpu": [
+ "ppc64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "aix"
+ ],
+ "engines": {
+ "node": ">=18"
}
},
- "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/is-array-buffer": {
- "version": "2.2.0",
- "license": "Apache-2.0",
- "dependencies": {
- "tslib": "^2.6.2"
- },
+ "node_modules/@astrojs/react/node_modules/@esbuild/android-arm": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz",
+ "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18"
}
},
- "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-buffer-from": {
- "version": "2.2.0",
- "license": "Apache-2.0",
- "dependencies": {
- "@smithy/is-array-buffer": "^2.2.0",
- "tslib": "^2.6.2"
- },
+ "node_modules/@astrojs/react/node_modules/@esbuild/android-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz",
+ "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18"
}
},
- "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-utf8": {
- "version": "2.3.0",
- "license": "Apache-2.0",
- "dependencies": {
- "@smithy/util-buffer-from": "^2.2.0",
- "tslib": "^2.6.2"
- },
+ "node_modules/@astrojs/react/node_modules/@esbuild/android-x64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz",
+ "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18"
}
},
- "node_modules/@aws-crypto/sha256-js": {
- "version": "5.2.0",
- "license": "Apache-2.0",
- "dependencies": {
- "@aws-crypto/util": "^5.2.0",
- "@aws-sdk/types": "^3.222.0",
- "tslib": "^2.6.2"
- },
+ "node_modules/@astrojs/react/node_modules/@esbuild/darwin-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz",
+ "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18"
}
},
- "node_modules/@aws-crypto/supports-web-crypto": {
- "version": "5.2.0",
- "license": "Apache-2.0",
- "dependencies": {
- "tslib": "^2.6.2"
+ "node_modules/@astrojs/react/node_modules/@esbuild/darwin-x64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz",
+ "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
}
},
- "node_modules/@aws-crypto/util": {
- "version": "5.2.0",
- "license": "Apache-2.0",
- "dependencies": {
- "@aws-sdk/types": "^3.222.0",
- "@smithy/util-utf8": "^2.0.0",
- "tslib": "^2.6.2"
+ "node_modules/@astrojs/react/node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz",
+ "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
}
},
- "node_modules/@aws-crypto/util/node_modules/@smithy/is-array-buffer": {
- "version": "2.2.0",
- "license": "Apache-2.0",
- "dependencies": {
- "tslib": "^2.6.2"
- },
+ "node_modules/@astrojs/react/node_modules/@esbuild/freebsd-x64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz",
+ "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18"
}
},
- "node_modules/@aws-crypto/util/node_modules/@smithy/util-buffer-from": {
- "version": "2.2.0",
- "license": "Apache-2.0",
- "dependencies": {
- "@smithy/is-array-buffer": "^2.2.0",
- "tslib": "^2.6.2"
- },
+ "node_modules/@astrojs/react/node_modules/@esbuild/linux-arm": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz",
+ "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18"
}
},
- "node_modules/@aws-crypto/util/node_modules/@smithy/util-utf8": {
- "version": "2.3.0",
- "license": "Apache-2.0",
- "dependencies": {
+ "node_modules/@astrojs/react/node_modules/@esbuild/linux-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz",
+ "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@astrojs/react/node_modules/@esbuild/linux-ia32": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz",
+ "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==",
+ "cpu": [
+ "ia32"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@astrojs/react/node_modules/@esbuild/linux-loong64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz",
+ "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==",
+ "cpu": [
+ "loong64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@astrojs/react/node_modules/@esbuild/linux-mips64el": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz",
+ "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==",
+ "cpu": [
+ "mips64el"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@astrojs/react/node_modules/@esbuild/linux-ppc64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz",
+ "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==",
+ "cpu": [
+ "ppc64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@astrojs/react/node_modules/@esbuild/linux-riscv64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz",
+ "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==",
+ "cpu": [
+ "riscv64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@astrojs/react/node_modules/@esbuild/linux-s390x": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz",
+ "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==",
+ "cpu": [
+ "s390x"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@astrojs/react/node_modules/@esbuild/linux-x64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz",
+ "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@astrojs/react/node_modules/@esbuild/netbsd-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz",
+ "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@astrojs/react/node_modules/@esbuild/netbsd-x64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz",
+ "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@astrojs/react/node_modules/@esbuild/openbsd-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz",
+ "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@astrojs/react/node_modules/@esbuild/openbsd-x64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz",
+ "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@astrojs/react/node_modules/@esbuild/openharmony-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz",
+ "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openharmony"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@astrojs/react/node_modules/@esbuild/sunos-x64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz",
+ "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@astrojs/react/node_modules/@esbuild/win32-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz",
+ "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@astrojs/react/node_modules/@esbuild/win32-ia32": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz",
+ "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@astrojs/react/node_modules/@esbuild/win32-x64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz",
+ "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@astrojs/react/node_modules/@rolldown/pluginutils": {
+ "version": "1.0.0-beta.27",
+ "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz",
+ "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==",
+ "license": "MIT"
+ },
+ "node_modules/@astrojs/react/node_modules/@vitejs/plugin-react": {
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz",
+ "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.28.0",
+ "@babel/plugin-transform-react-jsx-self": "^7.27.1",
+ "@babel/plugin-transform-react-jsx-source": "^7.27.1",
+ "@rolldown/pluginutils": "1.0.0-beta.27",
+ "@types/babel__core": "^7.20.5",
+ "react-refresh": "^0.17.0"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0"
+ }
+ },
+ "node_modules/@astrojs/react/node_modules/esbuild": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz",
+ "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==",
+ "hasInstallScript": true,
+ "license": "MIT",
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "optionalDependencies": {
+ "@esbuild/aix-ppc64": "0.25.12",
+ "@esbuild/android-arm": "0.25.12",
+ "@esbuild/android-arm64": "0.25.12",
+ "@esbuild/android-x64": "0.25.12",
+ "@esbuild/darwin-arm64": "0.25.12",
+ "@esbuild/darwin-x64": "0.25.12",
+ "@esbuild/freebsd-arm64": "0.25.12",
+ "@esbuild/freebsd-x64": "0.25.12",
+ "@esbuild/linux-arm": "0.25.12",
+ "@esbuild/linux-arm64": "0.25.12",
+ "@esbuild/linux-ia32": "0.25.12",
+ "@esbuild/linux-loong64": "0.25.12",
+ "@esbuild/linux-mips64el": "0.25.12",
+ "@esbuild/linux-ppc64": "0.25.12",
+ "@esbuild/linux-riscv64": "0.25.12",
+ "@esbuild/linux-s390x": "0.25.12",
+ "@esbuild/linux-x64": "0.25.12",
+ "@esbuild/netbsd-arm64": "0.25.12",
+ "@esbuild/netbsd-x64": "0.25.12",
+ "@esbuild/openbsd-arm64": "0.25.12",
+ "@esbuild/openbsd-x64": "0.25.12",
+ "@esbuild/openharmony-arm64": "0.25.12",
+ "@esbuild/sunos-x64": "0.25.12",
+ "@esbuild/win32-arm64": "0.25.12",
+ "@esbuild/win32-ia32": "0.25.12",
+ "@esbuild/win32-x64": "0.25.12"
+ }
+ },
+ "node_modules/@astrojs/react/node_modules/react-refresh": {
+ "version": "0.17.0",
+ "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz",
+ "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@astrojs/react/node_modules/vite": {
+ "version": "6.4.3",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.3.tgz",
+ "integrity": "sha512-NTKlcQjlAK7MlQoyb6LgaqHc8sso/pVyUJYWMws3jg21uTJw/LddqIFPcPqP6PzpgbIcZyKI85sFE4HBrQDA8A==",
+ "license": "MIT",
+ "dependencies": {
+ "esbuild": "^0.25.0",
+ "fdir": "^6.4.4",
+ "picomatch": "^4.0.2",
+ "postcss": "^8.5.3",
+ "rollup": "^4.34.9",
+ "tinyglobby": "^0.2.13"
+ },
+ "bin": {
+ "vite": "bin/vite.js"
+ },
+ "engines": {
+ "node": "^18.0.0 || ^20.0.0 || >=22.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 || >=22.0.0",
+ "jiti": ">=1.21.0",
+ "less": "*",
+ "lightningcss": "^1.21.0",
+ "sass": "*",
+ "sass-embedded": "*",
+ "stylus": "*",
+ "sugarss": "*",
+ "terser": "^5.16.0",
+ "tsx": "^4.8.1",
+ "yaml": "^2.4.2"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "jiti": {
+ "optional": true
+ },
+ "less": {
+ "optional": true
+ },
+ "lightningcss": {
+ "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/@astrojs/sitemap": {
+ "version": "3.7.3",
+ "resolved": "https://registry.npmjs.org/@astrojs/sitemap/-/sitemap-3.7.3.tgz",
+ "integrity": "sha512-f8euLVsyeAmAkSm/1M2Kb8sL8byQmfgbvBNaHFItCheTj/IpiJYSEWVcqDHZ/yEHxiS7+w87mQkzwZaPHmk5GA==",
+ "license": "MIT",
+ "dependencies": {
+ "sitemap": "^9.0.0",
+ "stream-replace-string": "^2.0.0",
+ "zod": "^4.3.6"
+ }
+ },
+ "node_modules/@astrojs/telemetry": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/@astrojs/telemetry/-/telemetry-3.3.0.tgz",
+ "integrity": "sha512-UFBgfeldP06qu6khs/yY+q1cDAaArM2/7AEIqQ9Cuvf7B1hNLq0xDrZkct+QoIGyjq56y8IaE2I3CTvG99mlhQ==",
+ "license": "MIT",
+ "dependencies": {
+ "ci-info": "^4.2.0",
+ "debug": "^4.4.0",
+ "dlv": "^1.1.3",
+ "dset": "^3.1.4",
+ "is-docker": "^3.0.0",
+ "is-wsl": "^3.1.0",
+ "which-pm-runs": "^1.1.0"
+ },
+ "engines": {
+ "node": "18.20.8 || ^20.3.0 || >=22.0.0"
+ }
+ },
+ "node_modules/@aws-crypto/crc32": {
+ "version": "5.2.0",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-crypto/util": "^5.2.0",
+ "@aws-sdk/types": "^3.222.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/@aws-crypto/crc32c": {
+ "version": "5.2.0",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-crypto/util": "^5.2.0",
+ "@aws-sdk/types": "^3.222.0",
+ "tslib": "^2.6.2"
+ }
+ },
+ "node_modules/@aws-crypto/sha1-browser": {
+ "version": "5.2.0",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-crypto/supports-web-crypto": "^5.2.0",
+ "@aws-crypto/util": "^5.2.0",
+ "@aws-sdk/types": "^3.222.0",
+ "@aws-sdk/util-locate-window": "^3.0.0",
+ "@smithy/util-utf8": "^2.0.0",
+ "tslib": "^2.6.2"
+ }
+ },
+ "node_modules/@aws-crypto/sha1-browser/node_modules/@smithy/is-array-buffer": {
+ "version": "2.2.0",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-crypto/sha1-browser/node_modules/@smithy/util-buffer-from": {
+ "version": "2.2.0",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/is-array-buffer": "^2.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-crypto/sha1-browser/node_modules/@smithy/util-utf8": {
+ "version": "2.3.0",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/util-buffer-from": "^2.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-crypto/sha256-browser": {
+ "version": "5.2.0",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-crypto/sha256-js": "^5.2.0",
+ "@aws-crypto/supports-web-crypto": "^5.2.0",
+ "@aws-crypto/util": "^5.2.0",
+ "@aws-sdk/types": "^3.222.0",
+ "@aws-sdk/util-locate-window": "^3.0.0",
+ "@smithy/util-utf8": "^2.0.0",
+ "tslib": "^2.6.2"
+ }
+ },
+ "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/is-array-buffer": {
+ "version": "2.2.0",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-buffer-from": {
+ "version": "2.2.0",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/is-array-buffer": "^2.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-utf8": {
+ "version": "2.3.0",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/util-buffer-from": "^2.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-crypto/sha256-js": {
+ "version": "5.2.0",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-crypto/util": "^5.2.0",
+ "@aws-sdk/types": "^3.222.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/@aws-crypto/supports-web-crypto": {
+ "version": "5.2.0",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.6.2"
+ }
+ },
+ "node_modules/@aws-crypto/util": {
+ "version": "5.2.0",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "^3.222.0",
+ "@smithy/util-utf8": "^2.0.0",
+ "tslib": "^2.6.2"
+ }
+ },
+ "node_modules/@aws-crypto/util/node_modules/@smithy/is-array-buffer": {
+ "version": "2.2.0",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-crypto/util/node_modules/@smithy/util-buffer-from": {
+ "version": "2.2.0",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/is-array-buffer": "^2.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-crypto/util/node_modules/@smithy/util-utf8": {
+ "version": "2.3.0",
+ "license": "Apache-2.0",
+ "dependencies": {
"@smithy/util-buffer-from": "^2.2.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=14.0.0"
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-s3": {
+ "version": "3.1053.0",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-crypto/sha1-browser": "5.2.0",
+ "@aws-crypto/sha256-browser": "5.2.0",
+ "@aws-crypto/sha256-js": "5.2.0",
+ "@aws-sdk/core": "^3.974.13",
+ "@aws-sdk/credential-provider-node": "^3.972.44",
+ "@aws-sdk/middleware-bucket-endpoint": "^3.972.15",
+ "@aws-sdk/middleware-expect-continue": "^3.972.13",
+ "@aws-sdk/middleware-flexible-checksums": "^3.974.21",
+ "@aws-sdk/middleware-location-constraint": "^3.972.11",
+ "@aws-sdk/middleware-sdk-s3": "^3.972.42",
+ "@aws-sdk/middleware-ssec": "^3.972.11",
+ "@aws-sdk/signature-v4-multi-region": "^3.996.28",
+ "@aws-sdk/types": "^3.973.9",
+ "@smithy/core": "^3.24.3",
+ "@smithy/fetch-http-handler": "^5.4.3",
+ "@smithy/node-http-handler": "^4.7.3",
+ "@smithy/types": "^4.14.2",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/core": {
+ "version": "3.974.15",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.974.15.tgz",
+ "integrity": "sha512-UpA0rTGW/tHGITcCqHisbuuEPraYg9GG+mWmXjY5+RxZBMLGe6aL9oe0ix50LztwAcPIkGZLH0yWdMIkCM10hw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "^3.973.9",
+ "@aws-sdk/xml-builder": "^3.972.26",
+ "@aws/lambda-invoke-store": "^0.2.2",
+ "@smithy/core": "^3.24.5",
+ "@smithy/signature-v4": "^5.4.5",
+ "@smithy/types": "^4.14.2",
+ "bowser": "^2.11.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/crc64-nvme": {
+ "version": "3.972.9",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.14.2",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-env": {
+ "version": "3.972.39",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "^3.974.13",
+ "@aws-sdk/types": "^3.973.9",
+ "@smithy/core": "^3.24.3",
+ "@smithy/types": "^4.14.2",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-http": {
+ "version": "3.972.41",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "^3.974.13",
+ "@aws-sdk/types": "^3.973.9",
+ "@smithy/core": "^3.24.3",
+ "@smithy/fetch-http-handler": "^5.4.3",
+ "@smithy/node-http-handler": "^4.7.3",
+ "@smithy/types": "^4.14.2",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-ini": {
+ "version": "3.972.43",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "^3.974.13",
+ "@aws-sdk/credential-provider-env": "^3.972.39",
+ "@aws-sdk/credential-provider-http": "^3.972.41",
+ "@aws-sdk/credential-provider-login": "^3.972.43",
+ "@aws-sdk/credential-provider-process": "^3.972.39",
+ "@aws-sdk/credential-provider-sso": "^3.972.43",
+ "@aws-sdk/credential-provider-web-identity": "^3.972.43",
+ "@aws-sdk/nested-clients": "^3.997.11",
+ "@aws-sdk/types": "^3.973.9",
+ "@smithy/core": "^3.24.3",
+ "@smithy/credential-provider-imds": "^4.3.2",
+ "@smithy/types": "^4.14.2",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-login": {
+ "version": "3.972.43",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "^3.974.13",
+ "@aws-sdk/nested-clients": "^3.997.11",
+ "@aws-sdk/types": "^3.973.9",
+ "@smithy/core": "^3.24.3",
+ "@smithy/types": "^4.14.2",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-node": {
+ "version": "3.972.44",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/credential-provider-env": "^3.972.39",
+ "@aws-sdk/credential-provider-http": "^3.972.41",
+ "@aws-sdk/credential-provider-ini": "^3.972.43",
+ "@aws-sdk/credential-provider-process": "^3.972.39",
+ "@aws-sdk/credential-provider-sso": "^3.972.43",
+ "@aws-sdk/credential-provider-web-identity": "^3.972.43",
+ "@aws-sdk/types": "^3.973.9",
+ "@smithy/core": "^3.24.3",
+ "@smithy/credential-provider-imds": "^4.3.2",
+ "@smithy/types": "^4.14.2",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-process": {
+ "version": "3.972.39",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "^3.974.13",
+ "@aws-sdk/types": "^3.973.9",
+ "@smithy/core": "^3.24.3",
+ "@smithy/types": "^4.14.2",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-sso": {
+ "version": "3.972.43",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "^3.974.13",
+ "@aws-sdk/nested-clients": "^3.997.11",
+ "@aws-sdk/token-providers": "3.1052.0",
+ "@aws-sdk/types": "^3.973.9",
+ "@smithy/core": "^3.24.3",
+ "@smithy/types": "^4.14.2",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-web-identity": {
+ "version": "3.972.43",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "^3.974.13",
+ "@aws-sdk/nested-clients": "^3.997.11",
+ "@aws-sdk/types": "^3.973.9",
+ "@smithy/core": "^3.24.3",
+ "@smithy/types": "^4.14.2",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/lib-storage": {
+ "version": "3.1053.0",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/core": "^3.24.3",
+ "@smithy/types": "^4.14.2",
+ "buffer": "5.6.0",
+ "events": "3.3.0",
+ "stream-browserify": "3.0.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ },
+ "peerDependencies": {
+ "@aws-sdk/client-s3": "^3.1053.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-bucket-endpoint": {
+ "version": "3.972.15",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "^3.974.13",
+ "@aws-sdk/types": "^3.973.9",
+ "@smithy/core": "^3.24.3",
+ "@smithy/types": "^4.14.2",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-expect-continue": {
+ "version": "3.972.13",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "^3.973.9",
+ "@smithy/core": "^3.24.3",
+ "@smithy/types": "^4.14.2",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-flexible-checksums": {
+ "version": "3.974.21",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-crypto/crc32": "5.2.0",
+ "@aws-crypto/crc32c": "5.2.0",
+ "@aws-crypto/util": "5.2.0",
+ "@aws-sdk/core": "^3.974.13",
+ "@aws-sdk/crc64-nvme": "^3.972.9",
+ "@aws-sdk/types": "^3.973.9",
+ "@smithy/core": "^3.24.3",
+ "@smithy/types": "^4.14.2",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-host-header": {
+ "version": "3.972.16",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.972.16.tgz",
+ "integrity": "sha512-DcDXAl32I/YZnJ9LyX/XpRXOtoTYIwgmYxoNMGkyvtomdjPpkXPGhz93VJyzKFFNffz/SZwEkoAuWOkeOzo90Q==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "^3.974.15",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-location-constraint": {
+ "version": "3.972.11",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "^3.973.9",
+ "@smithy/types": "^4.14.2",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-logger": {
+ "version": "3.972.15",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.972.15.tgz",
+ "integrity": "sha512-4Org8yUew+Y1+buTcH5A39unAdkVRnQxcOp3XexvFAVctbtznDytk3UKbkXq8FYWEVdz1ycxnAqHaKHePyGQEg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "^3.974.15",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-recursion-detection": {
+ "version": "3.972.17",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.972.17.tgz",
+ "integrity": "sha512-T/FpIr0OcR1kad/u5ZTDE2ziFG7QM6pq1MN8atHBmyyOJgqWjGez9TQ0W2WCixS7EE9fsUQKWn70l5M+e+O/qg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "^3.974.15",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-sdk-s3": {
+ "version": "3.972.42",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "^3.974.13",
+ "@aws-sdk/signature-v4-multi-region": "^3.996.28",
+ "@aws-sdk/types": "^3.973.9",
+ "@smithy/core": "^3.24.3",
+ "@smithy/signature-v4": "^5.4.2",
+ "@smithy/types": "^4.14.2",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-ssec": {
+ "version": "3.972.11",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "^3.973.9",
+ "@smithy/types": "^4.14.2",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-user-agent": {
+ "version": "3.972.45",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.972.45.tgz",
+ "integrity": "sha512-sWd7bGH+thMsNGYdqPdLuH7SDEkpplWCDKSCWhjkMPXwz3o/9BK3ZNrd5JGUB8y+cPbs3rXIe3Ah7iSlKXj5FQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "^3.974.15",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=20.0.0"
}
},
- "node_modules/@aws-sdk/client-s3": {
- "version": "3.1053.0",
+ "node_modules/@aws-sdk/nested-clients": {
+ "version": "3.997.11",
"license": "Apache-2.0",
"dependencies": {
- "@aws-crypto/sha1-browser": "5.2.0",
"@aws-crypto/sha256-browser": "5.2.0",
"@aws-crypto/sha256-js": "5.2.0",
"@aws-sdk/core": "^3.974.13",
- "@aws-sdk/credential-provider-node": "^3.972.44",
- "@aws-sdk/middleware-bucket-endpoint": "^3.972.15",
- "@aws-sdk/middleware-expect-continue": "^3.972.13",
- "@aws-sdk/middleware-flexible-checksums": "^3.974.21",
- "@aws-sdk/middleware-location-constraint": "^3.972.11",
- "@aws-sdk/middleware-sdk-s3": "^3.972.42",
- "@aws-sdk/middleware-ssec": "^3.972.11",
"@aws-sdk/signature-v4-multi-region": "^3.996.28",
"@aws-sdk/types": "^3.973.9",
"@smithy/core": "^3.24.3",
@@ -1516,43 +2586,43 @@
"node": ">=20.0.0"
}
},
- "node_modules/@aws-sdk/core": {
- "version": "3.974.15",
- "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.974.15.tgz",
- "integrity": "sha512-UpA0rTGW/tHGITcCqHisbuuEPraYg9GG+mWmXjY5+RxZBMLGe6aL9oe0ix50LztwAcPIkGZLH0yWdMIkCM10hw==",
+ "node_modules/@aws-sdk/region-config-resolver": {
+ "version": "3.972.19",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.972.19.tgz",
+ "integrity": "sha512-ol9yhY2nzPTrQoKX9WZ8cps2JABcDt0Dlhr59FRYYW/2S5h07PFrhfZZzD8sXZ8XpYfObTIJ+evmbcz41m1SJQ==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "^3.973.9",
- "@aws-sdk/xml-builder": "^3.972.26",
- "@aws/lambda-invoke-store": "^0.2.2",
- "@smithy/core": "^3.24.5",
- "@smithy/signature-v4": "^5.4.5",
- "@smithy/types": "^4.14.2",
- "bowser": "^2.11.0",
+ "@aws-sdk/core": "^3.974.15",
"tslib": "^2.6.2"
},
"engines": {
"node": ">=20.0.0"
}
},
- "node_modules/@aws-sdk/crc64-nvme": {
- "version": "3.972.9",
+ "node_modules/@aws-sdk/s3-request-presigner": {
+ "version": "3.1041.0",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.14.2",
+ "@aws-sdk/signature-v4-multi-region": "^3.996.25",
+ "@aws-sdk/types": "^3.973.8",
+ "@aws-sdk/util-format-url": "^3.972.10",
+ "@smithy/middleware-endpoint": "^4.4.32",
+ "@smithy/protocol-http": "^5.3.14",
+ "@smithy/smithy-client": "^4.12.13",
+ "@smithy/types": "^4.14.1",
"tslib": "^2.6.2"
},
"engines": {
"node": ">=20.0.0"
}
},
- "node_modules/@aws-sdk/credential-provider-env": {
- "version": "3.972.39",
+ "node_modules/@aws-sdk/signature-v4-multi-region": {
+ "version": "3.996.28",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "^3.974.13",
"@aws-sdk/types": "^3.973.9",
"@smithy/core": "^3.24.3",
+ "@smithy/signature-v4": "^5.4.2",
"@smithy/types": "^4.14.2",
"tslib": "^2.6.2"
},
@@ -1560,15 +2630,14 @@
"node": ">=20.0.0"
}
},
- "node_modules/@aws-sdk/credential-provider-http": {
- "version": "3.972.41",
+ "node_modules/@aws-sdk/token-providers": {
+ "version": "3.1052.0",
"license": "Apache-2.0",
"dependencies": {
"@aws-sdk/core": "^3.974.13",
+ "@aws-sdk/nested-clients": "^3.997.11",
"@aws-sdk/types": "^3.973.9",
"@smithy/core": "^3.24.3",
- "@smithy/fetch-http-handler": "^5.4.3",
- "@smithy/node-http-handler": "^4.7.3",
"@smithy/types": "^4.14.2",
"tslib": "^2.6.2"
},
@@ -1576,21 +2645,10 @@
"node": ">=20.0.0"
}
},
- "node_modules/@aws-sdk/credential-provider-ini": {
- "version": "3.972.43",
+ "node_modules/@aws-sdk/types": {
+ "version": "3.973.9",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "^3.974.13",
- "@aws-sdk/credential-provider-env": "^3.972.39",
- "@aws-sdk/credential-provider-http": "^3.972.41",
- "@aws-sdk/credential-provider-login": "^3.972.43",
- "@aws-sdk/credential-provider-process": "^3.972.39",
- "@aws-sdk/credential-provider-sso": "^3.972.43",
- "@aws-sdk/credential-provider-web-identity": "^3.972.43",
- "@aws-sdk/nested-clients": "^3.997.11",
- "@aws-sdk/types": "^3.973.9",
- "@smithy/core": "^3.24.3",
- "@smithy/credential-provider-imds": "^4.3.2",
"@smithy/types": "^4.14.2",
"tslib": "^2.6.2"
},
@@ -1598,2749 +2656,3295 @@
"node": ">=20.0.0"
}
},
- "node_modules/@aws-sdk/credential-provider-login": {
- "version": "3.972.43",
+ "node_modules/@aws-sdk/util-endpoints": {
+ "version": "3.996.14",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.996.14.tgz",
+ "integrity": "sha512-9Nr9UXPnSt8k+SJKxLlv9b4VCvP/fJnjxEyumR/cN5YYFUEz6zW+C8RfAAS8JjhUGigyymlCg3tAo7+oyr/uZg==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "^3.974.13",
- "@aws-sdk/nested-clients": "^3.997.11",
- "@aws-sdk/types": "^3.973.9",
- "@smithy/core": "^3.24.3",
- "@smithy/types": "^4.14.2",
+ "@aws-sdk/core": "^3.974.15",
+ "@smithy/core": "^3.24.5",
"tslib": "^2.6.2"
},
"engines": {
"node": ">=20.0.0"
}
},
- "node_modules/@aws-sdk/credential-provider-node": {
- "version": "3.972.44",
+ "node_modules/@aws-sdk/util-format-url": {
+ "version": "3.972.10",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/credential-provider-env": "^3.972.39",
- "@aws-sdk/credential-provider-http": "^3.972.41",
- "@aws-sdk/credential-provider-ini": "^3.972.43",
- "@aws-sdk/credential-provider-process": "^3.972.39",
- "@aws-sdk/credential-provider-sso": "^3.972.43",
- "@aws-sdk/credential-provider-web-identity": "^3.972.43",
- "@aws-sdk/types": "^3.973.9",
- "@smithy/core": "^3.24.3",
- "@smithy/credential-provider-imds": "^4.3.2",
- "@smithy/types": "^4.14.2",
+ "@aws-sdk/types": "^3.973.8",
+ "@smithy/querystring-builder": "^4.2.14",
+ "@smithy/types": "^4.14.1",
"tslib": "^2.6.2"
},
"engines": {
"node": ">=20.0.0"
}
},
- "node_modules/@aws-sdk/credential-provider-process": {
- "version": "3.972.39",
+ "node_modules/@aws-sdk/util-locate-window": {
+ "version": "3.965.5",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "^3.974.13",
- "@aws-sdk/types": "^3.973.9",
- "@smithy/core": "^3.24.3",
- "@smithy/types": "^4.14.2",
"tslib": "^2.6.2"
},
"engines": {
"node": ">=20.0.0"
}
},
- "node_modules/@aws-sdk/credential-provider-sso": {
- "version": "3.972.43",
+ "node_modules/@aws-sdk/util-user-agent-browser": {
+ "version": "3.972.16",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.972.16.tgz",
+ "integrity": "sha512-h4VTGl6lxJkM/odeRPzXB5YZbkxVr5FnJ2Bwv78+IY9Ah7QsXSBhefvvz1CQDoQNzOLYsNMQ3PhMQM7i6tpoPQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "^3.974.15",
+ "tslib": "^2.6.2"
+ }
+ },
+ "node_modules/@aws-sdk/util-user-agent-node": {
+ "version": "3.973.31",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.973.31.tgz",
+ "integrity": "sha512-hYTWRlhOnhs2tYCYgNK30jaQKyl4FvXQl0AK9tKRZq8sunS9ygi+USYiG6LCb7DuqT0Gl3jONP9jtb4D4NYhHw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "^3.974.15",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/xml-builder": {
+ "version": "3.972.26",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.972.26.tgz",
+ "integrity": "sha512-cDbrqvDS73whl6YAPSPq0U6whzG6UWI9PuWh0wrUuGoZexhWEqhdunbukV7iBoaWnFV1AODutM5hOD6rtn439g==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "^3.974.13",
- "@aws-sdk/nested-clients": "^3.997.11",
- "@aws-sdk/token-providers": "3.1052.0",
- "@aws-sdk/types": "^3.973.9",
- "@smithy/core": "^3.24.3",
"@smithy/types": "^4.14.2",
+ "fast-xml-parser": "5.7.3",
"tslib": "^2.6.2"
},
"engines": {
"node": ">=20.0.0"
}
},
- "node_modules/@aws-sdk/credential-provider-web-identity": {
- "version": "3.972.43",
+ "node_modules/@aws/lambda-invoke-store": {
+ "version": "0.2.4",
"license": "Apache-2.0",
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@babel/code-frame": {
+ "version": "7.29.0",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.28.5",
+ "js-tokens": "^4.0.0",
+ "picocolors": "^1.1.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/compat-data": {
+ "version": "7.29.3",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/core": {
+ "version": "7.29.0",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.29.0",
+ "@babel/generator": "^7.29.0",
+ "@babel/helper-compilation-targets": "^7.28.6",
+ "@babel/helper-module-transforms": "^7.28.6",
+ "@babel/helpers": "^7.28.6",
+ "@babel/parser": "^7.29.0",
+ "@babel/template": "^7.28.6",
+ "@babel/traverse": "^7.29.0",
+ "@babel/types": "^7.29.0",
+ "@jridgewell/remapping": "^2.3.5",
+ "convert-source-map": "^2.0.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.3",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/babel"
+ }
+ },
+ "node_modules/@babel/core/node_modules/semver": {
+ "version": "6.3.1",
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/@babel/generator": {
+ "version": "7.29.1",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.29.0",
+ "@babel/types": "^7.29.0",
+ "@jridgewell/gen-mapping": "^0.3.12",
+ "@jridgewell/trace-mapping": "^0.3.28",
+ "jsesc": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets": {
+ "version": "7.28.6",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/compat-data": "^7.28.6",
+ "@babel/helper-validator-option": "^7.27.1",
+ "browserslist": "^4.24.0",
+ "lru-cache": "^5.1.1",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets/node_modules/semver": {
+ "version": "6.3.1",
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/@babel/helper-globals": {
+ "version": "7.28.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-imports": {
+ "version": "7.28.6",
+ "license": "MIT",
"dependencies": {
- "@aws-sdk/core": "^3.974.13",
- "@aws-sdk/nested-clients": "^3.997.11",
- "@aws-sdk/types": "^3.973.9",
- "@smithy/core": "^3.24.3",
- "@smithy/types": "^4.14.2",
- "tslib": "^2.6.2"
+ "@babel/traverse": "^7.28.6",
+ "@babel/types": "^7.28.6"
},
"engines": {
- "node": ">=20.0.0"
+ "node": ">=6.9.0"
}
},
- "node_modules/@aws-sdk/lib-storage": {
- "version": "3.1053.0",
- "license": "Apache-2.0",
+ "node_modules/@babel/helper-module-transforms": {
+ "version": "7.28.6",
+ "license": "MIT",
"dependencies": {
- "@smithy/core": "^3.24.3",
- "@smithy/types": "^4.14.2",
- "buffer": "5.6.0",
- "events": "3.3.0",
- "stream-browserify": "3.0.0",
- "tslib": "^2.6.2"
+ "@babel/helper-module-imports": "^7.28.6",
+ "@babel/helper-validator-identifier": "^7.28.5",
+ "@babel/traverse": "^7.28.6"
},
"engines": {
- "node": ">=20.0.0"
+ "node": ">=6.9.0"
},
"peerDependencies": {
- "@aws-sdk/client-s3": "^3.1053.0"
+ "@babel/core": "^7.0.0"
}
},
- "node_modules/@aws-sdk/middleware-bucket-endpoint": {
- "version": "3.972.15",
- "license": "Apache-2.0",
- "dependencies": {
- "@aws-sdk/core": "^3.974.13",
- "@aws-sdk/types": "^3.973.9",
- "@smithy/core": "^3.24.3",
- "@smithy/types": "^4.14.2",
- "tslib": "^2.6.2"
- },
+ "node_modules/@babel/helper-plugin-utils": {
+ "version": "7.28.6",
+ "license": "MIT",
"engines": {
- "node": ">=20.0.0"
+ "node": ">=6.9.0"
}
},
- "node_modules/@aws-sdk/middleware-expect-continue": {
- "version": "3.972.13",
- "license": "Apache-2.0",
- "dependencies": {
- "@aws-sdk/types": "^3.973.9",
- "@smithy/core": "^3.24.3",
- "@smithy/types": "^4.14.2",
- "tslib": "^2.6.2"
- },
+ "node_modules/@babel/helper-string-parser": {
+ "version": "7.27.1",
+ "license": "MIT",
"engines": {
- "node": ">=20.0.0"
+ "node": ">=6.9.0"
}
},
- "node_modules/@aws-sdk/middleware-flexible-checksums": {
- "version": "3.974.21",
- "license": "Apache-2.0",
- "dependencies": {
- "@aws-crypto/crc32": "5.2.0",
- "@aws-crypto/crc32c": "5.2.0",
- "@aws-crypto/util": "5.2.0",
- "@aws-sdk/core": "^3.974.13",
- "@aws-sdk/crc64-nvme": "^3.972.9",
- "@aws-sdk/types": "^3.973.9",
- "@smithy/core": "^3.24.3",
- "@smithy/types": "^4.14.2",
- "tslib": "^2.6.2"
- },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.28.5",
+ "license": "MIT",
"engines": {
- "node": ">=20.0.0"
+ "node": ">=6.9.0"
}
},
- "node_modules/@aws-sdk/middleware-host-header": {
- "version": "3.972.16",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.972.16.tgz",
- "integrity": "sha512-DcDXAl32I/YZnJ9LyX/XpRXOtoTYIwgmYxoNMGkyvtomdjPpkXPGhz93VJyzKFFNffz/SZwEkoAuWOkeOzo90Q==",
- "license": "Apache-2.0",
+ "node_modules/@babel/helper-validator-option": {
+ "version": "7.27.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helpers": {
+ "version": "7.29.2",
+ "license": "MIT",
"dependencies": {
- "@aws-sdk/core": "^3.974.15",
- "tslib": "^2.6.2"
+ "@babel/template": "^7.28.6",
+ "@babel/types": "^7.29.0"
},
"engines": {
- "node": ">=20.0.0"
+ "node": ">=6.9.0"
}
},
- "node_modules/@aws-sdk/middleware-location-constraint": {
- "version": "3.972.11",
- "license": "Apache-2.0",
+ "node_modules/@babel/parser": {
+ "version": "7.29.3",
+ "license": "MIT",
"dependencies": {
- "@aws-sdk/types": "^3.973.9",
- "@smithy/types": "^4.14.2",
- "tslib": "^2.6.2"
+ "@babel/types": "^7.29.0"
+ },
+ "bin": {
+ "parser": "bin/babel-parser.js"
},
"engines": {
- "node": ">=20.0.0"
+ "node": ">=6.0.0"
}
},
- "node_modules/@aws-sdk/middleware-logger": {
- "version": "3.972.15",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.972.15.tgz",
- "integrity": "sha512-4Org8yUew+Y1+buTcH5A39unAdkVRnQxcOp3XexvFAVctbtznDytk3UKbkXq8FYWEVdz1ycxnAqHaKHePyGQEg==",
- "license": "Apache-2.0",
+ "node_modules/@babel/plugin-syntax-async-generators": {
+ "version": "7.8.4",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "@aws-sdk/core": "^3.974.15",
- "tslib": "^2.6.2"
+ "@babel/helper-plugin-utils": "^7.8.0"
},
- "engines": {
- "node": ">=20.0.0"
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "node_modules/@aws-sdk/middleware-recursion-detection": {
- "version": "3.972.17",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.972.17.tgz",
- "integrity": "sha512-T/FpIr0OcR1kad/u5ZTDE2ziFG7QM6pq1MN8atHBmyyOJgqWjGez9TQ0W2WCixS7EE9fsUQKWn70l5M+e+O/qg==",
- "license": "Apache-2.0",
+ "node_modules/@babel/plugin-syntax-bigint": {
+ "version": "7.8.3",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "@aws-sdk/core": "^3.974.15",
- "tslib": "^2.6.2"
+ "@babel/helper-plugin-utils": "^7.8.0"
},
- "engines": {
- "node": ">=20.0.0"
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "node_modules/@aws-sdk/middleware-sdk-s3": {
- "version": "3.972.42",
- "license": "Apache-2.0",
+ "node_modules/@babel/plugin-syntax-class-properties": {
+ "version": "7.12.13",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "@aws-sdk/core": "^3.974.13",
- "@aws-sdk/signature-v4-multi-region": "^3.996.28",
- "@aws-sdk/types": "^3.973.9",
- "@smithy/core": "^3.24.3",
- "@smithy/signature-v4": "^5.4.2",
- "@smithy/types": "^4.14.2",
- "tslib": "^2.6.2"
+ "@babel/helper-plugin-utils": "^7.12.13"
},
- "engines": {
- "node": ">=20.0.0"
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "node_modules/@aws-sdk/middleware-ssec": {
- "version": "3.972.11",
- "license": "Apache-2.0",
+ "node_modules/@babel/plugin-syntax-class-static-block": {
+ "version": "7.14.5",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "@aws-sdk/types": "^3.973.9",
- "@smithy/types": "^4.14.2",
- "tslib": "^2.6.2"
+ "@babel/helper-plugin-utils": "^7.14.5"
},
"engines": {
- "node": ">=20.0.0"
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "node_modules/@aws-sdk/middleware-user-agent": {
- "version": "3.972.45",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.972.45.tgz",
- "integrity": "sha512-sWd7bGH+thMsNGYdqPdLuH7SDEkpplWCDKSCWhjkMPXwz3o/9BK3ZNrd5JGUB8y+cPbs3rXIe3Ah7iSlKXj5FQ==",
- "license": "Apache-2.0",
+ "node_modules/@babel/plugin-syntax-import-attributes": {
+ "version": "7.28.6",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "@aws-sdk/core": "^3.974.15",
- "tslib": "^2.6.2"
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
- "node": ">=20.0.0"
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "node_modules/@aws-sdk/nested-clients": {
- "version": "3.997.11",
- "license": "Apache-2.0",
+ "node_modules/@babel/plugin-syntax-import-meta": {
+ "version": "7.10.4",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "@aws-crypto/sha256-browser": "5.2.0",
- "@aws-crypto/sha256-js": "5.2.0",
- "@aws-sdk/core": "^3.974.13",
- "@aws-sdk/signature-v4-multi-region": "^3.996.28",
- "@aws-sdk/types": "^3.973.9",
- "@smithy/core": "^3.24.3",
- "@smithy/fetch-http-handler": "^5.4.3",
- "@smithy/node-http-handler": "^4.7.3",
- "@smithy/types": "^4.14.2",
- "tslib": "^2.6.2"
+ "@babel/helper-plugin-utils": "^7.10.4"
},
- "engines": {
- "node": ">=20.0.0"
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "node_modules/@aws-sdk/region-config-resolver": {
- "version": "3.972.19",
- "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.972.19.tgz",
- "integrity": "sha512-ol9yhY2nzPTrQoKX9WZ8cps2JABcDt0Dlhr59FRYYW/2S5h07PFrhfZZzD8sXZ8XpYfObTIJ+evmbcz41m1SJQ==",
- "license": "Apache-2.0",
+ "node_modules/@babel/plugin-syntax-json-strings": {
+ "version": "7.8.3",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "@aws-sdk/core": "^3.974.15",
- "tslib": "^2.6.2"
+ "@babel/helper-plugin-utils": "^7.8.0"
},
- "engines": {
- "node": ">=20.0.0"
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "node_modules/@aws-sdk/s3-request-presigner": {
- "version": "3.1041.0",
- "license": "Apache-2.0",
+ "node_modules/@babel/plugin-syntax-jsx": {
+ "version": "7.28.6",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "@aws-sdk/signature-v4-multi-region": "^3.996.25",
- "@aws-sdk/types": "^3.973.8",
- "@aws-sdk/util-format-url": "^3.972.10",
- "@smithy/middleware-endpoint": "^4.4.32",
- "@smithy/protocol-http": "^5.3.14",
- "@smithy/smithy-client": "^4.12.13",
- "@smithy/types": "^4.14.1",
- "tslib": "^2.6.2"
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
- "node": ">=20.0.0"
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "node_modules/@aws-sdk/signature-v4-multi-region": {
- "version": "3.996.28",
- "license": "Apache-2.0",
+ "node_modules/@babel/plugin-syntax-logical-assignment-operators": {
+ "version": "7.10.4",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "@aws-sdk/types": "^3.973.9",
- "@smithy/core": "^3.24.3",
- "@smithy/signature-v4": "^5.4.2",
- "@smithy/types": "^4.14.2",
- "tslib": "^2.6.2"
+ "@babel/helper-plugin-utils": "^7.10.4"
},
- "engines": {
- "node": ">=20.0.0"
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "node_modules/@aws-sdk/token-providers": {
- "version": "3.1052.0",
- "license": "Apache-2.0",
+ "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": {
+ "version": "7.8.3",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "@aws-sdk/core": "^3.974.13",
- "@aws-sdk/nested-clients": "^3.997.11",
- "@aws-sdk/types": "^3.973.9",
- "@smithy/core": "^3.24.3",
- "@smithy/types": "^4.14.2",
- "tslib": "^2.6.2"
+ "@babel/helper-plugin-utils": "^7.8.0"
},
- "engines": {
- "node": ">=20.0.0"
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "node_modules/@aws-sdk/types": {
- "version": "3.973.9",
- "license": "Apache-2.0",
+ "node_modules/@babel/plugin-syntax-numeric-separator": {
+ "version": "7.10.4",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "@smithy/types": "^4.14.2",
- "tslib": "^2.6.2"
+ "@babel/helper-plugin-utils": "^7.10.4"
},
- "engines": {
- "node": ">=20.0.0"
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "node_modules/@aws-sdk/util-endpoints": {
- "version": "3.996.14",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.996.14.tgz",
- "integrity": "sha512-9Nr9UXPnSt8k+SJKxLlv9b4VCvP/fJnjxEyumR/cN5YYFUEz6zW+C8RfAAS8JjhUGigyymlCg3tAo7+oyr/uZg==",
- "license": "Apache-2.0",
+ "node_modules/@babel/plugin-syntax-object-rest-spread": {
+ "version": "7.8.3",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "@aws-sdk/core": "^3.974.15",
- "@smithy/core": "^3.24.5",
- "tslib": "^2.6.2"
+ "@babel/helper-plugin-utils": "^7.8.0"
},
- "engines": {
- "node": ">=20.0.0"
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "node_modules/@aws-sdk/util-format-url": {
- "version": "3.972.10",
- "license": "Apache-2.0",
+ "node_modules/@babel/plugin-syntax-optional-catch-binding": {
+ "version": "7.8.3",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "@aws-sdk/types": "^3.973.8",
- "@smithy/querystring-builder": "^4.2.14",
- "@smithy/types": "^4.14.1",
- "tslib": "^2.6.2"
+ "@babel/helper-plugin-utils": "^7.8.0"
},
- "engines": {
- "node": ">=20.0.0"
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "node_modules/@aws-sdk/util-locate-window": {
- "version": "3.965.5",
- "license": "Apache-2.0",
+ "node_modules/@babel/plugin-syntax-optional-chaining": {
+ "version": "7.8.3",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "tslib": "^2.6.2"
+ "@babel/helper-plugin-utils": "^7.8.0"
},
- "engines": {
- "node": ">=20.0.0"
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "node_modules/@aws-sdk/util-user-agent-browser": {
- "version": "3.972.16",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.972.16.tgz",
- "integrity": "sha512-h4VTGl6lxJkM/odeRPzXB5YZbkxVr5FnJ2Bwv78+IY9Ah7QsXSBhefvvz1CQDoQNzOLYsNMQ3PhMQM7i6tpoPQ==",
- "license": "Apache-2.0",
+ "node_modules/@babel/plugin-syntax-private-property-in-object": {
+ "version": "7.14.5",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "@aws-sdk/core": "^3.974.15",
- "tslib": "^2.6.2"
+ "@babel/helper-plugin-utils": "^7.14.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "node_modules/@aws-sdk/util-user-agent-node": {
- "version": "3.973.31",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.973.31.tgz",
- "integrity": "sha512-hYTWRlhOnhs2tYCYgNK30jaQKyl4FvXQl0AK9tKRZq8sunS9ygi+USYiG6LCb7DuqT0Gl3jONP9jtb4D4NYhHw==",
- "license": "Apache-2.0",
+ "node_modules/@babel/plugin-syntax-top-level-await": {
+ "version": "7.14.5",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "@aws-sdk/core": "^3.974.15",
- "tslib": "^2.6.2"
+ "@babel/helper-plugin-utils": "^7.14.5"
},
"engines": {
- "node": ">=20.0.0"
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "node_modules/@aws-sdk/xml-builder": {
- "version": "3.972.26",
- "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.972.26.tgz",
- "integrity": "sha512-cDbrqvDS73whl6YAPSPq0U6whzG6UWI9PuWh0wrUuGoZexhWEqhdunbukV7iBoaWnFV1AODutM5hOD6rtn439g==",
- "license": "Apache-2.0",
+ "node_modules/@babel/plugin-syntax-typescript": {
+ "version": "7.28.6",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "@smithy/types": "^4.14.2",
- "fast-xml-parser": "5.7.3",
- "tslib": "^2.6.2"
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
- "node": ">=20.0.0"
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "node_modules/@aws/lambda-invoke-store": {
- "version": "0.2.4",
- "license": "Apache-2.0",
+ "node_modules/@babel/plugin-transform-react-jsx-self": {
+ "version": "7.27.1",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.27.1"
+ },
"engines": {
- "node": ">=18.0.0"
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/code-frame": {
- "version": "7.29.0",
- "dev": true,
+ "node_modules/@babel/plugin-transform-react-jsx-source": {
+ "version": "7.27.1",
"license": "MIT",
"dependencies": {
- "@babel/helper-validator-identifier": "^7.28.5",
- "js-tokens": "^4.0.0",
- "picocolors": "^1.1.1"
+ "@babel/helper-plugin-utils": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/compat-data": {
- "version": "7.29.3",
- "dev": true,
+ "node_modules/@babel/runtime": {
+ "version": "7.29.7",
"license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
- "node_modules/@babel/core": {
+ "node_modules/@babel/template": {
+ "version": "7.28.6",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.28.6",
+ "@babel/parser": "^7.28.6",
+ "@babel/types": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/traverse": {
"version": "7.29.0",
- "dev": true,
"license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.29.0",
"@babel/generator": "^7.29.0",
- "@babel/helper-compilation-targets": "^7.28.6",
- "@babel/helper-module-transforms": "^7.28.6",
- "@babel/helpers": "^7.28.6",
+ "@babel/helper-globals": "^7.28.0",
"@babel/parser": "^7.29.0",
"@babel/template": "^7.28.6",
- "@babel/traverse": "^7.29.0",
"@babel/types": "^7.29.0",
- "@jridgewell/remapping": "^2.3.5",
- "convert-source-map": "^2.0.0",
- "debug": "^4.1.0",
- "gensync": "^1.0.0-beta.2",
- "json5": "^2.2.3",
- "semver": "^6.3.1"
+ "debug": "^4.3.1"
},
"engines": {
"node": ">=6.9.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/babel"
- }
- },
- "node_modules/@babel/core/node_modules/semver": {
- "version": "6.3.1",
- "dev": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
}
},
- "node_modules/@babel/generator": {
- "version": "7.29.1",
- "dev": true,
+ "node_modules/@babel/types": {
+ "version": "7.29.0",
"license": "MIT",
"dependencies": {
- "@babel/parser": "^7.29.0",
- "@babel/types": "^7.29.0",
- "@jridgewell/gen-mapping": "^0.3.12",
- "@jridgewell/trace-mapping": "^0.3.28",
- "jsesc": "^3.0.2"
+ "@babel/helper-string-parser": "^7.27.1",
+ "@babel/helper-validator-identifier": "^7.28.5"
},
"engines": {
"node": ">=6.9.0"
}
},
- "node_modules/@babel/helper-compilation-targets": {
- "version": "7.28.6",
- "dev": true,
+ "node_modules/@bull-board/api": {
+ "version": "7.1.5",
+ "license": "MIT",
+ "dependencies": {
+ "redis-info": "^3.1.0"
+ },
+ "peerDependencies": {
+ "@bull-board/ui": "7.1.5"
+ }
+ },
+ "node_modules/@bull-board/express": {
+ "version": "7.1.5",
+ "license": "MIT",
+ "dependencies": {
+ "@bull-board/api": "7.1.5",
+ "@bull-board/ui": "7.1.5",
+ "ejs": "^5.0.2",
+ "express": "^5.2.1"
+ }
+ },
+ "node_modules/@bull-board/ui": {
+ "version": "7.1.5",
+ "license": "MIT",
+ "dependencies": {
+ "@bull-board/api": "7.1.5"
+ }
+ },
+ "node_modules/@capsizecss/unpack": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@capsizecss/unpack/-/unpack-4.0.1.tgz",
+ "integrity": "sha512-CuNiSqg7+e1cO/GjffyMOm5Tt2jUF9CWHHnvQ/UkqvtkGfHdgwEC0wpmq7fkN3gxwpRnrAN0WzO3vREKmNolMQ==",
"license": "MIT",
"dependencies": {
- "@babel/compat-data": "^7.28.6",
- "@babel/helper-validator-option": "^7.27.1",
- "browserslist": "^4.24.0",
- "lru-cache": "^5.1.1",
- "semver": "^6.3.1"
+ "fontkitten": "^1.0.3"
},
"engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-compilation-targets/node_modules/semver": {
- "version": "6.3.1",
- "dev": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
+ "node": ">=18"
}
},
- "node_modules/@babel/helper-globals": {
- "version": "7.28.0",
+ "node_modules/@csstools/color-helpers": {
+ "version": "5.1.0",
"dev": true,
- "license": "MIT",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
"engines": {
- "node": ">=6.9.0"
+ "node": ">=18"
}
},
- "node_modules/@babel/helper-module-imports": {
- "version": "7.28.6",
+ "node_modules/@csstools/css-calc": {
+ "version": "2.1.4",
"dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
"license": "MIT",
- "dependencies": {
- "@babel/traverse": "^7.28.6",
- "@babel/types": "^7.28.6"
- },
"engines": {
- "node": ">=6.9.0"
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4"
}
},
- "node_modules/@babel/helper-module-transforms": {
- "version": "7.28.6",
+ "node_modules/@csstools/css-color-parser": {
+ "version": "3.1.0",
"dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
"license": "MIT",
"dependencies": {
- "@babel/helper-module-imports": "^7.28.6",
- "@babel/helper-validator-identifier": "^7.28.5",
- "@babel/traverse": "^7.28.6"
+ "@csstools/color-helpers": "^5.1.0",
+ "@csstools/css-calc": "^2.1.4"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">=18"
},
"peerDependencies": {
- "@babel/core": "^7.0.0"
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4"
}
},
- "node_modules/@babel/helper-plugin-utils": {
- "version": "7.28.6",
+ "node_modules/@csstools/css-parser-algorithms": {
+ "version": "3.0.5",
"dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
"license": "MIT",
"engines": {
- "node": ">=6.9.0"
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@csstools/css-tokenizer": "^3.0.4"
}
},
- "node_modules/@babel/helper-string-parser": {
- "version": "7.27.1",
+ "node_modules/@csstools/css-tokenizer": {
+ "version": "3.0.4",
"dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
"license": "MIT",
"engines": {
- "node": ">=6.9.0"
+ "node": ">=18"
}
},
- "node_modules/@babel/helper-validator-identifier": {
- "version": "7.28.5",
- "dev": true,
+ "node_modules/@dnd-kit/accessibility": {
+ "version": "3.1.1",
"license": "MIT",
- "engines": {
- "node": ">=6.9.0"
+ "dependencies": {
+ "tslib": "^2.0.0"
+ },
+ "peerDependencies": {
+ "react": ">=16.8.0"
}
},
- "node_modules/@babel/helper-validator-option": {
- "version": "7.27.1",
- "dev": true,
+ "node_modules/@dnd-kit/core": {
+ "version": "6.3.1",
"license": "MIT",
- "engines": {
- "node": ">=6.9.0"
+ "dependencies": {
+ "@dnd-kit/accessibility": "^3.1.1",
+ "@dnd-kit/utilities": "^3.2.2",
+ "tslib": "^2.0.0"
+ },
+ "peerDependencies": {
+ "react": ">=16.8.0",
+ "react-dom": ">=16.8.0"
}
},
- "node_modules/@babel/helpers": {
- "version": "7.29.2",
- "dev": true,
+ "node_modules/@dnd-kit/modifiers": {
+ "version": "9.0.0",
"license": "MIT",
"dependencies": {
- "@babel/template": "^7.28.6",
- "@babel/types": "^7.29.0"
+ "@dnd-kit/utilities": "^3.2.2",
+ "tslib": "^2.0.0"
},
- "engines": {
- "node": ">=6.9.0"
+ "peerDependencies": {
+ "@dnd-kit/core": "^6.3.0",
+ "react": ">=16.8.0"
}
},
- "node_modules/@babel/parser": {
- "version": "7.29.3",
- "dev": true,
+ "node_modules/@dnd-kit/sortable": {
+ "version": "10.0.0",
"license": "MIT",
"dependencies": {
- "@babel/types": "^7.29.0"
- },
- "bin": {
- "parser": "bin/babel-parser.js"
+ "@dnd-kit/utilities": "^3.2.2",
+ "tslib": "^2.0.0"
},
- "engines": {
- "node": ">=6.0.0"
+ "peerDependencies": {
+ "@dnd-kit/core": "^6.3.0",
+ "react": ">=16.8.0"
}
},
- "node_modules/@babel/plugin-syntax-async-generators": {
- "version": "7.8.4",
- "dev": true,
+ "node_modules/@dnd-kit/utilities": {
+ "version": "3.2.2",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
+ "tslib": "^2.0.0"
},
"peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "react": ">=16.8.0"
}
},
- "node_modules/@babel/plugin-syntax-bigint": {
- "version": "7.8.3",
- "dev": true,
+ "node_modules/@emnapi/core": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz",
+ "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "@emnapi/wasi-threads": "1.2.1",
+ "tslib": "^2.4.0"
}
},
- "node_modules/@babel/plugin-syntax-class-properties": {
- "version": "7.12.13",
- "dev": true,
+ "node_modules/@emnapi/runtime": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz",
+ "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.12.13"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "tslib": "^2.4.0"
}
},
- "node_modules/@babel/plugin-syntax-class-static-block": {
- "version": "7.14.5",
- "dev": true,
+ "node_modules/@emnapi/wasi-threads": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz",
+ "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
+ "tslib": "^2.4.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,
+ "license": "MIT",
+ "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,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": ">=12"
}
},
- "node_modules/@babel/plugin-syntax-import-attributes": {
- "version": "7.28.6",
+ "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,
"license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.28.6"
- },
+ "optional": true,
+ "os": [
+ "android"
+ ],
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": ">=12"
}
},
- "node_modules/@babel/plugin-syntax-import-meta": {
- "version": "7.10.4",
+ "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,
"license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.10.4"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
}
},
- "node_modules/@babel/plugin-syntax-json-strings": {
- "version": "7.8.3",
+ "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,
"license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
}
},
- "node_modules/@babel/plugin-syntax-jsx": {
- "version": "7.28.6",
+ "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,
"license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.28.6"
- },
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": ">=12"
}
},
- "node_modules/@babel/plugin-syntax-logical-assignment-operators": {
- "version": "7.10.4",
+ "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,
"license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.10.4"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
}
},
- "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": {
- "version": "7.8.3",
+ "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,
"license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
}
},
- "node_modules/@babel/plugin-syntax-numeric-separator": {
- "version": "7.10.4",
+ "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,
"license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.10.4"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
}
},
- "node_modules/@babel/plugin-syntax-object-rest-spread": {
- "version": "7.8.3",
+ "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,
"license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
}
},
- "node_modules/@babel/plugin-syntax-optional-catch-binding": {
- "version": "7.8.3",
+ "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,
"license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
}
},
- "node_modules/@babel/plugin-syntax-optional-chaining": {
- "version": "7.8.3",
+ "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,
"license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
}
},
- "node_modules/@babel/plugin-syntax-private-property-in-object": {
- "version": "7.14.5",
+ "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,
"license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": ">=12"
}
},
- "node_modules/@babel/plugin-syntax-top-level-await": {
- "version": "7.14.5",
+ "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,
"license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": ">=12"
}
},
- "node_modules/@babel/plugin-syntax-typescript": {
- "version": "7.28.6",
+ "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,
"license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.28.6"
- },
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": ">=12"
}
},
- "node_modules/@babel/plugin-transform-react-jsx-self": {
- "version": "7.27.1",
+ "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,
"license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": ">=12"
}
},
- "node_modules/@babel/plugin-transform-react-jsx-source": {
- "version": "7.27.1",
+ "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,
"license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": ">=12"
}
},
- "node_modules/@babel/runtime": {
- "version": "7.29.7",
+ "node_modules/@esbuild/netbsd-arm64": {
+ "version": "0.27.7",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.7.tgz",
+ "integrity": "sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==",
+ "cpu": [
+ "arm64"
+ ],
"license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
"engines": {
- "node": ">=6.9.0"
+ "node": ">=18"
}
},
- "node_modules/@babel/template": {
- "version": "7.28.6",
+ "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,
"license": "MIT",
- "dependencies": {
- "@babel/code-frame": "^7.28.6",
- "@babel/parser": "^7.28.6",
- "@babel/types": "^7.28.6"
- },
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
"engines": {
- "node": ">=6.9.0"
+ "node": ">=12"
}
},
- "node_modules/@babel/traverse": {
- "version": "7.29.0",
- "dev": true,
+ "node_modules/@esbuild/openbsd-arm64": {
+ "version": "0.27.7",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.7.tgz",
+ "integrity": "sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==",
+ "cpu": [
+ "arm64"
+ ],
"license": "MIT",
- "dependencies": {
- "@babel/code-frame": "^7.29.0",
- "@babel/generator": "^7.29.0",
- "@babel/helper-globals": "^7.28.0",
- "@babel/parser": "^7.29.0",
- "@babel/template": "^7.28.6",
- "@babel/types": "^7.29.0",
- "debug": "^4.3.1"
- },
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
"engines": {
- "node": ">=6.9.0"
+ "node": ">=18"
}
},
- "node_modules/@babel/types": {
- "version": "7.29.0",
+ "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,
"license": "MIT",
- "dependencies": {
- "@babel/helper-string-parser": "^7.27.1",
- "@babel/helper-validator-identifier": "^7.28.5"
- },
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
"engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@bull-board/api": {
- "version": "7.1.5",
- "license": "MIT",
- "dependencies": {
- "redis-info": "^3.1.0"
- },
- "peerDependencies": {
- "@bull-board/ui": "7.1.5"
+ "node": ">=12"
}
},
- "node_modules/@bull-board/express": {
- "version": "7.1.5",
+ "node_modules/@esbuild/openharmony-arm64": {
+ "version": "0.27.7",
+ "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.7.tgz",
+ "integrity": "sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==",
+ "cpu": [
+ "arm64"
+ ],
"license": "MIT",
- "dependencies": {
- "@bull-board/api": "7.1.5",
- "@bull-board/ui": "7.1.5",
- "ejs": "^5.0.2",
- "express": "^5.2.1"
+ "optional": true,
+ "os": [
+ "openharmony"
+ ],
+ "engines": {
+ "node": ">=18"
}
},
- "node_modules/@bull-board/ui": {
- "version": "7.1.5",
+ "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,
"license": "MIT",
- "dependencies": {
- "@bull-board/api": "7.1.5"
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=12"
}
},
- "node_modules/@csstools/color-helpers": {
- "version": "5.1.0",
+ "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,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
],
- "license": "MIT-0",
"engines": {
- "node": ">=18"
+ "node": ">=12"
}
},
- "node_modules/@csstools/css-calc": {
- "version": "2.1.4",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
+ "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,
"license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
"engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@csstools/css-parser-algorithms": "^3.0.5",
- "@csstools/css-tokenizer": "^3.0.4"
+ "node": ">=12"
}
},
- "node_modules/@csstools/css-color-parser": {
- "version": "3.1.0",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
+ "node_modules/@esbuild/win32-x64": {
+ "version": "0.27.7",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@eslint-community/eslint-utils": {
+ "version": "4.9.1",
+ "dev": true,
"license": "MIT",
"dependencies": {
- "@csstools/color-helpers": "^5.1.0",
- "@csstools/css-calc": "^2.1.4"
+ "eslint-visitor-keys": "^3.4.3"
},
"engines": {
- "node": ">=18"
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
},
"peerDependencies": {
- "@csstools/css-parser-algorithms": "^3.0.5",
- "@csstools/css-tokenizer": "^3.0.4"
+ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
}
},
- "node_modules/@csstools/css-parser-algorithms": {
- "version": "3.0.5",
+ "node_modules/@eslint-community/regexpp": {
+ "version": "4.12.2",
"dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
"license": "MIT",
"engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@csstools/css-tokenizer": "^3.0.4"
+ "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
}
},
- "node_modules/@csstools/css-tokenizer": {
- "version": "3.0.4",
+ "node_modules/@eslint/config-array": {
+ "version": "0.21.2",
"dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@eslint/object-schema": "^2.1.7",
+ "debug": "^4.3.1",
+ "minimatch": "^3.1.5"
+ },
"engines": {
- "node": ">=18"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
- "node_modules/@dnd-kit/accessibility": {
- "version": "3.1.1",
+ "node_modules/@eslint/config-array/node_modules/balanced-match": {
+ "version": "1.0.2",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@eslint/config-array/node_modules/brace-expansion": {
+ "version": "1.1.14",
+ "dev": true,
"license": "MIT",
"dependencies": {
- "tslib": "^2.0.0"
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/@eslint/config-array/node_modules/minimatch": {
+ "version": "3.1.5",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
},
- "peerDependencies": {
- "react": ">=16.8.0"
+ "engines": {
+ "node": "*"
}
},
- "node_modules/@dnd-kit/core": {
- "version": "6.3.1",
- "license": "MIT",
+ "node_modules/@eslint/config-helpers": {
+ "version": "0.4.2",
+ "dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "@dnd-kit/accessibility": "^3.1.1",
- "@dnd-kit/utilities": "^3.2.2",
- "tslib": "^2.0.0"
+ "@eslint/core": "^0.17.0"
},
- "peerDependencies": {
- "react": ">=16.8.0",
- "react-dom": ">=16.8.0"
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
- "node_modules/@dnd-kit/modifiers": {
- "version": "9.0.0",
- "license": "MIT",
+ "node_modules/@eslint/core": {
+ "version": "0.17.0",
+ "dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "@dnd-kit/utilities": "^3.2.2",
- "tslib": "^2.0.0"
+ "@types/json-schema": "^7.0.15"
},
- "peerDependencies": {
- "@dnd-kit/core": "^6.3.0",
- "react": ">=16.8.0"
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
- "node_modules/@dnd-kit/sortable": {
- "version": "10.0.0",
+ "node_modules/@eslint/eslintrc": {
+ "version": "3.3.5",
+ "dev": true,
"license": "MIT",
"dependencies": {
- "@dnd-kit/utilities": "^3.2.2",
- "tslib": "^2.0.0"
+ "ajv": "^6.14.0",
+ "debug": "^4.3.2",
+ "espree": "^10.0.1",
+ "globals": "^14.0.0",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^4.1.1",
+ "minimatch": "^3.1.5",
+ "strip-json-comments": "^3.1.1"
},
- "peerDependencies": {
- "@dnd-kit/core": "^6.3.0",
- "react": ">=16.8.0"
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
}
},
- "node_modules/@dnd-kit/utilities": {
- "version": "3.2.2",
+ "node_modules/@eslint/eslintrc/node_modules/balanced-match": {
+ "version": "1.0.2",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@eslint/eslintrc/node_modules/brace-expansion": {
+ "version": "1.1.14",
+ "dev": true,
"license": "MIT",
"dependencies": {
- "tslib": "^2.0.0"
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/globals": {
+ "version": "14.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
},
- "peerDependencies": {
- "react": ">=16.8.0"
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@emnapi/core": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz",
- "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==",
+ "node_modules/@eslint/eslintrc/node_modules/ignore": {
+ "version": "5.3.2",
+ "dev": true,
"license": "MIT",
- "optional": true,
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/minimatch": {
+ "version": "3.1.5",
+ "dev": true,
+ "license": "ISC",
"dependencies": {
- "@emnapi/wasi-threads": "1.2.1",
- "tslib": "^2.4.0"
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
}
},
- "node_modules/@emnapi/runtime": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz",
- "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==",
+ "node_modules/@eslint/js": {
+ "version": "9.39.4",
+ "dev": true,
"license": "MIT",
- "optional": true,
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://eslint.org/donate"
+ }
+ },
+ "node_modules/@eslint/object-schema": {
+ "version": "2.1.7",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ }
+ },
+ "node_modules/@eslint/plugin-kit": {
+ "version": "0.4.1",
+ "dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "tslib": "^2.4.0"
+ "@eslint/core": "^0.17.0",
+ "levn": "^0.4.1"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
- "node_modules/@emnapi/wasi-threads": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz",
- "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==",
- "license": "MIT",
- "optional": true,
+ "node_modules/@humanfs/core": {
+ "version": "0.19.2",
+ "dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "tslib": "^2.4.0"
+ "@humanfs/types": "^0.15.0"
+ },
+ "engines": {
+ "node": ">=18.18.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"
- ],
+ "node_modules/@humanfs/node": {
+ "version": "0.16.8",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "aix"
- ],
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@humanfs/core": "^0.19.2",
+ "@humanfs/types": "^0.15.0",
+ "@humanwhocodes/retry": "^0.4.0"
+ },
"engines": {
- "node": ">=12"
+ "node": ">=18.18.0"
}
},
- "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"
- ],
+ "node_modules/@humanfs/types": {
+ "version": "0.15.0",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
+ "license": "Apache-2.0",
"engines": {
- "node": ">=12"
+ "node": ">=18.18.0"
}
},
- "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"
- ],
+ "node_modules/@humanwhocodes/module-importer": {
+ "version": "1.0.1",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
+ "license": "Apache-2.0",
"engines": {
- "node": ">=12"
+ "node": ">=12.22"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/nzakas"
}
},
- "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"
- ],
+ "node_modules/@humanwhocodes/retry": {
+ "version": "0.4.3",
"dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=18.18"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/nzakas"
+ }
+ },
+ "node_modules/@img/colour": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz",
+ "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==",
"license": "MIT",
"optional": true,
- "os": [
- "android"
- ],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
- "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==",
+ "node_modules/@img/sharp-darwin-arm64": {
+ "version": "0.34.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz",
+ "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==",
"cpu": [
"arm64"
],
- "dev": true,
- "license": "MIT",
+ "license": "Apache-2.0",
"optional": true,
"os": [
"darwin"
],
"engines": {
- "node": ">=12"
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-darwin-arm64": "1.2.4"
}
},
- "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==",
+ "node_modules/@img/sharp-darwin-x64": {
+ "version": "0.34.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz",
+ "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==",
"cpu": [
"x64"
],
- "dev": true,
- "license": "MIT",
+ "license": "Apache-2.0",
"optional": true,
"os": [
"darwin"
],
"engines": {
- "node": ">=12"
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-darwin-x64": "1.2.4"
}
},
- "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==",
+ "node_modules/@img/sharp-libvips-darwin-arm64": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz",
+ "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==",
"cpu": [
"arm64"
],
- "dev": true,
- "license": "MIT",
+ "license": "LGPL-3.0-or-later",
"optional": true,
"os": [
- "freebsd"
+ "darwin"
],
- "engines": {
- "node": ">=12"
+ "funding": {
+ "url": "https://opencollective.com/libvips"
}
},
- "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==",
+ "node_modules/@img/sharp-libvips-darwin-x64": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz",
+ "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==",
"cpu": [
"x64"
],
- "dev": true,
- "license": "MIT",
+ "license": "LGPL-3.0-or-later",
"optional": true,
"os": [
- "freebsd"
+ "darwin"
],
- "engines": {
- "node": ">=12"
+ "funding": {
+ "url": "https://opencollective.com/libvips"
}
},
- "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==",
+ "node_modules/@img/sharp-libvips-linux-arm": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz",
+ "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==",
"cpu": [
"arm"
],
- "dev": true,
- "license": "MIT",
+ "license": "LGPL-3.0-or-later",
"optional": true,
"os": [
"linux"
],
- "engines": {
- "node": ">=12"
+ "funding": {
+ "url": "https://opencollective.com/libvips"
}
},
- "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==",
+ "node_modules/@img/sharp-libvips-linux-arm64": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz",
+ "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==",
"cpu": [
"arm64"
],
- "dev": true,
- "license": "MIT",
+ "license": "LGPL-3.0-or-later",
"optional": true,
"os": [
"linux"
],
- "engines": {
- "node": ">=12"
+ "funding": {
+ "url": "https://opencollective.com/libvips"
}
},
- "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==",
+ "node_modules/@img/sharp-libvips-linux-ppc64": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz",
+ "integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==",
"cpu": [
- "ia32"
+ "ppc64"
],
- "dev": true,
- "license": "MIT",
+ "license": "LGPL-3.0-or-later",
"optional": true,
"os": [
"linux"
],
- "engines": {
- "node": ">=12"
+ "funding": {
+ "url": "https://opencollective.com/libvips"
}
},
- "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==",
+ "node_modules/@img/sharp-libvips-linux-riscv64": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz",
+ "integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==",
"cpu": [
- "loong64"
+ "riscv64"
],
- "dev": true,
- "license": "MIT",
+ "license": "LGPL-3.0-or-later",
"optional": true,
"os": [
"linux"
],
- "engines": {
- "node": ">=12"
+ "funding": {
+ "url": "https://opencollective.com/libvips"
}
},
- "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==",
+ "node_modules/@img/sharp-libvips-linux-s390x": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz",
+ "integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==",
"cpu": [
- "mips64el"
+ "s390x"
],
- "dev": true,
- "license": "MIT",
+ "license": "LGPL-3.0-or-later",
"optional": true,
"os": [
"linux"
],
- "engines": {
- "node": ">=12"
+ "funding": {
+ "url": "https://opencollective.com/libvips"
}
},
- "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==",
+ "node_modules/@img/sharp-libvips-linux-x64": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz",
+ "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==",
"cpu": [
- "ppc64"
+ "x64"
],
- "dev": true,
- "license": "MIT",
+ "license": "LGPL-3.0-or-later",
"optional": true,
"os": [
"linux"
],
- "engines": {
- "node": ">=12"
+ "funding": {
+ "url": "https://opencollective.com/libvips"
}
},
- "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==",
+ "node_modules/@img/sharp-libvips-linuxmusl-arm64": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz",
+ "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==",
"cpu": [
- "riscv64"
+ "arm64"
],
- "dev": true,
- "license": "MIT",
+ "license": "LGPL-3.0-or-later",
"optional": true,
"os": [
"linux"
],
- "engines": {
- "node": ">=12"
+ "funding": {
+ "url": "https://opencollective.com/libvips"
}
},
- "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==",
+ "node_modules/@img/sharp-libvips-linuxmusl-x64": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz",
+ "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==",
"cpu": [
- "s390x"
+ "x64"
],
- "dev": true,
- "license": "MIT",
+ "license": "LGPL-3.0-or-later",
"optional": true,
"os": [
"linux"
],
- "engines": {
- "node": ">=12"
+ "funding": {
+ "url": "https://opencollective.com/libvips"
}
},
- "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==",
+ "node_modules/@img/sharp-linux-arm": {
+ "version": "0.34.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz",
+ "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==",
"cpu": [
- "x64"
+ "arm"
],
- "dev": true,
- "license": "MIT",
+ "license": "Apache-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
- "node": ">=12"
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linux-arm": "1.2.4"
}
},
- "node_modules/@esbuild/netbsd-arm64": {
- "version": "0.27.7",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.7.tgz",
- "integrity": "sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==",
+ "node_modules/@img/sharp-linux-arm64": {
+ "version": "0.34.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz",
+ "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==",
"cpu": [
"arm64"
],
- "license": "MIT",
+ "license": "Apache-2.0",
"optional": true,
"os": [
- "netbsd"
+ "linux"
],
"engines": {
- "node": ">=18"
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linux-arm64": "1.2.4"
}
},
- "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==",
+ "node_modules/@img/sharp-linux-ppc64": {
+ "version": "0.34.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz",
+ "integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==",
"cpu": [
- "x64"
+ "ppc64"
],
- "dev": true,
- "license": "MIT",
+ "license": "Apache-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linux-ppc64": "1.2.4"
+ }
+ },
+ "node_modules/@img/sharp-linux-riscv64": {
+ "version": "0.34.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz",
+ "integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==",
+ "cpu": [
+ "riscv64"
+ ],
+ "license": "Apache-2.0",
"optional": true,
"os": [
- "netbsd"
+ "linux"
],
"engines": {
- "node": ">=12"
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linux-riscv64": "1.2.4"
}
},
- "node_modules/@esbuild/openbsd-arm64": {
- "version": "0.27.7",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.7.tgz",
- "integrity": "sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==",
+ "node_modules/@img/sharp-linux-s390x": {
+ "version": "0.34.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz",
+ "integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==",
"cpu": [
- "arm64"
+ "s390x"
],
- "license": "MIT",
+ "license": "Apache-2.0",
"optional": true,
"os": [
- "openbsd"
+ "linux"
],
"engines": {
- "node": ">=18"
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linux-s390x": "1.2.4"
}
},
- "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==",
+ "node_modules/@img/sharp-linux-x64": {
+ "version": "0.34.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz",
+ "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==",
"cpu": [
"x64"
],
- "dev": true,
- "license": "MIT",
+ "license": "Apache-2.0",
"optional": true,
"os": [
- "openbsd"
+ "linux"
],
"engines": {
- "node": ">=12"
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linux-x64": "1.2.4"
}
},
- "node_modules/@esbuild/openharmony-arm64": {
- "version": "0.27.7",
- "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.7.tgz",
- "integrity": "sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==",
+ "node_modules/@img/sharp-linuxmusl-arm64": {
+ "version": "0.34.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz",
+ "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==",
"cpu": [
"arm64"
],
- "license": "MIT",
+ "license": "Apache-2.0",
"optional": true,
"os": [
- "openharmony"
+ "linux"
],
"engines": {
- "node": ">=18"
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linuxmusl-arm64": "1.2.4"
}
},
- "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==",
+ "node_modules/@img/sharp-linuxmusl-x64": {
+ "version": "0.34.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz",
+ "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==",
"cpu": [
"x64"
],
- "dev": true,
- "license": "MIT",
+ "license": "Apache-2.0",
"optional": true,
"os": [
- "sunos"
+ "linux"
],
"engines": {
- "node": ">=12"
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linuxmusl-x64": "1.2.4"
}
},
- "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==",
+ "node_modules/@img/sharp-wasm32": {
+ "version": "0.34.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz",
+ "integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==",
+ "cpu": [
+ "wasm32"
+ ],
+ "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT",
+ "optional": true,
+ "dependencies": {
+ "@emnapi/runtime": "^1.7.0"
+ },
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-win32-arm64": {
+ "version": "0.34.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz",
+ "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==",
"cpu": [
"arm64"
],
- "dev": true,
- "license": "MIT",
+ "license": "Apache-2.0 AND LGPL-3.0-or-later",
"optional": true,
"os": [
"win32"
],
"engines": {
- "node": ">=12"
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
}
},
- "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==",
+ "node_modules/@img/sharp-win32-ia32": {
+ "version": "0.34.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz",
+ "integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==",
"cpu": [
"ia32"
],
- "dev": true,
- "license": "MIT",
+ "license": "Apache-2.0 AND LGPL-3.0-or-later",
"optional": true,
"os": [
"win32"
],
"engines": {
- "node": ">=12"
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
}
},
- "node_modules/@esbuild/win32-x64": {
- "version": "0.27.7",
+ "node_modules/@img/sharp-win32-x64": {
+ "version": "0.34.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz",
+ "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==",
"cpu": [
"x64"
],
- "license": "MIT",
+ "license": "Apache-2.0 AND LGPL-3.0-or-later",
"optional": true,
"os": [
"win32"
],
"engines": {
- "node": ">=18"
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
}
},
- "node_modules/@eslint-community/eslint-utils": {
- "version": "4.9.1",
+ "node_modules/@ioredis/commands": {
+ "version": "1.5.1",
+ "license": "MIT"
+ },
+ "node_modules/@isaacs/cliui": {
+ "version": "8.0.2",
"dev": true,
- "license": "MIT",
+ "license": "ISC",
"dependencies": {
- "eslint-visitor-keys": "^3.4.3"
+ "string-width": "^5.1.2",
+ "string-width-cjs": "npm:string-width@^4.2.0",
+ "strip-ansi": "^7.0.1",
+ "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
+ "wrap-ansi": "^8.1.0",
+ "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": ">=12"
+ }
+ },
+ "node_modules/@isaacs/cliui/node_modules/ansi-regex": {
+ "version": "6.2.2",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
},
"funding": {
- "url": "https://opencollective.com/eslint"
- },
- "peerDependencies": {
- "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
}
},
- "node_modules/@eslint-community/regexpp": {
- "version": "4.12.2",
+ "node_modules/@isaacs/cliui/node_modules/ansi-styles": {
+ "version": "6.2.3",
"dev": true,
"license": "MIT",
"engines": {
- "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/@eslint/config-array": {
- "version": "0.21.2",
+ "node_modules/@isaacs/cliui/node_modules/emoji-regex": {
+ "version": "9.2.2",
"dev": true,
- "license": "Apache-2.0",
+ "license": "MIT"
+ },
+ "node_modules/@isaacs/cliui/node_modules/string-width": {
+ "version": "5.1.2",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "@eslint/object-schema": "^2.1.7",
- "debug": "^4.3.1",
- "minimatch": "^3.1.5"
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
},
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@eslint/config-array/node_modules/balanced-match": {
- "version": "1.0.2",
+ "node_modules/@isaacs/cliui/node_modules/strip-ansi": {
+ "version": "7.2.0",
"dev": true,
- "license": "MIT"
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^6.2.2"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
},
- "node_modules/@eslint/config-array/node_modules/brace-expansion": {
- "version": "1.1.14",
+ "node_modules/@isaacs/cliui/node_modules/wrap-ansi": {
+ "version": "8.1.0",
"dev": true,
"license": "MIT",
"dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
+ "ansi-styles": "^6.1.0",
+ "string-width": "^5.0.1",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
- "node_modules/@eslint/config-array/node_modules/minimatch": {
- "version": "3.1.5",
+ "node_modules/@istanbuljs/load-nyc-config": {
+ "version": "1.1.0",
"dev": true,
"license": "ISC",
"dependencies": {
- "brace-expansion": "^1.1.7"
+ "camelcase": "^5.3.1",
+ "find-up": "^4.1.0",
+ "get-package-type": "^0.1.0",
+ "js-yaml": "^3.13.1",
+ "resolve-from": "^5.0.0"
},
"engines": {
- "node": "*"
+ "node": ">=8"
}
},
- "node_modules/@eslint/config-helpers": {
- "version": "0.4.2",
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": {
+ "version": "1.0.10",
"dev": true,
- "license": "Apache-2.0",
+ "license": "MIT",
"dependencies": {
- "@eslint/core": "^0.17.0"
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": {
+ "version": "4.1.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
},
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ "node": ">=8"
}
},
- "node_modules/@eslint/core": {
- "version": "0.17.0",
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": {
+ "version": "3.14.2",
"dev": true,
- "license": "Apache-2.0",
+ "license": "MIT",
"dependencies": {
- "@types/json-schema": "^7.0.15"
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
},
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
}
},
- "node_modules/@eslint/eslintrc": {
- "version": "3.3.5",
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": {
+ "version": "5.0.0",
"dev": true,
"license": "MIT",
"dependencies": {
- "ajv": "^6.14.0",
- "debug": "^4.3.2",
- "espree": "^10.0.1",
- "globals": "^14.0.0",
- "ignore": "^5.2.0",
- "import-fresh": "^3.2.1",
- "js-yaml": "^4.1.1",
- "minimatch": "^3.1.5",
- "strip-json-comments": "^3.1.1"
+ "p-locate": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": {
+ "version": "2.3.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-try": "^2.0.0"
},
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ "node": ">=6"
},
"funding": {
- "url": "https://opencollective.com/eslint"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@eslint/eslintrc/node_modules/balanced-match": {
- "version": "1.0.2",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@eslint/eslintrc/node_modules/brace-expansion": {
- "version": "1.1.14",
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": {
+ "version": "4.1.0",
"dev": true,
"license": "MIT",
"dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
+ "p-limit": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/@eslint/eslintrc/node_modules/globals": {
- "version": "14.0.0",
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": {
+ "version": "5.0.0",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=8"
}
},
- "node_modules/@eslint/eslintrc/node_modules/ignore": {
- "version": "5.3.2",
+ "node_modules/@istanbuljs/schema": {
+ "version": "0.1.6",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">= 4"
+ "node": ">=8"
}
},
- "node_modules/@eslint/eslintrc/node_modules/minimatch": {
- "version": "3.1.5",
+ "node_modules/@jest/console": {
+ "version": "30.3.0",
"dev": true,
- "license": "ISC",
+ "license": "MIT",
"dependencies": {
- "brace-expansion": "^1.1.7"
+ "@jest/types": "30.3.0",
+ "@types/node": "*",
+ "chalk": "^4.1.2",
+ "jest-message-util": "30.3.0",
+ "jest-util": "30.3.0",
+ "slash": "^3.0.0"
},
"engines": {
- "node": "*"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
- "node_modules/@eslint/js": {
- "version": "9.39.4",
+ "node_modules/@jest/core": {
+ "version": "30.3.0",
"dev": true,
"license": "MIT",
+ "dependencies": {
+ "@jest/console": "30.3.0",
+ "@jest/pattern": "30.0.1",
+ "@jest/reporters": "30.3.0",
+ "@jest/test-result": "30.3.0",
+ "@jest/transform": "30.3.0",
+ "@jest/types": "30.3.0",
+ "@types/node": "*",
+ "ansi-escapes": "^4.3.2",
+ "chalk": "^4.1.2",
+ "ci-info": "^4.2.0",
+ "exit-x": "^0.2.2",
+ "graceful-fs": "^4.2.11",
+ "jest-changed-files": "30.3.0",
+ "jest-config": "30.3.0",
+ "jest-haste-map": "30.3.0",
+ "jest-message-util": "30.3.0",
+ "jest-regex-util": "30.0.1",
+ "jest-resolve": "30.3.0",
+ "jest-resolve-dependencies": "30.3.0",
+ "jest-runner": "30.3.0",
+ "jest-runtime": "30.3.0",
+ "jest-snapshot": "30.3.0",
+ "jest-util": "30.3.0",
+ "jest-validate": "30.3.0",
+ "jest-watcher": "30.3.0",
+ "pretty-format": "30.3.0",
+ "slash": "^3.0.0"
+ },
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
},
- "funding": {
- "url": "https://eslint.org/donate"
+ "peerDependencies": {
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
+ },
+ "peerDependenciesMeta": {
+ "node-notifier": {
+ "optional": true
+ }
}
},
- "node_modules/@eslint/object-schema": {
- "version": "2.1.7",
+ "node_modules/@jest/diff-sequences": {
+ "version": "30.3.0",
"dev": true,
- "license": "Apache-2.0",
+ "license": "MIT",
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
- "node_modules/@eslint/plugin-kit": {
- "version": "0.4.1",
+ "node_modules/@jest/environment": {
+ "version": "30.3.0",
"dev": true,
- "license": "Apache-2.0",
+ "license": "MIT",
"dependencies": {
- "@eslint/core": "^0.17.0",
- "levn": "^0.4.1"
+ "@jest/fake-timers": "30.3.0",
+ "@jest/types": "30.3.0",
+ "@types/node": "*",
+ "jest-mock": "30.3.0"
},
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
- "node_modules/@humanfs/core": {
- "version": "0.19.2",
+ "node_modules/@jest/expect": {
+ "version": "30.3.0",
"dev": true,
- "license": "Apache-2.0",
+ "license": "MIT",
"dependencies": {
- "@humanfs/types": "^0.15.0"
+ "expect": "30.3.0",
+ "jest-snapshot": "30.3.0"
},
"engines": {
- "node": ">=18.18.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
- "node_modules/@humanfs/node": {
- "version": "0.16.8",
+ "node_modules/@jest/expect-utils": {
+ "version": "30.3.0",
"dev": true,
- "license": "Apache-2.0",
+ "license": "MIT",
"dependencies": {
- "@humanfs/core": "^0.19.2",
- "@humanfs/types": "^0.15.0",
- "@humanwhocodes/retry": "^0.4.0"
+ "@jest/get-type": "30.1.0"
},
"engines": {
- "node": ">=18.18.0"
- }
- },
- "node_modules/@humanfs/types": {
- "version": "0.15.0",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": ">=18.18.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
- "node_modules/@humanwhocodes/module-importer": {
- "version": "1.0.1",
+ "node_modules/@jest/fake-timers": {
+ "version": "30.3.0",
"dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": ">=12.22"
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "30.3.0",
+ "@sinonjs/fake-timers": "^15.0.0",
+ "@types/node": "*",
+ "jest-message-util": "30.3.0",
+ "jest-mock": "30.3.0",
+ "jest-util": "30.3.0"
},
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/nzakas"
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
- "node_modules/@humanwhocodes/retry": {
- "version": "0.4.3",
+ "node_modules/@jest/get-type": {
+ "version": "30.1.0",
"dev": true,
- "license": "Apache-2.0",
+ "license": "MIT",
"engines": {
- "node": ">=18.18"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/nzakas"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
- "node_modules/@ioredis/commands": {
- "version": "1.5.1",
- "license": "MIT"
- },
- "node_modules/@isaacs/cliui": {
- "version": "8.0.2",
+ "node_modules/@jest/globals": {
+ "version": "30.3.0",
"dev": true,
- "license": "ISC",
+ "license": "MIT",
"dependencies": {
- "string-width": "^5.1.2",
- "string-width-cjs": "npm:string-width@^4.2.0",
- "strip-ansi": "^7.0.1",
- "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
- "wrap-ansi": "^8.1.0",
- "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
+ "@jest/environment": "30.3.0",
+ "@jest/expect": "30.3.0",
+ "@jest/types": "30.3.0",
+ "jest-mock": "30.3.0"
},
"engines": {
- "node": ">=12"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
- "node_modules/@isaacs/cliui/node_modules/ansi-regex": {
- "version": "6.2.2",
+ "node_modules/@jest/pattern": {
+ "version": "30.0.1",
"dev": true,
"license": "MIT",
- "engines": {
- "node": ">=12"
+ "dependencies": {
+ "@types/node": "*",
+ "jest-regex-util": "30.0.1"
},
- "funding": {
- "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
- "node_modules/@isaacs/cliui/node_modules/ansi-styles": {
- "version": "6.2.3",
+ "node_modules/@jest/reporters": {
+ "version": "30.3.0",
"dev": true,
"license": "MIT",
+ "dependencies": {
+ "@bcoe/v8-coverage": "^0.2.3",
+ "@jest/console": "30.3.0",
+ "@jest/test-result": "30.3.0",
+ "@jest/transform": "30.3.0",
+ "@jest/types": "30.3.0",
+ "@jridgewell/trace-mapping": "^0.3.25",
+ "@types/node": "*",
+ "chalk": "^4.1.2",
+ "collect-v8-coverage": "^1.0.2",
+ "exit-x": "^0.2.2",
+ "glob": "^10.5.0",
+ "graceful-fs": "^4.2.11",
+ "istanbul-lib-coverage": "^3.0.0",
+ "istanbul-lib-instrument": "^6.0.0",
+ "istanbul-lib-report": "^3.0.0",
+ "istanbul-lib-source-maps": "^5.0.0",
+ "istanbul-reports": "^3.1.3",
+ "jest-message-util": "30.3.0",
+ "jest-util": "30.3.0",
+ "jest-worker": "30.3.0",
+ "slash": "^3.0.0",
+ "string-length": "^4.0.2",
+ "v8-to-istanbul": "^9.0.1"
+ },
"engines": {
- "node": ">=12"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
},
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "peerDependencies": {
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
+ },
+ "peerDependenciesMeta": {
+ "node-notifier": {
+ "optional": true
+ }
}
},
- "node_modules/@isaacs/cliui/node_modules/emoji-regex": {
- "version": "9.2.2",
+ "node_modules/@jest/reporters/node_modules/@bcoe/v8-coverage": {
+ "version": "0.2.3",
"dev": true,
"license": "MIT"
},
- "node_modules/@isaacs/cliui/node_modules/string-width": {
- "version": "5.1.2",
+ "node_modules/@jest/schemas": {
+ "version": "30.0.5",
"dev": true,
"license": "MIT",
"dependencies": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
+ "@sinclair/typebox": "^0.34.0"
},
"engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
- "node_modules/@isaacs/cliui/node_modules/strip-ansi": {
- "version": "7.2.0",
+ "node_modules/@jest/snapshot-utils": {
+ "version": "30.3.0",
"dev": true,
"license": "MIT",
"dependencies": {
- "ansi-regex": "^6.2.2"
+ "@jest/types": "30.3.0",
+ "chalk": "^4.1.2",
+ "graceful-fs": "^4.2.11",
+ "natural-compare": "^1.4.0"
},
"engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
- "node_modules/@isaacs/cliui/node_modules/wrap-ansi": {
- "version": "8.1.0",
+ "node_modules/@jest/source-map": {
+ "version": "30.0.1",
"dev": true,
"license": "MIT",
"dependencies": {
- "ansi-styles": "^6.1.0",
- "string-width": "^5.0.1",
- "strip-ansi": "^7.0.1"
+ "@jridgewell/trace-mapping": "^0.3.25",
+ "callsites": "^3.1.0",
+ "graceful-fs": "^4.2.11"
},
"engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
- "node_modules/@istanbuljs/load-nyc-config": {
- "version": "1.1.0",
+ "node_modules/@jest/test-result": {
+ "version": "30.3.0",
"dev": true,
- "license": "ISC",
+ "license": "MIT",
"dependencies": {
- "camelcase": "^5.3.1",
- "find-up": "^4.1.0",
- "get-package-type": "^0.1.0",
- "js-yaml": "^3.13.1",
- "resolve-from": "^5.0.0"
+ "@jest/console": "30.3.0",
+ "@jest/types": "30.3.0",
+ "@types/istanbul-lib-coverage": "^2.0.6",
+ "collect-v8-coverage": "^1.0.2"
},
"engines": {
- "node": ">=8"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
- "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": {
- "version": "1.0.10",
+ "node_modules/@jest/test-sequencer": {
+ "version": "30.3.0",
"dev": true,
"license": "MIT",
"dependencies": {
- "sprintf-js": "~1.0.2"
+ "@jest/test-result": "30.3.0",
+ "graceful-fs": "^4.2.11",
+ "jest-haste-map": "30.3.0",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
- "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": {
- "version": "4.1.0",
+ "node_modules/@jest/transform": {
+ "version": "30.3.0",
"dev": true,
"license": "MIT",
"dependencies": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
+ "@babel/core": "^7.27.4",
+ "@jest/types": "30.3.0",
+ "@jridgewell/trace-mapping": "^0.3.25",
+ "babel-plugin-istanbul": "^7.0.1",
+ "chalk": "^4.1.2",
+ "convert-source-map": "^2.0.0",
+ "fast-json-stable-stringify": "^2.1.0",
+ "graceful-fs": "^4.2.11",
+ "jest-haste-map": "30.3.0",
+ "jest-regex-util": "30.0.1",
+ "jest-util": "30.3.0",
+ "pirates": "^4.0.7",
+ "slash": "^3.0.0",
+ "write-file-atomic": "^5.0.1"
},
"engines": {
- "node": ">=8"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
- "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": {
- "version": "3.14.2",
+ "node_modules/@jest/types": {
+ "version": "30.3.0",
"dev": true,
"license": "MIT",
"dependencies": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
+ "@jest/pattern": "30.0.1",
+ "@jest/schemas": "30.0.5",
+ "@types/istanbul-lib-coverage": "^2.0.6",
+ "@types/istanbul-reports": "^3.0.4",
+ "@types/node": "*",
+ "@types/yargs": "^17.0.33",
+ "chalk": "^4.1.2"
},
- "bin": {
- "js-yaml": "bin/js-yaml.js"
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
- "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": {
- "version": "5.0.0",
- "dev": true,
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.13",
"license": "MIT",
"dependencies": {
- "p-locate": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
+ "@jridgewell/sourcemap-codec": "^1.5.0",
+ "@jridgewell/trace-mapping": "^0.3.24"
}
},
- "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": {
- "version": "2.3.0",
- "dev": true,
+ "node_modules/@jridgewell/remapping": {
+ "version": "2.3.5",
"license": "MIT",
"dependencies": {
- "p-try": "^2.0.0"
- },
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ }
+ },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.2",
+ "license": "MIT",
"engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=6.0.0"
}
},
- "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": {
- "version": "4.1.0",
- "dev": true,
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.5.5",
+ "license": "MIT"
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.31",
"license": "MIT",
"dependencies": {
- "p-limit": "^2.2.0"
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ },
+ "node_modules/@kiroo/sdk": {
+ "version": "0.1.2",
+ "license": "MIT",
+ "dependencies": {
+ "@supabase/supabase-js": "^2.99.1"
+ }
+ },
+ "node_modules/@mongodb-js/saslprep": {
+ "version": "1.4.10",
+ "license": "MIT",
+ "dependencies": {
+ "sparse-bitfield": "^3.0.3"
+ }
+ },
+ "node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": {
+ "version": "3.0.3",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "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==",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@tybys/wasm-util": "^0.10.3"
},
- "engines": {
- "node": ">=8"
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/Brooooooklyn"
+ },
+ "peerDependencies": {
+ "@emnapi/core": "^1.7.1",
+ "@emnapi/runtime": "^1.7.1"
}
},
- "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": {
- "version": "5.0.0",
+ "node_modules/@noble/hashes": {
+ "version": "1.8.0",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=8"
+ "node": "^14.21.3 || >=16"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
}
},
- "node_modules/@istanbuljs/schema": {
- "version": "0.1.6",
- "dev": true,
+ "node_modules/@nodable/entities": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/@nodable/entities/-/entities-2.1.1.tgz",
+ "integrity": "sha512-Pig3HxDIoMgjdEH8OCf/dkcTmLFjJRjWuq8jSnklu284/TKOPibSRERmOykiwmyXTtv61mP+44f3GMx0tLAyjg==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/nodable"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/@oslojs/encoding": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@oslojs/encoding/-/encoding-1.1.0.tgz",
+ "integrity": "sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==",
+ "license": "MIT"
+ },
+ "node_modules/@oxc-project/types": {
+ "version": "0.127.0",
"license": "MIT",
- "engines": {
- "node": ">=8"
+ "funding": {
+ "url": "https://github.com/sponsors/Boshen"
}
},
- "node_modules/@jest/console": {
- "version": "30.3.0",
+ "node_modules/@paralleldrive/cuid2": {
+ "version": "2.3.1",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jest/types": "30.3.0",
- "@types/node": "*",
- "chalk": "^4.1.2",
- "jest-message-util": "30.3.0",
- "jest-util": "30.3.0",
- "slash": "^3.0.0"
- },
+ "@noble/hashes": "^1.1.5"
+ }
+ },
+ "node_modules/@pkgjs/parseargs": {
+ "version": "0.11.0",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
"engines": {
- "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ "node": ">=14"
}
},
- "node_modules/@jest/core": {
- "version": "30.3.0",
+ "node_modules/@pkgr/core": {
+ "version": "0.2.9",
"dev": true,
"license": "MIT",
- "dependencies": {
- "@jest/console": "30.3.0",
- "@jest/pattern": "30.0.1",
- "@jest/reporters": "30.3.0",
- "@jest/test-result": "30.3.0",
- "@jest/transform": "30.3.0",
- "@jest/types": "30.3.0",
- "@types/node": "*",
- "ansi-escapes": "^4.3.2",
- "chalk": "^4.1.2",
- "ci-info": "^4.2.0",
- "exit-x": "^0.2.2",
- "graceful-fs": "^4.2.11",
- "jest-changed-files": "30.3.0",
- "jest-config": "30.3.0",
- "jest-haste-map": "30.3.0",
- "jest-message-util": "30.3.0",
- "jest-regex-util": "30.0.1",
- "jest-resolve": "30.3.0",
- "jest-resolve-dependencies": "30.3.0",
- "jest-runner": "30.3.0",
- "jest-runtime": "30.3.0",
- "jest-snapshot": "30.3.0",
- "jest-util": "30.3.0",
- "jest-validate": "30.3.0",
- "jest-watcher": "30.3.0",
- "pretty-format": "30.3.0",
- "slash": "^3.0.0"
- },
"engines": {
- "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
- },
- "peerDependencies": {
- "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
+ "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
},
- "peerDependenciesMeta": {
- "node-notifier": {
- "optional": true
- }
+ "funding": {
+ "url": "https://opencollective.com/pkgr"
}
},
- "node_modules/@jest/diff-sequences": {
- "version": "30.3.0",
- "dev": true,
+ "node_modules/@rolldown/binding-android-arm64": {
+ "version": "1.0.0-rc.17",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.17.tgz",
+ "integrity": "sha512-s70pVGhw4zqGeFnXWvAzJDlvxhlRollagdCCKRgOsgUOH3N1l0LIxf83AtGzmb5SiVM4Hjl5HyarMRfdfj3DaQ==",
+ "cpu": [
+ "arm64"
+ ],
"license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
"engines": {
- "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ "node": "^20.19.0 || >=22.12.0"
}
},
- "node_modules/@jest/environment": {
- "version": "30.3.0",
- "dev": true,
+ "node_modules/@rolldown/binding-darwin-arm64": {
+ "version": "1.0.0-rc.17",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.17.tgz",
+ "integrity": "sha512-4ksWc9n0mhlZpZ9PMZgTGjeOPRu8MB1Z3Tz0Mo02eWfWCHMW1zN82Qz/pL/rC+yQa+8ZnutMF0JjJe7PjwasYw==",
+ "cpu": [
+ "arm64"
+ ],
"license": "MIT",
- "dependencies": {
- "@jest/fake-timers": "30.3.0",
- "@jest/types": "30.3.0",
- "@types/node": "*",
- "jest-mock": "30.3.0"
- },
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
"engines": {
- "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ "node": "^20.19.0 || >=22.12.0"
}
},
- "node_modules/@jest/expect": {
- "version": "30.3.0",
- "dev": true,
+ "node_modules/@rolldown/binding-darwin-x64": {
+ "version": "1.0.0-rc.17",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.17.tgz",
+ "integrity": "sha512-SUSDOI6WwUVNcWxd02QEBjLdY1VPHvlEkw6T/8nYG322iYWCTxRb1vzk4E+mWWYehTp7ERibq54LSJGjmouOsw==",
+ "cpu": [
+ "x64"
+ ],
"license": "MIT",
- "dependencies": {
- "expect": "30.3.0",
- "jest-snapshot": "30.3.0"
- },
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
"engines": {
- "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ "node": "^20.19.0 || >=22.12.0"
}
},
- "node_modules/@jest/expect-utils": {
- "version": "30.3.0",
- "dev": true,
+ "node_modules/@rolldown/binding-freebsd-x64": {
+ "version": "1.0.0-rc.17",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.17.tgz",
+ "integrity": "sha512-hwnz3nw9dbJ05EDO/PvcjaaewqqDy7Y1rn1UO81l8iIK1GjenME75dl16ajbvSSMfv66WXSRCYKIqfgq2KCfxw==",
+ "cpu": [
+ "x64"
+ ],
"license": "MIT",
- "dependencies": {
- "@jest/get-type": "30.1.0"
- },
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
"engines": {
- "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ "node": "^20.19.0 || >=22.12.0"
}
},
- "node_modules/@jest/fake-timers": {
- "version": "30.3.0",
- "dev": true,
+ "node_modules/@rolldown/binding-linux-arm-gnueabihf": {
+ "version": "1.0.0-rc.17",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.17.tgz",
+ "integrity": "sha512-IS+W7epTcwANmFSQFrS1SivEXHtl1JtuQA9wlxrZTcNi6mx+FDOYrakGevvvTwgj2JvWiK8B29/qD9BELZPyXQ==",
+ "cpu": [
+ "arm"
+ ],
"license": "MIT",
- "dependencies": {
- "@jest/types": "30.3.0",
- "@sinonjs/fake-timers": "^15.0.0",
- "@types/node": "*",
- "jest-message-util": "30.3.0",
- "jest-mock": "30.3.0",
- "jest-util": "30.3.0"
- },
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ "node": "^20.19.0 || >=22.12.0"
}
},
- "node_modules/@jest/get-type": {
- "version": "30.1.0",
- "dev": true,
+ "node_modules/@rolldown/binding-linux-arm64-gnu": {
+ "version": "1.0.0-rc.17",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.17.tgz",
+ "integrity": "sha512-e6usGaHKW5BMNZOymS1UcEYGowQMWcgZ71Z17Sl/h2+ZziNJ1a9n3Zvcz6LdRyIW5572wBCTH/Z+bKuZouGk9Q==",
+ "cpu": [
+ "arm64"
+ ],
"license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ "node": "^20.19.0 || >=22.12.0"
}
},
- "node_modules/@jest/globals": {
- "version": "30.3.0",
- "dev": true,
+ "node_modules/@rolldown/binding-linux-arm64-musl": {
+ "version": "1.0.0-rc.17",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.17.tgz",
+ "integrity": "sha512-b/CgbwAJpmrRLp02RPfhbudf5tZnN9nsPWK82znefso832etkem8H7FSZwxrOI9djcdTP7U6YfNhbRnh7djErg==",
+ "cpu": [
+ "arm64"
+ ],
"license": "MIT",
- "dependencies": {
- "@jest/environment": "30.3.0",
- "@jest/expect": "30.3.0",
- "@jest/types": "30.3.0",
- "jest-mock": "30.3.0"
- },
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ "node": "^20.19.0 || >=22.12.0"
}
},
- "node_modules/@jest/pattern": {
- "version": "30.0.1",
- "dev": true,
+ "node_modules/@rolldown/binding-linux-ppc64-gnu": {
+ "version": "1.0.0-rc.17",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.17.tgz",
+ "integrity": "sha512-4EII1iNGRUN5WwGbF/kOh/EIkoDN9HsupgLQoXfY+D1oyJm7/F4t5PYU5n8SWZgG0FEwakyM8pGgwcBYruGTlA==",
+ "cpu": [
+ "ppc64"
+ ],
"license": "MIT",
- "dependencies": {
- "@types/node": "*",
- "jest-regex-util": "30.0.1"
- },
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ "node": "^20.19.0 || >=22.12.0"
}
},
- "node_modules/@jest/reporters": {
- "version": "30.3.0",
- "dev": true,
+ "node_modules/@rolldown/binding-linux-s390x-gnu": {
+ "version": "1.0.0-rc.17",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.17.tgz",
+ "integrity": "sha512-AH8oq3XqQo4IibpVXvPeLDI5pzkpYn0WiZAfT05kFzoJ6tQNzwRdDYQ45M8I/gslbodRZwW8uxLhbSBbkv96rA==",
+ "cpu": [
+ "s390x"
+ ],
"license": "MIT",
- "dependencies": {
- "@bcoe/v8-coverage": "^0.2.3",
- "@jest/console": "30.3.0",
- "@jest/test-result": "30.3.0",
- "@jest/transform": "30.3.0",
- "@jest/types": "30.3.0",
- "@jridgewell/trace-mapping": "^0.3.25",
- "@types/node": "*",
- "chalk": "^4.1.2",
- "collect-v8-coverage": "^1.0.2",
- "exit-x": "^0.2.2",
- "glob": "^10.5.0",
- "graceful-fs": "^4.2.11",
- "istanbul-lib-coverage": "^3.0.0",
- "istanbul-lib-instrument": "^6.0.0",
- "istanbul-lib-report": "^3.0.0",
- "istanbul-lib-source-maps": "^5.0.0",
- "istanbul-reports": "^3.1.3",
- "jest-message-util": "30.3.0",
- "jest-util": "30.3.0",
- "jest-worker": "30.3.0",
- "slash": "^3.0.0",
- "string-length": "^4.0.2",
- "v8-to-istanbul": "^9.0.1"
- },
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/binding-linux-x64-gnu": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.1.3.tgz",
+ "integrity": "sha512-JJpqs8bRGITDOdbkNKnlojzBabbOHrqjSvDr0IVsZObE1lBcPjxItUEY9eWIDbxaJ3cGrXPWGfGkIxFijg/URg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
- },
- "peerDependencies": {
- "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
- },
- "peerDependenciesMeta": {
- "node-notifier": {
- "optional": true
- }
+ "node": "^20.19.0 || >=22.12.0"
}
},
- "node_modules/@jest/reporters/node_modules/@bcoe/v8-coverage": {
- "version": "0.2.3",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@jest/schemas": {
- "version": "30.0.5",
- "dev": true,
+ "node_modules/@rolldown/binding-linux-x64-musl": {
+ "version": "1.0.0-rc.17",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.17.tgz",
+ "integrity": "sha512-0phclDw1spsL7dUB37sIARuis2tAgomCJXAHZlpt8PXZ4Ba0dRP1e+66lsRqrfhISeN9bEGNjQs+T/Fbd7oYGw==",
+ "cpu": [
+ "x64"
+ ],
"license": "MIT",
- "dependencies": {
- "@sinclair/typebox": "^0.34.0"
- },
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ "node": "^20.19.0 || >=22.12.0"
}
},
- "node_modules/@jest/snapshot-utils": {
- "version": "30.3.0",
- "dev": true,
+ "node_modules/@rolldown/binding-openharmony-arm64": {
+ "version": "1.0.0-rc.17",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.17.tgz",
+ "integrity": "sha512-0ag/hEgXOwgw4t8QyQvUCxvEg+V0KBcA6YuOx9g0r02MprutRF5dyljgm3EmR02O292UX7UeS6HzWHAl6KgyhA==",
+ "cpu": [
+ "arm64"
+ ],
"license": "MIT",
- "dependencies": {
- "@jest/types": "30.3.0",
- "chalk": "^4.1.2",
- "graceful-fs": "^4.2.11",
- "natural-compare": "^1.4.0"
- },
+ "optional": true,
+ "os": [
+ "openharmony"
+ ],
"engines": {
- "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ "node": "^20.19.0 || >=22.12.0"
}
},
- "node_modules/@jest/source-map": {
- "version": "30.0.1",
- "dev": true,
+ "node_modules/@rolldown/binding-wasm32-wasi": {
+ "version": "1.0.0-rc.17",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.17.tgz",
+ "integrity": "sha512-LEXei6vo0E5wTGwpkJ4KoT3OZJRnglwldt5ziLzOlc6qqb55z4tWNq2A+PFqCJuvWWdP53CVhG1Z9NtToDPJrA==",
+ "cpu": [
+ "wasm32"
+ ],
"license": "MIT",
+ "optional": true,
"dependencies": {
- "@jridgewell/trace-mapping": "^0.3.25",
- "callsites": "^3.1.0",
- "graceful-fs": "^4.2.11"
+ "@emnapi/core": "1.10.0",
+ "@emnapi/runtime": "1.10.0",
+ "@napi-rs/wasm-runtime": "^1.1.4"
},
"engines": {
- "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ "node": "^20.19.0 || >=22.12.0"
}
},
- "node_modules/@jest/test-result": {
- "version": "30.3.0",
- "dev": true,
+ "node_modules/@rolldown/binding-win32-arm64-msvc": {
+ "version": "1.0.0-rc.17",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.17.tgz",
+ "integrity": "sha512-gUmyzBl3SPMa6hrqFUth9sVfcLBlYsbMzBx5PlexMroZStgzGqlZ26pYG89rBb45Mnia+oil6YAIFeEWGWhoZA==",
+ "cpu": [
+ "arm64"
+ ],
"license": "MIT",
- "dependencies": {
- "@jest/console": "30.3.0",
- "@jest/types": "30.3.0",
- "@types/istanbul-lib-coverage": "^2.0.6",
- "collect-v8-coverage": "^1.0.2"
- },
+ "optional": true,
+ "os": [
+ "win32"
+ ],
"engines": {
- "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ "node": "^20.19.0 || >=22.12.0"
}
},
- "node_modules/@jest/test-sequencer": {
- "version": "30.3.0",
- "dev": true,
+ "node_modules/@rolldown/binding-win32-x64-msvc": {
+ "version": "1.0.0-rc.17",
+ "cpu": [
+ "x64"
+ ],
"license": "MIT",
- "dependencies": {
- "@jest/test-result": "30.3.0",
- "graceful-fs": "^4.2.11",
- "jest-haste-map": "30.3.0",
- "slash": "^3.0.0"
- },
+ "optional": true,
+ "os": [
+ "win32"
+ ],
"engines": {
- "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ "node": "^20.19.0 || >=22.12.0"
}
},
- "node_modules/@jest/transform": {
- "version": "30.3.0",
+ "node_modules/@rolldown/pluginutils": {
+ "version": "1.0.0-rc.3",
"dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@rollup/pluginutils": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.4.0.tgz",
+ "integrity": "sha512-MfPp06CjRLfXQ3wY0R8vJDYBy/MvVcc9OulEfR0B8Iv9ko+GCNaRZ+EpJYFl27LhKsZK0o420sYCRHCjfCgeUg==",
"license": "MIT",
"dependencies": {
- "@babel/core": "^7.27.4",
- "@jest/types": "30.3.0",
- "@jridgewell/trace-mapping": "^0.3.25",
- "babel-plugin-istanbul": "^7.0.1",
- "chalk": "^4.1.2",
- "convert-source-map": "^2.0.0",
- "fast-json-stable-stringify": "^2.1.0",
- "graceful-fs": "^4.2.11",
- "jest-haste-map": "30.3.0",
- "jest-regex-util": "30.0.1",
- "jest-util": "30.3.0",
- "pirates": "^4.0.7",
- "slash": "^3.0.0",
- "write-file-atomic": "^5.0.1"
+ "@types/estree": "^1.0.0",
+ "estree-walker": "^2.0.2",
+ "picomatch": "^4.0.2"
},
"engines": {
- "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
+ },
+ "peerDependenciesMeta": {
+ "rollup": {
+ "optional": true
+ }
}
},
- "node_modules/@jest/types": {
- "version": "30.3.0",
- "dev": true,
+ "node_modules/@rollup/pluginutils/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==",
+ "license": "MIT"
+ },
+ "node_modules/@shikijs/core": {
+ "version": "3.23.0",
+ "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-3.23.0.tgz",
+ "integrity": "sha512-NSWQz0riNb67xthdm5br6lAkvpDJRTgB36fxlo37ZzM2yq0PQFFzbd8psqC2XMPgCzo1fW6cVi18+ArJ44wqgA==",
"license": "MIT",
"dependencies": {
- "@jest/pattern": "30.0.1",
- "@jest/schemas": "30.0.5",
- "@types/istanbul-lib-coverage": "^2.0.6",
- "@types/istanbul-reports": "^3.0.4",
- "@types/node": "*",
- "@types/yargs": "^17.0.33",
- "chalk": "^4.1.2"
- },
- "engines": {
- "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ "@shikijs/types": "3.23.0",
+ "@shikijs/vscode-textmate": "^10.0.2",
+ "@types/hast": "^3.0.4",
+ "hast-util-to-html": "^9.0.5"
}
},
- "node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.13",
+ "node_modules/@shikijs/engine-javascript": {
+ "version": "3.23.0",
+ "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-3.23.0.tgz",
+ "integrity": "sha512-aHt9eiGFobmWR5uqJUViySI1bHMqrAgamWE1TYSUoftkAeCCAiGawPMwM+VCadylQtF4V3VNOZ5LmfItH5f3yA==",
"license": "MIT",
"dependencies": {
- "@jridgewell/sourcemap-codec": "^1.5.0",
- "@jridgewell/trace-mapping": "^0.3.24"
+ "@shikijs/types": "3.23.0",
+ "@shikijs/vscode-textmate": "^10.0.2",
+ "oniguruma-to-es": "^4.3.4"
}
},
- "node_modules/@jridgewell/remapping": {
- "version": "2.3.5",
+ "node_modules/@shikijs/engine-oniguruma": {
+ "version": "3.23.0",
+ "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.23.0.tgz",
+ "integrity": "sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g==",
"license": "MIT",
"dependencies": {
- "@jridgewell/gen-mapping": "^0.3.5",
- "@jridgewell/trace-mapping": "^0.3.24"
+ "@shikijs/types": "3.23.0",
+ "@shikijs/vscode-textmate": "^10.0.2"
}
},
- "node_modules/@jridgewell/resolve-uri": {
- "version": "3.1.2",
+ "node_modules/@shikijs/langs": {
+ "version": "3.23.0",
+ "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.23.0.tgz",
+ "integrity": "sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg==",
"license": "MIT",
- "engines": {
- "node": ">=6.0.0"
+ "dependencies": {
+ "@shikijs/types": "3.23.0"
}
},
- "node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.5.5",
- "license": "MIT"
- },
- "node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.31",
+ "node_modules/@shikijs/themes": {
+ "version": "3.23.0",
+ "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.23.0.tgz",
+ "integrity": "sha512-5qySYa1ZgAT18HR/ypENL9cUSGOeI2x+4IvYJu4JgVJdizn6kG4ia5Q1jDEOi7gTbN4RbuYtmHh0W3eccOrjMA==",
"license": "MIT",
"dependencies": {
- "@jridgewell/resolve-uri": "^3.1.0",
- "@jridgewell/sourcemap-codec": "^1.4.14"
+ "@shikijs/types": "3.23.0"
}
},
- "node_modules/@kiroo/sdk": {
- "version": "0.1.2",
+ "node_modules/@shikijs/types": {
+ "version": "3.23.0",
+ "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.23.0.tgz",
+ "integrity": "sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ==",
"license": "MIT",
"dependencies": {
- "@supabase/supabase-js": "^2.99.1"
+ "@shikijs/vscode-textmate": "^10.0.2",
+ "@types/hast": "^3.0.4"
}
},
- "node_modules/@mongodb-js/saslprep": {
- "version": "1.4.10",
- "license": "MIT",
+ "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/@sinclair/typebox": {
+ "version": "0.34.49",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@sinonjs/commons": {
+ "version": "3.0.1",
+ "dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
- "sparse-bitfield": "^3.0.3"
+ "type-detect": "4.0.8"
}
},
- "node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": {
- "version": "3.0.3",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ]
+ "node_modules/@sinonjs/fake-timers": {
+ "version": "15.3.2",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@sinonjs/commons": "^3.0.1"
+ }
},
- "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==",
- "license": "MIT",
- "optional": true,
+ "node_modules/@smithy/config-resolver": {
+ "version": "4.5.5",
+ "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-4.5.5.tgz",
+ "integrity": "sha512-HehAZr4sq2m+4zHgEqDvtWENy/B5yywMKA8Pl4gBcU3F4ekelpZqDLDxQHdJlguaKNyTq31cZYjLWomzdujQrA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@tybys/wasm-util": "^0.10.3"
+ "@smithy/core": "^3.24.5",
+ "tslib": "^2.6.2"
},
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/Brooooooklyn"
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/core": {
+ "version": "3.24.5",
+ "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.24.5.tgz",
+ "integrity": "sha512-Kt8phUg45M15EjhYAbZ+fFikYneijLu9Liugz8ZsYz2i8j0hzGv27LWKpEHYRfvj+LyCOSijpcR/2i8RouV+cA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-crypto/crc32": "5.2.0",
+ "@smithy/types": "^4.14.2",
+ "tslib": "^2.6.2"
},
- "peerDependencies": {
- "@emnapi/core": "^1.7.1",
- "@emnapi/runtime": "^1.7.1"
+ "engines": {
+ "node": ">=18.0.0"
}
},
- "node_modules/@noble/hashes": {
- "version": "1.8.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^14.21.3 || >=16"
+ "node_modules/@smithy/credential-provider-imds": {
+ "version": "4.3.4",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/core": "^3.24.4",
+ "@smithy/types": "^4.14.2",
+ "tslib": "^2.6.2"
},
- "funding": {
- "url": "https://paulmillr.com/funding/"
+ "engines": {
+ "node": ">=18.0.0"
}
},
- "node_modules/@nodable/entities": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/@nodable/entities/-/entities-2.1.1.tgz",
- "integrity": "sha512-Pig3HxDIoMgjdEH8OCf/dkcTmLFjJRjWuq8jSnklu284/TKOPibSRERmOykiwmyXTtv61mP+44f3GMx0tLAyjg==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/nodable"
- }
- ],
- "license": "MIT"
- },
- "node_modules/@oxc-project/types": {
- "version": "0.127.0",
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/Boshen"
+ "node_modules/@smithy/eventstream-serde-browser": {
+ "version": "4.3.5",
+ "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-4.3.5.tgz",
+ "integrity": "sha512-M9rMkTar7JcRrvUHsK1271AuWDmrISIPQpQ4TSHmYZ4KMisGnMH0gfjCWnBwdndR7skvvp/UheHhZGvO3Cr8/g==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/core": "^3.24.5",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
}
},
- "node_modules/@paralleldrive/cuid2": {
- "version": "2.3.1",
- "dev": true,
- "license": "MIT",
+ "node_modules/@smithy/eventstream-serde-config-resolver": {
+ "version": "4.4.5",
+ "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-4.4.5.tgz",
+ "integrity": "sha512-lUwPPu7DNNVJjeS+gV7g2rDHbW9X1wSRQIsIyzOgBtP7KDMefLhz0kz42AWAxZIFPcOO3pUbtq76LSkVcxLKRw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@noble/hashes": "^1.1.5"
+ "@smithy/core": "^3.24.5",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
}
},
- "node_modules/@pkgjs/parseargs": {
- "version": "0.11.0",
- "dev": true,
- "license": "MIT",
- "optional": true,
+ "node_modules/@smithy/eventstream-serde-node": {
+ "version": "4.3.5",
+ "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-4.3.5.tgz",
+ "integrity": "sha512-QydEYKqvdiS6dJb0tOfDiogt12FzzImt2FnL7gMD72hNrkiUAUKqtStRmkTrdzDKFJ46abe3yH94luCuhtnCkQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/core": "^3.24.5",
+ "tslib": "^2.6.2"
+ },
"engines": {
- "node": ">=14"
+ "node": ">=18.0.0"
}
},
- "node_modules/@pkgr/core": {
- "version": "0.2.9",
- "dev": true,
- "license": "MIT",
+ "node_modules/@smithy/fetch-http-handler": {
+ "version": "5.4.4",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/core": "^3.24.4",
+ "@smithy/types": "^4.14.2",
+ "tslib": "^2.6.2"
+ },
"engines": {
- "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/hash-blob-browser": {
+ "version": "4.3.5",
+ "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-4.3.5.tgz",
+ "integrity": "sha512-DNInwxNX32WtmhiKVrplzFtkKk5ePNHitJYPCnsPrD2EHm06iWJKQo8F8eq5ss94yp/xSfmojYD7nFBsgzrHHQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/core": "^3.24.5",
+ "tslib": "^2.6.2"
},
- "funding": {
- "url": "https://opencollective.com/pkgr"
+ "engines": {
+ "node": ">=18.0.0"
}
},
- "node_modules/@rolldown/binding-android-arm64": {
- "version": "1.0.0-rc.17",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.17.tgz",
- "integrity": "sha512-s70pVGhw4zqGeFnXWvAzJDlvxhlRollagdCCKRgOsgUOH3N1l0LIxf83AtGzmb5SiVM4Hjl5HyarMRfdfj3DaQ==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
+ "node_modules/@smithy/hash-node": {
+ "version": "4.3.5",
+ "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-4.3.5.tgz",
+ "integrity": "sha512-/tUIDaB36qjLq/CIhMRIiFXCT7rVGBGAhFmMA9PbC/iW2u3QPNATZuFSdK0JBO3qeSPoHBeudFMmsbFq2Mf5EQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/core": "^3.24.5",
+ "tslib": "^2.6.2"
+ },
"engines": {
- "node": "^20.19.0 || >=22.12.0"
+ "node": ">=18.0.0"
}
},
- "node_modules/@rolldown/binding-darwin-arm64": {
- "version": "1.0.0-rc.17",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.17.tgz",
- "integrity": "sha512-4ksWc9n0mhlZpZ9PMZgTGjeOPRu8MB1Z3Tz0Mo02eWfWCHMW1zN82Qz/pL/rC+yQa+8ZnutMF0JjJe7PjwasYw==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
+ "node_modules/@smithy/hash-stream-node": {
+ "version": "4.3.5",
+ "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-4.3.5.tgz",
+ "integrity": "sha512-dLboKYf5ezU+b8SDDzVNjSHWHYPiU9aTI7IfIh9GhUpvCkwfdw1zUtK6dAGFHOrI5l1nVmsEWZrcAHophlNKug==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/core": "^3.24.5",
+ "tslib": "^2.6.2"
+ },
"engines": {
- "node": "^20.19.0 || >=22.12.0"
+ "node": ">=18.0.0"
}
},
- "node_modules/@rolldown/binding-darwin-x64": {
- "version": "1.0.0-rc.17",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.17.tgz",
- "integrity": "sha512-SUSDOI6WwUVNcWxd02QEBjLdY1VPHvlEkw6T/8nYG322iYWCTxRb1vzk4E+mWWYehTp7ERibq54LSJGjmouOsw==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
+ "node_modules/@smithy/invalid-dependency": {
+ "version": "4.3.5",
+ "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-4.3.5.tgz",
+ "integrity": "sha512-c8C1GzrU4PcY1QT/HP0ILCTLutyVONT93kPSisOyHoZaXlKQZtV6+RKqolhBtPolGULf59vq2yseagU6+WY82w==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/core": "^3.24.5",
+ "tslib": "^2.6.2"
+ },
"engines": {
- "node": "^20.19.0 || >=22.12.0"
+ "node": ">=18.0.0"
}
},
- "node_modules/@rolldown/binding-freebsd-x64": {
- "version": "1.0.0-rc.17",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.17.tgz",
- "integrity": "sha512-hwnz3nw9dbJ05EDO/PvcjaaewqqDy7Y1rn1UO81l8iIK1GjenME75dl16ajbvSSMfv66WXSRCYKIqfgq2KCfxw==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
+ "node_modules/@smithy/is-array-buffer": {
+ "version": "4.2.2",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.6.2"
+ },
"engines": {
- "node": "^20.19.0 || >=22.12.0"
+ "node": ">=18.0.0"
}
},
- "node_modules/@rolldown/binding-linux-arm-gnueabihf": {
- "version": "1.0.0-rc.17",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.17.tgz",
- "integrity": "sha512-IS+W7epTcwANmFSQFrS1SivEXHtl1JtuQA9wlxrZTcNi6mx+FDOYrakGevvvTwgj2JvWiK8B29/qD9BELZPyXQ==",
- "cpu": [
- "arm"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
+ "node_modules/@smithy/md5-js": {
+ "version": "4.3.5",
+ "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-4.3.5.tgz",
+ "integrity": "sha512-U/zFWFDuNFspkLAtUbatmpevrRjXwQkoGPJTg1hapUsjLKK+aN3u4seX4+aSBzLom+RnZSdWncfSIgG100vsGg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/core": "^3.24.5",
+ "tslib": "^2.6.2"
+ },
"engines": {
- "node": "^20.19.0 || >=22.12.0"
+ "node": ">=18.0.0"
}
},
- "node_modules/@rolldown/binding-linux-arm64-gnu": {
- "version": "1.0.0-rc.17",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.17.tgz",
- "integrity": "sha512-e6usGaHKW5BMNZOymS1UcEYGowQMWcgZ71Z17Sl/h2+ZziNJ1a9n3Zvcz6LdRyIW5572wBCTH/Z+bKuZouGk9Q==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
+ "node_modules/@smithy/middleware-content-length": {
+ "version": "4.3.5",
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-4.3.5.tgz",
+ "integrity": "sha512-lzOzJ4c0t3vkBut02CjdWNgduN3mUWjc1WK9TPr75KVV6OgVWico9wMDn9ZnQN97VJPYfweBW6Dm5CElvQl8BQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/core": "^3.24.5",
+ "tslib": "^2.6.2"
+ },
"engines": {
- "node": "^20.19.0 || >=22.12.0"
+ "node": ">=18.0.0"
}
},
- "node_modules/@rolldown/binding-linux-arm64-musl": {
- "version": "1.0.0-rc.17",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.17.tgz",
- "integrity": "sha512-b/CgbwAJpmrRLp02RPfhbudf5tZnN9nsPWK82znefso832etkem8H7FSZwxrOI9djcdTP7U6YfNhbRnh7djErg==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
+ "node_modules/@smithy/middleware-endpoint": {
+ "version": "4.4.32",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/core": "^3.23.17",
+ "@smithy/middleware-serde": "^4.2.20",
+ "@smithy/node-config-provider": "^4.3.14",
+ "@smithy/shared-ini-file-loader": "^4.4.9",
+ "@smithy/types": "^4.14.1",
+ "@smithy/url-parser": "^4.2.14",
+ "@smithy/util-middleware": "^4.2.14",
+ "tslib": "^2.6.2"
+ },
"engines": {
- "node": "^20.19.0 || >=22.12.0"
+ "node": ">=18.0.0"
}
},
- "node_modules/@rolldown/binding-linux-ppc64-gnu": {
- "version": "1.0.0-rc.17",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.17.tgz",
- "integrity": "sha512-4EII1iNGRUN5WwGbF/kOh/EIkoDN9HsupgLQoXfY+D1oyJm7/F4t5PYU5n8SWZgG0FEwakyM8pGgwcBYruGTlA==",
- "cpu": [
- "ppc64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
+ "node_modules/@smithy/middleware-retry": {
+ "version": "4.6.5",
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.6.5.tgz",
+ "integrity": "sha512-fumMIfh5xOFjirylbSzmBX9bgQtrWFtQrosPfkjsJSBzqXVbQMNDGIC8oJBz4V3bokIm2F0CL3bziLtbXR7cbA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/core": "^3.24.5",
+ "tslib": "^2.6.2"
+ },
"engines": {
- "node": "^20.19.0 || >=22.12.0"
+ "node": ">=18.0.0"
}
},
- "node_modules/@rolldown/binding-linux-s390x-gnu": {
- "version": "1.0.0-rc.17",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.17.tgz",
- "integrity": "sha512-AH8oq3XqQo4IibpVXvPeLDI5pzkpYn0WiZAfT05kFzoJ6tQNzwRdDYQ45M8I/gslbodRZwW8uxLhbSBbkv96rA==",
- "cpu": [
- "s390x"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
+ "node_modules/@smithy/middleware-serde": {
+ "version": "4.2.20",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/core": "^3.23.17",
+ "@smithy/protocol-http": "^5.3.14",
+ "@smithy/types": "^4.14.1",
+ "tslib": "^2.6.2"
+ },
"engines": {
- "node": "^20.19.0 || >=22.12.0"
+ "node": ">=18.0.0"
}
},
- "node_modules/@rolldown/binding-linux-x64-gnu": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.1.3.tgz",
- "integrity": "sha512-JJpqs8bRGITDOdbkNKnlojzBabbOHrqjSvDr0IVsZObE1lBcPjxItUEY9eWIDbxaJ3cGrXPWGfGkIxFijg/URg==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
+ "node_modules/@smithy/middleware-stack": {
+ "version": "4.2.14",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.14.1",
+ "tslib": "^2.6.2"
+ },
"engines": {
- "node": "^20.19.0 || >=22.12.0"
+ "node": ">=18.0.0"
}
},
- "node_modules/@rolldown/binding-linux-x64-musl": {
- "version": "1.0.0-rc.17",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.17.tgz",
- "integrity": "sha512-0phclDw1spsL7dUB37sIARuis2tAgomCJXAHZlpt8PXZ4Ba0dRP1e+66lsRqrfhISeN9bEGNjQs+T/Fbd7oYGw==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
+ "node_modules/@smithy/node-config-provider": {
+ "version": "4.3.14",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/property-provider": "^4.2.14",
+ "@smithy/shared-ini-file-loader": "^4.4.9",
+ "@smithy/types": "^4.14.1",
+ "tslib": "^2.6.2"
+ },
"engines": {
- "node": "^20.19.0 || >=22.12.0"
+ "node": ">=18.0.0"
}
},
- "node_modules/@rolldown/binding-openharmony-arm64": {
- "version": "1.0.0-rc.17",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.17.tgz",
- "integrity": "sha512-0ag/hEgXOwgw4t8QyQvUCxvEg+V0KBcA6YuOx9g0r02MprutRF5dyljgm3EmR02O292UX7UeS6HzWHAl6KgyhA==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "openharmony"
- ],
+ "node_modules/@smithy/node-http-handler": {
+ "version": "4.7.4",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/core": "^3.24.4",
+ "@smithy/types": "^4.14.2",
+ "tslib": "^2.6.2"
+ },
"engines": {
- "node": "^20.19.0 || >=22.12.0"
+ "node": ">=18.0.0"
}
},
- "node_modules/@rolldown/binding-wasm32-wasi": {
- "version": "1.0.0-rc.17",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.17.tgz",
- "integrity": "sha512-LEXei6vo0E5wTGwpkJ4KoT3OZJRnglwldt5ziLzOlc6qqb55z4tWNq2A+PFqCJuvWWdP53CVhG1Z9NtToDPJrA==",
- "cpu": [
- "wasm32"
- ],
- "license": "MIT",
- "optional": true,
+ "node_modules/@smithy/property-provider": {
+ "version": "4.2.14",
+ "license": "Apache-2.0",
"dependencies": {
- "@emnapi/core": "1.10.0",
- "@emnapi/runtime": "1.10.0",
- "@napi-rs/wasm-runtime": "^1.1.4"
+ "@smithy/types": "^4.14.1",
+ "tslib": "^2.6.2"
},
"engines": {
- "node": "^20.19.0 || >=22.12.0"
+ "node": ">=18.0.0"
}
},
- "node_modules/@rolldown/binding-win32-arm64-msvc": {
- "version": "1.0.0-rc.17",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.17.tgz",
- "integrity": "sha512-gUmyzBl3SPMa6hrqFUth9sVfcLBlYsbMzBx5PlexMroZStgzGqlZ26pYG89rBb45Mnia+oil6YAIFeEWGWhoZA==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
+ "node_modules/@smithy/protocol-http": {
+ "version": "5.3.14",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.14.1",
+ "tslib": "^2.6.2"
+ },
"engines": {
- "node": "^20.19.0 || >=22.12.0"
+ "node": ">=18.0.0"
}
},
- "node_modules/@rolldown/binding-win32-x64-msvc": {
- "version": "1.0.0-rc.17",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
+ "node_modules/@smithy/querystring-builder": {
+ "version": "4.2.14",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.14.1",
+ "@smithy/util-uri-escape": "^4.2.2",
+ "tslib": "^2.6.2"
+ },
"engines": {
- "node": "^20.19.0 || >=22.12.0"
+ "node": ">=18.0.0"
}
},
- "node_modules/@rolldown/pluginutils": {
- "version": "1.0.0-rc.3",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@sinclair/typebox": {
- "version": "0.34.49",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@sinonjs/commons": {
- "version": "3.0.1",
- "dev": true,
- "license": "BSD-3-Clause",
+ "node_modules/@smithy/querystring-parser": {
+ "version": "4.2.14",
+ "license": "Apache-2.0",
"dependencies": {
- "type-detect": "4.0.8"
+ "@smithy/types": "^4.14.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
}
},
- "node_modules/@sinonjs/fake-timers": {
- "version": "15.3.2",
- "dev": true,
- "license": "BSD-3-Clause",
+ "node_modules/@smithy/shared-ini-file-loader": {
+ "version": "4.4.9",
+ "license": "Apache-2.0",
"dependencies": {
- "@sinonjs/commons": "^3.0.1"
+ "@smithy/types": "^4.14.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
}
},
- "node_modules/@smithy/config-resolver": {
- "version": "4.5.5",
- "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-4.5.5.tgz",
- "integrity": "sha512-HehAZr4sq2m+4zHgEqDvtWENy/B5yywMKA8Pl4gBcU3F4ekelpZqDLDxQHdJlguaKNyTq31cZYjLWomzdujQrA==",
+ "node_modules/@smithy/signature-v4": {
+ "version": "5.4.5",
+ "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.4.5.tgz",
+ "integrity": "sha512-QBJKWGqIknH0dc9LWpfH1mkdokAx6iXYN3UcQ3eY6uIEyScuoQAhfl94ge7ozUy9WgFUdE8xsvwBjaYBbWmPNA==",
"license": "Apache-2.0",
"dependencies": {
"@smithy/core": "^3.24.5",
+ "@smithy/types": "^4.14.2",
"tslib": "^2.6.2"
},
"engines": {
"node": ">=18.0.0"
}
},
- "node_modules/@smithy/core": {
- "version": "3.24.5",
- "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.24.5.tgz",
- "integrity": "sha512-Kt8phUg45M15EjhYAbZ+fFikYneijLu9Liugz8ZsYz2i8j0hzGv27LWKpEHYRfvj+LyCOSijpcR/2i8RouV+cA==",
+ "node_modules/@smithy/smithy-client": {
+ "version": "4.12.13",
"license": "Apache-2.0",
"dependencies": {
- "@aws-crypto/crc32": "5.2.0",
- "@smithy/types": "^4.14.2",
+ "@smithy/core": "^3.23.17",
+ "@smithy/middleware-endpoint": "^4.4.32",
+ "@smithy/middleware-stack": "^4.2.14",
+ "@smithy/protocol-http": "^5.3.14",
+ "@smithy/types": "^4.14.1",
+ "@smithy/util-stream": "^4.5.25",
"tslib": "^2.6.2"
},
"engines": {
"node": ">=18.0.0"
}
},
- "node_modules/@smithy/credential-provider-imds": {
- "version": "4.3.4",
+ "node_modules/@smithy/types": {
+ "version": "4.14.2",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/core": "^3.24.4",
- "@smithy/types": "^4.14.2",
"tslib": "^2.6.2"
},
"engines": {
"node": ">=18.0.0"
}
},
- "node_modules/@smithy/eventstream-serde-browser": {
- "version": "4.3.5",
- "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-4.3.5.tgz",
- "integrity": "sha512-M9rMkTar7JcRrvUHsK1271AuWDmrISIPQpQ4TSHmYZ4KMisGnMH0gfjCWnBwdndR7skvvp/UheHhZGvO3Cr8/g==",
+ "node_modules/@smithy/url-parser": {
+ "version": "4.2.14",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/core": "^3.24.5",
+ "@smithy/querystring-parser": "^4.2.14",
+ "@smithy/types": "^4.14.1",
"tslib": "^2.6.2"
},
"engines": {
"node": ">=18.0.0"
}
},
- "node_modules/@smithy/eventstream-serde-config-resolver": {
- "version": "4.4.5",
- "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-4.4.5.tgz",
- "integrity": "sha512-lUwPPu7DNNVJjeS+gV7g2rDHbW9X1wSRQIsIyzOgBtP7KDMefLhz0kz42AWAxZIFPcOO3pUbtq76LSkVcxLKRw==",
+ "node_modules/@smithy/util-base64": {
+ "version": "4.3.2",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/core": "^3.24.5",
+ "@smithy/util-buffer-from": "^4.2.2",
+ "@smithy/util-utf8": "^4.2.2",
"tslib": "^2.6.2"
},
"engines": {
"node": ">=18.0.0"
}
},
- "node_modules/@smithy/eventstream-serde-node": {
+ "node_modules/@smithy/util-body-length-browser": {
"version": "4.3.5",
- "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-4.3.5.tgz",
- "integrity": "sha512-QydEYKqvdiS6dJb0tOfDiogt12FzzImt2FnL7gMD72hNrkiUAUKqtStRmkTrdzDKFJ46abe3yH94luCuhtnCkQ==",
+ "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-4.3.5.tgz",
+ "integrity": "sha512-nQtYwXg4spM6uc0Luq3yck+WXZ1VPfrYkC2SqkQ+YOGks0qR2bKKlSCjidSqfpq+VAY/RJe1O5V+CtBmnT63KQ==",
"license": "Apache-2.0",
"dependencies": {
"@smithy/core": "^3.24.5",
@@ -4350,35 +5954,34 @@
"node": ">=18.0.0"
}
},
- "node_modules/@smithy/fetch-http-handler": {
- "version": "5.4.4",
+ "node_modules/@smithy/util-body-length-node": {
+ "version": "4.3.5",
+ "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-4.3.5.tgz",
+ "integrity": "sha512-BAsAed9yWExECwNIi61Le6D8ZTY71MFEFrf3d4L2+uzcbTjFAWxOtymkA1vCV8bNZQN9TGgZo4c68JDsnjNShA==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/core": "^3.24.4",
- "@smithy/types": "^4.14.2",
+ "@smithy/core": "^3.24.5",
"tslib": "^2.6.2"
},
"engines": {
"node": ">=18.0.0"
}
},
- "node_modules/@smithy/hash-blob-browser": {
- "version": "4.3.5",
- "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-4.3.5.tgz",
- "integrity": "sha512-DNInwxNX32WtmhiKVrplzFtkKk5ePNHitJYPCnsPrD2EHm06iWJKQo8F8eq5ss94yp/xSfmojYD7nFBsgzrHHQ==",
+ "node_modules/@smithy/util-buffer-from": {
+ "version": "4.2.2",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/core": "^3.24.5",
+ "@smithy/is-array-buffer": "^4.2.2",
"tslib": "^2.6.2"
},
"engines": {
"node": ">=18.0.0"
}
},
- "node_modules/@smithy/hash-node": {
- "version": "4.3.5",
- "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-4.3.5.tgz",
- "integrity": "sha512-/tUIDaB36qjLq/CIhMRIiFXCT7rVGBGAhFmMA9PbC/iW2u3QPNATZuFSdK0JBO3qeSPoHBeudFMmsbFq2Mf5EQ==",
+ "node_modules/@smithy/util-defaults-mode-browser": {
+ "version": "4.4.5",
+ "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.4.5.tgz",
+ "integrity": "sha512-LbE6AGHhQOunqIN5UyWDMgpPwmUHUzrV2NtUOQ+lt6Stpipzo6S7uDyeGtO0GGgUD1balEPCNu8Xfl1AQNiruQ==",
"license": "Apache-2.0",
"dependencies": {
"@smithy/core": "^3.24.5",
@@ -4388,10 +5991,10 @@
"node": ">=18.0.0"
}
},
- "node_modules/@smithy/hash-stream-node": {
+ "node_modules/@smithy/util-defaults-mode-node": {
"version": "4.3.5",
- "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-4.3.5.tgz",
- "integrity": "sha512-dLboKYf5ezU+b8SDDzVNjSHWHYPiU9aTI7IfIh9GhUpvCkwfdw1zUtK6dAGFHOrI5l1nVmsEWZrcAHophlNKug==",
+ "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.3.5.tgz",
+ "integrity": "sha512-72gNpNDQ2iIGbaNmeaF9I58shWsEuD5tNI7my5uXlm1CSPH5i8IKI/nzU50qqB8y+kgw/qTLGgsf0We5qeM/aA==",
"license": "Apache-2.0",
"dependencies": {
"@smithy/core": "^3.24.5",
@@ -4401,10 +6004,10 @@
"node": ">=18.0.0"
}
},
- "node_modules/@smithy/invalid-dependency": {
- "version": "4.3.5",
- "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-4.3.5.tgz",
- "integrity": "sha512-c8C1GzrU4PcY1QT/HP0ILCTLutyVONT93kPSisOyHoZaXlKQZtV6+RKqolhBtPolGULf59vq2yseagU6+WY82w==",
+ "node_modules/@smithy/util-endpoints": {
+ "version": "3.5.5",
+ "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-3.5.5.tgz",
+ "integrity": "sha512-NJhe8KmNjeZ7V+gJsQR5xw0IN47N8pBKosed40xfhelDuYkg8VQ5CVGDcHTEuJq3e3zQb21vnoOOReQothejhA==",
"license": "Apache-2.0",
"dependencies": {
"@smithy/core": "^3.24.5",
@@ -4414,7 +6017,7 @@
"node": ">=18.0.0"
}
},
- "node_modules/@smithy/is-array-buffer": {
+ "node_modules/@smithy/util-hex-encoding": {
"version": "4.2.2",
"license": "Apache-2.0",
"dependencies": {
@@ -4424,23 +6027,21 @@
"node": ">=18.0.0"
}
},
- "node_modules/@smithy/md5-js": {
- "version": "4.3.5",
- "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-4.3.5.tgz",
- "integrity": "sha512-U/zFWFDuNFspkLAtUbatmpevrRjXwQkoGPJTg1hapUsjLKK+aN3u4seX4+aSBzLom+RnZSdWncfSIgG100vsGg==",
+ "node_modules/@smithy/util-middleware": {
+ "version": "4.2.14",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/core": "^3.24.5",
+ "@smithy/types": "^4.14.1",
"tslib": "^2.6.2"
},
"engines": {
"node": ">=18.0.0"
}
},
- "node_modules/@smithy/middleware-content-length": {
- "version": "4.3.5",
- "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-4.3.5.tgz",
- "integrity": "sha512-lzOzJ4c0t3vkBut02CjdWNgduN3mUWjc1WK9TPr75KVV6OgVWico9wMDn9ZnQN97VJPYfweBW6Dm5CElvQl8BQ==",
+ "node_modules/@smithy/util-retry": {
+ "version": "4.4.5",
+ "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-4.4.5.tgz",
+ "integrity": "sha512-W9Ovy9i02yGqtLlpqZNQuXNxXc5OPfXujnembxN/FxyBtGjJd8vKY0PQYEJ8FNybTOcXG+ZxsSsX23HOb3zQzg==",
"license": "Apache-2.0",
"dependencies": {
"@smithy/core": "^3.24.5",
@@ -4450,1726 +6051,2139 @@
"node": ">=18.0.0"
}
},
- "node_modules/@smithy/middleware-endpoint": {
- "version": "4.4.32",
+ "node_modules/@smithy/util-stream": {
+ "version": "4.5.25",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/core": "^3.23.17",
- "@smithy/middleware-serde": "^4.2.20",
- "@smithy/node-config-provider": "^4.3.14",
- "@smithy/shared-ini-file-loader": "^4.4.9",
+ "@smithy/fetch-http-handler": "^5.3.17",
+ "@smithy/node-http-handler": "^4.6.1",
"@smithy/types": "^4.14.1",
- "@smithy/url-parser": "^4.2.14",
- "@smithy/util-middleware": "^4.2.14",
+ "@smithy/util-base64": "^4.3.2",
+ "@smithy/util-buffer-from": "^4.2.2",
+ "@smithy/util-hex-encoding": "^4.2.2",
+ "@smithy/util-utf8": "^4.2.2",
"tslib": "^2.6.2"
},
"engines": {
"node": ">=18.0.0"
}
},
- "node_modules/@smithy/middleware-retry": {
- "version": "4.6.5",
- "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.6.5.tgz",
- "integrity": "sha512-fumMIfh5xOFjirylbSzmBX9bgQtrWFtQrosPfkjsJSBzqXVbQMNDGIC8oJBz4V3bokIm2F0CL3bziLtbXR7cbA==",
+ "node_modules/@smithy/util-uri-escape": {
+ "version": "4.2.2",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/core": "^3.24.5",
"tslib": "^2.6.2"
},
"engines": {
"node": ">=18.0.0"
}
},
- "node_modules/@smithy/middleware-serde": {
- "version": "4.2.20",
+ "node_modules/@smithy/util-utf8": {
+ "version": "4.2.2",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/core": "^3.23.17",
- "@smithy/protocol-http": "^5.3.14",
- "@smithy/types": "^4.14.1",
+ "@smithy/util-buffer-from": "^4.2.2",
"tslib": "^2.6.2"
},
"engines": {
"node": ">=18.0.0"
}
},
- "node_modules/@smithy/middleware-stack": {
- "version": "4.2.14",
+ "node_modules/@smithy/util-waiter": {
+ "version": "4.4.5",
+ "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-4.4.5.tgz",
+ "integrity": "sha512-EYviebytZE6vplW0AGwZ2Rc3sNuVR83lfUCNZu11VchUiKhMwJqrRWy7iVDTNEwG/vEwItno591Iad6/prj6Bw==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.14.1",
+ "@smithy/core": "^3.24.5",
"tslib": "^2.6.2"
},
"engines": {
"node": ">=18.0.0"
}
},
- "node_modules/@smithy/node-config-provider": {
- "version": "4.3.14",
- "license": "Apache-2.0",
+ "node_modules/@stablelib/base64": {
+ "version": "1.0.1",
+ "license": "MIT"
+ },
+ "node_modules/@supabase/auth-js": {
+ "version": "2.105.1",
+ "license": "MIT",
"dependencies": {
- "@smithy/property-provider": "^4.2.14",
- "@smithy/shared-ini-file-loader": "^4.4.9",
- "@smithy/types": "^4.14.1",
- "tslib": "^2.6.2"
+ "tslib": "2.8.1"
},
"engines": {
- "node": ">=18.0.0"
+ "node": ">=20.0.0"
}
},
- "node_modules/@smithy/node-http-handler": {
- "version": "4.7.4",
- "license": "Apache-2.0",
+ "node_modules/@supabase/functions-js": {
+ "version": "2.105.1",
+ "license": "MIT",
"dependencies": {
- "@smithy/core": "^3.24.4",
- "@smithy/types": "^4.14.2",
- "tslib": "^2.6.2"
+ "tslib": "2.8.1"
},
"engines": {
- "node": ">=18.0.0"
+ "node": ">=20.0.0"
}
},
- "node_modules/@smithy/property-provider": {
- "version": "4.2.14",
- "license": "Apache-2.0",
+ "node_modules/@supabase/phoenix": {
+ "version": "0.4.1",
+ "license": "MIT"
+ },
+ "node_modules/@supabase/postgrest-js": {
+ "version": "2.105.1",
+ "license": "MIT",
"dependencies": {
- "@smithy/types": "^4.14.1",
- "tslib": "^2.6.2"
+ "tslib": "2.8.1"
},
"engines": {
- "node": ">=18.0.0"
+ "node": ">=20.0.0"
}
},
- "node_modules/@smithy/protocol-http": {
- "version": "5.3.14",
- "license": "Apache-2.0",
+ "node_modules/@supabase/realtime-js": {
+ "version": "2.105.1",
+ "license": "MIT",
"dependencies": {
- "@smithy/types": "^4.14.1",
- "tslib": "^2.6.2"
+ "@supabase/phoenix": "^0.4.1",
+ "@types/ws": "^8.18.1",
+ "tslib": "2.8.1",
+ "ws": "^8.18.2"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@supabase/storage-js": {
+ "version": "2.105.1",
+ "license": "MIT",
+ "dependencies": {
+ "iceberg-js": "^0.8.1",
+ "tslib": "2.8.1"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@supabase/supabase-js": {
+ "version": "2.105.1",
+ "license": "MIT",
+ "dependencies": {
+ "@supabase/auth-js": "2.105.1",
+ "@supabase/functions-js": "2.105.1",
+ "@supabase/postgrest-js": "2.105.1",
+ "@supabase/realtime-js": "2.105.1",
+ "@supabase/storage-js": "2.105.1"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@tailwindcss/node": {
+ "version": "4.2.4",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/remapping": "^2.3.5",
+ "enhanced-resolve": "^5.19.0",
+ "jiti": "^2.6.1",
+ "lightningcss": "1.32.0",
+ "magic-string": "^0.30.21",
+ "source-map-js": "^1.2.1",
+ "tailwindcss": "4.2.4"
+ }
+ },
+ "node_modules/@tailwindcss/oxide": {
+ "version": "4.2.4",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 20"
},
+ "optionalDependencies": {
+ "@tailwindcss/oxide-android-arm64": "4.2.4",
+ "@tailwindcss/oxide-darwin-arm64": "4.2.4",
+ "@tailwindcss/oxide-darwin-x64": "4.2.4",
+ "@tailwindcss/oxide-freebsd-x64": "4.2.4",
+ "@tailwindcss/oxide-linux-arm-gnueabihf": "4.2.4",
+ "@tailwindcss/oxide-linux-arm64-gnu": "4.2.4",
+ "@tailwindcss/oxide-linux-arm64-musl": "4.2.4",
+ "@tailwindcss/oxide-linux-x64-gnu": "4.2.4",
+ "@tailwindcss/oxide-linux-x64-musl": "4.2.4",
+ "@tailwindcss/oxide-wasm32-wasi": "4.2.4",
+ "@tailwindcss/oxide-win32-arm64-msvc": "4.2.4",
+ "@tailwindcss/oxide-win32-x64-msvc": "4.2.4"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-android-arm64": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.2.4.tgz",
+ "integrity": "sha512-e7MOr1SAn9U8KlZzPi1ZXGZHeC5anY36qjNwmZv9pOJ8E4Q6jmD1vyEHkQFmNOIN7twGPEMXRHmitN4zCMN03g==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">= 20"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-darwin-arm64": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.2.4.tgz",
+ "integrity": "sha512-tSC/Kbqpz/5/o/C2sG7QvOxAKqyd10bq+ypZNf+9Fi2TvbVbv1zNpcEptcsU7DPROaSbVgUXmrzKhurFvo5eDg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
"engines": {
- "node": ">=18.0.0"
+ "node": ">= 20"
}
},
- "node_modules/@smithy/querystring-builder": {
- "version": "4.2.14",
- "license": "Apache-2.0",
- "dependencies": {
- "@smithy/types": "^4.14.1",
- "@smithy/util-uri-escape": "^4.2.2",
- "tslib": "^2.6.2"
- },
+ "node_modules/@tailwindcss/oxide-darwin-x64": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.2.4.tgz",
+ "integrity": "sha512-yPyUXn3yO/ufR6+Kzv0t4fCg2qNr90jxXc5QqBpjlPNd0NqyDXcmQb/6weunH/MEDXW5dhyEi+agTDiqa3WsGg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
"engines": {
- "node": ">=18.0.0"
+ "node": ">= 20"
}
},
- "node_modules/@smithy/querystring-parser": {
- "version": "4.2.14",
- "license": "Apache-2.0",
- "dependencies": {
- "@smithy/types": "^4.14.1",
- "tslib": "^2.6.2"
- },
+ "node_modules/@tailwindcss/oxide-freebsd-x64": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.2.4.tgz",
+ "integrity": "sha512-BoMIB4vMQtZsXdGLVc2z+P9DbETkiopogfWZKbWwM8b/1Vinbs4YcUwo+kM/KeLkX3Ygrf4/PsRndKaYhS8Eiw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
"engines": {
- "node": ">=18.0.0"
+ "node": ">= 20"
}
},
- "node_modules/@smithy/shared-ini-file-loader": {
- "version": "4.4.9",
- "license": "Apache-2.0",
- "dependencies": {
- "@smithy/types": "^4.14.1",
- "tslib": "^2.6.2"
- },
+ "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.2.4.tgz",
+ "integrity": "sha512-7pIHBLTHYRAlS7V22JNuTh33yLH4VElwKtB3bwchK/UaKUPpQ0lPQiOWcbm4V3WP2I6fNIJ23vABIvoy2izdwA==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=18.0.0"
+ "node": ">= 20"
}
},
- "node_modules/@smithy/signature-v4": {
- "version": "5.4.5",
- "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.4.5.tgz",
- "integrity": "sha512-QBJKWGqIknH0dc9LWpfH1mkdokAx6iXYN3UcQ3eY6uIEyScuoQAhfl94ge7ozUy9WgFUdE8xsvwBjaYBbWmPNA==",
- "license": "Apache-2.0",
- "dependencies": {
- "@smithy/core": "^3.24.5",
- "@smithy/types": "^4.14.2",
- "tslib": "^2.6.2"
- },
+ "node_modules/@tailwindcss/oxide-linux-arm64-gnu": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.2.4.tgz",
+ "integrity": "sha512-+E4wxJ0ZGOzSH325reXTWB48l42i93kQqMvDyz5gqfRzRZ7faNhnmvlV4EPGJU3QJM/3Ab5jhJ5pCRUsKn6OQw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=18.0.0"
+ "node": ">= 20"
}
},
- "node_modules/@smithy/smithy-client": {
- "version": "4.12.13",
- "license": "Apache-2.0",
- "dependencies": {
- "@smithy/core": "^3.23.17",
- "@smithy/middleware-endpoint": "^4.4.32",
- "@smithy/middleware-stack": "^4.2.14",
- "@smithy/protocol-http": "^5.3.14",
- "@smithy/types": "^4.14.1",
- "@smithy/util-stream": "^4.5.25",
- "tslib": "^2.6.2"
- },
+ "node_modules/@tailwindcss/oxide-linux-arm64-musl": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.2.4.tgz",
+ "integrity": "sha512-bBADEGAbo4ASnppIziaQJelekCxdMaxisrk+fB7Thit72IBnALp9K6ffA2G4ruj90G9XRS2VQ6q2bCKbfFV82g==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=18.0.0"
+ "node": ">= 20"
}
},
- "node_modules/@smithy/types": {
- "version": "4.14.2",
- "license": "Apache-2.0",
- "dependencies": {
- "tslib": "^2.6.2"
- },
+ "node_modules/@tailwindcss/oxide-linux-x64-gnu": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.3.1.tgz",
+ "integrity": "sha512-Ymi8O8T15HYQdOUWUtTI6ldN0neHP85FC+Qz32xTcZ7iJXtem/x8ITev0o1e9e5rkqj4lONZfTRLvkmin1+tKg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=18.0.0"
+ "node": ">= 20"
}
},
- "node_modules/@smithy/url-parser": {
- "version": "4.2.14",
- "license": "Apache-2.0",
- "dependencies": {
- "@smithy/querystring-parser": "^4.2.14",
- "@smithy/types": "^4.14.1",
- "tslib": "^2.6.2"
- },
+ "node_modules/@tailwindcss/oxide-linux-x64-musl": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.2.4.tgz",
+ "integrity": "sha512-2wwJRF7nyhOR0hhHoChc04xngV3iS+akccHTGtz965FwF0up4b2lOdo6kI1EbDaEXKgvcrFBYcYQQ/rrnWFVfA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=18.0.0"
+ "node": ">= 20"
}
},
- "node_modules/@smithy/util-base64": {
- "version": "4.3.2",
- "license": "Apache-2.0",
+ "node_modules/@tailwindcss/oxide-wasm32-wasi": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.2.4.tgz",
+ "integrity": "sha512-FQsqApeor8Fo6gUEklzmaa9994orJZZDBAlQpK2Mq+DslRKFJeD6AjHpBQ0kZFQohVr8o85PPh8eOy86VlSCmw==",
+ "bundleDependencies": [
+ "@napi-rs/wasm-runtime",
+ "@emnapi/core",
+ "@emnapi/runtime",
+ "@tybys/wasm-util",
+ "@emnapi/wasi-threads",
+ "tslib"
+ ],
+ "cpu": [
+ "wasm32"
+ ],
+ "license": "MIT",
+ "optional": true,
"dependencies": {
- "@smithy/util-buffer-from": "^4.2.2",
- "@smithy/util-utf8": "^4.2.2",
- "tslib": "^2.6.2"
+ "@emnapi/core": "^1.8.1",
+ "@emnapi/runtime": "^1.8.1",
+ "@emnapi/wasi-threads": "^1.1.0",
+ "@napi-rs/wasm-runtime": "^1.1.1",
+ "@tybys/wasm-util": "^0.10.1",
+ "tslib": "^2.8.1"
},
"engines": {
- "node": ">=18.0.0"
+ "node": ">=14.0.0"
}
},
- "node_modules/@smithy/util-body-length-browser": {
- "version": "4.3.5",
- "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-4.3.5.tgz",
- "integrity": "sha512-nQtYwXg4spM6uc0Luq3yck+WXZ1VPfrYkC2SqkQ+YOGks0qR2bKKlSCjidSqfpq+VAY/RJe1O5V+CtBmnT63KQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "@smithy/core": "^3.24.5",
- "tslib": "^2.6.2"
- },
+ "node_modules/@tailwindcss/oxide-win32-arm64-msvc": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.2.4.tgz",
+ "integrity": "sha512-L9BXqxC4ToVgwMFqj3pmZRqyHEztulpUJzCxUtLjobMCzTPsGt1Fa9enKbOpY2iIyVtaHNeNvAK8ERP/64sqGQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
"engines": {
- "node": ">=18.0.0"
+ "node": ">= 20"
}
},
- "node_modules/@smithy/util-body-length-node": {
- "version": "4.3.5",
- "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-4.3.5.tgz",
- "integrity": "sha512-BAsAed9yWExECwNIi61Le6D8ZTY71MFEFrf3d4L2+uzcbTjFAWxOtymkA1vCV8bNZQN9TGgZo4c68JDsnjNShA==",
- "license": "Apache-2.0",
- "dependencies": {
- "@smithy/core": "^3.24.5",
- "tslib": "^2.6.2"
- },
+ "node_modules/@tailwindcss/oxide-win32-x64-msvc": {
+ "version": "4.2.4",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
"engines": {
- "node": ">=18.0.0"
+ "node": ">= 20"
}
},
- "node_modules/@smithy/util-buffer-from": {
- "version": "4.2.2",
- "license": "Apache-2.0",
- "dependencies": {
- "@smithy/is-array-buffer": "^4.2.2",
- "tslib": "^2.6.2"
- },
+ "node_modules/@tailwindcss/oxide/node_modules/@tailwindcss/oxide-linux-x64-gnu": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.2.4.tgz",
+ "integrity": "sha512-7Mx25E4WTfnht0TVRTyC00j3i0M+EeFe7wguMDTlX4mRxafznw0CA8WJkFjWYH5BlgELd1kSjuU2JiPnNZbJDA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=18.0.0"
+ "node": ">= 20"
}
},
- "node_modules/@smithy/util-defaults-mode-browser": {
- "version": "4.4.5",
- "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.4.5.tgz",
- "integrity": "sha512-LbE6AGHhQOunqIN5UyWDMgpPwmUHUzrV2NtUOQ+lt6Stpipzo6S7uDyeGtO0GGgUD1balEPCNu8Xfl1AQNiruQ==",
- "license": "Apache-2.0",
+ "node_modules/@tailwindcss/vite": {
+ "version": "4.2.4",
+ "license": "MIT",
"dependencies": {
- "@smithy/core": "^3.24.5",
- "tslib": "^2.6.2"
+ "@tailwindcss/node": "4.2.4",
+ "@tailwindcss/oxide": "4.2.4",
+ "tailwindcss": "4.2.4"
},
- "engines": {
- "node": ">=18.0.0"
+ "peerDependencies": {
+ "vite": "^5.2.0 || ^6 || ^7 || ^8"
}
},
- "node_modules/@smithy/util-defaults-mode-node": {
- "version": "4.3.5",
- "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.3.5.tgz",
- "integrity": "sha512-72gNpNDQ2iIGbaNmeaF9I58shWsEuD5tNI7my5uXlm1CSPH5i8IKI/nzU50qqB8y+kgw/qTLGgsf0We5qeM/aA==",
- "license": "Apache-2.0",
+ "node_modules/@tanstack/react-table": {
+ "version": "8.21.3",
+ "license": "MIT",
"dependencies": {
- "@smithy/core": "^3.24.5",
- "tslib": "^2.6.2"
+ "@tanstack/table-core": "8.21.3"
},
"engines": {
- "node": ">=18.0.0"
+ "node": ">=12"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ },
+ "peerDependencies": {
+ "react": ">=16.8",
+ "react-dom": ">=16.8"
}
},
- "node_modules/@smithy/util-endpoints": {
- "version": "3.5.5",
- "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-3.5.5.tgz",
- "integrity": "sha512-NJhe8KmNjeZ7V+gJsQR5xw0IN47N8pBKosed40xfhelDuYkg8VQ5CVGDcHTEuJq3e3zQb21vnoOOReQothejhA==",
- "license": "Apache-2.0",
- "dependencies": {
- "@smithy/core": "^3.24.5",
- "tslib": "^2.6.2"
- },
+ "node_modules/@tanstack/table-core": {
+ "version": "8.21.3",
+ "license": "MIT",
"engines": {
- "node": ">=18.0.0"
+ "node": ">=12"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
}
},
- "node_modules/@smithy/util-hex-encoding": {
- "version": "4.2.2",
- "license": "Apache-2.0",
+ "node_modules/@testing-library/dom": {
+ "version": "9.3.4",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "tslib": "^2.6.2"
+ "@babel/code-frame": "^7.10.4",
+ "@babel/runtime": "^7.12.5",
+ "@types/aria-query": "^5.0.1",
+ "aria-query": "5.1.3",
+ "chalk": "^4.1.0",
+ "dom-accessibility-api": "^0.5.9",
+ "lz-string": "^1.5.0",
+ "pretty-format": "^27.0.2"
},
"engines": {
- "node": ">=18.0.0"
+ "node": ">=14"
}
},
- "node_modules/@smithy/util-middleware": {
- "version": "4.2.14",
- "license": "Apache-2.0",
- "dependencies": {
- "@smithy/types": "^4.14.1",
- "tslib": "^2.6.2"
- },
+ "node_modules/@testing-library/dom/node_modules/ansi-styles": {
+ "version": "5.2.0",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=18.0.0"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/@smithy/util-retry": {
- "version": "4.4.5",
- "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-4.4.5.tgz",
- "integrity": "sha512-W9Ovy9i02yGqtLlpqZNQuXNxXc5OPfXujnembxN/FxyBtGjJd8vKY0PQYEJ8FNybTOcXG+ZxsSsX23HOb3zQzg==",
+ "node_modules/@testing-library/dom/node_modules/aria-query": {
+ "version": "5.1.3",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@smithy/core": "^3.24.5",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=18.0.0"
+ "deep-equal": "^2.0.5"
}
},
- "node_modules/@smithy/util-stream": {
- "version": "4.5.25",
- "license": "Apache-2.0",
+ "node_modules/@testing-library/dom/node_modules/dom-accessibility-api": {
+ "version": "0.5.16",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@testing-library/dom/node_modules/pretty-format": {
+ "version": "27.5.1",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "@smithy/fetch-http-handler": "^5.3.17",
- "@smithy/node-http-handler": "^4.6.1",
- "@smithy/types": "^4.14.1",
- "@smithy/util-base64": "^4.3.2",
- "@smithy/util-buffer-from": "^4.2.2",
- "@smithy/util-hex-encoding": "^4.2.2",
- "@smithy/util-utf8": "^4.2.2",
- "tslib": "^2.6.2"
+ "ansi-regex": "^5.0.1",
+ "ansi-styles": "^5.0.0",
+ "react-is": "^17.0.1"
},
"engines": {
- "node": ">=18.0.0"
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "node_modules/@smithy/util-uri-escape": {
- "version": "4.2.2",
- "license": "Apache-2.0",
+ "node_modules/@testing-library/dom/node_modules/react-is": {
+ "version": "17.0.2",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@testing-library/jest-dom": {
+ "version": "6.9.1",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "tslib": "^2.6.2"
+ "@adobe/css-tools": "^4.4.0",
+ "aria-query": "^5.0.0",
+ "css.escape": "^1.5.1",
+ "dom-accessibility-api": "^0.6.3",
+ "picocolors": "^1.1.1",
+ "redent": "^3.0.0"
},
"engines": {
- "node": ">=18.0.0"
+ "node": ">=14",
+ "npm": ">=6",
+ "yarn": ">=1"
}
},
- "node_modules/@smithy/util-utf8": {
- "version": "4.2.2",
- "license": "Apache-2.0",
+ "node_modules/@testing-library/react": {
+ "version": "14.3.1",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "@smithy/util-buffer-from": "^4.2.2",
- "tslib": "^2.6.2"
+ "@babel/runtime": "^7.12.5",
+ "@testing-library/dom": "^9.0.0",
+ "@types/react-dom": "^18.0.0"
},
"engines": {
- "node": ">=18.0.0"
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
}
},
- "node_modules/@smithy/util-waiter": {
- "version": "4.4.5",
- "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-4.4.5.tgz",
- "integrity": "sha512-EYviebytZE6vplW0AGwZ2Rc3sNuVR83lfUCNZu11VchUiKhMwJqrRWy7iVDTNEwG/vEwItno591Iad6/prj6Bw==",
- "license": "Apache-2.0",
+ "node_modules/@testing-library/react/node_modules/@types/react-dom": {
+ "version": "18.3.7",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "^18.0.0"
+ }
+ },
+ "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==",
+ "license": "MIT",
+ "optional": true,
"dependencies": {
- "@smithy/core": "^3.24.5",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=18.0.0"
+ "tslib": "^2.4.0"
}
},
- "node_modules/@stablelib/base64": {
- "version": "1.0.1",
+ "node_modules/@types/aria-query": {
+ "version": "5.0.4",
+ "dev": true,
"license": "MIT"
},
- "node_modules/@supabase/auth-js": {
- "version": "2.105.1",
+ "node_modules/@types/babel__core": {
+ "version": "7.20.5",
"license": "MIT",
"dependencies": {
- "tslib": "2.8.1"
- },
- "engines": {
- "node": ">=20.0.0"
+ "@babel/parser": "^7.20.7",
+ "@babel/types": "^7.20.7",
+ "@types/babel__generator": "*",
+ "@types/babel__template": "*",
+ "@types/babel__traverse": "*"
}
},
- "node_modules/@supabase/functions-js": {
- "version": "2.105.1",
+ "node_modules/@types/babel__generator": {
+ "version": "7.27.0",
"license": "MIT",
"dependencies": {
- "tslib": "2.8.1"
- },
- "engines": {
- "node": ">=20.0.0"
+ "@babel/types": "^7.0.0"
}
},
- "node_modules/@supabase/phoenix": {
- "version": "0.4.1",
- "license": "MIT"
+ "node_modules/@types/babel__template": {
+ "version": "7.4.4",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
},
- "node_modules/@supabase/postgrest-js": {
- "version": "2.105.1",
+ "node_modules/@types/babel__traverse": {
+ "version": "7.28.0",
"license": "MIT",
"dependencies": {
- "tslib": "2.8.1"
- },
- "engines": {
- "node": ">=20.0.0"
+ "@babel/types": "^7.28.2"
}
},
- "node_modules/@supabase/realtime-js": {
- "version": "2.105.1",
+ "node_modules/@types/d3-array": {
+ "version": "3.2.2",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-color": {
+ "version": "3.1.3",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-ease": {
+ "version": "3.0.2",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-interpolate": {
+ "version": "3.0.4",
"license": "MIT",
"dependencies": {
- "@supabase/phoenix": "^0.4.1",
- "@types/ws": "^8.18.1",
- "tslib": "2.8.1",
- "ws": "^8.18.2"
- },
- "engines": {
- "node": ">=20.0.0"
+ "@types/d3-color": "*"
}
},
- "node_modules/@supabase/storage-js": {
- "version": "2.105.1",
+ "node_modules/@types/d3-path": {
+ "version": "3.1.1",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-scale": {
+ "version": "4.0.9",
"license": "MIT",
"dependencies": {
- "iceberg-js": "^0.8.1",
- "tslib": "2.8.1"
- },
- "engines": {
- "node": ">=20.0.0"
+ "@types/d3-time": "*"
}
},
- "node_modules/@supabase/supabase-js": {
- "version": "2.105.1",
+ "node_modules/@types/d3-shape": {
+ "version": "3.1.8",
"license": "MIT",
"dependencies": {
- "@supabase/auth-js": "2.105.1",
- "@supabase/functions-js": "2.105.1",
- "@supabase/postgrest-js": "2.105.1",
- "@supabase/realtime-js": "2.105.1",
- "@supabase/storage-js": "2.105.1"
- },
- "engines": {
- "node": ">=20.0.0"
+ "@types/d3-path": "*"
}
},
- "node_modules/@tailwindcss/node": {
- "version": "4.2.4",
+ "node_modules/@types/d3-time": {
+ "version": "3.0.4",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-timer": {
+ "version": "3.0.2",
+ "license": "MIT"
+ },
+ "node_modules/@types/debug": {
+ "version": "4.1.13",
"license": "MIT",
"dependencies": {
- "@jridgewell/remapping": "^2.3.5",
- "enhanced-resolve": "^5.19.0",
- "jiti": "^2.6.1",
- "lightningcss": "1.32.0",
- "magic-string": "^0.30.21",
- "source-map-js": "^1.2.1",
- "tailwindcss": "4.2.4"
+ "@types/ms": "*"
}
},
- "node_modules/@tailwindcss/oxide": {
- "version": "4.2.4",
- "license": "MIT",
- "engines": {
- "node": ">= 20"
- },
- "optionalDependencies": {
- "@tailwindcss/oxide-android-arm64": "4.2.4",
- "@tailwindcss/oxide-darwin-arm64": "4.2.4",
- "@tailwindcss/oxide-darwin-x64": "4.2.4",
- "@tailwindcss/oxide-freebsd-x64": "4.2.4",
- "@tailwindcss/oxide-linux-arm-gnueabihf": "4.2.4",
- "@tailwindcss/oxide-linux-arm64-gnu": "4.2.4",
- "@tailwindcss/oxide-linux-arm64-musl": "4.2.4",
- "@tailwindcss/oxide-linux-x64-gnu": "4.2.4",
- "@tailwindcss/oxide-linux-x64-musl": "4.2.4",
- "@tailwindcss/oxide-wasm32-wasi": "4.2.4",
- "@tailwindcss/oxide-win32-arm64-msvc": "4.2.4",
- "@tailwindcss/oxide-win32-x64-msvc": "4.2.4"
- }
+ "node_modules/@types/esrecurse": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/@types/esrecurse/-/esrecurse-4.3.1.tgz",
+ "integrity": "sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/@tailwindcss/oxide-android-arm64": {
- "version": "4.2.4",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.2.4.tgz",
- "integrity": "sha512-e7MOr1SAn9U8KlZzPi1ZXGZHeC5anY36qjNwmZv9pOJ8E4Q6jmD1vyEHkQFmNOIN7twGPEMXRHmitN4zCMN03g==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">= 20"
- }
+ "node_modules/@types/estree": {
+ "version": "1.0.8",
+ "license": "MIT"
},
- "node_modules/@tailwindcss/oxide-darwin-arm64": {
- "version": "4.2.4",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.2.4.tgz",
- "integrity": "sha512-tSC/Kbqpz/5/o/C2sG7QvOxAKqyd10bq+ypZNf+9Fi2TvbVbv1zNpcEptcsU7DPROaSbVgUXmrzKhurFvo5eDg==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/@types/estree-jsx": {
+ "version": "1.0.5",
"license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 20"
+ "dependencies": {
+ "@types/estree": "*"
}
},
- "node_modules/@tailwindcss/oxide-darwin-x64": {
- "version": "4.2.4",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.2.4.tgz",
- "integrity": "sha512-yPyUXn3yO/ufR6+Kzv0t4fCg2qNr90jxXc5QqBpjlPNd0NqyDXcmQb/6weunH/MEDXW5dhyEi+agTDiqa3WsGg==",
- "cpu": [
- "x64"
- ],
+ "node_modules/@types/hast": {
+ "version": "3.0.4",
"license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 20"
+ "dependencies": {
+ "@types/unist": "*"
}
},
- "node_modules/@tailwindcss/oxide-freebsd-x64": {
- "version": "4.2.4",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.2.4.tgz",
- "integrity": "sha512-BoMIB4vMQtZsXdGLVc2z+P9DbETkiopogfWZKbWwM8b/1Vinbs4YcUwo+kM/KeLkX3Ygrf4/PsRndKaYhS8Eiw==",
- "cpu": [
- "x64"
- ],
+ "node_modules/@types/istanbul-lib-coverage": {
+ "version": "2.0.6",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/istanbul-lib-report": {
+ "version": "3.0.3",
+ "dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">= 20"
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "*"
}
},
- "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": {
- "version": "4.2.4",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.2.4.tgz",
- "integrity": "sha512-7pIHBLTHYRAlS7V22JNuTh33yLH4VElwKtB3bwchK/UaKUPpQ0lPQiOWcbm4V3WP2I6fNIJ23vABIvoy2izdwA==",
- "cpu": [
- "arm"
- ],
+ "node_modules/@types/istanbul-reports": {
+ "version": "3.0.4",
+ "dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 20"
+ "dependencies": {
+ "@types/istanbul-lib-report": "*"
}
},
- "node_modules/@tailwindcss/oxide-linux-arm64-gnu": {
- "version": "4.2.4",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.2.4.tgz",
- "integrity": "sha512-+E4wxJ0ZGOzSH325reXTWB48l42i93kQqMvDyz5gqfRzRZ7faNhnmvlV4EPGJU3QJM/3Ab5jhJ5pCRUsKn6OQw==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/@types/json-schema": {
+ "version": "7.0.15",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/mdast": {
+ "version": "4.0.4",
"license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 20"
+ "dependencies": {
+ "@types/unist": "*"
}
},
- "node_modules/@tailwindcss/oxide-linux-arm64-musl": {
- "version": "4.2.4",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.2.4.tgz",
- "integrity": "sha512-bBADEGAbo4ASnppIziaQJelekCxdMaxisrk+fB7Thit72IBnALp9K6ffA2G4ruj90G9XRS2VQ6q2bCKbfFV82g==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/@types/ms": {
+ "version": "2.1.0",
+ "license": "MIT"
+ },
+ "node_modules/@types/nlcst": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@types/nlcst/-/nlcst-2.0.3.tgz",
+ "integrity": "sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==",
"license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 20"
+ "dependencies": {
+ "@types/unist": "*"
}
},
- "node_modules/@tailwindcss/oxide-linux-x64-gnu": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.3.1.tgz",
- "integrity": "sha512-Ymi8O8T15HYQdOUWUtTI6ldN0neHP85FC+Qz32xTcZ7iJXtem/x8ITev0o1e9e5rkqj4lONZfTRLvkmin1+tKg==",
- "cpu": [
- "x64"
- ],
+ "node_modules/@types/node": {
+ "version": "25.6.0",
"license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 20"
+ "dependencies": {
+ "undici-types": "~7.19.0"
}
},
- "node_modules/@tailwindcss/oxide-linux-x64-musl": {
- "version": "4.2.4",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.2.4.tgz",
- "integrity": "sha512-2wwJRF7nyhOR0hhHoChc04xngV3iS+akccHTGtz965FwF0up4b2lOdo6kI1EbDaEXKgvcrFBYcYQQ/rrnWFVfA==",
- "cpu": [
- "x64"
- ],
+ "node_modules/@types/phoenix": {
+ "version": "1.6.7",
+ "resolved": "https://registry.npmjs.org/@types/phoenix/-/phoenix-1.6.7.tgz",
+ "integrity": "sha512-oN9ive//QSBkf19rfDv45M7eZPi0eEXylht2OLEXicu5b4KoQ1OzXIw+xDSGWxSxe1JmepRR/ZH283vsu518/Q==",
+ "license": "MIT"
+ },
+ "node_modules/@types/prop-types": {
+ "version": "15.7.15",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/react": {
+ "version": "19.2.14",
+ "license": "MIT",
+ "dependencies": {
+ "csstype": "^3.2.2"
+ }
+ },
+ "node_modules/@types/react-dom": {
+ "version": "19.2.3",
"license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 20"
+ "peerDependencies": {
+ "@types/react": "^19.2.0"
}
},
- "node_modules/@tailwindcss/oxide-wasm32-wasi": {
- "version": "4.2.4",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.2.4.tgz",
- "integrity": "sha512-FQsqApeor8Fo6gUEklzmaa9994orJZZDBAlQpK2Mq+DslRKFJeD6AjHpBQ0kZFQohVr8o85PPh8eOy86VlSCmw==",
- "bundleDependencies": [
- "@napi-rs/wasm-runtime",
- "@emnapi/core",
- "@emnapi/runtime",
- "@tybys/wasm-util",
- "@emnapi/wasi-threads",
- "tslib"
- ],
- "cpu": [
- "wasm32"
- ],
+ "node_modules/@types/sax": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.7.tgz",
+ "integrity": "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==",
"license": "MIT",
- "optional": true,
"dependencies": {
- "@emnapi/core": "^1.8.1",
- "@emnapi/runtime": "^1.8.1",
- "@emnapi/wasi-threads": "^1.1.0",
- "@napi-rs/wasm-runtime": "^1.1.1",
- "@tybys/wasm-util": "^0.10.1",
- "tslib": "^2.8.1"
- },
- "engines": {
- "node": ">=14.0.0"
+ "@types/node": "*"
}
},
- "node_modules/@tailwindcss/oxide-win32-arm64-msvc": {
- "version": "4.2.4",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.2.4.tgz",
- "integrity": "sha512-L9BXqxC4ToVgwMFqj3pmZRqyHEztulpUJzCxUtLjobMCzTPsGt1Fa9enKbOpY2iIyVtaHNeNvAK8ERP/64sqGQ==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/@types/stack-utils": {
+ "version": "2.0.3",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/unist": {
+ "version": "3.0.3",
+ "license": "MIT"
+ },
+ "node_modules/@types/webidl-conversions": {
+ "version": "7.0.3",
+ "license": "MIT"
+ },
+ "node_modules/@types/whatwg-url": {
+ "version": "11.0.5",
"license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 20"
+ "dependencies": {
+ "@types/webidl-conversions": "*"
}
},
- "node_modules/@tailwindcss/oxide-win32-x64-msvc": {
- "version": "4.2.4",
- "cpu": [
- "x64"
- ],
+ "node_modules/@types/ws": {
+ "version": "8.18.1",
"license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 20"
+ "dependencies": {
+ "@types/node": "*"
}
},
- "node_modules/@tailwindcss/oxide/node_modules/@tailwindcss/oxide-linux-x64-gnu": {
- "version": "4.2.4",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.2.4.tgz",
- "integrity": "sha512-7Mx25E4WTfnht0TVRTyC00j3i0M+EeFe7wguMDTlX4mRxafznw0CA8WJkFjWYH5BlgELd1kSjuU2JiPnNZbJDA==",
- "cpu": [
- "x64"
- ],
+ "node_modules/@types/yargs": {
+ "version": "17.0.35",
+ "dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 20"
+ "dependencies": {
+ "@types/yargs-parser": "*"
}
},
- "node_modules/@tailwindcss/vite": {
- "version": "4.2.4",
+ "node_modules/@types/yargs-parser": {
+ "version": "21.0.3",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@typescript-eslint/eslint-plugin": {
+ "version": "8.59.1",
+ "dev": true,
"license": "MIT",
"dependencies": {
- "@tailwindcss/node": "4.2.4",
- "@tailwindcss/oxide": "4.2.4",
- "tailwindcss": "4.2.4"
+ "@eslint-community/regexpp": "^4.12.2",
+ "@typescript-eslint/scope-manager": "8.59.1",
+ "@typescript-eslint/type-utils": "8.59.1",
+ "@typescript-eslint/utils": "8.59.1",
+ "@typescript-eslint/visitor-keys": "8.59.1",
+ "ignore": "^7.0.5",
+ "natural-compare": "^1.4.0",
+ "ts-api-utils": "^2.5.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "vite": "^5.2.0 || ^6 || ^7 || ^8"
+ "@typescript-eslint/parser": "^8.59.1",
+ "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
+ "typescript": ">=4.8.4 <6.1.0"
}
},
- "node_modules/@tanstack/react-table": {
- "version": "8.21.3",
+ "node_modules/@typescript-eslint/parser": {
+ "version": "8.59.1",
+ "dev": true,
"license": "MIT",
"dependencies": {
- "@tanstack/table-core": "8.21.3"
+ "@typescript-eslint/scope-manager": "8.59.1",
+ "@typescript-eslint/types": "8.59.1",
+ "@typescript-eslint/typescript-estree": "8.59.1",
+ "@typescript-eslint/visitor-keys": "8.59.1",
+ "debug": "^4.4.3"
},
"engines": {
- "node": ">=12"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
- "type": "github",
- "url": "https://github.com/sponsors/tannerlinsley"
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "react": ">=16.8",
- "react-dom": ">=16.8"
+ "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
+ "typescript": ">=4.8.4 <6.1.0"
}
},
- "node_modules/@tanstack/table-core": {
- "version": "8.21.3",
+ "node_modules/@typescript-eslint/project-service": {
+ "version": "8.59.1",
+ "dev": true,
"license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/tsconfig-utils": "^8.59.1",
+ "@typescript-eslint/types": "^8.59.1",
+ "debug": "^4.4.3"
+ },
"engines": {
- "node": ">=12"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
- "type": "github",
- "url": "https://github.com/sponsors/tannerlinsley"
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.8.4 <6.1.0"
}
},
- "node_modules/@testing-library/dom": {
- "version": "9.3.4",
+ "node_modules/@typescript-eslint/scope-manager": {
+ "version": "8.59.1",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/code-frame": "^7.10.4",
- "@babel/runtime": "^7.12.5",
- "@types/aria-query": "^5.0.1",
- "aria-query": "5.1.3",
- "chalk": "^4.1.0",
- "dom-accessibility-api": "^0.5.9",
- "lz-string": "^1.5.0",
- "pretty-format": "^27.0.2"
+ "@typescript-eslint/types": "8.59.1",
+ "@typescript-eslint/visitor-keys": "8.59.1"
},
"engines": {
- "node": ">=14"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
}
},
- "node_modules/@testing-library/dom/node_modules/ansi-styles": {
- "version": "5.2.0",
+ "node_modules/@typescript-eslint/tsconfig-utils": {
+ "version": "8.59.1",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=10"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.8.4 <6.1.0"
}
},
- "node_modules/@testing-library/dom/node_modules/aria-query": {
- "version": "5.1.3",
+ "node_modules/@typescript-eslint/type-utils": {
+ "version": "8.59.1",
"dev": true,
- "license": "Apache-2.0",
+ "license": "MIT",
"dependencies": {
- "deep-equal": "^2.0.5"
+ "@typescript-eslint/types": "8.59.1",
+ "@typescript-eslint/typescript-estree": "8.59.1",
+ "@typescript-eslint/utils": "8.59.1",
+ "debug": "^4.4.3",
+ "ts-api-utils": "^2.5.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
+ "typescript": ">=4.8.4 <6.1.0"
}
},
- "node_modules/@testing-library/dom/node_modules/dom-accessibility-api": {
- "version": "0.5.16",
+ "node_modules/@typescript-eslint/types": {
+ "version": "8.59.1",
"dev": true,
- "license": "MIT"
+ "license": "MIT",
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
},
- "node_modules/@testing-library/dom/node_modules/pretty-format": {
- "version": "27.5.1",
+ "node_modules/@typescript-eslint/typescript-estree": {
+ "version": "8.59.1",
"dev": true,
"license": "MIT",
"dependencies": {
- "ansi-regex": "^5.0.1",
- "ansi-styles": "^5.0.0",
- "react-is": "^17.0.1"
+ "@typescript-eslint/project-service": "8.59.1",
+ "@typescript-eslint/tsconfig-utils": "8.59.1",
+ "@typescript-eslint/types": "8.59.1",
+ "@typescript-eslint/visitor-keys": "8.59.1",
+ "debug": "^4.4.3",
+ "minimatch": "^10.2.2",
+ "semver": "^7.7.3",
+ "tinyglobby": "^0.2.15",
+ "ts-api-utils": "^2.5.0"
},
"engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.8.4 <6.1.0"
}
},
- "node_modules/@testing-library/dom/node_modules/react-is": {
- "version": "17.0.2",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@testing-library/jest-dom": {
- "version": "6.9.1",
+ "node_modules/@typescript-eslint/utils": {
+ "version": "8.59.1",
"dev": true,
"license": "MIT",
"dependencies": {
- "@adobe/css-tools": "^4.4.0",
- "aria-query": "^5.0.0",
- "css.escape": "^1.5.1",
- "dom-accessibility-api": "^0.6.3",
- "picocolors": "^1.1.1",
- "redent": "^3.0.0"
+ "@eslint-community/eslint-utils": "^4.9.1",
+ "@typescript-eslint/scope-manager": "8.59.1",
+ "@typescript-eslint/types": "8.59.1",
+ "@typescript-eslint/typescript-estree": "8.59.1"
},
"engines": {
- "node": ">=14",
- "npm": ">=6",
- "yarn": ">=1"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
+ "typescript": ">=4.8.4 <6.1.0"
}
},
- "node_modules/@testing-library/react": {
- "version": "14.3.1",
+ "node_modules/@typescript-eslint/visitor-keys": {
+ "version": "8.59.1",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/runtime": "^7.12.5",
- "@testing-library/dom": "^9.0.0",
- "@types/react-dom": "^18.0.0"
+ "@typescript-eslint/types": "8.59.1",
+ "eslint-visitor-keys": "^5.0.0"
},
"engines": {
- "node": ">=14"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
- "peerDependencies": {
- "react": "^18.0.0",
- "react-dom": "^18.0.0"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
}
},
- "node_modules/@testing-library/react/node_modules/@types/react-dom": {
- "version": "18.3.7",
+ "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": {
+ "version": "5.0.1",
"dev": true,
- "license": "MIT",
- "peerDependencies": {
- "@types/react": "^18.0.0"
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^20.19.0 || ^22.13.0 || >=24"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
}
},
- "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==",
+ "node_modules/@ungap/structured-clone": {
+ "version": "1.3.0",
+ "license": "ISC"
+ },
+ "node_modules/@unrs/resolver-binding-win32-x64-msvc": {
+ "version": "1.11.1",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
"license": "MIT",
"optional": true,
- "dependencies": {
- "tslib": "^2.4.0"
- }
+ "os": [
+ "win32"
+ ]
},
- "node_modules/@types/aria-query": {
- "version": "5.0.4",
- "dev": true,
- "license": "MIT"
+ "node_modules/@urbackend/cli": {
+ "resolved": "sdks/urbackend-cli",
+ "link": true
},
- "node_modules/@types/babel__core": {
- "version": "7.20.5",
+ "node_modules/@urbackend/common": {
+ "resolved": "packages/common",
+ "link": true
+ },
+ "node_modules/@urbackend/react": {
+ "resolved": "sdks/urbackend-react",
+ "link": true
+ },
+ "node_modules/@urbackend/sdk": {
+ "resolved": "sdks/urbackend-sdk",
+ "link": true
+ },
+ "node_modules/@vitejs/plugin-react": {
+ "version": "5.2.0",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/parser": "^7.20.7",
- "@babel/types": "^7.20.7",
- "@types/babel__generator": "*",
- "@types/babel__template": "*",
- "@types/babel__traverse": "*"
+ "@babel/core": "^7.29.0",
+ "@babel/plugin-transform-react-jsx-self": "^7.27.1",
+ "@babel/plugin-transform-react-jsx-source": "^7.27.1",
+ "@rolldown/pluginutils": "1.0.0-rc.3",
+ "@types/babel__core": "^7.20.5",
+ "react-refresh": "^0.18.0"
+ },
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ },
+ "peerDependencies": {
+ "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0"
}
},
- "node_modules/@types/babel__generator": {
- "version": "7.27.0",
+ "node_modules/@vitest/expect": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.6.1.tgz",
+ "integrity": "sha512-jXL+9+ZNIJKruofqXuuTClf44eSpcHlgj3CiuNihUF3Ioujtmc0zIa3UJOW5RjDK1YLBJZnWBlPuqhYycLioog==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/types": "^7.0.0"
+ "@vitest/spy": "1.6.1",
+ "@vitest/utils": "1.6.1",
+ "chai": "^4.3.10"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
}
},
- "node_modules/@types/babel__template": {
- "version": "7.4.4",
+ "node_modules/@vitest/runner": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.6.1.tgz",
+ "integrity": "sha512-3nSnYXkVkf3mXFfE7vVyPmi3Sazhb/2cfZGGs0JRzFsPFvAMBEcrweV1V1GsrstdXeKCTXlJbvnQwGWgEIHmOA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/parser": "^7.1.0",
- "@babel/types": "^7.0.0"
+ "@vitest/utils": "1.6.1",
+ "p-limit": "^5.0.0",
+ "pathe": "^1.1.1"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
}
},
- "node_modules/@types/babel__traverse": {
- "version": "7.28.0",
+ "node_modules/@vitest/runner/node_modules/p-limit": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz",
+ "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/types": "^7.28.2"
+ "yocto-queue": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@types/d3-array": {
- "version": "3.2.2",
- "license": "MIT"
- },
- "node_modules/@types/d3-color": {
- "version": "3.1.3",
- "license": "MIT"
- },
- "node_modules/@types/d3-ease": {
- "version": "3.0.2",
+ "node_modules/@vitest/runner/node_modules/pathe": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz",
+ "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==",
+ "dev": true,
"license": "MIT"
},
- "node_modules/@types/d3-interpolate": {
- "version": "3.0.4",
+ "node_modules/@vitest/runner/node_modules/yocto-queue": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.2.tgz",
+ "integrity": "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==",
+ "dev": true,
"license": "MIT",
- "dependencies": {
- "@types/d3-color": "*"
+ "engines": {
+ "node": ">=12.20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@types/d3-path": {
- "version": "3.1.1",
- "license": "MIT"
- },
- "node_modules/@types/d3-scale": {
- "version": "4.0.9",
+ "node_modules/@vitest/snapshot": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.6.1.tgz",
+ "integrity": "sha512-WvidQuWAzU2p95u8GAKlRMqMyN1yOJkGHnx3M1PL9Raf7AQ1kwLKg04ADlCa3+OXUZE7BceOhVZiuWAbzCKcUQ==",
+ "dev": true,
"license": "MIT",
"dependencies": {
- "@types/d3-time": "*"
+ "magic-string": "^0.30.5",
+ "pathe": "^1.1.1",
+ "pretty-format": "^29.7.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
}
},
- "node_modules/@types/d3-shape": {
- "version": "3.1.8",
+ "node_modules/@vitest/snapshot/node_modules/@jest/schemas": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
+ "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
+ "dev": true,
"license": "MIT",
"dependencies": {
- "@types/d3-path": "*"
+ "@sinclair/typebox": "^0.27.8"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/@types/d3-time": {
- "version": "3.0.4",
- "license": "MIT"
- },
- "node_modules/@types/d3-timer": {
- "version": "3.0.2",
+ "node_modules/@vitest/snapshot/node_modules/@sinclair/typebox": {
+ "version": "0.27.10",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.10.tgz",
+ "integrity": "sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==",
+ "dev": true,
"license": "MIT"
},
- "node_modules/@types/debug": {
- "version": "4.1.13",
+ "node_modules/@vitest/snapshot/node_modules/ansi-styles": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
+ "dev": true,
"license": "MIT",
- "dependencies": {
- "@types/ms": "*"
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/@types/esrecurse": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/@types/esrecurse/-/esrecurse-4.3.1.tgz",
- "integrity": "sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==",
+ "node_modules/@vitest/snapshot/node_modules/pathe": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz",
+ "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==",
"dev": true,
"license": "MIT"
},
- "node_modules/@types/estree": {
- "version": "1.0.8",
- "license": "MIT"
- },
- "node_modules/@types/estree-jsx": {
- "version": "1.0.5",
+ "node_modules/@vitest/snapshot/node_modules/pretty-format": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
+ "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
+ "dev": true,
"license": "MIT",
"dependencies": {
- "@types/estree": "*"
+ "@jest/schemas": "^29.6.3",
+ "ansi-styles": "^5.0.0",
+ "react-is": "^18.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/@types/hast": {
- "version": "3.0.4",
+ "node_modules/@vitest/spy": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.6.1.tgz",
+ "integrity": "sha512-MGcMmpGkZebsMZhbQKkAf9CX5zGvjkBTqf8Zx3ApYWXr3wG+QvEu2eXWfnIIWYSJExIp4V9FCKDEeygzkYrXMw==",
+ "dev": true,
"license": "MIT",
"dependencies": {
- "@types/unist": "*"
+ "tinyspy": "^2.2.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
}
},
- "node_modules/@types/istanbul-lib-coverage": {
- "version": "2.0.6",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/istanbul-lib-report": {
- "version": "3.0.3",
+ "node_modules/@vitest/utils": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.6.1.tgz",
+ "integrity": "sha512-jOrrUvXM4Av9ZWiG1EajNto0u96kWAhJ1LmPmJhXXQx/32MecEKd10pOLYgS2BQx1TgkGhloPU1ArDW2vvaY6g==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@types/istanbul-lib-coverage": "*"
+ "diff-sequences": "^29.6.3",
+ "estree-walker": "^3.0.3",
+ "loupe": "^2.3.7",
+ "pretty-format": "^29.7.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
}
},
- "node_modules/@types/istanbul-reports": {
- "version": "3.0.4",
+ "node_modules/@vitest/utils/node_modules/@jest/schemas": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
+ "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@types/istanbul-lib-report": "*"
+ "@sinclair/typebox": "^0.27.8"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/@types/json-schema": {
- "version": "7.0.15",
+ "node_modules/@vitest/utils/node_modules/@sinclair/typebox": {
+ "version": "0.27.10",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.10.tgz",
+ "integrity": "sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==",
"dev": true,
"license": "MIT"
},
- "node_modules/@types/mdast": {
- "version": "4.0.4",
+ "node_modules/@vitest/utils/node_modules/ansi-styles": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
+ "dev": true,
"license": "MIT",
- "dependencies": {
- "@types/unist": "*"
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/@types/ms": {
- "version": "2.1.0",
- "license": "MIT"
- },
- "node_modules/@types/node": {
- "version": "25.6.0",
+ "node_modules/@vitest/utils/node_modules/pretty-format": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
+ "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
+ "dev": true,
"license": "MIT",
"dependencies": {
- "undici-types": "~7.19.0"
+ "@jest/schemas": "^29.6.3",
+ "ansi-styles": "^5.0.0",
+ "react-is": "^18.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/@types/phoenix": {
- "version": "1.6.7",
- "resolved": "https://registry.npmjs.org/@types/phoenix/-/phoenix-1.6.7.tgz",
- "integrity": "sha512-oN9ive//QSBkf19rfDv45M7eZPi0eEXylht2OLEXicu5b4KoQ1OzXIw+xDSGWxSxe1JmepRR/ZH283vsu518/Q==",
- "license": "MIT"
- },
- "node_modules/@types/prop-types": {
- "version": "15.7.15",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/react": {
- "version": "19.2.14",
+ "node_modules/accepts": {
+ "version": "2.0.0",
"license": "MIT",
"dependencies": {
- "csstype": "^3.2.2"
+ "mime-types": "^3.0.0",
+ "negotiator": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
}
},
- "node_modules/@types/react-dom": {
- "version": "19.2.3",
+ "node_modules/acorn": {
+ "version": "8.16.0",
+ "license": "MIT",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/acorn-jsx": {
+ "version": "5.3.2",
"dev": true,
"license": "MIT",
"peerDependencies": {
- "@types/react": "^19.2.0"
+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
}
},
- "node_modules/@types/stack-utils": {
- "version": "2.0.3",
+ "node_modules/acorn-walk": {
+ "version": "8.3.5",
"dev": true,
- "license": "MIT"
- },
- "node_modules/@types/unist": {
- "version": "3.0.3",
- "license": "MIT"
- },
- "node_modules/@types/webidl-conversions": {
- "version": "7.0.3",
- "license": "MIT"
- },
- "node_modules/@types/whatwg-url": {
- "version": "11.0.5",
"license": "MIT",
"dependencies": {
- "@types/webidl-conversions": "*"
+ "acorn": "^8.11.0"
+ },
+ "engines": {
+ "node": ">=0.4.0"
}
},
- "node_modules/@types/ws": {
- "version": "8.18.1",
+ "node_modules/agent-base": {
+ "version": "7.1.4",
+ "dev": true,
"license": "MIT",
- "dependencies": {
- "@types/node": "*"
+ "engines": {
+ "node": ">= 14"
}
},
- "node_modules/@types/yargs": {
- "version": "17.0.35",
+ "node_modules/ajv": {
+ "version": "6.15.0",
"dev": true,
"license": "MIT",
"dependencies": {
- "@types/yargs-parser": "*"
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
}
},
- "node_modules/@types/yargs-parser": {
- "version": "21.0.3",
- "dev": true,
- "license": "MIT"
+ "node_modules/ansi-align": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz",
+ "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==",
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^4.1.0"
+ }
},
- "node_modules/@typescript-eslint/eslint-plugin": {
- "version": "8.59.1",
+ "node_modules/ansi-escapes": {
+ "version": "4.3.2",
"dev": true,
"license": "MIT",
"dependencies": {
- "@eslint-community/regexpp": "^4.12.2",
- "@typescript-eslint/scope-manager": "8.59.1",
- "@typescript-eslint/type-utils": "8.59.1",
- "@typescript-eslint/utils": "8.59.1",
- "@typescript-eslint/visitor-keys": "8.59.1",
- "ignore": "^7.0.5",
- "natural-compare": "^1.4.0",
- "ts-api-utils": "^2.5.0"
+ "type-fest": "^0.21.3"
},
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ "node": ">=8"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "@typescript-eslint/parser": "^8.59.1",
- "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
- "typescript": ">=4.8.4 <6.1.0"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@typescript-eslint/parser": {
- "version": "8.59.1",
- "dev": true,
+ "node_modules/ansi-regex": {
+ "version": "5.0.1",
"license": "MIT",
- "dependencies": {
- "@typescript-eslint/scope-manager": "8.59.1",
- "@typescript-eslint/types": "8.59.1",
- "@typescript-eslint/typescript-estree": "8.59.1",
- "@typescript-eslint/visitor-keys": "8.59.1",
- "debug": "^4.4.3"
- },
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
- "typescript": ">=4.8.4 <6.1.0"
+ "node": ">=8"
}
},
- "node_modules/@typescript-eslint/project-service": {
- "version": "8.59.1",
+ "node_modules/ansi-styles": {
+ "version": "4.3.0",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/tsconfig-utils": "^8.59.1",
- "@typescript-eslint/types": "^8.59.1",
- "debug": "^4.4.3"
+ "color-convert": "^2.0.1"
},
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ "node": ">=8"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "typescript": ">=4.8.4 <6.1.0"
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/@typescript-eslint/scope-manager": {
- "version": "8.59.1",
+ "node_modules/any-promise": {
+ "version": "1.3.0",
"dev": true,
- "license": "MIT",
+ "license": "MIT"
+ },
+ "node_modules/anymatch": {
+ "version": "3.1.3",
+ "license": "ISC",
"dependencies": {
- "@typescript-eslint/types": "8.59.1",
- "@typescript-eslint/visitor-keys": "8.59.1"
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
},
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
+ "node": ">= 8"
}
},
- "node_modules/@typescript-eslint/tsconfig-utils": {
- "version": "8.59.1",
- "dev": true,
+ "node_modules/anymatch/node_modules/picomatch": {
+ "version": "2.3.2",
"license": "MIT",
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ "node": ">=8.6"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "typescript": ">=4.8.4 <6.1.0"
+ "url": "https://github.com/sponsors/jonschlinkert"
}
},
- "node_modules/@typescript-eslint/type-utils": {
- "version": "8.59.1",
+ "node_modules/append-field": {
+ "version": "1.0.0",
+ "license": "MIT"
+ },
+ "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==",
+ "license": "MIT"
+ },
+ "node_modules/argparse": {
+ "version": "2.0.1",
+ "license": "Python-2.0"
+ },
+ "node_modules/aria-query": {
+ "version": "5.3.2",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/array-buffer-byte-length": {
+ "version": "1.0.2",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "8.59.1",
- "@typescript-eslint/typescript-estree": "8.59.1",
- "@typescript-eslint/utils": "8.59.1",
- "debug": "^4.4.3",
- "ts-api-utils": "^2.5.0"
+ "call-bound": "^1.0.3",
+ "is-array-buffer": "^3.0.5"
},
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ "node": ">= 0.4"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
- "typescript": ">=4.8.4 <6.1.0"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/@typescript-eslint/types": {
- "version": "8.59.1",
- "dev": true,
+ "node_modules/array-iterate": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/array-iterate/-/array-iterate-2.0.1.tgz",
+ "integrity": "sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==",
"license": "MIT",
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
}
},
- "node_modules/@typescript-eslint/typescript-estree": {
- "version": "8.59.1",
+ "node_modules/asap": {
+ "version": "2.0.6",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/assertion-error": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
+ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
"dev": true,
"license": "MIT",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/astro": {
+ "version": "5.18.2",
+ "resolved": "https://registry.npmjs.org/astro/-/astro-5.18.2.tgz",
+ "integrity": "sha512-TnFwLnAXty5MXKPDGuKXqK4AMBXG+FH6RUdK7Oyc3gyfNoFIthT+4eRbzOK43bdRlLaZuxgciDSjgtggZ3OtGQ==",
+ "license": "MIT",
"dependencies": {
- "@typescript-eslint/project-service": "8.59.1",
- "@typescript-eslint/tsconfig-utils": "8.59.1",
- "@typescript-eslint/types": "8.59.1",
- "@typescript-eslint/visitor-keys": "8.59.1",
+ "@astrojs/compiler": "^2.13.0",
+ "@astrojs/internal-helpers": "0.7.6",
+ "@astrojs/markdown-remark": "6.3.11",
+ "@astrojs/telemetry": "3.3.0",
+ "@capsizecss/unpack": "^4.0.0",
+ "@oslojs/encoding": "^1.1.0",
+ "@rollup/pluginutils": "^5.3.0",
+ "acorn": "^8.15.0",
+ "aria-query": "^5.3.2",
+ "axobject-query": "^4.1.0",
+ "boxen": "8.0.1",
+ "ci-info": "^4.3.1",
+ "clsx": "^2.1.1",
+ "common-ancestor-path": "^1.0.1",
+ "cookie": "^1.1.1",
+ "cssesc": "^3.0.0",
"debug": "^4.4.3",
- "minimatch": "^10.2.2",
+ "deterministic-object-hash": "^2.0.2",
+ "devalue": "^5.6.2",
+ "diff": "^8.0.3",
+ "dlv": "^1.1.3",
+ "dset": "^3.1.4",
+ "es-module-lexer": "^1.7.0",
+ "esbuild": "^0.27.3",
+ "estree-walker": "^3.0.3",
+ "flattie": "^1.1.1",
+ "fontace": "~0.4.0",
+ "github-slugger": "^2.0.0",
+ "html-escaper": "3.0.3",
+ "http-cache-semantics": "^4.2.0",
+ "import-meta-resolve": "^4.2.0",
+ "js-yaml": "^4.1.1",
+ "magic-string": "^0.30.21",
+ "magicast": "^0.5.1",
+ "mrmime": "^2.0.1",
+ "neotraverse": "^0.6.18",
+ "p-limit": "^6.2.0",
+ "p-queue": "^8.1.1",
+ "package-manager-detector": "^1.6.0",
+ "piccolore": "^0.1.3",
+ "picomatch": "^4.0.3",
+ "prompts": "^2.4.2",
+ "rehype": "^13.0.2",
"semver": "^7.7.3",
+ "shiki": "^3.21.0",
+ "smol-toml": "^1.6.0",
+ "svgo": "^4.0.0",
+ "tinyexec": "^1.0.2",
"tinyglobby": "^0.2.15",
- "ts-api-utils": "^2.5.0"
+ "tsconfck": "^3.1.6",
+ "ultrahtml": "^1.6.0",
+ "unifont": "~0.7.3",
+ "unist-util-visit": "^5.0.0",
+ "unstorage": "^1.17.4",
+ "vfile": "^6.0.3",
+ "vite": "^6.4.1",
+ "vitefu": "^1.1.1",
+ "xxhash-wasm": "^1.1.0",
+ "yargs-parser": "^21.1.1",
+ "yocto-spinner": "^0.2.3",
+ "zod": "^3.25.76",
+ "zod-to-json-schema": "^3.25.1",
+ "zod-to-ts": "^1.2.0"
+ },
+ "bin": {
+ "astro": "astro.js"
},
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ "node": "18.20.8 || ^20.3.0 || >=22.0.0",
+ "npm": ">=9.6.5",
+ "pnpm": ">=7.1.0"
},
"funding": {
"type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
+ "url": "https://opencollective.com/astrodotbuild"
},
- "peerDependencies": {
- "typescript": ">=4.8.4 <6.1.0"
+ "optionalDependencies": {
+ "sharp": "^0.34.0"
}
},
- "node_modules/@typescript-eslint/utils": {
- "version": "8.59.1",
- "dev": true,
+ "node_modules/astro/node_modules/@esbuild/aix-ppc64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz",
+ "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==",
+ "cpu": [
+ "ppc64"
+ ],
"license": "MIT",
- "dependencies": {
- "@eslint-community/eslint-utils": "^4.9.1",
- "@typescript-eslint/scope-manager": "8.59.1",
- "@typescript-eslint/types": "8.59.1",
- "@typescript-eslint/typescript-estree": "8.59.1"
- },
+ "optional": true,
+ "os": [
+ "aix"
+ ],
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
- "typescript": ">=4.8.4 <6.1.0"
+ "node": ">=18"
}
},
- "node_modules/@typescript-eslint/visitor-keys": {
- "version": "8.59.1",
- "dev": true,
+ "node_modules/astro/node_modules/@esbuild/android-arm": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz",
+ "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==",
+ "cpu": [
+ "arm"
+ ],
"license": "MIT",
- "dependencies": {
- "@typescript-eslint/types": "8.59.1",
- "eslint-visitor-keys": "^5.0.0"
- },
+ "optional": true,
+ "os": [
+ "android"
+ ],
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
+ "node": ">=18"
}
},
- "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": {
- "version": "5.0.1",
- "dev": true,
- "license": "Apache-2.0",
+ "node_modules/astro/node_modules/@esbuild/android-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz",
+ "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
"engines": {
- "node": "^20.19.0 || ^22.13.0 || >=24"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
+ "node": ">=18"
}
},
- "node_modules/@ungap/structured-clone": {
- "version": "1.3.0",
- "license": "ISC"
- },
- "node_modules/@unrs/resolver-binding-win32-x64-msvc": {
- "version": "1.11.1",
+ "node_modules/astro/node_modules/@esbuild/android-x64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz",
+ "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==",
"cpu": [
"x64"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
- "win32"
- ]
- },
- "node_modules/@urbackend/cli": {
- "resolved": "sdks/urbackend-cli",
- "link": true
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
},
- "node_modules/@urbackend/common": {
- "resolved": "packages/common",
- "link": true
+ "node_modules/astro/node_modules/@esbuild/darwin-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz",
+ "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
},
- "node_modules/@urbackend/react": {
- "resolved": "sdks/urbackend-react",
- "link": true
+ "node_modules/astro/node_modules/@esbuild/darwin-x64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz",
+ "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
},
- "node_modules/@urbackend/sdk": {
- "resolved": "sdks/urbackend-sdk",
- "link": true
+ "node_modules/astro/node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz",
+ "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
},
- "node_modules/@vitejs/plugin-react": {
- "version": "5.2.0",
- "dev": true,
+ "node_modules/astro/node_modules/@esbuild/freebsd-x64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz",
+ "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==",
+ "cpu": [
+ "x64"
+ ],
"license": "MIT",
- "dependencies": {
- "@babel/core": "^7.29.0",
- "@babel/plugin-transform-react-jsx-self": "^7.27.1",
- "@babel/plugin-transform-react-jsx-source": "^7.27.1",
- "@rolldown/pluginutils": "1.0.0-rc.3",
- "@types/babel__core": "^7.20.5",
- "react-refresh": "^0.18.0"
- },
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
"engines": {
- "node": "^20.19.0 || >=22.12.0"
- },
- "peerDependencies": {
- "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0"
+ "node": ">=18"
}
},
- "node_modules/@vitest/expect": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.6.1.tgz",
- "integrity": "sha512-jXL+9+ZNIJKruofqXuuTClf44eSpcHlgj3CiuNihUF3Ioujtmc0zIa3UJOW5RjDK1YLBJZnWBlPuqhYycLioog==",
- "dev": true,
+ "node_modules/astro/node_modules/@esbuild/linux-arm": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz",
+ "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==",
+ "cpu": [
+ "arm"
+ ],
"license": "MIT",
- "dependencies": {
- "@vitest/spy": "1.6.1",
- "@vitest/utils": "1.6.1",
- "chai": "^4.3.10"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
}
},
- "node_modules/@vitest/runner": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.6.1.tgz",
- "integrity": "sha512-3nSnYXkVkf3mXFfE7vVyPmi3Sazhb/2cfZGGs0JRzFsPFvAMBEcrweV1V1GsrstdXeKCTXlJbvnQwGWgEIHmOA==",
- "dev": true,
+ "node_modules/astro/node_modules/@esbuild/linux-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz",
+ "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==",
+ "cpu": [
+ "arm64"
+ ],
"license": "MIT",
- "dependencies": {
- "@vitest/utils": "1.6.1",
- "p-limit": "^5.0.0",
- "pathe": "^1.1.1"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
}
},
- "node_modules/@vitest/runner/node_modules/p-limit": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz",
- "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==",
- "dev": true,
+ "node_modules/astro/node_modules/@esbuild/linux-ia32": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz",
+ "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==",
+ "cpu": [
+ "ia32"
+ ],
"license": "MIT",
- "dependencies": {
- "yocto-queue": "^1.0.0"
- },
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
"node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@vitest/runner/node_modules/pathe": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz",
- "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@vitest/runner/node_modules/yocto-queue": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.2.tgz",
- "integrity": "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==",
- "dev": true,
+ "node_modules/astro/node_modules/@esbuild/linux-loong64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz",
+ "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==",
+ "cpu": [
+ "loong64"
+ ],
"license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=12.20"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=18"
}
},
- "node_modules/@vitest/snapshot": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.6.1.tgz",
- "integrity": "sha512-WvidQuWAzU2p95u8GAKlRMqMyN1yOJkGHnx3M1PL9Raf7AQ1kwLKg04ADlCa3+OXUZE7BceOhVZiuWAbzCKcUQ==",
- "dev": true,
+ "node_modules/astro/node_modules/@esbuild/linux-mips64el": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz",
+ "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==",
+ "cpu": [
+ "mips64el"
+ ],
"license": "MIT",
- "dependencies": {
- "magic-string": "^0.30.5",
- "pathe": "^1.1.1",
- "pretty-format": "^29.7.0"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
}
},
- "node_modules/@vitest/snapshot/node_modules/@jest/schemas": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
- "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
- "dev": true,
+ "node_modules/astro/node_modules/@esbuild/linux-ppc64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz",
+ "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==",
+ "cpu": [
+ "ppc64"
+ ],
"license": "MIT",
- "dependencies": {
- "@sinclair/typebox": "^0.27.8"
- },
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": ">=18"
}
},
- "node_modules/@vitest/snapshot/node_modules/@sinclair/typebox": {
- "version": "0.27.10",
- "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.10.tgz",
- "integrity": "sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@vitest/snapshot/node_modules/ansi-styles": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
- "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
- "dev": true,
+ "node_modules/astro/node_modules/@esbuild/linux-riscv64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz",
+ "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==",
+ "cpu": [
+ "riscv64"
+ ],
"license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "node": ">=18"
}
},
- "node_modules/@vitest/snapshot/node_modules/pathe": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz",
- "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@vitest/snapshot/node_modules/pretty-format": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
- "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
- "dev": true,
+ "node_modules/astro/node_modules/@esbuild/linux-s390x": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz",
+ "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==",
+ "cpu": [
+ "s390x"
+ ],
"license": "MIT",
- "dependencies": {
- "@jest/schemas": "^29.6.3",
- "ansi-styles": "^5.0.0",
- "react-is": "^18.0.0"
- },
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": ">=18"
}
},
- "node_modules/@vitest/spy": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.6.1.tgz",
- "integrity": "sha512-MGcMmpGkZebsMZhbQKkAf9CX5zGvjkBTqf8Zx3ApYWXr3wG+QvEu2eXWfnIIWYSJExIp4V9FCKDEeygzkYrXMw==",
- "dev": true,
+ "node_modules/astro/node_modules/@esbuild/linux-x64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz",
+ "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==",
+ "cpu": [
+ "x64"
+ ],
"license": "MIT",
- "dependencies": {
- "tinyspy": "^2.2.0"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
}
},
- "node_modules/@vitest/utils": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.6.1.tgz",
- "integrity": "sha512-jOrrUvXM4Av9ZWiG1EajNto0u96kWAhJ1LmPmJhXXQx/32MecEKd10pOLYgS2BQx1TgkGhloPU1ArDW2vvaY6g==",
- "dev": true,
+ "node_modules/astro/node_modules/@esbuild/netbsd-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz",
+ "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==",
+ "cpu": [
+ "arm64"
+ ],
"license": "MIT",
- "dependencies": {
- "diff-sequences": "^29.6.3",
- "estree-walker": "^3.0.3",
- "loupe": "^2.3.7",
- "pretty-format": "^29.7.0"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
}
},
- "node_modules/@vitest/utils/node_modules/@jest/schemas": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
- "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
- "dev": true,
+ "node_modules/astro/node_modules/@esbuild/netbsd-x64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz",
+ "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==",
+ "cpu": [
+ "x64"
+ ],
"license": "MIT",
- "dependencies": {
- "@sinclair/typebox": "^0.27.8"
- },
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": ">=18"
}
},
- "node_modules/@vitest/utils/node_modules/@sinclair/typebox": {
- "version": "0.27.10",
- "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.10.tgz",
- "integrity": "sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@vitest/utils/node_modules/ansi-styles": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
- "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
- "dev": true,
+ "node_modules/astro/node_modules/@esbuild/openbsd-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz",
+ "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==",
+ "cpu": [
+ "arm64"
+ ],
"license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "node": ">=18"
}
},
- "node_modules/@vitest/utils/node_modules/pretty-format": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
- "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
- "dev": true,
+ "node_modules/astro/node_modules/@esbuild/openbsd-x64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz",
+ "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==",
+ "cpu": [
+ "x64"
+ ],
"license": "MIT",
- "dependencies": {
- "@jest/schemas": "^29.6.3",
- "ansi-styles": "^5.0.0",
- "react-is": "^18.0.0"
- },
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": ">=18"
}
},
- "node_modules/accepts": {
- "version": "2.0.0",
+ "node_modules/astro/node_modules/@esbuild/openharmony-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz",
+ "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==",
+ "cpu": [
+ "arm64"
+ ],
"license": "MIT",
- "dependencies": {
- "mime-types": "^3.0.0",
- "negotiator": "^1.0.0"
- },
+ "optional": true,
+ "os": [
+ "openharmony"
+ ],
"engines": {
- "node": ">= 0.6"
+ "node": ">=18"
}
},
- "node_modules/acorn": {
- "version": "8.16.0",
- "dev": true,
+ "node_modules/astro/node_modules/@esbuild/sunos-x64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz",
+ "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==",
+ "cpu": [
+ "x64"
+ ],
"license": "MIT",
- "bin": {
- "acorn": "bin/acorn"
- },
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
"engines": {
- "node": ">=0.4.0"
+ "node": ">=18"
}
},
- "node_modules/acorn-jsx": {
- "version": "5.3.2",
- "dev": true,
+ "node_modules/astro/node_modules/@esbuild/win32-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz",
+ "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==",
+ "cpu": [
+ "arm64"
+ ],
"license": "MIT",
- "peerDependencies": {
- "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
}
},
- "node_modules/acorn-walk": {
- "version": "8.3.5",
- "dev": true,
+ "node_modules/astro/node_modules/@esbuild/win32-ia32": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz",
+ "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==",
+ "cpu": [
+ "ia32"
+ ],
"license": "MIT",
- "dependencies": {
- "acorn": "^8.11.0"
- },
+ "optional": true,
+ "os": [
+ "win32"
+ ],
"engines": {
- "node": ">=0.4.0"
+ "node": ">=18"
}
},
- "node_modules/agent-base": {
- "version": "7.1.4",
- "dev": true,
+ "node_modules/astro/node_modules/@esbuild/win32-x64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz",
+ "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==",
+ "cpu": [
+ "x64"
+ ],
"license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
"engines": {
- "node": ">= 14"
+ "node": ">=18"
}
},
- "node_modules/ajv": {
- "version": "6.15.0",
- "dev": true,
+ "node_modules/astro/node_modules/cookie": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz",
+ "integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==",
"license": "MIT",
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
+ "engines": {
+ "node": ">=18"
},
"funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
}
},
- "node_modules/ansi-escapes": {
- "version": "4.3.2",
- "dev": true,
+ "node_modules/astro/node_modules/html-escaper": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-3.0.3.tgz",
+ "integrity": "sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==",
+ "license": "MIT"
+ },
+ "node_modules/astro/node_modules/p-limit": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-6.2.0.tgz",
+ "integrity": "sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA==",
"license": "MIT",
"dependencies": {
- "type-fest": "^0.21.3"
+ "yocto-queue": "^1.1.1"
},
"engines": {
- "node": ">=8"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/ansi-regex": {
- "version": "5.0.1",
- "dev": true,
+ "node_modules/astro/node_modules/tinyexec": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.2.4.tgz",
+ "integrity": "sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==",
"license": "MIT",
"engines": {
- "node": ">=8"
+ "node": ">=18"
}
},
- "node_modules/ansi-styles": {
- "version": "4.3.0",
- "dev": true,
+ "node_modules/astro/node_modules/vite": {
+ "version": "6.4.3",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.3.tgz",
+ "integrity": "sha512-NTKlcQjlAK7MlQoyb6LgaqHc8sso/pVyUJYWMws3jg21uTJw/LddqIFPcPqP6PzpgbIcZyKI85sFE4HBrQDA8A==",
"license": "MIT",
"dependencies": {
- "color-convert": "^2.0.1"
+ "esbuild": "^0.25.0",
+ "fdir": "^6.4.4",
+ "picomatch": "^4.0.2",
+ "postcss": "^8.5.3",
+ "rollup": "^4.34.9",
+ "tinyglobby": "^0.2.13"
+ },
+ "bin": {
+ "vite": "bin/vite.js"
},
"engines": {
- "node": ">=8"
+ "node": "^18.0.0 || ^20.0.0 || >=22.0.0"
},
"funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/any-promise": {
- "version": "1.3.0",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/anymatch": {
- "version": "3.1.3",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
+ "url": "https://github.com/vitejs/vite?sponsor=1"
},
- "engines": {
- "node": ">= 8"
+ "optionalDependencies": {
+ "fsevents": "~2.3.3"
+ },
+ "peerDependencies": {
+ "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0",
+ "jiti": ">=1.21.0",
+ "less": "*",
+ "lightningcss": "^1.21.0",
+ "sass": "*",
+ "sass-embedded": "*",
+ "stylus": "*",
+ "sugarss": "*",
+ "terser": "^5.16.0",
+ "tsx": "^4.8.1",
+ "yaml": "^2.4.2"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "jiti": {
+ "optional": true
+ },
+ "less": {
+ "optional": true
+ },
+ "lightningcss": {
+ "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/anymatch/node_modules/picomatch": {
- "version": "2.3.2",
- "dev": true,
+ "node_modules/astro/node_modules/vite/node_modules/esbuild": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz",
+ "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==",
+ "hasInstallScript": true,
"license": "MIT",
- "engines": {
- "node": ">=8.6"
+ "bin": {
+ "esbuild": "bin/esbuild"
},
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/append-field": {
- "version": "1.0.0",
- "license": "MIT"
- },
- "node_modules/argparse": {
- "version": "2.0.1",
- "dev": true,
- "license": "Python-2.0"
- },
- "node_modules/aria-query": {
- "version": "5.3.2",
- "dev": true,
- "license": "Apache-2.0",
"engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/array-buffer-byte-length": {
- "version": "1.0.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.3",
- "is-array-buffer": "^3.0.5"
+ "node": ">=18"
},
+ "optionalDependencies": {
+ "@esbuild/aix-ppc64": "0.25.12",
+ "@esbuild/android-arm": "0.25.12",
+ "@esbuild/android-arm64": "0.25.12",
+ "@esbuild/android-x64": "0.25.12",
+ "@esbuild/darwin-arm64": "0.25.12",
+ "@esbuild/darwin-x64": "0.25.12",
+ "@esbuild/freebsd-arm64": "0.25.12",
+ "@esbuild/freebsd-x64": "0.25.12",
+ "@esbuild/linux-arm": "0.25.12",
+ "@esbuild/linux-arm64": "0.25.12",
+ "@esbuild/linux-ia32": "0.25.12",
+ "@esbuild/linux-loong64": "0.25.12",
+ "@esbuild/linux-mips64el": "0.25.12",
+ "@esbuild/linux-ppc64": "0.25.12",
+ "@esbuild/linux-riscv64": "0.25.12",
+ "@esbuild/linux-s390x": "0.25.12",
+ "@esbuild/linux-x64": "0.25.12",
+ "@esbuild/netbsd-arm64": "0.25.12",
+ "@esbuild/netbsd-x64": "0.25.12",
+ "@esbuild/openbsd-arm64": "0.25.12",
+ "@esbuild/openbsd-x64": "0.25.12",
+ "@esbuild/openharmony-arm64": "0.25.12",
+ "@esbuild/sunos-x64": "0.25.12",
+ "@esbuild/win32-arm64": "0.25.12",
+ "@esbuild/win32-ia32": "0.25.12",
+ "@esbuild/win32-x64": "0.25.12"
+ }
+ },
+ "node_modules/astro/node_modules/yocto-queue": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.2.tgz",
+ "integrity": "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==",
+ "license": "MIT",
"engines": {
- "node": ">= 0.4"
+ "node": ">=12.20"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/asap": {
- "version": "2.0.6",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/assertion-error": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
- "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
- "dev": true,
+ "node_modules/astro/node_modules/zod": {
+ "version": "3.25.76",
+ "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz",
+ "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==",
"license": "MIT",
- "engines": {
- "node": "*"
+ "funding": {
+ "url": "https://github.com/sponsors/colinhacks"
+ }
+ },
+ "node_modules/astro/node_modules/zod-to-ts": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/zod-to-ts/-/zod-to-ts-1.2.0.tgz",
+ "integrity": "sha512-x30XE43V+InwGpvTySRNz9kB7qFU8DlyEy7BsSTCHPH1R0QasMmHWZDCzYm6bVXtj/9NNJAZF3jW8rzFvH5OFA==",
+ "peerDependencies": {
+ "typescript": "^4.9.4 || ^5.0.2",
+ "zod": "^3"
}
},
"node_modules/asynckit": {
@@ -6199,6 +8213,15 @@
"proxy-from-env": "^2.1.0"
}
},
+ "node_modules/axobject-query": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz",
+ "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/babel-jest": {
"version": "30.3.0",
"dev": true,
@@ -6304,6 +8327,12 @@
"node": "18 || 20 || >=22"
}
},
+ "node_modules/base-64": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/base-64/-/base-64-1.0.0.tgz",
+ "integrity": "sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==",
+ "license": "MIT"
+ },
"node_modules/base64-js": {
"version": "1.5.1",
"funding": [
@@ -6324,7 +8353,6 @@
},
"node_modules/baseline-browser-mapping": {
"version": "2.10.25",
- "dev": true,
"license": "Apache-2.0",
"bin": {
"baseline-browser-mapping": "dist/cli.cjs"
@@ -6395,10 +8423,153 @@
"node": ">=0.6"
}
},
+ "node_modules/boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
+ "license": "ISC"
+ },
"node_modules/bowser": {
"version": "2.14.1",
"license": "MIT"
},
+ "node_modules/boxen": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/boxen/-/boxen-8.0.1.tgz",
+ "integrity": "sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-align": "^3.0.1",
+ "camelcase": "^8.0.0",
+ "chalk": "^5.3.0",
+ "cli-boxes": "^3.0.0",
+ "string-width": "^7.2.0",
+ "type-fest": "^4.21.0",
+ "widest-line": "^5.0.0",
+ "wrap-ansi": "^9.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/boxen/node_modules/ansi-regex": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz",
+ "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "node_modules/boxen/node_modules/ansi-styles": {
+ "version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz",
+ "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/boxen/node_modules/camelcase": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-8.0.0.tgz",
+ "integrity": "sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/boxen/node_modules/chalk": {
+ "version": "5.6.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz",
+ "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==",
+ "license": "MIT",
+ "engines": {
+ "node": "^12.17.0 || ^14.13 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/boxen/node_modules/emoji-regex": {
+ "version": "10.6.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz",
+ "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==",
+ "license": "MIT"
+ },
+ "node_modules/boxen/node_modules/string-width": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz",
+ "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==",
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^10.3.0",
+ "get-east-asian-width": "^1.0.0",
+ "strip-ansi": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/boxen/node_modules/strip-ansi": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz",
+ "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^6.2.2"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "node_modules/boxen/node_modules/type-fest": {
+ "version": "4.41.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz",
+ "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==",
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/boxen/node_modules/wrap-ansi": {
+ "version": "9.0.2",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz",
+ "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^6.2.1",
+ "string-width": "^7.0.0",
+ "strip-ansi": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
"node_modules/brace-expansion": {
"version": "5.0.5",
"dev": true,
@@ -6412,7 +8583,6 @@
},
"node_modules/browserslist": {
"version": "4.28.2",
- "dev": true,
"funding": [
{
"type": "opencollective",
@@ -6586,7 +8756,6 @@
},
"node_modules/caniuse-lite": {
"version": "1.0.30001791",
- "dev": true,
"funding": [
{
"type": "opencollective",
@@ -6735,7 +8904,6 @@
},
"node_modules/ci-info": {
"version": "4.4.0",
- "dev": true,
"funding": [
{
"type": "github",
@@ -6752,6 +8920,18 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/cli-boxes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz",
+ "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/cli-cursor": {
"version": "5.0.0",
"dev": true,
@@ -6904,6 +9084,12 @@
"node": ">= 6"
}
},
+ "node_modules/common-ancestor-path": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz",
+ "integrity": "sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==",
+ "license": "ISC"
+ },
"node_modules/component-emitter": {
"version": "1.3.1",
"dev": true,
@@ -6990,7 +9176,6 @@
},
"node_modules/convert-source-map": {
"version": "2.0.0",
- "dev": true,
"license": "MIT"
},
"node_modules/cookie": {
@@ -7000,6 +9185,12 @@
"node": ">= 0.6"
}
},
+ "node_modules/cookie-es": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-1.2.3.tgz",
+ "integrity": "sha512-lXVyvUvrNXblMqzIRrxHb57UUVmqsSWlxqt3XIjCkUP0wDAf6uicO6KMbEgYrMNtEvWgWHwe42CKxPu9MYAnWw==",
+ "license": "MIT"
+ },
"node_modules/cookie-parser": {
"version": "1.4.7",
"license": "MIT",
@@ -7058,6 +9249,15 @@
"node": ">= 8"
}
},
+ "node_modules/crossws": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/crossws/-/crossws-0.3.5.tgz",
+ "integrity": "sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==",
+ "license": "MIT",
+ "dependencies": {
+ "uncrypto": "^0.1.3"
+ }
+ },
"node_modules/csrf": {
"version": "3.1.0",
"license": "MIT",
@@ -7070,11 +9270,97 @@
"node": ">= 0.8"
}
},
+ "node_modules/css-select": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz",
+ "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "boolbase": "^1.0.0",
+ "css-what": "^6.1.0",
+ "domhandler": "^5.0.2",
+ "domutils": "^3.0.1",
+ "nth-check": "^2.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
+ "node_modules/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==",
+ "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/css-what": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz",
+ "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">= 6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
"node_modules/css.escape": {
"version": "1.5.1",
"dev": true,
"license": "MIT"
},
+ "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==",
+ "license": "MIT",
+ "bin": {
+ "cssesc": "bin/cssesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/csso": {
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz",
+ "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==",
+ "license": "MIT",
+ "dependencies": {
+ "css-tree": "~2.2.0"
+ },
+ "engines": {
+ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0",
+ "npm": ">=7.0.0"
+ }
+ },
+ "node_modules/csso/node_modules/css-tree": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz",
+ "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==",
+ "license": "MIT",
+ "dependencies": {
+ "mdn-data": "2.0.28",
+ "source-map-js": "^1.0.1"
+ },
+ "engines": {
+ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0",
+ "npm": ">=7.0.0"
+ }
+ },
+ "node_modules/csso/node_modules/mdn-data": {
+ "version": "2.0.28",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz",
+ "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==",
+ "license": "CC0-1.0"
+ },
"node_modules/cssstyle": {
"version": "4.6.0",
"dev": true,
@@ -7368,6 +9654,12 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/defu": {
+ "version": "6.1.7",
+ "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.7.tgz",
+ "integrity": "sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==",
+ "license": "MIT"
+ },
"node_modules/delayed-stream": {
"version": "1.0.0",
"license": "MIT",
@@ -7396,6 +9688,12 @@
"node": ">=6"
}
},
+ "node_modules/destr": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.5.tgz",
+ "integrity": "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==",
+ "license": "MIT"
+ },
"node_modules/detect-libc": {
"version": "2.1.2",
"license": "Apache-2.0",
@@ -7411,6 +9709,24 @@
"node": ">=8"
}
},
+ "node_modules/deterministic-object-hash": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/deterministic-object-hash/-/deterministic-object-hash-2.0.2.tgz",
+ "integrity": "sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==",
+ "license": "MIT",
+ "dependencies": {
+ "base-64": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/devalue": {
+ "version": "5.8.2",
+ "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.8.2.tgz",
+ "integrity": "sha512-DObPPAfdtFbXjxLqK8s2Xk9ZuWz5+ZoFEhC7J76es4GU/rEiXwHTmbImoCdyoCOcBH1UF3+Cz6Z2sYD4hyl5TA==",
+ "license": "MIT"
+ },
"node_modules/devlop": {
"version": "1.1.0",
"license": "MIT",
@@ -7431,6 +9747,15 @@
"wrappy": "1"
}
},
+ "node_modules/diff": {
+ "version": "8.0.4",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.4.tgz",
+ "integrity": "sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.3.1"
+ }
+ },
"node_modules/diff-sequences": {
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz",
@@ -7441,6 +9766,12 @@
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
+ "node_modules/dlv": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
+ "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
+ "license": "MIT"
+ },
"node_modules/dom-accessibility-api": {
"version": "0.6.3",
"dev": true,
@@ -7456,6 +9787,73 @@
"csstype": "^3.0.2"
}
},
+ "node_modules/dom-serializer": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
+ "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
+ "license": "MIT",
+ "dependencies": {
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.2",
+ "entities": "^4.2.0"
+ },
+ "funding": {
+ "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
+ }
+ },
+ "node_modules/dom-serializer/node_modules/entities": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/domelementtype": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ],
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/domhandler": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
+ "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "domelementtype": "^2.3.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domhandler?sponsor=1"
+ }
+ },
+ "node_modules/domutils": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz",
+ "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "dom-serializer": "^2.0.0",
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domutils?sponsor=1"
+ }
+ },
"node_modules/dotenv": {
"version": "17.4.2",
"license": "BSD-2-Clause",
@@ -7466,6 +9864,15 @@
"url": "https://dotenvx.com"
}
},
+ "node_modules/dset": {
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.4.tgz",
+ "integrity": "sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/dunder-proto": {
"version": "1.0.1",
"license": "MIT",
@@ -7506,7 +9913,6 @@
},
"node_modules/electron-to-chromium": {
"version": "1.5.349",
- "dev": true,
"license": "ISC"
},
"node_modules/emittery": {
@@ -7522,7 +9928,6 @@
},
"node_modules/emoji-regex": {
"version": "8.0.0",
- "dev": true,
"license": "MIT"
},
"node_modules/encodeurl": {
@@ -7545,7 +9950,6 @@
},
"node_modules/entities": {
"version": "6.0.1",
- "dev": true,
"license": "BSD-2-Clause",
"engines": {
"node": ">=0.12"
@@ -7606,6 +10010,12 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/es-module-lexer": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz",
+ "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==",
+ "license": "MIT"
+ },
"node_modules/es-object-atoms": {
"version": "1.1.1",
"license": "MIT",
@@ -7637,7 +10047,6 @@
},
"node_modules/esbuild": {
"version": "0.27.7",
- "devOptional": true,
"hasInstallScript": true,
"license": "MIT",
"bin": {
@@ -8029,7 +10438,6 @@
},
"node_modules/escalade": {
"version": "3.2.0",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=6"
@@ -8285,7 +10693,6 @@
"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"
@@ -8308,7 +10715,6 @@
},
"node_modules/eventemitter3": {
"version": "5.0.4",
- "dev": true,
"license": "MIT"
},
"node_modules/events": {
@@ -8635,6 +11041,15 @@
"dev": true,
"license": "ISC"
},
+ "node_modules/flattie": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/flattie/-/flattie-1.1.1.tgz",
+ "integrity": "sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/follow-redirects": {
"version": "1.16.0",
"funding": [
@@ -8653,6 +11068,27 @@
}
}
},
+ "node_modules/fontace": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/fontace/-/fontace-0.4.1.tgz",
+ "integrity": "sha512-lDMvbAzSnHmbYMTEld5qdtvNH2/pWpICOqpean9IgC7vUbUJc3k+k5Dokp85CegamqQpFbXf0rAVkbzpyTA8aw==",
+ "license": "MIT",
+ "dependencies": {
+ "fontkitten": "^1.0.2"
+ }
+ },
+ "node_modules/fontkitten": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/fontkitten/-/fontkitten-1.0.3.tgz",
+ "integrity": "sha512-Wp1zXWPVUPBmfoa3Cqc9ctaKuzKAV6uLstRqlR56kSjplf5uAce+qeyYym7F+PHbGTk+tCEdkCW6RD7DX/gBZw==",
+ "license": "MIT",
+ "dependencies": {
+ "tiny-inflate": "^1.0.3"
+ },
+ "engines": {
+ "node": ">=20"
+ }
+ },
"node_modules/for-each": {
"version": "0.3.5",
"dev": true,
@@ -8804,7 +11240,6 @@
},
"node_modules/gensync": {
"version": "1.0.0-beta.2",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=6.9.0"
@@ -8820,7 +11255,6 @@
},
"node_modules/get-east-asian-width": {
"version": "1.6.0",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=18"
@@ -8891,6 +11325,12 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/github-slugger": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz",
+ "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==",
+ "license": "ISC"
+ },
"node_modules/glob": {
"version": "10.5.0",
"dev": true,
@@ -8986,6 +11426,23 @@
"integrity": "sha512-dMW4CWBTUK1AEEDeZc1g4xpPGIrSf9fJF960qbTZmN/QwZIWY5wgliS6JWl9/25fpTGJrMRtSjGtOmPnfjZB+A==",
"license": "Standard 'no charge' license: https://gsap.com/standard-license."
},
+ "node_modules/h3": {
+ "version": "1.15.11",
+ "resolved": "https://registry.npmjs.org/h3/-/h3-1.15.11.tgz",
+ "integrity": "sha512-L3THSe2MPeBwgIZVSH5zLdBBU90TOxarvhK9d04IDY2AmVS8j2Jz2LIWtwsGOU3lu2I5jCN7FNvVfY2+XyF+mg==",
+ "license": "MIT",
+ "dependencies": {
+ "cookie-es": "^1.2.3",
+ "crossws": "^0.3.5",
+ "defu": "^6.1.6",
+ "destr": "^2.0.5",
+ "iron-webcrypto": "^1.2.1",
+ "node-mock-http": "^1.0.4",
+ "radix3": "^1.1.2",
+ "ufo": "^1.6.3",
+ "uncrypto": "^0.1.3"
+ }
+ },
"node_modules/has-bigints": {
"version": "1.1.0",
"dev": true,
@@ -9049,6 +11506,118 @@
"node": ">= 0.4"
}
},
+ "node_modules/hast-util-from-html": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/hast-util-from-html/-/hast-util-from-html-2.0.3.tgz",
+ "integrity": "sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "devlop": "^1.1.0",
+ "hast-util-from-parse5": "^8.0.0",
+ "parse5": "^7.0.0",
+ "vfile": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-from-parse5": {
+ "version": "8.0.3",
+ "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.3.tgz",
+ "integrity": "sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "@types/unist": "^3.0.0",
+ "devlop": "^1.0.0",
+ "hastscript": "^9.0.0",
+ "property-information": "^7.0.0",
+ "vfile": "^6.0.0",
+ "vfile-location": "^5.0.0",
+ "web-namespaces": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-is-element": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz",
+ "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-parse-selector": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz",
+ "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-raw": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.1.0.tgz",
+ "integrity": "sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "@types/unist": "^3.0.0",
+ "@ungap/structured-clone": "^1.0.0",
+ "hast-util-from-parse5": "^8.0.0",
+ "hast-util-to-parse5": "^8.0.0",
+ "html-void-elements": "^3.0.0",
+ "mdast-util-to-hast": "^13.0.0",
+ "parse5": "^7.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit": "^5.0.0",
+ "vfile": "^6.0.0",
+ "web-namespaces": "^2.0.0",
+ "zwitch": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "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-to-jsx-runtime": {
"version": "2.3.6",
"license": "MIT",
@@ -9074,6 +11643,41 @@
"url": "https://opencollective.com/unified"
}
},
+ "node_modules/hast-util-to-parse5": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.1.tgz",
+ "integrity": "sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "comma-separated-tokens": "^2.0.0",
+ "devlop": "^1.0.0",
+ "property-information": "^7.0.0",
+ "space-separated-tokens": "^2.0.0",
+ "web-namespaces": "^2.0.0",
+ "zwitch": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-to-text": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-4.0.2.tgz",
+ "integrity": "sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "@types/unist": "^3.0.0",
+ "hast-util-is-element": "^3.0.0",
+ "unist-util-find-after": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
"node_modules/hast-util-whitespace": {
"version": "3.0.0",
"license": "MIT",
@@ -9085,6 +11689,23 @@
"url": "https://opencollective.com/unified"
}
},
+ "node_modules/hastscript": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.1.tgz",
+ "integrity": "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "comma-separated-tokens": "^2.0.0",
+ "hast-util-parse-selector": "^4.0.0",
+ "property-information": "^7.0.0",
+ "space-separated-tokens": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
"node_modules/hermes-estree": {
"version": "0.25.1",
"dev": true,
@@ -9122,6 +11743,22 @@
"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/http-cache-semantics": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz",
+ "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==",
+ "license": "BSD-2-Clause"
+ },
"node_modules/http-errors": {
"version": "1.7.3",
"license": "MIT",
@@ -9280,6 +11917,16 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/import-meta-resolve": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.2.0.tgz",
+ "integrity": "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
"node_modules/imurmurhash": {
"version": "0.1.4",
"dev": true,
@@ -9369,6 +12016,15 @@
"node": ">= 0.10"
}
},
+ "node_modules/iron-webcrypto": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/iron-webcrypto/-/iron-webcrypto-1.2.1.tgz",
+ "integrity": "sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/brc-dd"
+ }
+ },
"node_modules/is-alphabetical": {
"version": "2.0.1",
"license": "MIT",
@@ -9488,6 +12144,21 @@
"url": "https://github.com/sponsors/wooorm"
}
},
+ "node_modules/is-docker": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz",
+ "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==",
+ "license": "MIT",
+ "bin": {
+ "is-docker": "cli.js"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/is-extglob": {
"version": "2.1.1",
"dev": true,
@@ -9498,7 +12169,6 @@
},
"node_modules/is-fullwidth-code-point": {
"version": "3.0.0",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=8"
@@ -9531,6 +12201,24 @@
"url": "https://github.com/sponsors/wooorm"
}
},
+ "node_modules/is-inside-container": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz",
+ "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==",
+ "license": "MIT",
+ "dependencies": {
+ "is-docker": "^3.0.0"
+ },
+ "bin": {
+ "is-inside-container": "cli.js"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/is-map": {
"version": "2.0.3",
"dev": true,
@@ -9686,6 +12374,21 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-wsl": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz",
+ "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==",
+ "license": "MIT",
+ "dependencies": {
+ "is-inside-container": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/isarray": {
"version": "2.0.5",
"dev": true,
@@ -10314,7 +13017,6 @@
},
"node_modules/js-yaml": {
"version": "4.1.1",
- "dev": true,
"license": "MIT",
"dependencies": {
"argparse": "^2.0.1"
@@ -10364,7 +13066,6 @@
},
"node_modules/jsesc": {
"version": "3.1.0",
- "dev": true,
"license": "MIT",
"bin": {
"jsesc": "bin/jsesc"
@@ -10395,7 +13096,6 @@
},
"node_modules/json5": {
"version": "2.2.3",
- "dev": true,
"license": "MIT",
"bin": {
"json5": "lib/cli.js"
@@ -10456,6 +13156,19 @@
"json-buffer": "3.0.1"
}
},
+ "node_modules/kleur": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
+ "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/landing": {
+ "resolved": "apps/landing",
+ "link": true
+ },
"node_modules/leven": {
"version": "3.1.0",
"dev": true,
@@ -10918,12 +13631,20 @@
},
"node_modules/lru-cache": {
"version": "5.1.1",
- "dev": true,
"license": "ISC",
"dependencies": {
"yallist": "^3.0.2"
}
},
+ "node_modules/lucide-react": {
+ "version": "0.470.0",
+ "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.470.0.tgz",
+ "integrity": "sha512-tqYODeoB3qU5gxH33IbL7IcF05EYYzsZQJqdM9HGGHwmoJMPvVLPHO6Plu6HNAfntucZQ41taEw6aUpwOtaoXg==",
+ "license": "ISC",
+ "peerDependencies": {
+ "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ }
+ },
"node_modules/luxon": {
"version": "3.7.2",
"license": "MIT",
@@ -10946,6 +13667,17 @@
"@jridgewell/sourcemap-codec": "^1.5.5"
}
},
+ "node_modules/magicast": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.5.3.tgz",
+ "integrity": "sha512-pVKE4UdSQ7DvHzivsCIFx2BJn1mHG6KsyrFcaxFx6tONdneEuThrDx0Cj3AMg58KyN4pzYT+LHOotxDQDjNvkw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.29.3",
+ "@babel/types": "^7.29.0",
+ "source-map-js": "^1.2.1"
+ }
+ },
"node_modules/make-dir": {
"version": "4.0.0",
"dev": true,
@@ -10993,6 +13725,21 @@
"node": ">= 0.4"
}
},
+ "node_modules/mdast-util-definitions": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-6.0.0.tgz",
+ "integrity": "sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "@types/unist": "^3.0.0",
+ "unist-util-visit": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
"node_modules/mdast-util-find-and-replace": {
"version": "3.0.2",
"license": "MIT",
@@ -11243,6 +13990,12 @@
"url": "https://opencollective.com/unified"
}
},
+ "node_modules/mdn-data": {
+ "version": "2.27.1",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz",
+ "integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==",
+ "license": "CC0-1.0"
+ },
"node_modules/media-typer": {
"version": "1.1.0",
"license": "MIT",
@@ -11997,6 +14750,15 @@
"node": ">=14.0.0"
}
},
+ "node_modules/mrmime": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz",
+ "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/ms": {
"version": "2.1.3",
"license": "MIT"
@@ -12132,10 +14894,38 @@
"node": ">= 0.6"
}
},
+ "node_modules/neotraverse": {
+ "version": "0.6.18",
+ "resolved": "https://registry.npmjs.org/neotraverse/-/neotraverse-0.6.18.tgz",
+ "integrity": "sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/nlcst-to-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-4.0.0.tgz",
+ "integrity": "sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/nlcst": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
"node_modules/node-abort-controller": {
"version": "3.1.1",
"license": "MIT"
},
+ "node_modules/node-fetch-native": {
+ "version": "1.6.7",
+ "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.7.tgz",
+ "integrity": "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==",
+ "license": "MIT"
+ },
"node_modules/node-gyp-build-optional-packages": {
"version": "5.2.2",
"license": "MIT",
@@ -12154,14 +14944,18 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/node-mock-http": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/node-mock-http/-/node-mock-http-1.0.4.tgz",
+ "integrity": "sha512-8DY+kFsDkNXy1sJglUfuODx1/opAGJGyrTuFqEoN90oRc2Vk0ZbD4K2qmKXBBEhZQzdKHIVfEJpDU8Ak2NJEvQ==",
+ "license": "MIT"
+ },
"node_modules/node-releases": {
"version": "2.0.38",
- "dev": true,
"license": "MIT"
},
"node_modules/normalize-path": {
"version": "3.0.0",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@@ -12178,6 +14972,18 @@
"node": ">=8"
}
},
+ "node_modules/nth-check": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
+ "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "boolbase": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/nth-check?sponsor=1"
+ }
+ },
"node_modules/nwsapi": {
"version": "2.2.23",
"dev": true,
@@ -12242,6 +15048,23 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/ofetch": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-1.5.1.tgz",
+ "integrity": "sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==",
+ "license": "MIT",
+ "dependencies": {
+ "destr": "^2.0.5",
+ "node-fetch-native": "^1.6.7",
+ "ufo": "^1.6.1"
+ }
+ },
+ "node_modules/ohash": {
+ "version": "2.0.11",
+ "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz",
+ "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==",
+ "license": "MIT"
+ },
"node_modules/on-finished": {
"version": "2.4.1",
"license": "MIT",
@@ -12273,6 +15096,23 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/oniguruma-parser": {
+ "version": "0.12.2",
+ "resolved": "https://registry.npmjs.org/oniguruma-parser/-/oniguruma-parser-0.12.2.tgz",
+ "integrity": "sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw==",
+ "license": "MIT"
+ },
+ "node_modules/oniguruma-to-es": {
+ "version": "4.3.6",
+ "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-4.3.6.tgz",
+ "integrity": "sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA==",
+ "license": "MIT",
+ "dependencies": {
+ "oniguruma-parser": "^0.12.2",
+ "regex": "^6.1.0",
+ "regex-recursion": "^6.0.2"
+ }
+ },
"node_modules/optionator": {
"version": "0.9.4",
"dev": true,
@@ -12317,6 +15157,34 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/p-queue": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-8.1.1.tgz",
+ "integrity": "sha512-aNZ+VfjobsWryoiPnEApGGmf5WmNsCo9xu8dfaYamG5qaLP7ClhLN6NgsFe6SwJ2UbLEBK5dv9x8Mn5+RVhMWQ==",
+ "license": "MIT",
+ "dependencies": {
+ "eventemitter3": "^5.0.1",
+ "p-timeout": "^6.1.2"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-timeout": {
+ "version": "6.1.4",
+ "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.4.tgz",
+ "integrity": "sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/p-try": {
"version": "2.2.0",
"dev": true,
@@ -12330,6 +15198,12 @@
"dev": true,
"license": "BlueOak-1.0.0"
},
+ "node_modules/package-manager-detector": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.8.0.tgz",
+ "integrity": "sha512-yQA4H19AmPEoMUeavPMDIe1higySl/gH/yaQrkT/s07Qp+7pp2hYz30N3z2l5BkjVkF9Ow6o0wjJamm2y7Sn0A==",
+ "license": "MIT"
+ },
"node_modules/parent-module": {
"version": "1.0.1",
"dev": true,
@@ -12379,9 +15253,26 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/parse-latin": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/parse-latin/-/parse-latin-7.0.0.tgz",
+ "integrity": "sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/nlcst": "^2.0.0",
+ "@types/unist": "^3.0.0",
+ "nlcst-to-string": "^4.0.0",
+ "unist-util-modify-children": "^4.0.0",
+ "unist-util-visit-children": "^3.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
"node_modules/parse5": {
"version": "7.3.0",
- "dev": true,
"license": "MIT",
"dependencies": {
"entities": "^6.0.0"
@@ -12487,6 +15378,12 @@
"node": "*"
}
},
+ "node_modules/piccolore": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/piccolore/-/piccolore-0.1.3.tgz",
+ "integrity": "sha512-o8bTeDWjE086iwKrROaDf31K0qC/BENdm15/uH9usSC/uZjJOKb2YGiVHfLY4GhwsERiPI1jmwI2XrA7ACOxVw==",
+ "license": "ISC"
+ },
"node_modules/picocolors": {
"version": "1.1.1",
"license": "ISC"
@@ -12712,6 +15609,15 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
+ "node_modules/prismjs": {
+ "version": "1.30.0",
+ "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz",
+ "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/process": {
"version": "0.11.10",
"license": "MIT",
@@ -12719,6 +15625,19 @@
"node": ">= 0.6.0"
}
},
+ "node_modules/prompts": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
+ "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
+ "license": "MIT",
+ "dependencies": {
+ "kleur": "^3.0.3",
+ "sisteransi": "^1.0.5"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
"node_modules/prop-types": {
"version": "15.8.1",
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
@@ -12816,6 +15735,12 @@
"version": "2.2.0",
"license": "MIT"
},
+ "node_modules/radix3": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/radix3/-/radix3-1.1.2.tgz",
+ "integrity": "sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==",
+ "license": "MIT"
+ },
"node_modules/random-bytes": {
"version": "1.0.0",
"license": "MIT",
@@ -13099,6 +16024,30 @@
"node": ">=4"
}
},
+ "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/regexp.prototype.flags": {
"version": "1.5.4",
"dev": true,
@@ -13118,6 +16067,67 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/rehype": {
+ "version": "13.0.2",
+ "resolved": "https://registry.npmjs.org/rehype/-/rehype-13.0.2.tgz",
+ "integrity": "sha512-j31mdaRFrwFRUIlxGeuPXXKWQxet52RBQRvCmzl5eCefn/KGbomK5GMHNMsOJf55fgo3qw5tST5neDuarDYR2A==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "rehype-parse": "^9.0.0",
+ "rehype-stringify": "^10.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/rehype-parse": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-9.0.1.tgz",
+ "integrity": "sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "hast-util-from-html": "^2.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/rehype-raw": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz",
+ "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "hast-util-raw": "^9.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/rehype-stringify": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/rehype-stringify/-/rehype-stringify-10.0.1.tgz",
+ "integrity": "sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "hast-util-to-html": "^9.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
"node_modules/remark-gfm": {
"version": "4.0.1",
"license": "MIT",
@@ -13163,6 +16173,21 @@
"url": "https://opencollective.com/unified"
}
},
+ "node_modules/remark-smartypants": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/remark-smartypants/-/remark-smartypants-3.0.2.tgz",
+ "integrity": "sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==",
+ "license": "MIT",
+ "dependencies": {
+ "retext": "^9.0.0",
+ "retext-smartypants": "^6.0.0",
+ "unified": "^11.0.4",
+ "unist-util-visit": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
"node_modules/remark-stringify": {
"version": "11.0.0",
"license": "MIT",
@@ -13263,6 +16288,67 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/retext": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/retext/-/retext-9.0.0.tgz",
+ "integrity": "sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/nlcst": "^2.0.0",
+ "retext-latin": "^4.0.0",
+ "retext-stringify": "^4.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/retext-latin": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/retext-latin/-/retext-latin-4.0.0.tgz",
+ "integrity": "sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/nlcst": "^2.0.0",
+ "parse-latin": "^7.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/retext-smartypants": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/retext-smartypants/-/retext-smartypants-6.2.0.tgz",
+ "integrity": "sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/nlcst": "^2.0.0",
+ "nlcst-to-string": "^4.0.0",
+ "unist-util-visit": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/retext-stringify": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/retext-stringify/-/retext-stringify-4.0.0.tgz",
+ "integrity": "sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/nlcst": "^2.0.0",
+ "nlcst-to-string": "^4.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
"node_modules/rfdc": {
"version": "1.4.1",
"dev": true,
@@ -13326,7 +16412,6 @@
"node_modules/rollup": {
"name": "@rollup/wasm-node",
"version": "4.60.2",
- "dev": true,
"license": "MIT",
"dependencies": {
"@types/estree": "1.0.8"
@@ -13407,6 +16492,15 @@
"version": "2.1.2",
"license": "MIT"
},
+ "node_modules/sax": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.0.tgz",
+ "integrity": "sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==",
+ "license": "BlueOak-1.0.0",
+ "engines": {
+ "node": ">=11.0.0"
+ }
+ },
"node_modules/saxes": {
"version": "6.0.0",
"dev": true,
@@ -13544,6 +16638,51 @@
"version": "1.1.1",
"license": "ISC"
},
+ "node_modules/sharp": {
+ "version": "0.34.5",
+ "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz",
+ "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==",
+ "hasInstallScript": true,
+ "license": "Apache-2.0",
+ "optional": true,
+ "dependencies": {
+ "@img/colour": "^1.0.0",
+ "detect-libc": "^2.1.2",
+ "semver": "^7.7.3"
+ },
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-darwin-arm64": "0.34.5",
+ "@img/sharp-darwin-x64": "0.34.5",
+ "@img/sharp-libvips-darwin-arm64": "1.2.4",
+ "@img/sharp-libvips-darwin-x64": "1.2.4",
+ "@img/sharp-libvips-linux-arm": "1.2.4",
+ "@img/sharp-libvips-linux-arm64": "1.2.4",
+ "@img/sharp-libvips-linux-ppc64": "1.2.4",
+ "@img/sharp-libvips-linux-riscv64": "1.2.4",
+ "@img/sharp-libvips-linux-s390x": "1.2.4",
+ "@img/sharp-libvips-linux-x64": "1.2.4",
+ "@img/sharp-libvips-linuxmusl-arm64": "1.2.4",
+ "@img/sharp-libvips-linuxmusl-x64": "1.2.4",
+ "@img/sharp-linux-arm": "0.34.5",
+ "@img/sharp-linux-arm64": "0.34.5",
+ "@img/sharp-linux-ppc64": "0.34.5",
+ "@img/sharp-linux-riscv64": "0.34.5",
+ "@img/sharp-linux-s390x": "0.34.5",
+ "@img/sharp-linux-x64": "0.34.5",
+ "@img/sharp-linuxmusl-arm64": "0.34.5",
+ "@img/sharp-linuxmusl-x64": "0.34.5",
+ "@img/sharp-wasm32": "0.34.5",
+ "@img/sharp-win32-arm64": "0.34.5",
+ "@img/sharp-win32-ia32": "0.34.5",
+ "@img/sharp-win32-x64": "0.34.5"
+ }
+ },
"node_modules/shebang-command": {
"version": "2.0.0",
"dev": true,
@@ -13574,6 +16713,22 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/shiki": {
+ "version": "3.23.0",
+ "resolved": "https://registry.npmjs.org/shiki/-/shiki-3.23.0.tgz",
+ "integrity": "sha512-55Dj73uq9ZXL5zyeRPzHQsK7Nbyt6Y10k5s7OjuFZGMhpp4r/rsLBH0o/0fstIzX1Lep9VxefWljK/SKCzygIA==",
+ "license": "MIT",
+ "dependencies": {
+ "@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.0.2",
+ "@types/hast": "^3.0.4"
+ }
+ },
"node_modules/side-channel": {
"version": "1.1.0",
"license": "MIT",
@@ -13658,6 +16813,46 @@
"url": "https://github.com/sponsors/isaacs"
}
},
+ "node_modules/sisteransi": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
+ "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
+ "license": "MIT"
+ },
+ "node_modules/sitemap": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-9.0.1.tgz",
+ "integrity": "sha512-S6hzjGJSG3d6if0YoF5kTyeRJvia6FSTBroE5fQ0bu1QNxyJqhhinfUsXi9fH3MgtXODWvwo2BDyQSnhPQ88uQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "^24.9.2",
+ "@types/sax": "^1.2.1",
+ "arg": "^5.0.0",
+ "sax": "^1.4.1"
+ },
+ "bin": {
+ "sitemap": "dist/esm/cli.js"
+ },
+ "engines": {
+ "node": ">=20.19.5",
+ "npm": ">=10.8.2"
+ }
+ },
+ "node_modules/sitemap/node_modules/@types/node": {
+ "version": "24.13.3",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-24.13.3.tgz",
+ "integrity": "sha512-Dh8vAsV36ig5wa9OX4pXvMc9D3Veibfw2wix0CUwYODLD8nkj9UsLjASr49nPg+2eKzxhBV+v7L8pXvT4e639Q==",
+ "license": "MIT",
+ "dependencies": {
+ "undici-types": "~7.18.0"
+ }
+ },
+ "node_modules/sitemap/node_modules/undici-types": {
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz",
+ "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==",
+ "license": "MIT"
+ },
"node_modules/slash": {
"version": "3.0.0",
"dev": true,
@@ -13706,6 +16901,18 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/smol-toml": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.7.0.tgz",
+ "integrity": "sha512-aqVvWoyO21L23mb+drl4RmMXbf6N7FdHjAhTRA9ZBL7apWBgfWC16KjrASI+1p9GAroljyMHj6fK67i0UiTNvQ==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">= 18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/cyyynthia"
+ }
+ },
"node_modules/source-map": {
"version": "0.6.1",
"dev": true,
@@ -13824,6 +17031,12 @@
"version": "2.0.4",
"license": "ISC"
},
+ "node_modules/stream-replace-string": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/stream-replace-string/-/stream-replace-string-2.0.0.tgz",
+ "integrity": "sha512-TlnjJ1C0QrmxRNrON00JvaFFlNh5TTG00APw23j74ET7gkQpTASi6/L2fuiav8pzK715HXtUeClpBTw2NPSn6w==",
+ "license": "MIT"
+ },
"node_modules/streamsearch": {
"version": "1.1.0",
"engines": {
@@ -13859,7 +17072,6 @@
},
"node_modules/string-width": {
"version": "4.2.3",
- "dev": true,
"license": "MIT",
"dependencies": {
"emoji-regex": "^8.0.0",
@@ -13898,7 +17110,6 @@
},
"node_modules/strip-ansi": {
"version": "6.0.1",
- "dev": true,
"license": "MIT",
"dependencies": {
"ansi-regex": "^5.0.1"
@@ -14074,6 +17285,40 @@
"url": "https://github.com/chalk/supports-color?sponsor=1"
}
},
+ "node_modules/svgo": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/svgo/-/svgo-4.0.2.tgz",
+ "integrity": "sha512-ekx94z1rRc5LDi6oSUaeRnYhd0UOJxdtQCL2rF8xpWxD3TPAsISWOrxezqGovqS38GRZOdpDfvQe3ts6F7nsng==",
+ "license": "MIT",
+ "dependencies": {
+ "commander": "^11.1.0",
+ "css-select": "^5.1.0",
+ "css-tree": "^3.0.1",
+ "css-what": "^6.1.0",
+ "csso": "^5.0.5",
+ "picocolors": "^1.1.1",
+ "sax": "^1.5.0"
+ },
+ "bin": {
+ "svgo": "bin/svgo.js"
+ },
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/svgo"
+ }
+ },
+ "node_modules/svgo/node_modules/commander": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz",
+ "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=16"
+ }
+ },
"node_modules/svix": {
"version": "1.90.0",
"license": "MIT",
@@ -14209,6 +17454,12 @@
"integrity": "sha512-wtTRjG92pM5eUg/KuUnHsqSAlPM296brTOcLgMRqEeylYTh/CdtvKUvCyyCQTzFuStieWxvZb8mVTMvdPyUpxg==",
"license": "MIT"
},
+ "node_modules/tiny-inflate": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz",
+ "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==",
+ "license": "MIT"
+ },
"node_modules/tiny-invariant": {
"version": "1.3.3",
"license": "MIT"
@@ -14331,6 +17582,27 @@
"dev": true,
"license": "Apache-2.0"
},
+ "node_modules/tsconfck": {
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.1.6.tgz",
+ "integrity": "sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==",
+ "deprecated": "unmaintained",
+ "license": "MIT",
+ "bin": {
+ "tsconfck": "bin/tsconfck.js"
+ },
+ "engines": {
+ "node": "^18 || >=20"
+ },
+ "peerDependencies": {
+ "typescript": "^5.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
"node_modules/tslib": {
"version": "2.8.1",
"license": "0BSD"
@@ -14457,7 +17729,6 @@
},
"node_modules/typescript": {
"version": "5.9.3",
- "dev": true,
"license": "Apache-2.0",
"bin": {
"tsc": "bin/tsc",
@@ -14491,7 +17762,6 @@
},
"node_modules/ufo": {
"version": "1.6.4",
- "dev": true,
"license": "MIT"
},
"node_modules/uid-safe": {
@@ -14504,6 +17774,18 @@
"node": ">= 0.8"
}
},
+ "node_modules/ultrahtml": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/ultrahtml/-/ultrahtml-1.7.0.tgz",
+ "integrity": "sha512-2xRd0VHoAQE4M+vF/DvFFB7pUV0ZxTW1TLi7lHQWnF/Sb5TPeEUV/l+hxcNnGO00ZXGnR0voCMmYRKQf+rvJ2g==",
+ "license": "MIT"
+ },
+ "node_modules/uncrypto": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz",
+ "integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==",
+ "license": "MIT"
+ },
"node_modules/undici-types": {
"version": "7.19.2",
"license": "MIT"
@@ -14525,6 +17807,31 @@
"url": "https://opencollective.com/unified"
}
},
+ "node_modules/unifont": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/unifont/-/unifont-0.7.4.tgz",
+ "integrity": "sha512-oHeis4/xl42HUIeHuNZRGEvxj5AaIKR+bHPNegRq5LV1gdc3jundpONbjglKpihmJf+dswygdMJn3eftGIMemg==",
+ "license": "MIT",
+ "dependencies": {
+ "css-tree": "^3.1.0",
+ "ofetch": "^1.5.1",
+ "ohash": "^2.0.11"
+ }
+ },
+ "node_modules/unist-util-find-after": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-5.0.0.tgz",
+ "integrity": "sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
"node_modules/unist-util-is": {
"version": "6.0.1",
"license": "MIT",
@@ -14536,6 +17843,20 @@
"url": "https://opencollective.com/unified"
}
},
+ "node_modules/unist-util-modify-children": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-modify-children/-/unist-util-modify-children-4.0.0.tgz",
+ "integrity": "sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "array-iterate": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
"node_modules/unist-util-position": {
"version": "5.0.0",
"license": "MIT",
@@ -14547,6 +17868,20 @@
"url": "https://opencollective.com/unified"
}
},
+ "node_modules/unist-util-remove-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz",
+ "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-visit": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
"node_modules/unist-util-stringify-position": {
"version": "4.0.0",
"license": "MIT",
@@ -14571,6 +17906,19 @@
"url": "https://opencollective.com/unified"
}
},
+ "node_modules/unist-util-visit-children": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-visit-children/-/unist-util-visit-children-3.0.0.tgz",
+ "integrity": "sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
"node_modules/unist-util-visit-parents": {
"version": "6.0.2",
"license": "MIT",
@@ -14631,9 +17979,141 @@
"@unrs/resolver-binding-win32-x64-msvc": "1.11.1"
}
},
+ "node_modules/unstorage": {
+ "version": "1.17.5",
+ "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.5.tgz",
+ "integrity": "sha512-0i3iqvRfx29hkNntHyQvJTpf5W9dQ9ZadSoRU8+xVlhVtT7jAX57fazYO9EHvcRCfBCyi5YRya7XCDOsbTgkPg==",
+ "license": "MIT",
+ "dependencies": {
+ "anymatch": "^3.1.3",
+ "chokidar": "^5.0.0",
+ "destr": "^2.0.5",
+ "h3": "^1.15.10",
+ "lru-cache": "^11.2.7",
+ "node-fetch-native": "^1.6.7",
+ "ofetch": "^1.5.1",
+ "ufo": "^1.6.3"
+ },
+ "peerDependencies": {
+ "@azure/app-configuration": "^1.8.0",
+ "@azure/cosmos": "^4.2.0",
+ "@azure/data-tables": "^13.3.0",
+ "@azure/identity": "^4.6.0",
+ "@azure/keyvault-secrets": "^4.9.0",
+ "@azure/storage-blob": "^12.26.0",
+ "@capacitor/preferences": "^6 || ^7 || ^8",
+ "@deno/kv": ">=0.9.0",
+ "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0",
+ "@planetscale/database": "^1.19.0",
+ "@upstash/redis": "^1.34.3",
+ "@vercel/blob": ">=0.27.1",
+ "@vercel/functions": "^2.2.12 || ^3.0.0",
+ "@vercel/kv": "^1 || ^2 || ^3",
+ "aws4fetch": "^1.0.20",
+ "db0": ">=0.2.1",
+ "idb-keyval": "^6.2.1",
+ "ioredis": "^5.4.2",
+ "uploadthing": "^7.4.4"
+ },
+ "peerDependenciesMeta": {
+ "@azure/app-configuration": {
+ "optional": true
+ },
+ "@azure/cosmos": {
+ "optional": true
+ },
+ "@azure/data-tables": {
+ "optional": true
+ },
+ "@azure/identity": {
+ "optional": true
+ },
+ "@azure/keyvault-secrets": {
+ "optional": true
+ },
+ "@azure/storage-blob": {
+ "optional": true
+ },
+ "@capacitor/preferences": {
+ "optional": true
+ },
+ "@deno/kv": {
+ "optional": true
+ },
+ "@netlify/blobs": {
+ "optional": true
+ },
+ "@planetscale/database": {
+ "optional": true
+ },
+ "@upstash/redis": {
+ "optional": true
+ },
+ "@vercel/blob": {
+ "optional": true
+ },
+ "@vercel/functions": {
+ "optional": true
+ },
+ "@vercel/kv": {
+ "optional": true
+ },
+ "aws4fetch": {
+ "optional": true
+ },
+ "db0": {
+ "optional": true
+ },
+ "idb-keyval": {
+ "optional": true
+ },
+ "ioredis": {
+ "optional": true
+ },
+ "uploadthing": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/unstorage/node_modules/chokidar": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz",
+ "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==",
+ "license": "MIT",
+ "dependencies": {
+ "readdirp": "^5.0.0"
+ },
+ "engines": {
+ "node": ">= 20.19.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/unstorage/node_modules/lru-cache": {
+ "version": "11.5.2",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz",
+ "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==",
+ "license": "BlueOak-1.0.0",
+ "engines": {
+ "node": "20 || >=22"
+ }
+ },
+ "node_modules/unstorage/node_modules/readdirp": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz",
+ "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 20.19.0"
+ },
+ "funding": {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
"node_modules/update-browserslist-db": {
"version": "1.2.3",
- "dev": true,
"funding": [
{
"type": "opencollective",
@@ -14730,6 +18210,20 @@
"url": "https://opencollective.com/unified"
}
},
+ "node_modules/vfile-location": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz",
+ "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
"node_modules/vfile-message": {
"version": "4.0.3",
"license": "MIT",
@@ -14953,6 +18447,25 @@
}
}
},
+ "node_modules/vitefu": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.1.3.tgz",
+ "integrity": "sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg==",
+ "license": "MIT",
+ "workspaces": [
+ "tests/deps/*",
+ "tests/projects/*",
+ "tests/projects/workspace/packages/*"
+ ],
+ "peerDependencies": {
+ "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "vite": {
+ "optional": true
+ }
+ }
+ },
"node_modules/vitest": {
"version": "1.6.1",
"resolved": "https://registry.npmjs.org/vitest/-/vitest-1.6.1.tgz",
@@ -15296,6 +18809,16 @@
"resolved": "apps/web-dashboard",
"link": true
},
+ "node_modules/web-namespaces": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz",
+ "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
"node_modules/webidl-conversions": {
"version": "7.0.0",
"license": "BSD-2-Clause",
@@ -15393,6 +18916,15 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/which-pm-runs": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.1.0.tgz",
+ "integrity": "sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/which-typed-array": {
"version": "1.1.21",
"dev": true,
@@ -15428,6 +18960,71 @@
"node": ">=8"
}
},
+ "node_modules/widest-line": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-5.0.0.tgz",
+ "integrity": "sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==",
+ "license": "MIT",
+ "dependencies": {
+ "string-width": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/widest-line/node_modules/ansi-regex": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz",
+ "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "node_modules/widest-line/node_modules/emoji-regex": {
+ "version": "10.6.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz",
+ "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==",
+ "license": "MIT"
+ },
+ "node_modules/widest-line/node_modules/string-width": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz",
+ "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==",
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^10.3.0",
+ "get-east-asian-width": "^1.0.0",
+ "strip-ansi": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/widest-line/node_modules/strip-ansi": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz",
+ "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^6.2.2"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
"node_modules/word-wrap": {
"version": "1.2.5",
"dev": true,
@@ -15541,6 +19138,12 @@
"node": ">=0.4"
}
},
+ "node_modules/xxhash-wasm": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.1.0.tgz",
+ "integrity": "sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==",
+ "license": "MIT"
+ },
"node_modules/y18n": {
"version": "5.0.8",
"dev": true,
@@ -15551,7 +19154,6 @@
},
"node_modules/yallist": {
"version": "3.1.1",
- "dev": true,
"license": "ISC"
},
"node_modules/yaml": {
@@ -15587,7 +19189,6 @@
},
"node_modules/yargs-parser": {
"version": "21.1.1",
- "dev": true,
"license": "ISC",
"engines": {
"node": ">=12"
@@ -15604,6 +19205,33 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/yocto-spinner": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/yocto-spinner/-/yocto-spinner-0.2.3.tgz",
+ "integrity": "sha512-sqBChb33loEnkoXte1bLg45bEBsOP9N1kzQh5JZNKj/0rik4zAPTNSAVPj3uQAdc6slYJ0Ksc403G2XgxsJQFQ==",
+ "license": "MIT",
+ "dependencies": {
+ "yoctocolors": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=18.19"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/yoctocolors": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.2.tgz",
+ "integrity": "sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/zod": {
"version": "4.4.2",
"license": "MIT",
@@ -15611,6 +19239,15 @@
"url": "https://github.com/sponsors/colinhacks"
}
},
+ "node_modules/zod-to-json-schema": {
+ "version": "3.25.2",
+ "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.25.2.tgz",
+ "integrity": "sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==",
+ "license": "ISC",
+ "peerDependencies": {
+ "zod": "^3.25.28 || ^4"
+ }
+ },
"node_modules/zod-validation-error": {
"version": "4.0.2",
"dev": true,
@@ -16266,7 +19903,7 @@
},
"sdks/urbackend-cli": {
"name": "@urbackend/cli",
- "version": "0.1.1",
+ "version": "0.2.0",
"license": "MIT",
"dependencies": {
"commander": "^12.1.0"
@@ -16311,9 +19948,9 @@
},
"sdks/urbackend-react": {
"name": "@urbackend/react",
- "version": "0.2.4",
+ "version": "0.2.5",
"dependencies": {
- "@urbackend/sdk": "^0.4.4"
+ "@urbackend/sdk": "^0.4.5"
},
"devDependencies": {
"@testing-library/jest-dom": "^6.0.0",
@@ -16349,7 +19986,7 @@
},
"sdks/urbackend-sdk": {
"name": "@urbackend/sdk",
- "version": "0.4.4",
+ "version": "0.4.5",
"license": "MIT",
"devDependencies": {
"@eslint/js": "^10.0.1",