From b8c955570e3d05fca1b918263521493fa70522d8 Mon Sep 17 00:00:00 2001 From: itsamejms Date: Sun, 12 Jul 2026 20:38:58 +0100 Subject: [PATCH] updating to make it more mobile optimized, making it a pwa, and testing it out on a phone --- .firebaserc | 5 + .gitignore | 5 + README.md | 6 + docs/pwa-firebase-plan.md | 307 ++ firebase.json | 28 + index.html | 13 +- package-lock.json | 3982 +++++++++++++++++++++++++- package.json | 2 +- public/apple-touch-icon.png | Bin 0 -> 18604 bytes public/icon-192.png | Bin 0 -> 20426 bytes public/icon-512-maskable.png | Bin 0 -> 49858 bytes public/icon-512.png | Bin 0 -> 68377 bytes src/App.jsx | 52 +- src/components/ProgressionBanner.jsx | 4 +- src/index.css | 11 + vite.config.js | 32 +- 16 files changed, 4311 insertions(+), 136 deletions(-) create mode 100644 .firebaserc create mode 100644 docs/pwa-firebase-plan.md create mode 100644 firebase.json create mode 100644 public/apple-touch-icon.png create mode 100644 public/icon-192.png create mode 100644 public/icon-512-maskable.png create mode 100644 public/icon-512.png diff --git a/.firebaserc b/.firebaserc new file mode 100644 index 0000000..568e070 --- /dev/null +++ b/.firebaserc @@ -0,0 +1,5 @@ +{ + "projects": { + "default": "itsamejms" + } +} \ No newline at end of file diff --git a/.gitignore b/.gitignore index 20dd00c..058e1f3 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,8 @@ debug.log releases/ release/ .DS_Store + +# Firebase +.firebase/ +firebase-debug.log +ui-debug.log diff --git a/README.md b/README.md index 117cf03..c472f2e 100644 --- a/README.md +++ b/README.md @@ -132,3 +132,9 @@ Audio is captured via the browser's Web Audio API and processed in two parallel 2. **Chord path** — 16384-sample FFT (2.7 Hz/bin) with harmonic summation chroma extraction across 80–4000 Hz. The averaged chroma vector is matched against chord templates (major, minor, dom7, min7, dim, half-dim, aug, sus4, add9) using a weighted coverage score. Consecutive identical detections are required before a chord is committed, preventing transient false positives. The top-3 key candidates are shown in real time as clickable chips. Locking a key in Beginner mode restricts chord matching to the 7 diatonic chords; Advanced mode allows chromatic/borrowed chords. + + +## Deploy +- firebase login +- npm run build +- firebase deploy --only hosting:jambuddy \ No newline at end of file diff --git a/docs/pwa-firebase-plan.md b/docs/pwa-firebase-plan.md new file mode 100644 index 0000000..3781a4e --- /dev/null +++ b/docs/pwa-firebase-plan.md @@ -0,0 +1,307 @@ +# Plan: PWA + Firebase Hosting for JamBuddy + +Status: **proposed**. Each phase is independently shippable; stop after any one. + +--- + +## 0. Why this is low-risk + +The Electron shell (`electron/main.cjs`, `preload.cjs`) does **nothing but host a window** — no IPC, no native APIs, `sandbox:false` only to give the renderer full Web Audio. All logic lives in the React renderer, which already runs browser-only via `npm run dev`. So the web build is the same `vite build` output the desktop installer already ships; we just add a manifest + service worker and serve `dist/` over HTTPS. Firebase gives us HTTPS for free, which `getUserMedia` (the mic) requires — that's the only hard web constraint. + +Nothing in the app makes network calls today, so there's no API surface to re-host and no secrets to manage. + +--- + +## Phase 1 — PWA scaffolding (no Firebase yet) + +Goal: `vite build` produces an installable, offline-capable web app served from any static host. + +### 1.1 Add `vite-plugin-pwa` + +Only new dependency. Wraps Workbox under a Vite plugin — generates the service worker and injects the manifest. Cheaper than hand-rolling a SW and gets update flow for free. + +```js +// vite.config.js +import { VitePWA } from 'vite-plugin-pwa' + +export default defineConfig({ + plugins: [ + react(), + tailwindcss(), + VitePWA({ + registerType: 'autoUpdate', + includeAssets: ['favicon.ico', 'apple-touch-icon.png'], + manifest: { + name: 'JamBuddy — WhatTheFlat', + short_name: 'JamBuddy', + description: 'Real-time key and chord detection for live jams.', + theme_color: '#0f0f0f', // matches bg-surface token + background_color: '#0f0f0f', + display: 'standalone', + orientation: 'any', + start_url: '/', + scope: '/', + icons: [ /* see 1.3 */ ], + }, + workbox: { + globPatterns: ['**/*.{js,css,html,svg,png,ico,woff2}'], + // Audio is captured live — nothing to cache from a remote. Precache the app shell only. + navigateFallback: '/index.html', + }, + }), + ], +}) +``` + +### 1.2 Create `public/` directory + +Vite serves `public/` at root and copies it verbatim into `dist/`. We need it for: + +- `favicon.ico`, `apple-touch-icon.png` (180×180) +- Any static PWA icons referenced by the manifest +- (Optional) `robots.txt` — not needed for an app, skip. + +The existing `src/assets/whattheflat-logo.png` is imported in `App.jsx` and bundled by Vite — leave that as-is; **don't** move it. The manifest icons must live in `public/` because they're referenced by URL, not imported. + +### 1.3 Generate icon set from the existing logo + +Derive all required sizes from `assets/whattheflat-logo.png` (one source image → PNG output). Required manifest entries: + +```js +icons: [ + { src: '/icon-192.png', sizes: '192x192', type: 'image/png', purpose: 'any' }, + { src: '/icon-512.png', sizes: '512x512', type: 'image/png', purpose: 'any' }, + { src: '/icon-512-maskable.png', sizes: '512x512', type: 'image/png', purpose: 'maskable' }, +] +``` + +Plus `apple-touch-icon.png` (180×180) in `public/` — iOS ignores the manifest and uses this ``. The maskable variant needs safe-zone padding (~10%) so the logo isn't cropped by Android's circular mask. + +One-liner with ImageMagick if available, else export manually from the source PNG: + +```bash +magick assets/whattheflat-logo.png -resize 192x192 public/icon-192.png +magick assets/whattheflat-logo.png -resize 512x512 public/icon-512.png +magick assets/whattheflat-logo.png -resize 180x180 public/apple-touch-icon.png +``` + +### 1.4 Update `index.html` + +Two problems with the current ``: + +1. **No PWA tags** — add theme-color, manifest link, apple-touch-icon, apple-mobile-web-app-capable, description. +2. **CSP is hardcoded for dev** — `connect-src 'self' http://localhost:5173 ws://localhost:5173` and `script-src 'self' 'unsafe-eval'`. The `unsafe-eval` and the localhost entries are Vite dev artifacts; production Vite doesn't need `unsafe-eval`. Keep a CSP (it's good hygiene and the app is genuinely offline) but drop the dev bits: + +```html + + + + + + +``` + +CSP (production): +``` +default-src 'self'; +script-src 'self'; +style-src 'self' 'unsafe-inline'; +img-src 'self' data:; +connect-src 'self'; +media-src 'self' blob:; +``` +`blob:` in `media-src` is required because `getUserMedia` streams are blob-backed and the analyser reads them. Verify nothing else regresses — `vite-plugin-pwa` registers the SW from a same-origin script, so `'self'` covers it. + +Move the dev-only CSP into a Vite conditional so dev still allows HMR/websocket: + +```js +// vite.config.js — inject dev CSP via plugin, or keep a separate dev index template. +``` +Simplest: keep one CSP in `index.html` with the production values, and in dev let Vite's own injected tags coexist (HMR works over the same origin websocket; CSP `connect-src 'self'` already allows it). If dev breaks, add `ws://localhost:5173` only in a dev-specific block. + +### 1.5 Verify + +- `npm run build` → `dist/` contains `manifest.webmanifest`, `registerSW.js`, `sw.js`, and all `public/` icons. +- Serve `dist/` locally with `npm run preview` and use Chrome DevTools → Application → Manifest (should show icons, installability ✓) and Service Workers (registered). +- Install to desktop / "Add to Home Screen" on mobile. +- Confirm the app still works **fully offline** after first load (airplane mode). Since there are no network calls, the only risk is the SW failing to precache — Workbox handles this. + +--- + +## Phase 2 — Firebase Hosting setup + +Goal: serve `dist/` over HTTPS on a `*.web.app` domain (or custom domain). + +### 2.1 Install the CLI + +```bash +npm install -D firebase-tools +``` + +### 2.2 Init + +```bash +npx firebase init hosting +``` + +Answer: +- **Public directory:** `dist` +- **Single-page app (rewrite all urls to /index.html):** Yes — though the app has no client-side routing today, this protects future routes and is harmless. +- **Set up automatic builds with GitHub:** **No.** (You're not using GitHub.) +- **File `dist/index.html` already exists — overwrite?** **No.** This is critical — saying yes would clobber the Vite-built index. + +This creates: +- `firebase.json` +- `.firebaserc` + +### 2.3 `firebase.json` (target shape) + +```json +{ + "hosting": { + "public": "dist", + "ignore": ["firebase.json", "**/.*", "**/node_modules/**"], + "rewrites": [{ "source": "**", "destination": "/index.html" }], + "headers": [ + { + "source": "**/*.@(js|css|svg|png|ico|woff2|webmanifest)", + "headers": [ + { "key": "Cache-Control", "value": "public, max-age=31536000, immutable" } + ] + }, + { + "source": "/sw.js", + "headers": [ + { "key": "Cache-Control", "value": "no-cache" } + ] + }, + { + "source": "/index.html", + "headers": [ + { "key": "Cache-Control", "value": "no-cache" } + ] + } + ] + } +} +``` + +Why the headers: Vite hashes asset filenames, so JS/CSS/icons are content-addressed → cache them **immortal**. `index.html` and `sw.js` must stay fresh so updates propagate — `no-cache` revalidates them every time. (Note: with `vite-plugin-pwa`'s `autoUpdate`, the SW self-updates; the `no-cache` on `sw.js` is belt-and-braces.) + +### 2.4 First deploy + +```bash +npm run build +npx firebase deploy --only hosting +``` + +Output: `https://.web.app`. The mic will now work because the origin is HTTPS. + +### 2.5 `.gitignore` + +Add `.firebase/` and `firebase-debug.log` (already in a sane gitignore, but confirm). + +--- + +## Phase 3 — (optional) custom domain + +In Firebase console → Hosting → Add custom domain. Add the DNS TXT/CNAME records it gives you. Lets Encrypt cert is auto-provisioned. No app change needed. + +--- + +--- + +## Phase 4 — Web optimization checklist + +Things that matter specifically for shipping this app on the web. Most are cheap; do them before the first public deploy. + +### 4.1 Drop the dead dependency + +`audiomotion-analyzer` is listed in `package.json` but **imported nowhere** in `src/`. Vite tree-shakes unused ESM, so it likely doesn't bloat the production bundle — but it still inflates `npm install` and is misleading. Either: +- **Remove it** from `dependencies` (one-line `npm uninstall audiomotion-analyzer`), or +- If something depends on it being present (it doesn't — grep confirms zero imports), wire it up. + +Recommend: remove. + +### 4.2 Audit bundle size + +```bash +npm run build +npx vite-bundle-visualizer # one-off, no config needed +``` +Expected heavy bits: `pitchy` (small, pure JS) and React 19. `electron` / `electron-builder` are devDeps and excluded from the web build. If the visualizer shows anything surprising (e.g. a transitive dep pulling in moment/lodash), trim it. + +### 4.3 Code-split the heavy, rarely-used views + +`DebugView`, `DrumView`, and `Tuner` are collapsible panels most users never open. They import theory helpers and own audio contexts. Lazy-load them so the initial bundle stays lean: + +```jsx +const Tuner = lazy(() => import('./components/Tuner')) +const DebugView = lazy(() => import('./components/DebugView')) +const DrumView = lazy(() => import('./components/DrumView')) +``` +Wrap in ``. These are already behind toggle buttons, so there's no UX cost. This is the single biggest web win — the core pitch/chord flow loads first. + +### 4.4 Audio permissions & UX on the web + +- **HTTPS** — covered by Firebase. `getUserMedia` is blocked on plain HTTP (except `localhost`). +- **User gesture** — the existing "Start Listening" button already provides the gesture the browser requires to call `getUserMedia`. Don't change this; never auto-start listening on load. +- **Mobile Safari quirks** — iOS Safari: + - Requires `audio: { echoCancellation: false }` style may differ; test the existing `AudioCapture` constraints on an iPhone. + - AudioContext must be resumed after a gesture — already handled since capture starts on click. + - `sharedArrayBuffer` is not needed by this app (no worklets), so no COOP/COEP headers required. Good — don't add them; they'd complicate the Firebase static host. +- **Permissions API** — optionally surface "microphone blocked" before the user clicks, using `navigator.permissions.query({ name: 'microphone' })`. The existing `micError` state already covers the denied case; this is a polish step, not required. + +### 4.5 Mobile layout + +The app uses Tailwind with responsive `lg:` breakpoints already (e.g. the progressions sidebar is `hidden lg:block`). For a real mobile deploy: +- Test the fretboard / piano SVGs at phone widths — they're SVG so they scale, but text labels may crowd. +- The `controls bar` wraps with `flex-wrap` — good. Verify the key-lock select dropdowns are tappable. +- Consider a `display: standalone` install prompt; the manifest already sets `standalone`. +- This is a "play and look at the screen" app — portrait guitar fretboard orientation may want `orientation: 'portrait'` in the manifest instead of `'any'`. Decide based on the primary instrument view. + +### 4.6 Performance for the audio hot loop + +Already mostly tuned (the dual-analyser design is deliberate). Web-specific notes: +- `requestAnimationFrame` driving the analyser is fine on web — no change. +- `Float32Array` chroma math is cheap. No change needed. +- Don't add a Workbox runtime cache for audio — there's no audio to cache; everything is live. +- If you ever add an AudioWorklet, its file must be served with the correct MIME and same-origin — Workbox precaches it as part of `globPatterns` only if it's emitted to `dist/`. Not needed today. + +### 4.7 SEO / social (minimal — this is an app, not content) + +- `` and meta description (added in 1.4) are enough for the web.app URL to have a sane share card. +- Add `og:title` / `og:description` / `og:image` to `index.html` if you want a nice link preview (point `og:image` to `/icon-512.png`). Optional. +- No sitemap needed for a single-page offline app. + +### 4.8 Keep Electron working + +The desktop build must not regress: +- `electron-builder` config in `package.json` is untouched by any of the above. +- The CSP change in `index.html` affects both targets — verify the desktop window still loads (it serves the built `dist/index.html`, so the new production CSP applies there too; that's fine and arguably better). +- `vite-plugin-pwa` is a dev dependency; it only runs at build time and doesn't touch the renderer runtime in a way that breaks Electron. +- Run `npm run electron:dev` after Phase 1 to confirm the Electron path still works. + +--- + +## What stays Electron-only + +Nothing in this plan removes or forks code. The Electron and web builds share the exact same `dist/` output. The only per-target differences are: +- Electron adds the `electron/main.cjs` shell and `electron-builder` packaging. +- Web adds the PWA manifest + SW (ignored by Electron) and is served over HTTPS. + +If a future feature needs a native API (filesystem dialogs, auto-launch, tray), it would go through Electron's preload/IPC — which currently exposes nothing. At that point you'd add an `isElectron` guard and a `preload` IPC bridge. Not needed for any current feature. + +--- + +## Suggested order of operations + +1. **Phase 1.2** — create `public/`, drop in icons (Phase 1.3). +2. **Phase 1.1 + 1.4** — add `vite-plugin-pwa`, update `index.html`, relax CSP. +3. Verify with `npm run preview` + DevTools (Phase 1.5). +4. **Phase 2** — `firebase init hosting`, hand-tune `firebase.json`, first deploy. +5. **Phase 4.1** — remove dead `audiomotion-analyzer` dep. +6. **Phase 4.3** — lazy-load the three collapsible views. +7. Polish: mobile pass (4.5), bundle audit (4.2), optional OG tags (4.7). + +Each step is independently revertible. Stop after step 4 and you have a working, installable, offline PWA on the web; the rest is optimization. \ No newline at end of file diff --git a/firebase.json b/firebase.json new file mode 100644 index 0000000..79dbd25 --- /dev/null +++ b/firebase.json @@ -0,0 +1,28 @@ +{ + "hosting": { + "site": "jambuddy", + "public": "dist", + "ignore": ["firebase.json", "**/.*", "**/node_modules/**"], + "rewrites": [{ "source": "**", "destination": "/index.html" }], + "headers": [ + { + "source": "**/*.@(js|css|svg|png|ico|woff2|webmanifest)", + "headers": [ + { "key": "Cache-Control", "value": "public, max-age=31536000, immutable" } + ] + }, + { + "source": "/sw.js", + "headers": [ + { "key": "Cache-Control", "value": "no-cache" } + ] + }, + { + "source": "/index.html", + "headers": [ + { "key": "Cache-Control", "value": "no-cache" } + ] + } + ] + } +} \ No newline at end of file diff --git a/index.html b/index.html index 5506c79..679b527 100644 --- a/index.html +++ b/index.html @@ -2,12 +2,19 @@ <html lang="en"> <head> <meta charset="UTF-8" /> - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' 'unsafe-eval'; connect-src 'self' http://localhost:5173 ws://localhost:5173; style-src 'self' 'unsafe-inline'; img-src 'self' data:;"> + <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" /> + <meta name="description" content="Real-time key and chord detection for live jams. Play any instrument into your mic and JamBuddy identifies the key, chords, and tempo — fully offline." /> + <meta name="theme-color" content="#0f0f0f" /> + <link rel="apple-touch-icon" href="apple-touch-icon.png" /> + <meta name="apple-mobile-web-app-capable" content="yes" /> + <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" /> + <meta name="apple-mobile-web-app-title" content="JamBuddy" /> + <!-- Production CSP. dev HMR runs same-origin so 'self' covers the ws upgrade. --> + <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; media-src 'self' blob:; connect-src 'self';" /> <title>WhatTheFlat ♭? - JamBuddy
- + \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index b0380ef..1430dde 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,6 @@ "name": "jambuddy", "version": "0.6.2", "dependencies": { - "audiomotion-analyzer": "^4.5.4", "pitchy": "^4.1.0", "react": "^19.2.4", "react-dom": "^19.2.4" @@ -23,17 +22,18 @@ "electron-builder": "^26.8.1", "tailwindcss": "^4.2.1", "vite": "^7.3.1", + "vite-plugin-pwa": "^1.3.0", "wait-on": "^9.0.4" } }, "node_modules/@babel/code-frame": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", - "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.28.5", + "@babel/helper-validator-identifier": "^7.29.7", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" }, @@ -42,9 +42,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz", - "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz", + "integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==", "dev": true, "license": "MIT", "engines": { @@ -83,14 +83,14 @@ } }, "node_modules/@babel/generator": { - "version": "7.29.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", - "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.7.tgz", + "integrity": "sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.29.0", - "@babel/types": "^7.29.0", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" @@ -99,15 +99,28 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", - "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.29.7.tgz", + "integrity": "sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.28.6", - "@babel/helper-validator-option": "^7.27.1", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz", + "integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -116,40 +129,20 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-globals": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", - "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", - "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.29.7.tgz", + "integrity": "sha512-IY3ZD9Tmooqr3TUhc3DUWxiuo8xx1DWLhd5M7hQ+ZWJamqM2BbalrBJb2MisSLoYorOj75U03qULCxQTY9r3hg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.28.6", - "@babel/types": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", - "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.28.6", - "@babel/helper-validator-identifier": "^7.28.5", - "@babel/traverse": "^7.28.6" + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-member-expression-to-functions": "^7.29.7", + "@babel/helper-optimise-call-expression": "^7.29.7", + "@babel/helper-replace-supers": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", + "@babel/traverse": "^7.29.7", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -158,20 +151,174 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz", - "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==", + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.29.7.tgz", + "integrity": "sha512-907Uymvqgg1dwUA+7IGwFAOSYzQOuzPXKNJ1yxzwPffzkYFg2q2eHi1fIOs6sXkG9NbIUMunnUlkYsfRFNvomg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "regexpu-core": "^6.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.8.tgz", + "integrity": "sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "debug": "^4.4.3", + "lodash.debounce": "^4.0.8", + "resolve": "^1.22.11" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz", + "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==", "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.29.7.tgz", + "integrity": "sha512-j+7JYmk1JYDtACIGj0QJqqWZjoUpMoEikQGADMaHgCMCSDqd2+P32rfcibUNrGOMWrlzK1WJBdxrB3JJQZwWtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz", + "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz", + "integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.29.7.tgz", + "integrity": "sha512-+kmGVjcT9RGYzoDwdwEqEvGgKe3BYq+O1iGzjFubaNgZHwYHP6lsF2Yghf4kEuv9BV7tYDZ913aBW9am6YKong==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.29.7.tgz", + "integrity": "sha512-16AMiW26DbXWBbr3B8wNozKM0ydMLB892vaOaJW/fPJdnT8vJk5sdkQcU/isqUxyCE0cEoa8wZOcbgDuC4b6Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-wrap-function": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.29.7.tgz", + "integrity": "sha512-atfGXWSeCiF4DnKZIfmJfQRkSw9b9gNNXR1kqKjbhG4pGYCOnkp8OcTB8E3NXjBu8NpheSnOeNKz8KT7UNFTmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.29.7", + "@babel/helper-optimise-call-expression": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.29.7.tgz", + "integrity": "sha512-brcMGQaVzIeUb+6/bs1Av0f8YuNNjKY2JyvfRCsFuFsdKccEQ5Ges2y74D74NZ1Rz8lKJ9ksJkfqwQFJ/iNEyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-string-parser": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", - "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", "dev": true, "license": "MIT", "engines": { @@ -179,9 +326,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", - "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", "dev": true, "license": "MIT", "engines": { @@ -189,15 +336,30 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", - "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz", + "integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==", "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.29.7.tgz", + "integrity": "sha512-iES0Skag9ERIF68aXadpO6dbXa03mNWK3sEqJaMnLNs/eC3l0lkImdfoy6Y09/SfkpawdAB4RjQ7PVA7TcVGdw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.29.7", + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helpers": { "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.6.tgz", @@ -213,13 +375,13 @@ } }, "node_modules/@babel/parser": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.0.tgz", - "integrity": "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz", + "integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.29.0" + "@babel/types": "^7.29.7" }, "bin": { "parser": "bin/babel-parser.js" @@ -228,6 +390,828 @@ "node": ">=6.0.0" } }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.29.7.tgz", + "integrity": "sha512-j8SrR0zLZrRsC09DlszEx8FpMiwukKffYXMK0d5LmOglO7vGG6sz/BR/20yHqWH+Lnn31JTt2PE3hIWNgM2J6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.29.7.tgz", + "integrity": "sha512-r8j8escF+U2FUHo0KOhPUdMzUO+jp9fInva6+ACVAF3Y97Ev+5iNZwiqTghmzNeWwDkOPlYuTcfb1vDaoZKmAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.29.7.tgz", + "integrity": "sha512-GE1TFSiuFeGsCxmYXZl8HwoPrVlwe4rHPFE8weieGKZqnDORK+Ar3vgWMgW+AOxQ6/2TgLSKx9p6W7O4rC6qgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-rest-destructuring-rhs-array": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-rest-destructuring-rhs-array/-/plugin-bugfix-safari-rest-destructuring-rhs-array-7.29.7.tgz", + "integrity": "sha512-oBNVCvnO5tND+xSopWvV8WNGfpTfgP4Zr/YXXSj8zfmcPktp5Ku/aZlsIowgSD4fjmgHn6sGmB9APVsU5zOdhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.29.7.tgz", + "integrity": "sha512-QQt9qKHZ2sg/kivaLr7lnQr8HVrQDdBNSfCsTjiDxRuX/K5ORyKq+Bu8Xr0cDE3Dfkv0cw28Ve0EKyKMvulkOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", + "@babel/plugin-transform-optional-chaining": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.29.7.tgz", + "integrity": "sha512-pn6QacGLgvCcwc+syUhKE/qSjV2D1IHDB84RNxWYSt1mW3K/SCtjinZ2p0cETJxAWBjPy3K/1lHwG5BjjPxNlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.29.7.tgz", + "integrity": "sha512-/An1OCBN93thpBAGyfsK2pcf0jvju1SAtKkL2Ny++B5Sy6sqgzXDQH1cZxWbF96Wuk+bn41MDA9bLd4VVAw6rw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.29.7.tgz", + "integrity": "sha512-zGYcYfq/WmZ4V+kBIXQon9dSSc8ircGZqw9ZaNhhGj9nZkeBu1jHLBDQqYYi5WA9uawvA2sIMbry2nCFhf5Djg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.29.7.tgz", + "integrity": "sha512-N7zArUXWzAMzm+/N0uPBeVB3Fam5lMxtUwMmDK5f/IBBS7a7p1qeUoxd/6CckXoxUdgsntq1Dh8xNW06maZbDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.29.7.tgz", + "integrity": "sha512-d98gXZkgswvkyohMBABkhm3GeXhYj8psWfwQ2C7gtfrKGTykQa/iOIi+JJhwMjPlZ6Vm2XN+DCf3Es1EoG4ZLA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-remap-async-to-generator": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.29.7.tgz", + "integrity": "sha512-pcUb2SS+RMo9TWVBwKGI5ShtoG7R+zBsFmCKDa6fe8c+hPr3XJlZgoE5j6i8W7gDjhyvy+85vmYexanvXh3d1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-remap-async-to-generator": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.29.7.tgz", + "integrity": "sha512-cUSmjh72N+rN4PrkFlN1dJwNCwjVp5d38/CQrEsFggkD10UiFlBFgdH3tv5dNsLuHY+3S8db2xCHjhZcv5WgvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.29.7.tgz", + "integrity": "sha512-ONyr4+AZhKh8yKWInVxU9AXA9EbsyeLcL6V0dJy6M2/62vuvpGm29zzuymbTpdc451GEpDIdAyPLP3r+P61yKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.29.7.tgz", + "integrity": "sha512-GtcpjFvanPfzNQi3eTitsCqtRRmmqzpy/A+yhTR1HaZo1Ly3EA8ZXxlPyHdR8/IuRMYc3E4wdGBewB2QKQjAaA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.29.7.tgz", + "integrity": "sha512-kibJgmEdX2iMwsHY2tSZNDgj8PwIlCQz7FK9KuGKO8zsuoUwSEhoNnNVp/emKWrbY4HeO6kkXfdMqRKKKXBm2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.29.7.tgz", + "integrity": "sha512-qV0OGGBVacduzQHE649JyCneOFI/maT+YKsO+K4Yi3xv2wTPNjM/W2o2gdzMwEAZz7fXNTHAe0NcSg30bIN69g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-globals": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-replace-supers": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.29.7.tgz", + "integrity": "sha512-RK7/IyU5phpuCdBAuig5VkzG/EnbDaui5SQGdU9BFrHdV+mV4cUjLMQ9lJDjLNtWHsqtiefpGZUXQP2BiTYMsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/template": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.29.7.tgz", + "integrity": "sha512-iPX8aD6H9zV5s7ZsqTdNocPN/MGQ5sSMnElKrktxjJRMnB2jN/1p2+R7GkfD6CAYoVFqy5A4XnSIUeGgJzIWpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.29.7.tgz", + "integrity": "sha512-3qc18hsD2RdZiyJNDNc7HQpv6xbncwh8FYtxNFFzclSyh/trPD9KkVR9BDECUjDLvb7yJVF15GfYUuC+LMkkiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.29.7.tgz", + "integrity": "sha512-6IvRRriEMqnBwD6chtxdLpMYCHWEzN+oL5cyQtjykya19UgzbmKhxmhZgKC/LHxS2nYr9Q/qYPZ5Lr6jOL9+yQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.29.7.tgz", + "integrity": "sha512-2wiIyo2BjtgU7HufSeDnL9L2O7zr8jmhFKuSr65VpRkUiRKRNpb0mdlk56+XPPKoIrfHqzbMuglDvZun0RISsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.29.7.tgz", + "integrity": "sha512-giOlEm/EFjfjr+te9NsdjkUo2v4f8rS/SXPumRVHAtbNcyNlvtREkU1dZzaIDclNpnaVhlCqRdFKhJBjBikzLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-explicit-resource-management": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.29.7.tgz", + "integrity": "sha512-Rstj7coNz8sE+7Ju7ihpHLI564lsK5pUpNNlvptCIC/16E/S5hbl6n3kESPKdNRmqEWlpn5xpS5Q2dvXBsySLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/plugin-transform-destructuring": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.29.7.tgz", + "integrity": "sha512-zFpMOTLZBdW5LfObqcSbL6kefg4R4eLdmvS0wbN9M6D5Mym/sKm9toOoWyVOa+xDjvCnuWcHls2YonXwHvH3CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.29.7.tgz", + "integrity": "sha512-24B2nOy2TeJSMheqwPD4DDQOV/elLSIlKxjZt4i05H5AgdPdWR3n18HnNrcJ+j76WJd9gbwb9jPjNYUy6RautA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.29.7.tgz", + "integrity": "sha512-zeSIHh0+E1Um1WJRXCFlHQYu2ieJNdivLLjlBEp+dIBu3S51n+SZZmIXjxnItw6pz56Cn+KvK68BIBVsxq2JiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.29.7.tgz", + "integrity": "sha512-otRWaHXE6fbAGkePvaj/kvs3HsqXfPhlnzwSOlnFgbqCPMd975dW+4wZ00WFBt+/YlBGcJwNrARQTOJOb4ZrIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.29.7.tgz", + "integrity": "sha512-RRnE2+eon1rJAq8MnoF1b5kTpY1vU88twHcvcKMrsqP/jxIRqDVs9iJB5fqPuqyeFAW0wJo4MlUIPpQCq/aRsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.29.7.tgz", + "integrity": "sha512-DZ/oLP21ZuWx1vKqnoNv6/tvEK48AQOBRai40CX9dTjGluvT/YZCyY3rryDtyUqCEoyNroy5KKPwX2iQCiRvyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.29.7.tgz", + "integrity": "sha512-A0H91hh6W8MFRkp5TqJmMr39jzGD1A1E1Ysiv2O06Sfbhkapm+XyIzxWCEh5kqwOZ1/8QZ0dY3SeQ7XBqfJd5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.29.7.tgz", + "integrity": "sha512-hl1kwFZCCiDyfH25Xmco9jTrkPgnS9pmOzSG7W5I4SaGbLeqKv417hcU2RKmaxoPEgsoJh7ZPOrnPGq99bHoUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.29.7.tgz", + "integrity": "sha512-fxtQoH3m5ywUSIfaH0FGCzWu4McsYon5bD3K4XnskC7f+OyQMj7rsOMi4NvvmJ83WwBAg4UCe+ov4VZlqEvyew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.29.7.tgz", + "integrity": "sha512-j0vCldybPC5b5dwCQOJ21uKtHzt7hxLygJTg9eF1ScfaikEDNfzn94XoW5Fi+seBR0nCyL23xaBFFkq7dTM8XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.7.tgz", + "integrity": "sha512-TM2ZcQLoG2/y4HODiStCo10DibYhWhGWAwVv+EQKmG/7GFl0N+AAmUiXOMKM+aiJ9XBJ9AHVZBvTzMnJ2sM3cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.29.7.tgz", + "integrity": "sha512-B4UkaTK3QpgCwJnrxKfMPKdo92CN7OKXAlpAAnM3UPu0Q0lCCk57ylA9AJbRy2v8dDKOPAAWcoR6CMyeoHwRCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.29.7.tgz", + "integrity": "sha512-vuFoLwr4qnv2xbZ16SQd6uPcH5FNrLHhk/Jzo++0XJFcaDsr4gjJVg6j398oMHiC+83k/GiBzviwF5KBJkPUtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.29.7.tgz", + "integrity": "sha512-fEo41GmsOUhOBlw8ioo6zvjX5Xc2Lqkzlyfqbpsk3eB6TReV18uhxZ0esfEokVbY2+PVJAQHNKxER6lGrzNd3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.29.7.tgz", + "integrity": "sha512-idmp1dFaekP9GbcMvG24Kvw2BfhFZjHnNJCkV4WuIY4PskJzwI3f1N5OdgYke38T7rftO6ERulFRn2cFeZwRkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.29.7.tgz", + "integrity": "sha512-zR7fv/z14OjgHl4AgRtkDBvBMhIzCxqV/qN/2BCRC7LjFwvuzjYe7gDWxC4Wl/SNsLM6SE1IWvRPYMgSJaUvNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.29.7.tgz", + "integrity": "sha512-Ld98jn4c0smUywL57m7SgsHq3OpThOa6LqZJif3G6jYOovPleoFhVrBJ1WegRApSFB2wu4+RelAj9AC9G08Z4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/plugin-transform-destructuring": "^7.29.7", + "@babel/plugin-transform-parameters": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.29.7.tgz", + "integrity": "sha512-Ea/diGcw0twB5IlZPO5sgET6fJsLJqPABqTuFWIR+iMPGPZJkATEIWx0wa+aEQ5UY1CBQyP/gkAiLEqn1vBiQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-replace-supers": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.29.7.tgz", + "integrity": "sha512-sLsyndxK2VwX6yNUOakMb7Sh553ZTe/vVM1XJ+9Z5aW1ytsc8xOIwmyk05NNjN60vkc5/KqoTH6hB4V41LJhng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.29.7.tgz", + "integrity": "sha512-6GM1dhvK3gNODkXcEcMCOLEDCLSoZ/sBbro2Ax8HURyasQ4NshagQixkRFdh5niI6E4gmA/jYI/4aT7rRos3ZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.29.7.tgz", + "integrity": "sha512-ZDOBqV/qLYJI0YElr8DcENEyARsFQeESqWXH6gZlghYXuPPjvweuDhP4VyEi4BlUBlLRFZVjxoZDMjxhLW766g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.29.7.tgz", + "integrity": "sha512-/6Rz4DK1ETDEM/bWHsPHcaEe7ZaT1EqSXjtSP/L0DijOYuaUhiRiOKcwpZ8P7zR4xXEHc2ITdiCgBm9Tpyv9ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.29.7.tgz", + "integrity": "sha512-+BNo06dnrzdNNqCm1X6YUaVv0DKk8Q+JYcoZfOkLhYWNCXzlwTSRq8zGWayT1csjcpNXV9CQTBRRbmTLZac5cA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.29.7.tgz", + "integrity": "sha512-bOMRLQuI0A5ZqHq3OWJ89/rXpJ/NJrbVhXiP4zwPGMs6kpcVsuTUNjwoE30K0Qm3mf48a/TnRYYD6vPNqcg6jA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-react-jsx-self": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", @@ -260,34 +1244,342 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/template": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", - "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.29.7.tgz", + "integrity": "sha512-rNNFV0DBAJp988xW2DOntfDoYn1eR8GGF5AT5vYc+rjyfaQkM242c9tZUHHPe7KYaiJizXPWhQTzzdbXySyhBw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.28.6", - "@babel/parser": "^7.28.6", - "@babel/types": "^7.28.6" + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.29.7.tgz", + "integrity": "sha512-mB5Fs0VWrJ42ZCmc8114v60qetdaUVNkj9PmSZRmanCZM3S9hm0CFRLjRmYIsuXav14l2jvZ+4T8iiCGnhj3nQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.29.7.tgz", + "integrity": "sha512-5+YhdpVgmfSmwZyLMftfaiffLRMHjzIRHFHHLdibcSyJm2pasMrKHrO3Ptrt2DRshjvpgjEJJ1zVW14WPq/6QA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.29.7.tgz", + "integrity": "sha512-I+WYbGBAiCn7nA6xBrlgPH+MB7HWb4u8pv5S0Pv7OtwNvIFvCCb24YlttKEeUFVurfBCEaOTnuhlqsb7f0Z5Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.29.7.tgz", + "integrity": "sha512-/u5K1QWada7tbYNqTjMh96718g9NTwh9tfPJMsSmVsQwGT447FskV+KcfeXkXq2GWki4EM/MuTdmBec+hOuVTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.29.7.tgz", + "integrity": "sha512-BCHzNYJGe9l7EpwwDBN/ztlL2NYFFq8hp9ddjtUEM9f2O7S7kKV/lL6Fwo7IF7NSkYhPK2vO+86nIGltA90MsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.29.7.tgz", + "integrity": "sha512-NCSEJ4sLFU2gqAub45HYh4fus2yQ36rr6ei6vpU7NdoJqCpxvEG8E6eJpscGyXP3VHD2Ny+fSXr04k1hoUrFqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.29.7.tgz", + "integrity": "sha512-223mNGoTkBiTEWFoK+Q6Go3tueMRclO8vxxxxquNCYuNI4jWOofFKJRRDu6SDrB8Sgo1UEGW9T4GAQ8ZyRso1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.29.7.tgz", + "integrity": "sha512-jCfXxSjf94lf4E0hKE0AByxF6F3/pVFqRdUUNkDJhsY0m1ZKjnN6ZYyMeHNpzflxb/0q5b7t3p+BE+SLF1WOtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.29.7.tgz", + "integrity": "sha512-OgZ+zoAJgZLUCunsTRQ5LAjOywDv5zzZ2/hQ5aMw1pGXyY2rtE8/chXYUmu3AlVHKpm10KEdG9aMwbI/K76ZGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.29.7.tgz", + "integrity": "sha512-7D/x/23/d/3VqZ0QA+LGbZMlGwZjztBygSWWWsfTPoQ1oQ6Q1P6Mr3d0kk42XabyUVw+fha3LqdRsFqeKqvCyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.29.7.tgz", + "integrity": "sha512-BLOhLht9DOJwIxlmp91wHvkXv1lguuHS3/FwUO8HL1H0u8s4hR1gASVFyilu9iGtcTRYqjTZmlsFFeQletntEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.7.tgz", + "integrity": "sha512-GYzX36n1nsciIb0uyH0GHwxwtNwPQIcpxSeiVLDtG/B7jB5xXgchnmL1f/jCX5o+pwnaDBtO60ONSJhEBJfxYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.29.7", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.29.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.29.7", + "@babel/plugin-bugfix-safari-rest-destructuring-rhs-array": "^7.29.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.29.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.29.7", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-import-assertions": "^7.29.7", + "@babel/plugin-syntax-import-attributes": "^7.29.7", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.29.7", + "@babel/plugin-transform-async-generator-functions": "^7.29.7", + "@babel/plugin-transform-async-to-generator": "^7.29.7", + "@babel/plugin-transform-block-scoped-functions": "^7.29.7", + "@babel/plugin-transform-block-scoping": "^7.29.7", + "@babel/plugin-transform-class-properties": "^7.29.7", + "@babel/plugin-transform-class-static-block": "^7.29.7", + "@babel/plugin-transform-classes": "^7.29.7", + "@babel/plugin-transform-computed-properties": "^7.29.7", + "@babel/plugin-transform-destructuring": "^7.29.7", + "@babel/plugin-transform-dotall-regex": "^7.29.7", + "@babel/plugin-transform-duplicate-keys": "^7.29.7", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.29.7", + "@babel/plugin-transform-dynamic-import": "^7.29.7", + "@babel/plugin-transform-explicit-resource-management": "^7.29.7", + "@babel/plugin-transform-exponentiation-operator": "^7.29.7", + "@babel/plugin-transform-export-namespace-from": "^7.29.7", + "@babel/plugin-transform-for-of": "^7.29.7", + "@babel/plugin-transform-function-name": "^7.29.7", + "@babel/plugin-transform-json-strings": "^7.29.7", + "@babel/plugin-transform-literals": "^7.29.7", + "@babel/plugin-transform-logical-assignment-operators": "^7.29.7", + "@babel/plugin-transform-member-expression-literals": "^7.29.7", + "@babel/plugin-transform-modules-amd": "^7.29.7", + "@babel/plugin-transform-modules-commonjs": "^7.29.7", + "@babel/plugin-transform-modules-systemjs": "^7.29.7", + "@babel/plugin-transform-modules-umd": "^7.29.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.29.7", + "@babel/plugin-transform-new-target": "^7.29.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.29.7", + "@babel/plugin-transform-numeric-separator": "^7.29.7", + "@babel/plugin-transform-object-rest-spread": "^7.29.7", + "@babel/plugin-transform-object-super": "^7.29.7", + "@babel/plugin-transform-optional-catch-binding": "^7.29.7", + "@babel/plugin-transform-optional-chaining": "^7.29.7", + "@babel/plugin-transform-parameters": "^7.29.7", + "@babel/plugin-transform-private-methods": "^7.29.7", + "@babel/plugin-transform-private-property-in-object": "^7.29.7", + "@babel/plugin-transform-property-literals": "^7.29.7", + "@babel/plugin-transform-regenerator": "^7.29.7", + "@babel/plugin-transform-regexp-modifiers": "^7.29.7", + "@babel/plugin-transform-reserved-words": "^7.29.7", + "@babel/plugin-transform-shorthand-properties": "^7.29.7", + "@babel/plugin-transform-spread": "^7.29.7", + "@babel/plugin-transform-sticky-regex": "^7.29.7", + "@babel/plugin-transform-template-literals": "^7.29.7", + "@babel/plugin-transform-typeof-symbol": "^7.29.7", + "@babel/plugin-transform-unicode-escapes": "^7.29.7", + "@babel/plugin-transform-unicode-property-regex": "^7.29.7", + "@babel/plugin-transform-unicode-regex": "^7.29.7", + "@babel/plugin-transform-unicode-sets-regex": "^7.29.7", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.15", + "babel-plugin-polyfill-corejs3": "^0.14.0", + "babel-plugin-polyfill-regenerator": "^0.6.6", + "core-js-compat": "^3.48.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.7.tgz", + "integrity": "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz", + "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", - "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.7.tgz", + "integrity": "sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==", "dev": true, "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", + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-globals": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7", "debug": "^4.3.1" }, "engines": { @@ -295,14 +1587,14 @@ } }, "node_modules/@babel/types": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", - "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz", + "integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.28.5" + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1419,6 +2711,17 @@ "node": ">=6.0.0" } }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", @@ -1583,6 +2886,126 @@ "dev": true, "license": "MIT" }, + "node_modules/@rollup/plugin-babel": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-6.1.0.tgz", + "integrity": "sha512-dFZNuFD2YRcoomP4oYf+DvQNSUA9ih+A3vUqopQx5EdtPGo3WBnQcI/S8pwpz91UsGfL0HsMSOlaMld8HrbubA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.18.6", + "@rollup/pluginutils": "^5.0.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "optional": true + }, + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.3.tgz", + "integrity": "sha512-lUYM3UBGuM93CnMPG1YocWu7X802BrNF3jW2zny5gQyLQgRFJhV1Sq0Zi74+dh/6NBx1DxFC4b4GXg9wUCG5Qg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.78.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-replace": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-6.0.3.tgz", + "integrity": "sha512-J4RZarRvQAm5IF0/LwUUg+obsm+xZhYnbMXmXROyoSE1ATJe3oXSb9L5MMppdxP2ylNSjv6zFBwKYjcKMucVfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "magic-string": "^0.30.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-terser": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-1.0.0.tgz", + "integrity": "sha512-FnCxhTBx6bMOYQrar6C8h3scPt8/JwIzw3+AJ2K++6guogH5fYaIFia+zZuhqv0eo1RN7W1Pz630SyvLbDjhtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "serialize-javascript": "^7.0.3", + "smob": "^1.0.0", + "terser": "^5.17.4" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.59.0", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.59.0.tgz", @@ -2302,6 +3725,22 @@ "vite": "^5.2.0 || ^6 || ^7" } }, + "node_modules/@trickfilm400/rollup-plugin-off-main-thread": { + "version": "3.0.0-pre1", + "resolved": "https://registry.npmjs.org/@trickfilm400/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-3.0.0-pre1.tgz", + "integrity": "sha512-/67zpWDBLV+oYAEL682s1ktXL0HgqX76f6gaVGkGnVZlBbm1zd0v4Bz8MFF2GGhoX9rvfq3KSQHubFHwa6w6/Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "ejs": "^3.1.10", + "json5": "^2.2.3", + "magic-string": "^0.30.21", + "string.prototype.matchall": "^4.0.12" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/@types/babel__core": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", @@ -2453,6 +3892,13 @@ "@types/react": "^19.2.0" } }, + "node_modules/@types/resolve": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/responselike": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", @@ -2463,6 +3909,13 @@ "@types/node": "*" } }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/verror": { "version": "1.10.11", "resolved": "https://registry.npmjs.org/@types/verror/-/verror-1.10.11.tgz", @@ -2530,6 +3983,19 @@ "node": "^18.17.0 || >=20.5.0" } }, + "node_modules/acorn": { + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.17.0.tgz", + "integrity": "sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/agent-base": { "version": "7.1.4", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", @@ -2773,6 +4239,45 @@ "dev": true, "license": "Python-2.0" }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", @@ -2812,6 +4317,16 @@ "node": ">=0.12.0" } }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -2829,14 +4344,20 @@ "node": ">= 4.0.0" } }, - "node_modules/audiomotion-analyzer": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/audiomotion-analyzer/-/audiomotion-analyzer-4.5.4.tgz", - "integrity": "sha512-bBTIFr0VgM764MJN3ATIyKrv2BzGTfQgJugulIHNEIFT0+zbz7lb+2CvFTPvk6n3J06wwWiJBPZFEIt9OSxzfQ==", - "license": "AGPL-3.0-or-later", + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, "funding": { - "type": "Ko-fi", - "url": "https://ko-fi.com/hvianna" + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/axios": { @@ -2851,6 +4372,48 @@ "proxy-from-env": "^1.1.0" } }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.17", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.17.tgz", + "integrity": "sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.28.6", + "@babel/helper-define-polyfill-provider": "^0.6.8", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.2.tgz", + "integrity": "sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.8", + "core-js-compat": "^3.48.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.8.tgz", + "integrity": "sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.8" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, "node_modules/balanced-match": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", @@ -3197,6 +4760,25 @@ "node": ">=8" } }, + "node_modules/call-bind": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz", + "integrity": "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "get-intrinsic": "^1.3.0", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/call-bind-apply-helpers": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", @@ -3211,6 +4793,23 @@ "node": ">= 0.4" } }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/caniuse-lite": { "version": "1.0.30001776", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001776.tgz", @@ -3420,6 +5019,16 @@ "node": ">= 6" } }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/compare-version": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz", @@ -3469,6 +5078,20 @@ "dev": true, "license": "MIT" }, + "node_modules/core-js-compat": { + "version": "3.49.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.49.0.tgz", + "integrity": "sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, "node_modules/core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -3535,6 +5158,16 @@ "node": ">= 8" } }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/csstype": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", @@ -3542,6 +5175,60 @@ "dev": true, "license": "MIT" }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/debug": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", @@ -3589,6 +5276,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/defaults": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", @@ -3618,7 +5315,6 @@ "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dev": true, "license": "MIT", - "optional": true, "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -3637,7 +5333,6 @@ "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, "license": "MIT", - "optional": true, "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", @@ -4124,6 +5819,94 @@ "dev": true, "license": "MIT" }, + "node_modules/es-abstract": { + "version": "1.24.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.2.tgz", + "integrity": "sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.2.1", + "is-set": "^2.0.3", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.1", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.4", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.4", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.19" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-abstract-get": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-abstract-get/-/es-abstract-get-1.0.0.tgz", + "integrity": "sha512-6PMWXpdhshVvFp+FoWYs1EvG1Nj0tvk0dZM+XcK0xMEM1czRVcP6ohqPWHy6qPagSpC8j4+p89WXlT+xXJs/fg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.2", + "is-callable": "^1.2.7", + "object-inspect": "^1.13.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/es-define-property": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", @@ -4145,9 +5928,9 @@ } }, "node_modules/es-object-atoms": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", "dev": true, "license": "MIT", "dependencies": { @@ -4173,6 +5956,27 @@ "node": ">= 0.4" } }, + "node_modules/es-to-primitive": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.4.tgz", + "integrity": "sha512-yPDz7wqpg1/mmHLmS3tcfTfbw5f1eryXvyghYBffGdERwe+mV7ZcWzTR8LR17Kvqt3qfPurjlonmnq3MKXIOXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-abstract-get": "^1.0.0", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "is-callable": "^1.2.7", + "is-date-object": "^1.1.0", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/es6-error": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", @@ -4247,6 +6051,36 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eta": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eta/-/eta-4.6.0.tgz", + "integrity": "sha512-lW6is4T1NFOYnmqGZIfvixqj7A7sSvScF+DN8EK6K58xI5MZ5UvYe0GjopxOXQtZvUn4eDdVuZ8XSoYWTMEKwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/bgub/eta?sponsor=1" + } + }, "node_modules/exponential-backoff": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.3.tgz", @@ -4300,6 +6134,23 @@ "dev": true, "license": "MIT" }, + "node_modules/fast-uri": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.3.tgz", + "integrity": "sha512-i70LwGWUduXqzicKXWshooq+sWL1K3WUU5rKZNG/0i3a1OSoX3HqhH5WbWwTmqWfor4urUakGPiRQcleRZTwOg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, "node_modules/fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", @@ -4395,6 +6246,22 @@ } } }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/foreground-child": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", @@ -4502,6 +6369,50 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/function.prototype.name": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.2.0.tgz", + "integrity": "sha512-jObKIik1P2QjPHP5nz5BaOtUlfgS0fWo8IUByNXkM+o+02sJOi94em77GwJKQSJ3gfPHdgzLNrHc1uokV4P/ew==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2", + "hasown": "^2.0.4", + "is-callable": "^1.2.7", + "is-document.all": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/generator-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", + "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -4547,6 +6458,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", + "dev": true, + "license": "ISC" + }, "node_modules/get-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", @@ -4577,6 +6495,24 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -4669,7 +6605,6 @@ "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", "dev": true, "license": "MIT", - "optional": true, "dependencies": { "define-properties": "^1.2.1", "gopd": "^1.0.1" @@ -4727,6 +6662,19 @@ "dev": true, "license": "ISC" }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -4743,7 +6691,6 @@ "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, "license": "MIT", - "optional": true, "dependencies": { "es-define-property": "^1.0.0" }, @@ -4751,6 +6698,22 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-symbols": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", @@ -4781,9 +6744,9 @@ } }, "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", "dev": true, "license": "MIT", "dependencies": { @@ -4906,6 +6869,13 @@ "node": ">=0.10.0" } }, + "node_modules/idb": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", + "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==", + "dev": true, + "license": "ISC" + }, "node_modules/ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", @@ -4956,6 +6926,21 @@ "dev": true, "license": "ISC" }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/ip-address": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz", @@ -4966,6 +6951,173 @@ "node": ">= 12" } }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.16.2", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.2.tgz", + "integrity": "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-document.all": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-document.all/-/is-document.all-1.0.0.tgz", + "integrity": "sha512-+XSoyS05OdBbhFuELhgTCpFNHkpBOJqtsZfUFFpe5QTw+9Sjbh8zitxhQkYAo6wV7e1Vb8cAPvpCk9jGam/82g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -4976,6 +7128,26 @@ "node": ">=8" } }, + "node_modules/is-generator-function": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", + "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.4", + "generator-function": "^2.0.0", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-interactive": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", @@ -4986,6 +7158,188 @@ "node": ">=8" } }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", @@ -4999,6 +7353,59 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, "node_modules/isbinaryfile": { "version": "5.0.7", "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.7.tgz", @@ -5163,6 +7570,16 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -5180,6 +7597,16 @@ "dev": true, "license": "MIT" }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/lightningcss": { "version": "1.31.1", "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.31.1.tgz", @@ -5448,6 +7875,20 @@ "dev": true, "license": "MIT" }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", + "dev": true, + "license": "MIT" + }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -5958,17 +8399,50 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, "license": "MIT", - "optional": true, "engines": { "node": ">= 0.4" } }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -6019,6 +8493,24 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/p-cancelable": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", @@ -6085,6 +8577,13 @@ "node": ">=8" } }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, "node_modules/path-scurry": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", @@ -6175,6 +8674,16 @@ "node": ">=10.4.0" } }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/postcss": { "version": "8.5.8", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz", @@ -6234,6 +8743,19 @@ "node": "^12.20.0 || >=14" } }, + "node_modules/pretty-bytes": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.1.1.tgz", + "integrity": "sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/proc-log": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-5.0.0.tgz", @@ -6380,6 +8902,108 @@ "node": ">= 6" } }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true, + "license": "MIT" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz", + "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpu-core": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz", + "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.2", + "regjsgen": "^0.8.0", + "regjsparser": "^0.13.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.2.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/regjsparser": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.2.tgz", + "integrity": "sha512-NgRBy2Nx/bE+9F27nVHnqcN5HjyLmecqsqx2PJHu3/IEtADD4WuxuXIVExD5PoSDFVrl78dOonfcOe5O+5nbzQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~3.1.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -6390,6 +9014,16 @@ "node": ">=0.10.0" } }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/resedit": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/resedit/-/resedit-1.7.2.tgz", @@ -6408,6 +9042,28 @@ "url": "https://github.com/sponsors/jet2jet" } }, + "node_modules/resolve": { + "version": "1.22.12", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/resolve-alpn": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", @@ -6541,6 +9197,26 @@ "tslib": "^2.1.0" } }, + "node_modules/safe-array-concat": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.4.tgz", + "integrity": "sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "get-intrinsic": "^1.3.0", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -6562,6 +9238,41 @@ ], "license": "MIT" }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -6630,6 +9341,65 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/serialize-javascript": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-7.0.7.tgz", + "integrity": "sha512-YAy8Od6KV+uuwUuU50np8fGB/Aues6Y0nAhA9y/hId74PlKUcme4pXcBD46NWKr1Q4osN/iseZ17YqO1XfmI8g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -6666,6 +9436,82 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/side-channel": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz", + "integrity": "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4", + "side-channel-list": "^1.0.1", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", @@ -6726,6 +9572,16 @@ "npm": ">= 3.0.0" } }, + "node_modules/smob": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/smob/-/smob-1.6.2.tgz", + "integrity": "sha512-RQsvleCbF8cVHEv+xuDGaA4pOizFqJ0GgjtMSRo6oP8pnN7WsigHgVGey6aILRBKv4W2YOMHLqbKdnB6hpB9fw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.0.0" + } + }, "node_modules/socks": { "version": "2.8.7", "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", @@ -6818,6 +9674,20 @@ "node": ">= 6" } }, + "node_modules/stop-iteration-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -6859,6 +9729,109 @@ "node": ">=8" } }, + "node_modules/string.prototype.matchall": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "regexp.prototype.flags": "^1.5.3", + "set-function-name": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.11.tgz", + "integrity": "sha512-PwvK7BU+CMTJGYQCTZb5RWXIML92lftJLhQz1tBzgKiqGxJaMlBAa48POXaNAC2s4y8jr3EFqrkF9+44neS46w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.2", + "es-object-atoms": "^1.1.2", + "has-property-descriptors": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.10.tgz", + "integrity": "sha512-2+3aDAOmPTmuFwjDnmJG2ctEkQKVki7vOSqaxkv42Mowj1V6PnvuwFCRrR5lChUux1TBskPjfkeTOhqczDMxTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -6886,6 +9859,16 @@ "node": ">=8" } }, + "node_modules/strip-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", + "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, "node_modules/sumchecker": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", @@ -6915,6 +9898,19 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/tailwindcss": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.2.1.tgz", @@ -6978,6 +9974,16 @@ "node": ">=6.0.0" } }, + "node_modules/temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/temp-file": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.4.0.tgz", @@ -7027,6 +10033,64 @@ "node": ">= 10.0.0" } }, + "node_modules/tempy": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", + "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.49.0.tgz", + "integrity": "sha512-SNiDnXyHSrxVcIOtVbULzcTmniUiwcV7Nwdyj1twVubeTmbjoa8p69KKDpfkdoOavuM4/GRm1+ykI8qqnavHoA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.15.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "license": "MIT" + }, "node_modules/tiny-async-pool": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/tiny-async-pool/-/tiny-async-pool-1.3.0.tgz", @@ -7084,6 +10148,16 @@ "tmp": "^0.2.0" } }, + "node_modules/tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^2.1.0" + } + }, "node_modules/tree-kill": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", @@ -7125,6 +10199,103 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.8.tgz", + "integrity": "sha512-phPGCwqr2+Qo0fwniCE8e4pKnGu/yFb5nD5Y8bf0EEeiI5GklnACYA9GFy/DrAeRrKHXvHn+1SUsOWgJp6RO+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "for-each": "^0.3.5", + "gopd": "^1.2.0", + "is-typed-array": "^1.1.15", + "possible-typed-array-names": "^1.1.0", + "reflect.getprototypeof": "^1.0.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/undici-types": { "version": "7.16.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", @@ -7132,6 +10303,50 @@ "dev": true, "license": "MIT" }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz", + "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz", + "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/unique-filename": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-4.0.0.tgz", @@ -7158,6 +10373,19 @@ "node": "^18.17.0 || >=20.5.0" } }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", @@ -7168,6 +10396,17 @@ "node": ">= 4.0.0" } }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, "node_modules/update-browserslist-db": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", @@ -7314,6 +10553,37 @@ } } }, + "node_modules/vite-plugin-pwa": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/vite-plugin-pwa/-/vite-plugin-pwa-1.3.0.tgz", + "integrity": "sha512-c5kMgN+ITrOtHXp8PAtk2uOIEea6XjP/unCGxOWWBzQ6qa65qj/awHg0wf+QF9E/2u9vh86LqxPwzEPNbM2r5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.6", + "pretty-bytes": "^6.1.1", + "tinyglobby": "^0.2.10", + "workbox-build": "^7.4.1", + "workbox-window": "^7.4.1" + }, + "engines": { + "node": ">=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vite-pwa/assets-generator": "^1.0.0", + "vite": "^3.1.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "workbox-build": "^7.4.1", + "workbox-window": "^7.4.1" + }, + "peerDependenciesMeta": { + "@vite-pwa/assets-generator": { + "optional": true + } + } + }, "node_modules/wait-on": { "version": "9.0.4", "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-9.0.4.tgz", @@ -7344,6 +10614,25 @@ "defaults": "^1.0.3" } }, + "node_modules/webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, "node_modules/which": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", @@ -7360,6 +10649,487 @@ "node": "^18.17.0 || >=20.5.0" } }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.22", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.22.tgz", + "integrity": "sha512-fvO4ExWMFsqyhG3AiPAObMuY1lxaqgYcxbc49CNdWDDECOJNgQyvsOWVwbZc+qf3rzRtxojBK+CMEv0Ld5CYpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/workbox-background-sync": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-7.4.1.tgz", + "integrity": "sha512-HhT7KE8tOWDm02wRNshXUnUPofMlhenF2DBdUnDPOubhizzPeItkYTmAB6td1Z2cjYPa98vzEiPLEuzn5hN66g==", + "dev": true, + "license": "MIT", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "7.4.1" + } + }, + "node_modules/workbox-broadcast-update": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-7.4.1.tgz", + "integrity": "sha512-uAlgslKLvbQY+suirIdnBCSYrcgBhjp81Nj4l1lj/Jmj0MJO2CJERnCJjT0GFVwmReV0N+zs78K6gqd5gr9/+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-core": "7.4.1" + } + }, + "node_modules/workbox-build": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-7.4.1.tgz", + "integrity": "sha512-SDhxIvEAde9Gy/5w4Yo1Jh/M49Z0qE3q0oteyE8zGq0DScxFqVBcCtIXFuLtmtxRQZCMbf0prco4VyEu3KBQuw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@apideck/better-ajv-errors": "^0.3.1", + "@babel/core": "^7.24.4", + "@babel/preset-env": "^7.11.0", + "@babel/runtime": "^7.11.2", + "@rollup/plugin-babel": "^6.1.0", + "@rollup/plugin-node-resolve": "^16.0.3", + "@rollup/plugin-replace": "^6.0.3", + "@rollup/plugin-terser": "^1.0.0", + "@trickfilm400/rollup-plugin-off-main-thread": "^3.0.0-pre1", + "ajv": "^8.6.0", + "common-tags": "^1.8.0", + "eta": "^4.5.1", + "fast-json-stable-stringify": "^2.1.0", + "fs-extra": "^9.0.1", + "glob": "^11.0.1", + "pretty-bytes": "^5.3.0", + "rollup": "^4.53.3", + "source-map": "^0.8.0-beta.0", + "stringify-object": "^3.3.0", + "strip-comments": "^2.0.1", + "tempy": "^0.6.0", + "upath": "^1.2.0", + "workbox-background-sync": "7.4.1", + "workbox-broadcast-update": "7.4.1", + "workbox-cacheable-response": "7.4.1", + "workbox-core": "7.4.1", + "workbox-expiration": "7.4.1", + "workbox-google-analytics": "7.4.1", + "workbox-navigation-preload": "7.4.1", + "workbox-precaching": "7.4.1", + "workbox-range-requests": "7.4.1", + "workbox-recipes": "7.4.1", + "workbox-routing": "7.4.1", + "workbox-strategies": "7.4.1", + "workbox-streams": "7.4.1", + "workbox-sw": "7.4.1", + "workbox-window": "7.4.1" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/workbox-build/node_modules/@apideck/better-ajv-errors": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.7.tgz", + "integrity": "sha512-TajUJwGWbDwkCx/CZi7tRE8PVB7simCvKJfHUsSdvps+aTM/PDPP4gkLmKnc+x3CE//y9i/nj74GqdL/hwk7Iw==", + "dev": true, + "license": "MIT", + "dependencies": { + "jsonpointer": "^5.0.1", + "leven": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "ajv": ">=8" + } + }, + "node_modules/workbox-build/node_modules/@isaacs/cliui": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-9.0.0.tgz", + "integrity": "sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/workbox-build/node_modules/ajv": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/workbox-build/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/workbox-build/node_modules/glob": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.1.0.tgz", + "integrity": "sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "foreground-child": "^3.3.1", + "jackspeak": "^4.1.1", + "minimatch": "^10.1.1", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/workbox-build/node_modules/jackspeak": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.2.3.tgz", + "integrity": "sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^9.0.0" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/workbox-build/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/workbox-build/node_modules/jsonfile": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.1.tgz", + "integrity": "sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/workbox-build/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==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/workbox-build/node_modules/path-scurry": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", + "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/workbox-build/node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/workbox-build/node_modules/source-map": { + "version": "0.8.0-beta.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "deprecated": "The work that was done in this beta branch won't be included in future versions", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "whatwg-url": "^7.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/workbox-build/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/workbox-cacheable-response": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-7.4.1.tgz", + "integrity": "sha512-8xaFoJdDc2OjrlbbL3gEeBO1WKcMwRqwLRupgqahYXu75yXajPLuwrbXMrIGZuWYXrQwk0xDjOxZ/ujCy/oJYw==", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-core": "7.4.1" + } + }, + "node_modules/workbox-core": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-7.4.1.tgz", + "integrity": "sha512-DT+vu46eh/2vRsSHTY4Xmc32Z1rr9PRlQUXr1Dx30ZuXRWwOsvZgGgcwxcasubQLQmbTNYZjv44LkBAQ4tT5tQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/workbox-expiration": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-7.4.1.tgz", + "integrity": "sha512-lRKUF7b+OGbeXkQk1s6MHXOa3d7Xxf7Of31W6c6hCfipfIyrtdWZ89stq21AHZMaoG7VNFoHply4Ox+rU31TWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "7.4.1" + } + }, + "node_modules/workbox-google-analytics": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-7.4.1.tgz", + "integrity": "sha512-Mks1JwLEt++ZAkF6sS1OpSh9RtAMIsiDgRpK+codiHGIPXeaUOgi4cPc3GFadUl8V5QPeypEk8Oxgl3HlwVzHw==", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-background-sync": "7.4.1", + "workbox-core": "7.4.1", + "workbox-routing": "7.4.1", + "workbox-strategies": "7.4.1" + } + }, + "node_modules/workbox-navigation-preload": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-7.4.1.tgz", + "integrity": "sha512-C4KVsjPcYKJOhr631AxR9XoG2rLF3QiTk5aMv36MXOjtWvm8axwNFAtKUPGsWUwLXXAMgYM1En7fsvndaXeXRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-core": "7.4.1" + } + }, + "node_modules/workbox-precaching": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-7.4.1.tgz", + "integrity": "sha512-cdr/9qByww7yzEp7zg/qI4ukUrrNjQLgN+ONQRpjy/VqGQXwkgHwr00KksGJK8v0VifwDXBb8a4cWNZH71jn3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-core": "7.4.1", + "workbox-routing": "7.4.1", + "workbox-strategies": "7.4.1" + } + }, + "node_modules/workbox-range-requests": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-7.4.1.tgz", + "integrity": "sha512-7i2oxAUE82gHdAJBCAQ04JzNOdRPqzuOzGfoUyJpFSmeqBNYGPrAH8GPoPjUQTfp+NycwrD2H68VtuF8qxv0vQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-core": "7.4.1" + } + }, + "node_modules/workbox-recipes": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-7.4.1.tgz", + "integrity": "sha512-gnbVfmV4/TtmQaM4x9AtuXhcdstJsep3XMVeztOrQVPT+R6+6DeBjGTCQ7fFCXm+4GEHUA5VEBTyi5+4gWGeog==", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-cacheable-response": "7.4.1", + "workbox-core": "7.4.1", + "workbox-expiration": "7.4.1", + "workbox-precaching": "7.4.1", + "workbox-routing": "7.4.1", + "workbox-strategies": "7.4.1" + } + }, + "node_modules/workbox-routing": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-7.4.1.tgz", + "integrity": "sha512-yubJGErZOusuidAenaL5ypfhQOa7urxP/f8E0ws7FPb4039RiWXUWBAyUkmUoOL/BcQGen3h0J8872d51IYxtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-core": "7.4.1" + } + }, + "node_modules/workbox-strategies": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-7.4.1.tgz", + "integrity": "sha512-GZxpaw9NbmOelj7667uZ2kpk5BFpOGbO4X0qjwh5ls8XQ8C+Lha5LQchTiUzsTFSS+NlUpftYAyOVXvQUrcqOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-core": "7.4.1" + } + }, + "node_modules/workbox-streams": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-7.4.1.tgz", + "integrity": "sha512-HWWtraKUbJknd9kgqGcpQ3G114HOPYvqs8HaJMDs2ebLNAimDkVDaWfAXE6Ybl+m8U6KsCE6pWyLYuigWmnAXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-core": "7.4.1", + "workbox-routing": "7.4.1" + } + }, + "node_modules/workbox-sw": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-7.4.1.tgz", + "integrity": "sha512-fez5f2DUlDJWTFYkCWQpY10N8gtztd849NswCbVFk0QlcSM4HT5A8x4g4ii650yem4I8tHY0R7JZahwp3ltIPw==", + "dev": true, + "license": "MIT" + }, + "node_modules/workbox-window": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-7.4.1.tgz", + "integrity": "sha512-notZDH2u8VXaqyuD7xaqIfEFi6SRM4SUSd7ewe9PDsVqADuepxX2ZMY3uvuZGxzY5ZOsGC/vD3A/3smFtJt4/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/trusted-types": "^2.0.2", + "workbox-core": "7.4.1" + } + }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", diff --git a/package.json b/package.json index fae472b..ed1c9e4 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,6 @@ "electron:build:linux": "vite build && electron-builder --linux --publish never" }, "dependencies": { - "audiomotion-analyzer": "^4.5.4", "pitchy": "^4.1.0", "react": "^19.2.4", "react-dom": "^19.2.4" @@ -31,6 +30,7 @@ "electron-builder": "^26.8.1", "tailwindcss": "^4.2.1", "vite": "^7.3.1", + "vite-plugin-pwa": "^1.3.0", "wait-on": "^9.0.4" }, "build": { diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..05d67b8c623b7feb8f73bd53da67e853b3912acd GIT binary patch literal 18604 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μpzsu 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 literal 0 HcmV?d00001 diff --git a/public/icon-512.png b/public/icon-512.png new file mode 100644 index 0000000000000000000000000000000000000000..181a91a366322bc45029864a7a733b6b662075c3 GIT binary patch literal 68377 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 literal 0 HcmV?d00001 diff --git a/src/App.jsx b/src/App.jsx index 2e87c45..67d0f93 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -1,17 +1,21 @@ -import { useState, useCallback, useRef, useEffect } from 'react' +import { useState, useCallback, useRef, useEffect, lazy, Suspense } from 'react' import AudioCapture from './components/AudioCapture' import ProgressionBanner from './components/ProgressionBanner' import ProgressionSuggestions from './components/ProgressionSuggestions' import Fretboard from './components/Fretboard' import BassFretboard from './components/BassFretboard' -import Tuner from './components/Tuner' import Piano from './components/Piano' import Settings from './components/Settings' -import DebugView from './components/DebugView' -import DrumView from './components/DrumView' import { NOTES, detectKey, detectTopKeys, matchChordFromChroma, detectRepeatingProgression, getChordTones, getChordCandidates, getNoteHistoryAnalysis } from './lib/theory' import settingIcon from './assets/setting-icon.png' +// ponytail: collapsible panels most users never open — lazy-load so the core +// pitch/chord flow ships in the initial bundle. Suspense fallback null: they +// render behind a toggle button, so there's no visible flash. +const Tuner = lazy(() => import('./components/Tuner')) +const DebugView = lazy(() => import('./components/DebugView')) +const DrumView = lazy(() => import('./components/DrumView')) + const DEFAULTS = { // Key detection noteHistorySize: 2000, // ~60s of notes — stable across a song section @@ -366,15 +370,15 @@ export default function App() { } return ( -

+
{/* ── Header ── */} -
+

WhatTheFlat ♭? - JamBuddy

-

Real-time key detection for live jams

+

Real-time key detection for live jams

{showDebug && (
- + + +
)}
@@ -589,7 +595,9 @@ export default function App() { {showDrumView && (
- + + +
)}
@@ -603,7 +611,7 @@ export default function App() { TUNER {showTuner ? '▲' : '▼'} - {showTuner &&
} + {showTuner &&
}
) diff --git a/src/components/ProgressionBanner.jsx b/src/components/ProgressionBanner.jsx index 69d20ef..262ecf9 100644 --- a/src/components/ProgressionBanner.jsx +++ b/src/components/ProgressionBanner.jsx @@ -38,7 +38,7 @@ export default function ProgressionBanner({ chordHistory, keyInfo, detectedProgr }, [current]) return ( -
+
{/* ── Left: key + chord history + loop ── */}
@@ -130,7 +130,7 @@ export default function ProgressionBanner({ chordHistory, keyInfo, detectedProgr
{/* ── Right: big chord ── */} -
+
{current ? ( <>

Now Playing

diff --git a/src/index.css b/src/index.css index a451aff..2b6e4a9 100644 --- a/src/index.css +++ b/src/index.css @@ -5,4 +5,15 @@ body { background-color: #0f0f0f; color: #f5f5f5; font-family: system-ui, -apple-system, sans-serif; + /* ponytail: mobile PWA full-bleed bg with content cleared from notch / home indicator. viewport-fit=cover lets bg extend under insets; app-shell pads content back in. */ + overscroll-behavior: none; + -webkit-tap-highlight-color: transparent; +} + +.app-shell { + padding: + max(0.75rem, env(safe-area-inset-top)) + max(0.75rem, env(safe-area-inset-right)) + max(0.75rem, env(safe-area-inset-bottom)) + max(0.75rem, env(safe-area-inset-left)); } diff --git a/vite.config.js b/vite.config.js index beb4b29..aa3d08d 100644 --- a/vite.config.js +++ b/vite.config.js @@ -1,9 +1,37 @@ import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' import tailwindcss from '@tailwindcss/vite' +import { VitePWA } from 'vite-plugin-pwa' export default defineConfig({ - plugins: [react(), tailwindcss()], + plugins: [ + react(), + tailwindcss(), + VitePWA({ + registerType: 'autoUpdate', + includeAssets: ['apple-touch-icon.png', 'icon-192.png', 'icon-512.png'], + manifest: { + name: 'JamBuddy — WhatTheFlat', + short_name: 'JamBuddy', + description: 'Real-time key and chord detection for live jams.', + theme_color: '#0f0f0f', + background_color: '#0f0f0f', + display: 'standalone', + orientation: 'any', + start_url: './', + scope: './', + icons: [ + { src: 'icon-192.png', sizes: '192x192', type: 'image/png', purpose: 'any' }, + { src: 'icon-512.png', sizes: '512x512', type: 'image/png', purpose: 'any' }, + { src: 'icon-512-maskable.png', sizes: '512x512', type: 'image/png', purpose: 'maskable' }, + ], + }, + workbox: { + globPatterns: ['**/*.{js,css,html,svg,png,ico,woff2,webmanifest}'], + navigateFallback: 'index.html', + }, + }), + ], base: './', // relative paths so Electron can load files from disk server: { port: 5173, @@ -11,4 +39,4 @@ export default defineConfig({ build: { outDir: 'dist', }, -}) +}) \ No newline at end of file