diff --git a/.github/actions/deploy-to-cloudflare-pages/action.yml b/.github/actions/deploy-to-cloudflare-pages/action.yml new file mode 100644 index 000000000..4f7a4a177 --- /dev/null +++ b/.github/actions/deploy-to-cloudflare-pages/action.yml @@ -0,0 +1,103 @@ +name: "Deploy to Cloudflare Pages" +description: "Deploys to Cloudflare Pages on either a temporary branch with preview comment, or on the production version if on the main branch." +inputs: + project_name: + description: "CloudFlare Pages project name" + comment_body: + description: "The message to display when deployment is ready" + default: "Deployment is ready." + required: false + production_url: + description: "The URL to mention as the production URL." + required: true + deploy_dir: + description: "The directory from which to deploy." + required: true + cloudflare_api_token: + description: "The Cloudflare API token to use for deployment." + required: true + cloudflare_account_id: + description: "The Cloudflare account ID to use for deployment." + required: true + github_token: + description: "The GitHub token to use for posting PR comments." + required: true +runs: + using: composite + steps: + # Install wrangler globally to avoid workspace issues + - name: Install Wrangler + shell: bash + run: npm install -g wrangler + + # Deploy using Wrangler (use pre-installed wrangler) + - name: Deploy to Cloudflare Pages + id: deploy + if: github.event_name == 'push' || github.event_name == 'workflow_dispatch' + uses: cloudflare/wrangler-action@v3 + with: + apiToken: ${{ inputs.cloudflare_api_token }} + accountId: ${{ inputs.cloudflare_account_id }} + command: pages deploy ${{ inputs.deploy_dir }} --project-name=${{ inputs.project_name}} --branch=${{ github.ref_name }} + wranglerVersion: '' # Use pre-installed version + + # Deploy preview for PRs + - name: Deploy Preview to Cloudflare Pages + id: preview-deployment + if: github.event_name == 'pull_request' + uses: cloudflare/wrangler-action@v3 + with: + apiToken: ${{ inputs.cloudflare_api_token }} + accountId: ${{ inputs.cloudflare_account_id }} + command: pages deploy ${{ inputs.deploy_dir }} --project-name=${{ inputs.project_name}} --branch=pr-${{ github.event.pull_request.number }} + wranglerVersion: '' # Use pre-installed version + + # Post deployment URL as PR comment + - name: Comment PR with Preview URL + if: github.event_name == 'pull_request' + uses: actions/github-script@v8 + env: + COMMENT_BODY: ${{ inputs.comment_body }} + PRODUCTION_URL: ${{ inputs.production_url }} + PROJECT_NAME: ${{ inputs.project_name }} + with: + github-token: ${{ inputs.github_token }} + script: | + const prNumber = context.issue.number; + // Construct preview URL based on Cloudflare Pages pattern + const projectName = process.env.PROJECT_NAME; + const previewUrl = `https://pr-${prNumber}.${projectName}.pages.dev`; + + // Check if we already commented + const comments = await github.rest.issues.listComments({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: prNumber + }); + + const customMessage = process.env.COMMENT_BODY; + const botComment = comments.data.find(comment => + comment.user.type === 'Bot' && + comment.body.includes(customMessage) + ); + + const mainUrl = process.env.PRODUCTION_URL; + const commentBody = `${customMessage}!\n\nšŸ”— Preview URL: ${previewUrl}\nšŸ“– Production URL: ${mainUrl}\n\nāœ… All checks passed\n\n_This preview will be updated automatically with new commits._`; + + if (botComment) { + // Update existing comment + await github.rest.issues.updateComment({ + owner: context.repo.owner, + repo: context.repo.repo, + comment_id: botComment.id, + body: commentBody + }); + } else { + // Create new comment + await github.rest.issues.createComment({ + issue_number: prNumber, + owner: context.repo.owner, + repo: context.repo.repo, + body: commentBody + }); + } diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml index b80fadb69..6abd9af47 100644 --- a/.github/workflows/deploy-docs.yml +++ b/.github/workflows/deploy-docs.yml @@ -16,10 +16,10 @@ on: - 'requirements-docs.txt' - '.github/workflows/deploy-docs.yml' - 'scripts/fix-mkdocs-structure.ts' - + # Allow manual triggering from Actions tab workflow_dispatch: - + # Run on pull requests for preview deployments pull_request: branches: @@ -38,55 +38,55 @@ jobs: name: Build and Deploy MkDocs runs-on: ubuntu-latest timeout-minutes: 10 - + # Required permissions for deployment permissions: contents: read deployments: write pull-requests: write # For PR preview comments id-token: write # For OIDC authentication (if needed) - + steps: - name: Checkout Repository uses: actions/checkout@v5 with: fetch-depth: 0 # Fetch all history for git info and mkdocs-git-revision-date plugin - + - name: Setup Python uses: actions/setup-python@v6 with: python-version: '3.13' cache: 'pip' cache-dependency-path: 'requirements-docs.txt' - + - name: Install MkDocs and Dependencies run: | pip install --upgrade pip pip install -r requirements-docs.txt env: PIP_DISABLE_PIP_VERSION_CHECK: 1 - + # Setup pnpm before fixing docs structure - name: Setup pnpm uses: pnpm/action-setup@v4 - + # Setup Node.js with pnpm - name: Setup Node.js uses: actions/setup-node@v5 with: node-version: '22' cache: 'pnpm' - + # Install Node.js dependencies for the TypeScript script - name: Install Dependencies run: | pnpm install --frozen-lockfile - + - name: Fix Documentation Structure run: | # Fix duplicate navigation entries by moving overview pages to index.md pnpm run chore:fix-mkdocs-structure - + - name: Build MkDocs Site run: | # Build with strict mode but allow expected warnings @@ -115,74 +115,14 @@ jobs: test -f site/sitemap.xml || (echo "ERROR: site/sitemap.xml not found" && exit 1) test -d site/assets || (echo "ERROR: site/assets directory not found" && exit 1) echo "āœ… Site validation passed" - - # Install wrangler globally to avoid workspace issues - - name: Install Wrangler - run: | - npm install -g wrangler - - # Deploy using Wrangler (use pre-installed wrangler) - - name: Deploy to Cloudflare Pages - id: deploy - if: github.event_name == 'push' || github.event_name == 'workflow_dispatch' - uses: cloudflare/wrangler-action@v3 + + - name: Deploy + uses: ./.github/actions/deploy-to-cloudflare-pages with: - apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} - accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} - command: pages deploy site --project-name=trilium-docs --branch=${{ github.ref_name }} - wranglerVersion: '' # Use pre-installed version - - # Deploy preview for PRs - - name: Deploy Preview to Cloudflare Pages - id: preview-deployment - if: github.event_name == 'pull_request' - uses: cloudflare/wrangler-action@v3 - with: - apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} - accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} - command: pages deploy site --project-name=trilium-docs --branch=pr-${{ github.event.pull_request.number }} - wranglerVersion: '' # Use pre-installed version - - # Post deployment URL as PR comment - - name: Comment PR with Preview URL - if: github.event_name == 'pull_request' - uses: actions/github-script@v8 - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - script: | - const prNumber = context.issue.number; - // Construct preview URL based on Cloudflare Pages pattern - const previewUrl = `https://pr-${prNumber}.trilium-docs.pages.dev`; - const mainUrl = 'https://docs.triliumnotes.org'; - - // Check if we already commented - const comments = await github.rest.issues.listComments({ - owner: context.repo.owner, - repo: context.repo.repo, - issue_number: prNumber - }); - - const botComment = comments.data.find(comment => - comment.user.type === 'Bot' && - comment.body.includes('Documentation preview is ready') - ); - - const commentBody = `šŸ“š Documentation preview is ready!\n\nšŸ”— Preview URL: ${previewUrl}\nšŸ“– Production URL: ${mainUrl}\n\nāœ… All checks passed\n\n_This preview will be updated automatically with new commits._`; - - if (botComment) { - // Update existing comment - await github.rest.issues.updateComment({ - owner: context.repo.owner, - repo: context.repo.repo, - comment_id: botComment.id, - body: commentBody - }); - } else { - // Create new comment - await github.rest.issues.createComment({ - issue_number: prNumber, - owner: context.repo.owner, - repo: context.repo.repo, - body: commentBody - }); - } + project_name: "trilium-docs" + comment_body: "šŸ“š Documentation preview is ready" + production_url: "https://docs.triliumnotes.org" + deploy_dir: "site" + cloudflare_api_token: ${{ secrets.CLOUDFLARE_API_TOKEN }} + cloudflare_account_id: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} + github_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/playwright.yml b/.github/workflows/playwright.yml index 07ad94fd7..d9da7c329 100644 --- a/.github/workflows/playwright.yml +++ b/.github/workflows/playwright.yml @@ -4,6 +4,8 @@ on: push: branches: - main + paths-ignore: + - "apps/website/**" pull_request: permissions: diff --git a/.github/workflows/website.yml b/.github/workflows/website.yml new file mode 100644 index 000000000..377c7544e --- /dev/null +++ b/.github/workflows/website.yml @@ -0,0 +1,48 @@ +name: Deploy website + +on: + push: + branches: + - main + paths: + - "apps/website/**" + + pull_request: + paths: + - "apps/website/**" + +jobs: + build-and-deploy: + runs-on: ubuntu-latest + name: Build & deploy website + + permissions: + contents: read + deployments: write + pull-requests: write # For PR preview comments + + steps: + - uses: actions/checkout@v5 + - uses: pnpm/action-setup@v4 + - name: Set up node & dependencies + uses: actions/setup-node@v5 + with: + node-version: 22 + cache: "pnpm" + + - name: Install dependencies + run: pnpm install --filter website --frozen-lockfile + + - name: Build the website + run: pnpm website:build + + - name: Deploy + uses: ./.github/actions/deploy-to-cloudflare-pages + with: + project_name: "trilium-homepage" + comment_body: "šŸ“š Website preview is ready" + production_url: "https://triliumnotes.org" + deploy_dir: "apps/website/dist" + cloudflare_api_token: ${{ secrets.CLOUDFLARE_API_TOKEN }} + cloudflare_account_id: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} + github_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/apps/desktop/tsconfig.json b/apps/desktop/tsconfig.json index 5f1b2ca98..95e7236ba 100644 --- a/apps/desktop/tsconfig.json +++ b/apps/desktop/tsconfig.json @@ -1,7 +1,7 @@ { "extends": "../../tsconfig.base.json", "files": [], - "include": [], + "include": [], "references": [ { "path": "../server" diff --git a/apps/website/.gitignore b/apps/website/.gitignore index 5a3bb8506..23f5d6425 100644 --- a/apps/website/.gitignore +++ b/apps/website/.gitignore @@ -1,28 +1,28 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + node_modules +dist +dist-ssr +*.local -# Output -.output -.vercel -.netlify -.wrangler -/.svelte-kit -/build - -# OS +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea .DS_Store -Thumbs.db +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? -# Env -.env -.env.* -!.env.example -!.env.test - -# Vite -vite.config.js.timestamp-* -vite.config.ts.timestamp-* - -# Paraglide -src/lib/paraglide - -project.inlang/cache \ No newline at end of file +*.d.ts +!types-assets.d.ts +*.map \ No newline at end of file diff --git a/apps/website/.npmrc b/apps/website/.npmrc deleted file mode 100644 index b6f27f135..000000000 --- a/apps/website/.npmrc +++ /dev/null @@ -1 +0,0 @@ -engine-strict=true diff --git a/apps/website/README.md b/apps/website/README.md index 88ad0a1c6..1ebc2149e 100644 --- a/apps/website/README.md +++ b/apps/website/README.md @@ -1,11 +1,15 @@ -# apps/website +# `create-preact` -Landing page for Trilium Notes powered by [Svelte](https://github.com/sveltejs/cli) and [Tailwind CSS](https://tailwindcss.com/). +

+ +

-## Developing +

Get started using Preact and Vite!

-To run a dev server that will hot-reload changes: `pnpm dev` +## Getting Started -## Building +- `npm run dev` - Starts a dev server at http://localhost:5173/ -To create a production build: `pnpm build` +- `npm run build` - Builds for production, emitting to `dist/`. Prerenders all found routes in app to static HTML + +- `npm run preview` - Starts a server at http://localhost:4173/ to test production build locally diff --git a/apps/website/eslint.config.js b/apps/website/eslint.config.js deleted file mode 100644 index 165237185..000000000 --- a/apps/website/eslint.config.js +++ /dev/null @@ -1,39 +0,0 @@ -import js from '@eslint/js'; -import { includeIgnoreFile } from '@eslint/compat'; -import svelte from 'eslint-plugin-svelte'; -import globals from 'globals'; -import { fileURLToPath } from 'node:url'; -import ts from 'typescript-eslint'; -import svelteConfig from './svelte.config.js'; - -const gitignorePath = fileURLToPath(new URL('./.gitignore', import.meta.url)); - -export default ts.config( - includeIgnoreFile(gitignorePath), - js.configs.recommended, - ...ts.configs.recommended, - ...svelte.configs.recommended, - { - languageOptions: { - globals: { ...globals.browser, ...globals.node } - }, - rules: { // typescript-eslint strongly recommend that you do not use the no-undef lint rule on TypeScript projects. - // see: https://typescript-eslint.io/troubleshooting/faqs/eslint/#i-get-errors-from-the-no-undef-rule-about-global-variables-not-being-defined-even-though-there-are-no-typescript-errors - "no-undef": 'off' } - }, - { - files: [ - '**/*.svelte', - '**/*.svelte.ts', - '**/*.svelte.js' - ], - languageOptions: { - parserOptions: { - projectService: true, - extraFileExtensions: ['.svelte'], - parser: ts.parser, - svelteConfig - } - } - } -); diff --git a/apps/website/index.html b/apps/website/index.html new file mode 100644 index 000000000..59b5a1e3c --- /dev/null +++ b/apps/website/index.html @@ -0,0 +1,14 @@ + + + + + + + + Trilium Notes + + +
+ + + diff --git a/apps/website/messages/en.json b/apps/website/messages/en.json deleted file mode 100644 index 37a989440..000000000 --- a/apps/website/messages/en.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "$schema": "https://inlang.com/schema/inlang-message-format", - "hello_world": "Hello, {name} from en!" -} diff --git a/apps/website/package.json b/apps/website/package.json index aa8f73e17..6258f3301 100644 --- a/apps/website/package.json +++ b/apps/website/package.json @@ -1,37 +1,25 @@ { - "name": "website", "private": true, - "version": "0.0.1", + "name": "@triliumnext/website", "type": "module", "scripts": { - "dev": "vite dev", + "dev": "vite", "build": "vite build", - "preview": "vite preview", - "prepare": "svelte-kit sync || echo ''", - "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", - "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", - "lint": "eslint ." - }, - "devDependencies": { - "@eslint/compat": "^1.2.5", - "@eslint/js": "^9.18.0", - "@sveltejs/adapter-auto": "^6.0.0", - "@sveltejs/kit": "^2.16.0", - "@sveltejs/vite-plugin-svelte": "^6.0.0", - "@tailwindcss/typography": "^0.5.15", - "@tailwindcss/vite": "^4.0.0", - "eslint": "^9.18.0", - "eslint-plugin-svelte": "^3.0.0", - "globals": "^16.0.0", - "mdsvex": "^0.12.3", - "svelte": "^5.0.0", - "svelte-check": "^4.0.0", - "tailwindcss": "^4.0.0", - "typescript": "^5.0.0", - "typescript-eslint": "^8.20.0", - "vite": "^7.0.0" + "preview": "vite preview" }, "dependencies": { - "@inlang/paraglide-js": "^2.0.0" + "preact": "^10.26.9", + "preact-iso": "^2.10.0", + "preact-render-to-string": "^6.6.1" + }, + "devDependencies": { + "@preact/preset-vite": "^2.10.2", + "eslint": "^9.36.0", + "eslint-config-preact": "^2.0.0", + "typescript": "^5.9.2", + "vite": "^7.0.4" + }, + "eslintConfig": { + "extends": "preact" } } diff --git a/apps/website/project.inlang/project_id b/apps/website/project.inlang/project_id deleted file mode 100644 index 2002b3bce..000000000 --- a/apps/website/project.inlang/project_id +++ /dev/null @@ -1 +0,0 @@ -dv1iXGpHP2mMvuQQo4 \ No newline at end of file diff --git a/apps/website/project.inlang/settings.json b/apps/website/project.inlang/settings.json deleted file mode 100644 index acfd0d3d4..000000000 --- a/apps/website/project.inlang/settings.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "$schema": "https://inlang.com/schema/project-settings", - "modules": [ - "https://cdn.jsdelivr.net/npm/@inlang/plugin-message-format@4/dist/index.js", - "https://cdn.jsdelivr.net/npm/@inlang/plugin-m-function-matcher@2/dist/index.js" - ], - "plugin.inlang.messageFormat": { - "pathPattern": "./messages/{locale}.json" - }, - "baseLocale": "en", - "locales": [ - "en" - ] -} diff --git a/apps/website/public/collection_board.webp b/apps/website/public/collection_board.webp new file mode 100644 index 000000000..6ed49dd44 Binary files /dev/null and b/apps/website/public/collection_board.webp differ diff --git a/apps/website/public/collection_calendar.webp b/apps/website/public/collection_calendar.webp new file mode 100644 index 000000000..34b7961e0 Binary files /dev/null and b/apps/website/public/collection_calendar.webp differ diff --git a/apps/website/public/collection_geomap.webp b/apps/website/public/collection_geomap.webp new file mode 100644 index 000000000..e564fbfc6 Binary files /dev/null and b/apps/website/public/collection_geomap.webp differ diff --git a/apps/website/public/collection_table.webp b/apps/website/public/collection_table.webp new file mode 100644 index 000000000..2113caf65 Binary files /dev/null and b/apps/website/public/collection_table.webp differ diff --git a/apps/website/public/screenshot_desktop_mac_dark.webp b/apps/website/public/screenshot_desktop_mac_dark.webp new file mode 100644 index 000000000..347838682 Binary files /dev/null and b/apps/website/public/screenshot_desktop_mac_dark.webp differ diff --git a/apps/website/public/screenshot_desktop_mac_light.webp b/apps/website/public/screenshot_desktop_mac_light.webp new file mode 100644 index 000000000..2415bbd3f Binary files /dev/null and b/apps/website/public/screenshot_desktop_mac_light.webp differ diff --git a/apps/website/public/screenshot_desktop_win_dark.webp b/apps/website/public/screenshot_desktop_win_dark.webp new file mode 100644 index 000000000..051d8f1c2 Binary files /dev/null and b/apps/website/public/screenshot_desktop_win_dark.webp differ diff --git a/apps/website/public/screenshot_desktop_win_light.webp b/apps/website/public/screenshot_desktop_win_light.webp new file mode 100644 index 000000000..a44801ea3 Binary files /dev/null and b/apps/website/public/screenshot_desktop_win_light.webp differ diff --git a/apps/website/public/type_canvas.webp b/apps/website/public/type_canvas.webp new file mode 100644 index 000000000..839818606 Binary files /dev/null and b/apps/website/public/type_canvas.webp differ diff --git a/apps/website/public/type_code.webp b/apps/website/public/type_code.webp new file mode 100644 index 000000000..91816541a Binary files /dev/null and b/apps/website/public/type_code.webp differ diff --git a/apps/website/public/type_file.webp b/apps/website/public/type_file.webp new file mode 100644 index 000000000..6423d4fc4 Binary files /dev/null and b/apps/website/public/type_file.webp differ diff --git a/apps/website/public/type_mermaid.webp b/apps/website/public/type_mermaid.webp new file mode 100644 index 000000000..c7c7eb3c6 Binary files /dev/null and b/apps/website/public/type_mermaid.webp differ diff --git a/apps/website/public/type_mindmap.webp b/apps/website/public/type_mindmap.webp new file mode 100644 index 000000000..23addc065 Binary files /dev/null and b/apps/website/public/type_mindmap.webp differ diff --git a/apps/website/public/type_text.webp b/apps/website/public/type_text.webp new file mode 100644 index 000000000..dd897dbca Binary files /dev/null and b/apps/website/public/type_text.webp differ diff --git a/apps/website/src/app.css b/apps/website/src/app.css deleted file mode 100644 index e6f251501..000000000 --- a/apps/website/src/app.css +++ /dev/null @@ -1,10 +0,0 @@ -@import 'tailwindcss'; -@plugin '@tailwindcss/typography'; - -main a { - text-decoration: revert; -} - -a.rounded-full, a.rounded-xl { - text-decoration: none; -} diff --git a/apps/website/src/app.d.ts b/apps/website/src/app.d.ts deleted file mode 100644 index da08e6da5..000000000 --- a/apps/website/src/app.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -// See https://svelte.dev/docs/kit/types#app.d.ts -// for information about these interfaces -declare global { - namespace App { - // interface Error {} - // interface Locals {} - // interface PageData {} - // interface PageState {} - // interface Platform {} - } -} - -export {}; diff --git a/apps/website/src/app.html b/apps/website/src/app.html deleted file mode 100644 index fee9ee80f..000000000 --- a/apps/website/src/app.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - %sveltekit.head% - - - %sveltekit.body% - - diff --git a/apps/website/src/assets/boxicons/bx-arrow-in-down-square-half.svg b/apps/website/src/assets/boxicons/bx-arrow-in-down-square-half.svg new file mode 100644 index 000000000..6f4f20ac7 --- /dev/null +++ b/apps/website/src/assets/boxicons/bx-arrow-in-down-square-half.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/website/src/assets/boxicons/bx-buy-me-a-coffee.svg b/apps/website/src/assets/boxicons/bx-buy-me-a-coffee.svg new file mode 100644 index 000000000..5e105e2f7 --- /dev/null +++ b/apps/website/src/assets/boxicons/bx-buy-me-a-coffee.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/website/src/assets/boxicons/bx-calendar.svg b/apps/website/src/assets/boxicons/bx-calendar.svg new file mode 100644 index 000000000..a9e283996 --- /dev/null +++ b/apps/website/src/assets/boxicons/bx-calendar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/website/src/assets/boxicons/bx-chevrons-up.svg b/apps/website/src/assets/boxicons/bx-chevrons-up.svg new file mode 100644 index 000000000..ffb1feeef --- /dev/null +++ b/apps/website/src/assets/boxicons/bx-chevrons-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/website/src/assets/boxicons/bx-code.svg b/apps/website/src/assets/boxicons/bx-code.svg new file mode 100644 index 000000000..56dfdf85b --- /dev/null +++ b/apps/website/src/assets/boxicons/bx-code.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/website/src/assets/boxicons/bx-columns-3.svg b/apps/website/src/assets/boxicons/bx-columns-3.svg new file mode 100644 index 000000000..646faa6da --- /dev/null +++ b/apps/website/src/assets/boxicons/bx-columns-3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/website/src/assets/boxicons/bx-discussion.svg b/apps/website/src/assets/boxicons/bx-discussion.svg new file mode 100644 index 000000000..221197340 --- /dev/null +++ b/apps/website/src/assets/boxicons/bx-discussion.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/website/src/assets/boxicons/bx-docker.svg b/apps/website/src/assets/boxicons/bx-docker.svg new file mode 100644 index 000000000..b6d925377 --- /dev/null +++ b/apps/website/src/assets/boxicons/bx-docker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/website/src/assets/boxicons/bx-extension.svg b/apps/website/src/assets/boxicons/bx-extension.svg new file mode 100644 index 000000000..92fc51472 --- /dev/null +++ b/apps/website/src/assets/boxicons/bx-extension.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/website/src/assets/boxicons/bx-file.svg b/apps/website/src/assets/boxicons/bx-file.svg new file mode 100644 index 000000000..99f70f539 --- /dev/null +++ b/apps/website/src/assets/boxicons/bx-file.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/website/src/assets/boxicons/bx-folder.svg b/apps/website/src/assets/boxicons/bx-folder.svg new file mode 100644 index 000000000..af88fa32b --- /dev/null +++ b/apps/website/src/assets/boxicons/bx-folder.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/website/src/assets/boxicons/bx-github.svg b/apps/website/src/assets/boxicons/bx-github.svg new file mode 100644 index 000000000..d027cc0db --- /dev/null +++ b/apps/website/src/assets/boxicons/bx-github.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/website/src/assets/boxicons/bx-globe.svg b/apps/website/src/assets/boxicons/bx-globe.svg new file mode 100644 index 000000000..fbd0bb711 --- /dev/null +++ b/apps/website/src/assets/boxicons/bx-globe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/website/src/assets/boxicons/bx-help-circle.svg b/apps/website/src/assets/boxicons/bx-help-circle.svg new file mode 100644 index 000000000..73335bc11 --- /dev/null +++ b/apps/website/src/assets/boxicons/bx-help-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/website/src/assets/boxicons/bx-history.svg b/apps/website/src/assets/boxicons/bx-history.svg new file mode 100644 index 000000000..a87acdea8 --- /dev/null +++ b/apps/website/src/assets/boxicons/bx-history.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/website/src/assets/boxicons/bx-map.svg b/apps/website/src/assets/boxicons/bx-map.svg new file mode 100644 index 000000000..3a27e2fa6 --- /dev/null +++ b/apps/website/src/assets/boxicons/bx-map.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/website/src/assets/boxicons/bx-menu.svg b/apps/website/src/assets/boxicons/bx-menu.svg new file mode 100644 index 000000000..1c1eebcb5 --- /dev/null +++ b/apps/website/src/assets/boxicons/bx-menu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/website/src/assets/boxicons/bx-message-dots.svg b/apps/website/src/assets/boxicons/bx-message-dots.svg new file mode 100644 index 000000000..521797856 --- /dev/null +++ b/apps/website/src/assets/boxicons/bx-message-dots.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/website/src/assets/boxicons/bx-network-chart.svg b/apps/website/src/assets/boxicons/bx-network-chart.svg new file mode 100644 index 000000000..2693f0bac --- /dev/null +++ b/apps/website/src/assets/boxicons/bx-network-chart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/website/src/assets/boxicons/bx-note.svg b/apps/website/src/assets/boxicons/bx-note.svg new file mode 100644 index 000000000..7cf848727 --- /dev/null +++ b/apps/website/src/assets/boxicons/bx-note.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/website/src/assets/boxicons/bx-paperclip.svg b/apps/website/src/assets/boxicons/bx-paperclip.svg new file mode 100644 index 000000000..7d392cf8c --- /dev/null +++ b/apps/website/src/assets/boxicons/bx-paperclip.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/website/src/assets/boxicons/bx-paypal.svg b/apps/website/src/assets/boxicons/bx-paypal.svg new file mode 100644 index 000000000..e4f3db18c --- /dev/null +++ b/apps/website/src/assets/boxicons/bx-paypal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/website/src/assets/boxicons/bx-pen.svg b/apps/website/src/assets/boxicons/bx-pen.svg new file mode 100644 index 000000000..e26e07d9a --- /dev/null +++ b/apps/website/src/assets/boxicons/bx-pen.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/website/src/assets/boxicons/bx-reddit.svg b/apps/website/src/assets/boxicons/bx-reddit.svg new file mode 100644 index 000000000..e6090b397 --- /dev/null +++ b/apps/website/src/assets/boxicons/bx-reddit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/website/src/assets/boxicons/bx-refresh-cw.svg b/apps/website/src/assets/boxicons/bx-refresh-cw.svg new file mode 100644 index 000000000..c25ae9c9d --- /dev/null +++ b/apps/website/src/assets/boxicons/bx-refresh-cw.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/website/src/assets/boxicons/bx-search.svg b/apps/website/src/assets/boxicons/bx-search.svg new file mode 100644 index 000000000..5f648745d --- /dev/null +++ b/apps/website/src/assets/boxicons/bx-search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/website/src/assets/boxicons/bx-send-alt.svg b/apps/website/src/assets/boxicons/bx-send-alt.svg new file mode 100644 index 000000000..68ed3e1e2 --- /dev/null +++ b/apps/website/src/assets/boxicons/bx-send-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/website/src/assets/boxicons/bx-shield.svg b/apps/website/src/assets/boxicons/bx-shield.svg new file mode 100644 index 000000000..babfd1ec1 --- /dev/null +++ b/apps/website/src/assets/boxicons/bx-shield.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/website/src/assets/boxicons/bx-swap-horizontal.svg b/apps/website/src/assets/boxicons/bx-swap-horizontal.svg new file mode 100644 index 000000000..dc45d78e3 --- /dev/null +++ b/apps/website/src/assets/boxicons/bx-swap-horizontal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/website/src/assets/boxicons/bx-table.svg b/apps/website/src/assets/boxicons/bx-table.svg new file mode 100644 index 000000000..7a3cd410c --- /dev/null +++ b/apps/website/src/assets/boxicons/bx-table.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/website/src/assets/boxicons/bx-tag.svg b/apps/website/src/assets/boxicons/bx-tag.svg new file mode 100644 index 000000000..6e698bd71 --- /dev/null +++ b/apps/website/src/assets/boxicons/bx-tag.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/website/src/assets/boxicons/bx-vector-square.svg b/apps/website/src/assets/boxicons/bx-vector-square.svg new file mode 100644 index 000000000..57eefdeb9 --- /dev/null +++ b/apps/website/src/assets/boxicons/bx-vector-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/website/src/assets/favicon.ico b/apps/website/src/assets/favicon.ico new file mode 100644 index 000000000..398e3854e Binary files /dev/null and b/apps/website/src/assets/favicon.ico differ diff --git a/apps/website/static/icon-color.svg b/apps/website/src/assets/icon-color.svg similarity index 100% rename from apps/website/static/icon-color.svg rename to apps/website/src/assets/icon-color.svg diff --git a/apps/website/src/components/Button.css b/apps/website/src/components/Button.css new file mode 100644 index 000000000..4eabe906a --- /dev/null +++ b/apps/website/src/components/Button.css @@ -0,0 +1,20 @@ +a.button { + display: block; + background-color: var(--brand-1); + padding: 0.5em 1em; + border-radius: 6px; + color: var(--brand-foreground-color); + text-decoration: none; + text-align: center; + box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.15); + + &.outline { + border: 1px solid var(--brand-1); + color: var(--brand-1); + background-color: transparent; + } + + .text { + vertical-align: middle; + } +} \ No newline at end of file diff --git a/apps/website/src/components/Button.tsx b/apps/website/src/components/Button.tsx new file mode 100644 index 000000000..729346e58 --- /dev/null +++ b/apps/website/src/components/Button.tsx @@ -0,0 +1,44 @@ +import { ComponentChildren } from "preact"; +import Icon from "./Icon.js"; +import "./Button.css"; + +interface LinkProps { + className?: string; + href?: string; + openExternally?: boolean; + children: ComponentChildren; + title?: string; + onClick?: (e: MouseEvent) => void; +} + +interface ButtonProps extends Omit { + href?: string; + iconSvg?: string; + text: ComponentChildren; + openExternally?: boolean; + outline?: boolean; +} + +export default function Button({ iconSvg, text, className, outline, ...restProps }: ButtonProps) { + return ( + + {iconSvg && <>{" "}} + {text} + + ) +} + +export function Link({ openExternally, children, ...restProps }: LinkProps) { + return ( + + {children} + + ) +} diff --git a/apps/website/src/components/Card.tsx b/apps/website/src/components/Card.tsx new file mode 100644 index 000000000..49c357132 --- /dev/null +++ b/apps/website/src/components/Card.tsx @@ -0,0 +1,37 @@ +import { ComponentChildren, HTMLAttributes } from "preact"; +import { Link } from "./Button.js"; +import Icon from "./Icon.js"; + +interface CardProps extends Omit, "title"> { + title: ComponentChildren; + imageUrl?: string; + iconSvg?: string; + className?: string; + moreInfoUrl?: string; + children: ComponentChildren; +} + +export default function Card({ title, children, imageUrl, iconSvg, className, moreInfoUrl, ...restProps }: CardProps) { + return ( +
+ {imageUrl && } + +
+

+ {iconSvg && }{" "} + {title} +

+ +
+ {children} +
+ + {moreInfoUrl && ( +
+ Learn more... +
+ )} +
+
+ ) +} diff --git a/apps/website/src/components/DownloadButton.css b/apps/website/src/components/DownloadButton.css new file mode 100644 index 000000000..d7ed4cf8f --- /dev/null +++ b/apps/website/src/components/DownloadButton.css @@ -0,0 +1,27 @@ +a.download-button { + display: none; + align-items: center; + justify-content: center; + gap: 1em; + + @media (min-width: 720px) { + display: flex !important; + } + + .platform { + font-size: 0.75em; + opacity: 0.75; + } + + &.big { + padding: 0.5em 3.5em; + margin: 1em 0; + gap: m; + text-align: left; + + .platform { + display: block; + } + } +} + diff --git a/apps/website/src/components/DownloadButton.tsx b/apps/website/src/components/DownloadButton.tsx new file mode 100644 index 000000000..8ed8cf18a --- /dev/null +++ b/apps/website/src/components/DownloadButton.tsx @@ -0,0 +1,30 @@ +import { getRecommendedDownload, RecommendedDownload } from "../download-helper.js"; +import "./DownloadButton.css"; +import Button from "./Button.js"; +import downloadIcon from "../assets/boxicons/bx-arrow-in-down-square-half.svg?raw"; +import packageJson from "../../../../package.json" with { type: "json" }; +import { useEffect, useState } from "preact/hooks"; + +interface DownloadButtonProps { + big?: boolean; +} + +export default function DownloadButton({ big }: DownloadButtonProps) { + const [ recommendedDownload, setRecommendedDownload ] = useState(); + useEffect(() => setRecommendedDownload(getRecommendedDownload()), []); + + return (recommendedDownload && + -

-If you use VSCode, install the Sherlock i18n extension for a better i18n experience. -

diff --git a/apps/website/src/routes/download-now.svelte b/apps/website/src/routes/download-now.svelte deleted file mode 100644 index 20abe9c55..000000000 --- a/apps/website/src/routes/download-now.svelte +++ /dev/null @@ -1,18 +0,0 @@ - - -{#if url} - - Download now - - ({platform} {architecture}) - - -{/if} \ No newline at end of file diff --git a/apps/website/src/routes/download/+page.svelte b/apps/website/src/routes/download/+page.svelte deleted file mode 100644 index b09c684f9..000000000 --- a/apps/website/src/routes/download/+page.svelte +++ /dev/null @@ -1,65 +0,0 @@ - - - - Trilium Notes: Download - - - -
-
-

Download the desktop application

- - -
- Architecture: -
- {#each architectures as arch} - - {/each} -
-
- -
- {#each Object.entries(downloadMatrix.desktop) as [platformId, platform]} - {@const textColor = (platformId === "windows" ? "text-blue-600" : platformId === "linux" ? "text-violet-600" : "text-gray-800 dark:text-gray-100")} - {@const bgColor = (platformId === "windows" ? "bg-blue-600" : platformId === "linux" ? "bg-violet-600" : "bg-gray-800")} - {@const hoverColor = (platformId === "windows" ? "hover:bg-blue-700" : platformId === "linux" ? "hover:bg-violet-700" : "hover:bg-gray-900")} - - {/each} -
-
- -
-

Set up a server for access on multiple devices

- -
- {#each Object.entries(downloadMatrix.server) as [platformId, platform]} - {@const textColor = (platformId === "linux" ? "text-violet-600" : "text-gray-800 dark:text-gray-100")} - {@const bgColor = (platformId === "linux" ? "bg-violet-600" : "bg-gray-800")} - {@const hoverColor = (platformId === "linux" ? "hover:bg-violet-700" : "hover:bg-gray-900")} - - {/each} -
-
- - - -
diff --git a/apps/website/src/routes/download/download-card.svelte b/apps/website/src/routes/download/download-card.svelte deleted file mode 100644 index 9fd89c20f..000000000 --- a/apps/website/src/routes/download/download-card.svelte +++ /dev/null @@ -1,31 +0,0 @@ - - -
-

{typeof platform.title === "object" ? platform.title[architecture] : platform.title}

-

{typeof platform.title === "object" ? platform.description[architecture] : platform.description}

-
- {#if recommended} - - {recommended[1].name} - - {/if} -
- {#each Object.entries(platform.downloads).filter((e) => !e[1].recommended) as [format, download]} - - {download.name} - - {/each} -
-
-
\ No newline at end of file diff --git a/apps/website/src/routes/feature-block.svelte b/apps/website/src/routes/feature-block.svelte deleted file mode 100644 index 982eea437..000000000 --- a/apps/website/src/routes/feature-block.svelte +++ /dev/null @@ -1,14 +0,0 @@ - - -
- {imgAlt} -
-

{title}

-

{text}

-
-
\ No newline at end of file diff --git a/apps/website/src/routes/header.svelte b/apps/website/src/routes/header.svelte deleted file mode 100644 index af1a7f057..000000000 --- a/apps/website/src/routes/header.svelte +++ /dev/null @@ -1,23 +0,0 @@ - -
- -
\ No newline at end of file diff --git a/apps/website/src/style.css b/apps/website/src/style.css new file mode 100644 index 000000000..64be436ad --- /dev/null +++ b/apps/website/src/style.css @@ -0,0 +1,184 @@ +:root { + --background-color: #fff; + --foreground-color: black; + --muted-color: #606060; + --card-background-color: white; + --card-box-shadow: 0 0 3px rgba(0, 0, 0, 0.25); + --header-background-color: rgba(255, 255, 255, 0.75); + --brand-1: #e47b19; + --brand-2: #4fa52b; + --brand-3: #e33f3b; + --brand-foreground-color: white; +} + +@media (prefers-color-scheme: dark) { + :root { + --foreground-color: #fff; + --background-color: #0a0e14; + --muted-color: #cacaca; + --header-background-color: rgba(0, 0, 0, 0.75); + --card-background-color: #ffffff12; + --card-box-shadow: 0 0 12px rgba(0, 0, 0, 0.15); + } +} + +html, +body { + margin: 0; + line-height: 1.5; + font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial; + min-height: 100vh; +} + +main { + min-height: calc(100vh - 80px - 90px); + display: flex; + flex-direction: column; +} + +body { + font-family: sans-serif; + background: var(--background-color); + color: var(--foreground-color); +} + +a { + color: var(--brand-3); + text-decoration: none; + + &:not(.button):hover { + text-decoration: underline; + } +} + +.content-wrapper { + max-width: 1200px; + width: 90%; + margin: auto; +} + +section { + padding: 1em 0; + justify-content: center; + align-items: stretch; + + &.fill { + flex-grow: 1; + display: flex; + } + + h2 { + text-align: center; + font-weight: 100; + margin-top: 0; + margin-bottom: 1em; + } +} + +img { + width: 100%; + height: auto; +} + +.card { + border: 0; + box-shadow: var(--card-box-shadow); + background-color: var(--card-background-color); + border-radius: 16px; + overflow: hidden; + display: flex; + flex-direction: column; + + h3 { + font-size: 1.1rem; + font-weight: 300; + margin: 0; + color: var(--brand-1); + margin-bottom: 0.5em; + + &> span { + vertical-align: middle; + } + } + + &> .image { + height: 200px; + object-fit: cover; + } + + .card-content { + margin: 0; + padding: 1em; + color: var(--muted-color); + display: flex; + flex-direction: column; + flex-grow: 1; + + .more-info-container { + margin-top: 0.5em; + flex-grow: 1; + display: flex; + flex-direction: column; + justify-content: flex-end; + + .more-info { + font-size: 0.9em; + } + } + } +} + +.bx { + display: inline-block; + width: 24px; + height: 24px; + vertical-align: middle; + + svg { + fill: currentColor; + } +} + +@media (max-width: 719px) { + .grid-4-cols > *, + .grid-3-cols > *, + .grid-2-cols > * { + margin-bottom: 1em; + } + + .desktop-only { + display: none !important; + } +} + +@media (min-width: 720px) { + section { + padding: 3em 0; + + h2 { + margin-bottom: 2em; + } + } + + .grid-4-cols { + display: grid; + grid-template-columns: 1fr 1fr 1fr 1fr; + gap: 1em; + } + + .grid-3-cols { + display: grid; + grid-template-columns: 1fr 1fr 1fr; + gap: 1em; + } + + .grid-2-cols { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 1em; + } + + .mobile-only { + display: none !important; + } +} \ No newline at end of file diff --git a/apps/website/static/favicon.png b/apps/website/static/favicon.png deleted file mode 120000 index 17ded225a..000000000 --- a/apps/website/static/favicon.png +++ /dev/null @@ -1 +0,0 @@ -../../../apps/client/src/assets/icon.png \ No newline at end of file diff --git a/apps/website/static/note-types/canvas.png b/apps/website/static/note-types/canvas.png deleted file mode 100644 index ad5c74b36..000000000 Binary files a/apps/website/static/note-types/canvas.png and /dev/null differ diff --git a/apps/website/static/note-types/geo-map.png b/apps/website/static/note-types/geo-map.png deleted file mode 100644 index cd891b646..000000000 Binary files a/apps/website/static/note-types/geo-map.png and /dev/null differ diff --git a/apps/website/static/note-types/mermaid.png b/apps/website/static/note-types/mermaid.png deleted file mode 100644 index 1e8bd7386..000000000 Binary files a/apps/website/static/note-types/mermaid.png and /dev/null differ diff --git a/apps/website/static/note-types/mind-map.png b/apps/website/static/note-types/mind-map.png deleted file mode 100644 index a970d485f..000000000 Binary files a/apps/website/static/note-types/mind-map.png and /dev/null differ diff --git a/apps/website/static/screenshots/desktop-win.png b/apps/website/static/screenshots/desktop-win.png deleted file mode 100644 index ab6ee05ec..000000000 Binary files a/apps/website/static/screenshots/desktop-win.png and /dev/null differ diff --git a/apps/website/static/screenshots/macos/dark.png b/apps/website/static/screenshots/macos/dark.png deleted file mode 100644 index 2eae66f18..000000000 Binary files a/apps/website/static/screenshots/macos/dark.png and /dev/null differ diff --git a/apps/website/static/screenshots/macos/light.png b/apps/website/static/screenshots/macos/light.png deleted file mode 100644 index a2b64b7fb..000000000 Binary files a/apps/website/static/screenshots/macos/light.png and /dev/null differ diff --git a/apps/website/static/technical-features/grafana-metrics.png b/apps/website/static/technical-features/grafana-metrics.png deleted file mode 120000 index 1dd11db67..000000000 --- a/apps/website/static/technical-features/grafana-metrics.png +++ /dev/null @@ -1 +0,0 @@ -../../../../docs/User Guide/User Guide/Advanced Usage/1_Metrics_image.png \ No newline at end of file diff --git a/apps/website/svelte.config.js b/apps/website/svelte.config.js deleted file mode 100644 index 0cd57a52d..000000000 --- a/apps/website/svelte.config.js +++ /dev/null @@ -1,11 +0,0 @@ -import { mdsvex } from 'mdsvex'; -import adapter from '@sveltejs/adapter-auto'; -import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'; - -const config = { - preprocess: [vitePreprocess(), mdsvex()], - kit: { adapter: adapter() }, - extensions: ['.svelte', '.svx'] -}; - -export default config; diff --git a/apps/website/tsconfig.json b/apps/website/tsconfig.json index 5adb685c0..5b02bdf11 100644 --- a/apps/website/tsconfig.json +++ b/apps/website/tsconfig.json @@ -1,20 +1,18 @@ { - "extends": "./.svelte-kit/tsconfig.json", + "extends": "../../tsconfig.base.json", "compilerOptions": { - "allowJs": true, - "checkJs": true, - "esModuleInterop": true, - "forceConsistentCasingInFileNames": true, - "resolveJsonModule": true, - "skipLibCheck": true, - "sourceMap": true, - "strict": true, + "target": "ES2020", + "module": "ESNext", "moduleResolution": "bundler", - "composite": true - } - // Path aliases are handled by https://svelte.dev/docs/kit/configuration#alias - // except $lib which is handled by https://svelte.dev/docs/kit/configuration#files - // - // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes - // from the referenced tsconfig.json - TypeScript does not merge them in + /* Preact Config */ + "jsx": "react-jsx", + "jsxImportSource": "preact", + "skipLibCheck": true, + "paths": { + "react": ["./node_modules/preact/compat/"], + "react-dom": ["./node_modules/preact/compat/"] + } + }, + "include": ["node_modules/vite/client.d.ts", "**/*"], + "exclude": ["dist"] } diff --git a/apps/website/types-assets.d.ts b/apps/website/types-assets.d.ts new file mode 100644 index 000000000..32e744839 --- /dev/null +++ b/apps/website/types-assets.d.ts @@ -0,0 +1,9 @@ +declare module "*?raw" { + var content: string; + export default content; +} + +declare module "*.svg" { + var path: string; + export default path; +} diff --git a/apps/website/vite.config.ts b/apps/website/vite.config.ts index 135fc634d..078ef4529 100644 --- a/apps/website/vite.config.ts +++ b/apps/website/vite.config.ts @@ -1,24 +1,17 @@ -import tailwindcss from '@tailwindcss/vite'; -import { paraglideVitePlugin } from '@inlang/paraglide-js'; -import { sveltekit } from '@sveltejs/kit/vite'; -import { defineConfig, type Plugin } from 'vite'; +import { defineConfig } from 'vite'; +import preact from '@preact/preset-vite'; -export default () => { - // See https://github.com/nrwl/nx/issues/28978. - const cwd = process.cwd(); - process.chdir(__dirname); // Temporarily change the working directory - - const config = defineConfig({ - plugins: [ - tailwindcss(), - sveltekit(), - paraglideVitePlugin({ - project: './project.inlang', - outdir: './src/lib/paraglide' - }) - ] as Plugin[] - }); - - process.chdir(cwd); // Restore the original working directory - return config; -}; +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [ + preact({ + prerender: { + enabled: true, + renderTarget: '#app', + additionalPrerenderRoutes: ['/404'], + previewMiddlewareEnabled: true, + previewMiddlewareFallback: '/404', + }, + }), + ], +}); diff --git a/package.json b/package.json index 9299e0f6d..0578bcd2a 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "desktop:start": "pnpm run --filter desktop dev", "desktop:build": "pnpm run --filter desktop build", "desktop:start-prod": "pnpm run --filter desktop start-prod", + "website:build": "pnpm run --filter website build", "electron:build": "pnpm desktop:build", "electron:start": "pnpm desktop:start", "electron:start-prod": "pnpm desktop:start-prod", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6ba4ac4ab..94ce82c5c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -771,60 +771,30 @@ importers: apps/website: dependencies: - '@inlang/paraglide-js': - specifier: ^2.0.0 - version: 2.4.0(babel-plugin-macros@3.1.0) + preact: + specifier: 10.27.2 + version: 10.27.2 + preact-iso: + specifier: ^2.10.0 + version: 2.10.0(preact-render-to-string@6.6.1(preact@10.27.2))(preact@10.27.2) + preact-render-to-string: + specifier: ^6.6.1 + version: 6.6.1(preact@10.27.2) devDependencies: - '@eslint/compat': - specifier: ^1.2.5 - version: 1.4.0(eslint@9.36.0(jiti@2.6.0)) - '@eslint/js': - specifier: ^9.18.0 - version: 9.36.0 - '@sveltejs/adapter-auto': - specifier: ^6.0.0 - version: 6.1.0(@sveltejs/kit@2.43.5(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.39.6)(vite@7.1.7(@types/node@24.5.1)(jiti@2.6.0)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1)))(svelte@5.39.6)(vite@7.1.7(@types/node@24.5.1)(jiti@2.6.0)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1))) - '@sveltejs/kit': - specifier: ^2.16.0 - version: 2.43.5(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.39.6)(vite@7.1.7(@types/node@24.5.1)(jiti@2.6.0)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1)))(svelte@5.39.6)(vite@7.1.7(@types/node@24.5.1)(jiti@2.6.0)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1)) - '@sveltejs/vite-plugin-svelte': - specifier: ^6.0.0 - version: 6.2.1(svelte@5.39.6)(vite@7.1.7(@types/node@24.5.1)(jiti@2.6.0)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1)) - '@tailwindcss/typography': - specifier: ^0.5.15 - version: 0.5.19(tailwindcss@4.1.13) - '@tailwindcss/vite': - specifier: ^4.0.0 - version: 4.1.13(vite@7.1.7(@types/node@24.5.1)(jiti@2.6.0)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1)) + '@preact/preset-vite': + specifier: ^2.10.2 + version: 2.10.2(@babel/core@7.28.0)(preact@10.27.2)(vite@7.1.7(@types/node@24.5.1)(jiti@2.6.0)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1)) eslint: - specifier: ^9.18.0 + specifier: ^9.36.0 version: 9.36.0(jiti@2.6.0) - eslint-plugin-svelte: - specifier: ^3.0.0 - version: 3.12.4(eslint@9.36.0(jiti@2.6.0))(svelte@5.39.6)(ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.5.1)(typescript@5.9.2)) - globals: - specifier: ^16.0.0 - version: 16.4.0 - mdsvex: - specifier: ^0.12.3 - version: 0.12.6(svelte@5.39.6) - svelte: - specifier: ^5.0.0 - version: 5.39.6 - svelte-check: - specifier: ^4.0.0 - version: 4.3.2(picomatch@4.0.3)(svelte@5.39.6)(typescript@5.9.2) - tailwindcss: - specifier: ^4.0.0 - version: 4.1.13 + eslint-config-preact: + specifier: ^2.0.0 + version: 2.0.0(eslint@9.36.0(jiti@2.6.0)) typescript: - specifier: ^5.0.0 + specifier: ^5.9.2 version: 5.9.2 - typescript-eslint: - specifier: ^8.20.0 - version: 8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2) vite: - specifier: ^7.0.0 + specifier: ^7.0.4 version: 7.1.7(@types/node@24.5.1)(jiti@2.6.0)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1) packages/ckeditor5: @@ -1554,6 +1524,13 @@ packages: resolution: {integrity: sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==} engines: {node: '>=6.9.0'} + '@babel/eslint-parser@7.28.4': + resolution: {integrity: sha512-Aa+yDiH87980jR6zvRfFuCR1+dLb00vBydhTL+zI992Rz/wQhSvuxjmOOuJOgO3XmakO6RykRGD2S1mq1AtgHA==} + engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} + peerDependencies: + '@babel/core': ^7.11.0 + eslint: ^7.5.0 || ^8.0.0 || ^9.0.0 + '@babel/generator@7.27.0': resolution: {integrity: sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==} engines: {node: '>=6.9.0'} @@ -1623,6 +1600,11 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + '@babel/plugin-syntax-class-properties@7.12.13': + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-jsx@7.27.1': resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==} engines: {node: '>=6.9.0'} @@ -2456,15 +2438,6 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/compat@1.4.0': - resolution: {integrity: sha512-DEzm5dKeDBPm3r08Ixli/0cmxr8LkRdwxMRUIJBlSCpAwSrvFEJpVBzV+66JhDxiaqKxnRzCXhtiMiczF7Hglg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.40 || 9 - peerDependenciesMeta: - eslint: - optional: true - '@eslint/config-array@0.21.0': resolution: {integrity: sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2481,10 +2454,6 @@ packages: resolution: {integrity: sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.16.0': - resolution: {integrity: sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/eslintrc@3.3.1': resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2796,17 +2765,6 @@ packages: '@iconify/utils@3.0.1': resolution: {integrity: sha512-A78CUEnFGX8I/WlILxJCuIJXloL0j/OJ9PSchPAfCargEIKmUBWvvEMmKWB5oONwiUqlNt+5eRufdkLxeHIWYw==} - '@inlang/paraglide-js@2.4.0': - resolution: {integrity: sha512-T/m9uoev574/1JrhCnPcgK1xnAwkVMgaDev4LFthnmID8ubX2xjboSGO3IztwXWwO0aJoT1UJr89JCwjbwgnJQ==} - hasBin: true - - '@inlang/recommend-sherlock@0.2.1': - resolution: {integrity: sha512-ckv8HvHy/iTqaVAEKrr+gnl+p3XFNwe5D2+6w6wJk2ORV2XkcRkKOJ/XsTUJbPSiyi4PI+p+T3bqbmNx/rDUlg==} - - '@inlang/sdk@2.4.9': - resolution: {integrity: sha512-cvz/C1rF5WBxzHbEoiBoI6Sz6q6M+TdxfWkEGBYTD77opY8i8WN01prUWXEM87GPF4SZcyIySez9U0Ccm12oFQ==} - engines: {node: '>=18.0.0'} - '@inquirer/ansi@1.0.0': resolution: {integrity: sha512-JWaTfCxI1eTmJ1BIv86vUfjVatOdxwD0DAVKYevY8SazeUUZtW+tNbsdejVO1GYE0GXJW1N1ahmiC3TFd+7wZA==} engines: {node: '>=18'} @@ -3037,9 +2995,6 @@ packages: resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} engines: {node: '>=6.0.0'} - '@jridgewell/remapping@2.3.5': - resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} - '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} @@ -3159,13 +3114,6 @@ packages: peerDependencies: '@inquirer/prompts': '>= 3 < 8' - '@lix-js/sdk@0.4.7': - resolution: {integrity: sha512-pRbW+joG12L0ULfMiWYosIW0plmW4AsUdiPCp+Z8rAsElJ+wJ6in58zhD3UwUcd4BNcpldEGjg6PdA7e0RgsDQ==} - engines: {node: '>=18'} - - '@lix-js/server-protocol-schema@0.1.1': - resolution: {integrity: sha512-jBeALB6prAbtr5q4vTuxnRZZv1M2rKe8iNqRQhFJ4Tv7150unEa0vKyz0hs8Gl3fUGsWaNJBh3J8++fpbrpRBQ==} - '@ljharb/resumer@0.0.1': resolution: {integrity: sha512-skQiAOrCfO7vRTq53cxznMpks7wS1va95UCidALlOVWqvBAzwPVErwizDwoMqNVMEn1mDq0utxZd02eIrvF1lw==} engines: {node: '>= 0.4'} @@ -3230,6 +3178,9 @@ packages: '@marijn/find-cluster-break@1.0.2': resolution: {integrity: sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==} + '@mdn/browser-compat-data@5.7.6': + resolution: {integrity: sha512-7xdrMX0Wk7grrTZQwAoy1GkvPMFoizStUoL+VmtUkAxegbCCec+3FKwOM6yc/uGU5+BEczQHXAlWiqvM8JeENg==} + '@mermaid-js/layout-elk@0.2.0': resolution: {integrity: sha512-vjjYGnCCjYlIA/rR7M//eFi0rHM6dsMyN1JQKfckpt30DTC/esrw36hcrvA2FNPHaqh3Q/SyBWzddyaky8EtUQ==} peerDependencies: @@ -3266,6 +3217,9 @@ packages: '@napi-rs/wasm-runtime@1.0.5': resolution: {integrity: sha512-TBr9Cf9onSAS2LQ2+QHx6XcC6h9+RIzJgbqG3++9TUZSH204AwEy5jg3BTQ0VATsyoGj4ee49tN/y6rvaOOtcg==} + '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': + resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==} + '@noble/hashes@1.8.0': resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==} engines: {node: ^14.21.3 || >=16} @@ -4243,9 +4197,6 @@ packages: resolution: {integrity: sha512-moXtHH33AobOhTZF8xcX1MpOFqdvfCk7v6+teJL8zymBiDXwEsQH6XG9HGx2VIxnJZNm4cNSzflTLDnQLmIdmw==} engines: {node: ^20.17.0 || >=22.9.0} - '@sinclair/typebox@0.31.28': - resolution: {integrity: sha512-/s55Jujywdw/Jpan+vsy6JZs1z2ZTGxTmbZTPiuSL2wz9mfzA2gN1zzaqmvfi4pq+uOt7Du85fkiwv5ymW84aQ==} - '@sindresorhus/is@4.6.0': resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} engines: {node: '>=10'} @@ -4457,19 +4408,12 @@ packages: '@socket.io/component-emitter@3.1.2': resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} - '@sqlite.org/sqlite-wasm@3.48.0-build4': - resolution: {integrity: sha512-hI6twvUkzOmyGZhQMza1gpfqErZxXRw6JEsiVjUbo7tFanVD+8Oil0Ih3l2nGzHdxPI41zFmfUQG7GHqhciKZQ==} - hasBin: true - '@ssddanbrown/codemirror-lang-smarty@1.0.0': resolution: {integrity: sha512-F0ut1kmdbT3eORk3xVIKfQsGCZiQdh+6sLayBa0+FTex2gyIQlVQZRRA7bPSlchI3uZtWwNnqGNz5O/QLWRlFg==} '@ssddanbrown/codemirror-lang-twig@1.0.0': resolution: {integrity: sha512-7WIMIh8Ssc54TooGCY57WU2rKEqZZrcV2tZSVRPtd0gKYsrDEKCSLWpQjUWEx7bdgh3NKHUjq1O4ugIzI/+dwQ==} - '@standard-schema/spec@1.0.0': - resolution: {integrity: sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==} - '@stylistic/eslint-plugin@4.4.1': resolution: {integrity: sha512-CEigAk7eOLyHvdgmpZsKFwtiqS2wFwI1fn4j09IU9GmD4euFM4jEBAViWeCqaNLlbX2k2+A/Fq9cje4HQBXuJQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4482,44 +4426,6 @@ packages: peerDependencies: stylelint: ^16.8.0 - '@sveltejs/acorn-typescript@1.0.5': - resolution: {integrity: sha512-IwQk4yfwLdibDlrXVE04jTZYlLnwsTT2PIOQQGNLWfjavGifnk1JD1LcZjZaBTRcxZu2FfPfNLOE04DSu9lqtQ==} - peerDependencies: - acorn: ^8.9.0 - - '@sveltejs/adapter-auto@6.1.0': - resolution: {integrity: sha512-shOuLI5D2s+0zTv2ab5M5PqfknXqWbKi+0UwB9yLTRIdzsK1R93JOO8jNhIYSHdW+IYXIYnLniu+JZqXs7h9Wg==} - peerDependencies: - '@sveltejs/kit': ^2.0.0 - - '@sveltejs/kit@2.43.5': - resolution: {integrity: sha512-44Mm5csR4mesKx2Eyhtk8UVrLJ4c04BT2wMTfYGKJMOkUqpHP5KLL2DPV0hXUA4t4+T3ZYe0aBygd42lVYv2cA==} - engines: {node: '>=18.13'} - hasBin: true - peerDependencies: - '@opentelemetry/api': ^1.0.0 - '@sveltejs/vite-plugin-svelte': ^3.0.0 || ^4.0.0-next.1 || ^5.0.0 || ^6.0.0-next.0 - svelte: ^4.0.0 || ^5.0.0-next.0 - vite: ^5.0.3 || ^6.0.0 || ^7.0.0-beta.0 - peerDependenciesMeta: - '@opentelemetry/api': - optional: true - - '@sveltejs/vite-plugin-svelte-inspector@5.0.1': - resolution: {integrity: sha512-ubWshlMk4bc8mkwWbg6vNvCeT7lGQojE3ijDh3QTR6Zr/R+GXxsGbyH4PExEPpiFmqPhYiVSVmHBjUcVc1JIrA==} - engines: {node: ^20.19 || ^22.12 || >=24} - peerDependencies: - '@sveltejs/vite-plugin-svelte': ^6.0.0-next.0 - svelte: ^5.0.0 - vite: ^6.3.0 || ^7.0.0 - - '@sveltejs/vite-plugin-svelte@6.2.1': - resolution: {integrity: sha512-YZs/OSKOQAQCnJvM/P+F1URotNnYNeU3P2s4oIpzm1uFaqUEqRxUB0g5ejMjEb5Gjb9/PiBI5Ktrq4rUUF8UVQ==} - engines: {node: ^20.19 || ^22.12 || >=24} - peerDependencies: - svelte: ^5.0.0 - vite: ^6.3.0 || ^7.0.0 - '@swc/core-darwin-arm64@1.11.29': resolution: {integrity: sha512-whsCX7URzbuS5aET58c75Dloby3Gtj/ITk2vc4WW6pSDQKSPDuONsIcZ7B2ng8oz0K6ttbi4p3H/PNPQLJ4maQ==} engines: {node: '>=10'} @@ -4605,101 +4511,6 @@ packages: resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} engines: {node: '>=10'} - '@tailwindcss/node@4.1.13': - resolution: {integrity: sha512-eq3ouolC1oEFOAvOMOBAmfCIqZBJuvWvvYWh5h5iOYfe1HFC6+GZ6EIL0JdM3/niGRJmnrOc+8gl9/HGUaaptw==} - - '@tailwindcss/oxide-android-arm64@4.1.13': - resolution: {integrity: sha512-BrpTrVYyejbgGo57yc8ieE+D6VT9GOgnNdmh5Sac6+t0m+v+sKQevpFVpwX3pBrM2qKrQwJ0c5eDbtjouY/+ew==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [android] - - '@tailwindcss/oxide-darwin-arm64@4.1.13': - resolution: {integrity: sha512-YP+Jksc4U0KHcu76UhRDHq9bx4qtBftp9ShK/7UGfq0wpaP96YVnnjFnj3ZFrUAjc5iECzODl/Ts0AN7ZPOANQ==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] - - '@tailwindcss/oxide-darwin-x64@4.1.13': - resolution: {integrity: sha512-aAJ3bbwrn/PQHDxCto9sxwQfT30PzyYJFG0u/BWZGeVXi5Hx6uuUOQEI2Fa43qvmUjTRQNZnGqe9t0Zntexeuw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - - '@tailwindcss/oxide-freebsd-x64@4.1.13': - resolution: {integrity: sha512-Wt8KvASHwSXhKE/dJLCCWcTSVmBj3xhVhp/aF3RpAhGeZ3sVo7+NTfgiN8Vey/Fi8prRClDs6/f0KXPDTZE6nQ==} - engines: {node: '>= 10'} - cpu: [x64] - os: [freebsd] - - '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.13': - resolution: {integrity: sha512-mbVbcAsW3Gkm2MGwA93eLtWrwajz91aXZCNSkGTx/R5eb6KpKD5q8Ueckkh9YNboU8RH7jiv+ol/I7ZyQ9H7Bw==} - engines: {node: '>= 10'} - cpu: [arm] - os: [linux] - - '@tailwindcss/oxide-linux-arm64-gnu@4.1.13': - resolution: {integrity: sha512-wdtfkmpXiwej/yoAkrCP2DNzRXCALq9NVLgLELgLim1QpSfhQM5+ZxQQF8fkOiEpuNoKLp4nKZ6RC4kmeFH0HQ==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - - '@tailwindcss/oxide-linux-arm64-musl@4.1.13': - resolution: {integrity: sha512-hZQrmtLdhyqzXHB7mkXfq0IYbxegaqTmfa1p9MBj72WPoDD3oNOh1Lnxf6xZLY9C3OV6qiCYkO1i/LrzEdW2mg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - - '@tailwindcss/oxide-linux-x64-gnu@4.1.13': - resolution: {integrity: sha512-uaZTYWxSXyMWDJZNY1Ul7XkJTCBRFZ5Fo6wtjrgBKzZLoJNrG+WderJwAjPzuNZOnmdrVg260DKwXCFtJ/hWRQ==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - - '@tailwindcss/oxide-linux-x64-musl@4.1.13': - resolution: {integrity: sha512-oXiPj5mi4Hdn50v5RdnuuIms0PVPI/EG4fxAfFiIKQh5TgQgX7oSuDWntHW7WNIi/yVLAiS+CRGW4RkoGSSgVQ==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - - '@tailwindcss/oxide-wasm32-wasi@4.1.13': - resolution: {integrity: sha512-+LC2nNtPovtrDwBc/nqnIKYh/W2+R69FA0hgoeOn64BdCX522u19ryLh3Vf3F8W49XBcMIxSe665kwy21FkhvA==} - engines: {node: '>=14.0.0'} - cpu: [wasm32] - bundledDependencies: - - '@napi-rs/wasm-runtime' - - '@emnapi/core' - - '@emnapi/runtime' - - '@tybys/wasm-util' - - '@emnapi/wasi-threads' - - tslib - - '@tailwindcss/oxide-win32-arm64-msvc@4.1.13': - resolution: {integrity: sha512-dziTNeQXtoQ2KBXmrjCxsuPk3F3CQ/yb7ZNZNA+UkNTeiTGgfeh+gH5Pi7mRncVgcPD2xgHvkFCh/MhZWSgyQg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] - - '@tailwindcss/oxide-win32-x64-msvc@4.1.13': - resolution: {integrity: sha512-3+LKesjXydTkHk5zXX01b5KMzLV1xl2mcktBJkje7rhFUpUlYJy7IMOLqjIRQncLTa1WZZiFY/foAeB5nmaiTw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - - '@tailwindcss/oxide@4.1.13': - resolution: {integrity: sha512-CPgsM1IpGRa880sMbYmG1s4xhAy3xEt1QULgTJGQmZUeNgXFR7s1YxYygmJyBGtou4SyEosGAGEeYqY7R53bIA==} - engines: {node: '>= 10'} - - '@tailwindcss/typography@0.5.19': - resolution: {integrity: sha512-w31dd8HOx3k9vPtcQh5QHP9GwKcgbMp87j58qi6xgiBnFFtKEAgCWnDw4qUT8aHwkCp8bKvb/KGKWWHedP0AAg==} - peerDependencies: - tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1' - - '@tailwindcss/vite@4.1.13': - resolution: {integrity: sha512-0PmqLQ010N58SbMTJ7BVJ4I2xopiQn/5i6nlb4JmxzQf8zcS5+m2Cv6tqh+sfDwtIdjoEnOvwsGQ1hkUi8QEHQ==} - peerDependencies: - vite: ^5.2.0 || ^6 || ^7 - '@testing-library/dom@10.4.0': resolution: {integrity: sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==} engines: {node: '>=18'} @@ -5803,17 +5614,34 @@ packages: array-flatten@1.1.1: resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - array-timsort@1.0.3: - resolution: {integrity: sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==} + array-includes@3.1.9: + resolution: {integrity: sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==} + engines: {node: '>= 0.4'} array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} + array.prototype.findlast@1.2.5: + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} + engines: {node: '>= 0.4'} + + array.prototype.flat@1.3.3: + resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} + engines: {node: '>= 0.4'} + + array.prototype.flatmap@1.3.3: + resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} + engines: {node: '>= 0.4'} + array.prototype.reduce@1.0.8: resolution: {integrity: sha512-DwuEqgXFBwbmZSRqt3BpQigWNUoqw9Ml2dTWdF3B2zQlQX4OeUE0zyuzX0fX0IbTvjdkZbcBTU3idgpO78qkTw==} engines: {node: '>= 0.4'} + array.prototype.tosorted@1.1.4: + resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} + engines: {node: '>= 0.4'} + arraybuffer.prototype.slice@1.0.4: resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} engines: {node: '>= 0.4'} @@ -5825,6 +5653,9 @@ packages: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} + ast-metadata-inferer@0.8.1: + resolution: {integrity: sha512-ht3Dm6Zr7SXv6t1Ra6gFo0+kLDglHGrEbYihTkcycrbHw7WCcuhBzPlJYHEsIpycaUwzsJHje+vUcxXUX4ztTA==} + ast-types@0.13.4: resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} engines: {node: '>=4'} @@ -5878,17 +5709,9 @@ packages: axios@1.12.2: resolution: {integrity: sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==} - axobject-query@4.1.0: - resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} - engines: {node: '>= 0.4'} - b4a@1.6.7: resolution: {integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==} - babel-plugin-macros@3.1.0: - resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} - engines: {node: '>=10', npm: '>=6'} - babel-plugin-transform-hook-names@1.0.2: resolution: {integrity: sha512-5gafyjyyBTTdX/tQQ0hRgu4AhNHG/hqWi0ZZmg2xvs2FgRkJXzDNKBZCyoYqgFkovfDrgM8OoKg8karoUvWeCw==} peerDependencies: @@ -6348,10 +6171,6 @@ packages: resolution: {integrity: sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==} engines: {node: '>=6'} - clsx@2.1.1: - resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} - engines: {node: '>=6'} - codemirror-lang-elixir@4.0.0: resolution: {integrity: sha512-mzFesxo/t6KOxwnkqVd34R/q7yk+sMtHh6vUKGAvjwHmpL7bERHB+vQAsmU/nqrndkwVeJEHWGw/z/ybfdiudA==} @@ -6447,10 +6266,6 @@ packages: resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} engines: {node: ^12.20.0 || >=14} - comment-json@4.2.5: - resolution: {integrity: sha512-bKw/r35jR3HGt5PEPm1ljsQQGyCrR8sFGNiN5L+ykDHdpO8Smxkrkla9Yi6NkQyUrb8V54PGhfMs6NrIwtxtdw==} - engines: {node: '>= 6'} - comment-parser@1.4.1: resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} engines: {node: '>= 12.0.0'} @@ -6501,10 +6316,6 @@ packages: resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} engines: {node: '>=0.8'} - consola@3.4.0: - resolution: {integrity: sha512-EiPU8G6dQG0GFHNR8ljnZFki/8a+cQwEQ+7wpxdChl02Q8HXlwEZWD5lqAF8vC2sEC3Tehr8hy7vErz88LHyUA==} - engines: {node: ^14.18.0 || >=16.10.0} - console-control-strings@1.1.0: resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} @@ -6545,10 +6356,6 @@ packages: resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} engines: {node: '>= 0.6'} - cookie@1.0.2: - resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==} - engines: {node: '>=18'} - cookiejar@2.1.4: resolution: {integrity: sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==} @@ -7086,14 +6893,6 @@ packages: resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} engines: {node: '>=10'} - dedent@1.5.1: - resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==} - peerDependencies: - babel-plugin-macros: ^3.1.0 - peerDependenciesMeta: - babel-plugin-macros: - optional: true - deep-eql@5.0.2: resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} engines: {node: '>=6'} @@ -7211,9 +7010,6 @@ packages: detect-touch-events@2.0.2: resolution: {integrity: sha512-g8GWBkJLiIDRJfRXEdrd1wMXpNyGId2DkbfuwFahSb4OCvn717hyRJtAcEDISfp3zkwEhZ4Y4woHPA6DeyB3Fw==} - devalue@5.3.2: - resolution: {integrity: sha512-UDsjUbpQn9kvm68slnrs+mfxwFkIflOhkanmyabZ8zOYk8SMEIbJ3TK+88g70hSIeytu4y18f0z/hYHMTrXIWw==} - devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} @@ -7247,6 +7043,10 @@ packages: resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} engines: {node: '>=6'} + doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + doctrine@3.0.0: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} @@ -7480,6 +7280,10 @@ packages: resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==} engines: {node: '>= 0.4'} + es-abstract@1.24.0: + resolution: {integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==} + engines: {node: '>= 0.4'} + es-array-method-boxes-properly@1.0.0: resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} @@ -7491,6 +7295,10 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} + es-iterator-helpers@1.2.1: + resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==} + engines: {node: '>= 0.4'} + es-module-lexer@1.7.0: resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} @@ -7502,6 +7310,10 @@ packages: resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} engines: {node: '>= 0.4'} + es-shim-unscopables@1.1.0: + resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} + engines: {node: '>= 0.4'} + es-to-primitive@1.3.0: resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} engines: {node: '>= 0.4'} @@ -7568,6 +7380,11 @@ packages: eslint: ^9.0.0 typescript: ^5.0.0 + eslint-config-preact@2.0.0: + resolution: {integrity: sha512-TFj70lEE7y3R9DQAFJ/clRfVmyaXdwE3q56gA9zm+iTmlpYjtZKtV1jv/jtgdF2LqgvJjlGlGE1rHVwE9yNdkg==} + peerDependencies: + eslint: ^8.57.1 || ^9.0.0 + eslint-config-prettier@10.1.8: resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==} hasBin: true @@ -7580,6 +7397,12 @@ packages: eslint-plugin-ckeditor5-rules@12.1.1: resolution: {integrity: sha512-e0PhbA3sNWy4Djs6r+kVfWNvu6urJXucIUfqI2GKjgOfqYOhmpLNaudH6FHKAg/OM8g0ETb7TbG3Bc375ru+sg==} + eslint-plugin-compat@6.0.2: + resolution: {integrity: sha512-1ME+YfJjmOz1blH0nPZpHgjMGK4kjgEeoYqGCqoBPQ/mGu/dJzdoP0f1C8H2jcWZjzhZjAMccbM/VdXhPORIfA==} + engines: {node: '>=18.x'} + peerDependencies: + eslint: ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 + eslint-plugin-mocha@11.1.0: resolution: {integrity: sha512-rKntVWRsQFPbf8OkSgVNRVRrcVAPaGTyEgWCEyXaPDJkTl0v5/lwu1vTk5sWiUJU8l2sxwvGUZzSNrEKdVMeQw==} peerDependencies: @@ -7597,15 +7420,11 @@ packages: peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 - eslint-plugin-svelte@3.12.4: - resolution: {integrity: sha512-hD7wPe+vrPgx3U2X2b/wyTMtWobm660PygMGKrWWYTc9lvtY8DpNFDaU2CJQn1szLjGbn/aJ3g8WiXuKakrEkw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint-plugin-react@7.37.5: + resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==} + engines: {node: '>=4'} peerDependencies: - eslint: ^8.57.1 || ^9.0.0 - svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 - peerDependenciesMeta: - svelte: - optional: true + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} @@ -7615,6 +7434,10 @@ packages: resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint-visitor-keys@2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} + eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -7633,9 +7456,6 @@ packages: jiti: optional: true - esm-env@1.2.2: - resolution: {integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==} - espree@10.4.0: resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -7653,9 +7473,6 @@ packages: resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} engines: {node: '>=0.10'} - esrap@2.1.0: - resolution: {integrity: sha512-yzmPNpl7TBbMRC5Lj2JlJZNPml0tzqoqP5B1JXycNUwtqma9AKCO0M2wHrdgsHcy1WRW7S9rJknAMtByg3usgA==} - esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} @@ -8321,10 +8138,6 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - has-own-prop@2.0.0: - resolution: {integrity: sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==} - engines: {node: '>=8'} - has-property-descriptors@1.0.2: resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} @@ -8547,10 +8360,6 @@ packages: resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} - human-id@4.1.1: - resolution: {integrity: sha512-3gKm/gCSUipeLsRYZbbdA1BD83lBoWUkZ7G9VFrhWPAU76KwYo5KR8V28bpoPm/ygy0x5/GCbpRQdY7VLYCoIg==} - hasBin: true - human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} @@ -8846,6 +8655,10 @@ packages: is-my-json-valid@2.20.6: resolution: {integrity: sha512-1JQwulVNjx8UqkPE/bqDaxtH4PXCe/2VRh/y3p99heOV87HG4Id5/VfDswd+YiAfHcRTfDlWgISycnHuhZq1aw==} + is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} + is-network-error@1.2.0: resolution: {integrity: sha512-32jdpRpJo8SeL7zOuBJbMLz/VTw9mDpTvcKzzR8DkXWsJbbE60gdiX8YOd0UAV6b8Skt+CMytzfgVVIRFidn0Q==} engines: {node: '>=16'} @@ -8901,9 +8714,6 @@ packages: is-reference@1.2.1: resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} - is-reference@3.0.3: - resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==} - is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} @@ -9007,6 +8817,10 @@ packages: resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} engines: {node: '>=8'} + iterator.prototype@1.1.5: + resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} + engines: {node: '>= 0.4'} + jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} @@ -9080,9 +8894,6 @@ packages: jquery@3.7.1: resolution: {integrity: sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==} - js-sha256@0.11.1: - resolution: {integrity: sha512-o6WSo/LUvY2uC4j7mO50a2ms7E/EAdbP0swigLV+nzHKTTaYnaLIWJ02VdXrsJX0vGedDESQnLsOekr94ryfjg==} - js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -9182,6 +8993,10 @@ packages: jsplumb@2.15.6: resolution: {integrity: sha512-sIpbpz5eMVM+vV+MQzFCidlaa1RsknrQs6LOTKYDjYUDdTAi2AN2bFi94TxB33TifcIsRNV1jebcaxg0tCoPzg==} + jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + jszip@3.10.1: resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} @@ -9223,10 +9038,6 @@ packages: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} - kleur@4.1.5: - resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} - engines: {node: '>=6'} - klona@2.0.6: resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} engines: {node: '>= 8'} @@ -9240,10 +9051,6 @@ packages: kolorist@1.8.0: resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} - kysely@0.27.6: - resolution: {integrity: sha512-FIyV/64EkKhJmjgC0g2hygpBv5RNWVPyNCqSAD7eTCv6eFWNIi4PN1UvdSJGicN/o35bnevgis4Y0UDC0qi8jQ==} - engines: {node: '>=14.0.0'} - langium@3.3.1: resolution: {integrity: sha512-QJv/h939gDpvT+9SiLVlY7tZC3xB2qK57v0J04Sh9wpMb6MP1q8gB21L3WIo8T5P1MSMg3Ep14L7KkDCFG3y4w==} engines: {node: '>=16.0.0'} @@ -9392,9 +9199,6 @@ packages: locate-app@2.5.0: resolution: {integrity: sha512-xIqbzPMBYArJRmPGUZD9CzV9wOqmVtQnaAn3wrj3s6WYW0bQvPI7x+sPYUGmDTYMHefVK//zc6HEYZ1qnxIK+Q==} - locate-character@3.0.0: - resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} - locate-path@2.0.0: resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} engines: {node: '>=4'} @@ -9532,9 +9336,6 @@ packages: magic-string@0.30.18: resolution: {integrity: sha512-yi8swmWbO17qHhwIBNeeZxTceJMeBvWJaId6dyvTSOwTipqeHhMhOrz6513r1sOKnpvQ7zkhlG8tPrpilwTxHQ==} - magic-string@0.30.19: - resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==} - magicast@0.3.5: resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} @@ -9657,11 +9458,6 @@ packages: mdn-data@2.12.2: resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} - mdsvex@0.12.6: - resolution: {integrity: sha512-pupx2gzWh3hDtm/iDW4WuCpljmyHbHi34r7ktOqpPGvyiM4MyfNgdJ3qMizXdgCErmvYC9Nn/qyjePy+4ss9Wg==} - peerDependencies: - svelte: ^3.56.0 || ^4.0.0 || ^5.0.0-next.120 - media-typer@0.3.0: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} @@ -9976,10 +9772,6 @@ packages: resolution: {integrity: sha512-2emPTb1reeLLYwHxyVx993iYyCHEiRRO+y8NFXFPL5kl5q14sgTK76cXyEKkeKCHeRw35SfdkUJ10Q1KfHuiIQ==} engines: {node: '>= 0.4'} - mri@1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} - engines: {node: '>=4'} - mrmime@2.0.1: resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} engines: {node: '>=10'} @@ -10266,10 +10058,22 @@ packages: resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} engines: {node: '>= 0.4'} + object.entries@1.1.9: + resolution: {integrity: sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==} + engines: {node: '>= 0.4'} + + object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} + engines: {node: '>= 0.4'} + object.getownpropertydescriptors@2.1.8: resolution: {integrity: sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A==} engines: {node: '>= 0.8'} + object.values@1.2.1: + resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} + engines: {node: '>= 0.4'} + obuf@1.1.2: resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} @@ -10887,18 +10691,6 @@ packages: peerDependencies: postcss: ^8.4.21 - postcss-load-config@3.1.4: - resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} - engines: {node: '>= 10'} - peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true - postcss-loader@4.3.0: resolution: {integrity: sha512-M/dSoIiNDOo8Rk0mUqoj4kpGq91gcxCfb9PoyZVdZ76/AuhxylHDYZblNE8o+EQ9AMSASeMFEKxZf5aU6wlx1Q==} engines: {node: '>= 10.13.0'} @@ -11408,16 +11200,6 @@ packages: peerDependencies: postcss: ^8.4.31 - postcss-scss@4.0.9: - resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.4.29 - - postcss-selector-parser@6.0.10: - resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} - engines: {node: '>=4'} - postcss-selector-parser@6.1.2: resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} engines: {node: '>=4'} @@ -11499,6 +11281,17 @@ packages: potpack@2.1.0: resolution: {integrity: sha512-pcaShQc1Shq0y+E7GqJqvZj8DTthWV1KeHGdi0Z6IAin2Oi3JnLCOfwnCo84qc+HAp52wT9nK9H7FAJp5a44GQ==} + preact-iso@2.10.0: + resolution: {integrity: sha512-zQ0dZdgdZ+L+WmD0IgbPrgSajahbrbkNSuCbXG5ZDHaT6vDSaRRlvt3NIP5+w8iltMCBqj8YPROM3El/qIKjvA==} + peerDependencies: + preact: 10.27.2 + preact-render-to-string: '>=6.4.0' + + preact-render-to-string@6.6.1: + resolution: {integrity: sha512-IIMfXRjmbSP9QmG18WJLQa4Z4yx3J0VC9QN5q9z2XYlWSzFlJ+bSm/AyLyyV/YFwjof1OXFX2Mz6Ao60LXudJg==} + peerDependencies: + preact: 10.27.2 + preact@10.27.2: resolution: {integrity: sha512-5SYSgFKSyhCbk6SrXyMpqjb5+MQBgfvEKE/OC+PujcY34sOpqtr+0AZQtPYx5IA6VxynQ7rUPCtKzyovpj9Bpg==} @@ -11515,13 +11308,6 @@ packages: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - prism-svelte@0.4.7: - resolution: {integrity: sha512-yABh19CYbM24V7aS7TuPYRNMqthxwbvx6FF/Rw920YbyBWO3tnyPIqRMgHuSVsLmuHkkBS1Akyof463FVdkeDQ==} - - prismjs@1.30.0: - resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} - engines: {node: '>=6'} - proc-log@2.0.1: resolution: {integrity: sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -11898,6 +11684,10 @@ packages: engines: {node: '>= 0.4'} hasBin: true + resolve@2.0.0-next.5: + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} + hasBin: true + responselike@2.0.1: resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} @@ -12037,10 +11827,6 @@ packages: rxjs@7.8.2: resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} - sade@1.8.1: - resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} - engines: {node: '>=6'} - safaridriver@1.0.0: resolution: {integrity: sha512-J92IFbskyo7OYB3Dt4aTdyhag1GlInrfbPCmMteb7aBK7PwlnGz1HI0+oyNN97j7pV9DqUAVoVgkNRMrfY47mQ==} engines: {node: '>=18.0.0'} @@ -12302,9 +12088,6 @@ packages: set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - set-cookie-parser@2.7.1: - resolution: {integrity: sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==} - set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} @@ -12408,10 +12191,6 @@ packages: resolution: {integrity: sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==} engines: {node: '>=18'} - sirv@3.0.2: - resolution: {integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==} - engines: {node: '>=18'} - slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -12549,11 +12328,6 @@ packages: sprintf-js@1.1.3: resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} - sqlite-wasm-kysely@0.3.0: - resolution: {integrity: sha512-TzjBNv7KwRw6E3pdKdlRyZiTmUIE0UttT/Sl56MVwVARl/u5gp978KepazCJZewFUnlWHz9i3NQd4kOtP/Afdg==} - peerDependencies: - kysely: '*' - sqlite3@5.1.7: resolution: {integrity: sha512-GGIyOiFaG+TUra3JIfkI/zGP8yZYLPQ0pl1bH+ODjiX57sPhrLU5sQJn1y9bDKZUFYkX1crlrPfSYt0BKKdkog==} @@ -12601,6 +12375,10 @@ packages: std-env@3.9.0: resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} + stop-iteration-iterator@1.1.0: + resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} + engines: {node: '>= 0.4'} + stream-buffers@2.2.0: resolution: {integrity: sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg==} engines: {node: '>= 0.10.0'} @@ -12655,6 +12433,13 @@ packages: resolution: {integrity: sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg==} engines: {node: '>=20'} + string.prototype.matchall@4.0.12: + resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} + engines: {node: '>= 0.4'} + + string.prototype.repeat@1.0.0: + resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} + string.prototype.trim@1.2.10: resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} engines: {node: '>= 0.4'} @@ -12865,27 +12650,6 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - svelte-check@4.3.2: - resolution: {integrity: sha512-71udP5w2kaSTcX8iV0hn3o2FWlabQHhJTJLIQrCqMsrcOeDUO2VhCQKKCA8AMVHSPwdxLEWkUWh9OKxns5PD9w==} - engines: {node: '>= 18.0.0'} - hasBin: true - peerDependencies: - svelte: ^4.0.0 || ^5.0.0-next.0 - typescript: '>=5.0.0' - - svelte-eslint-parser@1.3.3: - resolution: {integrity: sha512-oTrDR8Z7Wnguut7QH3YKh7JR19xv1seB/bz4dxU5J/86eJtZOU4eh0/jZq4dy6tAlz/KROxnkRQspv5ZEt7t+Q==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 - peerDependenciesMeta: - svelte: - optional: true - - svelte@5.39.6: - resolution: {integrity: sha512-bOJXmuwLNaoqPCTWO8mPu/fwxI5peGE5Efe7oo6Cakpz/G60vsnVF6mxbGODaxMUFUKEnjm6XOwHEqOht6cbvw==} - engines: {node: '>=18'} - svg-pan-zoom@3.6.2: resolution: {integrity: sha512-JwnvRWfVKw/Xzfe6jriFyfey/lWJLq4bUh2jwoR5ChWQuQoOH8FEh1l/bEp46iHHKHEJWIyFJETbazraxNWECg==} @@ -12943,9 +12707,6 @@ packages: tabulator-tables@6.3.1: resolution: {integrity: sha512-qFW7kfadtcaISQIibKAIy0f3eeIXUVi8242Vly1iJfMD79kfEGzfczNuPBN/80hDxHzQJXYbmJ8VipI40hQtfA==} - tailwindcss@4.1.13: - resolution: {integrity: sha512-i+zidfmTqtwquj4hMEwdjshYYgMbOrPzb9a0M3ZgNa0JMoZeFC6bxZvO8yr8ozS6ix2SDz0+mvryPeBs2TFE+w==} - tapable@2.2.2: resolution: {integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==} engines: {node: '>=6'} @@ -13376,30 +13137,18 @@ packages: unist-util-find-after@5.0.0: resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} - unist-util-is@4.1.0: - resolution: {integrity: sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==} - unist-util-is@6.0.0: resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} unist-util-position@5.0.0: resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} - unist-util-stringify-position@2.0.3: - resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} - unist-util-stringify-position@4.0.0: resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} - unist-util-visit-parents@3.1.1: - resolution: {integrity: sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==} - unist-util-visit-parents@6.0.1: resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} - unist-util-visit@2.0.3: - resolution: {integrity: sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==} - unist-util-visit@5.0.0: resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} @@ -13423,10 +13172,6 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} - unplugin@2.3.10: - resolution: {integrity: sha512-6NCPkv1ClwH+/BGE9QeoTIl09nuiAt0gS28nn1PvYXsGKRwM2TCbFA2QiilmehPDTXIe684k4rZI1yl3A1PCUw==} - engines: {node: '>=18.12.0'} - unused-filename@4.0.1: resolution: {integrity: sha512-ZX6U1J04K1FoSUeoX1OicAhw4d0aro2qo+L8RhJkiGTNtBNkd/Fi1Wxoc9HzcVu6HfOzm0si/N15JjxFmD1z6A==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -13503,10 +13248,6 @@ packages: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} - uuid@10.0.0: - resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} - hasBin: true - uuid@11.1.0: resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==} hasBin: true @@ -13549,9 +13290,6 @@ packages: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} - vfile-message@2.0.4: - resolution: {integrity: sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==} - vfile-message@4.0.2: resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} @@ -13629,14 +13367,6 @@ packages: yaml: optional: true - vitefu@1.1.1: - resolution: {integrity: sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ==} - peerDependencies: - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0 - peerDependenciesMeta: - vite: - optional: true - vitest@3.2.4: resolution: {integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -13796,9 +13526,6 @@ packages: resolution: {integrity: sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==} engines: {node: '>=10.13.0'} - webpack-virtual-modules@0.6.2: - resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} - webpack@5.101.3: resolution: {integrity: sha512-7b0dTKR3Ed//AD/6kkx/o7duS8H3f1a4w3BYpIriX4BzIhjkn4teo05cptsxvLesHFKK5KObnadmCHBwGc+51A==} engines: {node: '>=10.13.0'} @@ -14115,9 +13842,6 @@ packages: engines: {node: '>=8.0.0'} hasBin: true - zimmerframe@1.1.4: - resolution: {integrity: sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==} - zip-stream@6.0.1: resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} engines: {node: '>= 14'} @@ -14586,34 +14310,42 @@ snapshots: dependencies: '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.0 + '@babel/generator': 7.28.3 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) '@babel/helpers': 7.27.6 - '@babel/parser': 7.28.0 + '@babel/parser': 7.28.4 '@babel/template': 7.27.2 - '@babel/traverse': 7.28.0 - '@babel/types': 7.28.1 + '@babel/traverse': 7.28.4 + '@babel/types': 7.28.4 convert-source-map: 2.0.0 - debug: 4.4.1 + debug: 4.4.3(supports-color@6.0.0) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 transitivePeerDependencies: - supports-color + '@babel/eslint-parser@7.28.4(@babel/core@7.28.0)(eslint@9.36.0(jiti@2.6.0))': + dependencies: + '@babel/core': 7.28.0 + '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 + eslint: 9.36.0(jiti@2.6.0) + eslint-visitor-keys: 2.1.0 + semver: 6.3.1 + '@babel/generator@7.27.0': dependencies: - '@babel/parser': 7.27.5 - '@babel/types': 7.28.1 + '@babel/parser': 7.28.4 + '@babel/types': 7.28.4 '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 '@babel/generator@7.28.0': dependencies: - '@babel/parser': 7.28.0 - '@babel/types': 7.28.1 + '@babel/parser': 7.28.4 + '@babel/types': 7.28.4 '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 @@ -14634,7 +14366,7 @@ snapshots: dependencies: '@babel/compat-data': 7.28.0 '@babel/helper-validator-option': 7.27.1 - browserslist: 4.25.1 + browserslist: 4.26.2 lru-cache: 5.1.1 semver: 6.3.1 @@ -14652,7 +14384,7 @@ snapshots: '@babel/core': 7.28.0 '@babel/helper-module-imports': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.28.4 transitivePeerDependencies: - supports-color @@ -14667,7 +14399,7 @@ snapshots: '@babel/helpers@7.27.6': dependencies: '@babel/template': 7.27.2 - '@babel/types': 7.28.1 + '@babel/types': 7.28.4 '@babel/parser@7.27.5': dependencies: @@ -14681,6 +14413,11 @@ snapshots: dependencies: '@babel/types': 7.28.4 + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 @@ -14710,15 +14447,15 @@ snapshots: '@babel/template@7.27.0': dependencies: - '@babel/code-frame': 7.26.2 - '@babel/parser': 7.27.5 - '@babel/types': 7.28.1 + '@babel/code-frame': 7.27.1 + '@babel/parser': 7.28.4 + '@babel/types': 7.28.4 '@babel/template@7.27.2': dependencies: '@babel/code-frame': 7.27.1 - '@babel/parser': 7.28.0 - '@babel/types': 7.28.1 + '@babel/parser': 7.28.4 + '@babel/types': 7.28.4 '@babel/traverse@7.27.0': dependencies: @@ -16665,12 +16402,6 @@ snapshots: '@eslint-community/regexpp@4.12.1': {} - '@eslint/compat@1.4.0(eslint@9.36.0(jiti@2.6.0))': - dependencies: - '@eslint/core': 0.16.0 - optionalDependencies: - eslint: 9.36.0(jiti@2.6.0) - '@eslint/config-array@0.21.0': dependencies: '@eslint/object-schema': 2.1.6 @@ -16689,10 +16420,6 @@ snapshots: dependencies: '@types/json-schema': 7.0.15 - '@eslint/core@0.16.0': - dependencies: - '@types/json-schema': 7.0.15 - '@eslint/eslintrc@3.3.1': dependencies: ajv: 6.12.6 @@ -17036,32 +16763,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@inlang/paraglide-js@2.4.0(babel-plugin-macros@3.1.0)': - dependencies: - '@inlang/recommend-sherlock': 0.2.1 - '@inlang/sdk': 2.4.9(babel-plugin-macros@3.1.0) - commander: 11.1.0 - consola: 3.4.0 - json5: 2.2.3 - unplugin: 2.3.10 - urlpattern-polyfill: 10.1.0 - transitivePeerDependencies: - - babel-plugin-macros - - '@inlang/recommend-sherlock@0.2.1': - dependencies: - comment-json: 4.2.5 - - '@inlang/sdk@2.4.9(babel-plugin-macros@3.1.0)': - dependencies: - '@lix-js/sdk': 0.4.7(babel-plugin-macros@3.1.0) - '@sinclair/typebox': 0.31.28 - kysely: 0.27.6 - sqlite-wasm-kysely: 0.3.0(kysely@0.27.6) - uuid: 10.0.0 - transitivePeerDependencies: - - babel-plugin-macros - '@inquirer/ansi@1.0.0': optional: true @@ -17413,11 +17114,6 @@ snapshots: '@jridgewell/sourcemap-codec': 1.5.5 '@jridgewell/trace-mapping': 0.3.25 - '@jridgewell/remapping@2.3.5': - dependencies: - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 - '@jridgewell/resolve-uri@3.1.2': {} '@jridgewell/set-array@1.2.1': {} @@ -17561,20 +17257,6 @@ snapshots: '@inquirer/prompts': 6.0.1 '@inquirer/type': 1.5.5 - '@lix-js/sdk@0.4.7(babel-plugin-macros@3.1.0)': - dependencies: - '@lix-js/server-protocol-schema': 0.1.1 - dedent: 1.5.1(babel-plugin-macros@3.1.0) - human-id: 4.1.1 - js-sha256: 0.11.1 - kysely: 0.27.6 - sqlite-wasm-kysely: 0.3.0(kysely@0.27.6) - uuid: 10.0.0 - transitivePeerDependencies: - - babel-plugin-macros - - '@lix-js/server-protocol-schema@0.1.1': {} - '@ljharb/resumer@0.0.1': dependencies: '@ljharb/through': 2.3.14 @@ -17651,6 +17333,8 @@ snapshots: '@marijn/find-cluster-break@1.0.2': {} + '@mdn/browser-compat-data@5.7.6': {} + '@mermaid-js/layout-elk@0.2.0(mermaid@11.12.0)': dependencies: d3: 7.9.0 @@ -17719,6 +17403,10 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true + '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': + dependencies: + eslint-scope: 5.1.1 + '@noble/hashes@1.8.0': {} '@nodelib/fs.scandir@2.1.5': @@ -18617,8 +18305,6 @@ snapshots: '@sigstore/core': 3.0.0 '@sigstore/protobuf-specs': 0.5.0 - '@sinclair/typebox@0.31.28': {} - '@sindresorhus/is@4.6.0': {} '@smithy/abort-controller@4.1.1': @@ -18961,8 +18647,6 @@ snapshots: '@socket.io/component-emitter@3.1.2': {} - '@sqlite.org/sqlite-wasm@3.48.0-build4': {} - '@ssddanbrown/codemirror-lang-smarty@1.0.0': {} '@ssddanbrown/codemirror-lang-twig@1.0.0': @@ -18971,8 +18655,6 @@ snapshots: '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 - '@standard-schema/spec@1.0.0': {} - '@stylistic/eslint-plugin@4.4.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2)': dependencies: '@typescript-eslint/utils': 8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2) @@ -18997,54 +18679,6 @@ snapshots: style-search: 0.1.0 stylelint: 16.24.0(typescript@5.9.2) - '@sveltejs/acorn-typescript@1.0.5(acorn@8.15.0)': - dependencies: - acorn: 8.15.0 - - '@sveltejs/adapter-auto@6.1.0(@sveltejs/kit@2.43.5(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.39.6)(vite@7.1.7(@types/node@24.5.1)(jiti@2.6.0)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1)))(svelte@5.39.6)(vite@7.1.7(@types/node@24.5.1)(jiti@2.6.0)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1)))': - dependencies: - '@sveltejs/kit': 2.43.5(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.39.6)(vite@7.1.7(@types/node@24.5.1)(jiti@2.6.0)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1)))(svelte@5.39.6)(vite@7.1.7(@types/node@24.5.1)(jiti@2.6.0)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1)) - - '@sveltejs/kit@2.43.5(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.39.6)(vite@7.1.7(@types/node@24.5.1)(jiti@2.6.0)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1)))(svelte@5.39.6)(vite@7.1.7(@types/node@24.5.1)(jiti@2.6.0)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1))': - dependencies: - '@standard-schema/spec': 1.0.0 - '@sveltejs/acorn-typescript': 1.0.5(acorn@8.15.0) - '@sveltejs/vite-plugin-svelte': 6.2.1(svelte@5.39.6)(vite@7.1.7(@types/node@24.5.1)(jiti@2.6.0)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1)) - '@types/cookie': 0.6.0 - acorn: 8.15.0 - cookie: 1.0.2 - devalue: 5.3.2 - esm-env: 1.2.2 - kleur: 4.1.5 - magic-string: 0.30.19 - mrmime: 2.0.1 - sade: 1.8.1 - set-cookie-parser: 2.7.1 - sirv: 3.0.2 - svelte: 5.39.6 - vite: 7.1.7(@types/node@24.5.1)(jiti@2.6.0)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1) - - '@sveltejs/vite-plugin-svelte-inspector@5.0.1(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.39.6)(vite@7.1.7(@types/node@24.5.1)(jiti@2.6.0)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1)))(svelte@5.39.6)(vite@7.1.7(@types/node@24.5.1)(jiti@2.6.0)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1))': - dependencies: - '@sveltejs/vite-plugin-svelte': 6.2.1(svelte@5.39.6)(vite@7.1.7(@types/node@24.5.1)(jiti@2.6.0)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1)) - debug: 4.4.3(supports-color@6.0.0) - svelte: 5.39.6 - vite: 7.1.7(@types/node@24.5.1)(jiti@2.6.0)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1) - transitivePeerDependencies: - - supports-color - - '@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.39.6)(vite@7.1.7(@types/node@24.5.1)(jiti@2.6.0)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1))': - dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 5.0.1(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.39.6)(vite@7.1.7(@types/node@24.5.1)(jiti@2.6.0)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1)))(svelte@5.39.6)(vite@7.1.7(@types/node@24.5.1)(jiti@2.6.0)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1)) - debug: 4.4.3(supports-color@6.0.0) - deepmerge: 4.3.1 - magic-string: 0.30.19 - svelte: 5.39.6 - vite: 7.1.7(@types/node@24.5.1)(jiti@2.6.0)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1) - vitefu: 1.1.1(vite@7.1.7(@types/node@24.5.1)(jiti@2.6.0)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1)) - transitivePeerDependencies: - - supports-color - '@swc/core-darwin-arm64@1.11.29': optional: true @@ -19109,82 +18743,6 @@ snapshots: dependencies: defer-to-connect: 2.0.1 - '@tailwindcss/node@4.1.13': - dependencies: - '@jridgewell/remapping': 2.3.5 - enhanced-resolve: 5.18.3 - jiti: 2.6.0 - lightningcss: 1.30.1 - magic-string: 0.30.19 - source-map-js: 1.2.1 - tailwindcss: 4.1.13 - - '@tailwindcss/oxide-android-arm64@4.1.13': - optional: true - - '@tailwindcss/oxide-darwin-arm64@4.1.13': - optional: true - - '@tailwindcss/oxide-darwin-x64@4.1.13': - optional: true - - '@tailwindcss/oxide-freebsd-x64@4.1.13': - optional: true - - '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.13': - optional: true - - '@tailwindcss/oxide-linux-arm64-gnu@4.1.13': - optional: true - - '@tailwindcss/oxide-linux-arm64-musl@4.1.13': - optional: true - - '@tailwindcss/oxide-linux-x64-gnu@4.1.13': - optional: true - - '@tailwindcss/oxide-linux-x64-musl@4.1.13': - optional: true - - '@tailwindcss/oxide-wasm32-wasi@4.1.13': - optional: true - - '@tailwindcss/oxide-win32-arm64-msvc@4.1.13': - optional: true - - '@tailwindcss/oxide-win32-x64-msvc@4.1.13': - optional: true - - '@tailwindcss/oxide@4.1.13': - dependencies: - detect-libc: 2.0.4 - tar: 7.4.3 - optionalDependencies: - '@tailwindcss/oxide-android-arm64': 4.1.13 - '@tailwindcss/oxide-darwin-arm64': 4.1.13 - '@tailwindcss/oxide-darwin-x64': 4.1.13 - '@tailwindcss/oxide-freebsd-x64': 4.1.13 - '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.13 - '@tailwindcss/oxide-linux-arm64-gnu': 4.1.13 - '@tailwindcss/oxide-linux-arm64-musl': 4.1.13 - '@tailwindcss/oxide-linux-x64-gnu': 4.1.13 - '@tailwindcss/oxide-linux-x64-musl': 4.1.13 - '@tailwindcss/oxide-wasm32-wasi': 4.1.13 - '@tailwindcss/oxide-win32-arm64-msvc': 4.1.13 - '@tailwindcss/oxide-win32-x64-msvc': 4.1.13 - - '@tailwindcss/typography@0.5.19(tailwindcss@4.1.13)': - dependencies: - postcss-selector-parser: 6.0.10 - tailwindcss: 4.1.13 - - '@tailwindcss/vite@4.1.13(vite@7.1.7(@types/node@24.5.1)(jiti@2.6.0)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1))': - dependencies: - '@tailwindcss/node': 4.1.13 - '@tailwindcss/oxide': 4.1.13 - tailwindcss: 4.1.13 - vite: 7.1.7(@types/node@24.5.1)(jiti@2.6.0)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1) - '@testing-library/dom@10.4.0': dependencies: '@babel/code-frame': 7.27.1 @@ -19309,7 +18867,8 @@ snapshots: dependencies: '@types/express': 5.0.3 - '@types/cookie@0.6.0': {} + '@types/cookie@0.6.0': + optional: true '@types/cookiejar@2.1.5': {} @@ -20543,10 +20102,42 @@ snapshots: array-flatten@1.1.1: {} - array-timsort@1.0.3: {} + array-includes@3.1.9: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-abstract: 1.24.0 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 + is-string: 1.1.1 + math-intrinsics: 1.1.0 array-union@2.1.0: {} + array.prototype.findlast@1.2.5: + 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.1.1 + es-shim-unscopables: 1.1.0 + + array.prototype.flat@1.3.3: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-shim-unscopables: 1.1.0 + + array.prototype.flatmap@1.3.3: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-shim-unscopables: 1.1.0 + array.prototype.reduce@1.0.8: dependencies: call-bind: 1.0.8 @@ -20558,6 +20149,14 @@ snapshots: es-object-atoms: 1.1.1 is-string: 1.1.1 + array.prototype.tosorted@1.1.4: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + es-shim-unscopables: 1.1.0 + arraybuffer.prototype.slice@1.0.4: dependencies: array-buffer-byte-length: 1.0.2 @@ -20572,6 +20171,10 @@ snapshots: assertion-error@2.0.1: {} + ast-metadata-inferer@0.8.1: + dependencies: + '@mdn/browser-compat-data': 5.7.6 + ast-types@0.13.4: dependencies: tslib: 2.8.1 @@ -20623,17 +20226,8 @@ snapshots: transitivePeerDependencies: - debug - axobject-query@4.1.0: {} - b4a@1.6.7: {} - babel-plugin-macros@3.1.0: - dependencies: - '@babel/runtime': 7.28.4 - cosmiconfig: 7.1.0 - resolve: 1.22.10 - optional: true - babel-plugin-transform-hook-names@1.0.2(@babel/core@7.28.0): dependencies: '@babel/core': 7.28.0 @@ -20983,8 +20577,8 @@ snapshots: caniuse-api@3.0.0: dependencies: - browserslist: 4.25.1 - caniuse-lite: 1.0.30001727 + browserslist: 4.26.2 + caniuse-lite: 1.0.30001743 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 @@ -21305,8 +20899,6 @@ snapshots: clsx@1.1.1: {} - clsx@2.1.1: {} - codemirror-lang-elixir@4.0.0: dependencies: '@codemirror/language': 6.11.0 @@ -21385,14 +20977,6 @@ snapshots: commander@9.5.0: {} - comment-json@4.2.5: - dependencies: - array-timsort: 1.0.3 - core-util-is: 1.0.3 - esprima: 4.0.1 - has-own-prop: 2.0.0 - repeat-string: 1.6.1 - comment-parser@1.4.1: {} commondir@1.0.1: {} @@ -21449,8 +21033,6 @@ snapshots: connect-history-api-fallback@2.0.0: {} - consola@3.4.0: {} - console-control-strings@1.1.0: optional: true @@ -21481,8 +21063,6 @@ snapshots: cookie@0.7.2: {} - cookie@1.0.2: {} - cookiejar@2.1.4: {} copy-anything@2.0.6: @@ -22169,10 +21749,6 @@ snapshots: dependencies: mimic-response: 3.1.0 - dedent@1.5.1(babel-plugin-macros@3.1.0): - optionalDependencies: - babel-plugin-macros: 3.1.0 - deep-eql@5.0.2: {} deep-equal@1.1.2: @@ -22279,8 +21855,6 @@ snapshots: detect-touch-events@2.0.2: {} - devalue@5.3.2: {} - devlop@1.1.0: dependencies: dequal: 2.0.3 @@ -22311,6 +21885,10 @@ snapshots: dependencies: '@leichtgewicht/ip-codec': 2.0.5 + doctrine@2.1.0: + dependencies: + esutils: 2.0.3 + doctrine@3.0.0: dependencies: esutils: 2.0.3 @@ -22674,12 +22252,88 @@ snapshots: unbox-primitive: 1.1.0 which-typed-array: 1.1.19 + es-abstract@1.24.0: + 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 + es-array-method-boxes-properly@1.0.0: {} es-define-property@1.0.1: {} es-errors@1.3.0: {} + es-iterator-helpers@1.2.1: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + es-set-tostringtag: 2.1.0 + function-bind: 1.1.2 + get-intrinsic: 1.3.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 + internal-slot: 1.1.0 + iterator.prototype: 1.1.5 + safe-array-concat: 1.1.3 + es-module-lexer@1.7.0: {} es-object-atoms@1.1.1: @@ -22693,6 +22347,10 @@ snapshots: has-tostringtag: 1.0.2 hasown: 2.0.2 + es-shim-unscopables@1.1.0: + dependencies: + hasown: 2.0.2 + es-to-primitive@1.3.0: dependencies: is-callable: 1.2.7 @@ -22787,6 +22445,21 @@ snapshots: transitivePeerDependencies: - supports-color + eslint-config-preact@2.0.0(eslint@9.36.0(jiti@2.6.0)): + dependencies: + '@babel/core': 7.28.0 + '@babel/eslint-parser': 7.28.4(@babel/core@7.28.0)(eslint@9.36.0(jiti@2.6.0)) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.28.0) + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.0) + '@eslint/js': 9.36.0 + eslint: 9.36.0(jiti@2.6.0) + eslint-plugin-compat: 6.0.2(eslint@9.36.0(jiti@2.6.0)) + eslint-plugin-react: 7.37.5(eslint@9.36.0(jiti@2.6.0)) + eslint-plugin-react-hooks: 5.2.0(eslint@9.36.0(jiti@2.6.0)) + globals: 16.4.0 + transitivePeerDependencies: + - supports-color + eslint-config-prettier@10.1.8(eslint@9.36.0(jiti@2.6.0)): dependencies: eslint: 9.36.0(jiti@2.6.0) @@ -22803,6 +22476,18 @@ snapshots: validate-npm-package-name: 6.0.2 yaml: 2.8.1 + eslint-plugin-compat@6.0.2(eslint@9.36.0(jiti@2.6.0)): + dependencies: + '@mdn/browser-compat-data': 5.7.6 + ast-metadata-inferer: 0.8.1 + browserslist: 4.26.2 + caniuse-lite: 1.0.30001743 + eslint: 9.36.0(jiti@2.6.0) + find-up: 5.0.0 + globals: 15.15.0 + lodash.memoize: 4.1.2 + semver: 7.7.2 + eslint-plugin-mocha@11.1.0(eslint@9.36.0(jiti@2.6.0)): dependencies: '@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(jiti@2.6.0)) @@ -22818,23 +22503,27 @@ snapshots: dependencies: eslint: 9.36.0(jiti@2.6.0) - eslint-plugin-svelte@3.12.4(eslint@9.36.0(jiti@2.6.0))(svelte@5.39.6)(ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.5.1)(typescript@5.9.2)): + eslint-plugin-react@7.37.5(eslint@9.36.0(jiti@2.6.0)): dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(jiti@2.6.0)) - '@jridgewell/sourcemap-codec': 1.5.5 + array-includes: 3.1.9 + array.prototype.findlast: 1.2.5 + array.prototype.flatmap: 1.3.3 + array.prototype.tosorted: 1.1.4 + doctrine: 2.1.0 + es-iterator-helpers: 1.2.1 eslint: 9.36.0(jiti@2.6.0) - esutils: 2.0.3 - globals: 16.4.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(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.5.1)(typescript@5.9.2)) - postcss-safe-parser: 7.0.1(postcss@8.5.6) - semver: 7.7.2 - svelte-eslint-parser: 1.3.3(svelte@5.39.6) - optionalDependencies: - svelte: 5.39.6 - transitivePeerDependencies: - - ts-node + estraverse: 5.3.0 + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.2 + object.entries: 1.1.9 + object.fromentries: 2.0.8 + object.values: 1.2.1 + prop-types: 15.8.1 + resolve: 2.0.0-next.5 + semver: 6.3.1 + string.prototype.matchall: 4.0.12 + string.prototype.repeat: 1.0.0 eslint-scope@5.1.1: dependencies: @@ -22846,6 +22535,8 @@ snapshots: esrecurse: 4.3.0 estraverse: 5.3.0 + eslint-visitor-keys@2.1.0: {} + eslint-visitor-keys@3.4.3: {} eslint-visitor-keys@4.2.1: {} @@ -22892,8 +22583,6 @@ snapshots: transitivePeerDependencies: - supports-color - esm-env@1.2.2: {} - espree@10.4.0: dependencies: acorn: 8.15.0 @@ -22912,10 +22601,6 @@ snapshots: dependencies: estraverse: 5.3.0 - esrap@2.1.0: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - esrecurse@4.3.0: dependencies: estraverse: 5.3.0 @@ -23617,7 +23302,7 @@ snapshots: fs.realpath: 1.0.0 inflight: 1.0.6 inherits: 2.0.4 - minimatch: 3.0.4 + minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 @@ -23761,8 +23446,6 @@ snapshots: has-flag@4.0.0: {} - has-own-prop@2.0.0: {} - has-property-descriptors@1.0.2: dependencies: es-define-property: 1.0.1 @@ -23925,7 +23608,7 @@ snapshots: hosted-git-info@9.0.0: dependencies: - lru-cache: 11.2.1 + lru-cache: 11.2.2 hpack.js@2.1.6: dependencies: @@ -24101,8 +23784,6 @@ snapshots: transitivePeerDependencies: - supports-color - human-id@4.1.1: {} - human-signals@2.1.0: {} humanize-ms@1.2.1: @@ -24356,6 +24037,8 @@ snapshots: xtend: 4.0.2 optional: true + is-negative-zero@2.0.3: {} + is-network-error@1.2.0: {} is-node-process@1.2.0: @@ -24393,10 +24076,6 @@ snapshots: dependencies: '@types/estree': 1.0.8 - is-reference@3.0.3: - dependencies: - '@types/estree': 1.0.8 - is-regex@1.1.4: dependencies: call-bind: 1.0.8 @@ -24501,6 +24180,15 @@ snapshots: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 + iterator.prototype@1.1.5: + dependencies: + define-data-property: 1.1.4 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 + has-symbols: 1.1.0 + set-function-name: 2.0.2 + jackspeak@3.4.3: dependencies: '@isaacs/cliui': 8.0.2 @@ -24598,8 +24286,6 @@ snapshots: jquery@3.7.1: {} - js-sha256@0.11.1: {} - js-tokens@4.0.0: {} js-tokens@9.0.1: {} @@ -24728,6 +24414,13 @@ snapshots: jsplumb@2.15.6: {} + jsx-ast-utils@3.3.5: + dependencies: + array-includes: 3.1.9 + array.prototype.flat: 1.3.3 + object.assign: 4.1.7 + object.values: 1.2.1 + jszip@3.10.1: dependencies: lie: 3.3.0 @@ -24765,8 +24458,6 @@ snapshots: kind-of@6.0.3: {} - kleur@4.1.5: {} - klona@2.0.6: {} knockout@3.5.1: {} @@ -24775,8 +24466,6 @@ snapshots: kolorist@1.8.0: {} - kysely@0.27.6: {} - langium@3.3.1: dependencies: chevrotain: 11.0.3 @@ -24875,6 +24564,7 @@ snapshots: lightningcss-linux-x64-musl: 1.30.1 lightningcss-win32-arm64-msvc: 1.30.1 lightningcss-win32-x64-msvc: 1.30.1 + optional: true lilconfig@2.1.0: {} @@ -24939,8 +24629,6 @@ snapshots: type-fest: 4.26.0 userhome: 1.0.1 - locate-character@3.0.0: {} - locate-path@2.0.0: dependencies: p-locate: 2.0.0 @@ -25059,10 +24747,6 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 - magic-string@0.30.19: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - magicast@0.3.5: dependencies: '@babel/parser': 7.28.0 @@ -25364,16 +25048,6 @@ snapshots: mdn-data@2.12.2: {} - mdsvex@0.12.6(svelte@5.39.6): - dependencies: - '@types/mdast': 4.0.4 - '@types/unist': 2.0.11 - prism-svelte: 0.4.7 - prismjs: 1.30.0 - svelte: 5.39.6 - unist-util-visit: 2.0.3 - vfile-message: 2.0.4 - media-typer@0.3.0: {} media-typer@1.1.0: {} @@ -25844,8 +25518,6 @@ snapshots: hasown: 2.0.2 isarray: 2.0.5 - mri@1.2.0: {} - mrmime@2.0.1: {} ms@2.0.0: {} @@ -26170,6 +25842,20 @@ snapshots: has-symbols: 1.1.0 object-keys: 1.1.1 + object.entries@1.1.9: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + + object.fromentries@2.0.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-object-atoms: 1.1.1 + object.getownpropertydescriptors@2.1.8: dependencies: array.prototype.reduce: 1.0.8 @@ -26180,6 +25866,13 @@ snapshots: gopd: 1.2.0 safe-array-concat: 1.1.3 + object.values@1.2.1: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + obuf@1.1.2: {} oidc-token-hash@5.1.0: {} @@ -26639,7 +26332,7 @@ snapshots: postcss-colormin@6.1.0(postcss@8.5.3): dependencies: - browserslist: 4.25.1 + browserslist: 4.26.2 caniuse-api: 3.0.0 colord: 2.9.3 postcss: 8.5.3 @@ -26669,7 +26362,7 @@ snapshots: postcss-convert-values@6.1.0(postcss@8.5.3): dependencies: - browserslist: 4.25.1 + browserslist: 4.26.2 postcss: 8.5.3 postcss-value-parser: 4.2.0 @@ -26775,14 +26468,6 @@ snapshots: camelcase-css: 2.0.1 postcss: 8.5.6 - postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.5.1)(typescript@5.9.2)): - dependencies: - lilconfig: 2.1.0 - yaml: 1.10.2 - optionalDependencies: - postcss: 8.5.6 - ts-node: 10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.5.1)(typescript@5.9.2) - postcss-loader@4.3.0(postcss@8.5.3)(webpack@5.101.3(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.10)): dependencies: cosmiconfig: 7.1.0 @@ -26848,7 +26533,7 @@ snapshots: postcss-merge-rules@6.1.1(postcss@8.5.3): dependencies: - browserslist: 4.25.1 + browserslist: 4.26.2 caniuse-api: 3.0.0 cssnano-utils: 4.0.2(postcss@8.5.3) postcss: 8.5.3 @@ -26927,7 +26612,7 @@ snapshots: postcss-minify-params@6.1.0(postcss@8.5.3): dependencies: - browserslist: 4.25.1 + browserslist: 4.26.2 cssnano-utils: 4.0.2(postcss@8.5.3) postcss: 8.5.3 postcss-value-parser: 4.2.0 @@ -27164,7 +26849,7 @@ snapshots: postcss-normalize-unicode@6.1.0(postcss@8.5.3): dependencies: - browserslist: 4.25.1 + browserslist: 4.26.2 postcss: 8.5.3 postcss-value-parser: 4.2.0 @@ -27253,7 +26938,7 @@ snapshots: postcss-reduce-initial@6.1.0(postcss@8.5.3): dependencies: - browserslist: 4.25.1 + browserslist: 4.26.2 caniuse-api: 3.0.0 postcss: 8.5.3 @@ -27295,15 +26980,6 @@ snapshots: dependencies: postcss: 8.5.6 - postcss-scss@4.0.9(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - - postcss-selector-parser@6.0.10: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - postcss-selector-parser@6.1.2: dependencies: cssesc: 3.0.0 @@ -27386,6 +27062,15 @@ snapshots: potpack@2.1.0: {} + preact-iso@2.10.0(preact-render-to-string@6.6.1(preact@10.27.2))(preact@10.27.2): + dependencies: + preact: 10.27.2 + preact-render-to-string: 6.6.1(preact@10.27.2) + + preact-render-to-string@6.6.1(preact@10.27.2): + dependencies: + preact: 10.27.2 + preact@10.27.2: {} prebuild-install@7.1.3: @@ -27413,10 +27098,6 @@ snapshots: ansi-styles: 5.2.0 react-is: 17.0.2 - prism-svelte@0.4.7: {} - - prismjs@1.30.0: {} - proc-log@2.0.1: {} proc-log@5.0.0: {} @@ -27829,7 +27510,8 @@ snapshots: mdast-util-to-markdown: 2.1.2 unified: 11.0.5 - repeat-string@1.6.1: {} + repeat-string@1.6.1: + optional: true require-directory@2.1.1: {} @@ -27865,6 +27547,12 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + resolve@2.0.0-next.5: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + responselike@2.0.1: dependencies: lowercase-keys: 2.0.0 @@ -28075,10 +27763,6 @@ snapshots: tslib: 2.8.1 optional: true - sade@1.8.1: - dependencies: - mri: 1.2.0 - safaridriver@1.0.0: {} safe-array-concat@1.1.3: @@ -28380,8 +28064,6 @@ snapshots: set-blocking@2.0.0: {} - set-cookie-parser@2.7.1: {} - set-function-length@1.2.2: dependencies: define-data-property: 1.1.4 @@ -28510,12 +28192,6 @@ snapshots: mrmime: 2.0.1 totalist: 3.0.1 - sirv@3.0.2: - dependencies: - '@polka/url': 1.0.0-next.29 - mrmime: 2.0.1 - totalist: 3.0.1 - slash@3.0.0: {} slice-ansi@4.0.0: @@ -28679,11 +28355,6 @@ snapshots: sprintf-js@1.1.3: {} - sqlite-wasm-kysely@0.3.0(kysely@0.27.6): - dependencies: - '@sqlite.org/sqlite-wasm': 3.48.0-build4 - kysely: 0.27.6 - sqlite3@5.1.7: dependencies: bindings: 1.5.0 @@ -28727,6 +28398,11 @@ snapshots: std-env@3.9.0: {} + stop-iteration-iterator@1.1.0: + dependencies: + es-errors: 1.3.0 + internal-slot: 1.1.0 + stream-buffers@2.2.0: optional: true @@ -28793,6 +28469,27 @@ snapshots: get-east-asian-width: 1.4.0 strip-ansi: 7.1.2 + string.prototype.matchall@4.0.12: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 + gopd: 1.2.0 + has-symbols: 1.1.0 + internal-slot: 1.1.0 + regexp.prototype.flags: 1.5.4 + set-function-name: 2.0.2 + side-channel: 1.1.0 + + string.prototype.repeat@1.0.0: + dependencies: + define-properties: 1.2.1 + es-abstract: 1.23.9 + string.prototype.trim@1.2.10: dependencies: call-bind: 1.0.8 @@ -28907,13 +28604,13 @@ snapshots: stylehacks@6.1.1(postcss@8.5.3): dependencies: - browserslist: 4.25.1 + browserslist: 4.26.2 postcss: 8.5.3 postcss-selector-parser: 6.1.2 stylehacks@7.0.4(postcss@8.5.3): dependencies: - browserslist: 4.25.1 + browserslist: 4.26.2 postcss: 8.5.3 postcss-selector-parser: 6.1.2 @@ -29099,46 +28796,6 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte-check@4.3.2(picomatch@4.0.3)(svelte@5.39.6)(typescript@5.9.2): - dependencies: - '@jridgewell/trace-mapping': 0.3.31 - chokidar: 4.0.3 - fdir: 6.5.0(picomatch@4.0.3) - picocolors: 1.1.1 - sade: 1.8.1 - svelte: 5.39.6 - typescript: 5.9.2 - transitivePeerDependencies: - - picomatch - - svelte-eslint-parser@1.3.3(svelte@5.39.6): - dependencies: - eslint-scope: 8.4.0 - eslint-visitor-keys: 4.2.1 - espree: 10.4.0 - postcss: 8.5.6 - postcss-scss: 4.0.9(postcss@8.5.6) - postcss-selector-parser: 7.1.0 - optionalDependencies: - svelte: 5.39.6 - - svelte@5.39.6: - dependencies: - '@jridgewell/remapping': 2.3.5 - '@jridgewell/sourcemap-codec': 1.5.5 - '@sveltejs/acorn-typescript': 1.0.5(acorn@8.15.0) - '@types/estree': 1.0.8 - acorn: 8.15.0 - aria-query: 5.3.2 - axobject-query: 4.1.0 - clsx: 2.1.1 - esm-env: 1.2.2 - esrap: 2.1.0 - is-reference: 3.0.3 - locate-character: 3.0.0 - magic-string: 0.30.19 - zimmerframe: 1.1.4 - svg-pan-zoom@3.6.2: {} svg-tags@1.0.0: {} @@ -29219,8 +28876,6 @@ snapshots: tabulator-tables@6.3.1: {} - tailwindcss@4.1.13: {} - tapable@2.2.2: {} tapable@2.2.3: {} @@ -29536,27 +29191,6 @@ snapshots: optionalDependencies: '@swc/core': 1.11.29(@swc/helpers@0.5.17) - ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.5.1)(typescript@5.9.2): - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.11 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 24.5.1 - acorn: 8.14.1 - acorn-walk: 8.3.4 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 5.9.2 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - optionalDependencies: - '@swc/core': 1.11.29(@swc/helpers@0.5.17) - optional: true - tslib@2.8.1: {} tsx@4.20.6: @@ -29768,8 +29402,6 @@ snapshots: '@types/unist': 3.0.3 unist-util-is: 6.0.0 - unist-util-is@4.1.0: {} - unist-util-is@6.0.0: dependencies: '@types/unist': 3.0.3 @@ -29778,30 +29410,15 @@ snapshots: dependencies: '@types/unist': 3.0.3 - unist-util-stringify-position@2.0.3: - dependencies: - '@types/unist': 2.0.11 - unist-util-stringify-position@4.0.0: dependencies: '@types/unist': 3.0.3 - unist-util-visit-parents@3.1.1: - dependencies: - '@types/unist': 2.0.11 - unist-util-is: 4.1.0 - unist-util-visit-parents@6.0.1: dependencies: '@types/unist': 3.0.3 unist-util-is: 6.0.0 - unist-util-visit@2.0.3: - dependencies: - '@types/unist': 2.0.11 - unist-util-is: 4.1.0 - unist-util-visit-parents: 3.1.1 - unist-util-visit@5.0.0: dependencies: '@types/unist': 3.0.3 @@ -29819,13 +29436,6 @@ snapshots: unpipe@1.0.0: {} - unplugin@2.3.10: - dependencies: - '@jridgewell/remapping': 2.3.5 - acorn: 8.15.0 - picomatch: 4.0.3 - webpack-virtual-modules: 0.6.2 - unused-filename@4.0.1: dependencies: escape-string-regexp: 5.0.0 @@ -29899,8 +29509,6 @@ snapshots: utils-merge@1.0.1: {} - uuid@10.0.0: {} - uuid@11.1.0: {} uuid@8.3.2: {} @@ -29929,11 +29537,6 @@ snapshots: vary@1.1.2: {} - vfile-message@2.0.4: - dependencies: - '@types/unist': 2.0.11 - unist-util-stringify-position: 2.0.3 - vfile-message@4.0.2: dependencies: '@types/unist': 3.0.3 @@ -30049,10 +29652,6 @@ snapshots: tsx: 4.20.6 yaml: 2.8.1 - vitefu@1.1.1(vite@7.1.7(@types/node@24.5.1)(jiti@2.6.0)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1)): - optionalDependencies: - vite: 7.1.7(@types/node@24.5.1)(jiti@2.6.0)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1) - vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.18.6)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.6.0)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.30.1)(msw@2.7.5(@types/node@22.18.6)(typescript@5.9.2))(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1): dependencies: '@types/chai': 5.2.2 @@ -30290,8 +29889,6 @@ snapshots: webpack-sources@3.3.3: {} - webpack-virtual-modules@0.6.2: {} - webpack@5.101.3(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.10): dependencies: '@types/eslint-scope': 3.7.7 @@ -30677,8 +30274,6 @@ snapshots: optionalDependencies: commander: 9.5.0 - zimmerframe@1.1.4: {} - zip-stream@6.0.1: dependencies: archiver-utils: 5.0.2 diff --git a/scripts/electron-rebuild.mts b/scripts/electron-rebuild.mts index 6ed8360e7..b2d41aa88 100644 --- a/scripts/electron-rebuild.mts +++ b/scripts/electron-rebuild.mts @@ -1,5 +1,5 @@ import { join, resolve } from "path"; -import { cpSync, existsSync, mkdirSync, readFileSync, rmSync } from "fs"; +import { cpSync, exists, existsSync, mkdirSync, readFileSync, rmSync } from "fs"; import { execSync } from "child_process"; import { rebuild } from "@electron/rebuild" import { getElectronPath, isNixOS } from "./utils.mjs"; @@ -12,8 +12,15 @@ function copyNativeDependencies(projectRoot: string) { if (existsSync(destPath)) { rmSync(destPath, { recursive: true }); } - mkdirSync(destPath); - cpSync(join(workspaceRoot, "node_modules/better-sqlite3"), destPath, { recursive: true, dereference: true }); + mkdirSync(destPath, { recursive: true }); + + const sourcePath = join(workspaceRoot, "node_modules/better-sqlite3"); + if (!existsSync(sourcePath)) { + console.warn("Nothing to rebuild as source path is missing:", sourcePath); + console.info("For CI builds with filtered package installs, this is normal. For normal development, it's not."); + process.exit(0); + } + cpSync(sourcePath, destPath, { recursive: true, dereference: true }); } function rebuildNativeDependencies(projectRoot: string) { diff --git a/tsconfig.json b/tsconfig.json index db83e7978..f2e5a0b65 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -21,6 +21,9 @@ { "path": "./apps/desktop" }, + { + "path": "./apps/website" + }, { "path": "./apps/dump-db" },