diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..6682bcc --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,9 @@ +# Code Owners for Notice +# These owners will be requested for review when someone opens a pull request. + +# Global owners - will be requested for review on all PRs +* @whyash5114 + +# Specific paths can have different owners +# /android/ @android-expert +# /src/lib/components/ @ui-team diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md new file mode 100644 index 0000000..88d8fb8 --- /dev/null +++ b/.github/CONTRIBUTING.md @@ -0,0 +1,226 @@ +# Contributing to Notice + +First off, thank you for considering contributing to Notice! 🎉 + +Notice is a privacy-focused notification history app, and we're excited to have you help make it better. This document provides guidelines for contributing to the project. + +## Table of Contents + +- [Code of Conduct](#code-of-conduct) +- [Getting Started](#getting-started) +- [Development Setup](#development-setup) +- [How to Contribute](#how-to-contribute) +- [Privacy Guidelines](#privacy-guidelines) +- [Coding Standards](#coding-standards) +- [Commit Messages](#commit-messages) +- [Pull Request Process](#pull-request-process) + +## Code of Conduct + +By participating in this project, you agree to maintain a welcoming and inclusive environment. Please be respectful and constructive in all interactions. + +## Getting Started + +1. **Fork the repository** on GitHub +2. **Clone your fork** locally: + ```sh + git clone https://github.com/YOUR_USERNAME/notice.git + cd notice + ``` +3. **Add the upstream remote**: + ```sh + git remote add upstream https://github.com/whyash5114/notice.git + ``` + +## Development Setup + +### Prerequisites + +- Node.js v18 or higher +- pnpm (preferred package manager) +- Android Studio (for Android development) + +### Installation + +1. Install dependencies: + ```sh + pnpm install + ``` + +2. Start the development server: + ```sh + pnpm dev + ``` + +3. For Android development: + ```sh + # Build and sync with Capacitor + pnpm build + pnpm prepare + + # Open in Android Studio + npx cap open android + ``` + +### Available Scripts + +| Command | Description | +|---------|-------------| +| `pnpm dev` | Start development server | +| `pnpm build` | Create production build | +| `pnpm preview` | Preview production build | +| `pnpm check` | Run TypeScript type checking | +| `pnpm lint` | Run ESLint and Prettier checks | +| `pnpm format` | Format code with Prettier | + +## How to Contribute + +### Reporting Bugs + +- Use the [bug report template](https://github.com/whyash5114/notice/issues/new?template=bug_report.yml) +- Include your Android version, device model, and app version +- Provide clear steps to reproduce the issue +- Include screenshots if applicable + +### Suggesting Features + +- Use the [feature request template](https://github.com/whyash5114/notice/issues/new?template=feature_request.yml) +- Explain the problem your feature would solve +- Consider the privacy implications of your suggestion + +### Submitting Code + +1. Create a new branch for your feature/fix: + ```sh + git checkout -b feature/your-feature-name + # or + git checkout -b fix/your-bug-fix + ``` + +2. Make your changes and commit them (see [Commit Messages](#commit-messages)) + +3. Push to your fork: + ```sh + git push origin feature/your-feature-name + ``` + +4. Open a Pull Request against the `main` branch + +## Privacy Guidelines + +**This is critical.** Notice is built on a foundation of privacy and transparency. All contributions must adhere to these principles: + +### ✅ DO + +- Keep all data processing on-device +- Use Capacitor APIs that don't require network access +- Document any permissions your feature requires +- Consider the minimal data needed for functionality + +### ❌ DON'T + +- Add any analytics, tracking, or telemetry +- Make network requests (unless for explicitly opt-in future features) +- Include third-party SDKs that collect data +- Store user data outside the device +- Add dependencies that phone home + +If your feature requires network access, it must be: +1. Clearly opt-in +2. Documented in the PR +3. Discussed with maintainers first + +## Coding Standards + +### TypeScript + +- Use TypeScript for all new code +- Avoid `any` types; use proper typing +- Use interfaces for object shapes + +### Svelte + +- Follow Svelte 5 best practices +- Use runes ($state, $derived, $effect) appropriately +- Keep components focused and reusable + +### Styling + +- Use Tailwind CSS for styling +- Follow the existing design patterns +- Ensure accessibility (proper contrast, focus states, etc.) + +### Code Quality + +Before submitting, ensure: + +```sh +# No type errors +pnpm check + +# No lint errors +pnpm lint + +# Code is formatted +pnpm format +``` + +## Commit Messages + +We follow [Conventional Commits](https://www.conventionalcommits.org/): + +``` +(): + +[optional body] + +[optional footer(s)] +``` + +### Types + +- `feat`: New feature +- `fix`: Bug fix +- `docs`: Documentation changes +- `style`: Code style changes (formatting, etc.) +- `refactor`: Code refactoring +- `perf`: Performance improvements +- `test`: Adding or updating tests +- `chore`: Build process, dependencies, etc. + +### Examples + +``` +feat(notifications): add search functionality + +fix(ui): correct dark mode colors on settings page + +docs: update contributing guidelines + +chore(deps): update svelte to v5.45 +``` + +## Pull Request Process + +1. **Ensure your PR**: + - Has a clear title and description + - References any related issues + - Passes all CI checks + - Has been tested on Android + +2. **Review Process**: + - A maintainer will review your PR + - Address any requested changes + - Once approved, a maintainer will merge it + +3. **After Merge**: + - Delete your branch + - Sync your fork with upstream + +## Questions? + +Feel free to: +- Open a [Discussion](https://github.com/whyash5114/notice/discussions) +- Ask questions in your PR or issue + +Thank you for contributing to Notice! 🙏 diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..65498f2 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,4 @@ +# These are supported funding model platforms + +github: whyash5114 +buy_me_a_coffee: whyash5114 diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..1986095 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,88 @@ +name: 🐛 Bug Report +description: Report a bug or unexpected behavior +title: "[Bug]: " +labels: ["bug", "triage"] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to fill out this bug report! + Please provide as much detail as possible to help us fix the issue. + + - type: checkboxes + id: existing-issue + attributes: + label: Is there an existing issue for this? + description: Please search to see if an issue already exists for the bug you encountered. + options: + - label: I have searched the existing issues + required: true + + - type: textarea + id: description + attributes: + label: Bug Description + description: A clear and concise description of what the bug is. + placeholder: Tell us what happened... + validations: + required: true + + - type: textarea + id: steps + attributes: + label: Steps to Reproduce + description: Steps to reproduce the behavior. + placeholder: | + 1. Go to '...' + 2. Click on '...' + 3. Scroll down to '...' + 4. See error + validations: + required: true + + - type: textarea + id: expected + attributes: + label: Expected Behavior + description: A clear and concise description of what you expected to happen. + validations: + required: true + + - type: textarea + id: screenshots + attributes: + label: Screenshots + description: If applicable, add screenshots to help explain your problem. + + - type: input + id: android-version + attributes: + label: Android Version + description: What version of Android are you using? + placeholder: "e.g., Android 14" + validations: + required: true + + - type: input + id: device + attributes: + label: Device + description: What device are you using? + placeholder: "e.g., Samsung Galaxy S24, Pixel 8" + validations: + required: true + + - type: input + id: app-version + attributes: + label: App Version + description: What version of Notice are you using? + placeholder: "e.g., 1.0.0" + validations: + required: true + + - type: textarea + id: additional + attributes: + label: Additional Context + description: Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..4cc5629 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,8 @@ +blank_issues_enabled: false +contact_links: + - name: 💬 Discussions + url: https://github.com/whyash5114/notice/discussions + about: Have a question or want to discuss something? Start a discussion! + - name: 📖 Documentation + url: https://github.com/whyash5114/notice#readme + about: Check the README for documentation and setup instructions. diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000..1c4f07a --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,61 @@ +name: ✨ Feature Request +description: Suggest an idea or enhancement for Notice +title: "[Feature]: " +labels: ["enhancement"] +body: + - type: markdown + attributes: + value: | + Thanks for suggesting a new feature! Please fill out the form below. + Remember that Notice is designed to be simple and privacy-focused. + + - type: checkboxes + id: existing-issue + attributes: + label: Is there an existing issue for this? + description: Please search to see if a feature request already exists. + options: + - label: I have searched the existing issues + required: true + + - type: textarea + id: problem + attributes: + label: Problem Statement + description: Is your feature request related to a problem? Please describe. + placeholder: A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + validations: + required: true + + - type: textarea + id: solution + attributes: + label: Proposed Solution + description: Describe the solution you'd like. + placeholder: A clear and concise description of what you want to happen. + validations: + required: true + + - type: textarea + id: alternatives + attributes: + label: Alternatives Considered + description: Describe any alternative solutions or features you've considered. + + - type: dropdown + id: privacy-impact + attributes: + label: Privacy Impact + description: Does this feature require any data collection, network access, or third-party services? + options: + - "No - Fully offline, no data collection" + - "Optional - User can opt-in" + - "Yes - Requires network/data access" + validations: + required: true + + - type: textarea + id: additional + attributes: + label: Additional Context + description: Add any other context, mockups, or screenshots about the feature request here. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..3f8505f --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,48 @@ +## Description + + + +Fixes # (issue) + +## Type of Change + + + +- [ ] 🐛 Bug fix (non-breaking change which fixes an issue) +- [ ] ✨ New feature (non-breaking change which adds functionality) +- [ ] 💥 Breaking change (fix or feature that would cause existing functionality to not work as expected) +- [ ] 📝 Documentation update +- [ ] 🎨 Style/UI update +- [ ] ♻️ Code refactoring (no functional changes) +- [ ] ⚡ Performance improvement +- [ ] 🔧 Configuration/build changes + +## Privacy Checklist + + + +- [ ] No new network requests or internet connectivity added +- [ ] No analytics, tracking, or data collection added +- [ ] No third-party services that transmit user data +- [ ] User data stays on device + +## Testing + + + +- [ ] I have tested on Android device/emulator +- [ ] I have tested the web development build +- [ ] My changes don't break any existing functionality + +## Screenshots (if applicable) + + + +## Checklist + +- [ ] My code follows the style guidelines of this project +- [ ] I have performed a self-review of my own code +- [ ] I have commented my code, particularly in hard-to-understand areas +- [ ] I have made corresponding changes to the documentation +- [ ] My changes generate no new warnings +- [ ] I have run `pnpm lint` and `pnpm check` successfully diff --git a/.github/SECURITY.md b/.github/SECURITY.md new file mode 100644 index 0000000..8161432 --- /dev/null +++ b/.github/SECURITY.md @@ -0,0 +1,98 @@ +# Security Policy + +## Supported Versions + +We release patches for security vulnerabilities in the following versions: + +| Version | Supported | +| ------- | ------------------ | +| latest | :white_check_mark: | +| < latest| :x: | + +We recommend always using the latest version of Notice from the [Google Play Store](https://play.google.com/store/apps/details?id=com.whyash5114.notice) or building from the latest source. + +## Reporting a Vulnerability + +We take security seriously at Notice. If you discover a security vulnerability, please report it responsibly. + +### How to Report + +**Please do NOT report security vulnerabilities through public GitHub issues.** + +Instead, please report them via email to the repository owner or through GitHub's private vulnerability reporting feature: + +1. Go to the [Security tab](https://github.com/whyash5114/notice/security) of this repository +2. Click "Report a vulnerability" +3. Fill out the form with details about the vulnerability + +### What to Include + +Please include the following information: + +- Type of vulnerability (e.g., data exposure, permission bypass, etc.) +- Full path of the affected source file(s) +- Step-by-step instructions to reproduce the issue +- Proof-of-concept or exploit code (if possible) +- Impact assessment + +### Response Timeline + +- **Initial Response**: Within 48 hours +- **Status Update**: Within 7 days +- **Resolution Target**: Within 30 days (depending on complexity) + +### What to Expect + +1. **Acknowledgment**: We'll confirm receipt of your report +2. **Investigation**: We'll investigate and validate the issue +3. **Updates**: We'll keep you informed of our progress +4. **Fix**: We'll work on a fix and coordinate disclosure +5. **Credit**: With your permission, we'll credit you in the release notes + +## Security Considerations + +### Privacy by Design + +Notice is built with privacy as a core principle: + +- **No Network Access**: The app does not connect to the internet +- **On-Device Storage**: All data remains on your device +- **No Analytics**: No tracking, telemetry, or data collection +- **Open Source**: Full transparency through open source code + +### Permissions + +Notice requires the following Android permissions: + +- **Notification Listener**: Required to read notification history +- **Storage** (optional): Only if you choose to export data + +### Data Handling + +- Notification data is processed and stored locally only +- No data is transmitted to external servers +- Users have full control over their data + +## Security Best Practices for Contributors + +If you're contributing to Notice: + +1. **Never add network capabilities** without explicit approval +2. **Never add analytics or tracking** of any kind +3. **Review dependencies** for security issues before adding +4. **Follow secure coding practices** +5. **Keep dependencies updated** to patch known vulnerabilities + +## Third-Party Dependencies + +We regularly audit our dependencies for security vulnerabilities using: +- GitHub Dependabot alerts +- npm/pnpm audit + +## Contact + +For security concerns, you can also reach out through: +- [GitHub Security Advisories](https://github.com/whyash5114/notice/security/advisories) +- Opening a private security report on GitHub + +Thank you for helping keep Notice secure! 🔒 diff --git a/.github/SUPPORT.md b/.github/SUPPORT.md new file mode 100644 index 0000000..376326f --- /dev/null +++ b/.github/SUPPORT.md @@ -0,0 +1,48 @@ +# Support + +Thank you for using Notice! Here's how to get help. + +## 📖 Documentation + +Before seeking support, please check: + +- [README](https://github.com/whyash5114/notice#readme) - Installation and setup guide +- [Contributing Guide](CONTRIBUTING.md) - For developers + +## 🐛 Found a Bug? + +If you've found a bug, please [open an issue](https://github.com/whyash5114/notice/issues/new?template=bug_report.yml) using the bug report template. + +**Before opening a new issue:** +1. Search [existing issues](https://github.com/whyash5114/notice/issues) to avoid duplicates +2. Make sure you're using the latest version +3. Include your Android version and device model + +## 💡 Feature Requests + +Have an idea for a new feature? [Open a feature request](https://github.com/whyash5114/notice/issues/new?template=feature_request.yml)! + +Remember that Notice is designed to be simple and privacy-focused, so please consider these principles in your request. + +## 💬 Questions & Discussions + +For general questions, ideas, or discussions: + +- [GitHub Discussions](https://github.com/whyash5114/notice/discussions) + +## ☕ Support the Project + +If you find Notice useful, consider supporting its development: + +- ⭐ [Star on GitHub](https://github.com/whyash5114/notice) +- ☕ [Buy Me a Coffee](https://buymeacoffee.com/whyash5114) +- ❤️ [Sponsor on GitHub](https://github.com/sponsors/whyash5114) +- 📱 [Rate on Play Store](https://play.google.com/store/apps/details?id=com.whyash5114.notice) + +## 🔒 Security Issues + +For security vulnerabilities, please see our [Security Policy](SECURITY.md) and report them responsibly. + +--- + +We're a small open-source project and response times may vary. Thank you for your patience! 🙏 diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..b400a94 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,54 @@ +# Dependabot configuration +# https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file + +version: 2 +updates: + # JavaScript/TypeScript dependencies (npm/pnpm) + - package-ecosystem: "npm" + directory: "/" + schedule: + interval: "weekly" + day: "monday" + open-pull-requests-limit: 10 + commit-message: + prefix: "chore(deps)" + labels: + - "dependencies" + - "javascript" + groups: + # Group minor and patch updates together + dev-dependencies: + dependency-type: "development" + update-types: + - "minor" + - "patch" + prod-dependencies: + dependency-type: "production" + update-types: + - "minor" + - "patch" + + # GitHub Actions + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" + day: "monday" + commit-message: + prefix: "chore(ci)" + labels: + - "dependencies" + - "github-actions" + + # Gradle dependencies (Android) + - package-ecosystem: "gradle" + directory: "/android" + schedule: + interval: "weekly" + day: "monday" + open-pull-requests-limit: 5 + commit-message: + prefix: "chore(android)" + labels: + - "dependencies" + - "android" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..68fbe5f --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,92 @@ +name: CI + +on: + push: + branches: [main] + pull_request: + branches: [main] + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + check: + name: Type Check + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup pnpm + uses: pnpm/action-setup@v4 + with: + version: 9 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: 'pnpm' + + - name: Install dependencies + run: pnpm install --frozen-lockfile + + - name: Run type check + run: pnpm check + + lint: + name: Lint + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup pnpm + uses: pnpm/action-setup@v4 + with: + version: 9 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: 'pnpm' + + - name: Install dependencies + run: pnpm install --frozen-lockfile + + - name: Run linter + run: pnpm lint + + build: + name: Build + runs-on: ubuntu-latest + needs: [check, lint] + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup pnpm + uses: pnpm/action-setup@v4 + with: + version: 9 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: 'pnpm' + + - name: Install dependencies + run: pnpm install --frozen-lockfile + + - name: Build + run: pnpm build + + - name: Upload build artifacts + uses: actions/upload-artifact@v4 + with: + name: build + path: build/ + retention-days: 7 diff --git a/README.md b/README.md index a9b845f..2796e29 100644 --- a/README.md +++ b/README.md @@ -80,7 +80,7 @@ If you find Notice useful, consider supporting its development: - ☕ [Buy Me a Coffee](https://buymeacoffee.com/whyash5114) - ❤️ [Sponsor on GitHub](https://github.com/sponsors/whyash5114) - ⭐ [Star on GitHub](https://github.com/whyash5114/notice) -- 📱 [Rate on Play Store](https://play.google.com/store/apps/details?id=com.notice.app) +- 📱 [Rate on Play Store](https://play.google.com/store/apps/details?id=com.whyash5114.notice) Your support helps keep this project maintained and improved! diff --git a/package.json b/package.json index ea4de5f..3ce54e0 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "@tailwindcss/typography": "^0.5.19", "@tailwindcss/vite": "^4.1.17", "@types/culori": "^4.0.1", - "@types/node": "^22.19.1", + "@types/node": "^24.10.1", "@types/papaparse": "^5.5.0", "bits-ui": "^2.14.4", "clsx": "^2.1.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9d0d1a2..6345348 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -38,7 +38,7 @@ importers: devDependencies: '@capacitor/assets': specifier: ^3.0.5 - version: 3.0.5(@types/node@22.19.1)(typescript@5.9.3) + version: 3.0.5(@types/node@24.10.1)(typescript@5.9.3) '@capacitor/cli': specifier: ^7.4.4 version: 7.4.4 @@ -56,31 +56,31 @@ importers: version: 0.544.0(svelte@5.45.2) '@sveltejs/adapter-static': specifier: ^3.0.10 - version: 3.0.10(@sveltejs/kit@2.49.0(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.45.2)(vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2)(vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2))) + version: 3.0.10(@sveltejs/kit@2.49.0(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.45.2)(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2)(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2))) '@sveltejs/kit': specifier: ^2.49.0 - version: 2.49.0(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.45.2)(vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2)(vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2)) + version: 2.49.0(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.45.2)(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2)(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)) '@sveltejs/vite-plugin-svelte': specifier: ^6.2.1 - version: 6.2.1(svelte@5.45.2)(vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2)) + version: 6.2.1(svelte@5.45.2)(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)) '@tailwindcss/typography': specifier: ^0.5.19 version: 0.5.19(tailwindcss@4.1.17) '@tailwindcss/vite': specifier: ^4.1.17 - version: 4.1.17(vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2)) + version: 4.1.17(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)) '@types/culori': specifier: ^4.0.1 version: 4.0.1 '@types/node': - specifier: ^22.19.1 - version: 22.19.1 + specifier: ^24.10.1 + version: 24.10.1 '@types/papaparse': specifier: ^5.5.0 version: 5.5.0 bits-ui: specifier: ^2.14.4 - version: 2.14.4(@internationalized/date@3.10.0)(@sveltejs/kit@2.49.0(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.45.2)(vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2)(vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2) + version: 2.14.4(@internationalized/date@3.10.0)(@sveltejs/kit@2.49.0(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.45.2)(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2)(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2) clsx: specifier: ^2.1.1 version: 2.1.1 @@ -92,7 +92,7 @@ importers: version: 10.1.8(eslint@9.39.1(jiti@2.6.1)) eslint-plugin-svelte: specifier: ^3.13.0 - version: 3.13.0(eslint@9.39.1(jiti@2.6.1))(svelte@5.45.2)(ts-node@10.9.2(@types/node@22.19.1)(typescript@5.9.3)) + version: 3.13.0(eslint@9.39.1(jiti@2.6.1))(svelte@5.45.2)(ts-node@10.9.2(@types/node@24.10.1)(typescript@5.9.3)) globals: specifier: ^16.5.0 version: 16.5.0 @@ -137,10 +137,10 @@ importers: version: 8.48.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) vite: specifier: ^7.2.4 - version: 7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2) + version: 7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2) vite-plugin-devtools-json: specifier: ^1.0.0 - version: 1.0.0(vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2)) + version: 1.0.0(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)) packages: @@ -822,8 +822,8 @@ packages: '@types/minimist@1.2.5': resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} - '@types/node@22.19.1': - resolution: {integrity: sha512-LCCV0HdSZZZb34qifBsyWlUmok6W7ouER+oQIGBScS8EsZsQbrtFTUrDX4hOl+CS6p7cnNC4td+qrSVGSCTUfQ==} + '@types/node@24.10.1': + resolution: {integrity: sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -2873,8 +2873,8 @@ packages: engines: {node: '>=0.8.0'} hasBin: true - undici-types@6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + undici-types@7.16.0: + resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} unique-string@2.0.0: resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} @@ -3095,12 +3095,12 @@ snapshots: dependencies: '@capacitor/core': 7.4.4 - '@capacitor/assets@3.0.5(@types/node@22.19.1)(typescript@5.9.3)': + '@capacitor/assets@3.0.5(@types/node@24.10.1)(typescript@5.9.3)': dependencies: '@capacitor/cli': 5.7.8 '@ionic/utils-array': 2.1.6 '@ionic/utils-fs': 3.1.7 - '@trapezedev/project': 7.1.3(@types/node@22.19.1)(typescript@5.9.3) + '@trapezedev/project': 7.1.3(@types/node@24.10.1)(typescript@5.9.3) commander: 8.3.0 debug: 4.3.4 fs-extra: 10.1.0 @@ -3597,15 +3597,15 @@ snapshots: dependencies: acorn: 8.15.0 - '@sveltejs/adapter-static@3.0.10(@sveltejs/kit@2.49.0(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.45.2)(vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2)(vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2)))': + '@sveltejs/adapter-static@3.0.10(@sveltejs/kit@2.49.0(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.45.2)(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2)(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)))': dependencies: - '@sveltejs/kit': 2.49.0(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.45.2)(vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2)(vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2)) + '@sveltejs/kit': 2.49.0(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.45.2)(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2)(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)) - '@sveltejs/kit@2.49.0(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.45.2)(vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2)(vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2))': + '@sveltejs/kit@2.49.0(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.45.2)(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2)(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2))': dependencies: '@standard-schema/spec': 1.0.0 '@sveltejs/acorn-typescript': 1.0.7(acorn@8.15.0) - '@sveltejs/vite-plugin-svelte': 6.2.1(svelte@5.45.2)(vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2)) + '@sveltejs/vite-plugin-svelte': 6.2.1(svelte@5.45.2)(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)) '@types/cookie': 0.6.0 acorn: 8.15.0 cookie: 0.6.0 @@ -3618,26 +3618,26 @@ snapshots: set-cookie-parser: 2.7.2 sirv: 3.0.2 svelte: 5.45.2 - vite: 7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2) + vite: 7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2) - '@sveltejs/vite-plugin-svelte-inspector@5.0.1(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.45.2)(vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2)(vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2))': + '@sveltejs/vite-plugin-svelte-inspector@5.0.1(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.45.2)(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2)(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2))': dependencies: - '@sveltejs/vite-plugin-svelte': 6.2.1(svelte@5.45.2)(vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2)) + '@sveltejs/vite-plugin-svelte': 6.2.1(svelte@5.45.2)(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)) debug: 4.4.3 svelte: 5.45.2 - vite: 7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2) + vite: 7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.45.2)(vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2))': + '@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.45.2)(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 5.0.1(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.45.2)(vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2)(vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2)) + '@sveltejs/vite-plugin-svelte-inspector': 5.0.1(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.45.2)(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2)(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)) debug: 4.4.3 deepmerge: 4.3.1 magic-string: 0.30.21 svelte: 5.45.2 - vite: 7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2) - vitefu: 1.1.1(vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2)) + vite: 7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2) + vitefu: 1.1.1(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)) transitivePeerDependencies: - supports-color @@ -3711,16 +3711,16 @@ snapshots: postcss-selector-parser: 6.0.10 tailwindcss: 4.1.17 - '@tailwindcss/vite@4.1.17(vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2))': + '@tailwindcss/vite@4.1.17(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2))': dependencies: '@tailwindcss/node': 4.1.17 '@tailwindcss/oxide': 4.1.17 tailwindcss: 4.1.17 - vite: 7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2) + vite: 7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2) '@trapezedev/gradle-parse@7.1.3': {} - '@trapezedev/project@7.1.3(@types/node@22.19.1)(typescript@5.9.3)': + '@trapezedev/project@7.1.3(@types/node@24.10.1)(typescript@5.9.3)': dependencies: '@ionic/utils-fs': 3.1.7 '@ionic/utils-subprocess': 2.1.14 @@ -3742,7 +3742,7 @@ snapshots: replace: 1.2.2 tempy: 1.0.1 tmp: 0.2.5 - ts-node: 10.9.2(@types/node@22.19.1)(typescript@5.9.3) + ts-node: 10.9.2(@types/node@24.10.1)(typescript@5.9.3) xcode: 3.0.1 xml-js: 1.6.11 xpath: 0.0.32 @@ -3770,21 +3770,21 @@ snapshots: '@types/fs-extra@8.1.5': dependencies: - '@types/node': 22.19.1 + '@types/node': 24.10.1 '@types/json-schema@7.0.15': {} '@types/minimist@1.2.5': {} - '@types/node@22.19.1': + '@types/node@24.10.1': dependencies: - undici-types: 6.21.0 + undici-types: 7.16.0 '@types/normalize-package-data@2.4.4': {} '@types/papaparse@5.5.0': dependencies: - '@types/node': 22.19.1 + '@types/node': 24.10.1 '@types/slice-ansi@4.0.0': {} @@ -3992,15 +3992,15 @@ snapshots: big-integer@1.6.52: {} - bits-ui@2.14.4(@internationalized/date@3.10.0)(@sveltejs/kit@2.49.0(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.45.2)(vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2)(vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2): + bits-ui@2.14.4(@internationalized/date@3.10.0)(@sveltejs/kit@2.49.0(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.45.2)(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2)(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2): dependencies: '@floating-ui/core': 1.7.3 '@floating-ui/dom': 1.7.4 '@internationalized/date': 3.10.0 esm-env: 1.2.2 - runed: 0.35.1(@sveltejs/kit@2.49.0(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.45.2)(vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2)(vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2) + runed: 0.35.1(@sveltejs/kit@2.49.0(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.45.2)(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2)(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2) svelte: 5.45.2 - svelte-toolbelt: 0.10.6(@sveltejs/kit@2.49.0(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.45.2)(vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2)(vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2) + svelte-toolbelt: 0.10.6(@sveltejs/kit@2.49.0(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.45.2)(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2)(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2) tabbable: 6.3.0 transitivePeerDependencies: - '@sveltejs/kit' @@ -4413,7 +4413,7 @@ snapshots: dependencies: eslint: 9.39.1(jiti@2.6.1) - eslint-plugin-svelte@3.13.0(eslint@9.39.1(jiti@2.6.1))(svelte@5.45.2)(ts-node@10.9.2(@types/node@22.19.1)(typescript@5.9.3)): + eslint-plugin-svelte@3.13.0(eslint@9.39.1(jiti@2.6.1))(svelte@5.45.2)(ts-node@10.9.2(@types/node@24.10.1)(typescript@5.9.3)): dependencies: '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.1(jiti@2.6.1)) '@jridgewell/sourcemap-codec': 1.5.5 @@ -4422,7 +4422,7 @@ snapshots: globals: 16.5.0 known-css-properties: 0.37.0 postcss: 8.5.6 - postcss-load-config: 3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.19.1)(typescript@5.9.3)) + postcss-load-config: 3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.10.1)(typescript@5.9.3)) postcss-safe-parser: 7.0.1(postcss@8.5.6) semver: 7.7.3 svelte-eslint-parser: 1.4.0(svelte@5.45.2) @@ -5207,13 +5207,13 @@ snapshots: base64-js: 1.5.1 xmlbuilder: 15.1.1 - postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.19.1)(typescript@5.9.3)): + postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.10.1)(typescript@5.9.3)): dependencies: lilconfig: 2.1.0 yaml: 1.10.2 optionalDependencies: postcss: 8.5.6 - ts-node: 10.9.2(@types/node@22.19.1)(typescript@5.9.3) + ts-node: 10.9.2(@types/node@24.10.1)(typescript@5.9.3) postcss-safe-parser@7.0.1(postcss@8.5.6): dependencies: @@ -5427,14 +5427,14 @@ snapshots: esm-env: 1.2.2 svelte: 5.45.2 - runed@0.35.1(@sveltejs/kit@2.49.0(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.45.2)(vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2)(vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2): + runed@0.35.1(@sveltejs/kit@2.49.0(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.45.2)(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2)(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2): dependencies: dequal: 2.0.3 esm-env: 1.2.2 lz-string: 1.5.0 svelte: 5.45.2 optionalDependencies: - '@sveltejs/kit': 2.49.0(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.45.2)(vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2)(vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2)) + '@sveltejs/kit': 2.49.0(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.45.2)(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2)(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)) sade@1.8.1: dependencies: @@ -5628,10 +5628,10 @@ snapshots: runed: 0.28.0(svelte@5.45.2) svelte: 5.45.2 - svelte-toolbelt@0.10.6(@sveltejs/kit@2.49.0(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.45.2)(vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2)(vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2): + svelte-toolbelt@0.10.6(@sveltejs/kit@2.49.0(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.45.2)(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2)(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2): dependencies: clsx: 2.1.1 - runed: 0.35.1(@sveltejs/kit@2.49.0(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.45.2)(vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2)(vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2) + runed: 0.35.1(@sveltejs/kit@2.49.0(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.45.2)(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2)(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.45.2) style-to-object: 1.0.14 svelte: 5.45.2 transitivePeerDependencies: @@ -5773,14 +5773,14 @@ snapshots: dependencies: typescript: 5.9.3 - ts-node@10.9.2(@types/node@22.19.1)(typescript@5.9.3): + ts-node@10.9.2(@types/node@24.10.1)(typescript@5.9.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.12 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.19.1 + '@types/node': 24.10.1 acorn: 8.15.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -5829,7 +5829,7 @@ snapshots: uglify-js@3.19.3: optional: true - undici-types@6.21.0: {} + undici-types@7.16.0: {} unique-string@2.0.0: dependencies: @@ -5856,12 +5856,12 @@ snapshots: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 - vite-plugin-devtools-json@1.0.0(vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2)): + vite-plugin-devtools-json@1.0.0(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)): dependencies: uuid: 11.1.0 - vite: 7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2) + vite: 7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2) - vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2): + vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2): dependencies: esbuild: 0.25.12 fdir: 6.5.0(picomatch@4.0.3) @@ -5870,14 +5870,14 @@ snapshots: rollup: 4.53.3 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 22.19.1 + '@types/node': 24.10.1 fsevents: 2.3.3 jiti: 2.6.1 lightningcss: 1.30.2 - vitefu@1.1.1(vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2)): + vitefu@1.1.1(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)): optionalDependencies: - vite: 7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2) + vite: 7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2) webidl-conversions@3.0.1: {}