diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 75c9d0dcac..2191c471e6 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -2,3 +2,5 @@ github: [eliandoran] custom: ["https://paypal.me/eliandoran"] +liberapay: ElianDoran +buy_me_a_coffee: eliandoran diff --git a/.github/instructions/nx.instructions.md b/.github/instructions/nx.instructions.md new file mode 100644 index 0000000000..d5894c44d6 --- /dev/null +++ b/.github/instructions/nx.instructions.md @@ -0,0 +1,40 @@ +--- +applyTo: '**' +--- + +// This file is automatically generated by Nx Console + +You are in an nx workspace using Nx 21.3.9 and pnpm as the package manager. + +You have access to the Nx MCP server and the tools it provides. Use them. Follow these guidelines in order to best help the user: + +# General Guidelines +- When answering questions, use the nx_workspace tool first to gain an understanding of the workspace architecture +- For questions around nx configuration, best practices or if you're unsure, use the nx_docs tool to get relevant, up-to-date docs!! Always use this instead of assuming things about nx configuration +- If the user needs help with an Nx configuration or project graph error, use the 'nx_workspace' tool to get any errors +- To help answer questions about the workspace structure or simply help with demonstrating how tasks depend on each other, use the 'nx_visualize_graph' tool + +# Generation Guidelines +If the user wants to generate something, use the following flow: + +- learn about the nx workspace and any specifics the user needs by using the 'nx_workspace' tool and the 'nx_project_details' tool if applicable +- get the available generators using the 'nx_generators' tool +- decide which generator to use. If no generators seem relevant, check the 'nx_available_plugins' tool to see if the user could install a plugin to help them +- get generator details using the 'nx_generator_schema' tool +- you may use the 'nx_docs' tool to learn more about a specific generator or technology if you're unsure +- decide which options to provide in order to best complete the user's request. Don't make any assumptions and keep the options minimalistic +- open the generator UI using the 'nx_open_generate_ui' tool +- wait for the user to finish the generator +- read the generator log file using the 'nx_read_generator_log' tool +- use the information provided in the log file to answer the user's question or continue with what they were doing + +# Running Tasks Guidelines +If the user wants help with tasks or commands (which include keywords like "test", "build", "lint", or other similar actions), use the following flow: +- Use the 'nx_current_running_tasks_details' tool to get the list of tasks (this can include tasks that were completed, stopped or failed). +- If there are any tasks, ask the user if they would like help with a specific task then use the 'nx_current_running_task_output' tool to get the terminal output for that task/command +- Use the terminal output from 'nx_current_running_task_output' to see what's wrong and help the user fix their problem. Use the appropriate tools if necessary +- If the user would like to rerun the task or command, always use `nx run ` to rerun in the terminal. This will ensure that the task will run in the nx context and will be run the same way it originally executed +- If the task was marked as "continuous" do not offer to rerun the task. This task is already running and the user can see the output in the terminal. You can use 'nx_current_running_task_output' to get the output of the task to verify the output. + + + diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml new file mode 100644 index 0000000000..90751b906e --- /dev/null +++ b/.github/workflows/checks.yml @@ -0,0 +1,17 @@ +name: Checks +on: + push: + pull_request_target: + types: [synchronize] + +jobs: + main: + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - name: Check if PRs have conflicts + uses: eps1lon/actions-label-merge-conflict@v3 + with: + dirtyLabel: "merge-conflicts" + repoToken: "${{ secrets.MERGE_CONFLICT_LABEL_PAT }}" diff --git a/.github/workflows/main-docker.yml b/.github/workflows/main-docker.yml index 40c5149c74..ca84dd20bd 100644 --- a/.github/workflows/main-docker.yml +++ b/.github/workflows/main-docker.yml @@ -223,7 +223,7 @@ jobs: - build steps: - name: Download digests - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v5 with: path: /tmp/digests pattern: digests-* diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b05cb4939a..1d84519ea7 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -107,7 +107,7 @@ jobs: docs/Release Notes - name: Download all artifacts - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v5 with: merge-multiple: true pattern: release-* diff --git a/.github/workflows/unblock_signing.yml b/.github/workflows/unblock_signing.yml new file mode 100644 index 0000000000..0860f89daa --- /dev/null +++ b/.github/workflows/unblock_signing.yml @@ -0,0 +1,11 @@ +name: Unblock signing +on: + workflow_dispatch: + +jobs: + unblock-win-signing: + runs-on: win-signing + steps: + - run: | + cat ${{ vars.WINDOWS_SIGN_ERROR_LOG }} + rm ${{ vars.WINDOWS_SIGN_ERROR_LOG }} diff --git a/.mailmap b/.mailmap index d0f5fedf0b..33287fa2ca 100644 --- a/.mailmap +++ b/.mailmap @@ -1,2 +1,2 @@ -Adam Zivner -Adam Zivner \ No newline at end of file +zadam +zadam \ No newline at end of file diff --git a/.nvmrc b/.nvmrc index fcc2269271..89b93fd74a 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -22.17.0 \ No newline at end of file +22.18.0 \ No newline at end of file diff --git a/.vscode/mcp.json b/.vscode/mcp.json new file mode 100644 index 0000000000..28994bb29e --- /dev/null +++ b/.vscode/mcp.json @@ -0,0 +1,8 @@ +{ + "servers": { + "nx-mcp": { + "type": "http", + "url": "http://localhost:9461/mcp" + } + } +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index 5a27649837..4ee21bb3ce 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -28,5 +28,13 @@ "typescript.validate.enable": true, "typescript.tsserver.experimental.enableProjectDiagnostics": true, "typescript.tsdk": "node_modules/typescript/lib", - "typescript.enablePromptUseWorkspaceTsdk": true + "typescript.enablePromptUseWorkspaceTsdk": true, + "search.exclude": { + "**/node_modules": true, + "docs/**/*.html": true, + "docs/**/*.png": true, + "apps/server/src/assets/doc_notes/**": true, + "apps/edit-docs/demo/**": true + }, + "nxConsole.generateAiAgentRules": true } \ No newline at end of file diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000000..942ad06e3f --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,161 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## Overview + +Trilium Notes is a hierarchical note-taking application with advanced features like synchronization, scripting, and rich text editing. It's built as a TypeScript monorepo using NX, with multiple applications and shared packages. + +## Development Commands + +### Setup +- `pnpm install` - Install all dependencies +- `corepack enable` - Enable pnpm if not available + +### Running Applications +- `pnpm run server:start` - Start development server (http://localhost:8080) +- `pnpm nx run server:serve` - Alternative server start command +- `pnpm nx run desktop:serve` - Run desktop Electron app +- `pnpm run server:start-prod` - Run server in production mode + +### Building +- `pnpm nx build ` - Build specific project (server, client, desktop, etc.) +- `pnpm run client:build` - Build client application +- `pnpm run server:build` - Build server application +- `pnpm run electron:build` - Build desktop application + +### Testing +- `pnpm test:all` - Run all tests (parallel + sequential) +- `pnpm test:parallel` - Run tests that can run in parallel +- `pnpm test:sequential` - Run tests that must run sequentially (server, ckeditor5-mermaid, ckeditor5-math) +- `pnpm nx test ` - Run tests for specific project +- `pnpm coverage` - Generate coverage reports + +### Linting & Type Checking +- `pnpm nx run :lint` - Lint specific project +- `pnpm nx run :typecheck` - Type check specific project + +## Architecture Overview + +### Monorepo Structure +- **apps/**: Runnable applications + - `client/` - Frontend application (shared by server and desktop) + - `server/` - Node.js server with web interface + - `desktop/` - Electron desktop application + - `web-clipper/` - Browser extension for saving web content + - Additional tools: `db-compare`, `dump-db`, `edit-docs` + +- **packages/**: Shared libraries + - `commons/` - Shared interfaces and utilities + - `ckeditor5/` - Custom rich text editor with Trilium-specific plugins + - `codemirror/` - Code editor customizations + - `highlightjs/` - Syntax highlighting + - Custom CKEditor plugins: `ckeditor5-admonition`, `ckeditor5-footnotes`, `ckeditor5-math`, `ckeditor5-mermaid` + +### Core Architecture Patterns + +#### Three-Layer Cache System +- **Becca** (Backend Cache): Server-side entity cache (`apps/server/src/becca/`) +- **Froca** (Frontend Cache): Client-side mirror of backend data (`apps/client/src/services/froca.ts`) +- **Shaca** (Share Cache): Optimized cache for shared/published notes (`apps/server/src/share/`) + +#### Entity System +Core entities are defined in `apps/server/src/becca/entities/`: +- `BNote` - Notes with content and metadata +- `BBranch` - Hierarchical relationships between notes (allows multiple parents) +- `BAttribute` - Key-value metadata attached to notes +- `BRevision` - Note version history +- `BOption` - Application configuration + +#### Widget-Based UI +Frontend uses a widget system (`apps/client/src/widgets/`): +- `BasicWidget` - Base class for all UI components +- `NoteContextAwareWidget` - Widgets that respond to note changes +- `RightPanelWidget` - Widgets displayed in the right panel +- Type-specific widgets in `type_widgets/` directory + +#### API Architecture +- **Internal API**: REST endpoints in `apps/server/src/routes/api/` +- **ETAPI**: External API for third-party integrations (`apps/server/src/etapi/`) +- **WebSocket**: Real-time synchronization (`apps/server/src/services/ws.ts`) + +### Key Files for Understanding Architecture + +1. **Application Entry Points**: + - `apps/server/src/main.ts` - Server startup + - `apps/client/src/desktop.ts` - Client initialization + +2. **Core Services**: + - `apps/server/src/becca/becca.ts` - Backend data management + - `apps/client/src/services/froca.ts` - Frontend data synchronization + - `apps/server/src/services/backend_script_api.ts` - Scripting API + +3. **Database Schema**: + - `apps/server/src/assets/db/schema.sql` - Core database structure + +4. **Configuration**: + - `nx.json` - NX workspace configuration + - `package.json` - Project dependencies and scripts + +## Note Types and Features + +Trilium supports multiple note types, each with specialized widgets: +- **Text**: Rich text with CKEditor5 (markdown import/export) +- **Code**: Syntax-highlighted code editing with CodeMirror +- **File**: Binary file attachments +- **Image**: Image display with editing capabilities +- **Canvas**: Drawing/diagramming with Excalidraw +- **Mermaid**: Diagram generation +- **Relation Map**: Visual note relationship mapping +- **Web View**: Embedded web pages +- **Doc/Book**: Hierarchical documentation structure + +## Development Guidelines + +### Testing Strategy +- Server tests run sequentially due to shared database +- Client tests can run in parallel +- E2E tests use Playwright for both server and desktop apps +- Build validation tests check artifact integrity + +### Scripting System +Trilium provides powerful user scripting capabilities: +- Frontend scripts run in browser context +- Backend scripts run in Node.js context with full API access +- Script API documentation available in `docs/Script API/` + +### Internationalization +- Translation files in `apps/client/src/translations/` +- Supported languages: English, German, Spanish, French, Romanian, Chinese + +### Security Considerations +- Per-note encryption with granular protected sessions +- CSRF protection for API endpoints +- OpenID and TOTP authentication support +- Sanitization of user-generated content + +## Common Development Tasks + +### Adding New Note Types +1. Create widget in `apps/client/src/widgets/type_widgets/` +2. Register in `apps/client/src/services/note_types.ts` +3. Add backend handling in `apps/server/src/services/notes.ts` + +### Extending Search +- Search expressions handled in `apps/server/src/services/search/` +- Add new search operators in search context files + +### Custom CKEditor Plugins +- Create new package in `packages/` following existing plugin structure +- Register in `packages/ckeditor5/src/plugins.ts` + +### Database Migrations +- Add migration scripts in `apps/server/src/migrations/` +- Update schema in `apps/server/src/assets/db/schema.sql` + +## Build System Notes +- Uses NX for monorepo management with build caching +- Vite for fast development builds +- ESBuild for production optimization +- pnpm workspaces for dependency management +- Docker support with multi-stage builds \ No newline at end of file diff --git a/README.md b/README.md index 11391c89e4..2769e642bb 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ # Trilium Notes -![GitHub Sponsors](https://img.shields.io/github/sponsors/eliandoran?style=flat-square) -![Docker Pulls](https://img.shields.io/docker/pulls/triliumnext/notes?style=flat-square) -![GitHub Downloads (all assets, all releases)](https://img.shields.io/github/downloads/triliumnext/notes/total?style=flat-square) -[![RelativeCI](https://badges.relative-ci.com/badges/Di5q7dz9daNDZ9UXi0Bp?branch=develop&style=flat-square)](https://app.relative-ci.com/projects/Di5q7dz9daNDZ9UXi0Bp) +![GitHub Sponsors](https://img.shields.io/github/sponsors/eliandoran) ![LiberaPay patrons](https://img.shields.io/liberapay/patrons/ElianDoran) +![Docker Pulls](https://img.shields.io/docker/pulls/triliumnext/notes) +![GitHub Downloads (all assets, all releases)](https://img.shields.io/github/downloads/triliumnext/notes/total) +[![RelativeCI](https://badges.relative-ci.com/badges/Di5q7dz9daNDZ9UXi0Bp?branch=develop)](https://app.relative-ci.com/projects/Di5q7dz9daNDZ9UXi0Bp) [![Translation status](https://hosted.weblate.org/widget/trilium/svg-badge.svg)](https://hosted.weblate.org/engage/trilium/) [English](./README.md) | [Chinese](./docs/README-ZH_CN.md) | [Russian](./docs/README.ru.md) | [Japanese](./docs/README.ja.md) | [Italian](./docs/README.it.md) | [Spanish](./docs/README.es.md) @@ -115,12 +115,20 @@ To install TriliumNext on your own server (including via Docker from [Dockerhub] ## 💻 Contribute +### Translations + +If you are a native speaker, help us translate Trilium by heading over to our [Weblate page](https://hosted.weblate.org/engage/trilium/). + +Here's the language coverage we have so far: + +[![Translation status](https://hosted.weblate.org/widget/trilium/multi-auto.svg)](https://hosted.weblate.org/engage/trilium/) + ### Code Download the repository, install dependencies using `pnpm` and then run the server (available at http://localhost:8080): ```shell -git clone https://github.com/TriliumNext/Notes.git -cd Notes +git clone https://github.com/TriliumNext/Trilium.git +cd Trilium pnpm install pnpm run server:start ``` @@ -129,8 +137,8 @@ pnpm run server:start Download the repository, install dependencies using `pnpm` and then run the environment required to edit the documentation: ```shell -git clone https://github.com/TriliumNext/Notes.git -cd Notes +git clone https://github.com/TriliumNext/Trilium.git +cd Trilium pnpm install pnpm nx run edit-docs:edit-docs ``` @@ -138,8 +146,8 @@ pnpm nx run edit-docs:edit-docs ### Building the Executable Download the repository, install dependencies using `pnpm` and then build the desktop app for Windows: ```shell -git clone https://github.com/TriliumNext/Notes.git -cd Notes +git clone https://github.com/TriliumNext/Trilium.git +cd Trilium pnpm install pnpm nx --project=desktop electron-forge:make -- --arch=x64 --platform=win32 ``` diff --git a/_regroup/package.json b/_regroup/package.json index f543737a25..bc7d07358b 100644 --- a/_regroup/package.json +++ b/_regroup/package.json @@ -35,13 +35,13 @@ "chore:generate-openapi": "tsx bin/generate-openapi.js" }, "devDependencies": { - "@playwright/test": "1.53.2", - "@stylistic/eslint-plugin": "5.1.0", + "@playwright/test": "1.54.2", + "@stylistic/eslint-plugin": "5.2.2", "@types/express": "5.0.3", - "@types/node": "22.16.0", + "@types/node": "22.17.0", "@types/yargs": "17.0.33", "@vitest/coverage-v8": "3.2.4", - "eslint": "9.30.1", + "eslint": "9.32.0", "eslint-plugin-simple-import-sort": "12.1.1", "esm": "3.2.25", "jsdoc": "4.0.4", @@ -49,7 +49,7 @@ "rcedit": "4.0.1", "rimraf": "6.0.1", "tslib": "2.8.1", - "typedoc": "0.28.7", + "typedoc": "0.28.9", "typedoc-plugin-missing-exports": "4.0.0" }, "optionalDependencies": { diff --git a/apps/client/.env b/apps/client/.env index 001b8becd2..78b4a229b0 100644 --- a/apps/client/.env +++ b/apps/client/.env @@ -1,4 +1,5 @@ # The development license key for premium CKEditor features. # Note: This key must only be used for the Trilium Notes project. # Expires on: 2025-09-13 -VITE_CKEDITOR_KEY=eyJhbGciOiJFUzI1NiJ9.eyJleHAiOjE3NTc3MjE1OTksImp0aSI6ImFiN2E0NjZmLWJlZGMtNDNiYy1iMzU4LTk0NGQ0YWJhY2I3ZiIsImRpc3RyaWJ1dGlvbkNoYW5uZWwiOlsic2giLCJkcnVwYWwiXSwid2hpdGVMYWJlbCI6dHJ1ZSwiZmVhdHVyZXMiOlsiRFJVUCIsIkNNVCIsIkRPIiwiRlAiLCJTQyIsIlRPQyIsIlRQTCIsIlBPRSIsIkNDIiwiTUYiLCJTRUUiLCJFQ0giLCJFSVMiXSwidmMiOiI1MzlkOWY5YyJ9.2rvKPql4hmukyXhEtWPZ8MLxKvzPIwzCdykO653g7IxRRZy2QJpeRszElZx9DakKYZKXekVRAwQKgHxwkgbE_w \ No newline at end of file +VITE_CKEDITOR_KEY=eyJhbGciOiJFUzI1NiJ9.eyJleHAiOjE3NTc3MjE1OTksImp0aSI6ImFiN2E0NjZmLWJlZGMtNDNiYy1iMzU4LTk0NGQ0YWJhY2I3ZiIsImRpc3RyaWJ1dGlvbkNoYW5uZWwiOlsic2giLCJkcnVwYWwiXSwid2hpdGVMYWJlbCI6dHJ1ZSwiZmVhdHVyZXMiOlsiRFJVUCIsIkNNVCIsIkRPIiwiRlAiLCJTQyIsIlRPQyIsIlRQTCIsIlBPRSIsIkNDIiwiTUYiLCJTRUUiLCJFQ0giLCJFSVMiXSwidmMiOiI1MzlkOWY5YyJ9.2rvKPql4hmukyXhEtWPZ8MLxKvzPIwzCdykO653g7IxRRZy2QJpeRszElZx9DakKYZKXekVRAwQKgHxwkgbE_w +VITE_CKEDITOR_ENABLE_INSPECTOR=false \ No newline at end of file diff --git a/apps/client/package.json b/apps/client/package.json index 5f74f51ff6..b1be184939 100644 --- a/apps/client/package.json +++ b/apps/client/package.json @@ -1,6 +1,6 @@ { "name": "@triliumnext/client", - "version": "0.96.0", + "version": "0.97.2", "description": "JQuery-based client for TriliumNext, used for both web and desktop (via Electron)", "private": true, "license": "AGPL-3.0-only", @@ -10,7 +10,7 @@ "url": "https://github.com/TriliumNext/Notes" }, "dependencies": { - "@eslint/js": "9.30.1", + "@eslint/js": "9.32.0", "@excalidraw/excalidraw": "0.18.0", "@fullcalendar/core": "6.1.18", "@fullcalendar/daygrid": "6.1.18", @@ -18,8 +18,9 @@ "@fullcalendar/list": "6.1.18", "@fullcalendar/multimonth": "6.1.18", "@fullcalendar/timegrid": "6.1.18", + "@maplibre/maplibre-gl-leaflet": "0.1.3", "@mermaid-js/layout-elk": "0.1.8", - "@mind-elixir/node-menu": "1.0.5", + "@mind-elixir/node-menu": "5.0.0", "@popperjs/core": "2.11.8", "@triliumnext/ckeditor5": "workspace:*", "@triliumnext/codemirror": "workspace:*", @@ -35,10 +36,9 @@ "draggabilly": "3.0.0", "force-graph": "1.50.1", "globals": "16.3.0", - "i18next": "25.3.0", + "i18next": "25.3.2", "i18next-http-backend": "3.0.2", "jquery": "3.7.1", - "jquery-hotkeys": "0.2.2", "jquery.fancytree": "2.38.5", "jsplumb": "2.15.6", "katex": "0.16.22", @@ -46,29 +46,30 @@ "leaflet": "1.9.4", "leaflet-gpx": "2.2.0", "mark.js": "8.11.1", - "marked": "16.0.0", - "mermaid": "11.8.0", - "mind-elixir": "4.6.2", + "marked": "16.1.2", + "mermaid": "11.9.0", + "mind-elixir": "5.0.4", "normalize.css": "8.0.1", "panzoom": "9.4.3", - "preact": "10.26.9", + "preact": "10.27.0", "split.js": "1.6.5", "svg-pan-zoom": "3.6.2", "tabulator-tables": "6.3.1", "vanilla-js-wheel-zoom": "9.0.4" }, "devDependencies": { - "@ckeditor/ckeditor5-inspector": "4.1.0", + "@ckeditor/ckeditor5-inspector": "5.0.0", + "@preact/preset-vite": "2.10.2", "@types/bootstrap": "5.2.10", "@types/jquery": "3.5.32", - "@types/leaflet": "1.9.19", + "@types/leaflet": "1.9.20", "@types/leaflet-gpx": "1.3.7", "@types/mark.js": "8.11.12", - "@types/tabulator-tables": "6.2.6", + "@types/tabulator-tables": "6.2.9", "copy-webpack-plugin": "13.0.0", "happy-dom": "18.0.1", "script-loader": "0.7.2", - "vite-plugin-static-copy": "3.1.0" + "vite-plugin-static-copy": "3.1.1" }, "nx": { "name": "client", diff --git a/apps/client/src/components/app_context.ts b/apps/client/src/components/app_context.ts index 4430145720..aef00f0326 100644 --- a/apps/client/src/components/app_context.ts +++ b/apps/client/src/components/app_context.ts @@ -28,6 +28,8 @@ import TouchBarComponent from "./touch_bar.js"; import type { CKTextEditor } from "@triliumnext/ckeditor5"; import type CodeMirror from "@triliumnext/codemirror"; import { StartupChecks } from "./startup_checks.js"; +import type { CreateNoteOpts } from "../services/note_create.js"; +import { ColumnComponent } from "tabulator-tables"; interface Layout { getRootWidget: (appContext: AppContext) => RootWidget; @@ -122,6 +124,7 @@ export type CommandMappings = { showImportDialog: CommandData & { noteId: string }; openNewNoteSplit: NoteCommandData; openInWindow: NoteCommandData; + openInPopup: CommandData & { noteIdOrPath: string; }; openNoteInNewTab: CommandData; openNoteInNewSplit: CommandData; openNoteInNewWindow: CommandData; @@ -130,6 +133,8 @@ export type CommandMappings = { hideLeftPane: CommandData; showCpuArchWarning: CommandData; showLeftPane: CommandData; + showAttachments: CommandData; + showSearchHistory: CommandData; hoistNote: CommandData & { noteId: string }; leaveProtectedSession: CommandData; enterProtectedSession: CommandData; @@ -140,6 +145,7 @@ export type CommandMappings = { }; openInTab: ContextMenuCommandData; openNoteInSplit: ContextMenuCommandData; + openNoteInPopup: ContextMenuCommandData; toggleNoteHoisting: ContextMenuCommandData; insertNoteAfter: ContextMenuCommandData; insertChildNote: ContextMenuCommandData; @@ -169,7 +175,7 @@ export type CommandMappings = { deleteNotes: ContextMenuCommandData; importIntoNote: ContextMenuCommandData; exportNote: ContextMenuCommandData; - searchInSubtree: ContextMenuCommandData; + searchInSubtree: CommandData & { notePath: string; }; moveNoteUp: ContextMenuCommandData; moveNoteDown: ContextMenuCommandData; moveNoteUpInHierarchy: ContextMenuCommandData; @@ -258,10 +264,76 @@ export type CommandMappings = { closeThisNoteSplit: CommandData; moveThisNoteSplit: CommandData & { isMovingLeft: boolean }; jumpToNote: CommandData; + commandPalette: CommandData; + + // Keyboard shortcuts + backInNoteHistory: CommandData; + forwardInNoteHistory: CommandData; + forceSaveRevision: CommandData; + scrollToActiveNote: CommandData; + quickSearch: CommandData; + collapseTree: CommandData; + createNoteAfter: CommandData; + createNoteInto: CommandData; + addNoteAboveToSelection: CommandData; + addNoteBelowToSelection: CommandData; + openNewTab: CommandData; + activateNextTab: CommandData; + activatePreviousTab: CommandData; + openNewWindow: CommandData; + toggleTray: CommandData; + firstTab: CommandData; + secondTab: CommandData; + thirdTab: CommandData; + fourthTab: CommandData; + fifthTab: CommandData; + sixthTab: CommandData; + seventhTab: CommandData; + eigthTab: CommandData; + ninthTab: CommandData; + lastTab: CommandData; + showNoteSource: CommandData; + showSQLConsole: CommandData; + showBackendLog: CommandData; + showCheatsheet: CommandData; + showHelp: CommandData; + addLinkToText: CommandData; + followLinkUnderCursor: CommandData; + insertDateTimeToText: CommandData; + pasteMarkdownIntoText: CommandData; + cutIntoNote: CommandData; + addIncludeNoteToText: CommandData; + editReadOnlyNote: CommandData; + toggleRibbonTabClassicEditor: CommandData; + toggleRibbonTabBasicProperties: CommandData; + toggleRibbonTabBookProperties: CommandData; + toggleRibbonTabFileProperties: CommandData; + toggleRibbonTabImageProperties: CommandData; + toggleRibbonTabOwnedAttributes: CommandData; + toggleRibbonTabInheritedAttributes: CommandData; + toggleRibbonTabPromotedAttributes: CommandData; + toggleRibbonTabNoteMap: CommandData; + toggleRibbonTabNoteInfo: CommandData; + toggleRibbonTabNotePaths: CommandData; + toggleRibbonTabSimilarNotes: CommandData; + toggleRightPane: CommandData; + printActiveNote: CommandData; + exportAsPdf: CommandData; + openNoteExternally: CommandData; + renderActiveNote: CommandData; + unhoist: CommandData; + reloadFrontendApp: CommandData; + openDevTools: CommandData; + findInText: CommandData; + toggleLeftPane: CommandData; + toggleFullscreen: CommandData; + zoomOut: CommandData; + zoomIn: CommandData; + zoomReset: CommandData; + copyWithoutFormatting: CommandData; // Geomap deleteFromMap: { noteId: string }; - openGeoLocation: { noteId: string; event: JQuery.MouseDownEvent }; toggleZenMode: CommandData; @@ -275,6 +347,21 @@ export type CommandMappings = { geoMapCreateChildNote: CommandData; + // Table view + addNewRow: CommandData & { + customOpts: CreateNoteOpts; + parentNotePath?: string; + }; + addNewTableColumn: CommandData & { + columnToEdit?: ColumnComponent; + referenceColumn?: ColumnComponent; + direction?: "before" | "after"; + type?: "label" | "relation"; + }; + deleteTableColumn: CommandData & { + columnToDelete?: ColumnComponent; + }; + buildTouchBar: CommandData & { TouchBar: typeof TouchBar; buildIcon(name: string): NativeImage; diff --git a/apps/client/src/components/entrypoints.ts b/apps/client/src/components/entrypoints.ts index 0ad2c76ed3..2e55a9b9d9 100644 --- a/apps/client/src/components/entrypoints.ts +++ b/apps/client/src/components/entrypoints.ts @@ -30,13 +30,6 @@ interface CreateChildrenResponse { export default class Entrypoints extends Component { constructor() { super(); - - if (jQuery.hotkeys) { - // hot keys are active also inside inputs and content editables - jQuery.hotkeys.options.filterInputAcceptingElements = false; - jQuery.hotkeys.options.filterContentEditable = false; - jQuery.hotkeys.options.filterTextInputs = false; - } } openDevToolsCommand() { @@ -113,7 +106,9 @@ export default class Entrypoints extends Component { if (win.isFullScreenable()) { win.setFullScreen(!win.isFullScreen()); } - } // outside of electron this is handled by the browser + } else { + document.documentElement.requestFullscreen(); + } } reloadFrontendAppCommand() { diff --git a/apps/client/src/components/note_context.ts b/apps/client/src/components/note_context.ts index 020817073e..1bc4e5498e 100644 --- a/apps/client/src/components/note_context.ts +++ b/apps/client/src/components/note_context.ts @@ -325,8 +325,9 @@ class NoteContext extends Component implements EventListener<"entitiesReloaded"> return false; } - // Some book types must always display a note list, even if no children. - if (["calendar", "table"].includes(note.getLabelValue("viewType") ?? "")) { + // Collections must always display a note list, even if no children. + const viewType = note.getLabelValue("viewType") ?? "grid"; + if (!["list", "grid"].includes(viewType)) { return true; } diff --git a/apps/client/src/desktop.ts b/apps/client/src/desktop.ts index 65e2e285a4..2791f0577c 100644 --- a/apps/client/src/desktop.ts +++ b/apps/client/src/desktop.ts @@ -13,7 +13,6 @@ import type ElectronRemote from "@electron/remote"; import type Electron from "electron"; import "./stylesheets/bootstrap.scss"; import "boxicons/css/boxicons.min.css"; -import "jquery-hotkeys"; import "autocomplete.js/index_jquery.js"; await appContext.earlyInit(); diff --git a/apps/client/src/entities/fnote.ts b/apps/client/src/entities/fnote.ts index fd35c09b8a..6099cba35a 100644 --- a/apps/client/src/entities/fnote.ts +++ b/apps/client/src/entities/fnote.ts @@ -27,7 +27,6 @@ const NOTE_TYPE_ICONS = { doc: "bx bxs-file-doc", contentWidget: "bx bxs-widget", mindMap: "bx bx-sitemap", - geoMap: "bx bx-map-alt", aiChat: "bx bx-bot" }; @@ -36,7 +35,7 @@ const NOTE_TYPE_ICONS = { * end user. Those types should be used only for checking against, they are * not for direct use. */ -export type NoteType = "file" | "image" | "search" | "noteMap" | "launcher" | "doc" | "contentWidget" | "text" | "relationMap" | "render" | "canvas" | "mermaid" | "book" | "webView" | "code" | "mindMap" | "geoMap" | "aiChat"; +export type NoteType = "file" | "image" | "search" | "noteMap" | "launcher" | "doc" | "contentWidget" | "text" | "relationMap" | "render" | "canvas" | "mermaid" | "book" | "webView" | "code" | "mindMap" | "aiChat"; export interface NotePathRecord { isArchived: boolean; @@ -257,6 +256,20 @@ class FNote { return this.children; } + async getSubtreeNoteIds() { + let noteIds: (string | string[])[] = []; + for (const child of await this.getChildNotes()) { + noteIds.push(child.noteId); + noteIds.push(await child.getSubtreeNoteIds()); + } + return noteIds.flat(); + } + + async getSubtreeNotes() { + const noteIds = await this.getSubtreeNoteIds(); + return this.froca.getNotes(noteIds); + } + async getChildNotes() { return await this.froca.getNotes(this.children); } diff --git a/apps/client/src/layouts/desktop_layout.ts b/apps/client/src/layouts/desktop_layout.ts index d47b112f66..33c1135c8a 100644 --- a/apps/client/src/layouts/desktop_layout.ts +++ b/apps/client/src/layouts/desktop_layout.ts @@ -46,28 +46,7 @@ import SharedInfoWidget from "../widgets/shared_info.js"; import FindWidget from "../widgets/find.js"; import TocWidget from "../widgets/toc.js"; import HighlightsListWidget from "../widgets/highlights_list.js"; -import BulkActionsDialog from "../widgets/dialogs/bulk_actions.js"; -import AboutDialog from "../widgets/dialogs/about.js"; -import HelpDialog from "../widgets/dialogs/help.js"; -import RecentChangesDialog from "../widgets/dialogs/recent_changes.js"; -import BranchPrefixDialog from "../widgets/dialogs/branch_prefix.js"; -import SortChildNotesDialog from "../widgets/dialogs/sort_child_notes.js"; import PasswordNoteSetDialog from "../widgets/dialogs/password_not_set.js"; -import IncludeNoteDialog from "../widgets/dialogs/include_note.js"; -import NoteTypeChooserDialog from "../widgets/dialogs/note_type_chooser.js"; -import JumpToNoteDialog from "../widgets/dialogs/jump_to_note.js"; -import AddLinkDialog from "../widgets/dialogs/add_link.js"; -import CloneToDialog from "../widgets/dialogs/clone_to.js"; -import MoveToDialog from "../widgets/dialogs/move_to.js"; -import ImportDialog from "../widgets/dialogs/import.js"; -import ExportDialog from "../widgets/dialogs/export.js"; -import MarkdownImportDialog from "../widgets/dialogs/markdown_import.js"; -import ProtectedSessionPasswordDialog from "../widgets/dialogs/protected_session_password.js"; -import RevisionsDialog from "../widgets/dialogs/revisions.js"; -import DeleteNotesDialog from "../widgets/dialogs/delete_notes.js"; -import InfoDialog from "../widgets/dialogs/info.js"; -import ConfirmDialog from "../widgets/dialogs/confirm.js"; -import PromptDialog from "../widgets/dialogs/prompt.js"; import FloatingButtons from "../widgets/floating_buttons/floating_buttons.js"; import RelationMapButtons from "../widgets/floating_buttons/relation_map_buttons.js"; import SvgExportButton from "../widgets/floating_buttons/svg_export_button.js"; @@ -83,7 +62,7 @@ import CopyImageReferenceButton from "../widgets/floating_buttons/copy_image_ref import ScrollPaddingWidget from "../widgets/scroll_padding.js"; import ClassicEditorToolbar from "../widgets/ribbon_widgets/classic_editor_toolbar.js"; import options from "../services/options.js"; -import utils, { hasTouchBar } from "../services/utils.js"; +import utils from "../services/utils.js"; import GeoMapButtons from "../widgets/floating_buttons/geo_map_button.js"; import ContextualHelpButton from "../widgets/floating_buttons/help_button.js"; import CloseZenButton from "../widgets/close_zen_button.js"; @@ -229,7 +208,7 @@ export default class DesktopLayout { .child(new PromotedAttributesWidget()) .child(new SqlTableSchemasWidget()) .child(new NoteDetailWidget()) - .child(new NoteListWidget()) + .child(new NoteListWidget(false)) .child(new SearchResultWidget()) .child(new SqlResultWidget()) .child(new ScrollPaddingWidget()) diff --git a/apps/client/src/layouts/layout_commons.ts b/apps/client/src/layouts/layout_commons.ts index e538398391..c2802c963b 100644 --- a/apps/client/src/layouts/layout_commons.ts +++ b/apps/client/src/layouts/layout_commons.ts @@ -22,6 +22,14 @@ import RevisionsDialog from "../widgets/dialogs/revisions.js"; import DeleteNotesDialog from "../widgets/dialogs/delete_notes.js"; import InfoDialog from "../widgets/dialogs/info.js"; import IncorrectCpuArchDialog from "../widgets/dialogs/incorrect_cpu_arch.js"; +import PopupEditorDialog from "../widgets/dialogs/popup_editor.js"; +import FlexContainer from "../widgets/containers/flex_container.js"; +import NoteIconWidget from "../widgets/note_icon.js"; +import NoteTitleWidget from "../widgets/note_title.js"; +import ClassicEditorToolbar from "../widgets/ribbon_widgets/classic_editor_toolbar.js"; +import PromotedAttributesWidget from "../widgets/ribbon_widgets/promoted_attributes.js"; +import NoteDetailWidget from "../widgets/note_detail.js"; +import NoteListWidget from "../widgets/note_list.js"; export function applyModals(rootContainer: RootContainer) { rootContainer @@ -47,4 +55,15 @@ export function applyModals(rootContainer: RootContainer) { .child(new ConfirmDialog()) .child(new PromptDialog()) .child(new IncorrectCpuArchDialog()) + .child(new PopupEditorDialog() + .child(new FlexContainer("row") + .class("title-row") + .css("align-items", "center") + .cssBlock(".title-row > * { margin: 5px; }") + .child(new NoteIconWidget()) + .child(new NoteTitleWidget())) + .child(new ClassicEditorToolbar()) + .child(new PromotedAttributesWidget()) + .child(new NoteDetailWidget()) + .child(new NoteListWidget(true))) } diff --git a/apps/client/src/layouts/mobile_layout.ts b/apps/client/src/layouts/mobile_layout.ts index f6d69f4c66..ba656d4453 100644 --- a/apps/client/src/layouts/mobile_layout.ts +++ b/apps/client/src/layouts/mobile_layout.ts @@ -162,7 +162,7 @@ export default class MobileLayout { .filling() .contentSized() .child(new NoteDetailWidget()) - .child(new NoteListWidget()) + .child(new NoteListWidget(false)) .child(new FilePropertiesWidget().css("font-size", "smaller")) ) .child(new MobileEditorToolbar()) diff --git a/apps/client/src/menus/context_menu.ts b/apps/client/src/menus/context_menu.ts index a234216517..4411db9dcc 100644 --- a/apps/client/src/menus/context_menu.ts +++ b/apps/client/src/menus/context_menu.ts @@ -17,11 +17,22 @@ interface MenuSeparatorItem { title: "----"; } +export interface MenuItemBadge { + title: string; + className?: string; +} + export interface MenuCommandItem { title: string; command?: T; type?: string; + /** + * The icon to display in the menu item. + * + * If not set, no icon is displayed and the item will appear shifted slightly to the left if there are other items with icons. To avoid this, use `bx bx-empty`. + */ uiIcon?: string; + badges?: MenuItemBadge[]; templateNoteId?: string; enabled?: boolean; handler?: MenuHandler; @@ -29,6 +40,7 @@ export interface MenuCommandItem { shortcut?: string; spellingSuggestion?: string; checked?: boolean; + columns?: number; } export type MenuItem = MenuCommandItem | MenuSeparatorItem; @@ -161,6 +173,18 @@ class ContextMenu { .append("   ") // some space between icon and text .append(item.title); + if ("badges" in item && item.badges) { + for (let badge of item.badges) { + const badgeElement = $(``).text(badge.title); + + if (badge.className) { + badgeElement.addClass(badge.className); + } + + $link.append(badgeElement); + } + } + if ("shortcut" in item && item.shortcut) { $link.append($("").text(item.shortcut)); } @@ -217,6 +241,9 @@ class ContextMenu { $link.addClass("dropdown-toggle"); const $subMenu = $("
    ").addClass("dropdown-menu"); + if (!this.isMobile && item.columns) { + $subMenu.css("column-count", item.columns); + } this.addItems($subMenu, item.items); diff --git a/apps/client/src/menus/link_context_menu.ts b/apps/client/src/menus/link_context_menu.ts index cef67b7da4..e73f333afe 100644 --- a/apps/client/src/menus/link_context_menu.ts +++ b/apps/client/src/menus/link_context_menu.ts @@ -16,7 +16,8 @@ function getItems(): MenuItem[] { return [ { title: t("link_context_menu.open_note_in_new_tab"), command: "openNoteInNewTab", uiIcon: "bx bx-link-external" }, { title: t("link_context_menu.open_note_in_new_split"), command: "openNoteInNewSplit", uiIcon: "bx bx-dock-right" }, - { title: t("link_context_menu.open_note_in_new_window"), command: "openNoteInNewWindow", uiIcon: "bx bx-window-open" } + { title: t("link_context_menu.open_note_in_new_window"), command: "openNoteInNewWindow", uiIcon: "bx bx-window-open" }, + { title: t("link_context_menu.open_note_in_popup"), command: "openNoteInPopup", uiIcon: "bx bx-edit" } ]; } @@ -40,6 +41,8 @@ function handleLinkContextMenuItem(command: string | undefined, notePath: string appContext.triggerCommand("openNewNoteSplit", { ntxId, notePath, hoistedNoteId, viewScope }); } else if (command === "openNoteInNewWindow") { appContext.triggerCommand("openInWindow", { notePath, hoistedNoteId, viewScope }); + } else if (command === "openNoteInPopup") { + appContext.triggerCommand("openInPopup", { noteIdOrPath: notePath }) } } diff --git a/apps/client/src/menus/tree_context_menu.ts b/apps/client/src/menus/tree_context_menu.ts index 887781d74b..8e8f2ed167 100644 --- a/apps/client/src/menus/tree_context_menu.ts +++ b/apps/client/src/menus/tree_context_menu.ts @@ -23,7 +23,7 @@ let lastTargetNode: HTMLElement | null = null; // This will include all commands that implement ContextMenuCommandData, but it will not work if it additional options are added via the `|` operator, // so they need to be added manually. -export type TreeCommandNames = FilteredCommandNames | "openBulkActionsDialog"; +export type TreeCommandNames = FilteredCommandNames | "openBulkActionsDialog" | "searchInSubtree"; export default class TreeContextMenu implements SelectMenuItemEventListener { private treeWidget: NoteTreeWidget; @@ -70,8 +70,8 @@ export default class TreeContextMenu implements SelectMenuItemEventListener | null)[] = [ { title: `${t("tree-context-menu.open-in-a-new-tab")}`, command: "openInTab", uiIcon: "bx bx-link-external", enabled: noSelectedNotes }, - { title: t("tree-context-menu.open-in-a-new-split"), command: "openNoteInSplit", uiIcon: "bx bx-dock-right", enabled: noSelectedNotes }, + { title: t("tree-context-menu.open-in-popup"), command: "openNoteInPopup", uiIcon: "bx bx-edit", enabled: noSelectedNotes }, isHoisted ? null @@ -92,7 +92,8 @@ export default class TreeContextMenu implements SelectMenuItemEventListener`, - command: "duplicateSubtree", - uiIcon: "bx bx-outline", - enabled: parentNotSearch && isNotRoot && !isHoisted && notOptionsOrHelp - }, { title: "----" }, @@ -186,6 +182,13 @@ export default class TreeContextMenu implements SelectMenuItemEventListener`, command: "cloneNotesTo", uiIcon: "bx bx-duplicate", enabled: isNotRoot && !isHoisted }, + { + title: `${t("tree-context-menu.duplicate")} `, + command: "duplicateSubtree", + uiIcon: "bx bx-outline", + enabled: parentNotSearch && isNotRoot && !isHoisted && notOptionsOrHelp + }, + { title: `${t("tree-context-menu.delete")} `, command: "deleteNotes", @@ -244,6 +247,8 @@ export default class TreeContextMenu implements SelectMenuItemEventListener !!action); } +export async function executeBulkActions(targetNoteIds: string[], actions: BulkAction[], includeDescendants = false) { + await server.post("bulk-action/execute", { + noteIds: targetNoteIds, + includeDescendants, + actions + }); + + await ws.waitForMaxKnownEntityChangeId(); + toast.showMessage(t("bulk_actions.bulk_actions_executed"), 3000); +} + export default { addAction, parseActions, diff --git a/apps/client/src/services/command_registry.ts b/apps/client/src/services/command_registry.ts new file mode 100644 index 0000000000..f0bb2eef59 --- /dev/null +++ b/apps/client/src/services/command_registry.ts @@ -0,0 +1,295 @@ +import { ActionKeyboardShortcut } from "@triliumnext/commons"; +import appContext, { type CommandNames } from "../components/app_context.js"; +import type NoteTreeWidget from "../widgets/note_tree.js"; +import { t, translationsInitializedPromise } from "./i18n.js"; +import keyboardActions from "./keyboard_actions.js"; +import utils from "./utils.js"; + +export interface CommandDefinition { + id: string; + name: string; + description?: string; + icon?: string; + shortcut?: string; + commandName?: CommandNames; + handler?: () => Promise | null | undefined | void; + aliases?: string[]; + source?: "manual" | "keyboard-action"; + /** Reference to the original keyboard action for scope checking. */ + keyboardAction?: ActionKeyboardShortcut; +} + +class CommandRegistry { + private commands: Map = new Map(); + private aliases: Map = new Map(); + + constructor() { + this.loadCommands(); + } + + private async loadCommands() { + await translationsInitializedPromise; + this.registerDefaultCommands(); + await this.loadKeyboardActionsAsync(); + } + + private registerDefaultCommands() { + this.register({ + id: "export-note", + name: t("command_palette.export_note_title"), + description: t("command_palette.export_note_description"), + icon: "bx bx-export", + handler: () => { + const notePath = appContext.tabManager.getActiveContextNotePath(); + if (notePath) { + appContext.triggerCommand("showExportDialog", { + notePath, + defaultType: "single" + }); + } + } + }); + + this.register({ + id: "show-attachments", + name: t("command_palette.show_attachments_title"), + description: t("command_palette.show_attachments_description"), + icon: "bx bx-paperclip", + handler: () => appContext.triggerCommand("showAttachments") + }); + + // Special search commands with custom logic + this.register({ + id: "search-notes", + name: t("command_palette.search_notes_title"), + description: t("command_palette.search_notes_description"), + icon: "bx bx-search", + handler: () => appContext.triggerCommand("searchNotes", {}) + }); + + this.register({ + id: "search-in-subtree", + name: t("command_palette.search_subtree_title"), + description: t("command_palette.search_subtree_description"), + icon: "bx bx-search-alt", + handler: () => { + const notePath = appContext.tabManager.getActiveContextNotePath(); + if (notePath) { + appContext.triggerCommand("searchInSubtree", { notePath }); + } + } + }); + + this.register({ + id: "show-search-history", + name: t("command_palette.search_history_title"), + description: t("command_palette.search_history_description"), + icon: "bx bx-history", + handler: () => appContext.triggerCommand("showSearchHistory") + }); + + this.register({ + id: "show-launch-bar", + name: t("command_palette.configure_launch_bar_title"), + description: t("command_palette.configure_launch_bar_description"), + icon: "bx bx-sidebar", + handler: () => appContext.triggerCommand("showLaunchBarSubtree") + }); + } + + private async loadKeyboardActionsAsync() { + try { + const actions = await keyboardActions.getActions(); + this.registerKeyboardActions(actions); + } catch (error) { + console.error("Failed to load keyboard actions:", error); + } + } + + private registerKeyboardActions(actions: ActionKeyboardShortcut[]) { + for (const action of actions) { + // Skip actions that we've already manually registered + if (this.commands.has(action.actionName)) { + continue; + } + + // Skip actions that don't have a description (likely separators) + if (!action.description) { + continue; + } + + // Skip Electron-only actions if not in Electron environment + if (action.isElectronOnly && !utils.isElectron()) { + continue; + } + + // Skip actions that should not appear in the command palette + if (action.ignoreFromCommandPalette) { + continue; + } + + // Get the primary shortcut (first one in the list) + const primaryShortcut = action.effectiveShortcuts?.[0]; + + let name = action.friendlyName; + if (action.scope === "note-tree") { + name = t("command_palette.tree-action-name", { name: action.friendlyName }); + } + + // Create a command definition from the keyboard action + const commandDef: CommandDefinition = { + id: action.actionName, + name, + description: action.description, + icon: action.iconClass, + shortcut: primaryShortcut ? this.formatShortcut(primaryShortcut) : undefined, + commandName: action.actionName as CommandNames, + source: "keyboard-action", + keyboardAction: action + }; + + this.register(commandDef); + } + } + + private formatShortcut(shortcut: string): string { + // Convert electron accelerator format to display format + return shortcut + .replace(/CommandOrControl/g, 'Ctrl') + .replace(/\+/g, ' + '); + } + + register(command: CommandDefinition) { + this.commands.set(command.id, command); + + // Register aliases + if (command.aliases) { + for (const alias of command.aliases) { + this.aliases.set(alias.toLowerCase(), command.id); + } + } + } + + getCommand(id: string): CommandDefinition | undefined { + return this.commands.get(id); + } + + getAllCommands(): CommandDefinition[] { + const commands = Array.from(this.commands.values()); + + // Sort commands by name + commands.sort((a, b) => a.name.localeCompare(b.name)); + + return commands; + } + + searchCommands(query: string): CommandDefinition[] { + const normalizedQuery = query.toLowerCase(); + const results: { command: CommandDefinition; score: number }[] = []; + + for (const command of this.commands.values()) { + let score = 0; + + // Exact match on name + if (command.name.toLowerCase() === normalizedQuery) { + score = 100; + } + // Name starts with query + else if (command.name.toLowerCase().startsWith(normalizedQuery)) { + score = 80; + } + // Name contains query + else if (command.name.toLowerCase().includes(normalizedQuery)) { + score = 60; + } + // Description contains query + else if (command.description?.toLowerCase().includes(normalizedQuery)) { + score = 40; + } + // Check aliases + else if (command.aliases?.some(alias => alias.toLowerCase().includes(normalizedQuery))) { + score = 50; + } + + if (score > 0) { + results.push({ command, score }); + } + } + + // Sort by score (highest first) and then by name + results.sort((a, b) => { + if (a.score !== b.score) { + return b.score - a.score; + } + return a.command.name.localeCompare(b.command.name); + }); + + return results.map(r => r.command); + } + + async executeCommand(commandId: string) { + const command = this.getCommand(commandId); + if (!command) { + console.error(`Command not found: ${commandId}`); + return; + } + + // Execute custom handler if provided + if (command.handler) { + await command.handler(); + return; + } + + // Handle keyboard action with scope-aware execution + if (command.keyboardAction && command.commandName) { + if (command.keyboardAction.scope === "note-tree") { + this.executeWithNoteTreeFocus(command.commandName); + } else if (command.keyboardAction.scope === "text-detail") { + this.executeWithTextDetail(command.commandName); + } else { + appContext.triggerCommand(command.commandName, { + ntxId: appContext.tabManager.activeNtxId + }); + } + return; + } + + // Fallback for commands without keyboard action reference + if (command.commandName) { + appContext.triggerCommand(command.commandName, { + ntxId: appContext.tabManager.activeNtxId + }); + return; + } + + console.error(`Command ${commandId} has no handler or commandName`); + } + + private executeWithNoteTreeFocus(actionName: CommandNames) { + const tree = document.querySelector(".tree-wrapper") as HTMLElement; + if (!tree) { + return; + } + + const treeComponent = appContext.getComponentByEl(tree) as NoteTreeWidget; + const activeNode = treeComponent.getActiveNode(); + treeComponent.triggerCommand(actionName, { + ntxId: appContext.tabManager.activeNtxId, + node: activeNode + }); + } + + private async executeWithTextDetail(actionName: CommandNames) { + const typeWidget = await appContext.tabManager.getActiveContext()?.getTypeWidget(); + if (!typeWidget) { + return; + } + + typeWidget.triggerCommand(actionName, { + ntxId: appContext.tabManager.activeNtxId + }); + } +} + +const commandRegistry = new CommandRegistry(); +export default commandRegistry; diff --git a/apps/client/src/services/content_renderer.ts b/apps/client/src/services/content_renderer.ts index 40480e0734..4f6d12c346 100644 --- a/apps/client/src/services/content_renderer.ts +++ b/apps/client/src/services/content_renderer.ts @@ -65,6 +65,9 @@ async function getRenderedContent(this: {} | { ctx: string }, entity: FNote | FA $renderedContent.append($("
    ").append("
    This note is protected and to access it you need to enter password.
    ").append("
    ").append($button)); } else if (entity instanceof FNote) { + $renderedContent + .css("display", "flex") + .css("flex-direction", "column"); $renderedContent.append( $("
    ") .css("display", "flex") @@ -72,8 +75,33 @@ async function getRenderedContent(this: {} | { ctx: string }, entity: FNote | FA .css("align-items", "center") .css("height", "100%") .css("font-size", "500%") + .css("flex-grow", "1") .append($("").addClass(entity.getIcon())) ); + + if (entity.type === "webView" && entity.hasLabel("webViewSrc")) { + const $footer = $("
    ") + .addClass("webview-footer"); + const $openButton = $(` + + `) + .appendTo($footer) + .on("click", () => { + const webViewSrc = entity.getLabelValue("webViewSrc"); + if (webViewSrc) { + if (utils.isElectron()) { + const electron = utils.dynamicRequire("electron"); + electron.shell.openExternal(webViewSrc); + } else { + window.open(webViewSrc, '_blank', 'noopener,noreferrer'); + } + } + }); + $footer.appendTo($renderedContent); + } } if (entity instanceof FNote) { diff --git a/apps/client/src/services/dialog.ts b/apps/client/src/services/dialog.ts index 240172f491..a1e54f5e8c 100644 --- a/apps/client/src/services/dialog.ts +++ b/apps/client/src/services/dialog.ts @@ -4,14 +4,14 @@ import type { ConfirmDialogOptions, ConfirmDialogResult, ConfirmWithMessageOptio import type { PromptDialogOptions } from "../widgets/dialogs/prompt.js"; import { focusSavedElement, saveFocusedElement } from "./focus.js"; -export async function openDialog($dialog: JQuery, closeActDialog = true) { +export async function openDialog($dialog: JQuery, closeActDialog = true, config?: Partial) { if (closeActDialog) { closeActiveDialog(); glob.activeDialog = $dialog; } saveFocusedElement(); - Modal.getOrCreateInstance($dialog[0]).show(); + Modal.getOrCreateInstance($dialog[0], config).show(); $dialog.on("hidden.bs.modal", () => { const $autocompleteEl = $(".aa-input"); @@ -41,8 +41,14 @@ async function info(message: string) { return new Promise((res) => appContext.triggerCommand("showInfoDialog", { message, callback: res })); } +/** + * Displays a confirmation dialog with the given message. + * + * @param message the message to display in the dialog. + * @returns A promise that resolves to true if the user confirmed, false otherwise. + */ async function confirm(message: string) { - return new Promise((res) => + return new Promise((res) => appContext.triggerCommand("showConfirmDialog", { message, callback: (x: false | ConfirmDialogOptions) => res(x && x.confirmed) diff --git a/apps/client/src/services/glob.ts b/apps/client/src/services/glob.ts index 6e261b4c87..48d0d29a7d 100644 --- a/apps/client/src/services/glob.ts +++ b/apps/client/src/services/glob.ts @@ -49,6 +49,13 @@ function setupGlobs() { const string = e?.reason?.message?.toLowerCase(); let message = "Uncaught error: "; + let errorObjectString; + + try { + errorObjectString = JSON.stringify(e.reason) + } catch (error: any) { + errorObjectString = error.toString(); + } if (string?.includes("script error")) { message += "No details available"; @@ -57,7 +64,7 @@ function setupGlobs() { `Message: ${e.reason.message}`, `Line: ${e.reason.lineNumber}`, `Column: ${e.reason.columnNumber}`, - `Error object: ${JSON.stringify(e.reason)}`, + `Error object: ${errorObjectString}`, `Stack: ${e.reason && e.reason.stack}` ].join(", "); } diff --git a/apps/client/src/services/i18n.ts b/apps/client/src/services/i18n.ts index 25c98fe396..8c95fd053b 100644 --- a/apps/client/src/services/i18n.ts +++ b/apps/client/src/services/i18n.ts @@ -6,6 +6,11 @@ import type { Locale } from "@triliumnext/commons"; let locales: Locale[] | null; +/** + * A deferred promise that resolves when translations are initialized. + */ +export let translationsInitializedPromise = $.Deferred(); + export async function initLocale() { const locale = (options.get("locale") as string) || "en"; @@ -19,6 +24,8 @@ export async function initLocale() { }, returnEmptyString: false }); + + translationsInitializedPromise.resolve(); } export function getAvailableLocales() { diff --git a/apps/client/src/services/keyboard_actions.ts b/apps/client/src/services/keyboard_actions.ts index 3cb0ffd33b..c72ba29bb7 100644 --- a/apps/client/src/services/keyboard_actions.ts +++ b/apps/client/src/services/keyboard_actions.ts @@ -2,21 +2,15 @@ import server from "./server.js"; import appContext, { type CommandNames } from "../components/app_context.js"; import shortcutService from "./shortcuts.js"; import type Component from "../components/component.js"; +import type { ActionKeyboardShortcut } from "@triliumnext/commons"; -const keyboardActionRepo: Record = {}; +const keyboardActionRepo: Record = {}; -// TODO: Deduplicate with server. -export interface Action { - actionName: CommandNames; - effectiveShortcuts: string[]; - scope: string; -} - -const keyboardActionsLoaded = server.get("keyboard-actions").then((actions) => { +const keyboardActionsLoaded = server.get("keyboard-actions").then((actions) => { actions = actions.filter((a) => !!a.actionName); // filter out separators for (const action of actions) { - action.effectiveShortcuts = action.effectiveShortcuts.filter((shortcut) => !shortcut.startsWith("global:")); + action.effectiveShortcuts = (action.effectiveShortcuts ?? []).filter((shortcut) => !shortcut.startsWith("global:")); keyboardActionRepo[action.actionName] = action; } @@ -38,7 +32,7 @@ async function setupActionsForElement(scope: string, $el: JQuery, c const actions = await getActionsForScope(scope); for (const action of actions) { - for (const shortcut of action.effectiveShortcuts) { + for (const shortcut of action.effectiveShortcuts ?? []) { shortcutService.bindElShortcut($el, shortcut, () => component.triggerCommand(action.actionName, { ntxId: appContext.tabManager.activeNtxId })); } } @@ -46,7 +40,7 @@ async function setupActionsForElement(scope: string, $el: JQuery, c getActionsForScope("window").then((actions) => { for (const action of actions) { - for (const shortcut of action.effectiveShortcuts) { + for (const shortcut of action.effectiveShortcuts ?? []) { shortcutService.bindGlobalShortcut(shortcut, () => appContext.triggerCommand(action.actionName, { ntxId: appContext.tabManager.activeNtxId })); } } @@ -80,7 +74,7 @@ function updateDisplayedShortcuts($container: JQuery) { const action = await getAction(actionName, true); if (action) { - const keyboardActions = action.effectiveShortcuts.join(", "); + const keyboardActions = (action.effectiveShortcuts ?? []).join(", "); if (keyboardActions || $(el).text() !== "not set") { $(el).text(keyboardActions); @@ -99,7 +93,7 @@ function updateDisplayedShortcuts($container: JQuery) { if (action) { const title = $(el).attr("title"); - const shortcuts = action.effectiveShortcuts.join(", "); + const shortcuts = (action.effectiveShortcuts ?? []).join(", "); if (title?.includes(shortcuts)) { return; diff --git a/apps/client/src/services/link.ts b/apps/client/src/services/link.ts index 41533647c6..809eb58ef6 100644 --- a/apps/client/src/services/link.ts +++ b/apps/client/src/services/link.ts @@ -231,6 +231,7 @@ export function parseNavigationStateFromUrl(url: string | undefined) { let ntxId: string | null = null; let hoistedNoteId: string | null = null; let searchString: string | null = null; + let openInPopup = false; if (paramString) { for (const pair of paramString.split("&")) { @@ -246,6 +247,8 @@ export function parseNavigationStateFromUrl(url: string | undefined) { searchString = value; // supports triggering search from URL, e.g. #?searchString=blabla } else if (["viewMode", "attachmentId"].includes(name)) { (viewScope as any)[name] = value; + } else if (name === "popup") { + openInPopup = true; } else { console.warn(`Unrecognized hash parameter '${name}'.`); } @@ -266,7 +269,8 @@ export function parseNavigationStateFromUrl(url: string | undefined) { ntxId, hoistedNoteId, viewScope, - searchString + searchString, + openInPopup }; } @@ -277,13 +281,21 @@ function goToLink(evt: MouseEvent | JQuery.ClickEvent | JQuery.MouseDownEvent) { return goToLinkExt(evt, hrefLink, $link); } -function goToLinkExt(evt: MouseEvent | JQuery.ClickEvent | JQuery.MouseDownEvent | React.PointerEvent, hrefLink: string | undefined, $link?: JQuery | null) { +/** + * Handles navigation to a link, which can be an internal note path (e.g., `#root/1234`) or an external URL (e.g., `https://example.com`). + * + * @param evt the event that triggered the link navigation, or `null` if the link was clicked programmatically. Used to determine if the link should be opened in a new tab/window, based on the button presses. + * @param hrefLink the link to navigate to, which can be a note path (e.g., `#root/1234`) or an external URL with any supported protocol (e.g., `https://example.com`). + * @param $link the jQuery element of the link that was clicked, used to determine if the link is an anchor link (e.g., `#fn1` or `#fnref1`) and to handle it accordingly. + * @returns `true` if the link was handled (i.e., the element was found and scrolled to), or a falsy value otherwise. + */ +function goToLinkExt(evt: MouseEvent | JQuery.ClickEvent | JQuery.MouseDownEvent | React.PointerEvent | null, hrefLink: string | undefined, $link?: JQuery | null) { if (hrefLink?.startsWith("data:")) { return true; } - evt.preventDefault(); - evt.stopPropagation(); + evt?.preventDefault(); + evt?.stopPropagation(); if (hrefLink && hrefLink.startsWith("#") && !hrefLink.startsWith("#root/") && $link) { if (handleAnchor(hrefLink, $link)) { @@ -291,19 +303,22 @@ function goToLinkExt(evt: MouseEvent | JQuery.ClickEvent | JQuery.MouseDownEvent } } - const { notePath, viewScope } = parseNavigationStateFromUrl(hrefLink); + const { notePath, viewScope, openInPopup } = parseNavigationStateFromUrl(hrefLink); - const ctrlKey = utils.isCtrlKey(evt); - const shiftKey = evt.shiftKey; - const isLeftClick = "which" in evt && evt.which === 1; - const isMiddleClick = "which" in evt && evt.which === 2; + const ctrlKey = evt && utils.isCtrlKey(evt); + const shiftKey = evt?.shiftKey; + const isLeftClick = !evt || ("which" in evt && evt.which === 1); + // Right click is handled separately. + const isMiddleClick = evt && "which" in evt && evt.which === 2; const targetIsBlank = ($link?.attr("target") === "_blank"); const openInNewTab = (isLeftClick && ctrlKey) || isMiddleClick || targetIsBlank; const activate = (isLeftClick && ctrlKey && shiftKey) || (isMiddleClick && shiftKey); - const openInNewWindow = isLeftClick && evt.shiftKey && !ctrlKey; + const openInNewWindow = isLeftClick && evt?.shiftKey && !ctrlKey; if (notePath) { - if (openInNewWindow) { + if (isLeftClick && openInPopup) { + appContext.triggerCommand("openInPopup", { noteIdOrPath: notePath }); + } else if (openInNewWindow) { appContext.triggerCommand("openInWindow", { notePath, viewScope }); } else if (openInNewTab) { appContext.tabManager.openTabWithNoteWithHoisting(notePath, { @@ -311,7 +326,7 @@ function goToLinkExt(evt: MouseEvent | JQuery.ClickEvent | JQuery.MouseDownEvent viewScope }); } else if (isLeftClick) { - const ntxId = $(evt.target as any) + const ntxId = $(evt?.target as any) .closest("[data-ntx-id]") .attr("data-ntx-id"); @@ -379,12 +394,18 @@ function linkContextMenu(e: PointerEvent) { return; } + if (utils.isCtrlKey(e) && e.button === 2) { + appContext.triggerCommand("openInPopup", { noteIdOrPath: notePath }); + e.preventDefault(); + return; + } + e.preventDefault(); linkContextMenuService.openContextMenu(notePath, e, viewScope, null); } -export async function loadReferenceLinkTitle($el: JQuery, href: string | null | undefined = null) { +async function loadReferenceLinkTitle($el: JQuery, href: string | null | undefined = null) { const $link = $el[0].tagName === "A" ? $el : $el.find("a"); href = href || $link.attr("href"); diff --git a/apps/client/src/services/note_autocomplete.ts b/apps/client/src/services/note_autocomplete.ts index d6eb4df0e2..f6ada19674 100644 --- a/apps/client/src/services/note_autocomplete.ts +++ b/apps/client/src/services/note_autocomplete.ts @@ -3,6 +3,7 @@ import appContext from "../components/app_context.js"; import noteCreateService from "./note_create.js"; import froca from "./froca.js"; import { t } from "./i18n.js"; +import commandRegistry from "./command_registry.js"; import type { MentionFeedObjectItem } from "@triliumnext/ckeditor5"; // this key needs to have this value, so it's hit by the tooltip @@ -29,9 +30,12 @@ export interface Suggestion { notePathTitle?: string; notePath?: string; highlightedNotePathTitle?: string; - action?: string | "create-note" | "search-notes" | "external-link"; + action?: string | "create-note" | "search-notes" | "external-link" | "command"; parentNoteId?: string; icon?: string; + commandId?: string; + commandDescription?: string; + commandShortcut?: string; } interface Options { @@ -40,7 +44,12 @@ interface Options { allowCreatingNotes?: boolean; allowJumpToSearchNotes?: boolean; allowExternalLinks?: boolean; + /** If set, hides the right-side button corresponding to go to selected note. */ hideGoToSelectedNoteButton?: boolean; + /** If set, hides all right-side buttons in the autocomplete dropdown */ + hideAllButtons?: boolean; + /** If set, enables command palette mode */ + isCommandPalette?: boolean; } async function autocompleteSourceForCKEditor(queryText: string) { @@ -70,6 +79,31 @@ async function autocompleteSourceForCKEditor(queryText: string) { } async function autocompleteSource(term: string, cb: (rows: Suggestion[]) => void, options: Options = {}) { + // Check if we're in command mode + if (options.isCommandPalette && term.startsWith(">")) { + const commandQuery = term.substring(1).trim(); + + // Get commands (all if no query, filtered if query provided) + const commands = commandQuery.length === 0 + ? commandRegistry.getAllCommands() + : commandRegistry.searchCommands(commandQuery); + + // Convert commands to suggestions + const commandSuggestions: Suggestion[] = commands.map(cmd => ({ + action: "command", + commandId: cmd.id, + noteTitle: cmd.name, + notePathTitle: `>${cmd.name}`, + highlightedNotePathTitle: cmd.name, + commandDescription: cmd.description, + commandShortcut: cmd.shortcut, + icon: cmd.icon + })); + + cb(commandSuggestions); + return; + } + const fastSearch = options.fastSearch === false ? false : true; if (fastSearch === false) { if (term.trim().length === 0) { @@ -143,6 +177,12 @@ function showRecentNotes($el: JQuery) { $el.trigger("focus"); } +function showAllCommands($el: JQuery) { + searchDelay = 0; + $el.setSelectedNotePath(""); + $el.autocomplete("val", ">").autocomplete("open"); +} + function fullTextSearch($el: JQuery, options: Options) { const searchString = $el.autocomplete("val") as unknown as string; if (options.fastSearch === false || searchString?.trim().length === 0) { @@ -190,9 +230,11 @@ function initNoteAutocomplete($el: JQuery, options?: Options) { const $goToSelectedNoteButton = $("").addClass("input-group-text go-to-selected-note-button bx bx-arrow-to-right"); - $el.after($clearTextButton).after($showRecentNotesButton).after($fullTextSearchButton); + if (!options.hideAllButtons) { + $el.after($clearTextButton).after($showRecentNotesButton).after($fullTextSearchButton); + } - if (!options.hideGoToSelectedNoteButton) { + if (!options.hideGoToSelectedNoteButton && !options.hideAllButtons) { $el.after($goToSelectedNoteButton); } @@ -265,7 +307,24 @@ function initNoteAutocomplete($el: JQuery, options?: Options) { }, displayKey: "notePathTitle", templates: { - suggestion: (suggestion) => ` ${suggestion.highlightedNotePathTitle}` + suggestion: (suggestion) => { + if (suggestion.action === "command") { + let html = `
    `; + html += ``; + html += `
    `; + html += `
    ${suggestion.highlightedNotePathTitle}
    `; + if (suggestion.commandDescription) { + html += `
    ${suggestion.commandDescription}
    `; + } + html += `
    `; + if (suggestion.commandShortcut) { + html += `${suggestion.commandShortcut}`; + } + html += '
    '; + return html; + } + return ` ${suggestion.highlightedNotePathTitle}`; + } }, // we can't cache identical searches because notes can be created / renamed, new recent notes can be added cache: false @@ -275,6 +334,12 @@ function initNoteAutocomplete($el: JQuery, options?: Options) { // TODO: Types fail due to "autocomplete:selected" not being registered in type definitions. ($el as any).on("autocomplete:selected", async (event: Event, suggestion: Suggestion) => { + if (suggestion.action === "command") { + $el.autocomplete("close"); + $el.trigger("autocomplete:commandselected", [suggestion]); + return; + } + if (suggestion.action === "external-link") { $el.setSelectedNotePath(null); $el.setSelectedExternalLink(suggestion.externalLink); @@ -391,6 +456,7 @@ export default { autocompleteSourceForCKEditor, initNoteAutocomplete, showRecentNotes, + showAllCommands, setText, init }; diff --git a/apps/client/src/services/note_create.ts b/apps/client/src/services/note_create.ts index 6ce92bc0d8..3fb5979304 100644 --- a/apps/client/src/services/note_create.ts +++ b/apps/client/src/services/note_create.ts @@ -11,7 +11,7 @@ import type FBranch from "../entities/fbranch.js"; import type { ChooseNoteTypeResponse } from "../widgets/dialogs/note_type_chooser.js"; import type { CKTextEditor } from "@triliumnext/ckeditor5"; -interface CreateNoteOpts { +export interface CreateNoteOpts { isProtected?: boolean; saveSelection?: boolean; title?: string | null; diff --git a/apps/client/src/services/note_list_renderer.ts b/apps/client/src/services/note_list_renderer.ts index 3219d8d927..50556715af 100644 --- a/apps/client/src/services/note_list_renderer.ts +++ b/apps/client/src/services/note_list_renderer.ts @@ -1,40 +1,31 @@ import type FNote from "../entities/fnote.js"; +import BoardView from "../widgets/view_widgets/board_view/index.js"; import CalendarView from "../widgets/view_widgets/calendar_view.js"; +import GeoView from "../widgets/view_widgets/geo_view/index.js"; import ListOrGridView from "../widgets/view_widgets/list_or_grid_view.js"; import TableView from "../widgets/view_widgets/table_view/index.js"; import type { ViewModeArgs } from "../widgets/view_widgets/view_mode.js"; import type ViewMode from "../widgets/view_widgets/view_mode.js"; -export type ViewTypeOptions = "list" | "grid" | "calendar" | "table"; +const allViewTypes = ["list", "grid", "calendar", "table", "geoMap", "board"] as const; +export type ArgsWithoutNoteId = Omit; +export type ViewTypeOptions = typeof allViewTypes[number]; export default class NoteListRenderer { private viewType: ViewTypeOptions; - public viewMode: ViewMode | null; + private args: ArgsWithoutNoteId; + public viewMode?: ViewMode; - constructor(args: ViewModeArgs) { + constructor(args: ArgsWithoutNoteId) { + this.args = args; this.viewType = this.#getViewType(args.parentNote); - - switch (this.viewType) { - case "list": - case "grid": - this.viewMode = new ListOrGridView(this.viewType, args); - break; - case "calendar": - this.viewMode = new CalendarView(args); - break; - case "table": - this.viewMode = new TableView(args); - break; - default: - this.viewMode = null; - } } #getViewType(parentNote: FNote): ViewTypeOptions { const viewType = parentNote.getLabelValue("viewType"); - if (!["list", "grid", "calendar", "table"].includes(viewType || "")) { + if (!(allViewTypes as readonly string[]).includes(viewType || "")) { // when not explicitly set, decide based on the note type return parentNote.type === "search" ? "list" : "grid"; } else { @@ -43,15 +34,38 @@ export default class NoteListRenderer { } get isFullHeight() { - return this.viewMode?.isFullHeight; + switch (this.viewType) { + case "list": + case "grid": + return false; + default: + return true; + } } async renderList() { - if (!this.viewMode) { - return null; - } + const args = this.args; + const viewMode = this.#buildViewMode(args); + this.viewMode = viewMode; + await viewMode.beforeRender(); + return await viewMode.renderList(); + } - return await this.viewMode.renderList(); + #buildViewMode(args: ViewModeArgs) { + switch (this.viewType) { + case "calendar": + return new CalendarView(args); + case "table": + return new TableView(args); + case "geoMap": + return new GeoView(args); + case "board": + return new BoardView(args); + case "list": + case "grid": + default: + return new ListOrGridView(this.viewType, args); + } } } diff --git a/apps/client/src/services/note_tooltip.ts b/apps/client/src/services/note_tooltip.ts index d83ad3afac..60af420468 100644 --- a/apps/client/src/services/note_tooltip.ts +++ b/apps/client/src/services/note_tooltip.ts @@ -13,8 +13,8 @@ let openTooltipElements: JQuery[] = []; let dismissTimer: ReturnType; function setupGlobalTooltip() { - $(document).on("mouseenter", "a", mouseEnterHandler); - $(document).on("mouseenter", "[data-href]", mouseEnterHandler); + $(document).on("mouseenter", "a:not(.no-tooltip-preview)", mouseEnterHandler); + $(document).on("mouseenter", "[data-href]:not(.no-tooltip-preview)", mouseEnterHandler); // close any note tooltip after click, this fixes the problem that sometimes tooltips remained on the screen $(document).on("click", (e) => { @@ -168,7 +168,10 @@ async function renderTooltip(note: FNote | null) { if (isContentEmpty) { classes.push("note-no-content"); } - content = `
    ${noteTitleWithPathAsSuffix.prop("outerHTML")}
    `; + content = `\ +
    + ${noteTitleWithPathAsSuffix.prop("outerHTML")} +
    `; } content = `${content}
    ${$renderedAttributes[0].outerHTML}
    `; @@ -176,6 +179,7 @@ async function renderTooltip(note: FNote | null) { content += $renderedContent[0].outerHTML; } + content += ``; return content; } diff --git a/apps/client/src/services/note_types.ts b/apps/client/src/services/note_types.ts index 7d5b884d93..64d31ad398 100644 --- a/apps/client/src/services/note_types.ts +++ b/apps/client/src/services/note_types.ts @@ -1,49 +1,118 @@ -import server from "./server.js"; -import froca from "./froca.js"; import { t } from "./i18n.js"; -import type { MenuItem } from "../menus/context_menu.js"; +import froca from "./froca.js"; +import server from "./server.js"; +import type { MenuCommandItem, MenuItem, MenuItemBadge } from "../menus/context_menu.js"; +import type { NoteType } from "../entities/fnote.js"; import type { TreeCommandNames } from "../menus/tree_context_menu.js"; +export interface NoteTypeMapping { + type: NoteType; + mime?: string; + title: string; + icon?: string; + /** Indicates whether this type should be marked as a newly introduced feature. */ + isNew?: boolean; + /** Indicates that this note type is part of a beta feature. */ + isBeta?: boolean; + /** Indicates that this note type cannot be created by the user. */ + reserved?: boolean; + /** Indicates that once a note of this type is created, its type can no longer be changed. */ + static?: boolean; +} + +export const NOTE_TYPES: NoteTypeMapping[] = [ + // The suggested note type ordering method: insert the item into the corresponding group, + // then ensure the items within the group are ordered alphabetically. + + // The default note type (always the first item) + { type: "text", mime: "text/html", title: t("note_types.text"), icon: "bx-note" }, + + // Text notes group + { type: "book", mime: "", title: t("note_types.book"), icon: "bx-book" }, + + // Graphic notes + { type: "canvas", mime: "application/json", title: t("note_types.canvas"), icon: "bx-pen" }, + { type: "mermaid", mime: "text/mermaid", title: t("note_types.mermaid-diagram"), icon: "bx-selection" }, + + // Map notes + { type: "mindMap", mime: "application/json", title: t("note_types.mind-map"), icon: "bx-sitemap" }, + { type: "noteMap", mime: "", title: t("note_types.note-map"), icon: "bxs-network-chart", static: true }, + { type: "relationMap", mime: "application/json", title: t("note_types.relation-map"), icon: "bxs-network-chart" }, + + // Misc note types + { type: "render", mime: "", title: t("note_types.render-note"), icon: "bx-extension" }, + { type: "search", title: t("note_types.saved-search"), icon: "bx-file-find", static: true }, + { type: "webView", mime: "", title: t("note_types.web-view"), icon: "bx-globe-alt" }, + + // Code notes + { type: "code", mime: "text/plain", title: t("note_types.code"), icon: "bx-code" }, + + // Reserved types (cannot be created by the user) + { type: "contentWidget", mime: "", title: t("note_types.widget"), reserved: true }, + { type: "doc", mime: "", title: t("note_types.doc"), reserved: true }, + { type: "file", title: t("note_types.file"), reserved: true }, + { type: "image", title: t("note_types.image"), reserved: true }, + { type: "launcher", mime: "", title: t("note_types.launcher"), reserved: true }, + { type: "aiChat", mime: "application/json", title: t("note_types.ai-chat"), reserved: true } +]; + +/** The maximum age in days for a template to be marked with the "New" badge */ +const NEW_TEMPLATE_MAX_AGE = 3; + +/** The length of a day in milliseconds. */ +const DAY_LENGTH = 1000 * 60 * 60 * 24; + +/** The menu item badge used to mark new note types and templates */ +const NEW_BADGE: MenuItemBadge = { + title: t("note_types.new-feature"), + className: "new-note-type-badge" +}; + +/** The menu item badge used to mark note types that are part of a beta feature */ +const BETA_BADGE = { + title: t("note_types.beta-feature") +}; + const SEPARATOR = { title: "----" }; +const creationDateCache = new Map(); +let rootCreationDate: Date | undefined; + async function getNoteTypeItems(command?: TreeCommandNames) { const items: MenuItem[] = [ - // The suggested note type ordering method: insert the item into the corresponding group, - // then ensure the items within the group are ordered alphabetically. - // Please keep the order synced with the listing found also in aps/client/src/widgets/note_types.ts. - - // The default note type (always the first item) - { title: t("note_types.text"), command, type: "text", uiIcon: "bx bx-note" }, - - // Text notes group - { title: t("note_types.book"), command, type: "book", uiIcon: "bx bx-book" }, - - // Graphic notes - { title: t("note_types.canvas"), command, type: "canvas", uiIcon: "bx bx-pen" }, - { title: t("note_types.mermaid-diagram"), command, type: "mermaid", uiIcon: "bx bx-selection" }, - - // Map notes - { title: t("note_types.geo-map"), command, type: "geoMap", uiIcon: "bx bx-map-alt" }, - { title: t("note_types.mind-map"), command, type: "mindMap", uiIcon: "bx bx-sitemap" }, - { title: t("note_types.note-map"), command, type: "noteMap", uiIcon: "bx bxs-network-chart" }, - { title: t("note_types.relation-map"), command, type: "relationMap", uiIcon: "bx bxs-network-chart" }, - - // Misc note types - { title: t("note_types.render-note"), command, type: "render", uiIcon: "bx bx-extension" }, - { title: t("note_types.saved-search"), command, type: "search", uiIcon: "bx bx-file-find" }, - { title: t("note_types.web-view"), command, type: "webView", uiIcon: "bx bx-globe-alt" }, - - // Code notes - { title: t("note_types.code"), command, type: "code", uiIcon: "bx bx-code" }, - - // Templates - ...await getBuiltInTemplates(command), + ...getBlankNoteTypes(command), + ...await getBuiltInTemplates(t("note_types.collections"), command, true), + ...await getBuiltInTemplates(null, command, false), ...await getUserTemplates(command) ]; return items; } +function getBlankNoteTypes(command?: TreeCommandNames): MenuItem[] { + return NOTE_TYPES + .filter((nt) => !nt.reserved && nt.type !== "book") + .map((nt) => { + const menuItem: MenuCommandItem = { + title: nt.title, + command, + type: nt.type, + uiIcon: "bx " + nt.icon, + badges: [] + } + + if (nt.isNew) { + menuItem.badges?.push(NEW_BADGE); + } + + if (nt.isBeta) { + menuItem.badges?.push(BETA_BADGE); + } + + return menuItem; + }); +} + async function getUserTemplates(command?: TreeCommandNames) { const templateNoteIds = await server.get("search-templates"); const templateNotes = await froca.getNotes(templateNoteIds); @@ -54,19 +123,26 @@ async function getUserTemplates(command?: TreeCommandNames) { const items: MenuItem[] = [ SEPARATOR ]; + for (const templateNote of templateNotes) { - items.push({ + const item: MenuItem = { title: templateNote.title, uiIcon: templateNote.getIcon(), command: command, type: templateNote.type, templateNoteId: templateNote.noteId - }); + }; + + if (await isNewTemplate(templateNote.noteId)) { + item.badges = [NEW_BADGE]; + } + + items.push(item); } return items; } -async function getBuiltInTemplates(command?: TreeCommandNames) { +async function getBuiltInTemplates(title: string | null, command: TreeCommandNames | undefined, filterCollections: boolean) { const templatesRoot = await froca.getNote("_templates"); if (!templatesRoot) { console.warn("Unable to find template root."); @@ -78,21 +154,85 @@ async function getBuiltInTemplates(command?: TreeCommandNames) { return []; } - const items: MenuItem[] = [ - SEPARATOR - ]; - for (const templateNote of childNotes) { + const items: MenuItem[] = []; + if (title) { items.push({ + title: title, + enabled: false, + uiIcon: "bx bx-empty" + }); + } else { + items.push(SEPARATOR); + } + + for (const templateNote of childNotes) { + if (templateNote.hasLabel("collection") !== filterCollections) { + continue; + } + + const item: MenuItem = { title: templateNote.title, uiIcon: templateNote.getIcon(), command: command, type: templateNote.type, templateNoteId: templateNote.noteId - }); + }; + + if (await isNewTemplate(templateNote.noteId)) { + item.badges = [NEW_BADGE]; + } + + items.push(item); } return items; } +async function isNewTemplate(templateNoteId) { + if (rootCreationDate === undefined) { + // Retrieve the root note creation date + try { + let rootNoteInfo: any = await server.get("notes/root"); + if ("dateCreated" in rootNoteInfo) { + rootCreationDate = new Date(rootNoteInfo.dateCreated); + } + } catch (ex) { + console.error(ex); + } + } + + // Try to retrieve the template's creation date from the cache + let creationDate: Date | undefined = creationDateCache.get(templateNoteId); + + if (creationDate === undefined) { + // The creation date isn't available in the cache, try to retrieve it from the server + try { + const noteInfo: any = await server.get("notes/" + templateNoteId); + if ("dateCreated" in noteInfo) { + creationDate = new Date(noteInfo.dateCreated); + creationDateCache.set(templateNoteId, creationDate); + } + } catch (ex) { + console.error(ex); + } + } + + if (creationDate) { + if (rootCreationDate && creationDate.getTime() - rootCreationDate.getTime() < 30000) { + // Ignore templates created within 30 seconds after the root note is created. + // This is useful to prevent predefined templates from being marked + // as 'New' after setting up a new database. + return false; + } + + // Determine the difference in days between now and the template's creation date + const age = (new Date().getTime() - creationDate.getTime()) / DAY_LENGTH; + // Return true if the template is at most NEW_TEMPLATE_MAX_AGE days old + return (age <= NEW_TEMPLATE_MAX_AGE); + } else { + return false; + } +} + export default { getNoteTypeItems }; diff --git a/apps/client/src/services/promoted_attribute_definition_parser.ts b/apps/client/src/services/promoted_attribute_definition_parser.ts index 6cdb8edc60..fe3a9cf2ea 100644 --- a/apps/client/src/services/promoted_attribute_definition_parser.ts +++ b/apps/client/src/services/promoted_attribute_definition_parser.ts @@ -1,4 +1,4 @@ -export type LabelType = "text" | "number" | "boolean" | "date" | "datetime" | "time" | "url"; +export type LabelType = "text" | "number" | "boolean" | "date" | "datetime" | "time" | "url" | "color"; type Multiplicity = "single" | "multi"; export interface DefinitionObject { @@ -17,7 +17,7 @@ function parse(value: string) { for (const token of tokens) { if (token === "promoted") { defObj.isPromoted = true; - } else if (["text", "number", "boolean", "date", "datetime", "time", "url"].includes(token)) { + } else if (["text", "number", "boolean", "date", "datetime", "time", "url", "color"].includes(token)) { defObj.labelType = token as LabelType; } else if (["single", "multi"].includes(token)) { defObj.multiplicity = token as Multiplicity; diff --git a/apps/client/src/services/shortcuts.spec.ts b/apps/client/src/services/shortcuts.spec.ts new file mode 100644 index 0000000000..1a20f9a84f --- /dev/null +++ b/apps/client/src/services/shortcuts.spec.ts @@ -0,0 +1,323 @@ +import { describe, expect, it, vi, beforeEach, afterEach } from "vitest"; +import shortcuts, { keyMatches, matchesShortcut } from "./shortcuts.js"; + +// Mock utils module +vi.mock("./utils.js", () => ({ + default: { + isDesktop: () => true + } +})); + +// Mock jQuery globally since it's used in the shortcuts module +const mockElement = { + addEventListener: vi.fn(), + removeEventListener: vi.fn() +}; + +const mockJQuery = vi.fn(() => [mockElement]); +(mockJQuery as any).length = 1; +mockJQuery[0] = mockElement; + +(global as any).$ = mockJQuery as any; +global.document = mockElement as any; + +describe("shortcuts", () => { + beforeEach(() => { + vi.clearAllMocks(); + }); + + afterEach(() => { + // Clean up any active bindings after each test + shortcuts.removeGlobalShortcut("test-namespace"); + }); + + describe("normalizeShortcut", () => { + it("should normalize shortcut to lowercase and remove whitespace", () => { + expect(shortcuts.normalizeShortcut("Ctrl + A")).toBe("ctrl+a"); + expect(shortcuts.normalizeShortcut(" SHIFT + F1 ")).toBe("shift+f1"); + expect(shortcuts.normalizeShortcut("Alt+Space")).toBe("alt+space"); + }); + + it("should handle empty or null shortcuts", () => { + expect(shortcuts.normalizeShortcut("")).toBe(""); + expect(shortcuts.normalizeShortcut(null as any)).toBe(null); + expect(shortcuts.normalizeShortcut(undefined as any)).toBe(undefined); + }); + + it("should handle shortcuts with multiple spaces", () => { + expect(shortcuts.normalizeShortcut("Ctrl + Shift + A")).toBe("ctrl+shift+a"); + }); + + it("should warn about malformed shortcuts", () => { + const consoleSpy = vi.spyOn(console, 'warn').mockImplementation(() => {}); + + shortcuts.normalizeShortcut("ctrl+"); + shortcuts.normalizeShortcut("+a"); + shortcuts.normalizeShortcut("ctrl++a"); + + expect(consoleSpy).toHaveBeenCalledTimes(3); + consoleSpy.mockRestore(); + }); + }); + + describe("keyMatches", () => { + const createKeyboardEvent = (key: string, code?: string) => ({ + key, + code: code || `Key${key.toUpperCase()}` + } as KeyboardEvent); + + it("should match regular letter keys using key code", () => { + const event = createKeyboardEvent("a", "KeyA"); + expect(keyMatches(event, "a")).toBe(true); + expect(keyMatches(event, "A")).toBe(true); + }); + + it("should match number keys using digit codes", () => { + const event = createKeyboardEvent("1", "Digit1"); + expect(keyMatches(event, "1")).toBe(true); + }); + + it("should match special keys using key mapping", () => { + expect(keyMatches({ key: "Enter" } as KeyboardEvent, "return")).toBe(true); + expect(keyMatches({ key: "Enter" } as KeyboardEvent, "enter")).toBe(true); + expect(keyMatches({ key: "Delete" } as KeyboardEvent, "del")).toBe(true); + expect(keyMatches({ key: "Escape" } as KeyboardEvent, "esc")).toBe(true); + expect(keyMatches({ key: " " } as KeyboardEvent, "space")).toBe(true); + expect(keyMatches({ key: "ArrowUp" } as KeyboardEvent, "up")).toBe(true); + }); + + it("should match function keys", () => { + expect(keyMatches({ key: "F1" } as KeyboardEvent, "f1")).toBe(true); + expect(keyMatches({ key: "F12" } as KeyboardEvent, "f12")).toBe(true); + }); + + it("should handle undefined or null keys", () => { + const consoleSpy = vi.spyOn(console, 'warn').mockImplementation(() => {}); + + expect(keyMatches({} as KeyboardEvent, null as any)).toBe(false); + expect(keyMatches({} as KeyboardEvent, undefined as any)).toBe(false); + + expect(consoleSpy).toHaveBeenCalled(); + consoleSpy.mockRestore(); + }); + }); + + describe("matchesShortcut", () => { + const createKeyboardEvent = (options: { + key: string; + code?: string; + ctrlKey?: boolean; + altKey?: boolean; + shiftKey?: boolean; + metaKey?: boolean; + }) => ({ + key: options.key, + code: options.code || `Key${options.key.toUpperCase()}`, + ctrlKey: options.ctrlKey || false, + altKey: options.altKey || false, + shiftKey: options.shiftKey || false, + metaKey: options.metaKey || false + } as KeyboardEvent); + + it("should match simple key shortcuts", () => { + const event = createKeyboardEvent({ key: "a", code: "KeyA" }); + expect(matchesShortcut(event, "a")).toBe(true); + }); + + it("should match shortcuts with modifiers", () => { + const event = createKeyboardEvent({ key: "a", code: "KeyA", ctrlKey: true }); + expect(matchesShortcut(event, "ctrl+a")).toBe(true); + + const shiftEvent = createKeyboardEvent({ key: "a", code: "KeyA", shiftKey: true }); + expect(matchesShortcut(shiftEvent, "shift+a")).toBe(true); + }); + + it("should match complex modifier combinations", () => { + const event = createKeyboardEvent({ + key: "a", + code: "KeyA", + ctrlKey: true, + shiftKey: true + }); + expect(matchesShortcut(event, "ctrl+shift+a")).toBe(true); + }); + + it("should not match when modifiers don't match", () => { + const event = createKeyboardEvent({ key: "a", code: "KeyA", ctrlKey: true }); + expect(matchesShortcut(event, "alt+a")).toBe(false); + expect(matchesShortcut(event, "a")).toBe(false); + }); + + it("should handle alternative modifier names", () => { + const ctrlEvent = createKeyboardEvent({ key: "a", code: "KeyA", ctrlKey: true }); + expect(matchesShortcut(ctrlEvent, "control+a")).toBe(true); + + const metaEvent = createKeyboardEvent({ key: "a", code: "KeyA", metaKey: true }); + expect(matchesShortcut(metaEvent, "cmd+a")).toBe(true); + expect(matchesShortcut(metaEvent, "command+a")).toBe(true); + }); + + it("should handle empty or invalid shortcuts", () => { + const event = createKeyboardEvent({ key: "a", code: "KeyA" }); + expect(matchesShortcut(event, "")).toBe(false); + expect(matchesShortcut(event, null as any)).toBe(false); + }); + + it("should handle invalid events", () => { + const consoleSpy = vi.spyOn(console, 'warn').mockImplementation(() => {}); + + expect(matchesShortcut(null as any, "a")).toBe(false); + expect(matchesShortcut({} as KeyboardEvent, "a")).toBe(false); + + expect(consoleSpy).toHaveBeenCalled(); + consoleSpy.mockRestore(); + }); + + it("should warn about invalid shortcut formats", () => { + const consoleSpy = vi.spyOn(console, 'warn').mockImplementation(() => {}); + const event = createKeyboardEvent({ key: "a", code: "KeyA" }); + + matchesShortcut(event, "ctrl+"); + matchesShortcut(event, "+"); + + expect(consoleSpy).toHaveBeenCalled(); + consoleSpy.mockRestore(); + }); + }); + + describe("bindGlobalShortcut", () => { + it("should bind a global shortcut", () => { + const handler = vi.fn(); + shortcuts.bindGlobalShortcut("ctrl+a", handler, "test-namespace"); + + expect(mockElement.addEventListener).toHaveBeenCalledWith("keydown", expect.any(Function)); + }); + + it("should not bind shortcuts when handler is null", () => { + shortcuts.bindGlobalShortcut("ctrl+a", null, "test-namespace"); + + expect(mockElement.addEventListener).not.toHaveBeenCalled(); + }); + + it("should remove previous bindings when namespace is reused", () => { + const handler1 = vi.fn(); + const handler2 = vi.fn(); + + shortcuts.bindGlobalShortcut("ctrl+a", handler1, "test-namespace"); + expect(mockElement.addEventListener).toHaveBeenCalledTimes(1); + + shortcuts.bindGlobalShortcut("ctrl+b", handler2, "test-namespace"); + expect(mockElement.removeEventListener).toHaveBeenCalledTimes(1); + expect(mockElement.addEventListener).toHaveBeenCalledTimes(2); + }); + }); + + describe("bindElShortcut", () => { + it("should bind shortcut to specific element", () => { + const mockEl = { addEventListener: vi.fn(), removeEventListener: vi.fn() }; + const mockJQueryEl = [mockEl] as any; + mockJQueryEl.length = 1; + + const handler = vi.fn(); + shortcuts.bindElShortcut(mockJQueryEl, "ctrl+a", handler, "test-namespace"); + + expect(mockEl.addEventListener).toHaveBeenCalledWith("keydown", expect.any(Function)); + }); + + it("should fall back to document when element is empty", () => { + const emptyJQuery = [] as any; + emptyJQuery.length = 0; + + const handler = vi.fn(); + shortcuts.bindElShortcut(emptyJQuery, "ctrl+a", handler, "test-namespace"); + + expect(mockElement.addEventListener).toHaveBeenCalledWith("keydown", expect.any(Function)); + }); + }); + + describe("removeGlobalShortcut", () => { + it("should remove shortcuts for a specific namespace", () => { + const handler = vi.fn(); + shortcuts.bindGlobalShortcut("ctrl+a", handler, "test-namespace"); + + shortcuts.removeGlobalShortcut("test-namespace"); + + expect(mockElement.removeEventListener).toHaveBeenCalledWith("keydown", expect.any(Function)); + }); + }); + + describe("event handling", () => { + it.skip("should call handler when shortcut matches", () => { + const handler = vi.fn(); + shortcuts.bindGlobalShortcut("ctrl+a", handler, "test-namespace"); + + // Get the listener that was registered + expect(mockElement.addEventListener.mock.calls).toHaveLength(1); + const [, listener] = mockElement.addEventListener.mock.calls[0]; + + // First verify that matchesShortcut works directly + const testEvent = { + type: "keydown", + key: "a", + code: "KeyA", + ctrlKey: true, + altKey: false, + shiftKey: false, + metaKey: false, + preventDefault: vi.fn(), + stopPropagation: vi.fn() + } as any; + + // Test matchesShortcut directly first + expect(matchesShortcut(testEvent, "ctrl+a")).toBe(true); + + // Now test the actual listener + listener(testEvent); + + expect(handler).toHaveBeenCalled(); + expect(testEvent.preventDefault).toHaveBeenCalled(); + expect(testEvent.stopPropagation).toHaveBeenCalled(); + }); + + it("should not call handler for non-keyboard events", () => { + const handler = vi.fn(); + shortcuts.bindGlobalShortcut("ctrl+a", handler, "test-namespace"); + + const [, listener] = mockElement.addEventListener.mock.calls[0]; + + // Simulate a non-keyboard event + const event = { + type: "click" + } as any; + + listener(event); + + expect(handler).not.toHaveBeenCalled(); + }); + + it("should not call handler when shortcut doesn't match", () => { + const handler = vi.fn(); + shortcuts.bindGlobalShortcut("ctrl+a", handler, "test-namespace"); + + const [, listener] = mockElement.addEventListener.mock.calls[0]; + + // Simulate a non-matching keydown event + const event = { + type: "keydown", + key: "b", + code: "KeyB", + ctrlKey: true, + altKey: false, + shiftKey: false, + metaKey: false, + preventDefault: vi.fn(), + stopPropagation: vi.fn() + } as any; + + listener(event); + + expect(handler).not.toHaveBeenCalled(); + expect(event.preventDefault).not.toHaveBeenCalled(); + }); + }); +}); diff --git a/apps/client/src/services/shortcuts.ts b/apps/client/src/services/shortcuts.ts index d19e434d11..00f2f7721d 100644 --- a/apps/client/src/services/shortcuts.ts +++ b/apps/client/src/services/shortcuts.ts @@ -1,7 +1,18 @@ import utils from "./utils.js"; type ElementType = HTMLElement | Document; -type Handler = (e: JQuery.TriggeredEvent) => void; +type Handler = (e: KeyboardEvent) => void; + +interface ShortcutBinding { + element: HTMLElement | Document; + shortcut: string; + handler: Handler; + namespace: string | null; + listener: (evt: Event) => void; +} + +// Store all active shortcut bindings for management +const activeBindings: Map = new Map(); function removeGlobalShortcut(namespace: string) { bindGlobalShortcut("", null, namespace); @@ -15,38 +26,167 @@ function bindElShortcut($el: JQuery, keyboardShortcut: st if (utils.isDesktop()) { keyboardShortcut = normalizeShortcut(keyboardShortcut); - let eventName = "keydown"; - + // If namespace is provided, remove all previous bindings for this namespace if (namespace) { - eventName += `.${namespace}`; - - // if there's a namespace, then we replace the existing event handler with the new one - $el.off(eventName); + removeNamespaceBindings(namespace); } - // method can be called to remove the shortcut (e.g. when keyboardShortcut label is deleted) - if (keyboardShortcut) { - $el.bind(eventName, keyboardShortcut, (e) => { - if (handler) { - handler(e); + // Method can be called to remove the shortcut (e.g. when keyboardShortcut label is deleted) + if (keyboardShortcut && handler) { + const element = $el.length > 0 ? $el[0] as (HTMLElement | Document) : document; + + const listener = (evt: Event) => { + // Only handle keyboard events + if (evt.type !== 'keydown' || !(evt instanceof KeyboardEvent)) { + return; } - e.preventDefault(); - e.stopPropagation(); - }); + const e = evt as KeyboardEvent; + if (matchesShortcut(e, keyboardShortcut)) { + e.preventDefault(); + e.stopPropagation(); + handler(e); + } + }; + + // Add the event listener + element.addEventListener('keydown', listener); + + // Store the binding for later cleanup + const binding: ShortcutBinding = { + element, + shortcut: keyboardShortcut, + handler, + namespace, + listener + }; + + const key = namespace || 'global'; + if (!activeBindings.has(key)) { + activeBindings.set(key, []); + } + activeBindings.get(key)!.push(binding); } } } +function removeNamespaceBindings(namespace: string) { + const bindings = activeBindings.get(namespace); + if (bindings) { + // Remove all event listeners for this namespace + bindings.forEach(binding => { + binding.element.removeEventListener('keydown', binding.listener); + }); + activeBindings.delete(namespace); + } +} + +export function matchesShortcut(e: KeyboardEvent, shortcut: string): boolean { + if (!shortcut) return false; + + // Ensure we have a proper KeyboardEvent with key property + if (!e || typeof e.key !== 'string') { + console.warn('matchesShortcut called with invalid event:', e); + return false; + } + + const parts = shortcut.toLowerCase().split('+'); + const key = parts[parts.length - 1]; // Last part is the actual key + const modifiers = parts.slice(0, -1); // Everything before is modifiers + + // Defensive check - ensure we have a valid key + if (!key || key.trim() === '') { + console.warn('Invalid shortcut format:', shortcut); + return false; + } + + // Check if the main key matches + if (!keyMatches(e, key)) { + return false; + } + + // Check modifiers + const expectedCtrl = modifiers.includes('ctrl') || modifiers.includes('control'); + const expectedAlt = modifiers.includes('alt'); + const expectedShift = modifiers.includes('shift'); + const expectedMeta = modifiers.includes('meta') || modifiers.includes('cmd') || modifiers.includes('command'); + + return e.ctrlKey === expectedCtrl && + e.altKey === expectedAlt && + e.shiftKey === expectedShift && + e.metaKey === expectedMeta; +} + +export function keyMatches(e: KeyboardEvent, key: string): boolean { + // Defensive check for undefined/null key + if (!key) { + console.warn('keyMatches called with undefined/null key'); + return false; + } + + // Handle special key mappings and aliases + const keyMap: { [key: string]: string[] } = { + 'return': ['Enter'], + 'enter': ['Enter'], // alias for return + 'del': ['Delete'], + 'delete': ['Delete'], // alias for del + 'esc': ['Escape'], + 'escape': ['Escape'], // alias for esc + 'space': [' ', 'Space'], + 'tab': ['Tab'], + 'backspace': ['Backspace'], + 'home': ['Home'], + 'end': ['End'], + 'pageup': ['PageUp'], + 'pagedown': ['PageDown'], + 'up': ['ArrowUp'], + 'down': ['ArrowDown'], + 'left': ['ArrowLeft'], + 'right': ['ArrowRight'] + }; + + // Function keys + for (let i = 1; i <= 19; i++) { + keyMap[`f${i}`] = [`F${i}`]; + } + + const mappedKeys = keyMap[key.toLowerCase()]; + if (mappedKeys) { + return mappedKeys.includes(e.key) || mappedKeys.includes(e.code); + } + + // For number keys, use the physical key code regardless of modifiers + // This works across all keyboard layouts + if (key >= '0' && key <= '9') { + return e.code === `Digit${key}`; + } + + // For letter keys, use the physical key code for consistency + if (key.length === 1 && key >= 'a' && key <= 'z') { + return e.code === `Key${key.toUpperCase()}`; + } + + // For regular keys, check both key and code as fallback + return e.key.toLowerCase() === key.toLowerCase() || + e.code.toLowerCase() === key.toLowerCase(); +} + /** - * Normalize to the form expected by the jquery.hotkeys.js + * Simple normalization - just lowercase and trim whitespace */ function normalizeShortcut(shortcut: string): string { if (!shortcut) { return shortcut; } - return shortcut.toLowerCase().replace("enter", "return").replace("delete", "del").replace("ctrl+alt", "alt+ctrl").replace("meta+alt", "alt+meta"); // alt needs to be first; + const normalized = shortcut.toLowerCase().trim().replace(/\s+/g, ''); + + // Warn about potentially problematic shortcuts + if (normalized.endsWith('+') || normalized.startsWith('+') || normalized.includes('++')) { + console.warn('Potentially malformed shortcut:', shortcut, '-> normalized to:', normalized); + } + + return normalized; } export default { diff --git a/apps/client/src/services/spaced_update.ts b/apps/client/src/services/spaced_update.ts index 9b09a2fd3e..938fceb004 100644 --- a/apps/client/src/services/spaced_update.ts +++ b/apps/client/src/services/spaced_update.ts @@ -51,6 +51,14 @@ export default class SpacedUpdate { this.lastUpdated = Date.now(); } + /** + * Sets the update interval for the spaced update. + * @param interval The update interval in milliseconds. + */ + setUpdateInterval(interval: number) { + this.updateInterval = interval; + } + triggerUpdate() { if (!this.changed) { return; diff --git a/apps/client/src/services/syntax_highlight.ts b/apps/client/src/services/syntax_highlight.ts index 02089e09c8..9b5592a6b3 100644 --- a/apps/client/src/services/syntax_highlight.ts +++ b/apps/client/src/services/syntax_highlight.ts @@ -36,7 +36,9 @@ export function applyCopyToClipboardButton($codeBlock: JQuery) { const $copyButton = $(" -
    - -
    - - - - -`; - -export default class AboutDialog extends BasicWidget { - private $appVersion!: JQuery; - private $dbVersion!: JQuery; - private $syncVersion!: JQuery; - private $buildDate!: JQuery; - private $buildRevision!: JQuery; - private $dataDirectory!: JQuery; - - doRender(): void { - this.$widget = $(TPL); - this.$appVersion = this.$widget.find(".app-version"); - this.$dbVersion = this.$widget.find(".db-version"); - this.$syncVersion = this.$widget.find(".sync-version"); - this.$buildDate = this.$widget.find(".build-date"); - this.$buildRevision = this.$widget.find(".build-revision"); - this.$dataDirectory = this.$widget.find(".data-directory"); - } - - async refresh() { - const appInfo = await server.get("app-info"); - - this.$appVersion.text(appInfo.appVersion); - this.$dbVersion.text(appInfo.dbVersion.toString()); - this.$syncVersion.text(appInfo.syncVersion.toString()); - this.$buildDate.text(formatDateTime(appInfo.buildDate)); - this.$buildRevision.text(appInfo.buildRevision); - this.$buildRevision.attr("href", `https://github.com/TriliumNext/Trilium/commit/${appInfo.buildRevision}`); - if (utils.isElectron()) { - this.$dataDirectory.html( - $("", { - href: "#", - class: "tn-link", - text: appInfo.dataDirectory - }).prop("outerHTML") - ); - this.$dataDirectory.find("a").on("click", (event: JQuery.ClickEvent) => { - event.preventDefault(); - openService.openDirectory(appInfo.dataDirectory); - }); - } else { - this.$dataDirectory.text(appInfo.dataDirectory); - } - } - - async openAboutDialogEvent() { - await this.refresh(); - openDialog(this.$widget); - } -} diff --git a/apps/client/src/widgets/dialogs/about.tsx b/apps/client/src/widgets/dialogs/about.tsx new file mode 100644 index 0000000000..b315d52cde --- /dev/null +++ b/apps/client/src/widgets/dialogs/about.tsx @@ -0,0 +1,91 @@ +import { openDialog } from "../../services/dialog.js"; +import ReactBasicWidget from "../react/ReactBasicWidget.js"; +import Modal from "../react/Modal.js"; +import { t } from "../../services/i18n.js"; +import { formatDateTime } from "../../utils/formatters.js"; +import server from "../../services/server.js"; +import utils from "../../services/utils.js"; +import openService from "../../services/open.js"; +import { useState } from "preact/hooks"; +import type { CSSProperties } from "preact/compat"; +import type { AppInfo } from "@triliumnext/commons"; + +function AboutDialogComponent() { + let [appInfo, setAppInfo] = useState(null); + + async function onShown() { + const appInfo = await server.get("app-info"); + setAppInfo(appInfo); + } + + const forceWordBreak: CSSProperties = { wordBreak: "break-all" }; + + return ( + + {(appInfo !== null) ? ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {t("about.homepage")}https://github.com/TriliumNext/Trilium
    {t("about.app_version")}{appInfo.appVersion}
    {t("about.db_version")}{appInfo.dbVersion}
    {t("about.sync_version")}{appInfo.syncVersion}
    {t("about.build_date")}{formatDateTime(appInfo.buildDate)}
    {t("about.build_revision")} + {appInfo.buildRevision} +
    {t("about.data_directory")} + +
    + ) : ( +
    + )} +
    + ); +} + +function DirectoryLink({ directory, style }: { directory: string, style?: CSSProperties }) { + if (utils.isElectron()) { + const onClick = (e: MouseEvent) => { + e.preventDefault(); + openService.openDirectory(directory); + }; + + return + } else { + return {directory}; + } +} + +export default class AboutDialog extends ReactBasicWidget { + + get component() { + return ; + } + + async openAboutDialogEvent() { + openDialog(this.$widget); + } +} \ No newline at end of file diff --git a/apps/client/src/widgets/dialogs/jump_to_note.ts b/apps/client/src/widgets/dialogs/jump_to_note.ts index 98ee6e0e44..70676f696a 100644 --- a/apps/client/src/widgets/dialogs/jump_to_note.ts +++ b/apps/client/src/widgets/dialogs/jump_to_note.ts @@ -6,6 +6,7 @@ import BasicWidget from "../basic_widget.js"; import shortcutService from "../../services/shortcuts.js"; import { Modal } from "bootstrap"; import { openDialog } from "../../services/dialog.js"; +import commandRegistry from "../../services/command_registry.js"; const TPL = /*html*/``; +const SUPPORTED_NOTE_TYPES = ["text", "code", "render", "mindMap", "doc"]; export default class FindWidget extends NoteContextAwareWidget { private searchTerm: string | null; @@ -188,7 +189,7 @@ export default class FindWidget extends NoteContextAwareWidget { return; } - if (!["text", "code", "render", "mindMap"].includes(this.note?.type ?? "")) { + if (!SUPPORTED_NOTE_TYPES.includes(this.note?.type ?? "")) { return; } @@ -251,6 +252,7 @@ export default class FindWidget extends NoteContextAwareWidget { const readOnly = await this.noteContext?.isReadOnly(); return readOnly ? this.htmlHandler : this.textHandler; case "mindMap": + case "doc": return this.htmlHandler; default: console.warn("FindWidget: Unsupported note type for find widget", this.note?.type); @@ -354,7 +356,7 @@ export default class FindWidget extends NoteContextAwareWidget { } isEnabled() { - return super.isEnabled() && ["text", "code", "render", "mindMap"].includes(this.note?.type ?? ""); + return super.isEnabled() && SUPPORTED_NOTE_TYPES.includes(this.note?.type ?? ""); } async entitiesReloadedEvent({ loadResults }: EventData<"entitiesReloaded">) { diff --git a/apps/client/src/widgets/floating_buttons/geo_map_button.ts b/apps/client/src/widgets/floating_buttons/geo_map_button.ts index 32b45d66cf..7e59eeaf24 100644 --- a/apps/client/src/widgets/floating_buttons/geo_map_button.ts +++ b/apps/client/src/widgets/floating_buttons/geo_map_button.ts @@ -23,7 +23,9 @@ const TPL = /*html*/`\ export default class GeoMapButtons extends NoteContextAwareWidget { isEnabled() { - return super.isEnabled() && this.note?.type === "geoMap"; + return super.isEnabled() + && this.note?.getLabelValue("viewType") === "geoMap" + && !this.note.hasLabel("readOnly"); } doRender() { diff --git a/apps/client/src/widgets/floating_buttons/help_button.ts b/apps/client/src/widgets/floating_buttons/help_button.ts index f0403bfd76..b7f6a8fd21 100644 --- a/apps/client/src/widgets/floating_buttons/help_button.ts +++ b/apps/client/src/widgets/floating_buttons/help_button.ts @@ -17,7 +17,6 @@ export const byNoteType: Record, string | null> = { contentWidget: null, doc: null, file: null, - geoMap: "81SGnPGMk7Xc", image: null, launcher: null, mermaid: null, @@ -32,10 +31,12 @@ export const byNoteType: Record, string | null> = { }; export const byBookType: Record = { - list: null, - grid: null, + list: "mULW0Q3VojwY", + grid: "8QqnMzx393bx", calendar: "xWbu3jpNWapp", - table: "2FvYrpmOXm29" + table: "2FvYrpmOXm29", + geoMap: "81SGnPGMk7Xc", + board: "CtBQqbwXDx1w" }; export default class ContextualHelpButton extends NoteContextAwareWidget { diff --git a/apps/client/src/widgets/floating_buttons/toggle_read_only_button.ts b/apps/client/src/widgets/floating_buttons/toggle_read_only_button.ts index f436c820c1..571e990178 100644 --- a/apps/client/src/widgets/floating_buttons/toggle_read_only_button.ts +++ b/apps/client/src/widgets/floating_buttons/toggle_read_only_button.ts @@ -39,10 +39,20 @@ export default class ToggleReadOnlyButton extends OnClickButtonWidget { } isEnabled() { - return super.isEnabled() - && this.note?.type === "mermaid" - && this.note?.isContentAvailable() - && this.noteContext?.viewScope?.viewMode === "default"; + if (!super.isEnabled()) { + return false; + } + + if (!this?.note?.isContentAvailable()) { + return false; + } + + if (this.noteContext?.viewScope?.viewMode !== "default") { + return false; + } + + return this.note.type === "mermaid" || + (this.note.getLabelValue("viewType") === "geoMap"); } } diff --git a/apps/client/src/widgets/geo_map.ts b/apps/client/src/widgets/geo_map.ts deleted file mode 100644 index 14df22e3b2..0000000000 --- a/apps/client/src/widgets/geo_map.ts +++ /dev/null @@ -1,58 +0,0 @@ -import type { Map } from "leaflet"; -import L from "leaflet"; -import "leaflet/dist/leaflet.css"; -import NoteContextAwareWidget from "./note_context_aware_widget.js"; - -const TPL = /*html*/`\ -
    - - -
    -
    `; - -export type Leaflet = typeof L; -export type InitCallback = (L: Leaflet) => void; - -export default class GeoMapWidget extends NoteContextAwareWidget { - - map?: Map; - $container!: JQuery; - private initCallback?: InitCallback; - - constructor(widgetMode: "type", initCallback?: InitCallback) { - super(); - this.initCallback = initCallback; - } - - doRender() { - this.$widget = $(TPL); - - this.$container = this.$widget.find(".geo-map-container"); - - const map = L.map(this.$container[0], { - worldCopyJump: true - }); - - this.map = map; - if (this.initCallback) { - this.initCallback(L); - } - - L.tileLayer("https://tile.openstreetmap.org/{z}/{x}/{y}.png", { - attribution: '©
    OpenStreetMap contributors', - detectRetina: true - }).addTo(map); - } -} diff --git a/apps/client/src/widgets/note_detail.ts b/apps/client/src/widgets/note_detail.ts index 3b232134a1..bb66c39e67 100644 --- a/apps/client/src/widgets/note_detail.ts +++ b/apps/client/src/widgets/note_detail.ts @@ -28,7 +28,6 @@ import ContentWidgetTypeWidget from "./type_widgets/content_widget.js"; import AttachmentListTypeWidget from "./type_widgets/attachment_list.js"; import AttachmentDetailTypeWidget from "./type_widgets/attachment_detail.js"; import MindMapWidget from "./type_widgets/mind_map.js"; -import GeoMapTypeWidget from "./type_widgets/geo_map.js"; import utils from "../services/utils.js"; import type { NoteType } from "../entities/fnote.js"; import type TypeWidget from "./type_widgets/type_widget.js"; @@ -71,7 +70,6 @@ const typeWidgetClasses = { attachmentDetail: AttachmentDetailTypeWidget, attachmentList: AttachmentListTypeWidget, mindMap: MindMapWidget, - geoMap: GeoMapTypeWidget, aiChat: AiChatTypeWidget, // Split type editors @@ -197,7 +195,7 @@ export default class NoteDetailWidget extends NoteContextAwareWidget { // https://github.com/zadam/trilium/issues/2522 const isBackendNote = this.noteContext?.noteId === "_backendLog"; const isSqlNote = this.mime === "text/x-sqlite;schema=trilium"; - const isFullHeightNoteType = ["canvas", "webView", "noteMap", "mindMap", "geoMap", "mermaid"].includes(this.type ?? ""); + const isFullHeightNoteType = ["canvas", "webView", "noteMap", "mindMap", "mermaid", "file"].includes(this.type ?? ""); const isFullHeight = (!this.noteContext?.hasNoteList() && isFullHeightNoteType && !isSqlNote) || this.noteContext?.viewScope?.viewMode === "attachments" || isBackendNote; diff --git a/apps/client/src/widgets/note_list.ts b/apps/client/src/widgets/note_list.ts index 389aa82d30..74602c9210 100644 --- a/apps/client/src/widgets/note_list.ts +++ b/apps/client/src/widgets/note_list.ts @@ -1,10 +1,8 @@ import NoteContextAwareWidget from "./note_context_aware_widget.js"; import NoteListRenderer from "../services/note_list_renderer.js"; import type FNote from "../entities/fnote.js"; -import type { CommandListener, CommandListenerData, CommandMappings, CommandNames, EventData } from "../components/app_context.js"; +import type { CommandListener, CommandListenerData, CommandMappings, CommandNames, EventData, EventNames } from "../components/app_context.js"; import type ViewMode from "./view_widgets/view_mode.js"; -import AttributeDetailWidget from "./attribute_widgets/attribute_detail.js"; -import { Attribute } from "../services/attribute_parser.js"; const TPL = /*html*/`
    @@ -39,24 +37,36 @@ export default class NoteListWidget extends NoteContextAwareWidget { private noteIdRefreshed?: string; private shownNoteId?: string | null; private viewMode?: ViewMode | null; - private attributeDetailWidget: AttributeDetailWidget; + private displayOnlyCollections: boolean; - constructor() { + /** + * @param displayOnlyCollections if set to `true` then only collection-type views are displayed such as geo-map and the calendar. The original book types grid and list will be ignored. + */ + constructor(displayOnlyCollections: boolean) { super(); - this.attributeDetailWidget = new AttributeDetailWidget() - .contentSized() - .setParent(this); + + this.displayOnlyCollections = displayOnlyCollections; } isEnabled() { - return super.isEnabled() && this.noteContext?.hasNoteList(); + if (!super.isEnabled()) { + return false; + } + + if (this.displayOnlyCollections && this.note?.type !== "book") { + const viewType = this.note?.getLabelValue("viewType"); + if (!viewType || ["grid", "list"].includes(viewType)) { + return false; + } + } + + return this.noteContext?.hasNoteList(); } doRender() { this.$widget = $(TPL); this.contentSized(); this.$content = this.$widget.find(".note-list-widget-content"); - this.$widget.append(this.attributeDetailWidget.render()); const observer = new IntersectionObserver( (entries) => { @@ -75,23 +85,6 @@ export default class NoteListWidget extends NoteContextAwareWidget { setTimeout(() => observer.observe(this.$widget[0]), 10); } - addNoteListItemEvent() { - const attr: Attribute = { - type: "label", - name: "label:myLabel", - value: "promoted,single,text" - }; - - this.attributeDetailWidget!.showAttributeDetail({ - attribute: attr, - allAttributes: [ attr ], - isOwned: true, - x: 100, - y: 200, - focus: "name" - }); - } - checkRenderStatus() { // console.log("this.isIntersecting", this.isIntersecting); // console.log(`${this.noteIdRefreshed} === ${this.noteId}`, this.noteIdRefreshed === this.noteId); @@ -107,8 +100,7 @@ export default class NoteListWidget extends NoteContextAwareWidget { const noteListRenderer = new NoteListRenderer({ $parent: this.$content, parentNote: note, - parentNotePath: this.notePath, - noteIds: note.getChildNoteIds() + parentNotePath: this.notePath }); this.$widget.toggleClass("full-height", noteListRenderer.isFullHeight); await noteListRenderer.renderList(); @@ -153,12 +145,6 @@ export default class NoteListWidget extends NoteContextAwareWidget { this.refresh(); this.checkRenderStatus(); } - - // Inform the view mode of changes and refresh if needed. - if (this.viewMode && this.viewMode.onEntitiesReloaded(e)) { - this.refresh(); - this.checkRenderStatus(); - } } buildTouchBarCommand(data: CommandListenerData<"buildTouchBar">) { @@ -176,4 +162,17 @@ export default class NoteListWidget extends NoteContextAwareWidget { return super.triggerCommand(name, data); } + handleEventInChildren(name: T, data: EventData): Promise | null { + super.handleEventInChildren(name, data); + + if (this.viewMode) { + const ret = this.viewMode.handleEvent(name, data); + if (ret) { + return ret; + } + } + + return null; + } + } diff --git a/apps/client/src/widgets/note_tree.ts b/apps/client/src/widgets/note_tree.ts index 46abe10a02..301a61b6b8 100644 --- a/apps/client/src/widgets/note_tree.ts +++ b/apps/client/src/widgets/note_tree.ts @@ -186,6 +186,15 @@ interface RefreshContext { noteIdsToReload: Set; } +/** + * The information contained within a drag event. + */ +export interface DragData { + noteId: string; + branchId: string; + title: string; +} + export default class NoteTreeWidget extends NoteContextAwareWidget { private $tree!: JQuery; private $treeActions!: JQuery; @@ -231,15 +240,21 @@ export default class NoteTreeWidget extends NoteContextAwareWidget { this.$tree.on("mousedown", ".fancytree-title", (e) => { if (e.which === 2) { const node = $.ui.fancytree.getNode(e as unknown as Event); - const notePath = treeService.getNotePath(node); if (notePath) { + e.stopPropagation(); + e.preventDefault(); + appContext.tabManager.openTabWithNoteWithHoisting(notePath, { activate: e.shiftKey ? true : false }); } - + } + }); + this.$tree.on("mouseup", ".fancytree-title", (e) => { + // Prevent middle click from pasting in the editor. + if (e.which === 2) { e.stopPropagation(); e.preventDefault(); } @@ -698,7 +713,13 @@ export default class NoteTreeWidget extends NoteContextAwareWidget { }); } else { this.$tree.on("contextmenu", ".fancytree-node", (e) => { - this.showContextMenu(e); + if (!utils.isCtrlKey(e)) { + this.showContextMenu(e); + } else { + const node = $.ui.fancytree.getNode(e as unknown as Event); + const notePath = treeService.getNotePath(node); + appContext.triggerCommand("openInPopup", { noteIdOrPath: notePath }); + } return false; // blocks default browser right click menu }); @@ -706,9 +727,9 @@ export default class NoteTreeWidget extends NoteContextAwareWidget { for (const key in hotKeys) { const handler = hotKeys[key]; - $(this.tree.$container).on("keydown", null, key, (evt) => { + shortcutService.bindElShortcut($(this.tree.$container), key, () => { const node = this.tree.getActiveNode(); - return handler(node, evt); + return handler(node, {} as JQuery.KeyDownEvent); // return false from the handler will stop default handling. }); } @@ -1531,7 +1552,7 @@ export default class NoteTreeWidget extends NoteContextAwareWidget { const hotKeyMap: Record boolean> = {}; for (const action of actions) { - for (const shortcut of action.effectiveShortcuts) { + for (const shortcut of action.effectiveShortcuts ?? []) { hotKeyMap[shortcutService.normalizeShortcut(shortcut)] = (node) => { const notePath = treeService.getNotePath(node); diff --git a/apps/client/src/widgets/note_type.ts b/apps/client/src/widgets/note_type.ts index 8921f2e51d..d1a40b4085 100644 --- a/apps/client/src/widgets/note_type.ts +++ b/apps/client/src/widgets/note_type.ts @@ -1,60 +1,15 @@ -import server from "../services/server.js"; +import { Dropdown } from "bootstrap"; +import { NOTE_TYPES } from "../services/note_types.js"; +import { t } from "../services/i18n.js"; +import dialogService from "../services/dialog.js"; import mimeTypesService from "../services/mime_types.js"; import NoteContextAwareWidget from "./note_context_aware_widget.js"; -import dialogService from "../services/dialog.js"; -import { t } from "../services/i18n.js"; -import type FNote from "../entities/fnote.js"; -import type { NoteType } from "../entities/fnote.js"; +import server from "../services/server.js"; import type { EventData } from "../components/app_context.js"; -import { Dropdown } from "bootstrap"; +import type { NoteType } from "../entities/fnote.js"; +import type FNote from "../entities/fnote.js"; -interface NoteTypeMapping { - type: NoteType; - mime?: string; - title: string; - isBeta?: boolean; - selectable: boolean; -} - -const NOTE_TYPES: NoteTypeMapping[] = [ - // The suggested note type ordering method: insert the item into the corresponding group, - // then ensure the items within the group are ordered alphabetically. - // Please keep the order synced with the listing found also in apps/client/src/services/note_types.ts. - - // The default note type (always the first item) - { type: "text", mime: "text/html", title: t("note_types.text"), selectable: true }, - - // Text notes group - { type: "book", mime: "", title: t("note_types.book"), selectable: true }, - - // Graphic notes - { type: "canvas", mime: "application/json", title: t("note_types.canvas"), selectable: true }, - { type: "mermaid", mime: "text/mermaid", title: t("note_types.mermaid-diagram"), selectable: true }, - - // Map notes - { type: "geoMap", mime: "application/json", title: t("note_types.geo-map"), isBeta: true, selectable: true }, - { type: "mindMap", mime: "application/json", title: t("note_types.mind-map"), selectable: true }, - { type: "relationMap", mime: "application/json", title: t("note_types.relation-map"), selectable: true }, - - // Misc note types - { type: "render", mime: "", title: t("note_types.render-note"), selectable: true }, - { type: "webView", mime: "", title: t("note_types.web-view"), selectable: true }, - - // Code notes - { type: "code", mime: "text/plain", title: t("note_types.code"), selectable: true }, - - // Reserved types (cannot be created by the user) - { type: "contentWidget", mime: "", title: t("note_types.widget"), selectable: false }, - { type: "doc", mime: "", title: t("note_types.doc"), selectable: false }, - { type: "file", title: t("note_types.file"), selectable: false }, - { type: "image", title: t("note_types.image"), selectable: false }, - { type: "launcher", mime: "", title: t("note_types.launcher"), selectable: false }, - { type: "noteMap", mime: "", title: t("note_types.note-map"), selectable: false }, - { type: "search", title: t("note_types.saved-search"), selectable: false }, - { type: "aiChat", mime: "application/json", title: t("note_types.ai-chat"), selectable: false } -]; - -const NOT_SELECTABLE_NOTE_TYPES = NOTE_TYPES.filter((nt) => !nt.selectable).map((nt) => nt.type); +const NOT_SELECTABLE_NOTE_TYPES = NOTE_TYPES.filter((nt) => nt.reserved || nt.static).map((nt) => nt.type); const TPL = /*html*/` + +
    + {children} +
    +
    + + + ); +} \ No newline at end of file diff --git a/apps/client/src/widgets/react/ReactBasicWidget.ts b/apps/client/src/widgets/react/ReactBasicWidget.ts new file mode 100644 index 0000000000..c55564857e --- /dev/null +++ b/apps/client/src/widgets/react/ReactBasicWidget.ts @@ -0,0 +1,14 @@ +import { JSX, render } from "preact"; +import BasicWidget from "../basic_widget.js"; + +export default abstract class ReactBasicWidget extends BasicWidget { + + abstract get component(): JSX.Element; + + doRender() { + const renderContainer = new DocumentFragment(); + render(this.component, renderContainer); + this.$widget = $(renderContainer.firstChild as HTMLElement); + } + +} diff --git a/apps/client/src/widgets/ribbon_widgets/book_properties.ts b/apps/client/src/widgets/ribbon_widgets/book_properties.ts index cd9735b209..47c1a83f18 100644 --- a/apps/client/src/widgets/ribbon_widgets/book_properties.ts +++ b/apps/client/src/widgets/ribbon_widgets/book_properties.ts @@ -3,6 +3,18 @@ import attributeService from "../../services/attributes.js"; import { t } from "../../services/i18n.js"; import type FNote from "../../entities/fnote.js"; import type { EventData } from "../../components/app_context.js"; +import { bookPropertiesConfig, BookProperty } from "./book_properties_config.js"; +import attributes from "../../services/attributes.js"; +import type { ViewTypeOptions } from "../../services/note_list_renderer.js"; + +const VIEW_TYPE_MAPPINGS: Record = { + grid: t("book_properties.grid"), + list: t("book_properties.list"), + calendar: t("book_properties.calendar"), + table: t("book_properties.table"), + geoMap: t("book_properties.geo-map"), + board: t("book_properties.board") +}; const TPL = /*html*/`
    @@ -15,43 +27,56 @@ const TPL = /*html*/` .book-properties-widget > * { margin-right: 15px; } + + .book-properties-container { + display: flex; + align-items: center; + } + + .book-properties-container > div { + margin-right: 15px; + } + + .book-properties-container > .type-number > label { + display: flex; + align-items: baseline; + } + + .book-properties-container input[type="checkbox"] { + margin-right: 5px; + } + + .book-properties-container label { + display: flex; + justify-content: center; + align-items: center; + text-overflow: clip; + white-space: nowrap; + }
    ${t("book_properties.view_type")}:   
    - - - +
    +
    `; export default class BookPropertiesWidget extends NoteContextAwareWidget { private $viewTypeSelect!: JQuery; - private $expandChildrenButton!: JQuery; - private $collapseAllButton!: JQuery; + private $propertiesContainer!: JQuery; + private labelsToWatch: string[] = []; get name() { return "bookProperties"; @@ -80,32 +105,7 @@ export default class BookPropertiesWidget extends NoteContextAwareWidget { this.$viewTypeSelect = this.$widget.find(".view-type-select"); this.$viewTypeSelect.on("change", () => this.toggleViewType(String(this.$viewTypeSelect.val()))); - this.$expandChildrenButton = this.$widget.find(".expand-children-button"); - this.$expandChildrenButton.on("click", async () => { - if (!this.noteId || !this.note) { - return; - } - - if (!this.note?.isLabelTruthy("expanded")) { - await attributeService.addLabel(this.noteId, "expanded"); - } - - this.triggerCommand("refreshNoteList", { noteId: this.noteId }); - }); - - this.$collapseAllButton = this.$widget.find(".collapse-all-button"); - this.$collapseAllButton.on("click", async () => { - if (!this.noteId || !this.note) { - return; - } - - // owned is important - we shouldn't remove inherited expanded labels - for (const expandedAttr of this.note.getOwnedLabels("expanded")) { - await attributeService.removeAttributeById(this.noteId, expandedAttr.attributeId); - } - - this.triggerCommand("refreshNoteList", { noteId: this.noteId }); - }); + this.$propertiesContainer = this.$widget.find(".book-properties-container"); } async refreshWithNote(note: FNote) { @@ -117,8 +117,15 @@ export default class BookPropertiesWidget extends NoteContextAwareWidget { this.$viewTypeSelect.val(viewType); - this.$expandChildrenButton.toggle(viewType === "list"); - this.$collapseAllButton.toggle(viewType === "list"); + this.$propertiesContainer.empty(); + + const bookPropertiesData = bookPropertiesConfig[viewType]; + if (bookPropertiesData) { + for (const property of bookPropertiesData.properties) { + this.$propertiesContainer.append(this.renderBookProperty(property)); + this.labelsToWatch.push(property.bindToLabel); + } + } } async toggleViewType(type: string) { @@ -126,7 +133,7 @@ export default class BookPropertiesWidget extends NoteContextAwareWidget { return; } - if (!["list", "grid", "calendar", "table"].includes(type)) { + if (!VIEW_TYPE_MAPPINGS.hasOwnProperty(type)) { throw new Error(t("book_properties.invalid_view_type", { type })); } @@ -134,8 +141,122 @@ export default class BookPropertiesWidget extends NoteContextAwareWidget { } entitiesReloadedEvent({ loadResults }: EventData<"entitiesReloaded">) { - if (loadResults.getAttributeRows().find((attr) => attr.noteId === this.noteId && attr.name === "viewType")) { + if (loadResults.getAttributeRows().find((attr) => + attr.noteId === this.noteId + && (attr.name === "viewType" || this.labelsToWatch.includes(attr.name ?? "")))) { this.refresh(); } } + + renderBookProperty(property: BookProperty) { + const $container = $("
    "); + $container.addClass(`type-${property.type}`); + const note = this.note; + if (!note) { + return $container; + } + switch (property.type) { + case "checkbox": + const $label = $("

View types

-

By default, the notes will be displayed in a grid, however there are also - some other view types available.

- -

Grid view

-
- -
-

This view presents the child notes in a grid format, allowing for a more - visual navigation experience.

-
    -
  • For Text notes, - the text can be slighly scrollable via the mouse wheel to reveal more context.
  • -
  • For Code notes, - syntax highlighting is applied.
  • -
  • For File notes, - a preview is made available for audio, video and PDF notes.
  • -
  • If the note does not have a content, a list of its child notes will be - displayed instead.
  • -
-

This is the default view type.

-

List view

-
- -
-

In the list view mode, each note is displayed in a single row with only - the title and the icon of the note being visible by the default. By pressing - the expand button it's possible to view the content of the note, as well - as the children of the note (recursively).

-

Calendar view

-
- -
-

In the calendar view, child notes are represented as events, with a start - date and optionally an end date. The view also has interaction support - such as moving or creating new events. See Calendar View for more information.

\ No newline at end of file +

The view types dictate how the child notes are represented. By default, + the notes will be displayed in a grid, however there are also some other + view types available.

+

Generally the view type can only be changed in a Collections note from the  + Ribbon, but it can also be changed manually on any type of note using + the #viewType attribute.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Calendar View.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Calendar View.html deleted file mode 100644 index 6435f8d4fc..0000000000 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Calendar View.html +++ /dev/null @@ -1,367 +0,0 @@ -
- -
-

The Calendar view of Book notes will display each child note in a calendar - that has a start date and optionally an end date, as an event.

-

The Calendar view has multiple display modes:

-
    -
  • Week view, where all the 7 days of the week (or 5 if the weekends are - hidden) are displayed in columns. This mode allows entering and displaying - time-specific events, not just all-day events.
  • -
  • Month view, where the entire month is displayed and all-day events can - be inserted. Both time-specific events and all-day events are listed.
  • -
  • Year view, which displays the entire year for quick reference.
  • -
  • List view, which displays all the events of a given month in sequence.
  • -
-

Unlike other Book view types, the Calendar view also allows some kind - of interaction, such as moving events around as well as creating new ones.

-

Creating a calendar

-
- - - - - - - - - - - - - - - - - - - - -
   
1 - - The Calendar View works only for Book note types. To create a new note, - right click on the note tree on the left and select Insert note after, - or Insert child note and then select Book.
2 - - Once created, the “View type” of the Book needs changed to “Calendar”, - by selecting the “Book Properties” tab in the ribbon.
-
- -

Creating a new event/note

-
    -
  • Clicking on a day will create a new child note and assign it to that particular - day. -
      -
    • You will be asked for the name of the new note. If the popup is dismissed - by pressing the close button or escape, then the note will not be created.
    • -
    -
  • -
  • It's possible to drag across multiple days to set both the start and end - date of a particular note. -
    - -
  • -
  • Creating new notes from the calendar will respect the ~child:template relation - if set on the book note.
  • -
-

Interacting with events

-
    -
  • Hovering the mouse over an event will display information about the note. -
    - -
  • -
  • Left clicking the event will go to that note. Middle clicking will open - the note in a new tab and right click will offer more options including - opening the note in a new split or window.
  • -
  • Drag and drop an event on the calendar to move it to another day.
  • -
  • The length of an event can be changed by placing the mouse to the right - edge of the event and dragging the mouse around.
  • -
-

Configuring the calendar

-

The following attributes can be added to the book type:

-
- - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescription
#calendar:hideWeekends - When present (regardless of value), it will hide Saturday and Sundays - from the calendar.
#calendar:weekNumbers - When present (regardless of value), it will show the number of the week - on the calendar.
#calendar:view - -

Which view to display in the calendar:

-
    -
  • timeGridWeek for the week view;
  • -
  • dayGridMonth for the month view;
  • -
  • multiMonthYear for the year view;
  • -
  • listMonth for the list view.
  • -
-

Any other value will be dismissed and the default view (month) will be - used instead.

-

The value of this label is automatically updated when changing the view - using the UI buttons.

-
~child:template - Defines the template for newly created notes in the calendar (via dragging - or clicking).
-
-

In addition, the first day of the week can be either Sunday or Monday - and can be adjusted from the application settings.

-

Configuring the calendar events

-

For each note of the calendar, the following attributes can be used:

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescription
#startDate - The date the event starts, which will display it in the calendar. The - format is YYYY-MM-DD (year, month and day separated by a minus - sign).
#endDate - Similar to startDate, mentions the end date if the event spans - across multiple days. The date is inclusive, so the end day is also considered. - The attribute can be missing for single-day events.
#startTime - The time the event starts at. If this value is missing, then the event - is considered a full-day event. The format is HH:MM (hours in - 24-hour format and minutes).
#endTime - Similar to startTime, it mentions the time at which the event - ends (in relation with endDate if present, or startDate).
#color - Displays the event with a specified color (named such as red, gray or - hex such as #FF0000). This will also change the color of the - note in other places such as the note tree.
#calendar:color - Similar to #color, but applies the color only for the event - in the calendar and not for other places such as the note tree.
#iconClass - If present, the icon of the note will be displayed to the left of the - event title.
#calendar:title - Changes the title of an event to point to an attribute of the note other - than the title, can either a label or a relation (without the # or ~ symbol). - See Use-cases for more information.
#calendar:displayedAttributes - Allows displaying the value of one or more attributes in the calendar - like this:     -
-
-    -
-
#weight="70" #Mood="Good" #calendar:displayedAttributes="weight,Mood"   -
-
It can also be used with relations, case in which it will display the - title of the target note:    -
-
~assignee=@My assignee #calendar:displayedAttributes="assignee" -
#calendar:startDate - Allows using a different label to represent the start date, other than startDate (e.g. expiryDate). - The label name must not be prefixed with #. - If the label is not defined for a note, the default will be used instead.
#calendar:endDate - Similar to #calendar:startDate, allows changing the attribute - which is being used to read the end date.
#calendar:startTime - Similar to #calendar:startDate, allows changing the attribute - which is being used to read the start time.
#calendar:endTime - Similar to #calendar:startDate, allows changing the attribute - which is being used to read the end time.
-
- -

How the calendar works

-

- -

-

The calendar displays all the child notes of the book that have a #startDate. - An #endDate can optionally be added.

-

If editing the start date and end date from the note itself is desirable, - the following attributes can be added to the book note:

#viewType=calendar #label:startDate(inheritable)="promoted,alias=Start Date,single,date"
-#label:endDate(inheritable)="promoted,alias=End Date,single,date"
-#hidePromotedAttributes 
-

This will result in:

-

- -

-

When not used in a Journal, the calendar is recursive. That is, it will - look for events not just in its child notes but also in the children of - these child notes.

-

Use-cases

-

Using with the Journal / calendar

-

It is possible to integrate the calendar view into the Journal with day - notes. In order to do so change the note type of the Journal note (calendar - root) to Book and then select the Calendar View.

-

Based on the #calendarRoot (or #workspaceCalendarRoot) - attribute, the calendar will know that it's in a calendar and apply the - following:

-
    -
  • The calendar events are now rendered based on their dateNote attribute - rather than startDate.
  • -
  • Interactive editing such as dragging over an empty era or resizing an - event is no longer possible.
  • -
  • Clicking on the empty space on a date will automatically open that day's - note or create it if it does not exist.
  • -
  • Direct children of a day note will be displayed on the calendar despite - not having a dateNote attribute. Children of the child notes - will not be displayed.
  • -
- - -

Using a different attribute as event title

-

By default, events are displayed on the calendar by their note title. - However, it is possible to configure a different attribute to be displayed - instead.

-

To do so, assign #calendar:title to the child note (not the - calendar/book note), with the value being name where name can - be any label (make not to add the # prefix). The attribute can - also come through inheritance such as a template attribute. If the note - does not have the requested label, the title of the note will be used instead.

-
- - - - - - - - - - - - - -
  
#startDate=2025-02-11 #endDate=2025-02-13 #name="My vacation" #calendar:title="name"
-
-

 

-
- -
-
-
- -

Using a relation attribute as event title

-

Similarly to using an attribute, use #calendar:title and set - it to name where name is the name of the relation - to use.

-

Moreover, if there are more relations of the same name, they will be displayed - as multiple events coming from the same note.

-
- - - - - - - - - - - - - -
  
#startDate=2025-02-14 #endDate=2025-02-15 ~for=@John Smith ~for=@Jane Doe #calendar:title="for"
-
- -
-
-

Note that it's even possible to have a #calendar:title on the - target note (e.g. “John Smith”) which will try to render an attribute of - it. Note that it's not possible to use a relation here as well for safety - reasons (an accidental recursion  of attributes could cause the application - to loop infinitely).

-
- - - - - - - - - - - - - -
  
#calendar:title="shortName" #shortName="John S."
-
-
- -
-
-
\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Table.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Table.html deleted file mode 100644 index 10d663aa83..0000000000 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Table.html +++ /dev/null @@ -1,98 +0,0 @@ -
- -
-

The table view displays information in a grid, where the rows are individual - notes and the columns are Promoted Attributes. - In addition, values are editable.

-

Interaction

-

Creating a new table

-

Right click the Note Tree and - select Insert child note and look for the Table item.

-

Adding columns

-

Each column is a promoted attribute that - is defined on the Book note. Ideally, the promoted attributes need to be - inheritable in order to show up in the child notes.

-

To create a new column, simply press Add new column at the bottom - of the table.

-

There are also a few predefined columns:

-
    -
  • The current item number, identified by the # symbol. This simply - counts the note and is affected by sorting.
  • -
  • Note ID, - representing the unique ID used internally by Trilium
  • -
  • The title of the note.
  • -
-

Adding new rows

-

Each row is actually a note that is a child of the book note.

-

To create a new note, press Add new row at the bottom of the table. - By default it will try to edit the title of the newly created note.

-

Alternatively, the note can be created from theNote Tree or - scripting.

-

Editing data

-

Simply click on a cell within a row to change its value. The change will - not only reflect in the table, but also as an attribute of the corresponding - note.

-
    -
  • The editing will respect the type of the promoted attribute, by presenting - a normal text box, a number selector or a date selector for example.
  • -
  • It also possible to change the title of a note.
  • -
  • Editing relations is also possible, by using the note autocomplete.
  • -
-

Working with the data

-

Sorting

-

It is possible to sort the data by the values of a column:

-
    -
  • To do so, simply click on a column.
  • -
  • To switch between ascending or descending sort, simply click again on - the same column. The arrow next to the column will indicate the direction - of the sort.
  • -
-

Reordering and hiding columns

-
    -
  • Columns can be reordered by dragging the header of the columns.
  • -
  • Columns can be hidden or shown by right clicking on a column and clicking - the item corresponding to the column.
  • -
-

Reordering rows

-

Notes can be dragged around to change their order. This will also change - the order of the note in the Note Tree.

-

Currently, it's possible to reorder notes even if sorting is used, but - the result might be inconsistent.

-

Limitations

-

The table functionality is still in its early stages, as such it faces - quite a few important limitations:

-
    -
  1. As mentioned previously, the columns of the table are defined as  - Promoted Attributes. -
      -
    1. But only the promoted attributes that are defined at the level of the - Book note are actually taken into consideration.
    2. -
    3. There are plans to recursively look for columns across the sub-hierarchy.
    4. -
    -
  2. -
  3. Hierarchy is not yet supported, so the table will only show the items - that are direct children of the Book note.
  4. -
  5. Multiple labels and relations are not supported. If a Promoted Attributes is - defined with a Multi value specificity, they will be ignored.
  6. -
-

Use in search

-

The table view can be used in a Saved Search by - adding the #viewType=table attribute.

-

Unlike when used in a book, saved searches are not limited to the sub-hierarchy - of a note and allows for advanced queries thanks to the power of the  - Search.

-

However, there are also some limitations:

-
    -
  • It's not possible to reorder notes.
  • -
  • It's not possible to add a new row.
  • -
-

Columns are supported, by being defined as Promoted Attributes to - the Saved Search note.

-

Editing is also supported.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List_image.png index b0a8e157b0..8de2914c1c 100644 Binary files a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List_image.png and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Read-Only Notes.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Read-Only Notes.html index f07452571a..b56e502b8d 100644 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Read-Only Notes.html +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Read-Only Notes.html @@ -54,4 +54,7 @@ hide the Mermaid source code and display the diagram preview in full-size. In this case, the read-only mode can be easily toggled on or off via a dedicated button in the Floating buttons area. +
  • Geo Map View will + disallow all interaction that would otherwise change the map (dragging + notes, adding new items).
  • \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Themes/Theme Gallery.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Themes/Theme Gallery.html index 0e7f7d56ae..782a2f36bf 100644 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Themes/Theme Gallery.html +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Themes/Theme Gallery.html @@ -2,125 +2,123 @@

    Legacy Themes

    These themes may or may not be compatible with the latest versions of TriliumNext and are based on the original/legacy theme.

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ThemeAuthor
    Midnight - tobealive -
    EOTE - tobealive -
    Trilium Themes - Abourass -
    MaterialDark - ZMonk91 -
    lightslategray - jaroet -
    melon-4 - raphwriter -
    Neon_Dark - Engr-AllanG -
    Coder_Dark - Engr-AllanG -
    velvet - idelem -
    Dark Plus - SADAVA -
    Solarized - WKSu -
    Nord - en3r0 -
    Bear Note Light - AllanZyne -
    Bear Note Dark - AllanZyne -
    Miku Hatsune - Sebiann -
    Midnight - cwilliams5 -
    Blue (light)SiriusXT -
    Blue (dark)SiriusXT -
    -
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ThemeAuthor
    Midnight + tobealive +
    EOTE + tobealive +
    Trilium Themes + Abourass +
    MaterialDark + ZMonk91 +
    lightslategray + jaroet +
    melon-4 + raphwriter +
    Neon_Dark + Engr-AllanG +
    Coder_Dark + Engr-AllanG +
    velvet + idelem +
    Dark Plus + SADAVA +
    Solarized + WKSu +
    Nord + en3r0 +
    Bear Note Light + AllanZyne +
    Bear Note Dark + AllanZyne +
    Miku Hatsune + Sebiann +
    Midnight + cwilliams5 +
    Blue (light)SiriusXT +
    Blue (dark)SiriusXT +
    \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tooltip.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tooltip.html new file mode 100644 index 0000000000..3500d61342 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tooltip.html @@ -0,0 +1,36 @@ +
    + +
    +

    The note tooltip is a convenience feature which displays a popup when + hovering over an internal link to + another note.

    +

    The following information is displayed:

    +
      +
    • The note path, at the top of the popup.
    • +
    • The title of the note. +
        +
      • Clicking on the title will open the note in the current tab.
      • +
      • Holding Ctrl pressed while clicking the title will open in a + new tab instead of the current one.
      • +
      +
    • +
    • A snippet of the content will be displayed as well.
    • +
    • A button to quickly edit the note + in a popup.
    • +
    +

    The tooltip can be found in multiple places, including:

    + \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tooltip_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tooltip_image.png new file mode 100644 index 0000000000..049a07d61b Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tooltip_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree.html index b3ef4588e5..32b54240fa 100644 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree.html +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree.html @@ -30,5 +30,8 @@ in the context menu, or with the associated keyboard shortcuts: CTRL-C ( copy), Ctrl + X (cut) and Ctrl + V (paste).

    -

    See Note Tree Menu for - more information.

    \ No newline at end of file +

    See Note tree contextual menu for + more information.

    +

    Keyboard shortcuts

    +

    The note tree comes with multiple keyboard shortcuts to make editing faster, + consult the dedicated Keyboard shortcuts section.

    \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/1_Note tree contextual menu_.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/1_Note tree contextual menu_.png index f36081d10d..cd9f40c1cb 100644 Binary files a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/1_Note tree contextual menu_.png and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/1_Note tree contextual menu_.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Keyboard shortcuts.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Keyboard shortcuts.html new file mode 100644 index 0000000000..befdaae03a --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Keyboard shortcuts.html @@ -0,0 +1,33 @@ +

    The Note Tree comes + with multiple keyboard shortcuts to make editing faster:

    +
      +
    • Opening notes: +
        +
      • Click to open the note in the current tab.
      • +
      • Ctrl+Click or Middle click to open the note + in a new tab.
      • +
      • Ctrl+Right click to open the note in Quick edit.
      • +
      +
    • +
    • Navigation within the tree: +
        +
      • Up and Down to navigate between notes.
      • +
      • Left to collapse a note, or Right to expand it.
      • +
      +
    • +
    • Clipboard management: +
        +
      • Ctrl+C to copy a note.
      • +
      • Ctrl+X to cut a note.
      • +
      • Ctrl+V to paste it somewhere.
      • +
      +
    • +
    • For Multiple selection: +
        +
      • Alt+Clickto add a single note to the current selection.
      • +
      • Shift+Clickto select a range of notes, starting + from the current note (the highlighted one) to the one that is being clicked.
      • +
      +
    • +
    \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu.html index 2b14b33a7c..c8dc3a86b2 100644 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu.html +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu.html @@ -1,6 +1,6 @@
    - +

    The note tree menu can be accessed by right-clicking in the  +

  • Duplicate + +
  • Delete
    • Will delete the given notes, asking for confirmation first.
    • @@ -146,8 +155,8 @@

    Advanced options

    - +

    The advanced options menu offers some of the less frequently used actions for notes.

    @@ -177,15 +186,6 @@ from an external source or an older version of Trilium.
  • -
  • Duplicate subtree -
      -
    • Creates a copy of the note and its descendants.
    • -
    • This process is different from Cloning Notes since - the duplicated note can be edited independently from the original.
    • -
    • An alternative to this, if done regularly, would be Templates.
    • -
    -
  • Expand subtree
    • Expands all the child notes in the Note Tree.
    • diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu_.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu_.png index afbc96c251..51683bdc0f 100644 Binary files a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu_.png and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu_.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Quick edit.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Quick edit.html new file mode 100644 index 0000000000..4e5dd7b774 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Quick edit.html @@ -0,0 +1,69 @@ +
      + +
      +

      Quick edit provides an alternative to the standard tab-based navigation + and editing.

      +

      Instead of clicking on a note which switches the Note Tree to the newly selected + note, or navigating between two different Tabs, the Quick edit feature + opens as a popup window that can be easily dismissed.

      +

      This feature is also well integrated with Collections such as the calendar + view, which makes it easy to edit entries without having to go back and + forth between the child note and the calendar.

      +

      Feature highlights

      +
        +
      • All note types are supported, including Collections.
      • +
      • Note that the Note List will + not be displayed, except for notes of type Collections.
      • +
      • For Text notes, + depending on user preference, both the floating and classic editors are + supported. See Formatting toolbar.
      • +
      • The title and the note and the icon are editable, just like a normal tab.
      • +
      • The Promoted Attributes are + also displayed. +
          +
        • This integrates well with Collections where + there are predefined attributes such as the Start date and End date, + allowing for easy editing.
        • +
        +
      • +
      +

      Accessing the quick edit

      +
        +
      • From the Note Tree: +
          +
        • Right click on a note and select Quick edit.
        • +
        • or, press Ctrl+Right click on a note.
        • +
        +
      • +
      • On Internal (reference) links:  +
          +
        • Right click and select Quick edit.
        • +
        • or, press Ctrl+Right click on the link.
        • +
        +
      • +
      • On a Note Tooltip, + press the quick edit icon.
      • +
      • In Collections: +
          +
        • For Calendar View: +
            +
          • Clicking on an event will open that event for quick editing.
          • +
          • If the calendar is for the Day Notes root, + clicking on the day number will open the popup for that day note.
          • +
          +
        • +
        • For Geo Map View: +
            +
          • Clicking on a marker will open that marker, but only if the map is in + read-only mode.
          • +
          +
        • +
        +
      • +
      \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Quick edit_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Quick edit_image.png new file mode 100644 index 0000000000..89882f216e Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Quick edit_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Feature Highlights.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Feature Highlights.html new file mode 100644 index 0000000000..826c8b9e08 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Feature Highlights.html @@ -0,0 +1,83 @@ +

      This section presents the most important changes by version. For a full + set of changes, please consult the change log of each release. For purposes + of brevity, beta versions are skipped and the features gathered to the + nearest stable version.

      +
        +
      • v0.97.0: +
          +
        • Books are now Collections.
        • +
        • Table View is + a new collection type displaying notes and attributes in an editable grid.
        • +
        • Quick edit is + introduced, adding a new way to edit notes in a popup instead of opening + a new tab. It also integrates well with Collections.
        • +
        +
      • +
      • v0.96.0: + +
      • +
      • v0.95.0: +
          +
        • A more friendly theme was introduced for Sharing, with search, expandable tree, + night mode and more.
        • +
        +
      • +
      • v0.94.0: +
          +
        • Added integration with AI (using + self-hosted LLMs such as Ollama or industry standards such as ChatGPT).
        • +
        +
      • +
      • v0.92.5: + +
      • +
      • v0.92.4: + +
      • +
      • v0.91.5: +
          +
        • Significant improvements for mobile.
        • +
        • Footnotes are + now supported in Text notes.
        • +
        • Mermaid diagrams can now be inserted inline within Text notes.
        • +
        • The TriliumNext theme is introduced, bringing a more modern design to + the application.
        • +
        • Geo Map View, + displaying notes as markers on a geographical map for easy trip planning.
        • +
        +
      • +
      • v0.90.8: +
          +
        • A new note type was introduced: Mind Map +
        • +
        +
      • +
      \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Backup.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Backup.html index 754946d1c4..457914ff25 100644 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Backup.html +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Backup.html @@ -50,4 +50,4 @@ noBackup=true

      You can also review the configuration file to provide all config.ini values as environment variables instead.

      -

      See sample config.

      \ No newline at end of file +

      See sample config.

      \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Desktop Installation.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Desktop Installation.html index 6057d513f1..5ce56d6454 100644 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Desktop Installation.html +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Desktop Installation.html @@ -1,7 +1,7 @@

      To install Trilium on your desktop, follow these steps:

      1. Download the Latest Release: Obtain the appropriate binary - release for your operating system from the latest release page on + release for your operating system from the latest release page on GitHub.
      2. Extract the Package: Unzip the downloaded package to a location of your choice.
      3. diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Manually.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Manually.html index f7138444da..53a0a5cd60 100644 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Manually.html +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Manually.html @@ -19,8 +19,8 @@ its derivatives (like Ubuntu) below:

        sudo apt install libpng16-16 libpng-dev pkg-config autoconf libtool build-essential nasm libx11-dev libxkbfile-dev

        Installation

        Download

        -

        You can either download source code zip/tar from https://github.com/TriliumNext/Notes/releases/latest.

        -

        For the latest version including betas, clone Git repository from main branch with:

        git clone -b main https://github.com/triliumnext/notes.git
        +

        You can either download source code zip/tar from https://github.com/TriliumNext/Trilium/releases/latest.

        +

        For the latest version including betas, clone Git repository from main branch with:

        git clone -b main https://github.com/triliumnext/trilium.git

        Installation

        cd trilium
         
         # download all node dependencies
        diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Packaged version for Linux.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Packaged version for Linux.html
        index 8cff3851b0..4fd6088813 100644
        --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Packaged version for Linux.html	
        +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Packaged version for Linux.html	
        @@ -4,7 +4,7 @@
         
        • SSH into your server
        • use wget (or curl) to download latest TriliumNotes-Server-[VERSION]-linux-x64.tar.xz (copy - link from release page, + link from release page, notice -Server suffix) on your server.
        • unpack the archive, e.g. using tar -xf -d TriliumNotes-Server-[VERSION]-linux-x64.tar.xz
        • diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/2. Reverse proxy/Apache.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/2. Reverse proxy/Apache.html index ffb2f921dc..4e2bedc8aa 100644 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/2. Reverse proxy/Apache.html +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/2. Reverse proxy/Apache.html @@ -2,8 +2,8 @@ you want to use for your Trilium server.

          1. -

            Download docker image and create container

             docker pull triliumnext/notes:[VERSION]
            - docker create --name trilium -t -p 127.0.0.1:8080:8080 -v ~/trilium-data:/home/node/trilium-data triliumnext/notes:[VERSION]
            +

            Download docker image and create container

             docker pull triliumnext/trilium:[VERSION]
            + docker create --name trilium -t -p 127.0.0.1:8080:8080 -v ~/trilium-data:/home/node/trilium-data triliumnext/trilium:[VERSION]
          2. Configure Apache proxy and websocket proxy

            diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Upgrading TriliumNext.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Upgrading TriliumNext.html index 2248850345..36d1cb7e44 100644 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Upgrading TriliumNext.html +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Upgrading TriliumNext.html @@ -8,7 +8,7 @@
          3. Docker Server Installation: Pull the new image and restart the container.
          4. Other Installations: Download the latest version from - the release page and + the release page and replace the existing application files.

        Database Compatibility and Migration

        diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types.html index 7116079519..0d1b2c0fd5 100644 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types.html +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types.html @@ -31,102 +31,94 @@ used to edit the source of a note.

        Supported note types

        The following note types are supported by Trilium:

        -
        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        Note TypeDescription
        Text - The default note type, which allows for rich text formatting, images, - admonitions and right-to-left support.
        Code - Uses a mono-space font and can be used to store larger chunks of code - or plain text than a text note, and has better syntax highlighting.
        Saved Search - Stores the information about a search (the search text, criteria, etc.) - for later use. Can be used for quick filtering of a large amount of notes, - for example. The search can easily be triggered.
        Relation Map - Allows easy creation of notes and relations between them. Can be used - for mainly relational data such as a family tree.
        Note Map - Displays the relationships between the notes, whether via relations or - their hierarchical structure.
        Render Note - Used in Scripting, - it displays the HTML content of another note. This allows displaying any - kind of content, provided there is a script behind it to generate it.
        Book - -

        Displays the children of the note either as a grid, a list, or for a more - specialized case: a calendar.

        -

        Generally useful for easy reading of short notes.

        -
        Mermaid Diagrams - Displays diagrams such as bar charts, flow charts, state diagrams, etc. - Requires a bit of technical knowledge since the diagrams are written in - a specialized format.
        Canvas - Allows easy drawing of sketches, diagrams, handwritten content. Uses the - same technology behind excalidraw.com.
        Web View - Displays the content of an external web page, similar to a browser.
        Mind Map - Easy for brainstorming ideas, by placing them in a hierarchical layout.
        Geo Map - Displays the children of the note as a geographical map, one use-case - would be to plan vacations. It even has basic support for tracks. Notes - can also be created from it.
        File - Represents an uploaded file such as PDFs, images, video or audio files.
        -
        \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        Note TypeDescription
        Text + The default note type, which allows for rich text formatting, images, + admonitions and right-to-left support.
        Code + Uses a mono-space font and can be used to store larger chunks of code + or plain text than a text note, and has better syntax highlighting.
        Saved Search + Stores the information about a search (the search text, criteria, etc.) + for later use. Can be used for quick filtering of a large amount of notes, + for example. The search can easily be triggered.
        Relation Map + Allows easy creation of notes and relations between them. Can be used + for mainly relational data such as a family tree.
        Note Map + Displays the relationships between the notes, whether via relations or + their hierarchical structure.
        Render Note + Used in Scripting, + it displays the HTML content of another note. This allows displaying any + kind of content, provided there is a script behind it to generate it.
        Collections + Displays the children of the note either as a grid, a list, or for a more + specialized case: a calendar. +
        +
        Generally useful for easy reading of short notes.
        Mermaid Diagrams + Displays diagrams such as bar charts, flow charts, state diagrams, etc. + Requires a bit of technical knowledge since the diagrams are written in + a specialized format.
        Canvas + Allows easy drawing of sketches, diagrams, handwritten content. Uses the + same technology behind excalidraw.com.
        Web View + Displays the content of an external web page, similar to a browser.
        Mind Map + Easy for brainstorming ideas, by placing them in a hierarchical layout.
        Geo Map View + Displays the children of the note as a geographical map, one use-case + would be to plan vacations. It even has basic support for tracks. Notes + can also be created from it.
        File + Represents an uploaded file such as PDFs, images, video or audio files.
        \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/7_Geo Map_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/7_Geo Map_image.png deleted file mode 100644 index 00c5e8cc36..0000000000 Binary files a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/7_Geo Map_image.png and /dev/null differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Book.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Book.html deleted file mode 100644 index 3a89cb6663..0000000000 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Book.html +++ /dev/null @@ -1,20 +0,0 @@ -

        A Book Note in Trilium is a special type of note designed - to display the contents of its child notes sequentially, creating a linear, - book-like reading experience. This format is particularly useful for viewing - multiple smaller notes in a cohesive, continuous manner.

        -

        - -

        -

        In the example above, the "node.js" note on the left panel contains several - child notes. The right panel displays the content of these child notes - as a single continuous document.

        -

        Features

        -

        The Book Note format compiles the contents of all child notes into one - continuous view. This makes it ideal for reading extensive information - broken into smaller, manageable segments.

        -

        It uses the Note List mechanism - to display the child notes, allowing the use of any of the view types (grid, - list, calendar).

        -

        To adjust the view type, see the dedicated Book tab in the  - Ribbon.

        \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Book_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Book_image.png deleted file mode 100644 index ba4e1dd7a6..0000000000 Binary files a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Book_image.png and /dev/null differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections.html new file mode 100644 index 0000000000..7b255c8803 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections.html @@ -0,0 +1,83 @@ +

        Collections are a unique type of notes that don't have a content, but + instead display its child notes in various presentation methods.

        +

        Classic collections are read-only mode and compiles the contents of all + child notes into one continuous view. This makes it ideal for reading extensive + information broken into smaller, manageable segments.

        +
          +
        • Grid View which + is the default presentation method for child notes (see Note List), where the notes are displayed + as tiles with their title and content being visible.
        • +
        • List View is + similar to Grid View, + but it displays the notes one under the other with the content being expandable/collapsible, + but also works recursively.
        • +
        +

        More specialized collections were introduced, such as the:

        +
          +
        • Calendar View which + displays a week, month or year calendar with the notes being shown as events. + New events can be added easily by dragging across the calendar.
        • +
        • Geo Map View which + displays a geographical map in which the notes are represented as markers/pins + on the map. New events can be easily added by pointing on the map.
        • +
        • Table View displays + each note as a row in a table, with Promoted Attributes being + shown as well. This makes it easy to visualize attributes of notes, as + well as making them easily editable.
        • +
        • Board View (Kanban) + displays notes in columns, grouped by the value of a label.
        • +
        +

        For a quick presentation of all the supported view types, see the child + notes of this help page, including screenshots.

        +

        Configuration

        +

        To adjust the view type, see the dedicated Collections tab in the  + Ribbon.

        +

        Use cases

        +

        Creating a new collection

        +

        To create a new collections, right click in the Note Tree and look for the Collections entry + and select the desired type.

        +

        Adding a description to a collection

        +

        To add a text before the collection, for example to describe it:

        +
          +
        1. Create a new collection.
        2. +
        3. In the Ribbon, + go to Basic Properties and change the note type from Collection to Text.
        4. +
        +

        Now the text will be displayed above while still maintaining the collection + view.

        +

        Using saved search

        +

        Since collections are based on the Note List mechanism, + it's possible to apply the same configuration to Saved Search to do advanced querying + and presenting the result in an adequate matter such as a calendar, a table + or even a map.

        +

        Creating a collection from scratch

        +

        By default, collections come with a default configuration and sometimes + even sample notes. To create a collection completely from scratch:

        +
          +
        1. Create a new note of type Text (or any type).
        2. +
        3. In the Ribbon, + go to Basic Properties and select Collection as the note + type.
        4. +
        5. Still in the ribbon, go to Collection Properties and select the + desired view type.
        6. +
        7. Consult the help page of the corresponding view type in order to understand + how to configure them.
        8. +
        +

        Under the hood

        +

        Collections by themselves are simply notes with no content that rely on + the Note List mechanism + (the one that lists the children notes at the bottom of a note) to display + information.

        +

        By default, new collections use predefined Templates that are stored safely + in the Hidden Notes to + define some basic configuration such as the type of view, but also some  + Promoted Attributes to make editing easier.

        +

        Collections don't store their configuration (e.g. the position on the + map, the hidden columns in a table) in the content of the note itself, + but as attachments.

        \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/10_Calendar View_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/10_Calendar View_image.png similarity index 100% rename from apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/10_Calendar View_image.png rename to apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/10_Calendar View_image.png diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/11_Geo Map_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/10_Geo Map View_image.png similarity index 100% rename from apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/11_Geo Map_image.png rename to apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/10_Geo Map View_image.png diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/11_Calendar View_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/11_Calendar View_image.png similarity index 100% rename from apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/11_Calendar View_image.png rename to apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/11_Calendar View_image.png diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/12_Geo Map_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/11_Geo Map View_image.png similarity index 100% rename from apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/12_Geo Map_image.png rename to apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/11_Geo Map View_image.png diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/13_Geo Map_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/12_Geo Map View_image.png similarity index 100% rename from apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/13_Geo Map_image.png rename to apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/12_Geo Map View_image.png diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/14_Geo Map_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/13_Geo Map View_image.png similarity index 100% rename from apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/14_Geo Map_image.png rename to apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/13_Geo Map View_image.png diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/15_Geo Map_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/14_Geo Map View_image.png similarity index 100% rename from apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/15_Geo Map_image.png rename to apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/14_Geo Map View_image.png diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/15_Geo Map View_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/15_Geo Map View_image.png new file mode 100644 index 0000000000..72dbb98617 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/15_Geo Map View_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/16_Geo Map_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/16_Geo Map View_image.png similarity index 100% rename from apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/16_Geo Map_image.png rename to apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/16_Geo Map View_image.png diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/17_Geo Map_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/17_Geo Map View_image.png similarity index 100% rename from apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/17_Geo Map_image.png rename to apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/17_Geo Map View_image.png diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/18_Geo Map_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/18_Geo Map View_image.png similarity index 100% rename from apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/18_Geo Map_image.png rename to apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/18_Geo Map View_image.png diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/1_Calendar View_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/1_Calendar View_image.png similarity index 100% rename from apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/1_Calendar View_image.png rename to apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/1_Calendar View_image.png diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/1_Geo Map_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/1_Geo Map View_image.png similarity index 100% rename from apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/1_Geo Map_image.png rename to apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/1_Geo Map View_image.png diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/2_Calendar View_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/2_Calendar View_image.png similarity index 100% rename from apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/2_Calendar View_image.png rename to apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/2_Calendar View_image.png diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/2_Geo Map_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/2_Geo Map View_image.png similarity index 100% rename from apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/2_Geo Map_image.png rename to apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/2_Geo Map View_image.png diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/3_Calendar View_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/3_Calendar View_image.png similarity index 100% rename from apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/3_Calendar View_image.png rename to apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/3_Calendar View_image.png diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/3_Geo Map_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/3_Geo Map View_image.png similarity index 100% rename from apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/3_Geo Map_image.png rename to apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/3_Geo Map View_image.png diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/4_Calendar View_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/4_Calendar View_image.png similarity index 100% rename from apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/4_Calendar View_image.png rename to apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/4_Calendar View_image.png diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/4_Geo Map_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/4_Geo Map View_image.png similarity index 100% rename from apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/4_Geo Map_image.png rename to apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/4_Geo Map View_image.png diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/5_Calendar View_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/5_Calendar View_image.png similarity index 100% rename from apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/5_Calendar View_image.png rename to apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/5_Calendar View_image.png diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/5_Geo Map_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/5_Geo Map View_image.png similarity index 100% rename from apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/5_Geo Map_image.png rename to apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/5_Geo Map View_image.png diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/6_Calendar View_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/6_Calendar View_image.png similarity index 100% rename from apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/6_Calendar View_image.png rename to apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/6_Calendar View_image.png diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/6_Geo Map_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/6_Geo Map View_image.png similarity index 100% rename from apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/6_Geo Map_image.png rename to apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/6_Geo Map View_image.png diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/7_Calendar View_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/7_Calendar View_image.png similarity index 100% rename from apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/7_Calendar View_image.png rename to apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/7_Calendar View_image.png diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/8_Geo Map_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/7_Geo Map View_image.png similarity index 100% rename from apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/8_Geo Map_image.png rename to apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/7_Geo Map View_image.png diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/8_Calendar View_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/8_Calendar View_image.png similarity index 100% rename from apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/8_Calendar View_image.png rename to apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/8_Calendar View_image.png diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/9_Geo Map_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/8_Geo Map View_image.png similarity index 100% rename from apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/9_Geo Map_image.png rename to apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/8_Geo Map View_image.png diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/9_Calendar View_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/9_Calendar View_image.png similarity index 100% rename from apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/9_Calendar View_image.png rename to apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/9_Calendar View_image.png diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/10_Geo Map_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/9_Geo Map View_image.png similarity index 100% rename from apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/10_Geo Map_image.png rename to apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/9_Geo Map View_image.png diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/Board View.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/Board View.html new file mode 100644 index 0000000000..3c13a81d8a --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/Board View.html @@ -0,0 +1,81 @@ +
        + +
        +

        The Board view presents sub-notes in columns for a Kanban-like experience. + Each column represents a possible value for a status label, which can be + adjusted.

        +

        How it works

        +

        When first creating a collection of Board type, a few subnotes + will be created, each having a #status label set. The board + then groups each note by the value of the status attribute.

        +

        Notes are displayed recursively, so even the child notes of the child + notes will be displayed. However, unlike the Table View, the notes are not displayed + in a hierarchy.

        +

        Interaction with columns

        +
          +
        • Create a new column by pressing Add Column near the last column. +
            +
          • Once pressed, a text box will be displayed to set the name of the column. + Press Enter to confirm.
          • +
          +
        • +
        • To reorder a column, simply hold the mouse over the title and drag it + to the desired position.
        • +
        • To delete a column, right click on its title and select Delete column.
        • +
        • To rename a column, click on the note title. +
            +
          • Press Enter to confirm.
          • +
          • Upon renaming a column, the corresponding status attribute of all its + notes will be changed in bulk.
          • +
          +
        • +
        • If there are many columns, use the mouse wheel to scroll.
        • +
        +

        Interaction with notes

        +
          +
        • Create a new note in any column by pressing New item +
            +
          • Enter the name of the note and press Enter.
          • +
          • Doing so will create a new note. The new note will have an attribute (status label + by default) set to the name of the column.
          • +
          +
        • +
        • To change the state of a note, simply drag a note from one column to the + other to change its state.
        • +
        • The order of the notes in each column corresponds to their position in + the tree. +
            +
          • It's possible to reorder notes simply by dragging them to the desired + position within the same columns.
          • +
          • It's also possible to drag notes across columns, at the desired position.
          • +
          +
        • +
        • For more options, right click on a note to display a context menu with + the following options: +
            +
          • Open the note in a new tab/split/window or quick edit.
          • +
          • Move the note to any column.
          • +
          • Insert a new note above/below the current one.
          • +
          • Delete the current note.
          • +
          +
        • +
        • If there are many notes within the column, move the mouse over the column + and use the mouse wheel to scroll.
        • +
        +

        Configuration

        +

        Grouping by another attribute

        +

        By default, the label used to group the notes is #status. + It is possible to use a different label if needed by defining a label named #board:groupBy with + the value being the attribute to use (without # attribute prefix).

        + +

        Interaction

        +

        Limitations

        +
          +
        • It is not possible yet to use group by a relation, only by label.
        • +
        \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/Board View_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/Board View_image.png new file mode 100644 index 0000000000..be4b027d2b Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/Board View_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/Calendar View.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/Calendar View.html new file mode 100644 index 0000000000..eaefc470db --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/Calendar View.html @@ -0,0 +1,366 @@ +
        + +
        +

        The Calendar view will display each child note in a calendar that has + a start date and optionally an end date, as an event.

        +

        The Calendar view has multiple display modes:

        +
          +
        • Week view, where all the 7 days of the week (or 5 if the weekends are + hidden) are displayed in columns. This mode allows entering and displaying + time-specific events, not just all-day events.
        • +
        • Month view, where the entire month is displayed and all-day events can + be inserted. Both time-specific events and all-day events are listed.
        • +
        • Year view, which displays the entire year for quick reference.
        • +
        • List view, which displays all the events of a given month in sequence.
        • +
        +

        Unlike other Collection view types, the Calendar view also allows some + kind of interaction, such as moving events around as well as creating new + ones.

        +

        Creating a calendar

        + + + + + + + + + + + + + + + + + + + + +
        1 + + The Calendar View works only for Collection note types. To create a new + note, right click on the note tree on the left and select Insert note after, + or Insert child note and then select Collection.
        2 + + Once created, the “View type” of the Collection needs changed to “Calendar”, + by selecting the “Collection Properties” tab in the ribbon.
        + +

        Creating a new event/note

        +
          +
        • Clicking on a day will create a new child note and assign it to that particular + day. +
            +
          • You will be asked for the name of the new note. If the popup is dismissed + by pressing the close button or escape, then the note will not be created.
          • +
          +
        • +
        • It's possible to drag across multiple days to set both the start and end + date of a particular note. +
          + +
        • +
        • Creating new notes from the calendar will respect the ~child:template relation + if set on the Collection note.
        • +
        +

        Interacting with events

        +
          +
        • Hovering the mouse over an event will display information about the note. +
          + +
        • +
        • Left clicking the event will open a Quick edit to + edit the note in a popup while allowing easy return to the calendar by + just dismissing the popup. +
            +
          • Middle clicking will open the note in a new tab.
          • +
          • Right click will offer more options including opening the note in a new + split or window.
          • +
          +
        • +
        • Drag and drop an event on the calendar to move it to another day.
        • +
        • The length of an event can be changed by placing the mouse to the right + edge of the event and dragging the mouse around.
        • +
        +

        Configuring the calendar view

        +

        In the Collections tab in the Ribbon, + it's possible to adjust the following:

        +
          +
        • Hide weekends from the week view.
        • +
        • Display week numbers on the calendar.
        • +
        +

        Configuring the calendar using attributes

        +

        The following attributes can be added to the Collection type:

        + + + + + + + + + + + + + + + + + + + + + + + + + +
        NameDescription
        #calendar:hideWeekends + When present (regardless of value), it will hide Saturday and Sundays + from the calendar.
        #calendar:weekNumbers + When present (regardless of value), it will show the number of the week + on the calendar.
        #calendar:view + +

        Which view to display in the calendar:

        +
          +
        • timeGridWeek for the week view;
        • +
        • dayGridMonth for the month view;
        • +
        • multiMonthYear for the year view;
        • +
        • listMonth for the list view.
        • +
        +

        Any other value will be dismissed and the default view (month) will be + used instead.

        +

        The value of this label is automatically updated when changing the view + using the UI buttons.

        +
        ~child:template + Defines the template for newly created notes in the calendar (via dragging + or clicking).
        +

        In addition, the first day of the week can be either Sunday or Monday + and can be adjusted from the application settings.

        +

        Configuring the calendar events using attributes

        +

        For each note of the calendar, the following attributes can be used:

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        NameDescription
        #startDate + The date the event starts, which will display it in the calendar. The + format is YYYY-MM-DD (year, month and day separated by a minus + sign).
        #endDate + Similar to startDate, mentions the end date if the event spans + across multiple days. The date is inclusive, so the end day is also considered. + The attribute can be missing for single-day events.
        #startTime + The time the event starts at. If this value is missing, then the event + is considered a full-day event. The format is HH:MM (hours in + 24-hour format and minutes).
        #endTime + Similar to startTime, it mentions the time at which the event + ends (in relation with endDate if present, or startDate).
        #color + Displays the event with a specified color (named such as red, gray or + hex such as #FF0000). This will also change the color of the + note in other places such as the note tree.
        #calendar:color + Similar to #color, but applies the color only for the event + in the calendar and not for other places such as the note tree.
        #iconClass + If present, the icon of the note will be displayed to the left of the + event title.
        #calendar:title + Changes the title of an event to point to an attribute of the note other + than the title, can either a label or a relation (without the # or ~ symbol). + See Use-cases for more information.
        #calendar:displayedAttributes + Allows displaying the value of one or more attributes in the calendar + like this:     +
        +
        +    +
        +
        #weight="70" #Mood="Good" #calendar:displayedAttributes="weight,Mood"   +
        +
        It can also be used with relations, case in which it will display the + title of the target note:    +
        +
        ~assignee=@My assignee #calendar:displayedAttributes="assignee" +
        #calendar:startDate + Allows using a different label to represent the start date, other than startDate (e.g. expiryDate). + The label name must not be prefixed with #. + If the label is not defined for a note, the default will be used instead.
        #calendar:endDate + Similar to #calendar:startDate, allows changing the attribute + which is being used to read the end date.
        #calendar:startTime + Similar to #calendar:startDate, allows changing the attribute + which is being used to read the start time.
        #calendar:endTime + Similar to #calendar:startDate, allows changing the attribute + which is being used to read the end time.
        + +

        How the calendar works

        +

        + +

        +

        The calendar displays all the child notes of the Collection that have + a #startDate. An #endDate can optionally be added.

        +

        If editing the start date and end date from the note itself is desirable, + the following attributes can be added to the Collection note:

        #viewType=calendar #label:startDate(inheritable)="promoted,alias=Start Date,single,date"
        +#label:endDate(inheritable)="promoted,alias=End Date,single,date"
        +#hidePromotedAttributes 
        +

        This will result in:

        +

        + +

        +

        When not used in a Journal, the calendar is recursive. That is, it will + look for events not just in its child notes but also in the children of + these child notes.

        +

        Use-cases

        +

        Using with the Journal / calendar

        +

        It is possible to integrate the calendar view into the Journal with day + notes. In order to do so change the note type of the Journal note (calendar + root) to Collection and then select the Calendar View.

        +

        Based on the #calendarRoot (or #workspaceCalendarRoot) + attribute, the calendar will know that it's in a calendar and apply the + following:

        +
          +
        • The calendar events are now rendered based on their dateNote attribute + rather than startDate.
        • +
        • Interactive editing such as dragging over an empty era or resizing an + event is no longer possible.
        • +
        • Clicking on the empty space on a date will automatically open that day's + note or create it if it does not exist.
        • +
        • Direct children of a day note will be displayed on the calendar despite + not having a dateNote attribute. Children of the child notes + will not be displayed.
        • +
        + + +

        Using a different attribute as event title

        +

        By default, events are displayed on the calendar by their note title. + However, it is possible to configure a different attribute to be displayed + instead.

        +

        To do so, assign #calendar:title to the child note (not the + calendar/Collection note), with the value being name where name can + be any label (make not to add the # prefix). The attribute can + also come through inheritance such as a template attribute. If the note + does not have the requested label, the title of the note will be used instead.

        + + + + + + + + + + + + + +
          
        #startDate=2025-02-11 #endDate=2025-02-13 #name="My vacation" #calendar:title="name"
        +
        +

         

        +
        + +
        +
        + +

        Using a relation attribute as event title

        +

        Similarly to using an attribute, use #calendar:title and set + it to name where name is the name of the relation + to use.

        +

        Moreover, if there are more relations of the same name, they will be displayed + as multiple events coming from the same note.

        + + + + + + + + + + + + + +
          
        #startDate=2025-02-14 #endDate=2025-02-15 ~for=@John Smith ~for=@Jane Doe #calendar:title="for"
        +
        + +
        +

        Note that it's even possible to have a #calendar:title on the + target note (e.g. “John Smith”) which will try to render an attribute of + it. Note that it's not possible to use a relation here as well for safety + reasons (an accidental recursion  of attributes could cause the application + to loop infinitely).

        + + + + + + + + + + + + + +
          
        #calendar:title="shortName" #shortName="John S."
        +
        +
        + +
        +
        \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Calendar View_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/Calendar View_image.png similarity index 100% rename from apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Calendar View_image.png rename to apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/Calendar View_image.png diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/Geo Map View.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/Geo Map View.html new file mode 100644 index 0000000000..cbda5b9773 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/Geo Map View.html @@ -0,0 +1,407 @@ + +
        + +
        +

        This note type displays the children notes on a geographical map, based + on an attribute. It is also possible to add new notes at a specific location + using the built-in interface.

        +

        Creating a new geo map

        + + + + + + + + + + + + + + + + + + + + +
        1 +
        + +
        +
        Right click on any note on the note tree and select Insert child noteGeo Map (beta).
        2 +
        + +
        +
        By default the map will be empty and will show the entire world.
        + +

        Repositioning the map

        +
          +
        • Click and drag the map in order to move across the map.
        • +
        • Use the mouse wheel, two-finger gesture on a touchpad or the +/- buttons + on the top-left to adjust the zoom.
        • +
        +

        The position on the map and the zoom are saved inside the map note and + restored when visiting again the note.

        +

        Adding a marker using the map

        +

        Adding a new note using the plus button

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        1To create a marker, first navigate to the desired point on the map. Then + press the + button in the Floating buttons (top-right) + area.   +
        +
        If the button is not visible, make sure the button section is visible + by pressing the chevron button ( + ) in the top-right of the map.
        2 + + Once pressed, the map will enter in the insert mode, as illustrated by + the notification.      +
        +
        Simply click the point on the map where to place the marker, or the Escape + key to cancel.
        3 + + Enter the name of the marker/note to be created.
        4 + + Once confirmed, the marker will show up on the map and it will also be + displayed as a child note of the map.
        + +

        Adding a new note using the contextual menu

        +
          +
        1. Right click anywhere on the map, where to place the newly created marker + (and corresponding note).
        2. +
        3. Select Add a marker at this location.
        4. +
        5. Enter the name of the newly created note.
        6. +
        7. The map should be updated with the new marker.
        8. +
        +

        Adding an existing note on note from the note tree

        +
          +
        1. Select the desired note in the Note Tree.
        2. +
        3. Hold the mouse on the note and drag it to the map to the desired location.
        4. +
        5. The map should be updated with the new marker.
        6. +
        +

        This works for:

        +
          +
        • Notes that are not part of the geo map, case in which a clone will + be created.
        • +
        • Notes that are a child of the geo map but not yet positioned on the map.
        • +
        • Notes that are a child of the geo map and also positioned, case in which + the marker will be relocated to the new position.
        • +
        +

        How the location of the markers is stored

        +

        The location of a marker is stored in the #geolocation attribute + of the child notes:

        + +

        This value can be added manually if needed. The value of the attribute + is made up of the latitude and longitude separated by a comma.

        +

        Repositioning markers

        +

        It's possible to reposition existing markers by simply drag and dropping + them to the new destination.

        +

        As soon as the mouse is released, the new position is saved.

        +

        If moved by mistake, there is currently no way to undo the change. If + the mouse was not yet released, it's possible to force a refresh of the + page (Ctrl+R ) to cancel it.

        +

        Interaction with the markers

        +
          +
        • Hovering over a marker will display a Note Tooltip with + the content of the note it belongs to. +
            +
          • Clicking on the note title in the tooltip will navigate to the note in + the current view.
          • +
          +
        • +
        • Middle-clicking the marker will open the note in a new tab.
        • +
        • Right-clicking the marker will open a contextual menu (as described below).
        • +
        • If the map is in read-only mode, clicking on a marker will open a  + Quick edit popup for the corresponding note.
        • +
        +

        Contextual menu

        +

        It's possible to press the right mouse button to display a contextual + menu.

        +
          +
        1. If right-clicking an empty section of the map (not on a marker), it allows + to: +
            +
          1. Displays the latitude and longitude. Clicking this option will copy them + to the clipboard.
          2. +
          3. Open the location using an external application (if the operating system + supports it).
          4. +
          5. Adding a new marker at that location.
          6. +
          +
        2. +
        3. If right-clicking on a marker, it allows to: +
            +
          1. Displays the latitude and longitude. Clicking this option will copy them + to the clipboard.
          2. +
          3. Open the location using an external application (if the operating system + supports it).
          4. +
          5. Open the note in a new tab, split or window.
          6. +
          7. Remove the marker from the map, which will remove the #geolocation attribute + of the note. To add it back again, the coordinates have to be manually + added back in.
          8. +
          +
        4. +
        +

        Icon and color of the markers

        +
        + image +
        +

        The markers will have the same icon as the note.

        +

        It's possible to add a custom color to a marker by assigning them a #color attribute + such as #color=green.

        +

        Adding the coordinates manually

        +

        In a nutshell, create a child note and set the #geolocation attribute + to the coordinates.

        +

        The value of the attribute is made up of the latitude and longitude separated + by a comma.

        +

        Adding from Google Maps

        + + + + + + + + + + + + + + + + + + + + + + + + + +
        1 +
        + +
        +
        Go to Google Maps on the web and look for a desired location, right click + on it and a context menu will show up.      +
        +
        Simply click on the first item displaying the coordinates and they will + be copied to clipboard.      +
        +
        Then paste the value inside the text box into the #geolocation attribute + of a child note of the map (don't forget to surround the value with a " character).
        2 +
        + +
        +
        In Trilium, create a child note under the map.
        3 +
        + +
        +
        And then go to Owned Attributes and type #geolocation=", then + paste from the clipboard as-is and then add the ending " character. + Press Enter to confirm and the map should now be updated to contain the + new note.
        + +

        Adding from OpenStreetMap

        +

        Similarly to the Google Maps approach:

        + + + + + + + + + + + + + + + + + + + + + + + + + +
        1 + + Go to any location on openstreetmap.org and right click to bring up the + context menu. Select the “Show address” item.
        2 + + The address will be visible in the top-left of the screen, in the place + of the search bar.      +
        +
        Select the coordinates and copy them into the clipboard.
        3 + + Simply paste the value inside the text box into the #geolocation attribute + of a child note of the map and then it should be displayed on the map.
        + +

        Adding GPS tracks (.gpx)

        +

        Trilium has basic support for displaying GPS tracks on the geo map.

        + + + + + + + + + + + + + + + + + + + + + + + + + +
        1 +
        + +
        +
        To add a track, simply drag & drop a .gpx file inside the geo map + in the note tree.
        2 +
        + +
        +
        In order for the file to be recognized as a GPS track, it needs to show + up as application/gpx+xml in the File type field.
        3 +
        + +
        +
        When going back to the map, the track should now be visible.      +
        +
        The start and end points of the track are indicated by the two blue markers.
        + +

        Read-only mode

        +

        When a map is in read-only all editing features will be disabled such + as:

        +
          +
        • The add button in the Floating buttons.
        • +
        • Dragging markers.
        • +
        • Editing from the contextual menu (removing locations or adding new items).
        • +
        +

        To enable read-only mode simply press the Lock icon from the  + Floating buttons. To disable it, press the button again.

        +

        Configuration

        +

        Map Style

        +

        The styling of the map can be adjusted in the Collection Properties tab + in the Ribbon or + manually via the #map:style attribute.

        +

        The geo map comes with two different types of styles:

        +
          +
        • Raster styles +
            +
          • For these styles the map is represented as a grid of images at different + zoom levels. This is the traditional way OpenStreetMap used to work.
          • +
          • Zoom is slightly restricted.
          • +
          • Currently, the only raster theme is the original OpenStreetMap style.
          • +
          +
        • +
        • Vector styles +
            +
          • Vector styles are not represented as images, but as geometrical shapes. + This makes the rendering much smoother, especially when zooming and looking + at the building edges, for example.
          • +
          • The map can be zoomed in much further.
          • +
          • These come both in a light and a dark version.
          • +
          • The vector styles come from VersaTiles, + a free and open-source project providing map tiles based on OpenStreetMap.
          • +
          +
        • +
        + +

        Scale

        +

        Activating this option via the Ribbon or + manually via #map:scale will display an indicator in the bottom-left + of the scale of the map.

        +

        Troubleshooting

        +
        + +
        + +

        Grid-like artifacts on the map

        +

        This occurs if the application is not at 100% zoom which causes the pixels + of the map to not render correctly due to fractional scaling. The only + possible solution is to set the UI zoom at 100% (default keyboard shortcut + is Ctrl+0).

        \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Geo Map_image.jpg b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/Geo Map View_image.jpg similarity index 100% rename from apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Geo Map_image.jpg rename to apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/Geo Map View_image.jpg diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Geo Map_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/Geo Map View_image.png similarity index 100% rename from apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Geo Map_image.png rename to apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/Geo Map View_image.png diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/Grid View.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/Grid View.html new file mode 100644 index 0000000000..1633c01e74 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/Grid View.html @@ -0,0 +1,30 @@ +
        + +
        +

        This view presents the child notes in a grid format, allowing for a more + visual navigation experience.

        +

        Each tile contains:

        +
          +
        • The title of a note.
        • +
        • A snippet of the content.
        • +
        • For empty notes, the sub-children are also displayed, allowing for quick + navigation.
        • +
        +

        Depending on the type of note:

        +
          +
        • For Text notes, + the text can be slightly scrollable via the mouse wheel to reveal more + context.
        • +
        • For Code notes, + syntax highlighting is applied.
        • +
        • For File notes, + a preview is made available for audio, video and PDF notes.
        • +
        • If the note does not have a content, a list of its child notes will be + displayed instead.
        • +
        +

        The grid view is also used by default in the Note List of every note, making + it easy to navigate to children notes.

        +

        Configuration

        +

        Unlike most other view types, the grid view is not actually configurable.

        \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/Grid View_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/Grid View_image.png new file mode 100644 index 0000000000..8de2914c1c Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/Grid View_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/List View.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/List View.html new file mode 100644 index 0000000000..68bac777e4 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/List View.html @@ -0,0 +1,20 @@ +
        + +
        +

        List view is similar to Grid View, + but in the list view mode, each note is displayed in a single row with + only the title and the icon of the note being visible by the default. By + pressing the expand button it's possible to view the content of the note, + as well as the children of the note (recursively).

        +

        In the example above, the "Node.js" note on the left panel contains several + child notes. The right panel displays the content of these child notes + as a single continuous document.

        +

        Interaction

        +
          +
        • Each note can be expanded or collapsed by clicking on the arrow to the + left of the title.
        • +
        • In the Ribbon, + in the Collection tab there are options to expand and to collapse + all notes easily.
        • +
        \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/List View_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/List View_image.png new file mode 100644 index 0000000000..61a9d82496 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/List View_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/Table View.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/Table View.html new file mode 100644 index 0000000000..3c6e3fc9b6 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/Table View.html @@ -0,0 +1,191 @@ +
        + +
        +

        The table view displays information in a grid, where the rows are individual + notes and the columns are Promoted Attributes. + In addition, values are editable.

        +

        How it works

        +

        The tabular structure is represented as such:

        +
          +
        • Each child note is a row in the table.
        • +
        • If child rows also have children, they will be displayed under an expander + (nested notes).
        • +
        • Each column is a promoted attribute that + is defined on the Collection note. +
            +
          • Actually, both promoted and unpromoted attributes are supported, but it's + a requirement to use a label/relation definition.
          • +
          • The promoted attributes are usually defined as inheritable in order to + show up in the child notes, but it's not a requirement.
          • +
          +
        • +
        • If there are multiple attribute definitions with the same name, + only one will be displayed.
        • +
        +

        There are also a few predefined columns:

        +
          +
        • The current item number, identified by the # symbol. +
            +
          • This simply counts the note and is affected by sorting.
          • +
          +
        • +
        • Note ID, + representing the unique ID used internally by Trilium
        • +
        • The title of the note.
        • +
        +

        Interaction

        +

        Creating a new table

        +

        Right click the Note Tree and + select Insert child note and look for the Table item.

        +

        Adding columns

        +

        Each column is a promoted or unpromoted attribute that + is defined on the Collection note.

        +

        To create a new column, either:

        +
          +
        • Press Add new column at the bottom of the table.
        • +
        • Right click on an existing column and select Add column to the left/right.
        • +
        • Right click on the empty space of the column header and select Label or Relation in + the New column section.
        • +
        +

        Adding new rows

        +

        Each row is actually a note that is a child of the Collection note.

        +

        To create a new note, either:

        +
          +
        • Press Add new row at the bottom of the table.
        • +
        • Right click on an existing row and select Insert row above, Insert child note or Insert row below.
        • +
        +

        By default it will try to edit the title of the newly created note.

        +

        Alternatively, the note can be created from the Note Tree or scripting.

        +

        Context menu

        +

        There are multiple menus:

        +
          +
        • Right clicking on a column, allows: +
            +
          • Sorting by the selected column and resetting the sort.
          • +
          • Hiding the selected column or adjusting the visibility of every column.
          • +
          • Adding new columns to the left or the right of the column.
          • +
          • Editing the current column.
          • +
          • Deleting the current column.
          • +
          +
        • +
        • Right clicking on the space to the right of the columns, allows: +
            +
          • Adjusting the visibility of every column.
          • +
          • Adding new columns.
          • +
          +
        • +
        • Right clicking on a row, allows: +
            +
          • Opening the corresponding note of the row in a new tab, split, window + or quick editing it.
          • +
          • Inserting rows above, below or as a child note.
          • +
          • Deleting the row.
          • +
          +
        • +
        +

        Editing data

        +

        Simply click on a cell within a row to change its value. The change will + not only reflect in the table, but also as an attribute of the corresponding + note.

        +
          +
        • The editing will respect the type of the promoted attribute, by presenting + a normal text box, a number selector or a date selector for example.
        • +
        • It also possible to change the title of a note.
        • +
        • Editing relations is also possible +
            +
          • Simply click on a relation and it will become editable. Enter the text + to look for a note and click on it.
          • +
          • To remove a relation, remove the title of the note from the text box and + click outside the cell.
          • +
          +
        • +
        +

        Editing columns

        +

        It is possible to edit a column by right clicking it and selecting Edit column. This + will basically change the label/relation definition at the collection level.

        +

        If the Name field of a column is changed, this will trigger a batch + operation in which the corresponding label/relation will be renamed in + all the children.

        +

        Working with the data

        +

        Sorting by column

        +

        By default, the order of the notes matches the order in the Note Tree. However, it is possible + to sort the data by the values of a column:

        +
          +
        • To do so, simply click on a column.
        • +
        • To switch between ascending or descending sort, simply click again on + the same column. The arrow next to the column will indicate the direction + of the sort.
        • +
        • To disable sorting and fall back to the original order, right click any + column on the header and select Clear sorting. +
        • +
        +

        Reordering and hiding columns

        +
          +
        • Columns can be reordered by dragging the header of the columns.
        • +
        • Columns can be hidden or shown by right clicking on a column and clicking + the item corresponding to the column.
        • +
        +

        Reordering rows

        +

        Notes can be dragged around to change their order. To do so, move the + mouse over the three vertical dots near the number row and drag the mouse + to the desired position.

        +

        This will also change the order of the note in the Note Tree.

        +

        Reordering does have some limitations:

        +
          +
        • If the parent note has #sorted, reordering will be disabled.
        • +
        • If using nested tables, then reordering will also be disabled.
        • +
        • Currently, it's possible to reorder notes even if column sorting is used, + but the result might be inconsistent.
        • +
        +

        Nested trees

        +

        If the child notes of the collection also have their own child notes, + then they will be displayed in a hierarchy.

        +

        Next to the title of each element there will be a button to expand or + collapse. By default, all items are expanded.

        +

        Since nesting is not always desirable, it is possible to limit the nesting + to a certain number of levels or even disable it completely. To do so, + either:

        +
          +
        • Go to Collection Properties in the Ribbon and look for the Max nesting depth section. +
            +
          • To disable nesting, type 0 and press Enter.
          • +
          • To limit to a certain depth, type in the desired number (e.g. 2 to only + display children and sub-children).
          • +
          • To re-enable unlimited nesting, remove the number and press Enter.
          • +
          +
        • +
        • Manually set maxNestingDepth to the desired value.
        • +
        +

        Limitations:

        +
          +
        • While in this mode, it's not possible to reorder notes.
        • +
        +

        Limitations

        +
          +
        • Multi-value labels and relations are not supported. If a Promoted Attributes is defined + with a Multi value specificity, they will be ignored.
        • +
        • There is no support to filter the rows by a certain criteria. Consider + using the table view in search for that use case.
        • +
        +

        Use in search

        +

        The table view can be used in a Saved Search by + adding the #viewType=table attribute.

        +

        Unlike when used in a Collection, saved searches are not limited to the + sub-hierarchy of a note and allows for advanced queries thanks to the power + of the Search.

        +

        However, there are also some limitations:

        +
          +
        • It's not possible to reorder notes.
        • +
        • It's not possible to add a new row.
        • +
        +

        Columns are supported, by being defined as Promoted Attributes to the  + Saved Search note.

        +

        Editing is also supported.

        \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Table_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/Table View_image.png similarity index 100% rename from apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Table_image.png rename to apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/Table View_image.png diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Geo Map.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Geo Map.html deleted file mode 100644 index b85d13a7c1..0000000000 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Geo Map.html +++ /dev/null @@ -1,337 +0,0 @@ -
        - -
        -

        This note type displays the children notes on a geographical map, based - on an attribute. It is also possible to add new notes at a specific location - using the built-in interface.

        -

        Creating a new geo map

        -
        - - - - - - - - - - - - - - - - - - - - -
           
        1 -
        - -
        -
        Right click on any note on the note tree and select Insert child noteGeo Map (beta).
        2 -
        - -
        -
        By default the map will be empty and will show the entire world.
        -
        - -

        Repositioning the map

        -
          -
        • Click and drag the map in order to move across the map.
        • -
        • Use the mouse wheel, two-finger gesture on a touchpad or the +/- buttons - on the top-left to adjust the zoom.
        • -
        -

        The position on the map and the zoom are saved inside the map note and - restored when visiting again the note.

        -

        Adding a marker using the map

        -
        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
           
        1To create a marker, first navigate to the desired point on the map. Then - press the - button in the Floating buttons (top-right) - area.  -
        -
        If the button is not visible, make sure the button section is visible - by pressing the chevron button ( - ) in the top-right of the map.
         
        2 - - Once pressed, the map will enter in the insert mode, as illustrated by - the notification.     -
        -
        Simply click the point on the map where to place the marker, or the Escape - key to cancel.
        3 - - Enter the name of the marker/note to be created.
        4 - - Once confirmed, the marker will show up on the map and it will also be - displayed as a child note of the map.
        -
        - -

        How the location of the markers is stored

        -

        The location of a marker is stored in the #geolocation attribute - of the child notes:

        - -

        This value can be added manually if needed. The value of the attribute - is made up of the latitude and longitude separated by a comma.

        -

        Repositioning markers

        -

        It's possible to reposition existing markers by simply drag and dropping - them to the new destination.

        -

        As soon as the mouse is released, the new position is saved.

        -

        If moved by mistake, there is currently no way to undo the change. If - the mouse was not yet released, it's possible to force a refresh of the - page (Ctrl+R ) to cancel it.

        -

        Interaction with the markers

        -
          -
        • Hovering over a marker will display the content of the note it belongs - to. -
            -
          • Clicking on the note title in the tooltip will navigate to the note in - the current view.
          • -
          -
        • -
        • Middle-clicking the marker will open the note in a new tab.
        • -
        • Right-clicking the marker will open a contextual menu allowing: -
            -
          • Opening the note in a new tab, split or window.
          • -
          • Opening the location using an external application (if the operating system - supports it).
          • -
          • Removing the marker from the map, which will remove the #geolocation attribute - of the note. To add it back again, the coordinates have to be manually - added back in.
          • -
          -
        • -
        -

        Icon and color of the markers

        -
        - image -
        -

        The markers will have the same icon as the note.

        -

        It's possible to add a custom color to a marker by assigning them a #color attribute - such as #color=green.

        -

        Adding the coordinates manually

        -

        In a nutshell, create a child note and set the #geolocation attribute - to the coordinates.

        -

        The value of the attribute is made up of the latitude and longitude separated - by a comma.

        -

        Adding from Google Maps

        -
        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
           
        1 -
        - -
        -
        Go to Google Maps on the web and look for a desired location, right click - on it and a context menu will show up.     -
        -
        Simply click on the first item displaying the coordinates and they will - be copied to clipboard.     -
        -
        Then paste the value inside the text box into the #geolocation attribute - of a child note of the map (don't forget to surround the value with a " character).
        2 -
        - -
        -
        In Trilium, create a child note under the map.
        3 -
        - -
        -
        And then go to Owned Attributes and type #geolocation=", then - paste from the clipboard as-is and then add the ending " character. - Press Enter to confirm and the map should now be updated to contain the - new note.
        -
        - -

        Adding from OpenStreetMap

        -

        Similarly to the Google Maps approach:

        -
        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
           
        1 - - Go to any location on openstreetmap.org and right click to bring up the - context menu. Select the “Show address” item.
        2 - - The address will be visible in the top-left of the screen, in the place - of the search bar.     -
        -
        Select the coordinates and copy them into the clipboard.
        3 - - Simply paste the value inside the text box into the #geolocation attribute - of a child note of the map and then it should be displayed on the map.
        -
        - -

        Adding GPS tracks (.gpx)

        -

        Trilium has basic support for displaying GPS tracks on the geo map.

        -
        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
           
        1 -
        - -
        -
        To add a track, simply drag & drop a .gpx file inside the geo map - in the note tree.
        2 -
        - -
        -
        In order for the file to be recognized as a GPS track, it needs to show - up as application/gpx+xml in the File type field.
        3 -
        - -
        -
        When going back to the map, the track should now be visible.     -
        -
        The start and end points of the track are indicated by the two blue markers.
        -
        - -

        Troubleshooting

        -
        - -
        - -

        Grid-like artifacts on the map

        -

        This occurs if the application is not at 100% zoom which causes the pixels - of the map to not render correctly due to fractional scaling. The only - possible solution is to set the UI zoom at 100% (default keyboard shortcut - is Ctrl+0).

        \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text.html index b09ee13958..e6bfdc6967 100644 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text.html +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text.html @@ -18,170 +18,167 @@

        Fore more information see Formatting toolbar.

        Features and formatting

        Here's a list of various features supported by text notes:

        -
        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        Dedicated articleFeature
        General formatting - -
          -
        • Headings (section titles, paragraph)
        • -
        • Font size
        • -
        • Bold, italic, underline, strike-through
        • -
        • Superscript, subscript
        • -
        • Font color & background color
        • -
        • Remove formatting
        • -
        -
        Lists - -
          -
        • Bulleted lists
        • -
        • Numbered lists
        • -
        • To-do lists
        • -
        -
        Block quotes & admonitions - -
          -
        • Block quotes
        • -
        • Admonitions
        • -
        -
        Tables - -
          -
        • Basic tables
        • -
        • Merging cells
        • -
        • Styling tables and cells.
        • -
        • Table captions
        • -
        -
        Developer-specific formatting - -
          -
        • Inline code
        • -
        • Code blocks
        • -
        • Keyboard shortcuts
        • -
        -
        Footnotes - -
          -
        • Footnotes
        • -
        -
        Images - -
          -
        • Images
        • -
        -
        Links - -
          -
        • External links
        • -
        • Internal Trilium links
        • -
        -
        Include Note - -
          -
        • Include note
        • -
        -
        Insert buttons - -
          -
        • Symbols
        • -
        • Math Equations -
        • -
        • Mermaid diagrams
        • -
        • Horizontal ruler
        • -
        • Page break
        • -
        -
        Other features - - -
        Premium features - - -
        -
        - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        Dedicated articleFeature
        General formatting + +
          +
        • Headings (section titles, paragraph)
        • +
        • Font size
        • +
        • Bold, italic, underline, strike-through
        • +
        • Superscript, subscript
        • +
        • Font color & background color
        • +
        • Remove formatting
        • +
        +
        Lists + +
          +
        • Bulleted lists
        • +
        • Numbered lists
        • +
        • To-do lists
        • +
        +
        Block quotes & admonitions + +
          +
        • Block quotes
        • +
        • Admonitions
        • +
        +
        Tables + +
          +
        • Basic tables
        • +
        • Merging cells
        • +
        • Styling tables and cells.
        • +
        • Table captions
        • +
        +
        Developer-specific formatting + +
          +
        • Inline code
        • +
        • Code blocks
        • +
        • Keyboard shortcuts
        • +
        +
        Footnotes + +
          +
        • Footnotes
        • +
        +
        Images + +
          +
        • Images
        • +
        +
        Links + +
          +
        • External links
        • +
        • Internal Trilium links
        • +
        +
        Include Note + +
          +
        • Include note
        • +
        +
        Insert buttons + +
          +
        • Symbols
        • +
        • Math Equations +
        • +
        • Mermaid diagrams
        • +
        • Horizontal ruler
        • +
        • Page break
        • +
        +
        Other features + + +
        Premium features + + +
        +

        Read-Only vs. Editing Mode

        -

        Text notes are usually opened in edit mode. However, they may open in - read-only mode if the note is too big or the note is explicitly marked - as read-only. For more information, see Read-Only Notes.

        -

        Keyboard shortcuts

        -

        There are numerous keyboard shortcuts to format the text without having - to use the mouse. For a reference of all the key combinations, see  - Keyboard Shortcuts. In addition, see Markdown-like formatting as an - alternative to the keyboard shortcuts.

        -

        Technical details

        -

        For the text editing functionality, Trilium uses a commercial product - (with an open-source base) called CKEditor. - This brings the benefit of having a powerful WYSIWYG (What You See Is What - You Get) editor.

        \ No newline at end of file +

        Text notes are usually opened in edit mode. However, they may open in + read-only mode if the note is too big or the note is explicitly marked + as read-only. For more information, see Read-Only Notes.

        +

        Keyboard shortcuts

        +

        There are numerous keyboard shortcuts to format the text without having + to use the mouse. For a reference of all the key combinations, see  + Keyboard Shortcuts. In addition, see Markdown-like formatting as an + alternative to the keyboard shortcuts.

        +

        Technical details

        +

        For the text editing functionality, Trilium uses a commercial product + (with an open-source base) called CKEditor. + This brings the benefit of having a powerful WYSIWYG (What You See Is What + You Get) editor.

        \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Images.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Images.html index 3ac99f8af8..d5badf0f93 100644 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Images.html +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Images.html @@ -24,83 +24,80 @@

        Alignment

        The first set of options configure the alignment are, in order:

        -
        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        IconOptionPreviewDescription
        - - Inline - - As the name suggests, the name can be put inside a paragraph and moved - around similarly as if it was a block of text. Use drag & drop or cut-paste - to move it around.
        - - Centered image - - The image will be displayed as a block and centered, not allowing text - in either the left or right of it.
        - - Wrap text - - The image will be displayed to the left or the right of the text.
        - - Block align - - Similarly to Centered image, the image will be displayed as a - block and aligned either to the left or to the right, but not allowing - text to flow on either of its sides.
        -
        - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        IconOptionPreviewDescription
        + + Inline + + As the name suggests, the name can be put inside a paragraph and moved + around similarly as if it was a block of text. Use drag & drop or cut-paste + to move it around.
        + + Centered image + + The image will be displayed as a block and centered, not allowing text + in either the left or right of it.
        + + Wrap text + + The image will be displayed to the left or the right of the text.
        + + Block align + + Similarly to Centered image, the image will be displayed as a + block and aligned either to the left or to the right, but not allowing + text to flow on either of its sides.
        +

        Compression

        -

        Since Trilium isn't really meant to be primary storage for image data, - it attempts to compress and resize (with pretty aggressive settings) uploaded - images before storing them to the database. You may then notice some quality - degradation. Basic quality settings is available in Options → Other.

        -

        If you want to save images in their original resolution, it is recommended - to save them as attachment to note (look for the contextual menu in  - Note buttons → Import files).

        -

        Aligning images side-by-side

        -

        There are generally two ways to display images side by side:

        -
          -
        • If they are roughly the same size, simply make the two images in-line, - according to the alignment section above. The images can be dragged & - dropped onto the same line.
        • -
        • If they are on different size, create a table with - invisible borders.
        • -
        \ No newline at end of file +

        Since Trilium isn't really meant to be primary storage for image data, + it attempts to compress and resize (with pretty aggressive settings) uploaded + images before storing them to the database. You may then notice some quality + degradation. Basic quality settings is available in Options → Other.

        +

        If you want to save images in their original resolution, it is recommended + to save them as attachment to note (look for the contextual menu in  + Note buttons → Import files).

        +

        Aligning images side-by-side

        +

        There are generally two ways to display images side by side:

        +
          +
        • If they are roughly the same size, simply make the two images in-line, + according to the alignment section above. The images can be dragged & + dropped onto the same line.
        • +
        • If they are on different size, create a table with + invisible borders.
        • +
        \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Keyboard shortcuts.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Keyboard shortcuts.html index f26061d1c4..b21042ae68 100644 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Keyboard shortcuts.html +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Keyboard shortcuts.html @@ -1,107 +1,111 @@

        Trilium-specific shortcuts

        -
        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        ActionPCMac
        Bring up inline formatting toolbar (arrow keys , to - navigate, Enter to apply)Alt+F10 - +F10 -
        Bring up block formatting toolbarAlt+F10 - +F10 -
        Create external link - Ctrl+K - +K -
        Create internal (note) link - Ctrl+L - +L -
        Inserts current date and time at caret positionAlt+T +T 
        Increase paragraph indentationTab - -
        Decrease paragraph indentationShift + Tab - + -
        Mark selected text as keyboard shortcut - Ctrl + Alt + K - + + K -
        Insert Math Equations - Ctrl + M - + M -
        Move blocks (lists, paragraphs, etc.) upCtrl+ + 
        Alt+ - + -
        Move blocks (lists, paragraphs, etc.) downCtrl+ - + -
        Alt+ - + -
        -
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        ActionPCMac
        Bring up inline formatting toolbar (arrow keys , to + navigate, Enter to apply)Alt+F10 + +F10 +
        Bring up block formatting toolbarAlt+F10 + +F10 +
        Create external link + Ctrl+K + +K +
        Create internal (note) link + Ctrl+L + +L +
        Inserts current date and time at caret positionAlt+T + +T +
        Increase paragraph indentationTab + +
        Decrease paragraph indentationShift + Tab + + +
        Mark selected text as keyboard shortcut + Ctrl + Alt + K + + + K +
        Insert Math Equations + Ctrl + M + + M +
        Move blocks (lists, paragraphs, etc.) upCtrl+ + + +
        Alt+ + + +
        Move blocks (lists, paragraphs, etc.) downCtrl+ + + +
        Alt+ + + +

        Common shortcuts

        Content editing

        -
        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        ActionPCMac
        Insert a hard break (a new paragraph)Enter -  
        Insert a soft break (a <br> element)Shift+Enter - ⇧Enter -
        Copy selected contentCtrl+C - ⌘C -
        Paste contentCtrl+V - ⌘V -
        Paste content as plain textCtrl+Shift+V - ⌘⇧V -
        UndoCtrl+Z - ⌘Z -
        RedoCtrl+Y, Ctrl+Shift+Z - ⌘Y, ⌘⇧Z -
        Bold textCtrl+B - ⌘B -
        Change text caseShift+F3 - ⇧F3 (may require Fn)
        Create linkCtrl+K - ⌘K -
        Move out of a link←←, →→ -  
        Move out of an inline code style←←, →→ -  
        Select allCtrl+A - ⌘A -
        Find in the documentCtrl+F - ⌘F -
        Copy text formattingCtrl+Shift+C - ⌘⇧C -
        Paste text formattingCtrl+Shift+V - ⌘⇧V -
        Italic textCtrl+I - ⌘I -
        Strikethrough textCtrl+Shift+X - ⌘⇧X -
        Underline textCtrl+U - ⌘U -
        Revert autoformatting actionBackspace -  
        -
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        ActionPCMac
        Insert a hard break (a new paragraph)Enter +
        Insert a soft break (a <br> element)Shift+Enter + ⇧Enter +
        Copy selected contentCtrl+C + ⌘C +
        Paste contentCtrl+V + ⌘V +
        Paste content as plain textCtrl+Shift+V + ⌘⇧V +
        UndoCtrl+Z + ⌘Z +
        RedoCtrl+Y, Ctrl+Shift+Z + ⌘Y, ⌘⇧Z +
        Bold textCtrl+B + ⌘B +
        Change text caseShift+F3 + ⇧F3 (may require Fn)
        Create linkCtrl+K + ⌘K +
        Move out of a link←←, →→ +
        Move out of an inline code style←←, →→ +
        Select allCtrl+A + ⌘A +
        Find in the documentCtrl+F + ⌘F +
        Copy text formattingCtrl+Shift+C + ⌘⇧C +
        Paste text formattingCtrl+Shift+V + ⌘⇧V +
        Italic textCtrl+I + ⌘I +
        Strikethrough textCtrl+Shift+X + ⌘⇧X +
        Underline textCtrl+U + ⌘U +
        Revert autoformatting actionBackspace +

        Interacting with blocks

        Blocks are images, tables, blockquotes, annotations.

        -
        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        ActionPCMac
        Insert a new paragraph directly after a widgetEnter -  
        Insert a new paragraph directly before a widgetShift+Enter - ⇧Enter -
        Move the caret to allow typing directly before a widget, -  
        Move the caret to allow typing directly after a widget, -  
        After entering a nested editable, move the selection to the closest ancestor - widget. For example: move from an image caption to the whole image widget.Tab then Esc -  
        -
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        ActionPCMac
        Insert a new paragraph directly after a widgetEnter +
        Insert a new paragraph directly before a widgetShift+Enter + ⇧Enter +
        Move the caret to allow typing directly before a widget, +
        Move the caret to allow typing directly after a widget, +
        After entering a nested editable, move the selection to the closest ancestor + widget. For example: move from an image caption to the whole image widget.Tab then Esc +

        Specifically for lists:

        -
        - - - - - - - - - - - - - - - - - - - - -
        ActionPCMac
        Increase list item indent -  
        Decrease list item indentShift+ - ⇧⇥ -
        -
        + + + + + + + + + + + + + + + + + + + + +
        ActionPCMac
        Increase list item indent +
        Decrease list item indentShift+ + ⇧⇥ +

        In tables:

        -
        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        ActionPCMac
        Move the selection to the next cell -  
        Move the selection to the previous cellShift+ - ⇧⇥ -
        Insert a new table row (when in the last cell of a table) -  
        Navigate through the table, , , -  
        -
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        ActionPCMac
        Move the selection to the next cell +
        Move the selection to the previous cellShift+ + ⇧⇥ +
        Insert a new table row (when in the last cell of a table) +
        Navigate through the table, , , +

        General UI shortcuts

        -
        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        ActionPCMac
        Close contextual balloons, dropdowns, and dialogsEsc -  
        Open the accessibility help dialogAlt+0 - ⌥0 -
        Move focus between form fields (inputs, buttons, etc.), Shift+ - , ⇧⇥ -
        Move focus to the toolbar, navigate between toolbarsAlt+F10 - ⌥F10 (may require Fn)
        Navigate through the toolbar or menu bar, , , -  
        Navigate to the next focusable field or an element outside the editorTab, Shift+Tab -  
        Execute the currently focused button. Executing buttons that interact - with the editor content moves the focus back to the content.Enter, Space -  
        Move focus in and out of an active dialog windowCtrl+F6 - ⌘F6 (may require Fn)
        -
        \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        ActionPCMac
        Close contextual balloons, dropdowns, and dialogsEsc +
        Open the accessibility help dialogAlt+0 + ⌥0 +
        Move focus between form fields (inputs, buttons, etc.), Shift+ + , ⇧⇥ +
        Move focus to the toolbar, navigate between toolbarsAlt+F10 + ⌥F10 (may require Fn)
        Navigate through the toolbar or menu bar, , , +
        Navigate to the next focusable field or an element outside the editorTab, Shift+Tab +
        Execute the currently focused button. Executing buttons that interact + with the editor content moves the focus back to the content.Enter, Space +
        Move focus in and out of an active dialog windowCtrl+F6 + ⌘F6 (may require Fn)
        \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Links.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Links.html index c1f5114ad8..fa5d3dcef3 100644 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Links.html +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Links.html @@ -1,75 +1,9 @@ -

        External links

        -

        An external link is a standard web link targeting for example a website. - For example, https://en.wikipedia.org/wiki/South_China_Sea is - an external link to a Wikipedia page.

        -

        To create a link without a custom text:

        +

        There are two types of links:

          -
        • Press - in the Formatting toolbar: -
            -
          • A popup will appear, type or paste the URL in the box.
          • -
          • Press Enter or the check mark icon to confirm.
          • -
          -
        • -
        • Alternatively, press Ctrl+K to trigger the aforementioned - popup.
        • -
        • A simpler way is to paste the raw link and press space to turn it automatically - into a link.
        • -
        -

        To create a link with a custom text:

        -
          -
        • First, type and select the text which will be turned into a link.
        • -
        • Follow the previous steps to open the link interface (via the formatting - toolbar, or Ctrl+K).
        • -
        • Alternatively, simply paste (Ctrl+V) over the selected - text to turn it into a link.
        • -
        -

        Once a link is inserted:

        -
          -
        • The text inside the link can be changed if needed but the link itself - will remain.
        • -
        • To modify the link, click on the link to display the popup and press the - Edit link button.
        • -
        • To remove a link, click on it and press the - Unlink button.
        • -
        -

        You can follow external link by either double clicking (will open new - tab/window) it or right clicking on them and choosing "Open in new tab".

        -

        Internal links to notes

        -

        Unlike external notes, internal links (links to other notes) can be created - at the current position by :

        -
          -
        1. Pressing Ctrl + L or the - button from the Formatting toolbar.
        2. -
        3. Filling in the desired note to link. It's also possible to create notes - from this dialog by typing a non-existing note title and selecting Create and link child note.
        4. -
        -

        There are two link types, adjustable when creating the link to the note:

        -
          -
        1. link title mirrors the note's current title -
            -
          1. This is sometimes also called "reference link".
          2. -
          3. Title of such links cannot be changed, instead it is always mirroring - the title of linked note.
          4. -
          5. The icon of the note is also displayed.
          6. -
          7. The link title will automatically update if the title of the note is changed.
          8. -
          -
        2. -
        3. link title can be changed arbitrarily -
            -
          1. This is the traditional hyperlink, where the text of the link can be different - to the note title.
          2. -
          -
        4. -
        -

        Once an internal link is created:

        -
          -
        • You can follow the note link by double clicking it.
        • -
        • Alternatively if you only wish to quickly preview the content, you can - hover over the link and will see read only preview.
        • +
        • External links, + for standard hyperlinks to websites or other resources.
        • +
        • Internal (reference) links for + links to other notes within Trilium.

        Pasting links

          diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/2_Links_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Links/1_External links_image.png similarity index 100% rename from apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/2_Links_image.png rename to apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Links/1_External links_image.png diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/3_Links_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Links/2_External links_image.png similarity index 100% rename from apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/3_Links_image.png rename to apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Links/2_External links_image.png diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Links/External links.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Links/External links.html new file mode 100644 index 0000000000..e296eef5a2 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Links/External links.html @@ -0,0 +1,38 @@ +

          An external link is a standard web link targeting for example a website. + For example, https://en.wikipedia.org/wiki/South_China_Sea is + an external link to a Wikipedia page.

          +

          To create a link without a custom text:

          +
            +
          • Press + in the Formatting toolbar: +
              +
            • A popup will appear, type or paste the URL in the box.
            • +
            • Press Enter or the check mark icon to confirm.
            • +
            +
          • +
          • Alternatively, press Ctrl+K to trigger the aforementioned + popup.
          • +
          • A simpler way is to paste the raw link and press space to turn it automatically + into a link.
          • +
          +

          To create a link with a custom text:

          +
            +
          • First, type and select the text which will be turned into a link.
          • +
          • Follow the previous steps to open the link interface (via the formatting + toolbar, or Ctrl+K).
          • +
          • Alternatively, simply paste (Ctrl+V) over the selected + text to turn it into a link.
          • +
          +

          Once a link is inserted:

          +
            +
          • The text inside the link can be changed if needed but the link itself + will remain.
          • +
          • To modify the link, click on the link to display the popup and press the + Edit link button.
          • +
          • To remove a link, click on it and press the + Unlink button.
          • +
          +

          You can follow external link by either double clicking (will open new + tab/window) it or right clicking on them and choosing "Open in new tab".

          \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Links_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Links/External links_image.png similarity index 100% rename from apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Links_image.png rename to apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Links/External links_image.png diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Links/Internal (reference) links.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Links/Internal (reference) links.html new file mode 100644 index 0000000000..f4070a1b5a --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Links/Internal (reference) links.html @@ -0,0 +1,33 @@ +

          Unlike external notes, internal links (links to other notes) can be created + at the current position by :

          +
            +
          1. Pressing Ctrl + L or the + button from the Formatting toolbar.
          2. +
          3. Filling in the desired note to link. It's also possible to create notes + from this dialog by typing a non-existing note title and selecting Create and link child note.
          4. +
          +

          There are two link types, adjustable when creating the link to the note:

          +
            +
          1. link title mirrors the note's current title +
              +
            1. This is sometimes also called "reference link".
            2. +
            3. Title of such links cannot be changed, instead it is always mirroring + the title of linked note.
            4. +
            5. The icon of the note is also displayed.
            6. +
            7. The link title will automatically update if the title of the note is changed.
            8. +
            +
          2. +
          3. link title can be changed arbitrarily +
              +
            1. This is the traditional hyperlink, where the text of the link can be different + to the note title.
            2. +
            +
          4. +
          +

          Once an internal link is created:

          +
            +
          • You can follow the note link by double clicking it.
          • +
          • Alternatively if you only wish to quickly preview the content, you can + hover over the link and will see read only preview.
          • +
          \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/1_Links_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Links/Internal (reference) links.png similarity index 100% rename from apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/1_Links_image.png rename to apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Links/Internal (reference) links.png diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Lists.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Lists.html index 50dfcf4a2c..97ddf62380 100644 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Lists.html +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Lists.html @@ -37,62 +37,62 @@

          Headings, code blocks within lists

          It possible to add content-level blocks such as headings, code blocks, tables within lists, as follows:

          -
          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          1 - - First, create a list.
          2 - - Press Enter to create a new list item.
          3 - - Press Backspace to get rid of the bullet point. Notice the cursor position.
          4 - - At this point, insert any desired block-level item such as a code block.
          5 - - To continue with a new bullet point, press Enter until the cursor moves - to a new blank position.
          6 - - Press Enter once more to create the new bullet.
          -
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          1 + + First, create a list.
          2 + + Press Enter to create a new list item.
          3 + + Press Backspace to get rid of the bullet point. Notice the cursor position.
          4 + + At this point, insert any desired block-level item such as a code block.
          5 + + To continue with a new bullet point, press Enter until the cursor moves + to a new blank position.
          6 + + Press Enter once more to create the new bullet.

          The same principle applies to all three list types (bullet, numbered and to-do).

          \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Events.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Events.html index f8b02d626c..ac15f15fac 100644 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Events.html +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Events.html @@ -5,126 +5,122 @@

          Global events are attached to the script note via label. Simply create e.g. "run" label with some of these values and script note will be executed once the event occurs.

          -
          - - - - - - - - - - - - - - - - - - - - - -
          LabelDescription
          run - -

          Defines on which events script should run. Possible values are:

          -
            -
          • frontendStartup - when Trilium frontend starts up (or is refreshed), - but not on mobile.
          • -
          • mobileStartup - when Trilium frontend starts up (or is refreshed), - on mobile.
          • -
          • backendStartup - when Trilium backend starts up
          • -
          • hourly - run once an hour. You can use additional label runAtHour to - specify at which hour, on the back-end.
          • -
          • daily - run once a day, on the back-end
          • -
          -
          runOnInstance - Specifies that the script should only run on a particular Trilium instance.
          runAtHour - On which hour should this run. Should be used together with #run=hourly. - Can be defined multiple times for more runs during the day.
          -
          + + + + + + + + + + + + + + + + + + + + + +
          LabelDescription
          run + +

          Defines on which events script should run. Possible values are:

          +
            +
          • frontendStartup - when Trilium frontend starts up (or is refreshed), + but not on mobile.
          • +
          • mobileStartup - when Trilium frontend starts up (or is refreshed), + on mobile.
          • +
          • backendStartup - when Trilium backend starts up
          • +
          • hourly - run once an hour. You can use additional label runAtHour to + specify at which hour, on the back-end.
          • +
          • daily - run once a day, on the back-end
          • +
          +
          runOnInstance + Specifies that the script should only run on a particular Trilium instance.
          runAtHour + On which hour should this run. Should be used together with #run=hourly. + Can be defined multiple times for more runs during the day.

          Entity events

          Other events are bound to some entity, these are defined as relations - meaning that script is triggered only if note has this script attached to it through relations (or it can inherit it).

          -
          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          RelationDescription
          runOnNoteCreation - executes when note is created on backend. Use this relation if you want - to run the script for all notes created under a specific subtree. In that - case, create it on the subtree root note and make it inheritable. A new - note created within the subtree (any depth) will trigger the script.
          runOnChildNoteCreation - executes when new note is created under the note where this relation is - defined
          runOnNoteTitleChange - executes when note title is changed (includes note creation as well)
          runOnNoteContentChange - executes when note content is changed (includes note creation as well).
          runOnNoteChange - executes when note is changed (includes note creation as well). Does not - include content changes
          runOnNoteDeletion - executes when note is being deleted
          runOnBranchCreation - executes when a branch is created. Branch is a link between parent note - and child note and is created e.g. when cloning or moving note.
          runOnBranchChange - executes when a branch is updated. (since v0.62)
          runOnBranchDeletion - executes when a branch is deleted. Branch is a link between parent note - and child note and is deleted e.g. when moving note (old branch/link is - deleted).
          runOnAttributeCreation - executes when new attribute is created for the note which defines this - relation
          runOnAttributeChange - executes when the attribute is changed of a note which defines this relation. - This is triggered also when the attribute is deleted
          -
          \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          RelationDescription
          runOnNoteCreation + executes when note is created on backend. Use this relation if you want + to run the script for all notes created under a specific subtree. In that + case, create it on the subtree root note and make it inheritable. A new + note created within the subtree (any depth) will trigger the script.
          runOnChildNoteCreation + executes when new note is created under the note where this relation is + defined
          runOnNoteTitleChange + executes when note title is changed (includes note creation as well)
          runOnNoteContentChange + executes when note content is changed (includes note creation as well).
          runOnNoteChange + executes when note is changed (includes note creation as well). Does not + include content changes
          runOnNoteDeletion + executes when note is being deleted
          runOnBranchCreation + executes when a branch is created. Branch is a link between parent note + and child note and is created e.g. when cloning or moving note.
          runOnBranchChange + executes when a branch is updated. (since v0.62)
          runOnBranchDeletion + executes when a branch is deleted. Branch is a link between parent note + and child note and is deleted e.g. when moving note (old branch/link is + deleted).
          runOnAttributeCreation + executes when new attribute is created for the note which defines this + relation
          runOnAttributeChange + executes when the attribute is changed of a note which defines this relation. + This is triggered also when the attribute is deleted
          \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Troubleshooting.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Troubleshooting.html index 77d1aa2dcc..951ae6578f 100644 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Troubleshooting.html +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Troubleshooting.html @@ -54,7 +54,7 @@ UPDATE options SET value = 'QpC8XoiYYeqHPtHKRtbNxfTHsk+pEBqVBODYp0FkPBa22tlBBKBM

          Reporting Bugs

          Reporting bugs is highly valuable. Here are some tips:

            -
          • Use GitHub issues for reporting: https://github.com/TriliumNext/Notes/issues +
          • Use GitHub issues for reporting: https://github.com/TriliumNext/Trilium/issues
          • Refer to the error logs page for information on providing necessary details.
          • diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Troubleshooting/Error logs.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Troubleshooting/Error logs.html index 362ec507b8..aac70a7d98 100644 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Troubleshooting/Error logs.html +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Troubleshooting/Error logs.html @@ -32,7 +32,7 @@

            If you don't feel comfortable attaching the logs or anything sensitive to the public GitHub issues, feel free to contact the devs in our Matrix support channel.

            + href="https://github.com/TriliumNext/Trilium#-discuss-with-us">support channel.

            Use this email to also provide anything which could assist in analysing the bug - e.g. files/images/ZIPs being imported or anonymized database.

            Exporting note subtree for reproduction

            diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Troubleshooting/Reporting issues.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Troubleshooting/Reporting issues.html index 4af29831e6..20e8aae89f 100644 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Troubleshooting/Reporting issues.html +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Troubleshooting/Reporting issues.html @@ -1,3 +1,3 @@ -

            Go to Issues · TriliumNext/Notes and +

            Go to Issues · TriliumNext/Trilium and press “New issue”.

            If you are reporting a bug, select “Bug Report” and fill in the details.

            \ No newline at end of file diff --git a/apps/server/src/assets/translations/ca/server.json b/apps/server/src/assets/translations/ca/server.json new file mode 100644 index 0000000000..1384c28f41 --- /dev/null +++ b/apps/server/src/assets/translations/ca/server.json @@ -0,0 +1,106 @@ +{ + "keyboard_actions": { + "back-in-note-history": "Navega a la nota previa a l'historial", + "forward-in-note-history": "Navega a la següent nota a l'historial", + "dialogs": "Diàlegs", + "other": "Altres" + }, + "login": { + "title": "Inicia sessió", + "password": "Contrasenya", + "button": "Inicia sessió" + }, + "set_password": { + "password": "Contrasenya" + }, + "setup": { + "next": "Següent", + "title": "Configuració" + }, + "setup_sync-from-desktop": { + "step6-here": "aquí" + }, + "setup_sync-from-server": { + "server-host-placeholder": "https://:", + "proxy-server-placeholder": "https://:", + "note": "Nota:", + "password": "Contrasenya", + "password-placeholder": "Contrasenya", + "back": "Torna" + }, + "setup_sync-in-progress": { + "outstanding-items-default": "N/A" + }, + "share_page": { + "parent": "pare:" + }, + "weekdays": { + "monday": "Dilluns", + "tuesday": "Dimarts", + "wednesday": "Dimecres", + "thursday": "Dijous", + "friday": "Divendres", + "saturday": "Dissabte", + "sunday": "Diumenge" + }, + "months": { + "january": "Gener", + "february": "Febrer", + "march": "Març", + "april": "Abril", + "may": "Maig", + "june": "Juny", + "july": "Juliol", + "august": "Agost", + "september": "Setembre", + "october": "Octubre", + "november": "Novembre", + "december": "Desembre" + }, + "special_notes": { + "search_prefix": "Cerca:" + }, + "hidden-subtree": { + "spacer-title": "Espaiador", + "calendar-title": "Calendari", + "bookmarks-title": "Marcadors", + "settings-title": "Ajustos", + "options-title": "Opcions", + "appearance-title": "Aparença", + "shortcuts-title": "Dreceres", + "images-title": "Imatges", + "spellcheck-title": "Correció ortogràfica", + "password-title": "Contrasenya", + "multi-factor-authentication-title": "MFA", + "etapi-title": "ETAPI", + "backup-title": "Còpia de seguretat", + "sync-title": "Sincronització", + "ai-llm-title": "AI/LLM", + "other": "Altres", + "advanced-title": "Avançat", + "inbox-title": "Safata d'entrada" + }, + "notes": { + "duplicate-note-suffix": "(dup)" + }, + "tray": { + "bookmarks": "Marcadors" + }, + "modals": { + "error_title": "Error" + }, + "share_theme": { + "search_placeholder": "Cerca...", + "subpages": "Subpàgines:", + "expand": "Expandeix" + }, + "hidden_subtree_templates": { + "description": "Descripció", + "calendar": "Calendari", + "table": "Taula", + "geolocation": "Geolocalització", + "board": "Tauler", + "status": "Estat", + "board_status_done": "Fet" + } +} diff --git a/apps/server/src/assets/translations/cn/server.json b/apps/server/src/assets/translations/cn/server.json index 4daf1d49bc..0ff95e57a3 100644 --- a/apps/server/src/assets/translations/cn/server.json +++ b/apps/server/src/assets/translations/cn/server.json @@ -1,286 +1,428 @@ { - "keyboard_actions": { - "open-jump-to-note-dialog": "打开“跳转到笔记”对话框", - "search-in-subtree": "在活跃笔记的子树中搜索笔记", - "expand-subtree": "展开当前笔记的子树", - "collapse-tree": "折叠完整的笔记树", - "collapse-subtree": "折叠当前笔记的子树", - "sort-child-notes": "排序子笔记", - "creating-and-moving-notes": "创建和移动笔记", - "create-note-into-inbox": "在收件箱(若已定义)或日记中创建笔记", - "delete-note": "删除笔记", - "move-note-up": "上移笔记", - "move-note-down": "下移笔记", - "move-note-up-in-hierarchy": "在层级中上移笔记", - "move-note-down-in-hierarchy": "在层级中下移笔记", - "edit-note-title": "从树跳转到笔记详情并编辑标题", - "edit-branch-prefix": "显示编辑分支前缀对话框", - "note-clipboard": "笔记剪贴板", - "copy-notes-to-clipboard": "复制选定的笔记到剪贴板", - "paste-notes-from-clipboard": "从剪贴板粘贴笔记到活跃笔记中", - "cut-notes-to-clipboard": "剪切选定的笔记到剪贴板", - "select-all-notes-in-parent": "选择当前笔记级别的所有笔记", - "add-note-above-to-the-selection": "将上方笔记添加到选择中", - "add-note-below-to-selection": "将下方笔记添加到选择中", - "duplicate-subtree": "克隆子树", - "tabs-and-windows": "标签页和窗口", - "open-new-tab": "打开新标签页", - "close-active-tab": "关闭活跃标签页", - "reopen-last-tab": "重开最后关闭的标签页", - "activate-next-tab": "激活右侧标签页", - "activate-previous-tab": "激活左侧标签页", - "open-new-window": "打开新空窗口", - "toggle-tray": "从系统托盘显示/隐藏应用程序", - "first-tab": "激活列表中的第一个标签页", - "second-tab": "激活列表中的第二个标签页", - "third-tab": "激活列表中的第三个标签页", - "fourth-tab": "激活列表中的第四个标签页", - "fifth-tab": "激活列表中的第五个标签页", - "sixth-tab": "激活列表中的第六个标签页", - "seventh-tab": "激活列表中的第七个标签页", - "eight-tab": "激活列表中的第八个标签页", - "ninth-tab": "激活列表中的第九个标签页", - "last-tab": "激活列表中的最后一个标签页", - "dialogs": "对话框", - "show-note-source": "显示笔记源对话框", - "show-options": "显示选项对话框", - "show-revisions": "显示笔记修订对话框", - "show-recent-changes": "显示最近更改对话框", - "show-sql-console": "显示 SQL 控制台对话框", - "show-backend-log": "显示后端日志对话框", - "text-note-operations": "文本笔记操作", - "add-link-to-text": "打开对话框以添加链接到文本", - "follow-link-under-cursor": "追踪光标下的链接", - "insert-date-and-time-to-text": "插入当前日期和时间到文本", - "paste-markdown-into-text": "从剪贴板粘贴 Markdown 到文本笔记", - "cut-into-note": "剪切当前笔记的选区并创建包含选定文本的子笔记", - "add-include-note-to-text": "打开对话框以引含一个笔记", - "edit-readonly-note": "编辑只读笔记", - "attributes-labels-and-relations": "属性(标签和关系)", - "add-new-label": "创建新标签", - "create-new-relation": "创建新关系", - "ribbon-tabs": "功能区标签页", - "toggle-basic-properties": "切换基本属性", - "toggle-file-properties": "切换文件属性", - "toggle-image-properties": "切换图像属性", - "toggle-owned-attributes": "切换拥有的属性", - "toggle-inherited-attributes": "切换继承的属性", - "toggle-promoted-attributes": "切换提升的属性", - "toggle-link-map": "切换链接地图", - "toggle-note-info": "切换笔记信息", - "toggle-note-paths": "切换笔记路径", - "toggle-similar-notes": "切换相似笔记", - "other": "其他", - "toggle-right-pane": "切换右侧面板的显示,包括目录和高亮", - "print-active-note": "打印活跃笔记", - "open-note-externally": "以默认应用打开笔记文件", - "render-active-note": "渲染(重新渲染)活跃笔记", - "run-active-note": "运行活跃 JavaScript(前/后端)代码笔记", - "toggle-note-hoisting": "切换活跃笔记的聚焦", - "unhoist": "从任意地方取消聚焦", - "reload-frontend-app": "重载前端应用", - "open-dev-tools": "打开开发工具", - "toggle-left-note-tree-panel": "切换左侧(笔记树)面板", - "toggle-full-screen": "切换全屏", - "zoom-out": "缩小", - "zoom-in": "放大", - "note-navigation": "笔记导航", - "reset-zoom-level": "重置缩放级别", - "copy-without-formatting": "免格式复制选定文本", - "force-save-revision": "强制创建/保存活跃笔记的新修订版本", - "show-help": "显示内置用户指南", - "toggle-book-properties": "切换书籍属性", - "toggle-classic-editor-toolbar": "为编辑器切换格式标签页的固定工具栏", - "export-as-pdf": "导出当前笔记为 PDF", - "show-cheatsheet": "显示包含常见键盘操作的弹窗", - "toggle-zen-mode": "启用/禁用禅模式(为专注编辑而精简界面)" - }, - "login": { - "title": "登录", - "heading": "Trilium 登录", - "incorrect-totp": "TOTP 不正确,请重试。", - "incorrect-password": "密码不正确,请重试。", - "password": "密码", - "remember-me": "记住我", - "button": "登录", - "sign_in_with_sso": "使用 {{ ssoIssuerName }} 登录" - }, - "set_password": { - "title": "设置密码", - "heading": "设置密码", - "description": "在您能够从 Web 开始使用 Trilium 之前,您需要先设置一个密码。您之后将使用此密码登录。", - "password": "密码", - "password-confirmation": "密码确认", - "button": "设置密码" - }, - "javascript-required": "Trilium 需要启用 JavaScript。", - "setup": { - "heading": "TriliumNext 笔记设置", - "new-document": "我是新用户,我想为我的笔记创建一个新的 Trilium 文档", - "sync-from-desktop": "我已经有一个桌面实例,我想设置与它的同步", - "sync-from-server": "我已经有一个服务器实例,我想设置与它的同步", - "next": "下一步", - "init-in-progress": "文档初始化进行中", - "redirecting": "您将很快被重定向到应用程序。", - "title": "设置" - }, - "setup_sync-from-desktop": { - "heading": "从桌面同步", - "description": "此设置需要从桌面实例开始:", - "step1": "打开您的 TriliumNext 笔记桌面实例。", - "step2": "从 Trilium 菜单中,点击“选项”。", - "step3": "点击“同步”类别。", - "step4": "将服务器实例地址更改为:{{- host}} 并点击保存。", - "step5": "点击“测试同步”按钮以验证连接是否成功。", - "step6": "完成这些步骤后,点击{{- link}}。", - "step6-here": "这里" - }, - "setup_sync-from-server": { - "heading": "从服务器同步", - "instructions": "请在下面输入 Trilium 服务器地址和凭据。这将从服务器下载整个 Trilium 文档并设置与它的同步。根据文档大小和您的连接的速度,这可能需要一段时间。", - "server-host": "Trilium 服务器地址", - "server-host-placeholder": "https://<主机名称>:<端口>", - "proxy-server": "代理服务器(可选)", - "proxy-server-placeholder": "https://<主机名称>:<端口>", - "note": "注意:", - "proxy-instruction": "如果您将代理设置留空,将使用系统代理(仅适用于桌面应用)", - "password": "密码", - "password-placeholder": "密码", - "back": "返回", - "finish-setup": "完成设置" - }, - "setup_sync-in-progress": { - "heading": "同步中", - "successful": "同步已被正确设置。初始同步完成可能需要一些时间。完成后,您将被重定向到登录页面。", - "outstanding-items": "未完成的同步项目:", - "outstanding-items-default": "无" - }, - "share_404": { - "title": "未找到", - "heading": "未找到" - }, - "share_page": { - "parent": "父级:", - "clipped-from": "此笔记最初剪切自 {{- url}}", - "child-notes": "子笔记:", - "no-content": "此笔记没有内容。" - }, - "weekdays": { - "monday": "周一", - "tuesday": "周二", - "wednesday": "周三", - "thursday": "周四", - "friday": "周五", - "saturday": "周六", - "sunday": "周日" - }, - "weekdayNumber": "第 {weekNumber} 周", - "months": { - "january": "一月", - "february": "二月", - "march": "三月", - "april": "四月", - "may": "五月", - "june": "六月", - "july": "七月", - "august": "八月", - "september": "九月", - "october": "十月", - "november": "十一月", - "december": "十二月" - }, - "quarterNumber": "第 {quarterNumber} 季度", - "special_notes": { - "search_prefix": "搜索:" - }, - "test_sync": { - "not-configured": "同步服务器主机未配置。请先配置同步。", - "successful": "同步服务器握手成功,同步已开始。" - }, - "hidden-subtree": { - "root-title": "隐藏的笔记", - "search-history-title": "搜索历史", - "note-map-title": "笔记地图", - "sql-console-history-title": "SQL 控制台历史", - "shared-notes-title": "共享笔记", - "bulk-action-title": "批量操作", - "backend-log-title": "后端日志", - "user-hidden-title": "隐藏的用户", - "launch-bar-templates-title": "启动栏模板", - "base-abstract-launcher-title": "基础摘要启动器", - "command-launcher-title": "命令启动器", - "note-launcher-title": "笔记启动器", - "script-launcher-title": "脚本启动器", - "built-in-widget-title": "内置小组件", - "spacer-title": "空白占位", - "custom-widget-title": "自定义小组件", - "launch-bar-title": "启动栏", - "available-launchers-title": "可用启动器", - "go-to-previous-note-title": "跳转到上一条笔记", - "go-to-next-note-title": "跳转到下一条笔记", - "new-note-title": "新建笔记", - "search-notes-title": "搜索笔记", - "jump-to-note-title": "跳转到笔记", - "calendar-title": "日历", - "recent-changes-title": "最近更改", - "bookmarks-title": "书签", - "open-today-journal-note-title": "打开今天的日记笔记", - "quick-search-title": "快速搜索", - "protected-session-title": "受保护的会话", - "sync-status-title": "同步状态", - "settings-title": "设置", - "options-title": "选项", - "appearance-title": "外观", - "shortcuts-title": "快捷键", - "text-notes": "文本笔记", - "code-notes-title": "代码笔记", - "images-title": "图片", - "spellcheck-title": "拼写检查", - "password-title": "密码", - "multi-factor-authentication-title": "多因素认证", - "etapi-title": "ETAPI", - "backup-title": "备份", - "sync-title": "同步", - "other": "其他", - "advanced-title": "高级", - "visible-launchers-title": "可见启动器", - "user-guide": "用户指南", - "localization": "语言和区域" - }, - "notes": { - "new-note": "新建笔记", - "duplicate-note-suffix": "(重复)", - "duplicate-note-title": "{{- noteTitle }} {{ duplicateNoteSuffix }}" - }, - "backend_log": { - "log-does-not-exist": "后端日志文件 '{{ fileName }}' 暂不存在。", - "reading-log-failed": "读取后端日志文件 '{{ fileName }}' 失败。" - }, - "content_renderer": { - "note-cannot-be-displayed": "此笔记类型无法显示。" - }, - "pdf": { - "export_filter": "PDF 文档 (*.pdf)", - "unable-to-export-message": "当前笔记无法被导出为 PDF。", - "unable-to-export-title": "无法导出为 PDF", - "unable-to-save-message": "所选文件不能被写入。重试或选择另一个目的地。" - }, - "tray": { - "tooltip": "TriliumNext 笔记", - "close": "退出 Trilium", - "recents": "最近笔记", - "bookmarks": "书签", - "today": "打开今天的日记笔记", - "new-note": "新建笔记", - "show-windows": "显示窗口", - "open_new_window": "打开新窗口" - }, - "migration": { - "old_version": "由您当前版本的直接迁移不被支持。请先升级到最新的 v0.60.4 然后再到这个版本。", - "error_message": "迁移到版本 {{version}} 时发生错误: {{stack}}", - "wrong_db_version": "数据库的版本({{version}})新于应用期望的版本({{targetVersion}}),这意味着它由一个更加新的且不兼容的 Trilium 所创建。升级到最新版的 Trilium 以解决此问题。" - }, - "modals": { - "error_title": "错误" - } + "keyboard_actions": { + "open-jump-to-note-dialog": "打开“跳转到笔记”对话框", + "search-in-subtree": "在当前笔记的子树中搜索笔记", + "expand-subtree": "展开当前笔记的子树", + "collapse-tree": "折叠完整的笔记树", + "collapse-subtree": "折叠当前笔记的子树", + "sort-child-notes": "排序子笔记", + "creating-and-moving-notes": "创建和移动笔记", + "create-note-into-inbox": "在收件箱(若已定义)或日记中创建笔记", + "delete-note": "删除笔记", + "move-note-up": "向上移动笔记", + "move-note-down": "向下移动笔记", + "move-note-up-in-hierarchy": "在层级中向上移动笔记", + "move-note-down-in-hierarchy": "在层级中向下移动笔记", + "edit-note-title": "从树跳转到笔记详情并编辑标题", + "edit-branch-prefix": "显示编辑分支前缀对话框", + "note-clipboard": "笔记剪贴板", + "copy-notes-to-clipboard": "复制选定的笔记到剪贴板", + "paste-notes-from-clipboard": "从剪贴板粘贴笔记到当前笔记中", + "cut-notes-to-clipboard": "剪切选定的笔记到剪贴板", + "select-all-notes-in-parent": "选择当前笔记级别的所有笔记", + "add-note-above-to-the-selection": "将上方笔记添加到选择中", + "add-note-below-to-selection": "将下方笔记添加到选择中", + "duplicate-subtree": "复制子树", + "tabs-and-windows": "标签页和窗口", + "open-new-tab": "打开新标签页", + "close-active-tab": "关闭当前标签页", + "reopen-last-tab": "重新打开最后关闭的标签页", + "activate-next-tab": "切换下一个标签页", + "activate-previous-tab": "切换上一个标签页", + "open-new-window": "打开新窗口", + "toggle-tray": "显示/隐藏系统托盘图标", + "first-tab": "切换到第一个标签页", + "second-tab": "切换到第二个标签页", + "third-tab": "切换到第三个标签页", + "fourth-tab": "切换到第四个标签页", + "fifth-tab": "切换到第五个标签页", + "sixth-tab": "切换到第六个标签页", + "seventh-tab": "切换到第七个标签页", + "eight-tab": "切换到第八个标签页", + "ninth-tab": "切换到第九个标签页", + "last-tab": "切换到最后一个标签页", + "dialogs": "对话框", + "show-note-source": "显示笔记源代码对话框", + "show-options": "显示选项对话框", + "show-revisions": "显示修订历史对话框", + "show-recent-changes": "显示最近更改对话框", + "show-sql-console": "显示SQL控制台对话框", + "show-backend-log": "显示后端日志对话框", + "text-note-operations": "文本笔记操作", + "add-link-to-text": "打开对话框以添加链接到文本", + "follow-link-under-cursor": "访问光标下的链接", + "insert-date-and-time-to-text": "在文本中插入日期和时间", + "paste-markdown-into-text": "从剪贴板粘贴 Markdown 到文本笔记", + "cut-into-note": "剪切当前笔记的选区并创建包含选定文本的子笔记", + "add-include-note-to-text": "打开对话框以添加一个包含笔记", + "edit-readonly-note": "编辑只读笔记", + "attributes-labels-and-relations": "属性(标签和关系)", + "add-new-label": "创建新标签", + "create-new-relation": "创建新关系", + "ribbon-tabs": "功能区标签页", + "toggle-basic-properties": "切换基本属性", + "toggle-file-properties": "切换文件属性", + "toggle-image-properties": "切换图像属性", + "toggle-owned-attributes": "切换拥有的属性", + "toggle-inherited-attributes": "切换继承的属性", + "toggle-promoted-attributes": "切换提升的属性", + "toggle-link-map": "切换链接地图", + "toggle-note-info": "切换笔记信息", + "toggle-note-paths": "切换笔记路径", + "toggle-similar-notes": "切换相似笔记", + "other": "其他", + "toggle-right-pane": "切换右侧面板的显示,包括目录和高亮", + "print-active-note": "打印当前笔记", + "open-note-externally": "以默认应用打开笔记文件", + "render-active-note": "渲染(重新渲染)当前笔记", + "run-active-note": "运行当前 JavaScript(前/后端)代码笔记", + "toggle-note-hoisting": "提升笔记", + "unhoist": "取消提升笔记", + "reload-frontend-app": "重新加载前端应用", + "open-dev-tools": "打开开发者工具", + "toggle-left-note-tree-panel": "切换左侧(笔记树)面板", + "toggle-full-screen": "切换全屏模式", + "zoom-out": "缩小", + "zoom-in": "放大", + "note-navigation": "笔记导航", + "reset-zoom-level": "重置缩放级别", + "copy-without-formatting": "无格式复制选定文本", + "force-save-revision": "强制创建/保存当前笔记的新修订版本", + "show-help": "显示帮助", + "toggle-book-properties": "切换书籍属性", + "toggle-classic-editor-toolbar": "为编辑器切换格式标签页的固定工具栏", + "export-as-pdf": "导出当前笔记为 PDF", + "show-cheatsheet": "显示快捷键指南", + "toggle-zen-mode": "启用/禁用禅模式(为专注编辑而精简界面)", + "open-command-palette": "打开命令面板", + "quick-search": "激活快速搜索栏", + "create-note-after": "在当前笔记后面创建笔记", + "create-note-into": "创建笔记作为当前笔记的子笔记", + "clone-notes-to": "克隆选中的笔记到", + "move-notes-to": "移动选中的笔记到", + "find-in-text": "在文本中查找", + "back-in-note-history": "导航到历史记录中的上一个笔记", + "forward-in-note-history": "导航到历史记录的下一个笔记", + "scroll-to-active-note": "滚动笔记树到当前笔记" + }, + "login": { + "title": "登录", + "heading": "Trilium 登录", + "incorrect-totp": "TOTP 不正确,请重试。", + "incorrect-password": "密码不正确,请重试。", + "password": "密码", + "remember-me": "记住我", + "button": "登录", + "sign_in_with_sso": "使用 {{ ssoIssuerName }} 登录" + }, + "set_password": { + "title": "设置密码", + "heading": "设置密码", + "description": "在您能够从Web开始使用Trilium之前,您需要先设置一个密码。您之后将使用此密码登录。", + "password": "密码", + "password-confirmation": "密码确认", + "button": "设置密码" + }, + "javascript-required": "Trilium需要启用JavaScript。", + "setup": { + "heading": "TriliumNext笔记设置", + "new-document": "我是新用户,我想为我的笔记创建一个新的Trilium文档", + "sync-from-desktop": "我已经有一个桌面实例,我想设置与它的同步", + "sync-from-server": "我已经有一个服务器实例,我想设置与它的同步", + "next": "下一步", + "init-in-progress": "文档初始化进行中", + "redirecting": "您将很快被重定向到应用程序。", + "title": "设置" + }, + "setup_sync-from-desktop": { + "heading": "从桌面同步", + "description": "此设置需要从桌面实例开始:", + "step1": "打开您的TriliumNext笔记桌面实例。", + "step2": "从Trilium菜单中,点击“选项”。", + "step3": "点击“同步”类别。", + "step4": "将服务器实例地址更改为:{{- host}} 并点击保存。", + "step5": "点击“测试同步”按钮以验证连接是否成功。", + "step6": "完成这些步骤后,点击{{- link}}。", + "step6-here": "这里" + }, + "setup_sync-from-server": { + "heading": "从服务器同步", + "instructions": "请在下面输入Trilium服务器地址和凭据。这将从服务器下载整个Trilium文档并设置与它的同步。根据文档大小和您的连接的速度,这可能需要一段时间。", + "server-host": "Trilium服务器地址", + "server-host-placeholder": "https://<主机名称>:<端口>", + "proxy-server": "代理服务器(可选)", + "proxy-server-placeholder": "https://<主机名称>:<端口>", + "note": "注意:", + "proxy-instruction": "如果您将代理设置留空,将使用系统代理(仅适用于桌面应用)", + "password": "密码", + "password-placeholder": "密码", + "back": "返回", + "finish-setup": "完成设置" + }, + "setup_sync-in-progress": { + "heading": "同步中", + "successful": "同步已被正确设置。初始同步完成可能需要一些时间。完成后,您将被重定向到登录页面。", + "outstanding-items": "未完成的同步项目:", + "outstanding-items-default": "无" + }, + "share_404": { + "title": "未找到", + "heading": "未找到" + }, + "share_page": { + "parent": "父级:", + "clipped-from": "此笔记最初剪切自 {{- url}}", + "child-notes": "子笔记:", + "no-content": "此笔记没有内容。" + }, + "weekdays": { + "monday": "周一", + "tuesday": "周二", + "wednesday": "周三", + "thursday": "周四", + "friday": "周五", + "saturday": "周六", + "sunday": "周日" + }, + "weekdayNumber": "第 {weekNumber} 周", + "months": { + "january": "一月", + "february": "二月", + "march": "三月", + "april": "四月", + "may": "五月", + "june": "六月", + "july": "七月", + "august": "八月", + "september": "九月", + "october": "十月", + "november": "十一月", + "december": "十二月" + }, + "quarterNumber": "第 {quarterNumber} 季度", + "special_notes": { + "search_prefix": "搜索:" + }, + "test_sync": { + "not-configured": "同步服务器主机未配置。请先配置同步。", + "successful": "同步服务器握手成功,同步已开始。" + }, + "hidden-subtree": { + "root-title": "隐藏的笔记", + "search-history-title": "搜索历史", + "note-map-title": "笔记地图", + "sql-console-history-title": "SQL 控制台历史", + "shared-notes-title": "共享笔记", + "bulk-action-title": "批量操作", + "backend-log-title": "后端日志", + "user-hidden-title": "隐藏的用户", + "launch-bar-templates-title": "启动栏模板", + "base-abstract-launcher-title": "基础摘要启动器", + "command-launcher-title": "命令启动器", + "note-launcher-title": "笔记启动器", + "script-launcher-title": "脚本启动器", + "built-in-widget-title": "内置小组件", + "spacer-title": "空白占位", + "custom-widget-title": "自定义小组件", + "launch-bar-title": "启动栏", + "available-launchers-title": "可用启动器", + "go-to-previous-note-title": "跳转到上一条笔记", + "go-to-next-note-title": "跳转到下一条笔记", + "new-note-title": "新建笔记", + "search-notes-title": "搜索笔记", + "calendar-title": "日历", + "recent-changes-title": "最近更改", + "bookmarks-title": "书签", + "open-today-journal-note-title": "打开今天的日记笔记", + "quick-search-title": "快速搜索", + "protected-session-title": "受保护的会话", + "sync-status-title": "同步状态", + "settings-title": "设置", + "options-title": "选项", + "appearance-title": "外观", + "shortcuts-title": "快捷键", + "text-notes": "文本笔记", + "code-notes-title": "代码笔记", + "images-title": "图片", + "spellcheck-title": "拼写检查", + "password-title": "密码", + "multi-factor-authentication-title": "多因素认证", + "etapi-title": "ETAPI", + "backup-title": "备份", + "sync-title": "同步", + "other": "其他", + "advanced-title": "高级", + "visible-launchers-title": "可见启动器", + "user-guide": "用户指南", + "localization": "语言和区域", + "jump-to-note-title": "跳转至...", + "llm-chat-title": "与笔记聊天", + "ai-llm-title": "AI/LLM", + "inbox-title": "收件箱" + }, + "notes": { + "new-note": "新建笔记", + "duplicate-note-suffix": "(重复)", + "duplicate-note-title": "{{- noteTitle }} {{ duplicateNoteSuffix }}" + }, + "backend_log": { + "log-does-not-exist": "后端日志文件 '{{ fileName }}' 暂不存在。", + "reading-log-failed": "读取后端日志文件 '{{ fileName }}' 失败。" + }, + "content_renderer": { + "note-cannot-be-displayed": "此笔记类型无法显示。" + }, + "pdf": { + "export_filter": "PDF 文档 (*.pdf)", + "unable-to-export-message": "当前笔记无法被导出为 PDF。", + "unable-to-export-title": "无法导出为 PDF", + "unable-to-save-message": "所选文件不能被写入。重试或选择另一个目的地。" + }, + "tray": { + "tooltip": "TriliumNext 笔记", + "close": "退出 Trilium", + "recents": "最近笔记", + "bookmarks": "书签", + "today": "打开今天的日记笔记", + "new-note": "新建笔记", + "show-windows": "显示窗口", + "open_new_window": "打开新窗口" + }, + "migration": { + "old_version": "由您当前版本的直接迁移不被支持。请先升级到最新的 v0.60.4 然后再到这个版本。", + "error_message": "迁移到版本 {{version}} 时发生错误: {{stack}}", + "wrong_db_version": "数据库的版本({{version}})新于应用期望的版本({{targetVersion}}),这意味着它由一个更加新的且不兼容的 Trilium 所创建。升级到最新版的 Trilium 以解决此问题。" + }, + "modals": { + "error_title": "错误" + }, + "keyboard_action_names": { + "back-in-note-history": "返回笔记历史", + "forward-in-note-history": "前进笔记历史", + "jump-to-note": "跳转到...", + "command-palette": "命令面板", + "scroll-to-active-note": "滚动到当前笔记", + "quick-search": "快速搜索", + "search-in-subtree": "在子树中搜索", + "expand-subtree": "展开子树", + "collapse-tree": "折叠整个树", + "collapse-subtree": "折叠子树", + "sort-child-notes": "排序子笔记", + "create-note-after": "在后面创建笔记", + "create-note-into": "创建笔记到", + "create-note-into-inbox": "创建笔记到收件箱", + "delete-notes": "删除笔记", + "move-note-up": "上移笔记", + "move-note-down": "下移笔记", + "move-note-up-in-hierarchy": "在层级中上移笔记", + "move-note-down-in-hierarchy": "在层级中下移笔记", + "edit-note-title": "编辑笔记标题", + "edit-branch-prefix": "编辑分支前缀", + "clone-notes-to": "克隆笔记到", + "move-notes-to": "移动笔记到", + "copy-notes-to-clipboard": "复制笔记到剪贴板", + "paste-notes-from-clipboard": "从剪贴板粘贴笔记", + "cut-notes-to-clipboard": "剪切笔记到剪贴板", + "select-all-notes-in-parent": "选择父节点中所有笔记", + "zoom-in": "放大", + "zoom-out": "缩小", + "reset-zoom-level": "重置缩放级别", + "copy-without-formatting": "无格式复制", + "force-save-revision": "强制保存修订版本", + "add-note-above-to-selection": "将上方笔记添加到选择", + "add-note-below-to-selection": "将下方笔记添加到选择", + "duplicate-subtree": "复制子树", + "open-new-tab": "打开新标签页", + "close-active-tab": "关闭当前标签页", + "reopen-last-tab": "重新打开最后关闭的标签页", + "activate-next-tab": "切换下一个标签页", + "activate-previous-tab": "切换上一个标签页", + "open-new-window": "打开新窗口", + "toggle-system-tray-icon": "显示/隐藏系统托盘图标", + "toggle-zen-mode": "启用/禁用禅模式", + "switch-to-first-tab": "切换到第一个标签页", + "switch-to-second-tab": "切换到第二个标签页", + "switch-to-third-tab": "切换到第三个标签页", + "switch-to-fourth-tab": "切换到第四个标签页", + "switch-to-fifth-tab": "切换到第五个标签页", + "switch-to-sixth-tab": "切换到第六个标签页", + "switch-to-seventh-tab": "切换到第七个标签页", + "switch-to-eighth-tab": "切换到第八个标签页", + "switch-to-ninth-tab": "切换到第九个标签页", + "switch-to-last-tab": "切换到最后一个标签页", + "show-note-source": "显示笔记源代码", + "show-options": "显示选项", + "show-revisions": "显示修订历史", + "show-recent-changes": "显示最近更改", + "show-sql-console": "显示SQL控制台", + "show-backend-log": "显示后端日志", + "show-help": "显示帮助", + "show-cheatsheet": "显示快捷键指南", + "add-link-to-text": "为文本添加链接", + "follow-link-under-cursor": "访问光标下的链接", + "insert-date-and-time-to-text": "在文本中插入日期和时间", + "paste-markdown-into-text": "粘贴Markdown到文本", + "cut-into-note": "剪切到笔记", + "add-include-note-to-text": "在文本中添加包含笔记", + "edit-read-only-note": "编辑只读笔记", + "add-new-label": "添加新标签", + "add-new-relation": "添加新关系", + "toggle-ribbon-tab-classic-editor": "切换功能区标签:经典编辑器", + "toggle-ribbon-tab-basic-properties": "切换功能区标签:基本属性", + "toggle-ribbon-tab-book-properties": "切换功能区标签:书籍属性", + "toggle-ribbon-tab-file-properties": "切换功能区标签:文件属性", + "toggle-ribbon-tab-image-properties": "切换功能区标签:图片属性", + "toggle-ribbon-tab-owned-attributes": "切换功能区标签:自有属性", + "toggle-ribbon-tab-inherited-attributes": "切换功能区标签:继承属性", + "toggle-ribbon-tab-promoted-attributes": "切换功能区标签:提升属性", + "toggle-ribbon-tab-note-map": "切换功能区标签:笔记地图", + "toggle-ribbon-tab-note-info": "切换功能区标签:笔记信息", + "toggle-ribbon-tab-note-paths": "切换功能区标签:笔记路径", + "toggle-ribbon-tab-similar-notes": "切换功能区标签:相似笔记", + "toggle-right-pane": "切换右侧面板", + "print-active-note": "打印当前笔记", + "export-active-note-as-pdf": "导出当前笔记为 PDF", + "open-note-externally": "在外部打开笔记", + "render-active-note": "渲染当前笔记", + "run-active-note": "运行当前笔记", + "toggle-note-hoisting": "提升笔记", + "unhoist-note": "取消提升笔记", + "reload-frontend-app": "重新加载前端应用", + "open-developer-tools": "打开开发者工具", + "find-in-text": "在文本中查找", + "toggle-left-pane": "切换左侧面板", + "toggle-full-screen": "切换全屏模式" + }, + "share_theme": { + "site-theme": "网站主题", + "search_placeholder": "搜索...", + "image_alt": "文章图片", + "last-updated": "最后更新于 {{- date}}", + "subpages": "子页面:", + "on-this-page": "本页内容", + "expand": "展开" + }, + "hidden_subtree_templates": { + "text-snippet": "文本片段", + "description": "描述", + "list-view": "列表视图", + "grid-view": "网格视图", + "calendar": "日历", + "table": "表格", + "geo-map": "地理地图", + "start-date": "开始日期", + "end-date": "结束日期", + "start-time": "开始时间", + "end-time": "结束时间", + "geolocation": "地理位置", + "built-in-templates": "内置模板", + "board": "看板", + "status": "状态", + "board_note_first": "第一个笔记", + "board_note_second": "第二个笔记", + "board_note_third": "第三个笔记", + "board_status_todo": "待办", + "board_status_progress": "进行中", + "board_status_done": "已完成" + } } diff --git a/apps/server/src/assets/translations/de/server.json b/apps/server/src/assets/translations/de/server.json index ff232e9159..43208c8090 100644 --- a/apps/server/src/assets/translations/de/server.json +++ b/apps/server/src/assets/translations/de/server.json @@ -1,267 +1,277 @@ { - "keyboard_actions": { - "open-jump-to-note-dialog": "Öffne das Dialogfeld \"Zu Notiz springen\"", - "search-in-subtree": "Nach Notizen im Unterbaum der aktuellen Notiz suchen", - "expand-subtree": "Unterbaum der aktuellen Notiz ausklappen", - "collapse-tree": "Gesamten Notizbaum einklappen", - "collapse-subtree": "Unterbaum der aktuellen Notiz einklappen", - "sort-child-notes": "Untergeordnete Notizen sortieren", - "creating-and-moving-notes": "Notizen erstellen und verschieben", - "create-note-into-inbox": "Erstelle eine Notiz im Posteingang (falls definiert) oder in der Tagesnotiz", - "delete-note": "Notiz löschen", - "move-note-up": "Notiz nach oben verschieben", - "move-note-down": "Notiz nach unten verschieben", - "move-note-up-in-hierarchy": "Notiz in der Hierarchie nach oben verschieben", - "move-note-down-in-hierarchy": "Notiz in der Hierarchie nach unten verschieben", - "edit-note-title": "Vom Notiz-Baum zur Notiz-Detailansicht springen und den Titel bearbeiten", - "edit-branch-prefix": "Dialog zum Bearbeiten des Zweigpräfixes anzeigen", - "note-clipboard": "Notiz-Zwischenablage", - "copy-notes-to-clipboard": "Ausgewählte Notizen in die Zwischenablage kopieren", - "paste-notes-from-clipboard": "Notizen aus der Zwischenablage in die aktive Notiz einfügen", - "cut-notes-to-clipboard": "Ausgewählte Notizen in die Zwischenablage ausschneiden", - "select-all-notes-in-parent": "Alle Notizen der aktuellen Notizenebene auswählen", - "add-note-above-to-the-selection": "Notiz oberhalb der Auswahl hinzufügen", - "add-note-below-to-selection": "Notiz unterhalb der Auswahl hinzufügen", - "duplicate-subtree": "Unterbaum duplizieren", - "tabs-and-windows": "Tabs & Fenster", - "open-new-tab": "Neuen Tab öffnen", - "close-active-tab": "Aktiven Tab schließen", - "reopen-last-tab": "Zuletzt geschlossenen Tab wieder öffnen", - "activate-next-tab": "Rechten Tab aktivieren", - "activate-previous-tab": "Linken Tab aktivieren", - "open-new-window": "Neues leeres Fenster öffnen", - "toggle-tray": "Anwendung im Systemtray anzeigen/verstecken", - "first-tab": "Ersten Tab in der Liste aktivieren", - "second-tab": " Zweiten Tab in der Liste aktivieren", - "third-tab": "Dritten Tab in der Liste aktivieren", - "fourth-tab": "Vierten Tab in der Liste aktivieren", - "fifth-tab": "Fünften Tab in der Liste aktivieren", - "sixth-tab": "Sechsten Tab in der Liste aktivieren", - "seventh-tab": "Siebten Tab in der Liste aktivieren", - "eight-tab": "Achten Tab in der Liste aktivieren", - "ninth-tab": "Neunten Tab in der Liste aktivieren", - "last-tab": "Letzten Tab in der Liste aktivieren", - "dialogs": "Dialoge", - "show-note-source": "Notizquellen-Dialog anzeigen", - "show-options": "Optionen-Dialog anzeigen", - "show-revisions": "Notizrevisionen-Dialog anzeigen", - "show-recent-changes": "Letzte Änderungen-Dialog anzeigen", - "show-sql-console": "SQL-Konsole-Dialog anzeigen", - "show-backend-log": "Backend-Logs-Dialog anzeigen", - "text-note-operations": "Textnotiz-Operationen", - "add-link-to-text": "Dialogfeld zum Hinzufügen eines Links zum Text öffnen", - "follow-link-under-cursor": "Folge dem Link, unter dem Mauszeiger", - "insert-date-and-time-to-text": "Aktuelles Datum & Uhrzeit in den Text einfügen", - "paste-markdown-into-text": "Markdown aus der Zwischenablage in die Textnotiz einfügen", - "cut-into-note": "Auswahl aus der aktuellen Notiz ausschneiden und eine Unternotiz mit dem ausgewählten Text erstellen", - "add-include-note-to-text": "Notiz-Einfügen-Dialog öffnen", - "edit-readonly-note": "Schreibgeschützte Notiz bearbeiten", - "attributes-labels-and-relations": "Attribute (Labels & Verknüpfungen)", - "add-new-label": "Neues Label erstellen", - "create-new-relation": "Neue Verknüpfungen", - "ribbon-tabs": "Ribbon-Tabs", - "toggle-basic-properties": "Grundattribute umschalten", - "toggle-file-properties": "Dateiattribute umschalten", - "toggle-image-properties": "Bildattribute umschalten", - "toggle-owned-attributes": "Eigene Attribute umschalten", - "toggle-inherited-attributes": "Vererbte Attribute umschalten", - "toggle-promoted-attributes": "Beworbene Attribute umschalten", - "toggle-link-map": "Link-Karte umschalten", - "toggle-note-info": "Notizinformationen umschalten", - "toggle-note-paths": "Notizpfade umschalten", - "toggle-similar-notes": "Ähnliche Notizen umschalten", - "other": "Sonstige", - "toggle-right-pane": "Anzeige der rechten Leiste umschalten, das Inhaltsverzeichnis und Markierungen enthält", - "print-active-note": "Aktive Notiz drucken", - "open-note-externally": "Notiz als Datei mit Standardanwendung öffnen", - "render-active-note": "Aktive Notiz rendern (erneut rendern)", - "run-active-note": "Aktive JavaScript(Frontend/Backend)-Codenotiz ausführen", - "toggle-note-hoisting": "Notiz-Fokus der aktiven Notiz umschalten", - "unhoist": "Notiz-Fokus aufheben", - "reload-frontend-app": "Frontend-App neuladen", - "open-dev-tools": "Entwicklertools öffnen", - "toggle-left-note-tree-panel": "Linke Notizbaum-Leiste umschalten", - "toggle-full-screen": "Vollbildmodus umschalten", - "zoom-out": "Herauszoomen", - "zoom-in": "Hineinzoomen", - "note-navigation": "Notiznavigation", - "reset-zoom-level": "Zoomlevel zurücksetzen", - "copy-without-formatting": "Ausgewählten Text ohne Formatierung kopieren", - "force-save-revision": "Erstellen / Speichern einer neuen Notizrevision der aktiven Notiz erzwingen", - "show-help": "Eingebaute Hilfe / Cheat-Sheet anzeigen", - "toggle-book-properties": "Buch-Eigenschaften umschalten" - }, - "login": { - "title": "Anmeldung", - "heading": "Trilium Anmeldung", - "incorrect-password": "Das Passwort ist falsch. Bitte versuche es erneut.", - "password": "Passwort", - "remember-me": "Angemeldet bleiben", - "button": "Anmelden" - }, - "set_password": { - "title": "Passwort festlegen", - "heading": "Passwort festlegen", - "description": "Bevor du Trilium im Web verwenden kannst, musst du zuerst ein Passwort festlegen. Du wirst dieses Passwort dann zur Anmeldung verwenden.", - "password": "Passwort", - "password-confirmation": "Passwortbestätigung", - "button": "Passwort festlegen" - }, - "javascript-required": "Trilium erfordert, dass JavaScript aktiviert ist.", - "setup": { - "heading": "Trilium Notes Setup", - "new-document": "Ich bin ein neuer Benutzer und möchte ein neues Trilium-Dokument für meine Notizen erstellen", - "sync-from-desktop": "Ich habe bereits eine Desktop-Instanz und möchte die Synchronisierung damit einrichten", - "sync-from-server": "Ich habe bereits eine Server-Instanz und möchte die Synchronisierung damit einrichten", - "next": "Weiter", - "init-in-progress": "Dokumenteninitialisierung läuft", - "redirecting": "Du wirst in Kürze zur Anwendung weitergeleitet.", - "title": "Setup" - }, - "setup_sync-from-desktop": { - "heading": "Synchronisation vom Desktop", - "description": "Dieses Setup muss von der Desktop-Instanz aus initiiert werden:", - "step1": "Öffne deine Trilium Notes Desktop-Instanz.", - "step2": "Klicke im Trilium-Menü auf Optionen.", - "step3": "Klicke auf die Kategorie Synchronisation.", - "step4": "Ändere die Server-Instanzadresse auf: {{- host}} und klicke auf Speichern.", - "step5": "Klicke auf den Button \"Test-Synchronisation\", um zu überprüfen, ob die Verbindung erfolgreich ist.", - "step6": "Sobald du diese Schritte abgeschlossen hast, klicke auf {{- link}}.", - "step6-here": "hier" - }, - "setup_sync-from-server": { - "heading": "Synchronisation vom Server", - "instructions": "Bitte gib unten die Trilium-Server-Adresse und die Zugangsdaten ein. Dies wird das gesamte Trilium-Dokument vom Server herunterladen und die Synchronisation einrichten. Je nach Dokumentgröße und Verbindungsgeschwindigkeit kann dies eine Weile dauern.", - "server-host": "Trilium Server-Adresse", - "server-host-placeholder": "https://:", - "proxy-server": "Proxy-Server (optional)", - "proxy-server-placeholder": "https://:", - "note": "Hinweis:", - "proxy-instruction": "Wenn du die Proxy-Einstellung leer lässt, wird der System-Proxy verwendet (gilt nur für die Desktop-Anwendung)", - "password": "Passwort", - "password-placeholder": "Passwort", - "back": "Zurück", - "finish-setup": "Setup abschließen" - }, - "setup_sync-in-progress": { - "heading": "Synchronisation läuft", - "successful": "Die Synchronisation wurde erfolgreich eingerichtet. Es wird eine Weile dauern, bis die erste Synchronisation abgeschlossen ist. Sobald dies erledigt ist, wirst du zur Anmeldeseite weitergeleitet.", - "outstanding-items": "Ausstehende Synchronisationselemente:", - "outstanding-items-default": "N/A" - }, - "share_404": { - "title": "Nicht gefunden", - "heading": "Nicht gefunden" - }, - "share_page": { - "parent": "Übergeordnete Notiz:", - "clipped-from": "Diese Notiz wurde ursprünglich von {{- url}} ausgeschnitten", - "child-notes": "Untergeordnete Notizen:", - "no-content": "Diese Notiz hat keinen Inhalt." - }, - "weekdays": { - "monday": "Montag", - "tuesday": "Dienstag", - "wednesday": "Mittwoch", - "thursday": "Donnerstag", - "friday": "Freitag", - "saturday": "Samstag", - "sunday": "Sonntag" - }, - "months": { - "january": "Januar", - "february": "Februar", - "march": "März", - "april": "April", - "may": "Mai", - "june": "Juni", - "july": "Juli", - "august": "August", - "september": "September", - "october": "Oktober", - "november": "November", - "december": "Dezember" - }, - "special_notes": { - "search_prefix": "Suche:" - }, - "test_sync": { - "not-configured": "Der Synchronisations-Server-Host ist nicht konfiguriert. Bitte konfiguriere zuerst die Synchronisation.", - "successful": "Die Server-Verbindung wurde erfolgreich hergestellt, die Synchronisation wurde gestartet." - }, - "hidden-subtree": { - "root-title": "Versteckte Notizen", - "search-history-title": "Suchverlauf", - "note-map-title": "Notiz Karte", - "sql-console-history-title": "SQL Konsolen Verlauf", - "shared-notes-title": "Geteilte Notizen", - "bulk-action-title": "Massenverarbeitung", - "backend-log-title": "Backend Log", - "user-hidden-title": "Versteckt vom Nutzer", - "launch-bar-templates-title": "Startleiste Vorlagen", - "base-abstract-launcher-title": "Basis Abstrakte Startleiste", - "command-launcher-title": "Befehlslauncher", - "note-launcher-title": "Notiz Launcher", - "script-launcher-title": "Script Launcher", - "built-in-widget-title": "Eingebautes Widget", - "spacer-title": "Freifeld", - "custom-widget-title": "Custom Widget", - "launch-bar-title": "Launchbar", - "available-launchers-title": "Verfügbare Launchers", - "go-to-previous-note-title": "Zur vorherigen Notiz gehen", - "go-to-next-note-title": "Zur nächsten Notiz gehen", - "new-note-title": "Neue Notiz", - "search-notes-title": "Notizen durchsuchen", - "jump-to-note-title": "Zur Notiz springen", - "calendar-title": "Kalender", - "recent-changes-title": "neue Änderungen", - "bookmarks-title": "Lesezeichen", - "open-today-journal-note-title": "Heutigen Journaleintrag öffnen", - "quick-search-title": "Schnellsuche", - "protected-session-title": "Geschützte Sitzung", - "sync-status-title": "Sync Status", - "settings-title": "Einstellungen", - "options-title": "Optionen", - "appearance-title": "Erscheinungsbild", - "shortcuts-title": "Tastaturkürzel", - "text-notes": "Text Notizen", - "code-notes-title": "Code Notizen", - "images-title": "Bilder", - "spellcheck-title": "Rechtschreibprüfung", - "password-title": "Passwort", - "etapi-title": "ETAPI", - "backup-title": "Sicherung", - "sync-title": "Sync", - "other": "Weitere", - "advanced-title": "Erweitert", - "visible-launchers-title": "Sichtbare Launcher", - "user-guide": "Nutzerhandbuch" - }, - "notes": { - "new-note": "Neue Notiz", - "duplicate-note-suffix": "(dup)", - "duplicate-note-title": "{{- noteTitle }} {{ duplicateNoteSuffix }}" - }, - "backend_log": { - "log-does-not-exist": "Die Backend-Log-Datei '{{ fileName }}' existiert (noch) nicht.", - "reading-log-failed": "Das Lesen der Backend-Log-Datei '{{ fileName }}' ist fehlgeschlagen." - }, - "content_renderer": { - "note-cannot-be-displayed": "Dieser Notiztyp kann nicht angezeigt werden." - }, - "pdf": { - "export_filter": "PDF Dokument (*.pdf)", - "unable-to-export-message": "Die aktuelle Notiz konnte nicht als PDF exportiert werden.", - "unable-to-export-title": "Export als PDF fehlgeschlagen", - "unable-to-save-message": "Die ausgewählte Datei konnte nicht beschrieben werden. Erneut versuchen oder ein anderes Ziel auswählen." - }, - "tray": { - "tooltip": "Trilium Notes", - "close": "Trilium schließen", - "recents": "Kürzliche Notizen", - "bookmarks": "Lesezeichen", - "today": "Heutigen Journal Eintrag öffnen", - "new-note": "Neue Notiz", - "show-windows": "Fenster anzeigen" - } + "keyboard_actions": { + "open-jump-to-note-dialog": "Öffne das Dialogfeld \"Zu Notiz springen\"", + "search-in-subtree": "Nach Notizen im Unterbaum der aktuellen Notiz suchen", + "expand-subtree": "Unterbaum der aktuellen Notiz ausklappen", + "collapse-tree": "Gesamten Notizbaum einklappen", + "collapse-subtree": "Unterbaum der aktuellen Notiz einklappen", + "sort-child-notes": "Untergeordnete Notizen sortieren", + "creating-and-moving-notes": "Notizen erstellen und verschieben", + "create-note-into-inbox": "Erstelle eine Notiz im Posteingang (falls definiert) oder in der Tagesnotiz", + "delete-note": "Notiz löschen", + "move-note-up": "Notiz nach oben verschieben", + "move-note-down": "Notiz nach unten verschieben", + "move-note-up-in-hierarchy": "Notiz in der Hierarchie nach oben verschieben", + "move-note-down-in-hierarchy": "Notiz in der Hierarchie nach unten verschieben", + "edit-note-title": "Vom Notiz-Baum zur Notiz-Detailansicht springen und den Titel bearbeiten", + "edit-branch-prefix": "Dialog zum Bearbeiten des Zweigpräfixes anzeigen", + "note-clipboard": "Notiz-Zwischenablage", + "copy-notes-to-clipboard": "Ausgewählte Notizen in die Zwischenablage kopieren", + "paste-notes-from-clipboard": "Notizen aus der Zwischenablage in die aktive Notiz einfügen", + "cut-notes-to-clipboard": "Ausgewählte Notizen in die Zwischenablage ausschneiden", + "select-all-notes-in-parent": "Alle Notizen der aktuellen Notizenebene auswählen", + "add-note-above-to-the-selection": "Notiz oberhalb der Auswahl hinzufügen", + "add-note-below-to-selection": "Notiz unterhalb der Auswahl hinzufügen", + "duplicate-subtree": "Unterbaum duplizieren", + "tabs-and-windows": "Tabs & Fenster", + "open-new-tab": "Neuen Tab öffnen", + "close-active-tab": "Aktiven Tab schließen", + "reopen-last-tab": "Zuletzt geschlossenen Tab wieder öffnen", + "activate-next-tab": "Rechten Tab aktivieren", + "activate-previous-tab": "Linken Tab aktivieren", + "open-new-window": "Neues leeres Fenster öffnen", + "toggle-tray": "Anwendung im Systemtray anzeigen/verstecken", + "first-tab": "Ersten Tab in der Liste aktivieren", + "second-tab": " Zweiten Tab in der Liste aktivieren", + "third-tab": "Dritten Tab in der Liste aktivieren", + "fourth-tab": "Vierten Tab in der Liste aktivieren", + "fifth-tab": "Fünften Tab in der Liste aktivieren", + "sixth-tab": "Sechsten Tab in der Liste aktivieren", + "seventh-tab": "Siebten Tab in der Liste aktivieren", + "eight-tab": "Achten Tab in der Liste aktivieren", + "ninth-tab": "Neunten Tab in der Liste aktivieren", + "last-tab": "Letzten Tab in der Liste aktivieren", + "dialogs": "Dialoge", + "show-note-source": "Notizquellen-Dialog anzeigen", + "show-options": "Optionen-Dialog anzeigen", + "show-revisions": "Notizrevisionen-Dialog anzeigen", + "show-recent-changes": "Letzte Änderungen-Dialog anzeigen", + "show-sql-console": "SQL-Konsole-Dialog anzeigen", + "show-backend-log": "Backend-Logs-Dialog anzeigen", + "text-note-operations": "Textnotiz-Operationen", + "add-link-to-text": "Dialogfeld zum Hinzufügen eines Links zum Text öffnen", + "follow-link-under-cursor": "Folge dem Link, unter dem Mauszeiger", + "insert-date-and-time-to-text": "Aktuelles Datum & Uhrzeit in den Text einfügen", + "paste-markdown-into-text": "Markdown aus der Zwischenablage in die Textnotiz einfügen", + "cut-into-note": "Auswahl aus der aktuellen Notiz ausschneiden und eine Unternotiz mit dem ausgewählten Text erstellen", + "add-include-note-to-text": "Notiz-Einfügen-Dialog öffnen", + "edit-readonly-note": "Schreibgeschützte Notiz bearbeiten", + "attributes-labels-and-relations": "Attribute (Labels & Verknüpfungen)", + "add-new-label": "Neues Label erstellen", + "create-new-relation": "Neue Verknüpfungen", + "ribbon-tabs": "Ribbon-Tabs", + "toggle-basic-properties": "Grundattribute umschalten", + "toggle-file-properties": "Dateiattribute umschalten", + "toggle-image-properties": "Bildattribute umschalten", + "toggle-owned-attributes": "Eigene Attribute umschalten", + "toggle-inherited-attributes": "Vererbte Attribute umschalten", + "toggle-promoted-attributes": "Beworbene Attribute umschalten", + "toggle-link-map": "Link-Karte umschalten", + "toggle-note-info": "Notizinformationen umschalten", + "toggle-note-paths": "Notizpfade umschalten", + "toggle-similar-notes": "Ähnliche Notizen umschalten", + "other": "Sonstige", + "toggle-right-pane": "Anzeige der rechten Leiste umschalten, das Inhaltsverzeichnis und Markierungen enthält", + "print-active-note": "Aktive Notiz drucken", + "open-note-externally": "Notiz als Datei mit Standardanwendung öffnen", + "render-active-note": "Aktive Notiz rendern (erneut rendern)", + "run-active-note": "Aktive JavaScript(Frontend/Backend)-Codenotiz ausführen", + "toggle-note-hoisting": "Notiz-Fokus der aktiven Notiz umschalten", + "unhoist": "Notiz-Fokus aufheben", + "reload-frontend-app": "Frontend-App neuladen", + "open-dev-tools": "Entwicklertools öffnen", + "toggle-left-note-tree-panel": "Linke Notizbaum-Leiste umschalten", + "toggle-full-screen": "Vollbildmodus umschalten", + "zoom-out": "Herauszoomen", + "zoom-in": "Hineinzoomen", + "note-navigation": "Notiznavigation", + "reset-zoom-level": "Zoomlevel zurücksetzen", + "copy-without-formatting": "Ausgewählten Text ohne Formatierung kopieren", + "force-save-revision": "Erstellen / Speichern einer neuen Notizrevision der aktiven Notiz erzwingen", + "show-help": "Eingebaute Hilfe / Cheat-Sheet anzeigen", + "toggle-book-properties": "Buch-Eigenschaften umschalten", + "clone-notes-to": "Ausgewählte Notizen duplizieren", + "open-command-palette": "Kommandopalette öffnen", + "export-as-pdf": "Aktuelle Notiz als PDF exportieren" + }, + "login": { + "title": "Anmeldung", + "heading": "Trilium Anmeldung", + "incorrect-password": "Das Passwort ist falsch. Bitte versuche es erneut.", + "password": "Passwort", + "remember-me": "Angemeldet bleiben", + "button": "Anmelden" + }, + "set_password": { + "title": "Passwort festlegen", + "heading": "Passwort festlegen", + "description": "Bevor du Trilium im Web verwenden kannst, musst du zuerst ein Passwort festlegen. Du wirst dieses Passwort dann zur Anmeldung verwenden.", + "password": "Passwort", + "password-confirmation": "Passwortbestätigung", + "button": "Passwort festlegen" + }, + "javascript-required": "Trilium erfordert, dass JavaScript aktiviert ist.", + "setup": { + "heading": "Trilium Notes Setup", + "new-document": "Ich bin ein neuer Benutzer und möchte ein neues Trilium-Dokument für meine Notizen erstellen", + "sync-from-desktop": "Ich habe bereits eine Desktop-Instanz und möchte die Synchronisierung damit einrichten", + "sync-from-server": "Ich habe bereits eine Server-Instanz und möchte die Synchronisierung damit einrichten", + "next": "Weiter", + "init-in-progress": "Dokumenteninitialisierung läuft", + "redirecting": "Du wirst in Kürze zur Anwendung weitergeleitet.", + "title": "Setup" + }, + "setup_sync-from-desktop": { + "heading": "Synchronisation vom Desktop", + "description": "Dieses Setup muss von der Desktop-Instanz aus initiiert werden:", + "step1": "Öffne deine Trilium Notes Desktop-Instanz.", + "step2": "Klicke im Trilium-Menü auf Optionen.", + "step3": "Klicke auf die Kategorie Synchronisation.", + "step4": "Ändere die Server-Instanzadresse auf: {{- host}} und klicke auf Speichern.", + "step5": "Klicke auf den Button \"Test-Synchronisation\", um zu überprüfen, ob die Verbindung erfolgreich ist.", + "step6": "Sobald du diese Schritte abgeschlossen hast, klicke auf {{- link}}.", + "step6-here": "hier" + }, + "setup_sync-from-server": { + "heading": "Synchronisation vom Server", + "instructions": "Bitte gib unten die Trilium-Server-Adresse und die Zugangsdaten ein. Dies wird das gesamte Trilium-Dokument vom Server herunterladen und die Synchronisation einrichten. Je nach Dokumentgröße und Verbindungsgeschwindigkeit kann dies eine Weile dauern.", + "server-host": "Trilium Server-Adresse", + "server-host-placeholder": "https://:", + "proxy-server": "Proxy-Server (optional)", + "proxy-server-placeholder": "https://:", + "note": "Hinweis:", + "proxy-instruction": "Wenn du die Proxy-Einstellung leer lässt, wird der System-Proxy verwendet (gilt nur für die Desktop-Anwendung)", + "password": "Passwort", + "password-placeholder": "Passwort", + "back": "Zurück", + "finish-setup": "Setup abschließen" + }, + "setup_sync-in-progress": { + "heading": "Synchronisation läuft", + "successful": "Die Synchronisation wurde erfolgreich eingerichtet. Es wird eine Weile dauern, bis die erste Synchronisation abgeschlossen ist. Sobald dies erledigt ist, wirst du zur Anmeldeseite weitergeleitet.", + "outstanding-items": "Ausstehende Synchronisationselemente:", + "outstanding-items-default": "N/A" + }, + "share_404": { + "title": "Nicht gefunden", + "heading": "Nicht gefunden" + }, + "share_page": { + "parent": "Übergeordnete Notiz:", + "clipped-from": "Diese Notiz wurde ursprünglich von {{- url}} ausgeschnitten", + "child-notes": "Untergeordnete Notizen:", + "no-content": "Diese Notiz hat keinen Inhalt." + }, + "weekdays": { + "monday": "Montag", + "tuesday": "Dienstag", + "wednesday": "Mittwoch", + "thursday": "Donnerstag", + "friday": "Freitag", + "saturday": "Samstag", + "sunday": "Sonntag" + }, + "months": { + "january": "Januar", + "february": "Februar", + "march": "März", + "april": "April", + "may": "Mai", + "june": "Juni", + "july": "Juli", + "august": "August", + "september": "September", + "october": "Oktober", + "november": "November", + "december": "Dezember" + }, + "special_notes": { + "search_prefix": "Suche:" + }, + "test_sync": { + "not-configured": "Der Synchronisations-Server-Host ist nicht konfiguriert. Bitte konfiguriere zuerst die Synchronisation.", + "successful": "Die Server-Verbindung wurde erfolgreich hergestellt, die Synchronisation wurde gestartet." + }, + "hidden-subtree": { + "root-title": "Versteckte Notizen", + "search-history-title": "Suchverlauf", + "note-map-title": "Notiz Karte", + "sql-console-history-title": "SQL Konsolen Verlauf", + "shared-notes-title": "Geteilte Notizen", + "bulk-action-title": "Massenverarbeitung", + "backend-log-title": "Backend Log", + "user-hidden-title": "Versteckt vom Nutzer", + "launch-bar-templates-title": "Startleiste Vorlagen", + "base-abstract-launcher-title": "Basis Abstrakte Startleiste", + "command-launcher-title": "Befehlslauncher", + "note-launcher-title": "Notiz Launcher", + "script-launcher-title": "Script Launcher", + "built-in-widget-title": "Eingebautes Widget", + "spacer-title": "Freifeld", + "custom-widget-title": "Custom Widget", + "launch-bar-title": "Launchbar", + "available-launchers-title": "Verfügbare Launchers", + "go-to-previous-note-title": "Zur vorherigen Notiz gehen", + "go-to-next-note-title": "Zur nächsten Notiz gehen", + "new-note-title": "Neue Notiz", + "search-notes-title": "Notizen durchsuchen", + "calendar-title": "Kalender", + "recent-changes-title": "neue Änderungen", + "bookmarks-title": "Lesezeichen", + "open-today-journal-note-title": "Heutigen Journaleintrag öffnen", + "quick-search-title": "Schnellsuche", + "protected-session-title": "Geschützte Sitzung", + "sync-status-title": "Sync Status", + "settings-title": "Einstellungen", + "options-title": "Optionen", + "appearance-title": "Erscheinungsbild", + "shortcuts-title": "Tastaturkürzel", + "text-notes": "Text Notizen", + "code-notes-title": "Code Notizen", + "images-title": "Bilder", + "spellcheck-title": "Rechtschreibprüfung", + "password-title": "Passwort", + "etapi-title": "ETAPI", + "backup-title": "Sicherung", + "sync-title": "Sync", + "other": "Weitere", + "advanced-title": "Erweitert", + "visible-launchers-title": "Sichtbare Launcher", + "user-guide": "Nutzerhandbuch" + }, + "notes": { + "new-note": "Neue Notiz", + "duplicate-note-suffix": "(dup)", + "duplicate-note-title": "{{- noteTitle }} {{ duplicateNoteSuffix }}" + }, + "backend_log": { + "log-does-not-exist": "Die Backend-Log-Datei '{{ fileName }}' existiert (noch) nicht.", + "reading-log-failed": "Das Lesen der Backend-Log-Datei '{{ fileName }}' ist fehlgeschlagen." + }, + "content_renderer": { + "note-cannot-be-displayed": "Dieser Notiztyp kann nicht angezeigt werden." + }, + "pdf": { + "export_filter": "PDF Dokument (*.pdf)", + "unable-to-export-message": "Die aktuelle Notiz konnte nicht als PDF exportiert werden.", + "unable-to-export-title": "Export als PDF fehlgeschlagen", + "unable-to-save-message": "Die ausgewählte Datei konnte nicht beschrieben werden. Erneut versuchen oder ein anderes Ziel auswählen." + }, + "tray": { + "tooltip": "Trilium Notes", + "close": "Trilium schließen", + "recents": "Kürzliche Notizen", + "bookmarks": "Lesezeichen", + "today": "Heutigen Journal Eintrag öffnen", + "new-note": "Neue Notiz", + "show-windows": "Fenster anzeigen" + }, + "hidden_subtree_templates": { + "table": "Tabelle", + "board_status_done": "Erledigt" + }, + "keyboard_action_names": { + "copy-notes-to-clipboard": "Notizen in Zwischenablage kopieren", + "paste-notes-from-clipboard": "Notizen aus Zwischenablage einfügen" + } } diff --git a/apps/server/src/assets/translations/el/server.json b/apps/server/src/assets/translations/el/server.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/apps/server/src/assets/translations/el/server.json @@ -0,0 +1 @@ +{} diff --git a/apps/server/src/assets/translations/en/server.json b/apps/server/src/assets/translations/en/server.json index 7b5633c627..5837c73214 100644 --- a/apps/server/src/assets/translations/en/server.json +++ b/apps/server/src/assets/translations/en/server.json @@ -3,6 +3,7 @@ "back-in-note-history": "Navigate to previous note in history", "forward-in-note-history": "Navigate to next note in history", "open-jump-to-note-dialog": "Open \"Jump to note\" dialog", + "open-command-palette": "Open command palette", "scroll-to-active-note": "Scroll note tree to active note", "quick-search": "Activate quick search bar", "search-in-subtree": "Search for notes in the active note's subtree", @@ -21,8 +22,8 @@ "move-note-down-in-hierarchy": "Move note down in hierarchy", "edit-note-title": "Jump from tree to the note detail and edit title", "edit-branch-prefix": "Show \"Edit branch prefix\" dialog", - "cloneNotesTo": "Clone selected notes", - "moveNotesTo": "Move selected notes", + "clone-notes-to": "Clone selected notes", + "move-notes-to": "Move selected notes", "note-clipboard": "Note clipboard", "copy-notes-to-clipboard": "Copy selected notes to the clipboard", "paste-notes-from-clipboard": "Paste notes from the clipboard into active note", @@ -99,11 +100,108 @@ "reset-zoom-level": "Reset zoom level", "copy-without-formatting": "Copy selected text without formatting", "force-save-revision": "Force creating / saving new note revision of the active note", - "toggle-book-properties": "Toggle Book Properties", + "toggle-book-properties": "Toggle Collection Properties", "toggle-classic-editor-toolbar": "Toggle the Formatting tab for the editor with fixed toolbar", "export-as-pdf": "Export the current note as a PDF", "toggle-zen-mode": "Enables/disables the zen mode (minimal UI for more focused editing)" }, + "keyboard_action_names": { + "back-in-note-history": "Back in Note History", + "forward-in-note-history": "Forward in Note History", + "jump-to-note": "Jump to...", + "command-palette": "Command Palette", + "scroll-to-active-note": "Scroll to Active Note", + "quick-search": "Quick Search", + "search-in-subtree": "Search in Subtree", + "expand-subtree": "Expand Subtree", + "collapse-tree": "Collapse Tree", + "collapse-subtree": "Collapse Subtree", + "sort-child-notes": "Sort Child Notes", + "create-note-after": "Create Note After", + "create-note-into": "Create Note Into", + "create-note-into-inbox": "Create Note Into Inbox", + "delete-notes": "Delete Notes", + "move-note-up": "Move Note Up", + "move-note-down": "Move Note Down", + "move-note-up-in-hierarchy": "Move Note Up in Hierarchy", + "move-note-down-in-hierarchy": "Move Note Down in Hierarchy", + "edit-note-title": "Edit Note Title", + "edit-branch-prefix": "Edit Branch Prefix", + "clone-notes-to": "Clone Notes To", + "move-notes-to": "Move Notes To", + "copy-notes-to-clipboard": "Copy Notes to Clipboard", + "paste-notes-from-clipboard": "Paste Notes from Clipboard", + "cut-notes-to-clipboard": "Cut Notes to Clipboard", + "select-all-notes-in-parent": "Select All Notes in Parent", + "add-note-above-to-selection": "Add Note Above to Selection", + "add-note-below-to-selection": "Add Note Below to Selection", + "duplicate-subtree": "Duplicate Subtree", + "open-new-tab": "Open New Tab", + "close-active-tab": "Close Active Tab", + "reopen-last-tab": "Reopen Last Tab", + "activate-next-tab": "Activate Next Tab", + "activate-previous-tab": "Activate Previous Tab", + "open-new-window": "Open New Window", + "toggle-system-tray-icon": "Toggle System Tray Icon", + "toggle-zen-mode": "Toggle Zen Mode", + "switch-to-first-tab": "Switch to First Tab", + "switch-to-second-tab": "Switch to Second Tab", + "switch-to-third-tab": "Switch to Third Tab", + "switch-to-fourth-tab": "Switch to Fourth Tab", + "switch-to-fifth-tab": "Switch to Fifth Tab", + "switch-to-sixth-tab": "Switch to Sixth Tab", + "switch-to-seventh-tab": "Switch to Seventh Tab", + "switch-to-eighth-tab": "Switch to Eighth Tab", + "switch-to-ninth-tab": "Switch to Ninth Tab", + "switch-to-last-tab": "Switch to Last Tab", + "show-note-source": "Show Note Source", + "show-options": "Show Options", + "show-revisions": "Show Revisions", + "show-recent-changes": "Show Recent Changes", + "show-sql-console": "Show SQL Console", + "show-backend-log": "Show Backend Log", + "show-help": "Show Help", + "show-cheatsheet": "Show Cheatsheet", + "add-link-to-text": "Add Link to Text", + "follow-link-under-cursor": "Follow Link Under Cursor", + "insert-date-and-time-to-text": "Insert Date and Time to Text", + "paste-markdown-into-text": "Paste Markdown into Text", + "cut-into-note": "Cut into Note", + "add-include-note-to-text": "Add Include Note to Text", + "edit-read-only-note": "Edit Read-Only Note", + "add-new-label": "Add New Label", + "add-new-relation": "Add New Relation", + "toggle-ribbon-tab-classic-editor": "Toggle Ribbon Tab Classic Editor", + "toggle-ribbon-tab-basic-properties": "Toggle Ribbon Tab Basic Properties", + "toggle-ribbon-tab-book-properties": "Toggle Ribbon Tab Book Properties", + "toggle-ribbon-tab-file-properties": "Toggle Ribbon Tab File Properties", + "toggle-ribbon-tab-image-properties": "Toggle Ribbon Tab Image Properties", + "toggle-ribbon-tab-owned-attributes": "Toggle Ribbon Tab Owned Attributes", + "toggle-ribbon-tab-inherited-attributes": "Toggle Ribbon Tab Inherited Attributes", + "toggle-ribbon-tab-promoted-attributes": "Toggle Ribbon Tab Promoted Attributes", + "toggle-ribbon-tab-note-map": "Toggle Ribbon Tab Note Map", + "toggle-ribbon-tab-note-info": "Toggle Ribbon Tab Note Info", + "toggle-ribbon-tab-note-paths": "Toggle Ribbon Tab Note Paths", + "toggle-ribbon-tab-similar-notes": "Toggle Ribbon Tab Similar Notes", + "toggle-right-pane": "Toggle Right Pane", + "print-active-note": "Print Active Note", + "export-active-note-as-pdf": "Export Active Note as PDF", + "open-note-externally": "Open Note Externally", + "render-active-note": "Render Active Note", + "run-active-note": "Run Active Note", + "toggle-note-hoisting": "Toggle Note Hoisting", + "unhoist-note": "Unhoist Note", + "reload-frontend-app": "Reload Frontend App", + "open-developer-tools": "Open Developer Tools", + "find-in-text": "Find In Text", + "toggle-left-pane": "Toggle Left Pane", + "toggle-full-screen": "Toggle Full Screen", + "zoom-out": "Zoom Out", + "zoom-in": "Zoom In", + "reset-zoom-level": "Reset Zoom Level", + "copy-without-formatting": "Copy Without Formatting", + "force-save-revision": "Force Save Revision" + }, "login": { "title": "Login", "heading": "Trilium Login", @@ -229,7 +327,7 @@ "go-to-next-note-title": "Go to Next Note", "new-note-title": "New Note", "search-notes-title": "Search Notes", - "jump-to-note-title": "Jump to Note", + "jump-to-note-title": "Jump to...", "calendar-title": "Calendar", "recent-changes-title": "Recent Changes", "bookmarks-title": "Bookmarks", @@ -303,5 +401,28 @@ "subpages": "Subpages:", "on-this-page": "On This Page", "expand": "Expand" + }, + "hidden_subtree_templates": { + "text-snippet": "Text Snippet", + "description": "Description", + "list-view": "List View", + "grid-view": "Grid View", + "calendar": "Calendar", + "table": "Table", + "geo-map": "Geo Map", + "start-date": "Start Date", + "end-date": "End Date", + "start-time": "Start Time", + "end-time": "End Time", + "geolocation": "Geolocation", + "built-in-templates": "Built-in templates", + "board": "Board", + "status": "Status", + "board_note_first": "First note", + "board_note_second": "Second note", + "board_note_third": "Third note", + "board_status_todo": "To Do", + "board_status_progress": "In Progress", + "board_status_done": "Done" } } diff --git a/apps/server/src/assets/translations/es/server.json b/apps/server/src/assets/translations/es/server.json index 9c3a3bc719..991e300836 100644 --- a/apps/server/src/assets/translations/es/server.json +++ b/apps/server/src/assets/translations/es/server.json @@ -1,307 +1,430 @@ { - "keyboard_actions": { - "back-in-note-history": "Navegar a la nota previa en el historial", - "forward-in-note-history": "Navegar a la nota siguiente en el historial", - "open-jump-to-note-dialog": "Abrir cuadro de diálogo \"Saltar a nota\"", - "scroll-to-active-note": "Desplazarse a la nota activa en el árbol de notas", - "quick-search": "Activar barra de búisqueda rápida", - "search-in-subtree": "Buscar notas en el subárbol de la nota activa", - "expand-subtree": "Expandir el subárbol de la nota actual", - "collapse-tree": "Colapsa el árbol de notas completo", - "collapse-subtree": "Colapsa el subárbol de la nota actual", - "sort-child-notes": "Ordenar subnotas", - "creating-and-moving-notes": "Creando y moviendo notas", - "create-note-after": "Crear nota después de la nota activa", - "create-note-into": "Crear nota como subnota de la nota activa", - "create-note-into-inbox": "Crear una nota en la bandeja de entrada (si está definida) o nota del día", - "delete-note": "Eliminar nota", - "move-note-up": "Mover nota hacia arriba", - "move-note-down": "Mover nota hacia abajo", - "move-note-up-in-hierarchy": "Mover nota hacia arriba en la jerarquía", - "move-note-down-in-hierarchy": "Mover nota hacia abajo en la jerarquía", - "edit-note-title": "Saltar del árbol al detalle de la nota y editar el título", - "edit-branch-prefix": "Mostrar cuadro de diálogo Editar prefijo de rama", - "cloneNotesTo": "Clonar notas seleccionadas", - "moveNotesTo": "Mover notas seleccionadas", - "note-clipboard": "Portapapeles de notas", - "copy-notes-to-clipboard": "Copiar las notas seleccionadas al portapapeles", - "paste-notes-from-clipboard": "Pegar las notas del portapapeles en una nota activa", - "cut-notes-to-clipboard": "Cortar las notas seleccionadas al portapapeles", - "select-all-notes-in-parent": "Seleccionar todas las notas del nivel de la nota actual", - "add-note-above-to-the-selection": "Agregar nota arriba de la selección", - "add-note-below-to-selection": "Agregar nota arriba de la selección", - "duplicate-subtree": "Duplicar subárbol", - "tabs-and-windows": "Pestañas y ventanas", - "open-new-tab": "Abre una nueva pestaña", - "close-active-tab": "Cierra la pestaña activa", - "reopen-last-tab": "Vuelve a abrir la última pestaña cerrada", - "activate-next-tab": "Activa la pestaña de la derecha", - "activate-previous-tab": "Activa la pestaña de la izquierda", - "open-new-window": "Abrir nueva ventana vacía", - "toggle-tray": "Muestra/Oculta la aplicación en la bandeja del sistema", - "first-tab": "Activa la primera pestaña de la lista", - "second-tab": "Activa la segunda pestaña de la lista", - "third-tab": "Activa la tercera pestaña de la lista", - "fourth-tab": "Activa la cuarta pestaña de la lista", - "fifth-tab": "Activa la quinta pestaña de la lista", - "sixth-tab": "Activa la sexta pestaña de la lista", - "seventh-tab": "Activa la séptima pestaña de la lista", - "eight-tab": "Activa la octava pestaña de la lista", - "ninth-tab": "Activa la novena pestaña de la lista", - "last-tab": "Activa la última pestaña de la lista", - "dialogs": "Diálogos", - "show-note-source": "Muestra el cuadro de diálogo Fuente de nota", - "show-options": "Muestra el cuadro de diálogo Opciones", - "show-revisions": "Muestra el cuadro de diálogo Revisiones de notas", - "show-recent-changes": "Muestra el cuadro de diálogo Cambios recientes", - "show-sql-console": "Muestra el cuadro de diálogo Consola SQL", - "show-backend-log": "Muestra el cuadro de diálogo Registro de backend", - "show-help": "Muestra ayuda/hoja de referencia integrada", - "show-cheatsheet": "Muestra un modal con operaciones de teclado comunes", - "text-note-operations": "Operaciones de notas de texto", - "add-link-to-text": "Abrir cuadro de diálogo para agregar un enlace al texto", - "follow-link-under-cursor": "Seguir el enlace dentro del cual se coloca el cursor", - "insert-date-and-time-to-text": "Insertar fecha y hora actuales en el texto", - "paste-markdown-into-text": "Pega Markdown del portapapeles en la nota de texto", - "cut-into-note": "Corta la selección de la nota actual y crea una subnota con el texto seleccionado", - "add-include-note-to-text": "Abre el cuadro de diálogo para incluir una nota", - "edit-readonly-note": "Editar una nota de sólo lectura", - "attributes-labels-and-relations": "Atributos (etiquetas y relaciones)", - "add-new-label": "Crear nueva etiqueta", - "create-new-relation": "Crear nueva relación", - "ribbon-tabs": "Pestañas de cinta", - "toggle-basic-properties": "Alternar propiedades básicas", - "toggle-file-properties": "Alternar propiedades de archivo", - "toggle-image-properties": "Alternar propiedades de imagen", - "toggle-owned-attributes": "Alternar atributos de propiedad", - "toggle-inherited-attributes": "Alternar atributos heredados", - "toggle-promoted-attributes": "Alternar atributos promocionados", - "toggle-link-map": "Alternar mapa de enlaces", - "toggle-note-info": "Alternar información de nota", - "toggle-note-paths": "Alternar rutas de notas", - "toggle-similar-notes": "Alternar notas similares", - "other": "Otro", - "toggle-right-pane": "Alternar la visualización del panel derecho, que incluye la tabla de contenidos y aspectos destacados", - "print-active-note": "Imprimir nota activa", - "open-note-externally": "Abrir nota como un archivo con la aplicación predeterminada", - "render-active-note": "Renderizar (volver a renderizar) nota activa", - "run-active-note": "Ejecutar nota de código JavaScript activa (frontend/backend)", - "toggle-note-hoisting": "Alterna la elevación de la nota activa", - "unhoist": "Bajar desde cualquier lugar", - "reload-frontend-app": "Recargar frontend de la aplicación", - "open-dev-tools": "Abrir herramientas de desarrollo", - "find-in-text": "Alternar panel de búsqueda", - "toggle-left-note-tree-panel": "Alternar panel izquierdo (árbol de notas)", - "toggle-full-screen": "Alternar pantalla completa", - "zoom-out": "Alejar", - "zoom-in": "Acercar", - "note-navigation": "Navegación de notas", - "reset-zoom-level": "Restablecer nivel de zoom", - "copy-without-formatting": "Copiar el texto seleccionado sin formatear", - "force-save-revision": "Forzar la creación/guardado de una nueva revisión de nota de la nota activa", - "toggle-book-properties": "Alternar propiedades del libro", - "toggle-classic-editor-toolbar": "Alternar la pestaña de formato por el editor con barra de herramientas fija", - "export-as-pdf": "Exporta la nota actual como un PDF", - "toggle-zen-mode": "Habilita/Deshabilita el modo Zen (IU mínima para edición sin distracciones)" - }, - "login": { - "title": "Iniciar sesión", - "heading": "Iniciar sesión en Trilium", - "incorrect-totp": "El TOTP es incorrecto. Por favor, intente de nuevo.", - "incorrect-password": "La contraseña es incorrecta. Por favor inténtalo de nuevo.", - "password": "Contraseña", - "remember-me": "Recordarme", - "button": "Iniciar sesión", - "sign_in_with_sso": "Iniciar sesión con {{ ssoIssuerName }}" - }, - "set_password": { - "title": "Establecer contraseña", - "heading": "Establecer contraseña", - "description": "Antes de poder comenzar a usar Trilium desde la web, primero debe establecer una contraseña. Luego utilizará esta contraseña para iniciar sesión.", - "password": "Contraseña", - "password-confirmation": "Confirmación de contraseña", - "button": "Establecer contraseña" - }, - "javascript-required": "Trilium requiere que JavaScript esté habilitado.", - "setup": { - "heading": "Configuración de Trilium Notes", - "new-document": "Soy un usuario nuevo y quiero crear un nuevo documento de Trilium para mis notas", - "sync-from-desktop": "Ya tengo una instancia de escritorio y quiero configurar la sincronización con ella", - "sync-from-server": "Ya tengo una instancia de servidor y quiero configurar la sincronización con ella", - "next": "Siguiente", - "init-in-progress": "Inicialización del documento en curso", - "redirecting": "En breve será redirigido a la aplicación.", - "title": "Configuración" - }, - "setup_sync-from-desktop": { - "heading": "Sincronizar desde el escritorio", - "description": "Esta configuración debe iniciarse desde la instancia de escritorio:", - "step1": "Abra su instancia de escritorio de Trilium Notes.", - "step2": "En el menú Trilium, dé clic en Opciones.", - "step3": "Dé clic en la categoría Sincronizar.", - "step4": "Cambie la dirección de la instancia del servidor a: {{- host}} y dé clic en Guardar.", - "step5": "Dé clic en el botón \"Probar sincronización\" para verificar que la conexión fue exitosa.", - "step6": "Una vez que haya completado estos pasos, dé clic en {{- link}}.", - "step6-here": "aquí" - }, - "setup_sync-from-server": { - "heading": "Sincronización desde el servidor", - "instructions": "Por favor, ingrese la dirección y las credenciales del servidor Trilium a continuación. Esto descargará todo el documento de Trilium desde el servidor y configurará la sincronización. Dependiendo del tamaño del documento y de la velocidad de su conexión, esto puede tardar un poco.", - "server-host": "Dirección del servidor Trilium", - "server-host-placeholder": "https://:", - "proxy-server": "Servidor proxy (opcional)", - "proxy-server-placeholder": "https://:", - "note": "Nota:", - "proxy-instruction": "Si deja la configuración de proxy en blanco, se utilizará el proxy del sistema (aplica únicamente a la aplicación de escritorio)", - "password": "Contraseña", - "password-placeholder": "Contraseña", - "back": "Atrás", - "finish-setup": "Finalizar la configuración" - }, - "setup_sync-in-progress": { - "heading": "Sincronización en progreso", - "successful": "La sincronización se ha configurado correctamente. La sincronización inicial tardará algún tiempo en finalizar. Una vez hecho esto, será redirigido a la página de inicio de sesión.", - "outstanding-items": "Elementos de sincronización destacados:", - "outstanding-items-default": "N/A" - }, - "share_404": { - "title": "No encontrado", - "heading": "No encontrado" - }, - "share_page": { - "parent": "padre:", - "clipped-from": "Esta nota fue recortada originalmente de {{- url}}", - "child-notes": "Subnotas:", - "no-content": "Esta nota no tiene contenido." - }, - "weekdays": { - "monday": "Lunes", - "tuesday": "Martes", - "wednesday": "Miércoles", - "thursday": "Jueves", - "friday": "Viernes", - "saturday": "Sábado", - "sunday": "Domingo" - }, - "weekdayNumber": "Semana {weekNumber}", - "months": { - "january": "Enero", - "february": "Febrero", - "march": "Marzo", - "april": "Abril", - "may": "Mayo", - "june": "Junio", - "july": "Julio", - "august": "Agosto", - "september": "Septiembre", - "october": "Octubre", - "november": "Noviembre", - "december": "Diciembre" - }, - "quarterNumber": "Cuarto {quarterNumber}", - "special_notes": { - "search_prefix": "Buscar:" - }, - "test_sync": { - "not-configured": "El servidor de sincronización no está configurado. Por favor configure primero la sincronización.", - "successful": "El protocolo de enlace del servidor de sincronización ha sido exitoso, la sincronización ha comenzado." - }, - "hidden-subtree": { - "root-title": "Notas ocultas", - "search-history-title": "Buscar historial", - "note-map-title": "Mapa de nota", - "sql-console-history-title": "Historial de consola SQL", - "shared-notes-title": "Notas compartidas", - "bulk-action-title": "Acción en lote", - "backend-log-title": "Registro de Backend", - "user-hidden-title": "Usuario oculto", - "launch-bar-templates-title": "Plantillas de barra de lanzamiento", - "base-abstract-launcher-title": "Lanzador abstracto base", - "command-launcher-title": "Lanzador de comando", - "note-launcher-title": "Lanzador de nota", - "script-launcher-title": "Lanzador de script", - "built-in-widget-title": "Widget integrado", - "spacer-title": "Espaciador", - "custom-widget-title": "Widget personalizado", - "launch-bar-title": "Barra de lanzamiento", - "available-launchers-title": "Lanzadores disponibles", - "go-to-previous-note-title": "Ir a nota previa", - "go-to-next-note-title": "Ir a nota siguiente", - "new-note-title": "Nueva nota", - "search-notes-title": "Buscar notas", - "jump-to-note-title": "Saltar a nota", - "calendar-title": "Calendario", - "recent-changes-title": "Cambios recientes", - "bookmarks-title": "Marcadores", - "open-today-journal-note-title": "Abrir nota del diario de hoy", - "quick-search-title": "Búsqueda rápida", - "protected-session-title": "Sesión protegida", - "sync-status-title": "Sincronizar estado", - "settings-title": "Ajustes", - "llm-chat-title": "Chat con notas", - "options-title": "Opciones", - "appearance-title": "Apariencia", - "shortcuts-title": "Atajos", - "text-notes": "Notas de texto", - "code-notes-title": "Notas de código", - "images-title": "Imágenes", - "spellcheck-title": "Corrección ortográfica", - "password-title": "Contraseña", - "multi-factor-authentication-title": "MFA", - "etapi-title": "ETAPI", - "backup-title": "Respaldo", - "sync-title": "Sincronizar", - "ai-llm-title": "IA/LLM", - "other": "Otros", - "advanced-title": "Avanzado", - "visible-launchers-title": "Lanzadores visibles", - "user-guide": "Guía de Usuario", - "localization": "Idioma y Región", - "inbox-title": "Bandeja" - }, - "notes": { - "new-note": "Nueva nota", - "duplicate-note-suffix": "(dup)", - "duplicate-note-title": "{{- noteTitle}} {{duplicateNoteSuffix}}" - }, - "backend_log": { - "log-does-not-exist": "El archivo de registro del backend '{{fileName}}' no existe (aún).", - "reading-log-failed": "Leer el archivo de registro del backend '{{fileName}}' falló." - }, - "content_renderer": { - "note-cannot-be-displayed": "Este tipo de nota no puede ser mostrado." - }, - "pdf": { - "export_filter": "Documento PDF (*.pdf)", - "unable-to-export-message": "La nota actual no pudo ser exportada como PDF.", - "unable-to-export-title": "No es posible exportar como PDF", - "unable-to-save-message": "No se pudo escribir en el archivo seleccionado. Intente de nuevo o seleccione otro destino." - }, - "tray": { - "tooltip": "Trilium Notes", - "close": "Cerrar Trilium", - "recents": "Notas recientes", - "bookmarks": "Marcadores", - "today": "Abrir nota del diario de hoy", - "new-note": "Nueva nota", - "show-windows": "Mostrar ventanas", - "open_new_window": "Abrir nueva ventana" - }, - "migration": { - "old_version": "La migración directa desde tu versión actual no está soportada. Por favor actualice a v0.60.4 primero y solo después a esta versión.", - "error_message": "Error durante la migración a la versión {{version}}: {{stack}}", - "wrong_db_version": "La versión de la DB {{version}} es más nueva que la versión de la DB actual {{targetVersion}}, lo que significa que fue creada por una versión más reciente e incompatible de Trilium. Actualice a la última versión de Trilium para resolver este problema." - }, - "modals": { - "error_title": "Error" - }, - "share_theme": { - "site-theme": "Tema de sitio", - "search_placeholder": "Búsqueda...", - "image_alt": "Imagen de artículo", - "last-updated": "Última actualización en {{-date}}", - "subpages": "Subpáginas:", - "on-this-page": "En esta página", - "expand": "Expandir" - } + "keyboard_actions": { + "back-in-note-history": "Navegar a la nota previa en el historial", + "forward-in-note-history": "Navegar a la nota siguiente en el historial", + "open-jump-to-note-dialog": "Abrir cuadro de diálogo \"Saltar a nota\"", + "scroll-to-active-note": "Desplazarse a la nota activa en el árbol de notas", + "quick-search": "Activar barra de búsqueda rápida", + "search-in-subtree": "Buscar notas en el subárbol de la nota activa", + "expand-subtree": "Expandir el subárbol de la nota actual", + "collapse-tree": "Colapsa el árbol de notas completo", + "collapse-subtree": "Colapsa el subárbol de la nota actual", + "sort-child-notes": "Ordenar subnotas", + "creating-and-moving-notes": "Creando y moviendo notas", + "create-note-after": "Crear nota después de la nota activa", + "create-note-into": "Crear nota como subnota de la nota activa", + "create-note-into-inbox": "Crear una nota en la bandeja de entrada (si está definida) o nota del día", + "delete-note": "Eliminar nota", + "move-note-up": "Subir nota", + "move-note-down": "Bajar nota", + "move-note-up-in-hierarchy": "Subir nota en la jerarquía", + "move-note-down-in-hierarchy": "Bajar nota en la jerarquía", + "edit-note-title": "Saltar del árbol al detalle de la nota y editar el título", + "edit-branch-prefix": "Mostrar cuadro de diálogo Editar prefijo de rama", + "cloneNotesTo": "Clonar notas seleccionadas", + "moveNotesTo": "Mover notas seleccionadas", + "note-clipboard": "Portapapeles de notas", + "copy-notes-to-clipboard": "Copiar las notas seleccionadas al portapapeles", + "paste-notes-from-clipboard": "Pegar las notas del portapapeles en una nota activa", + "cut-notes-to-clipboard": "Cortar las notas seleccionadas al portapapeles", + "select-all-notes-in-parent": "Seleccionar todas las notas del nivel de la nota actual", + "add-note-above-to-the-selection": "Agregar nota arriba de la selección", + "add-note-below-to-selection": "Agregar nota arriba de la selección", + "duplicate-subtree": "Duplicar subárbol", + "tabs-and-windows": "Pestañas y ventanas", + "open-new-tab": "Abre una nueva pestaña", + "close-active-tab": "Cierra la pestaña activa", + "reopen-last-tab": "Vuelve a abrir la última pestaña cerrada", + "activate-next-tab": "Activa la pestaña de la derecha", + "activate-previous-tab": "Activa la pestaña de la izquierda", + "open-new-window": "Abrir nueva ventana vacía", + "toggle-tray": "Muestra/Oculta la aplicación en la bandeja del sistema", + "first-tab": "Activa la primera pestaña de la lista", + "second-tab": "Activa la segunda pestaña de la lista", + "third-tab": "Activa la tercera pestaña de la lista", + "fourth-tab": "Activa la cuarta pestaña de la lista", + "fifth-tab": "Activa la quinta pestaña de la lista", + "sixth-tab": "Activa la sexta pestaña de la lista", + "seventh-tab": "Activa la séptima pestaña de la lista", + "eight-tab": "Activa la octava pestaña de la lista", + "ninth-tab": "Activa la novena pestaña de la lista", + "last-tab": "Activa la última pestaña de la lista", + "dialogs": "Diálogos", + "show-note-source": "Muestra el cuadro de diálogo Fuente de nota", + "show-options": "Muestra el cuadro de diálogo Opciones", + "show-revisions": "Muestra el cuadro de diálogo Revisiones de notas", + "show-recent-changes": "Muestra el cuadro de diálogo Cambios recientes", + "show-sql-console": "Muestra el cuadro de diálogo Consola SQL", + "show-backend-log": "Muestra el cuadro de diálogo Registro de backend", + "show-help": "Muestra ayuda/hoja de referencia integrada", + "show-cheatsheet": "Muestra un modal con operaciones de teclado comunes", + "text-note-operations": "Operaciones de notas de texto", + "add-link-to-text": "Abrir cuadro de diálogo para agregar un enlace al texto", + "follow-link-under-cursor": "Seguir el enlace dentro del cual se coloca el cursor", + "insert-date-and-time-to-text": "Insertar fecha y hora actuales en el texto", + "paste-markdown-into-text": "Pega Markdown del portapapeles en la nota de texto", + "cut-into-note": "Corta la selección de la nota actual y crea una subnota con el texto seleccionado", + "add-include-note-to-text": "Abre el cuadro de diálogo para incluir una nota", + "edit-readonly-note": "Editar una nota de sólo lectura", + "attributes-labels-and-relations": "Atributos (etiquetas y relaciones)", + "add-new-label": "Crear nueva etiqueta", + "create-new-relation": "Crear nueva relación", + "ribbon-tabs": "Pestañas de cinta", + "toggle-basic-properties": "Alternar propiedades básicas", + "toggle-file-properties": "Alternar propiedades de archivo", + "toggle-image-properties": "Alternar propiedades de imagen", + "toggle-owned-attributes": "Alternar atributos de propiedad", + "toggle-inherited-attributes": "Alternar atributos heredados", + "toggle-promoted-attributes": "Alternar atributos destacados", + "toggle-link-map": "Alternar mapa de enlaces", + "toggle-note-info": "Alternar información de nota", + "toggle-note-paths": "Alternar rutas de notas", + "toggle-similar-notes": "Alternar notas similares", + "other": "Otro", + "toggle-right-pane": "Alternar la visualización del panel derecho, que incluye la tabla de contenidos y aspectos destacados", + "print-active-note": "Imprimir nota activa", + "open-note-externally": "Abrir nota como un archivo con la aplicación predeterminada", + "render-active-note": "Renderizar (volver a renderizar) nota activa", + "run-active-note": "Ejecutar nota de código JavaScript activa (frontend/backend)", + "toggle-note-hoisting": "Alterna la elevación de la nota activa", + "unhoist": "Bajar desde cualquier lugar", + "reload-frontend-app": "Recargar frontend de la aplicación", + "open-dev-tools": "Abrir herramientas de desarrollo", + "find-in-text": "Alternar panel de búsqueda", + "toggle-left-note-tree-panel": "Alternar panel izquierdo (árbol de notas)", + "toggle-full-screen": "Alternar pantalla completa", + "zoom-out": "Alejar", + "zoom-in": "Acercar", + "note-navigation": "Navegación de notas", + "reset-zoom-level": "Restablecer nivel de zoom", + "copy-without-formatting": "Copiar el texto seleccionado sin formatear", + "force-save-revision": "Forzar la creación/guardado de una nueva revisión de nota de la nota activa", + "toggle-book-properties": "Alternar propiedades del libro", + "toggle-classic-editor-toolbar": "Alternar la pestaña de formato por el editor con barra de herramientas fija", + "export-as-pdf": "Exporta la nota actual como un PDF", + "toggle-zen-mode": "Habilita/Deshabilita el modo Zen (IU mínima para edición sin distracciones)", + "open-command-palette": "Abrir paleta de comandos", + "clone-notes-to": "Clonar notas seleccionadas", + "move-notes-to": "Mover notas seleccionadas" + }, + "login": { + "title": "Iniciar sesión", + "heading": "Iniciar sesión en Trilium", + "incorrect-totp": "El TOTP es incorrecto. Por favor, intente de nuevo.", + "incorrect-password": "La contraseña es incorrecta. Por favor inténtalo de nuevo.", + "password": "Contraseña", + "remember-me": "Recordarme", + "button": "Iniciar sesión", + "sign_in_with_sso": "Iniciar sesión con {{ ssoIssuerName }}" + }, + "set_password": { + "title": "Establecer contraseña", + "heading": "Establecer contraseña", + "description": "Antes de poder comenzar a usar Trilium desde la web, primero debe establecer una contraseña. Luego utilizará esta contraseña para iniciar sesión.", + "password": "Contraseña", + "password-confirmation": "Confirmación de contraseña", + "button": "Establecer contraseña" + }, + "javascript-required": "Trilium requiere que JavaScript esté habilitado.", + "setup": { + "heading": "Configuración de Trilium Notes", + "new-document": "Soy un usuario nuevo y quiero crear un nuevo documento de Trilium para mis notas", + "sync-from-desktop": "Ya tengo una instancia de escritorio y quiero configurar la sincronización con ella", + "sync-from-server": "Ya tengo una instancia de servidor y quiero configurar la sincronización con ella", + "next": "Siguiente", + "init-in-progress": "Inicialización del documento en curso", + "redirecting": "En breve será redirigido a la aplicación.", + "title": "Configuración" + }, + "setup_sync-from-desktop": { + "heading": "Sincronizar desde el escritorio", + "description": "Esta configuración debe iniciarse desde la instancia de escritorio:", + "step1": "Abra su instancia de escritorio de Trilium Notes.", + "step2": "En el menú Trilium, dé clic en Opciones.", + "step3": "Dé clic en la categoría Sincronizar.", + "step4": "Cambie la dirección de la instancia del servidor a: {{- host}} y dé clic en Guardar.", + "step5": "Dé clic en el botón \"Probar sincronización\" para verificar que la conexión fue exitosa.", + "step6": "Una vez que haya completado estos pasos, dé clic en {{- link}}.", + "step6-here": "aquí" + }, + "setup_sync-from-server": { + "heading": "Sincronización desde el servidor", + "instructions": "Por favor, ingrese la dirección y las credenciales del servidor Trilium a continuación. Esto descargará todo el documento de Trilium desde el servidor y configurará la sincronización. Dependiendo del tamaño del documento y de la velocidad de su conexión, esto puede tardar un poco.", + "server-host": "Dirección del servidor Trilium", + "server-host-placeholder": "https://:", + "proxy-server": "Servidor proxy (opcional)", + "proxy-server-placeholder": "https://:", + "note": "Nota:", + "proxy-instruction": "Si deja la configuración de proxy en blanco, se utilizará el proxy del sistema (aplica únicamente a la aplicación de escritorio)", + "password": "Contraseña", + "password-placeholder": "Contraseña", + "back": "Atrás", + "finish-setup": "Finalizar la configuración" + }, + "setup_sync-in-progress": { + "heading": "Sincronización en progreso", + "successful": "La sincronización se ha configurado correctamente. La sincronización inicial tardará algún tiempo en finalizar. Una vez hecho esto, será redirigido a la página de inicio de sesión.", + "outstanding-items": "Elementos de sincronización destacados:", + "outstanding-items-default": "N/A" + }, + "share_404": { + "title": "No encontrado", + "heading": "No encontrado" + }, + "share_page": { + "parent": "padre:", + "clipped-from": "Esta nota fue recortada originalmente de {{- url}}", + "child-notes": "Subnotas:", + "no-content": "Esta nota no tiene contenido." + }, + "weekdays": { + "monday": "Lunes", + "tuesday": "Martes", + "wednesday": "Miércoles", + "thursday": "Jueves", + "friday": "Viernes", + "saturday": "Sábado", + "sunday": "Domingo" + }, + "weekdayNumber": "Semana {weekNumber}", + "months": { + "january": "Enero", + "february": "Febrero", + "march": "Marzo", + "april": "Abril", + "may": "Mayo", + "june": "Junio", + "july": "Julio", + "august": "Agosto", + "september": "Septiembre", + "october": "Octubre", + "november": "Noviembre", + "december": "Diciembre" + }, + "quarterNumber": "Cuarto {quarterNumber}", + "special_notes": { + "search_prefix": "Buscar:" + }, + "test_sync": { + "not-configured": "El servidor de sincronización no está configurado. Por favor configure primero la sincronización.", + "successful": "El protocolo de enlace del servidor de sincronización ha sido exitoso, la sincronización ha comenzado." + }, + "hidden-subtree": { + "root-title": "Notas ocultas", + "search-history-title": "Buscar historial", + "note-map-title": "Mapa de nota", + "sql-console-history-title": "Historial de consola SQL", + "shared-notes-title": "Notas compartidas", + "bulk-action-title": "Acción en lote", + "backend-log-title": "Registro de Backend", + "user-hidden-title": "Usuario oculto", + "launch-bar-templates-title": "Plantillas de barra de lanzamiento", + "base-abstract-launcher-title": "Lanzador abstracto base", + "command-launcher-title": "Lanzador de comando", + "note-launcher-title": "Lanzador de nota", + "script-launcher-title": "Lanzador de script", + "built-in-widget-title": "Widget integrado", + "spacer-title": "Espaciador", + "custom-widget-title": "Widget personalizado", + "launch-bar-title": "Barra de lanzamiento", + "available-launchers-title": "Lanzadores disponibles", + "go-to-previous-note-title": "Ir a nota previa", + "go-to-next-note-title": "Ir a nota siguiente", + "new-note-title": "Nueva nota", + "search-notes-title": "Buscar notas", + "calendar-title": "Calendario", + "recent-changes-title": "Cambios recientes", + "bookmarks-title": "Marcadores", + "open-today-journal-note-title": "Abrir nota del diario de hoy", + "quick-search-title": "Búsqueda rápida", + "protected-session-title": "Sesión protegida", + "sync-status-title": "Sincronizar estado", + "settings-title": "Ajustes", + "llm-chat-title": "Chat con notas", + "options-title": "Opciones", + "appearance-title": "Apariencia", + "shortcuts-title": "Atajos", + "text-notes": "Notas de texto", + "code-notes-title": "Notas de código", + "images-title": "Imágenes", + "spellcheck-title": "Corrección ortográfica", + "password-title": "Contraseña", + "multi-factor-authentication-title": "MFA", + "etapi-title": "ETAPI", + "backup-title": "Respaldo", + "sync-title": "Sincronizar", + "ai-llm-title": "IA/LLM", + "other": "Otros", + "advanced-title": "Avanzado", + "visible-launchers-title": "Lanzadores visibles", + "user-guide": "Guía de Usuario", + "localization": "Idioma y Región", + "inbox-title": "Bandeja", + "jump-to-note-title": "Saltar a..." + }, + "notes": { + "new-note": "Nueva nota", + "duplicate-note-suffix": "(dup)", + "duplicate-note-title": "{{- noteTitle}} {{duplicateNoteSuffix}}" + }, + "backend_log": { + "log-does-not-exist": "El archivo de registro del backend '{{fileName}}' no existe (aún).", + "reading-log-failed": "Leer el archivo de registro del backend '{{fileName}}' falló." + }, + "content_renderer": { + "note-cannot-be-displayed": "Este tipo de nota no puede ser mostrado." + }, + "pdf": { + "export_filter": "Documento PDF (*.pdf)", + "unable-to-export-message": "La nota actual no pudo ser exportada como PDF.", + "unable-to-export-title": "No es posible exportar como PDF", + "unable-to-save-message": "No se pudo escribir en el archivo seleccionado. Intente de nuevo o seleccione otro destino." + }, + "tray": { + "tooltip": "Trilium Notes", + "close": "Cerrar Trilium", + "recents": "Notas recientes", + "bookmarks": "Marcadores", + "today": "Abrir nota del diario de hoy", + "new-note": "Nueva nota", + "show-windows": "Mostrar ventanas", + "open_new_window": "Abrir nueva ventana" + }, + "migration": { + "old_version": "La migración directa desde tu versión actual no está soportada. Por favor actualice a v0.60.4 primero y solo después a esta versión.", + "error_message": "Error durante la migración a la versión {{version}}: {{stack}}", + "wrong_db_version": "La versión de la DB {{version}} es más nueva que la versión de la DB actual {{targetVersion}}, lo que significa que fue creada por una versión más reciente e incompatible de Trilium. Actualice a la última versión de Trilium para resolver este problema." + }, + "modals": { + "error_title": "Error" + }, + "share_theme": { + "site-theme": "Tema de sitio", + "search_placeholder": "Búsqueda...", + "image_alt": "Imagen de artículo", + "last-updated": "Última actualización en {{-date}}", + "subpages": "Subpáginas:", + "on-this-page": "En esta página", + "expand": "Expandir" + }, + "keyboard_action_names": { + "jump-to-note": "Saltar a...", + "command-palette": "Paleta de comandos", + "scroll-to-active-note": "Desplazarse a la nota activa", + "quick-search": "Búsqueda rápida", + "search-in-subtree": "Buscar en subárbol", + "expand-subtree": "Expandir subárbol", + "collapse-tree": "Colapsar árbol", + "collapse-subtree": "Colapsar subárbol", + "sort-child-notes": "Ordenar nodos hijos", + "create-note-after": "Crear nota tras", + "create-note-into": "Crear nota en", + "create-note-into-inbox": "Crear nota en bandeja de entrada", + "delete-notes": "Eliminar notas", + "move-note-up": "Subir nota", + "move-note-down": "Bajar nota", + "move-note-up-in-hierarchy": "Subir nota en la jerarquía", + "move-note-down-in-hierarchy": "Bajar nota en la jerarquía", + "edit-note-title": "Editar título de nota", + "edit-branch-prefix": "Editar prefijo de rama", + "clone-notes-to": "Clonar notas a", + "move-notes-to": "Mover notas a", + "copy-notes-to-clipboard": "Copiar notas al portapapeles", + "paste-notes-from-clipboard": "Pegar notas del portapapeles", + "add-note-above-to-selection": "Añadir nota superior a la selección", + "add-note-below-to-selection": "Añadir nota inferior a la selección", + "duplicate-subtree": "Duplicar subárbol", + "open-new-tab": "Abrir nueva pestaña", + "close-active-tab": "Cerrar pestaña activa", + "reopen-last-tab": "Reabrir última pestaña", + "activate-next-tab": "Activar siguiente pestaña", + "activate-previous-tab": "Activar pestaña anterior", + "open-new-window": "Abrir nueva ventana", + "show-options": "Mostrar opciones", + "show-revisions": "Mostrar revisiones", + "show-recent-changes": "Mostrar cambios recientes", + "show-sql-console": "Mostrar consola SQL", + "switch-to-first-tab": "Ir a la primera pestaña", + "switch-to-second-tab": "Ir a la segunda pestaña", + "switch-to-third-tab": "Ir a la tercera pestaña", + "switch-to-fourth-tab": "Ir a la cuarta pestaña", + "switch-to-fifth-tab": "Ir a la quinta pestaña", + "switch-to-sixth-tab": "Ir a la sexta pestaña", + "switch-to-seventh-tab": "Ir a la séptima pestaña", + "switch-to-eighth-tab": "Ir a la octava pestaña", + "switch-to-ninth-tab": "Ir a la novena pestaña", + "switch-to-last-tab": "Ir a la última pestaña", + "show-note-source": "Mostrar nota fuente", + "show-help": "Mostrar ayuda", + "add-new-label": "Añadir nueva etiqueta", + "add-new-relation": "Añadir nueva relación", + "print-active-note": "Imprimir nota activa", + "export-active-note-as-pdf": "Exportar nota activa como PDF", + "open-note-externally": "Abrir nota externamente", + "find-in-text": "Encontrar en texto", + "copy-without-formatting": "Copiar sin formato", + "reset-zoom-level": "Restablecer el nivel de zoom", + "open-developer-tools": "Abrir herramientas de desarrollo", + "insert-date-and-time-to-text": "Insertar fecha y hora al texto", + "edit-read-only-note": "Editar nota de solo lectura", + "toggle-system-tray-icon": "Mostrar/ocultar icono en la bandeja del sistema", + "toggle-zen-mode": "Activar/desactivar modo Zen", + "add-link-to-text": "Añadir enlace al texto", + "zoom-in": "Acercar", + "zoom-out": "Alejar", + "toggle-full-screen": "Activar/desactivar pantalla completa", + "toggle-left-pane": "Abrir/cerrar panel izquierdo", + "toggle-right-pane": "Mostrar/ocultar panel derecho", + "unhoist-note": "Desanclar nota", + "toggle-note-hoisting": "Activar/desactivar anclaje de nota", + "show-cheatsheet": "Mostrar hoja de referencia", + "follow-link-under-cursor": "Seguir enlace bajo cursor", + "reload-frontend-app": "Recargar aplicación del cliente", + "run-active-note": "Ejecutar nota activa", + "render-active-note": "Generar nota activa", + "back-in-note-history": "Anterior en el historial de notas", + "forward-in-note-history": "Posterior en el historial de notas", + "cut-notes-to-clipboard": "Cortar notas al portapapeles", + "select-all-notes-in-parent": "Seleccionar todas las notas en padre", + "show-backend-log": "Mostrar registro del servidor", + "paste-markdown-into-text": "Pegar Markdown en el texto", + "cut-into-note": "Cortar en la nota", + "add-include-note-to-text": "Agregar nota incluida al texto", + "force-save-revision": "Forzar guardado de revisión", + "toggle-ribbon-tab-classic-editor": "Mostrar pestaña de la cinta de opciones: Editor clásico", + "toggle-ribbon-tab-basic-properties": "Mostrar pestaña de la cinta de opciones: Propiedades básicas", + "toggle-ribbon-tab-book-properties": "Mostrar pestaña de la cinta de opciones: Propiedades de libro", + "toggle-ribbon-tab-file-properties": "Mostrar pestaña de la cinta de opciones: Propiedades de archivo", + "toggle-ribbon-tab-image-properties": "Mostrar pestaña de la cinta de opciones: Propiedades de imagen", + "toggle-ribbon-tab-inherited-attributes": "Mostrar pestaña de la cinta de opciones: Atributos heredados", + "toggle-ribbon-tab-note-map": "Mostrar pestaña de la cinta de opciones: Mapa de notas", + "toggle-ribbon-tab-note-info": "Mostrar pestaña de la cinta de opciones: Información de nota", + "toggle-ribbon-tab-note-paths": "Mostrar pestaña de la cinta de opciones: Rutas de nota", + "toggle-ribbon-tab-similar-notes": "Mostrar pestaña de la cinta de opciones: Notas similares", + "toggle-ribbon-tab-owned-attributes": "Mostrar pestaña de la cinta de opciones: Propiedades asignadas", + "toggle-ribbon-tab-promoted-attributes": "Mostrar pestaña de la cinta de opciones: Atributos destacados" + }, + "hidden_subtree_templates": { + "board_note_first": "Primera nota", + "board_note_second": "Segunda nota", + "board_note_third": "Tercera nota", + "board_status_progress": "En progreso", + "calendar": "Calendario", + "description": "Descripción", + "list-view": "Vista de lista", + "grid-view": "Vista de cuadrícula", + "status": "Estado", + "table": "Tabla", + "text-snippet": "Fragmento de texto", + "geo-map": "Mapa Geo", + "start-date": "Fecha de inicio", + "end-date": "Fecha de finalización", + "start-time": "Hora de inicio", + "end-time": "Hora de finalización", + "geolocation": "Geolocalización", + "built-in-templates": "Plantillas predefinidas", + "board_status_todo": "Por hacer", + "board_status_done": "Hecho", + "board": "Tablero" + } } diff --git a/apps/server/src/assets/translations/fr/server.json b/apps/server/src/assets/translations/fr/server.json index 1f9e427150..b3725afc82 100644 --- a/apps/server/src/assets/translations/fr/server.json +++ b/apps/server/src/assets/translations/fr/server.json @@ -1,279 +1,287 @@ { - "keyboard_actions": { - "open-jump-to-note-dialog": "Ouvrir la boîte de dialogue \"Aller à la note\"", - "search-in-subtree": "Rechercher des notes dans les sous-arbres de la note active", - "expand-subtree": "Développer le sous-arbre de la note actuelle", - "collapse-tree": "Réduire toute l'arborescence des notes", - "collapse-subtree": "Réduire le sous-arbre de la note actuelle", - "sort-child-notes": "Trier les notes enfants", - "creating-and-moving-notes": "Créer et déplacer des notes", - "create-note-into-inbox": "Créer une note dans l'emplacement par défaut (si défini) ou une note journalière", - "delete-note": "Supprimer la note", - "move-note-up": "Déplacer la note vers le haut", - "move-note-down": "Déplacer la note vers le bas", - "move-note-up-in-hierarchy": "Déplacer la note vers le haut dans la hiérarchie", - "move-note-down-in-hierarchy": "Déplacer la note vers le bas dans la hiérarchie", - "edit-note-title": "Passer de l'arborescence aux détails d'une note et éditer le titre", - "edit-branch-prefix": "Afficher la fenêtre Éditer le préfixe de branche", - "note-clipboard": "Note presse-papiers", - "copy-notes-to-clipboard": "Copier les notes sélectionnées dans le presse-papiers", - "paste-notes-from-clipboard": "Coller les notes depuis le presse-papiers dans la note active", - "cut-notes-to-clipboard": "Couper les notes sélectionnées dans le presse-papiers", - "select-all-notes-in-parent": "Sélectionner toutes les notes du niveau de la note active", - "add-note-above-to-the-selection": "Ajouter la note au-dessus de la sélection", - "add-note-below-to-selection": "Ajouter la note en dessous de la sélection", - "duplicate-subtree": "Dupliquer le sous-arbre", - "tabs-and-windows": "Onglets et fenêtres", - "open-new-tab": "Ouvrir un nouvel onglet", - "close-active-tab": "Fermer l'onglet actif", - "reopen-last-tab": "Rouvrir le dernier onglet fermé", - "activate-next-tab": "Basculer vers l'onglet à droite de l'onglet actif", - "activate-previous-tab": "Basculer vers l'onglet à gauche de l'onglet actif", - "open-new-window": "Ouvrir une nouvelle fenêtre vide", - "toggle-tray": "Afficher/masquer l'application dans la barre des tâches", - "first-tab": "Basculer vers le premier onglet dans la liste", - "second-tab": "Basculer vers le deuxième onglet dans la liste", - "third-tab": "Basculer vers le troisième onglet dans la liste", - "fourth-tab": "Basculer vers le quatrième onglet dans la liste", - "fifth-tab": "Basculer vers le cinquième onglet dans la liste", - "sixth-tab": "Basculer vers le sixième onglet dans la liste", - "seventh-tab": "Basculer vers le septième onglet dans la liste", - "eight-tab": "Basculer vers le huitième onglet dans la liste", - "ninth-tab": "Basculer vers le neuvième onglet dans la liste", - "last-tab": "Basculer vers le dernier onglet dans la liste", - "dialogs": "Boîtes de dialogue", - "show-note-source": "Affiche la boîte de dialogue Source de la note", - "show-options": "Afficher les Options", - "show-revisions": "Afficher la boîte de dialogue Versions de la note", - "show-recent-changes": "Afficher la boîte de dialogue Modifications récentes", - "show-sql-console": "Afficher la boîte de dialogue Console SQL", - "show-backend-log": "Afficher la boîte de dialogue Journal du backend", - "text-note-operations": "Opérations sur les notes textuelles", - "add-link-to-text": "Ouvrir la boîte de dialogue pour ajouter un lien dans le texte", - "follow-link-under-cursor": "Suivre le lien sous le curseur", - "insert-date-and-time-to-text": "Insérer la date et l'heure dans le texte", - "paste-markdown-into-text": "Coller du texte au format Markdown dans la note depuis le presse-papiers", - "cut-into-note": "Couper la sélection depuis la note actuelle et créer une sous-note avec le texte sélectionné", - "add-include-note-to-text": "Ouvrir la boîte de dialogue pour Inclure une note", - "edit-readonly-note": "Éditer une note en lecture seule", - "attributes-labels-and-relations": "Attributs (labels et relations)", - "add-new-label": "Créer un nouveau label", - "create-new-relation": "Créer une nouvelle relation", - "ribbon-tabs": "Onglets du ruban", - "toggle-basic-properties": "Afficher/masquer les Propriétés de base de la note", - "toggle-file-properties": "Afficher/masquer les Propriétés du fichier", - "toggle-image-properties": "Afficher/masquer les Propriétés de l'image", - "toggle-owned-attributes": "Afficher/masquer les Attributs propres", - "toggle-inherited-attributes": "Afficher/masquer les Attributs hérités", - "toggle-promoted-attributes": "Afficher/masquer les Attributs promus", - "toggle-link-map": "Afficher/masquer la Carte de la note", - "toggle-note-info": "Afficher/masquer les Informations de la note", - "toggle-note-paths": "Afficher/masquer les Emplacements de la note", - "toggle-similar-notes": "Afficher/masquer les Notes similaires", - "other": "Autre", - "toggle-right-pane": "Afficher/masquer le volet droit, qui inclut la Table des matières et les Accentuations", - "print-active-note": "Imprimer la note active", - "open-note-externally": "Ouvrir la note comme fichier avec l'application par défaut", - "render-active-note": "Rendre (ou re-rendre) la note active", - "run-active-note": "Exécuter le code JavaScript (frontend/backend) de la note active", - "toggle-note-hoisting": "Activer le focus sur la note active", - "unhoist": "Désactiver tout focus", - "reload-frontend-app": "Recharger l'application", - "open-dev-tools": "Ouvrir les outils de développement", - "toggle-left-note-tree-panel": "Basculer le panneau gauche (arborescence des notes)", - "toggle-full-screen": "Basculer en plein écran", - "zoom-out": "Dézoomer", - "zoom-in": "Zoomer", - "note-navigation": "Navigation dans les notes", - "reset-zoom-level": "Réinitialiser le niveau de zoom", - "copy-without-formatting": "Copier le texte sélectionné sans mise en forme", - "force-save-revision": "Forcer la création / sauvegarde d'une nouvelle version de la note active", - "show-help": "Affiche le guide de l'utilisateur intégré", - "toggle-book-properties": "Afficher/masquer les Propriétés du Livre", - "toggle-classic-editor-toolbar": "Activer/désactiver l'onglet Mise en forme de l'éditeur avec la barre d'outils fixe", - "export-as-pdf": "Exporte la note actuelle en PDF", - "show-cheatsheet": "Affiche une fenêtre modale avec des opérations de clavier courantes", - "toggle-zen-mode": "Active/désactive le mode zen (interface réduite pour favoriser la concentration)" - }, - "login": { - "title": "Connexion", - "heading": "Connexion à Trilium", - "incorrect-password": "Le mot de passe est incorrect. Veuillez réessayer.", - "password": "Mot de passe", - "remember-me": "Se souvenir de moi", - "button": "Connexion" - }, - "set_password": { - "title": "Définir un mot de passe", - "heading": "Définir un mot de passe", - "description": "Avant de pouvoir commencer à utiliser Trilium depuis le web, vous devez d'abord définir un mot de passe. Vous utiliserez ensuite ce mot de passe pour vous connecter.", - "password": "Mot de passe", - "password-confirmation": "Confirmation du mot de passe", - "button": "Définir le mot de passe" - }, - "javascript-required": "Trilium nécessite que JavaScript soit activé.", - "setup": { - "heading": "Configuration de Trilium Notes", - "new-document": "Je suis un nouvel utilisateur et je souhaite créer un nouveau document Trilium pour mes notes", - "sync-from-desktop": "J'ai déjà l'application de bureau et je souhaite configurer la synchronisation avec celle-ci", - "sync-from-server": "J'ai déjà un serveur et je souhaite configurer la synchronisation avec celui-ci", - "next": "Suivant", - "init-in-progress": "Initialisation du document en cours", - "redirecting": "Vous serez bientôt redirigé vers l'application.", - "title": "Configuration" - }, - "setup_sync-from-desktop": { - "heading": "Synchroniser depuis une application de bureau", - "description": "Cette procédure doit être réalisée depuis l'application de bureau installée sur votre ordinateur:", - "step1": "Ouvrez l'application Trilium Notes.", - "step2": "Dans le menu Trilium, cliquez sur Options.", - "step3": "Cliquez sur la catégorie Synchroniser.", - "step4": "Remplacez l'adresse de l'instance de serveur par : {{- host}} et cliquez sur Enregistrer.", - "step5": "Cliquez sur le bouton 'Tester la synchronisation' pour vérifier que la connexion fonctionne.", - "step6": "Une fois que vous avez terminé ces étapes, cliquez sur {{- link}}.", - "step6-here": "ici" - }, - "setup_sync-from-server": { - "heading": "Synchroniser depuis le serveur", - "instructions": "Veuillez saisir l'adresse du serveur Trilium et les informations d'identification ci-dessous. Cela téléchargera l'intégralité du document Trilium à partir du serveur et configurera la synchronisation avec celui-ci. En fonction de la taille du document et de votre vitesse de connexion, cela peut prendre un plusieurs minutes.", - "server-host": "Adresse du serveur Trilium", - "server-host-placeholder": "https://:", - "proxy-server": "Serveur proxy (facultatif)", - "proxy-server-placeholder": "https://:", - "note": "Note :", - "proxy-instruction": "Si vous laissez le paramètre de proxy vide, le proxy du système sera utilisé (s'applique uniquement à l'application de bureau)", - "password": "Mot de passe", - "password-placeholder": "Mot de passe", - "back": "Retour", - "finish-setup": "Terminer" - }, - "setup_sync-in-progress": { - "heading": "Synchronisation en cours", - "successful": "La synchronisation a été correctement configurée. La synchronisation initiale prendra un certain temps. Une fois terminée, vous serez redirigé vers la page de connexion.", - "outstanding-items": "Éléments de synchronisation exceptionnels :", - "outstanding-items-default": "N/A" - }, - "share_404": { - "title": "Page non trouvée", - "heading": "Page non trouvée" - }, - "share_page": { - "parent": "parent :", - "clipped-from": "Cette note a été initialement extraite de {{- url}}", - "child-notes": "Notes enfants :", - "no-content": "Cette note n'a aucun contenu." - }, - "weekdays": { - "monday": "Lundi", - "tuesday": "Mardi", - "wednesday": "Mercredi", - "thursday": "Jeudi", - "friday": "Vendredi", - "saturday": "Samedi", - "sunday": "Dimanche" - }, - "months": { - "january": "Janvier", - "february": "Février", - "march": "Mars", - "april": "Avril", - "may": "Mai", - "june": "Juin", - "july": "Juillet", - "august": "Août", - "september": "Septembre", - "october": "Octobre", - "november": "Novembre", - "december": "Décembre" - }, - "special_notes": { - "search_prefix": "Recherche :" - }, - "test_sync": { - "not-configured": "L'hôte du serveur de synchronisation n'est pas configuré. Veuillez d'abord configurer la synchronisation.", - "successful": "L'établissement de liaison du serveur de synchronisation a été réussi, la synchronisation a été démarrée." - }, - "hidden-subtree": { - "root-title": "Notes cachées", - "search-history-title": "Historique de recherche", - "note-map-title": "Carte de la Note", - "sql-console-history-title": "Historique de la console SQL", - "shared-notes-title": "Notes partagées", - "bulk-action-title": "Action groupée", - "backend-log-title": "Journal Backend", - "user-hidden-title": "Utilisateur masqué", - "launch-bar-templates-title": "Modèles de barre de raccourcis", - "base-abstract-launcher-title": "Raccourci Base abstraite", - "command-launcher-title": "Raccourci Commande", - "note-launcher-title": "Raccourci Note", - "script-launcher-title": "Raccourci Script", - "built-in-widget-title": "Widget intégré", - "spacer-title": "Séparateur", - "custom-widget-title": "Widget personnalisé", - "launch-bar-title": "Barre de lancement", - "available-launchers-title": "Raccourcis disponibles", - "go-to-previous-note-title": "Aller à la note précédente", - "go-to-next-note-title": "Aller à la note suivante", - "new-note-title": "Nouvelle note", - "search-notes-title": "Rechercher des notes", - "jump-to-note-title": "Aller à la note", - "calendar-title": "Calendrier", - "recent-changes-title": "Modifications récentes", - "bookmarks-title": "Signets", - "open-today-journal-note-title": "Ouvrir la note du journal du jour", - "quick-search-title": "Recherche rapide", - "protected-session-title": "Session protégée", - "sync-status-title": "État de la synchronisation", - "settings-title": "Réglages", - "options-title": "Options", - "appearance-title": "Apparence", - "shortcuts-title": "Raccourcis", - "text-notes": "Notes de texte", - "code-notes-title": "Notes de code", - "images-title": "Images", - "spellcheck-title": "Correcteur orthographique", - "password-title": "Mot de passe", - "etapi-title": "ETAPI", - "backup-title": "Sauvegarde", - "sync-title": "Synchronisation", - "other": "Autre", - "advanced-title": "Avancé", - "visible-launchers-title": "Raccourcis visibles", - "user-guide": "Guide de l'utilisateur" - }, - "notes": { - "new-note": "Nouvelle note", - "duplicate-note-suffix": "(dup)", - "duplicate-note-title": "{{- noteTitle }} {{ duplicateNoteSuffix }}" - }, - "backend_log": { - "log-does-not-exist": "Le fichier journal '{{ fileName }}' n'existe pas (encore).", - "reading-log-failed": "La lecture du fichier journal d'administration '{{ fileName }}' a échoué." - }, - "content_renderer": { - "note-cannot-be-displayed": "Ce type de note ne peut pas être affiché." - }, - "pdf": { - "export_filter": "Document PDF (*.pdf)", - "unable-to-export-message": "La note actuelle n'a pas pu être exportée en format PDF.", - "unable-to-export-title": "Impossible d'exporter au format PDF", - "unable-to-save-message": "Le fichier sélectionné n'a pas pu être écrit. Réessayez ou sélectionnez une autre destination." - }, - "tray": { - "tooltip": "Trilium Notes", - "close": "Quitter Trilium", - "recents": "Notes récentes", - "bookmarks": "Signets", - "today": "Ouvrir la note du journal du jour", - "new-note": "Nouvelle note", - "show-windows": "Afficher les fenêtres" - }, - "migration": { - "old_version": "La migration directe à partir de votre version actuelle n'est pas prise en charge. Veuillez d'abord mettre à jour vers la version v0.60.4, puis vers cette nouvelle version.", - "error_message": "Erreur lors de la migration vers la version {{version}}: {{stack}}", - "wrong_db_version": "La version de la base de données ({{version}}) est plus récente que ce que l'application supporte actuellement ({{targetVersion}}), ce qui signifie qu'elle a été créée par une version plus récente et incompatible de Trilium. Mettez à jour vers la dernière version de Trilium pour résoudre ce problème." - }, - "modals": { - "error_title": "Erreur" - } + "keyboard_actions": { + "open-jump-to-note-dialog": "Ouvrir la boîte de dialogue \"Aller à la note\"", + "search-in-subtree": "Rechercher des notes dans les sous-arbres de la note active", + "expand-subtree": "Développer le sous-arbre de la note actuelle", + "collapse-tree": "Réduire toute l'arborescence des notes", + "collapse-subtree": "Réduire le sous-arbre de la note actuelle", + "sort-child-notes": "Trier les notes enfants", + "creating-and-moving-notes": "Créer et déplacer des notes", + "create-note-into-inbox": "Créer une note dans l'emplacement par défaut (si défini) ou une note journalière", + "delete-note": "Supprimer la note", + "move-note-up": "Déplacer la note vers le haut", + "move-note-down": "Déplacer la note vers le bas", + "move-note-up-in-hierarchy": "Déplacer la note vers le haut dans la hiérarchie", + "move-note-down-in-hierarchy": "Déplacer la note vers le bas dans la hiérarchie", + "edit-note-title": "Passer de l'arborescence aux détails d'une note et éditer le titre", + "edit-branch-prefix": "Afficher la fenêtre Éditer le préfixe de branche", + "note-clipboard": "Note presse-papiers", + "copy-notes-to-clipboard": "Copier les notes sélectionnées dans le presse-papiers", + "paste-notes-from-clipboard": "Coller les notes depuis le presse-papiers dans la note active", + "cut-notes-to-clipboard": "Couper les notes sélectionnées dans le presse-papiers", + "select-all-notes-in-parent": "Sélectionner toutes les notes du niveau de la note active", + "add-note-above-to-the-selection": "Ajouter la note au-dessus de la sélection", + "add-note-below-to-selection": "Ajouter la note en dessous de la sélection", + "duplicate-subtree": "Dupliquer le sous-arbre", + "tabs-and-windows": "Onglets et fenêtres", + "open-new-tab": "Ouvrir un nouvel onglet", + "close-active-tab": "Fermer l'onglet actif", + "reopen-last-tab": "Rouvrir le dernier onglet fermé", + "activate-next-tab": "Basculer vers l'onglet à droite de l'onglet actif", + "activate-previous-tab": "Basculer vers l'onglet à gauche de l'onglet actif", + "open-new-window": "Ouvrir une nouvelle fenêtre vide", + "toggle-tray": "Afficher/masquer l'application dans la barre des tâches", + "first-tab": "Basculer vers le premier onglet dans la liste", + "second-tab": "Basculer vers le deuxième onglet dans la liste", + "third-tab": "Basculer vers le troisième onglet dans la liste", + "fourth-tab": "Basculer vers le quatrième onglet dans la liste", + "fifth-tab": "Basculer vers le cinquième onglet dans la liste", + "sixth-tab": "Basculer vers le sixième onglet dans la liste", + "seventh-tab": "Basculer vers le septième onglet dans la liste", + "eight-tab": "Basculer vers le huitième onglet dans la liste", + "ninth-tab": "Basculer vers le neuvième onglet dans la liste", + "last-tab": "Basculer vers le dernier onglet dans la liste", + "dialogs": "Boîtes de dialogue", + "show-note-source": "Affiche la boîte de dialogue Source de la note", + "show-options": "Afficher les Options", + "show-revisions": "Afficher la boîte de dialogue Versions de la note", + "show-recent-changes": "Afficher la boîte de dialogue Modifications récentes", + "show-sql-console": "Afficher la boîte de dialogue Console SQL", + "show-backend-log": "Afficher la boîte de dialogue Journal du backend", + "text-note-operations": "Opérations sur les notes textuelles", + "add-link-to-text": "Ouvrir la boîte de dialogue pour ajouter un lien dans le texte", + "follow-link-under-cursor": "Suivre le lien sous le curseur", + "insert-date-and-time-to-text": "Insérer la date et l'heure dans le texte", + "paste-markdown-into-text": "Coller du texte au format Markdown dans la note depuis le presse-papiers", + "cut-into-note": "Couper la sélection depuis la note actuelle et créer une sous-note avec le texte sélectionné", + "add-include-note-to-text": "Ouvrir la boîte de dialogue pour Inclure une note", + "edit-readonly-note": "Éditer une note en lecture seule", + "attributes-labels-and-relations": "Attributs (labels et relations)", + "add-new-label": "Créer un nouveau label", + "create-new-relation": "Créer une nouvelle relation", + "ribbon-tabs": "Onglets du ruban", + "toggle-basic-properties": "Afficher/masquer les Propriétés de base de la note", + "toggle-file-properties": "Afficher/masquer les Propriétés du fichier", + "toggle-image-properties": "Afficher/masquer les Propriétés de l'image", + "toggle-owned-attributes": "Afficher/masquer les Attributs propres", + "toggle-inherited-attributes": "Afficher/masquer les Attributs hérités", + "toggle-promoted-attributes": "Afficher/masquer les Attributs promus", + "toggle-link-map": "Afficher/masquer la Carte de la note", + "toggle-note-info": "Afficher/masquer les Informations de la note", + "toggle-note-paths": "Afficher/masquer les Emplacements de la note", + "toggle-similar-notes": "Afficher/masquer les Notes similaires", + "other": "Autre", + "toggle-right-pane": "Afficher/masquer le volet droit, qui inclut la Table des matières et les Accentuations", + "print-active-note": "Imprimer la note active", + "open-note-externally": "Ouvrir la note comme fichier avec l'application par défaut", + "render-active-note": "Rendre (ou re-rendre) la note active", + "run-active-note": "Exécuter le code JavaScript (frontend/backend) de la note active", + "toggle-note-hoisting": "Activer le focus sur la note active", + "unhoist": "Désactiver tout focus", + "reload-frontend-app": "Recharger l'application", + "open-dev-tools": "Ouvrir les outils de développement", + "toggle-left-note-tree-panel": "Basculer le panneau gauche (arborescence des notes)", + "toggle-full-screen": "Basculer en plein écran", + "zoom-out": "Dézoomer", + "zoom-in": "Zoomer", + "note-navigation": "Navigation dans les notes", + "reset-zoom-level": "Réinitialiser le niveau de zoom", + "copy-without-formatting": "Copier le texte sélectionné sans mise en forme", + "force-save-revision": "Forcer la création / sauvegarde d'une nouvelle version de la note active", + "show-help": "Affiche le guide de l'utilisateur intégré", + "toggle-book-properties": "Afficher/masquer les Propriétés du Livre", + "toggle-classic-editor-toolbar": "Activer/désactiver l'onglet Mise en forme de l'éditeur avec la barre d'outils fixe", + "export-as-pdf": "Exporte la note actuelle en PDF", + "show-cheatsheet": "Affiche une fenêtre modale avec des opérations de clavier courantes", + "toggle-zen-mode": "Active/désactive le mode zen (interface réduite pour favoriser la concentration)", + "back-in-note-history": "Naviguer à la note précédente dans l'historique", + "forward-in-note-history": "Naviguer a la note suivante dans l'historique", + "open-command-palette": "Ouvrir la palette de commandes", + "clone-notes-to": "Cloner les nœuds sélectionnés", + "move-notes-to": "Déplacer les nœuds sélectionnés" + }, + "login": { + "title": "Connexion", + "heading": "Connexion à Trilium", + "incorrect-password": "Le mot de passe est incorrect. Veuillez réessayer.", + "password": "Mot de passe", + "remember-me": "Se souvenir de moi", + "button": "Connexion" + }, + "set_password": { + "title": "Définir un mot de passe", + "heading": "Définir un mot de passe", + "description": "Avant de pouvoir commencer à utiliser Trilium depuis le web, vous devez d'abord définir un mot de passe. Vous utiliserez ensuite ce mot de passe pour vous connecter.", + "password": "Mot de passe", + "password-confirmation": "Confirmation du mot de passe", + "button": "Définir le mot de passe" + }, + "javascript-required": "Trilium nécessite que JavaScript soit activé.", + "setup": { + "heading": "Configuration de Trilium Notes", + "new-document": "Je suis un nouvel utilisateur et je souhaite créer un nouveau document Trilium pour mes notes", + "sync-from-desktop": "J'ai déjà l'application de bureau et je souhaite configurer la synchronisation avec celle-ci", + "sync-from-server": "J'ai déjà un serveur et je souhaite configurer la synchronisation avec celui-ci", + "next": "Suivant", + "init-in-progress": "Initialisation du document en cours", + "redirecting": "Vous serez bientôt redirigé vers l'application.", + "title": "Configuration" + }, + "setup_sync-from-desktop": { + "heading": "Synchroniser depuis une application de bureau", + "description": "Cette procédure doit être réalisée depuis l'application de bureau installée sur votre ordinateur:", + "step1": "Ouvrez l'application Trilium Notes.", + "step2": "Dans le menu Trilium, cliquez sur Options.", + "step3": "Cliquez sur la catégorie Synchroniser.", + "step4": "Remplacez l'adresse de l'instance de serveur par : {{- host}} et cliquez sur Enregistrer.", + "step5": "Cliquez sur le bouton 'Tester la synchronisation' pour vérifier que la connexion fonctionne.", + "step6": "Une fois que vous avez terminé ces étapes, cliquez sur {{- link}}.", + "step6-here": "ici" + }, + "setup_sync-from-server": { + "heading": "Synchroniser depuis le serveur", + "instructions": "Veuillez saisir l'adresse du serveur Trilium et les informations d'identification ci-dessous. Cela téléchargera l'intégralité du document Trilium à partir du serveur et configurera la synchronisation avec celui-ci. En fonction de la taille du document et de votre vitesse de connexion, cela peut prendre un plusieurs minutes.", + "server-host": "Adresse du serveur Trilium", + "server-host-placeholder": "https://:", + "proxy-server": "Serveur proxy (facultatif)", + "proxy-server-placeholder": "https://:", + "note": "Note :", + "proxy-instruction": "Si vous laissez le paramètre de proxy vide, le proxy du système sera utilisé (s'applique uniquement à l'application de bureau)", + "password": "Mot de passe", + "password-placeholder": "Mot de passe", + "back": "Retour", + "finish-setup": "Terminer" + }, + "setup_sync-in-progress": { + "heading": "Synchronisation en cours", + "successful": "La synchronisation a été correctement configurée. La synchronisation initiale prendra un certain temps. Une fois terminée, vous serez redirigé vers la page de connexion.", + "outstanding-items": "Éléments de synchronisation exceptionnels :", + "outstanding-items-default": "N/A" + }, + "share_404": { + "title": "Page non trouvée", + "heading": "Page non trouvée" + }, + "share_page": { + "parent": "parent :", + "clipped-from": "Cette note a été initialement extraite de {{- url}}", + "child-notes": "Notes enfants :", + "no-content": "Cette note n'a aucun contenu." + }, + "weekdays": { + "monday": "Lundi", + "tuesday": "Mardi", + "wednesday": "Mercredi", + "thursday": "Jeudi", + "friday": "Vendredi", + "saturday": "Samedi", + "sunday": "Dimanche" + }, + "months": { + "january": "Janvier", + "february": "Février", + "march": "Mars", + "april": "Avril", + "may": "Mai", + "june": "Juin", + "july": "Juillet", + "august": "Août", + "september": "Septembre", + "october": "Octobre", + "november": "Novembre", + "december": "Décembre" + }, + "special_notes": { + "search_prefix": "Recherche :" + }, + "test_sync": { + "not-configured": "L'hôte du serveur de synchronisation n'est pas configuré. Veuillez d'abord configurer la synchronisation.", + "successful": "L'établissement de liaison du serveur de synchronisation a été réussi, la synchronisation a été démarrée." + }, + "hidden-subtree": { + "root-title": "Notes cachées", + "search-history-title": "Historique de recherche", + "note-map-title": "Carte de la Note", + "sql-console-history-title": "Historique de la console SQL", + "shared-notes-title": "Notes partagées", + "bulk-action-title": "Action groupée", + "backend-log-title": "Journal Backend", + "user-hidden-title": "Utilisateur masqué", + "launch-bar-templates-title": "Modèles de barre de raccourcis", + "base-abstract-launcher-title": "Raccourci Base abstraite", + "command-launcher-title": "Raccourci Commande", + "note-launcher-title": "Raccourci Note", + "script-launcher-title": "Raccourci Script", + "built-in-widget-title": "Widget intégré", + "spacer-title": "Séparateur", + "custom-widget-title": "Widget personnalisé", + "launch-bar-title": "Barre de lancement", + "available-launchers-title": "Raccourcis disponibles", + "go-to-previous-note-title": "Aller à la note précédente", + "go-to-next-note-title": "Aller à la note suivante", + "new-note-title": "Nouvelle note", + "search-notes-title": "Rechercher des notes", + "calendar-title": "Calendrier", + "recent-changes-title": "Modifications récentes", + "bookmarks-title": "Signets", + "open-today-journal-note-title": "Ouvrir la note du journal du jour", + "quick-search-title": "Recherche rapide", + "protected-session-title": "Session protégée", + "sync-status-title": "État de la synchronisation", + "settings-title": "Réglages", + "options-title": "Options", + "appearance-title": "Apparence", + "shortcuts-title": "Raccourcis", + "text-notes": "Notes de texte", + "code-notes-title": "Notes de code", + "images-title": "Images", + "spellcheck-title": "Correcteur orthographique", + "password-title": "Mot de passe", + "etapi-title": "ETAPI", + "backup-title": "Sauvegarde", + "sync-title": "Synchronisation", + "other": "Autre", + "advanced-title": "Avancé", + "visible-launchers-title": "Raccourcis visibles", + "user-guide": "Guide de l'utilisateur" + }, + "notes": { + "new-note": "Nouvelle note", + "duplicate-note-suffix": "(dup)", + "duplicate-note-title": "{{- noteTitle }} {{ duplicateNoteSuffix }}" + }, + "backend_log": { + "log-does-not-exist": "Le fichier journal '{{ fileName }}' n'existe pas (encore).", + "reading-log-failed": "La lecture du fichier journal d'administration '{{ fileName }}' a échoué." + }, + "content_renderer": { + "note-cannot-be-displayed": "Ce type de note ne peut pas être affiché." + }, + "pdf": { + "export_filter": "Document PDF (*.pdf)", + "unable-to-export-message": "La note actuelle n'a pas pu être exportée en format PDF.", + "unable-to-export-title": "Impossible d'exporter au format PDF", + "unable-to-save-message": "Le fichier sélectionné n'a pas pu être écrit. Réessayez ou sélectionnez une autre destination." + }, + "tray": { + "tooltip": "Trilium Notes", + "close": "Quitter Trilium", + "recents": "Notes récentes", + "bookmarks": "Signets", + "today": "Ouvrir la note du journal du jour", + "new-note": "Nouvelle note", + "show-windows": "Afficher les fenêtres" + }, + "migration": { + "old_version": "La migration directe à partir de votre version actuelle n'est pas prise en charge. Veuillez d'abord mettre à jour vers la version v0.60.4, puis vers cette nouvelle version.", + "error_message": "Erreur lors de la migration vers la version {{version}}: {{stack}}", + "wrong_db_version": "La version de la base de données ({{version}}) est plus récente que ce que l'application supporte actuellement ({{targetVersion}}), ce qui signifie qu'elle a été créée par une version plus récente et incompatible de Trilium. Mettez à jour vers la dernière version de Trilium pour résoudre ce problème." + }, + "modals": { + "error_title": "Erreur" + }, + "keyboard_action_names": { + "command-palette": "Palette de commandes", + "quick-search": "Recherche rapide" + } } diff --git a/apps/server/src/assets/translations/it/server.json b/apps/server/src/assets/translations/it/server.json new file mode 100644 index 0000000000..f90368ecd4 --- /dev/null +++ b/apps/server/src/assets/translations/it/server.json @@ -0,0 +1,157 @@ +{ + "keyboard_action_names": { + "zoom-in": "Ingrandisci", + "reset-zoom-level": "Ripristina il livello di ingrandimento", + "zoom-out": "Riduci", + "toggle-full-screen": "Attiva/disattiva lo Schermo Intero", + "toggle-left-pane": "Attiva/disattiva il Pannello Sinistro", + "toggle-zen-mode": "Attiva/disattiva la modalità zen", + "toggle-right-pane": "Attiva/disattiva il Pannello Destro", + "toggle-system-tray-icon": "Attiva/disattiva l'Icona nel Vassoio di Sistema", + "toggle-note-hoisting": "Attiva/disattiva l'Ancoraggio della Nota", + "unhoist-note": "Disancora la Nota", + "reload-frontend-app": "Ricarica l'Applicazione Frontend", + "open-developer-tools": "Apri gli Strumenti da Sviluppatore", + "find-in-text": "Cerca nel Testo", + "print-active-note": "Stampa la Nota Attiva", + "export-active-note-as-pdf": "Esporta la nota attiva come PDF", + "open-note-externally": "Apri Esternamente la Nota", + "run-active-note": "Esegui la Nota Attiva", + "render-active-note": "Presenta la Nota Attiva" + }, + "hidden-subtree": { + "options-title": "Opzioni", + "appearance-title": "Aspetto", + "shortcuts-title": "Scorciatoie", + "text-notes": "Note di Testo", + "code-notes-title": "Note di Codice", + "images-title": "Immagini", + "spellcheck-title": "Controllo Ortografico", + "password-title": "Password", + "multi-factor-authentication-title": "MFA", + "etapi-title": "ETAPI", + "backup-title": "Archiviazione", + "sync-title": "Sincronizza", + "ai-llm-title": "IA/LLM", + "other": "Altro", + "advanced-title": "Avanzato", + "user-guide": "Guida Utente", + "visible-launchers-title": "Lanciatori Visibili", + "localization": "Lingua e Regione", + "inbox-title": "Posta in arrivo" + }, + "notes": { + "new-note": "Nuova nota", + "duplicate-note-suffix": "(dup)", + "duplicate-note-title": "{{- noteTitle }} {{ duplicateNoteSuffix }}" + }, + "backend_log": { + "log-does-not-exist": "Il file di log del backend '{{ fileName }}' non esiste (ancora).", + "reading-log-failed": "La lettura del file di log del backend '{{ fileName }}' è fallita." + }, + "content_renderer": { + "note-cannot-be-displayed": "Questo tipo di nota non può essere visualizzato." + }, + "pdf": { + "export_filter": "Documento PDF (*.pdf)", + "unable-to-export-message": "La nota corrente non può essere esportata come PDF.", + "unable-to-export-title": "Impossibile esportare come PDF", + "unable-to-save-message": "Il file selezionato non può essere salvato. Prova di nuovo o seleziona un'altra destinazione." + }, + "tray": { + "tooltip": "Trilium Notes", + "close": "Esci da Trilium", + "recents": "Note recenti", + "bookmarks": "Segnalibri", + "today": "Apri la nota di oggi", + "new-note": "Nuova nota", + "show-windows": "Mostra le finestre", + "open_new_window": "Aprire una nuova finestra" + }, + "migration": { + "old_version": "La migrazione diretta dalla tua versione attuale non è supportata. Si prega di aggiornare prima all'ultima versione v0.60.4 e solo dopo a questa versione.", + "error_message": "Errore durante la migrazione alla versione {{version}}: {{stack}}", + "wrong_db_version": "La versione del database ({{version}}) è più recente di quanto l'applicazione si aspetti ({{targetVersion}}), il che significa che è stato creato da una versione più nuova e incompatibile di Trilium. Aggiorna Trilium all'ultima versione per risolvere questo problema." + }, + "modals": { + "error_title": "Errore" + }, + "share_theme": { + "site-theme": "Tema del Sito", + "search_placeholder": "Cerca..." + }, + "keyboard_actions": { + "back-in-note-history": "Navigare alla nota precedente della cronologia", + "forward-in-note-history": "Navigare alla prossima nota della cronologia", + "open-jump-to-note-dialog": "Apri la finestra di dialogo \"Salta alla nota\"", + "open-command-palette": "Apri la palette dei comandi", + "scroll-to-active-note": "Scorri l'albero fino alla nota attiva", + "quick-search": "Attiva la barra di ricerca rapida", + "search-in-subtree": "Cerca le note nel sotto albero della nota attiva", + "expand-subtree": "Espande il sotto albero della nota corrente", + "collapse-tree": "Contrae l'albero completo delle note", + "collapse-subtree": "Contrae il sotto albero della nota corrente", + "sort-child-notes": "Ordina le note figlio", + "creating-and-moving-notes": "Crea e sposta le note", + "create-note-after": "Crea una nota dopo quella attiva", + "create-note-into": "Crea una nota come figlia di quella attiva", + "create-note-into-inbox": "Creare una nota nella casella di posta (se definita) o nella nota del giorno", + "delete-note": "Elimina una nota", + "move-note-up": "Sposta su una nota", + "move-note-down": "Sposta giù una nota", + "move-note-up-in-hierarchy": "Sposta su la nota nella gerarchia", + "move-note-down-in-hierarchy": "Sposta giù una nota nella gerarchia", + "edit-note-title": "Salta dall'albero al dettaglio della nota e modifica il titolo", + "edit-branch-prefix": "Mostra la finestra di dialogo \"Modifica il prefisso del ramo\"", + "clone-notes-to": "Clona le note selezionate", + "move-notes-to": "Sposta le note selezionate", + "note-clipboard": "Appunti delle Note", + "copy-notes-to-clipboard": "Copia le note selezionate negli appunti", + "paste-notes-from-clipboard": "Incolla le note dagli appunti nella nota attiva", + "cut-notes-to-clipboard": "Tagliare le note selezionate negli appunti", + "select-all-notes-in-parent": "Seleziona tutte le note dal livello di nota corrente", + "add-note-above-to-the-selection": "Aggiungi una nota sopra alla selezione", + "add-note-below-to-selection": "Aggiungi una nota sotto alla selezione", + "duplicate-subtree": "Duplica il sotto albero", + "tabs-and-windows": "Schede e Finestre", + "open-new-tab": "Apri una nuova scheda", + "close-active-tab": "Chiudi la scheda attiva", + "reopen-last-tab": "Riapri l'ultima scheda chiusa", + "activate-next-tab": "Attiva la scheda sulla destra", + "activate-previous-tab": "Attiva la scheda a sinistra", + "open-new-window": "Apri una nuova finestra vuota", + "toggle-tray": "Mostra/nascondi l'applicazione dal vassoio di sistema", + "first-tab": "Attiva la prima scheda nell'elenco", + "second-tab": "Attiva la seconda scheda nell'elenco", + "third-tab": "Attiva la terza scheda nell'elenco", + "fourth-tab": "Attiva la quarta scheda nella lista", + "fifth-tab": "Attiva la quinta scheda nell'elenco", + "sixth-tab": "Attiva la sesta scheda nell'elenco", + "seventh-tab": "Attiva la settima scheda nella lista", + "eight-tab": "Attiva l'ottava scheda nell'elenco", + "ninth-tab": "Attiva la nona scheda nella lista", + "last-tab": "Attiva l'ultima scheda nell'elenco", + "dialogs": "Finestre di dialogo", + "show-note-source": "Mostra la finestra di dialogo \"Sorgente della Nota\"", + "show-options": "Apri la pagina \"Opzioni\"", + "show-revisions": "Mostra la finestra di dialogo \"Revisione della Nota\"", + "show-recent-changes": "Mostra la finestra di dialogo \"Modifiche Recenti\"", + "show-sql-console": "Apri la pagina \"Console SQL\"", + "show-backend-log": "Apri la pagina \"Log del Backend\"", + "show-help": "Apri la Guida Utente integrata", + "show-cheatsheet": "Mostra una finestra modale con le operazioni comuni da tastiera", + "text-note-operations": "Operazioni sulle note di testo", + "add-link-to-text": "Apri la finestra di dialogo per aggiungere il collegamento al testo", + "follow-link-under-cursor": "Segui il collegamento all'interno del quale è il cursore", + "insert-date-and-time-to-text": "Inserisci la data e l'ora corrente nel testo", + "paste-markdown-into-text": "Incolla il Markdown dagli appunti nella nota di testo", + "cut-into-note": "Taglia la selezione dalla nota corrente e crea una sotto nota col testo selezionato", + "add-include-note-to-text": "Apre la finestra di dialogo per includere una nota", + "edit-readonly-note": "Modifica una nota di sola lettura", + "attributes-labels-and-relations": "Attributi (etichette e relazioni)", + "add-new-label": "Crea una nuova etichetta", + "create-new-relation": "Crea una nuova relazione", + "ribbon-tabs": "Nastro delle schede", + "toggle-basic-properties": "Mostra/nascondi le Proprietà di Base" + } +} diff --git a/apps/server/src/assets/translations/ja/server.json b/apps/server/src/assets/translations/ja/server.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/apps/server/src/assets/translations/ja/server.json @@ -0,0 +1 @@ +{} diff --git a/apps/server/src/assets/translations/pt_br/server.json b/apps/server/src/assets/translations/pt_br/server.json index faee946224..e4f54bae29 100644 --- a/apps/server/src/assets/translations/pt_br/server.json +++ b/apps/server/src/assets/translations/pt_br/server.json @@ -1,193 +1,428 @@ { - "keyboard_actions": { - "open-jump-to-note-dialog": "Abir \"Pular para nota\" dialog", - "search-in-subtree": "Procurar por notas na subárvore ativa", - "expand-subtree": "Expandir subárvore da nota atual", - "collapse-tree": "Colapsar a árvore completa de notas", - "collapse-subtree": "Colapsar subárvore da nota atual", - "sort-child-notes": "Ordenar notas filhas", - "creating-and-moving-notes": "Criando e movendo notas", - "create-note-into-inbox": "Crie uma nota na caixa de entrada (se definida) ou na nota do dia.", - "delete-note": "Deletar nota", - "move-note-up": "Mover nota para cima", - "move-note-down": "Mover nota para baixo", - "move-note-up-in-hierarchy": "Mover nota para cima em hierarquia", - "move-note-down-in-hierarchy": "Mover nota para baixo em hierarquia", - "edit-note-title": "Pule da árvore para os detalhes da nota e edite o título", - "edit-branch-prefix": "Exibir o diálogo de edição do prefixo da branch", - "note-clipboard": "Área de transferência de notas", - "copy-notes-to-clipboard": "Copiar notas selecionadas para Área de transferência", - "paste-notes-from-clipboard": "Colar notas da área de transferência na nota ativa", - "cut-notes-to-clipboard": "Recortar as notas selecionadas para a área de transferência", - "select-all-notes-in-parent": "Selecionar todas as notas do nível atual da nota", - "add-note-above-to-the-selection": "Adicionar nota acima à seleção", - "add-note-below-to-selection": "Adicionar nota abaixo à seleção", - "duplicate-subtree": "Duplicar subárvores", - "tabs-and-windows": "Abas & Janelas", - "open-new-tab": "Abre nova aba", - "close-active-tab": "Fecha aba ativa", - "reopen-last-tab": "Reabre a última aba fechada", - "activate-next-tab": "Ativa aba à direita", - "activate-previous-tab": "Ativa aba à esquerda", - "open-new-window": "Abre nova janela vazia", - "toggle-tray": "Mostrar/ocultar o aplicativo da bandeja do sistema", - "first-tab": "Ativa a primeira aba na lista", - "second-tab": "Ativa a segunda aba na lista", - "third-tab": "Ativa a terceira aba na lista", - "fourth-tab": "Ativa a quarta aba na lista", - "fifth-tab": "Ativa a quinta aba na lista", - "sixth-tab": "Ativa a sexta aba na lista", - "seventh-tab": "Ativa a sétima aba na lista", - "eight-tab": "Ativa a oitava aba na lista", - "ninth-tab": "Ativa a nona aba na lista", - "last-tab": "Ativa a última aba na lista", - "dialogs": "Dialogs", - "show-note-source": "Exibe o log de origem da nota", - "show-options": "Mostrar log de configurações", - "show-revisions": "Exibe log de revisões de nota", - "show-recent-changes": "Exibe o log de alterações recentes", - "show-sql-console": "Exibe o log do console SQL", - "show-backend-log": "Exibe o log do backend", - "text-note-operations": "Operações de nota de texto", - "add-link-to-text": "Abrir log e adcionar link ao texto", - "follow-link-under-cursor": "Seguir o link sob o cursor", - "insert-date-and-time-to-text": "Inserir data e hora atuais no texto", - "paste-markdown-into-text": "Colar Markdown da área de transferência em nota de texto", - "cut-into-note": "Corta a seleção da nota atual e cria uma subnota com o texto selecionado", - "add-include-note-to-text": "Abre o log para incluir uma nota", - "edit-readonly-note": "Editar uma nota somente leitura", - "attributes-labels-and-relations": "Atributos (rótulos e relações)", - "add-new-label": "Criar novo rótulo", - "create-new-relation": "Criar nova relação", - "ribbon-tabs": "Abas da faixa", - "toggle-basic-properties": "Alterar Propriedades Básicas", - "toggle-file-properties": "Alterar Propriedades do Arquivo", - "toggle-image-properties": "Alterar Propriedades da Imagem", - "toggle-owned-attributes": "Alterar Atributos Próprios", - "toggle-inherited-attributes": "Alterar Atributos Herdados", - "toggle-promoted-attributes": "Alternar Atributos Promovidos", - "toggle-link-map": "Alternar Mapa de Links", - "toggle-note-info": "Alternar Informações da Nota", - "toggle-note-paths": "Alternar Caminhos da Nota", - "toggle-similar-notes": "Alternar Notas Similares", - "other": "Outros", - "toggle-right-pane": "Alternar a exibição do painel direito, que inclui Sumário e Destaques", - "print-active-note": "Imprimir nota ativa", - "open-note-externally": "Abrir nota como arquivo no aplicativo padrão", - "render-active-note": "Renderizar (re-renderizar) nota ativa", - "run-active-note": "Executar código JavaScript (frontend/backend) da nota", - "toggle-note-hoisting": "Alternar a elevação da nota ativa", - "unhoist": "Desfazer elevação de tudo", - "reload-frontend-app": "Recarregar Interface", - "open-dev-tools": "Abrir ferramentas de desenvolvedor", - "toggle-left-note-tree-panel": "Alternar painel esquerdo (árvore de notas)", - "toggle-full-screen": "Alternar para tela cheia", - "zoom-out": "Diminuir zoom", - "zoom-in": "Aumentar zoom", - "note-navigation": "Navegação de notas", - "reset-zoom-level": "Redefinir nível de zoom", - "copy-without-formatting": "Copiar texto selecionado sem formatação", - "force-save-revision": "Forçar a criação/salvamento de uma nova revisão da nota ativa", - "show-help": "Exibir Ajuda integrada / colinha", - "toggle-book-properties": "Alternar propriedades do book", - "toggle-classic-editor-toolbar": "Alternar a aba de Formatação no editor com barra de ferramentas fixa" - }, - "login": { - "title": "Login", - "heading": "Trilium login", - "incorrect-password": "Senha incorreta. Tente novamente.", - "password": "Senha", - "remember-me": "Lembrar", - "button": "Login" - }, - "set_password": { - "title": "Definir senha", - "heading": "Definir senha", - "description": "Antes de começar a usar o Trilium web, você precisa definir uma senha. Você usará essa senha para fazer login.", - "password": "Senha", - "password-confirmation": "Confirmar Senha", - "button": "Definir senha" - }, - "javascript-required": "Trilium precisa que JavaScript esteja habilitado.", - "setup": { - "heading": "Trilium Notes setup", - "new-document": "Sou um novo usuário e quero criar um novo documento Trilium para minhas notas", - "sync-from-desktop": "Já tenho uma instância no desktop e quero configurar a sincronização com ela", - "sync-from-server": "Já tenho uma instância no servidor e quero configurar a sincronização com ela", - "next": "Avançar", - "init-in-progress": "Inicialização do documento em andamento", - "redirecting": "Você será redirecionado para o aplicativo em breve.", - "title": "Setup" - }, - "setup_sync-from-desktop": { - "heading": "Sincronizar com Desktop", - "description": "Esta configuração deve ser iniciada a partir da instância do desktop:", - "step1": "Abra sua instância do Trilium Notes no desktop.", - "step2": "No menu do Trilium, clique em Opções.", - "step3": "Clique na categoria Sincronização.", - "step4": "Altere o endereço da instância do servidor para: {{- host}} e clique em Salvar.", - "step5": "Clique no botão \"Testar sincronização\" para verificar se a conexão foi bem-sucedida.", - "step6": "Depois de concluir essas etapas, clique em {{- link}}.", - "step6-here": "Aqui" - }, - "setup_sync-from-server": { - "heading": "Sincronizar do Servidor", - "instructions": "Por favor, insira abaixo o endereço e as credenciais do servidor Trilium. Isso fará o download de todo o documento Trilium do servidor e configurará a sincronização com ele. Dependendo do tamanho do documento e da velocidade da conexão, isso pode levar algum tempo.", - "server-host": "Endereço do servidor Trilium", - "server-host-placeholder": "https://:", - "proxy-server": "Servidor proxy (opcional)", - "proxy-server-placeholder": "https://:", - "note": "Nota:", - "proxy-instruction": "Se você deixar o campo de proxy em branco, o proxy do sistema será usado (aplicável apenas ao aplicativo desktop)", - "password": "Senha", - "password-placeholder": "Senha", - "back": "Voltar", - "finish-setup": "Terminar configuração" - }, - "setup_sync-in-progress": { - "heading": "Sincronização em andamento", - "successful": "A sincronização foi configurada corretamente. Levará algum tempo para que a sincronização inicial seja concluída. Quando terminar, você será redirecionado para a página de login.", - "outstanding-items": "Itens de sincronização pendentes:", - "outstanding-items-default": "N/A" - }, - "share_404": { - "title": "Não encontrado", - "heading": "Não encontrado" - }, - "share_page": { - "parent": "pai:", - "clipped-from": "Esta nota foi originalmente extraída de {{- url}}", - "child-notes": "Notas filhas:", - "no-content": "Esta nota não possui conteúdo." - }, - "weekdays": { - "monday": "Segunda-feira", - "tuesday": "Terça-feira", - "wednesday": "Quarta-feira", - "thursday": "Quinta-feira", - "friday": "Sexta-feira", - "saturday": "Sábado", - "sunday": "Domingo" - }, - "months": { - "january": "Janeiro", - "february": "Fevereiro", - "march": "Março", - "april": "Abril", - "may": "Maio", - "june": "Junho", - "july": "Julho", - "august": "Agosto", - "september": "Setembro", - "october": "Outubro", - "november": "Novembro", - "december": "Dezembro" - }, - "special_notes": { - "search_prefix": "Pesquisar:" - }, - "test_sync": { - "not-configured": "O host do servidor de sincronização não está configurado. Por favor, configure a sincronização primeiro.", - "successful": "A comunicação com o servidor de sincronização foi bem-sucedida, a sincronização foi iniciada." - } + "keyboard_actions": { + "open-jump-to-note-dialog": "Abrir diálogo \"Ir para nota\"", + "search-in-subtree": "Buscar notas na subárvore da nota atual", + "expand-subtree": "Expandir subárvore da nota atual", + "collapse-tree": "Colapsar a árvore completa de notas", + "collapse-subtree": "Colapsar subárvore da nota atual", + "sort-child-notes": "Ordenar notas filhas", + "creating-and-moving-notes": "Criando e movendo notas", + "create-note-into-inbox": "Crie uma nota na caixa de entrada (se definida) ou na nota do dia", + "delete-note": "Deletar nota", + "move-note-up": "Mover nota para cima", + "move-note-down": "Mover nota para baixo", + "move-note-up-in-hierarchy": "Mover nota para cima em hierarquia", + "move-note-down-in-hierarchy": "Mover nota para baixo em hierarquia", + "edit-note-title": "Pule da árvore para os detalhes da nota e edite o título", + "edit-branch-prefix": "Exibir o diálogo \"Editar prefixo da ramificação\"", + "note-clipboard": "Área de transferência de notas", + "copy-notes-to-clipboard": "Copiar notas selecionadas para Área de transferência", + "paste-notes-from-clipboard": "Colar notas da área de transferência na nota atual", + "cut-notes-to-clipboard": "Recortar as notas selecionadas para a área de transferência", + "select-all-notes-in-parent": "Selecionar todas as notas do nível atual da nota", + "add-note-above-to-the-selection": "Adicionar nota acima à seleção", + "add-note-below-to-selection": "Adicionar nota abaixo à seleção", + "duplicate-subtree": "Duplicar subárvores", + "tabs-and-windows": "Abas & Janelas", + "open-new-tab": "Abre nova aba", + "close-active-tab": "Fecha aba ativa", + "reopen-last-tab": "Reabre a última aba fechada", + "activate-next-tab": "Ativa aba à direita", + "activate-previous-tab": "Ativa aba à esquerda", + "open-new-window": "Abre nova janela vazia", + "toggle-tray": "Mostrar/ocultar o aplicativo da bandeja do sistema", + "first-tab": "Ativa a primeira aba na lista", + "second-tab": "Ativa a segunda aba na lista", + "third-tab": "Ativa a terceira aba na lista", + "fourth-tab": "Ativa a quarta aba na lista", + "fifth-tab": "Ativa a quinta aba na lista", + "sixth-tab": "Ativa a sexta aba na lista", + "seventh-tab": "Ativa a sétima aba na lista", + "eight-tab": "Ativa a oitava aba na lista", + "ninth-tab": "Ativa a nona aba na lista", + "last-tab": "Ativa a última aba na lista", + "dialogs": "Diálogos", + "show-note-source": "Exibe o log de origem da nota", + "show-options": "Mostrar log de configurações", + "show-revisions": "Exibe log de revisões de nota", + "show-recent-changes": "Exibe o log de alterações recentes", + "show-sql-console": "Exibe o log do console SQL", + "show-backend-log": "Exibe o log do backend", + "text-note-operations": "Operações de nota de texto", + "add-link-to-text": "Abrir log e adcionar link ao texto", + "follow-link-under-cursor": "Seguir o link sob o cursor", + "insert-date-and-time-to-text": "Inserir data e hora atuais no texto", + "paste-markdown-into-text": "Colar Markdown da área de transferência em nota de texto", + "cut-into-note": "Corta a seleção da nota atual e cria uma subnota com o texto selecionado", + "add-include-note-to-text": "Abre o log para incluir uma nota", + "edit-readonly-note": "Editar uma nota somente leitura", + "attributes-labels-and-relations": "Atributos (rótulos e relações)", + "add-new-label": "Criar novo rótulo", + "create-new-relation": "Criar nova relação", + "ribbon-tabs": "Abas da faixa", + "toggle-basic-properties": "Alterar Propriedades Básicas", + "toggle-file-properties": "Alterar Propriedades do Arquivo", + "toggle-image-properties": "Alterar Propriedades da Imagem", + "toggle-owned-attributes": "Alterar Atributos Próprios", + "toggle-inherited-attributes": "Alterar Atributos Herdados", + "toggle-promoted-attributes": "Alternar Atributos Promovidos", + "toggle-link-map": "Alternar Mapa de Links", + "toggle-note-info": "Alternar Informações da Nota", + "toggle-note-paths": "Alternar Caminhos da Nota", + "toggle-similar-notes": "Alternar Notas Similares", + "other": "Outros", + "toggle-right-pane": "Alternar a exibição do painel direito, que inclui Sumário e Destaques", + "print-active-note": "Imprimir nota atual", + "open-note-externally": "Abrir nota como arquivo no aplicativo padrão", + "render-active-note": "Renderizar (re-renderizar) nota atual", + "run-active-note": "Executar código JavaScript (frontend/backend) da nota", + "toggle-note-hoisting": "Alternar a elevação da nota atual", + "unhoist": "Desfazer elevação de tudo", + "reload-frontend-app": "Recarregar Interface", + "open-dev-tools": "Abrir ferramentas de desenvolvedor", + "toggle-left-note-tree-panel": "Alternar painel esquerdo (árvore de notas)", + "toggle-full-screen": "Alternar para tela cheia", + "zoom-out": "Diminuir zoom", + "zoom-in": "Aumentar zoom", + "note-navigation": "Navegação de notas", + "reset-zoom-level": "Redefinir nível de zoom", + "copy-without-formatting": "Copiar texto selecionado sem formatação", + "force-save-revision": "Forçar a criação/salvamento de uma nova revisão da nota atual", + "show-help": "Exibir Ajuda integrada / colinha", + "toggle-book-properties": "Alternar propriedades do book", + "toggle-classic-editor-toolbar": "Alternar a aba de Formatação no editor com barra de ferramentas fixa", + "back-in-note-history": "Navegar para a nota anterior no histórico", + "forward-in-note-history": "Navegar para a próxima nota no histórico", + "open-command-palette": "Abrir paleta de comandos", + "scroll-to-active-note": "Rolar a árvore de notas até a nota atual", + "quick-search": "Ativar barra de busca rápida", + "create-note-after": "Criar nota após nota atual", + "create-note-into": "Criar nota como subnota da nota atual", + "clone-notes-to": "Clonar notas selecionadas", + "move-notes-to": "Mover notas selecionadas", + "find-in-text": "Alternar painel de busca", + "export-as-pdf": "Exportar a nota atual como PDF", + "toggle-zen-mode": "Ativa/desativa o modo zen (interface mínima para uma edição mais focada)", + "show-cheatsheet": "Exibir um modal com operações comuns de teclado" + }, + "login": { + "title": "Login", + "heading": "Trilium login", + "incorrect-password": "Senha incorreta. Tente novamente.", + "password": "Senha", + "remember-me": "Lembrar", + "button": "Login", + "incorrect-totp": "O código TOTP está incorreto. Por favor, tente novamente.", + "sign_in_with_sso": "Fazer login com {{ ssoIssuerName }}" + }, + "set_password": { + "title": "Definir senha", + "heading": "Definir senha", + "description": "Antes de começar a usar o Trilium web, você precisa definir uma senha. Você usará essa senha para fazer login.", + "password": "Senha", + "password-confirmation": "Confirmar Senha", + "button": "Definir senha" + }, + "javascript-required": "Trilium precisa que JavaScript esteja habilitado.", + "setup": { + "heading": "Trilium Notes setup", + "new-document": "Sou um novo usuário e quero criar um novo documento Trilium para minhas notas", + "sync-from-desktop": "Já tenho uma instância no desktop e quero configurar a sincronização com ela", + "sync-from-server": "Já tenho uma instância no servidor e quero configurar a sincronização com ela", + "next": "Avançar", + "init-in-progress": "Inicialização do documento em andamento", + "redirecting": "Você será redirecionado para o aplicativo em breve.", + "title": "Setup" + }, + "setup_sync-from-desktop": { + "heading": "Sincronizar com Desktop", + "description": "Esta configuração deve ser iniciada a partir da instância do desktop:", + "step1": "Abra sua instância do Trilium Notes no desktop.", + "step2": "No menu do Trilium, clique em Opções.", + "step3": "Clique na categoria Sincronização.", + "step4": "Altere o endereço da instância do servidor para: {{- host}} e clique em Salvar.", + "step5": "Clique no botão \"Testar sincronização\" para verificar se a conexão foi bem-sucedida.", + "step6": "Depois de concluir essas etapas, clique em {{- link}}.", + "step6-here": "Aqui" + }, + "setup_sync-from-server": { + "heading": "Sincronizar do Servidor", + "instructions": "Por favor, insira abaixo o endereço e as credenciais do servidor Trilium. Isso fará o download de todo o documento Trilium do servidor e configurará a sincronização com ele. Dependendo do tamanho do documento e da velocidade da conexão, isso pode levar algum tempo.", + "server-host": "Endereço do servidor Trilium", + "server-host-placeholder": "https://:", + "proxy-server": "Servidor proxy (opcional)", + "proxy-server-placeholder": "https://:", + "note": "Nota:", + "proxy-instruction": "Se você deixar o campo de proxy em branco, o proxy do sistema será usado (aplicável apenas ao aplicativo desktop)", + "password": "Senha", + "password-placeholder": "Senha", + "back": "Voltar", + "finish-setup": "Terminar configuração" + }, + "setup_sync-in-progress": { + "heading": "Sincronização em andamento", + "successful": "A sincronização foi configurada corretamente. Levará algum tempo para que a sincronização inicial seja concluída. Quando terminar, você será redirecionado para a página de login.", + "outstanding-items": "Itens de sincronização pendentes:", + "outstanding-items-default": "N/A" + }, + "share_404": { + "title": "Não encontrado", + "heading": "Não encontrado" + }, + "share_page": { + "parent": "pai:", + "clipped-from": "Esta nota foi originalmente extraída de {{- url}}", + "child-notes": "Notas filhas:", + "no-content": "Esta nota não possui conteúdo." + }, + "weekdays": { + "monday": "Segunda-feira", + "tuesday": "Terça-feira", + "wednesday": "Quarta-feira", + "thursday": "Quinta-feira", + "friday": "Sexta-feira", + "saturday": "Sábado", + "sunday": "Domingo" + }, + "months": { + "january": "Janeiro", + "february": "Fevereiro", + "march": "Março", + "april": "Abril", + "may": "Maio", + "june": "Junho", + "july": "Julho", + "august": "Agosto", + "september": "Setembro", + "october": "Outubro", + "november": "Novembro", + "december": "Dezembro" + }, + "special_notes": { + "search_prefix": "Pesquisar:" + }, + "test_sync": { + "not-configured": "O host do servidor de sincronização não está configurado. Por favor, configure a sincronização primeiro.", + "successful": "A comunicação com o servidor de sincronização foi bem-sucedida, a sincronização foi iniciada." + }, + "keyboard_action_names": { + "back-in-note-history": "Voltar no histórico da nota", + "forward-in-note-history": "Avançar no histórico da nota", + "jump-to-note": "Ir para...", + "command-palette": "Paleta de Comandos", + "scroll-to-active-note": "Rolar até a nota atual", + "quick-search": "Busca Rápida", + "search-in-subtree": "Buscar na subárvore", + "expand-subtree": "Expandir subárvore", + "collapse-tree": "Recolher Árvore", + "collapse-subtree": "Recolher Subárvore", + "sort-child-notes": "Ordenar Notas Filhas", + "create-note-after": "Criar Nota Após", + "create-note-into": "Criar Nota Dentro", + "create-note-into-inbox": "Criar Nota na Caixa de Entrada", + "delete-notes": "Excluir Notas", + "move-note-up": "Mover Nota Para Cima", + "move-note-down": "Mover Nota Para Baixo", + "move-note-up-in-hierarchy": "Mover Nota Para Cima na Hierarquia", + "move-note-down-in-hierarchy": "Mover Nota Para Baixo na Hierarquia", + "edit-note-title": "Editar Título da Nota", + "edit-branch-prefix": "Editar prefixo da ramificação", + "clone-notes-to": "Clonar Notas Para", + "move-notes-to": "Mover Notas Para", + "copy-notes-to-clipboard": "Copiar Notas para a Área de Transferência", + "paste-notes-from-clipboard": "Colar Notas da Área de Transferência", + "cut-notes-to-clipboard": "Recortar Notas para a Área de Transferência", + "select-all-notes-in-parent": "Selecionar Todas as Notas no Pai", + "add-note-above-to-selection": "Adicionar Nota Acima à Seleção", + "add-note-below-to-selection": "Adicionar Nota Abaixo à Seleção", + "duplicate-subtree": "Duplicar Subárvore", + "open-new-tab": "Abrir Nova Guia", + "close-active-tab": "Fechar Guia Ativa", + "reopen-last-tab": "Reabrir Última Guia", + "activate-next-tab": "Ativar Próxima Guia", + "activate-previous-tab": "Ativar Guia Anterior", + "open-new-window": "Abrir Nova Janela", + "toggle-system-tray-icon": "Alternar Ícone da Bandeja do Sistema", + "toggle-zen-mode": "Alternar Modo Zen", + "switch-to-first-tab": "Alternar para a Primeira Guia", + "switch-to-second-tab": "Alternar para a Segunda Guia", + "switch-to-third-tab": "Alternar para a Terceira Guia", + "switch-to-fourth-tab": "Alternar para a Quarta Guia", + "switch-to-fifth-tab": "Alternar para a Quinta Guia", + "switch-to-sixth-tab": "Alternar para a Sexta Guia", + "switch-to-seventh-tab": "Alternar para a Sétima Guia", + "switch-to-eighth-tab": "Alternar para a Oitava Guia", + "switch-to-ninth-tab": "Alternar para a Nona Guia", + "switch-to-last-tab": "Alternar para a Última Guia", + "show-note-source": "Exibir Fonte da Nota", + "show-options": "Exibir Opções", + "show-revisions": "Exibir Revisões", + "show-recent-changes": "Exibir Alterações Recentes", + "show-sql-console": "Exibir Console SQL", + "show-backend-log": "Exibir Log do Backend", + "show-help": "Exibir Ajuda", + "show-cheatsheet": "Exibir Cheatsheet", + "add-link-to-text": "Adicionar Link ao Texto", + "follow-link-under-cursor": "Seguir Link sob o Cursor", + "insert-date-and-time-to-text": "Inserir Data e Hora ao Texto", + "paste-markdown-into-text": "Colar Markdown no Texto", + "cut-into-note": "Recortar em Nota", + "add-include-note-to-text": "Adicionar Nota de Inclusão ao Texto", + "edit-read-only-note": "Editar Nota Somente-Leitura", + "add-new-label": "Adicionar Nova Etiqueta", + "add-new-relation": "Adicionar Nova Relação", + "toggle-ribbon-tab-classic-editor": "Alternar Guia da Faixa de Opções Editor Clássico", + "toggle-ribbon-tab-basic-properties": "Alternar Guia da Faixa de Opções Propriedades Básicas", + "toggle-ribbon-tab-book-properties": "Alternar Guia da Faixa de Opções Propriedades do Livro", + "toggle-ribbon-tab-file-properties": "Alternar Guia da Faixa de Opções Propriedades do Arquivo", + "toggle-ribbon-tab-image-properties": "Alternar Guia da Faixa de Opções Propriedades da Imagem", + "toggle-ribbon-tab-owned-attributes": "Alternar Guia da Faixa de Opções Atributos Possuídos", + "toggle-ribbon-tab-inherited-attributes": "Alternar Guia da Faixa de Opções Atributos Herdados", + "toggle-ribbon-tab-promoted-attributes": "Alternar Guia da Faixa de Opções Atributos Promovidos", + "toggle-ribbon-tab-note-map": "Alternar Guia da Faixa de Opções Mapa de Notas", + "toggle-ribbon-tab-note-info": "Alternar Guia da Faixa de Opções Informações da Nota", + "toggle-ribbon-tab-note-paths": "Alternar Guia da Faixa de Opções Caminhos de Nota", + "toggle-ribbon-tab-similar-notes": "Alternar Guia da Faixa de Opções Notas Semelhantes", + "toggle-right-pane": "Alternar Painel Direito", + "print-active-note": "Imprimir Nota Atual", + "export-active-note-as-pdf": "Exportar Nota Atual como PDF", + "open-note-externally": "Abrir Nota Externamente", + "render-active-note": "Renderizar Nota Atual", + "run-active-note": "Executar Nota Atual", + "toggle-note-hoisting": "Alternar Elevação de Nota", + "unhoist-note": "Desfazer Elevação de Nota", + "reload-frontend-app": "Recarregar Frontend", + "open-developer-tools": "Abrir Ferramentas de Desenvolvedor", + "find-in-text": "Localizar no Texto", + "toggle-left-pane": "Alternar Painel Esquerdo", + "toggle-full-screen": "Alternar Tela Cheia", + "zoom-out": "Reduzir Zoom", + "zoom-in": "Aumentar Zoom", + "reset-zoom-level": "Redefinir Nível de Zoom", + "copy-without-formatting": "Copiar Sem Formatação", + "force-save-revision": "Forçar Salvamento da Revisão" + }, + "weekdayNumber": "Semana {weekNumber}", + "quarterNumber": "Trimestre {quarterNumber}", + "hidden-subtree": { + "root-title": "Notas Ocultas", + "search-history-title": "Histórico de Pesquisa", + "note-map-title": "Mapa de Notas", + "sql-console-history-title": "Histórico do Console SQL", + "shared-notes-title": "Notas Compartilhadas", + "bulk-action-title": "Ação em Massa", + "backend-log-title": "Log do Backend", + "user-hidden-title": "Usuário Oculto", + "launch-bar-templates-title": "Modelos da Barra de Atalhos", + "built-in-widget-title": "Widget Incorporado", + "spacer-title": "Espaçador", + "custom-widget-title": "Widget Personalizado", + "go-to-previous-note-title": "Ir para Nota Anterior", + "go-to-next-note-title": "Ir para Próxima Nota", + "new-note-title": "Nova Nota", + "search-notes-title": "Pesquisar Notas", + "jump-to-note-title": "Ir para...", + "calendar-title": "Calendário", + "recent-changes-title": "Alterações Recentes", + "bookmarks-title": "Favoritos", + "open-today-journal-note-title": "Abrir Nota do Diário de Hoje", + "quick-search-title": "Pesquisa Rápida", + "protected-session-title": "Sessão Protegida", + "sync-status-title": "Status de Sincronização", + "settings-title": "Configurações", + "llm-chat-title": "Conversar com as Notas", + "options-title": "Opções", + "appearance-title": "Aparência", + "shortcuts-title": "Atalhos", + "text-notes": "Notas de Texto", + "code-notes-title": "Notas de Código", + "images-title": "Imagens", + "spellcheck-title": "Verificação Ortográfica", + "password-title": "Senha", + "multi-factor-authentication-title": "MFA", + "etapi-title": "ETAPI", + "backup-title": "Backup", + "sync-title": "Sincronizar", + "ai-llm-title": "AI/LLM", + "other": "Outros", + "advanced-title": "Avançado", + "user-guide": "Guia do Usuário", + "localization": "Idioma e Região", + "inbox-title": "Inbox", + "base-abstract-launcher-title": "Atalho Abstrato Base", + "command-launcher-title": "Atalho de Comando", + "note-launcher-title": "Atalho de Notas", + "script-launcher-title": "Atalho de Script", + "launch-bar-title": "Barra de Atalhos", + "available-launchers-title": "Atalhos disponíveis", + "visible-launchers-title": "Atalhos Visíveis" + }, + "notes": { + "new-note": "Nova nota", + "duplicate-note-suffix": "(dup)", + "duplicate-note-title": "{{- noteTitle }} {{ duplicateNoteSuffix }}" + }, + "backend_log": { + "log-does-not-exist": "O arquivo de log do backend '{{ fileName }}' ainda não existe.", + "reading-log-failed": "Falha ao ler o arquivo de log do backend '{{ fileName }}'." + }, + "content_renderer": { + "note-cannot-be-displayed": "Esta nota não pode ser exibida." + }, + "pdf": { + "export_filter": "Documento PDF (*.pdf)", + "unable-to-export-message": "A nota atual não pôde ser exportada como PDF.", + "unable-to-export-title": "Não foi possível exportar como PDF", + "unable-to-save-message": "O arquivo selecionado não pôde ser salvo. Tente novamente ou selecione outro destino." + }, + "tray": { + "tooltip": "Trilium Notes", + "close": "Sair do Trilium", + "recents": "Notas recentes", + "bookmarks": "Favoritos", + "today": "Abrir a nota do diário de hoje", + "new-note": "Nova nota", + "show-windows": "Exibir janelas", + "open_new_window": "Abrir nova janela" + }, + "migration": { + "old_version": "A migração direta da sua versão atual não é suportada. Por favor, atualize primeiro para a versão mais recente v0.60.4 e somente depois para esta versão.", + "error_message": "Erro durante a migração para a versão {{version}}: {{stack}}", + "wrong_db_version": "A versão do banco de dados ({{version}}) é mais recente do que a esperada pelo aplicativo ({{targetVersion}}), o que significa que ele foi criado por uma versão mais nova e incompatível do Trilium. Atualize para a versão mais recente do Trilium para resolver esse problema." + }, + "modals": { + "error_title": "Erro" + }, + "share_theme": { + "site-theme": "Tema do site", + "search_placeholder": "Pesquisar...", + "image_alt": "Imagem do artigo", + "last-updated": "Atualizado pela última vez em {{- date}}", + "subpages": "Subpáginas:", + "on-this-page": "Nesta página", + "expand": "Expandir" + }, + "hidden_subtree_templates": { + "text-snippet": "Trecho de texto", + "description": "Descrição", + "list-view": "Visualização em lista", + "grid-view": "Visualização em grade", + "calendar": "Calendário", + "table": "Tabela", + "geo-map": "Mapa geográfico", + "start-date": "Data de início", + "end-date": "Data de término", + "start-time": "Hora de início", + "end-time": "Hora de término", + "geolocation": "Geolocalização", + "built-in-templates": "Modelos integrados", + "board": "Quadro", + "status": "Status", + "board_note_first": "Primeira nota", + "board_note_second": "Segunda nota", + "board_note_third": "Terceira nota", + "board_status_todo": "A fazer", + "board_status_progress": "Em andamento", + "board_status_done": "Concluído" + } } diff --git a/apps/server/src/assets/translations/ro/server.json b/apps/server/src/assets/translations/ro/server.json index 2c6a811366..e5505f9758 100644 --- a/apps/server/src/assets/translations/ro/server.json +++ b/apps/server/src/assets/translations/ro/server.json @@ -1,280 +1,431 @@ { - "keyboard_actions": { - "activate-next-tab": "Activează tab-ul din dreapta", - "activate-previous-tab": "Activează tab-ul din stânga", - "add-include-note-to-text": "Deschide fereastra de includere notițe", - "add-link-to-text": "Deschide fereastra de adaugă legături în text", - "add-new-label": "Crează o nouă etichetă", - "add-note-above-to-the-selection": "Adaugă notița deasupra selecției", - "add-note-below-to-selection": "Adaugă notița deasupra selecției", - "attributes-labels-and-relations": "Atribute (etichete și relații)", - "close-active-tab": "Închide tab-ul activ", - "collapse-subtree": "Minimizează ierarhia notiței curente", - "collapse-tree": "Minimizează întreaga ierarhie de notițe", - "copy-notes-to-clipboard": "Copiază notițele selectate în clipboard", - "copy-without-formatting": "Copiază textul selectat fără formatare", - "create-new-relation": "Crează o nouă relație", - "create-note-into-inbox": "Crează o notiță și o deschide în inbox (dacă este definit) sau notița zilnică", - "cut-notes-to-clipboard": "Decupează notițele selectate în clipboard", - "creating-and-moving-notes": "Crearea și mutarea notițelor", - "cut-into-note": "Decupează selecția din notița curentă și crează o subnotiță cu textul selectat", - "delete-note": "Șterge notița", - "dialogs": "Ferestre", - "duplicate-subtree": "Dublifică subnotițele", - "edit-branch-prefix": "Afișează ecranul „Editează prefixul ramurii”", - "edit-note-title": "Sare de la arborele notițelor la detaliile notiței și editează titlul", - "edit-readonly-note": "Editează o notiță care este în modul doar în citire", - "eight-tab": "Activează cel de-al optelea tab din listă", - "expand-subtree": "Expandează ierarhia notiței curente", - "fifth-tab": "Activează cel de-al cincelea tab din listă", - "first-tab": "Activează cel primul tab din listă", - "follow-link-under-cursor": "Urmărește legătura de sub poziția cursorului", - "force-save-revision": "Forțează crearea/salvarea unei noi revizii ale notiției curente", - "fourth-tab": "Activează cel de-al patrulea tab din listă", - "insert-date-and-time-to-text": "Inserează data curentă și timpul în text", - "last-tab": "Activează ultimul tab din listă", - "move-note-down": "Mută notița mai jos", - "move-note-down-in-hierarchy": "Mută notița mai jos în ierarhie", - "move-note-up": "Mută notița mai sus", - "move-note-up-in-hierarchy": "Mută notița mai sus în ierarhie", - "ninth-tab": "Activează cel de-al nouălea tab din listă", - "note-clipboard": "Clipboard-ul notițelor", - "note-navigation": "Navigarea printre notițe", - "open-dev-tools": "Deschide uneltele de dezvoltator", - "open-jump-to-note-dialog": "Deschide ecranul „Sari la notiță”", - "open-new-tab": "Deschide un tab nou", - "open-new-window": "Deschide o nouă fereastră goală", - "open-note-externally": "Deschide notița ca un fișier utilizând aplicația implicită", - "other": "Altele", - "paste-markdown-into-text": "Lipește text Markdown din clipboard în notița de tip text", - "paste-notes-from-clipboard": "Lipește notițele din clipboard în notița activă", - "print-active-note": "Imprimă notița activă", - "reload-frontend-app": "Reîncarcă interfața grafică", - "render-active-note": "Reîmprospătează notița activă", - "reopen-last-tab": "Deschide din nou ultimul tab închis", - "reset-zoom-level": "Resetează nivelul de magnificare", - "ribbon-tabs": "Tab-urile din panglică", - "run-active-note": "Rulează notița curentă de tip JavaScript (frontend sau backend)", - "search-in-subtree": "Caută notițe în ierarhia notiței active", - "second-tab": "Activează cel de-al doilea tab din listă", - "select-all-notes-in-parent": "Selectează toate notițele din nivelul notiței curente", - "seventh-tab": "Activează cel de-al șaptelea tab din listă", - "show-backend-log": "Afișează fereastra „Log-uri din backend”", - "show-help": "Afișează informații utile", - "show-note-source": "Afișează fereastra „Sursa notiței”", - "show-options": "Afișează fereastra de opțiuni", - "show-recent-changes": "Afișează fereastra „Schimbări recente”", - "show-revisions": "Afișează fereastra „Revizii ale notiței”", - "show-sql-console": "Afișează ecranul „Consolă SQL”", - "sixth-tab": "Activează cel de-al șaselea tab din listă", - "sort-child-notes": "Ordonează subnotițele", - "tabs-and-windows": "Tab-uri și ferestre", - "text-note-operations": "Operații asupra notițelor text", - "third-tab": "Activează cel de-al treilea tab din listă", - "toggle-basic-properties": "Comută tab-ul „Proprietăți de bază”", - "toggle-book-properties": "Comută tab-ul „Proprietăți ale cărții”", - "toggle-file-properties": "Comută tab-ul „Proprietăți fișier”", - "toggle-full-screen": "Comută modul ecran complet", - "toggle-image-properties": "Comută tab-ul „Proprietăți imagini”", - "toggle-inherited-attributes": "Comută tab-ul „Atribute moștenite”", - "toggle-left-note-tree-panel": "Comută panoul din stânga (arborele notițelor)", - "toggle-link-map": "Comută harta legăturilor", - "toggle-note-hoisting": "Comută focalizarea pe notița curentă", - "toggle-note-info": "Comută tab-ul „Informații despre notiță”", - "toggle-note-paths": "Comută tab-ul „Căile notiței”", - "toggle-owned-attributes": "Comută tab-ul „Atribute proprii”", - "toggle-promoted-attributes": "Comută tab-ul „Atribute promovate”", - "toggle-right-pane": "Comută afișarea panoului din dreapta, ce include tabela de conținut și evidențieri", - "toggle-similar-notes": "Comută tab-ul „Notițe similare”", - "toggle-tray": "Afișează/ascunde aplicația din tray-ul de sistem", - "unhoist": "Defocalizează complet", - "zoom-in": "Mărește zoom-ul", - "zoom-out": "Micșorează zoom-ul", - "toggle-classic-editor-toolbar": "Comută tab-ul „Formatare” pentru editorul cu bară fixă", - "export-as-pdf": "Exportă notița curentă ca PDF", - "show-cheatsheet": "Afișează o fereastră cu scurtături de la tastatură comune", - "toggle-zen-mode": "Activează/dezactivează modul zen (o interfață minimală, fără distrageri)" - }, - "login": { - "button": "Autentifică", - "heading": "Autentificare în Trilium", - "incorrect-password": "Parola nu este corectă. Încercați din nou.", - "password": "Parolă", - "remember-me": "Ține-mă minte", - "title": "Autentificare" - }, - "set_password": { - "title": "Setare parolă", - "heading": "Setare parolă", - "button": "Setează parola", - "description": "Înainte de a putea utiliza Trilium din navigator, trebuie mai întâi setată o parolă. Ulterior această parolă va fi folosită la autentificare.", - "password": "Parolă", - "password-confirmation": "Confirmarea parolei" - }, - "javascript-required": "Trilium necesită JavaScript să fie activat pentru a putea funcționa.", - "setup": { - "heading": "Instalarea Trilium Notes", - "init-in-progress": "Se inițializează documentul", - "new-document": "Sunt un utilizator nou și doresc să creez un document Trilium pentru notițele mele", - "next": "Mai departe", - "redirecting": "În scurt timp veți fi redirecționat la aplicație.", - "sync-from-desktop": "Am deja o instanță de desktop și aș dori o sincronizare cu aceasta", - "sync-from-server": "Am deja o instanță de server și doresc o sincronizare cu aceasta", - "title": "Inițializare" - }, - "setup_sync-from-desktop": { - "description": "Acești pași trebuie urmați de pe aplicația de desktop:", - "heading": "Sincronizare cu aplicația desktop", - "step1": "Deschideți aplicația Trilium Notes pentru desktop.", - "step2": "Din meniul Trilium, dați clic pe Opțiuni.", - "step3": "Clic pe categoria „Sincronizare”.", - "step4": "Schimbați adresa server-ului către: {{- host}} și apăsați „Salvează”.", - "step5": "Clic pe butonul „Testează sincronizarea” pentru a verifica dacă conexiunea a fost făcută cu succes.", - "step6": "După ce ați completat pașii, dați click {{- link}}.", - "step6-here": "aici" - }, - "setup_sync-from-server": { - "back": "Înapoi", - "finish-setup": "Finalizează inițializarea", - "heading": "Sincronizare cu server-ul", - "instructions": "Introduceți adresa server-ului Trilium și credențialele în secțiunea de jos. Astfel se va descărca întregul document Trilium de pe server și se va configura sincronizarea cu acesta. În funcție de dimensiunea documentului și viteza rețelei, acest proces poate dura.", - "note": "De remarcat:", - "password": "Parolă", - "proxy-instruction": "Dacă lăsați câmpul de proxy nesetat, proxy-ul de sistem va fi folosit (valabil doar pentru aplicația de desktop)", - "proxy-server": "Server-ul proxy (opțional)", - "proxy-server-placeholder": "https://:", - "server-host": "Adresa server-ului Trilium", - "server-host-placeholder": "https://:", - "password-placeholder": "Parolă" - }, - "setup_sync-in-progress": { - "heading": "Sincronizare în curs", - "outstanding-items": "Elemente de sincronizat:", - "outstanding-items-default": "-", - "successful": "Sincronizarea a fost configurată cu succes. Poate dura ceva timp pentru a finaliza sincronizarea inițială. După efectuarea ei se va redirecționa către pagina de autentificare." - }, - "share_404": { - "heading": "Pagină negăsită", - "title": "Pagină negăsită" - }, - "share_page": { - "child-notes": "Subnotițe:", - "clipped-from": "Această notiță a fost decupată inițial de pe {{- url}}", - "no-content": "Această notiță nu are conținut.", - "parent": "părinte:" - }, - "weekdays": { - "monday": "Luni", - "tuesday": "Marți", - "wednesday": "Miercuri", - "thursday": "Joi", - "friday": "Vineri", - "saturday": "Sâmbătă", - "sunday": "Duminică" - }, - "months": { - "january": "Ianuarie", - "february": "Februarie", - "march": "Martie", - "april": "Aprilie", - "may": "Mai", - "june": "Iunie", - "july": "Iulie", - "august": "August", - "september": "Septembrie", - "october": "Octombrie", - "november": "Noiembrie", - "december": "Decembrie" - }, - "special_notes": { - "search_prefix": "Căutare:" - }, - "test_sync": { - "not-configured": "Calea către serverul de sincronizare nu este configurată. Configurați sincronizarea înainte.", - "successful": "Comunicarea cu serverul de sincronizare a avut loc cu succes, s-a început sincronizarea." - }, - "hidden-subtree": { - "advanced-title": "Setări avansate", - "appearance-title": "Aspect", - "available-launchers-title": "Lansatoare disponibile", - "backup-title": "Copii de siguranță", - "base-abstract-launcher-title": "Lansator abstract de bază", - "bookmarks-title": "Semne de carte", - "built-in-widget-title": "Widget predefinit", - "bulk-action-title": "Acțiuni în masă", - "calendar-title": "Calendar", - "code-notes-title": "Notițe de cod", - "command-launcher-title": "Lansator de comenzi", - "custom-widget-title": "Widget personalizat", - "etapi-title": "ETAPI", - "go-to-previous-note-title": "Mergi la notița anterioară", - "images-title": "Imagini", - "jump-to-note-title": "Sari la notiță", - "launch-bar-title": "Bară de lansare", - "new-note-title": "Notiță nouă", - "note-launcher-title": "Lansator de notițe", - "note-map-title": "Harta notițelor", - "open-today-journal-note-title": "Deschide notița de astăzi", - "options-title": "Opțiuni", - "other": "Diverse", - "password-title": "Parolă", - "protected-session-title": "Sesiune protejată", - "recent-changes-title": "Schimbări recente", - "script-launcher-title": "Lansator de script-uri", - "search-history-title": "Istoric de căutare", - "settings-title": "Setări", - "shared-notes-title": "Notițe partajate", - "quick-search-title": "Căutare rapidă", - "root-title": "Notițe ascunse", - "search-notes-title": "Căutare notițe", - "shortcuts-title": "Scurtături", - "spellcheck-title": "Corectare gramaticală", - "sync-status-title": "Starea sincronizării", - "sync-title": "Sincronizare", - "text-notes": "Notițe text", - "user-hidden-title": "Definite de utilizator", - "backend-log-title": "Log backend", - "spacer-title": "Separator", - "sql-console-history-title": "Istoricul consolei SQL", - "go-to-next-note-title": "Mergi la notița următoare", - "launch-bar-templates-title": "Șabloane bară de lansare", - "visible-launchers-title": "Lansatoare vizibile", - "user-guide": "Ghidul de utilizare" - }, - "notes": { - "new-note": "Notiță nouă" - }, - "backend_log": { - "log-does-not-exist": "Fișierul de loguri de backend „{{ fileName }}” nu există (încă).", - "reading-log-failed": "Nu s-a putut citi fișierul de loguri de backend „{{fileName}}”." - }, - "geo-map": { - "create-child-note-instruction": "Clic pe hartă pentru a crea o nouă notiță la acea poziție sau apăsați Escape pentru a renunța." - }, - "content_renderer": { - "note-cannot-be-displayed": "Acest tip de notiță nu poate fi afișat." - }, - "pdf": { - "export_filter": "Document PDF (*.pdf)", - "unable-to-export-message": "Notița curentă nu a putut fi exportată ca PDF.", - "unable-to-export-title": "Nu s-a putut exporta ca PDF", - "unable-to-save-message": "Nu s-a putut scrie fișierul selectat. Încercați din nou sau selectați altă destinație." - }, - "tray": { - "bookmarks": "Semne de carte", - "close": "Închide Trilium", - "new-note": "Notiță nouă", - "recents": "Notițe recente", - "today": "Mergi la notița de astăzi", - "tooltip": "Trilium Notes", - "show-windows": "Afișează ferestrele" - }, - "migration": { - "error_message": "Eroare la migrarea către versiunea {{version}}: {{stack}}", - "old_version": "Nu se poate migra la ultima versiune direct de la versiunea dvs. Actualizați mai întâi la versiunea v0.60.4 și ulterior la această versiune.", - "wrong_db_version": "Versiunea actuală a bazei de date ({{version}}) este mai nouă decât versiunea de bază de date suportată de aplicație ({{targetVersion}}), ceea ce înseamnă că a fost creată de către o versiune mai nouă de Trilium. Actualizați aplicația la ultima versiune pentru a putea continua." - }, - "modals": { - "error_title": "Eroare" - } + "keyboard_actions": { + "activate-next-tab": "Activează tab-ul din dreapta", + "activate-previous-tab": "Activează tab-ul din stânga", + "add-include-note-to-text": "Deschide fereastra de includere notițe", + "add-link-to-text": "Deschide fereastra de adaugă legături în text", + "add-new-label": "Crează o nouă etichetă", + "add-note-above-to-the-selection": "Adaugă notița deasupra selecției", + "add-note-below-to-selection": "Adaugă notița deasupra selecției", + "attributes-labels-and-relations": "Atribute (etichete și relații)", + "close-active-tab": "Închide tab-ul activ", + "collapse-subtree": "Minimizează ierarhia notiței curente", + "collapse-tree": "Minimizează întreaga ierarhie de notițe", + "copy-notes-to-clipboard": "Copiază notițele selectate în clipboard", + "copy-without-formatting": "Copiază textul selectat fără formatare", + "create-new-relation": "Crează o nouă relație", + "create-note-into-inbox": "Crează o notiță și o deschide în inbox (dacă este definit) sau notița zilnică", + "cut-notes-to-clipboard": "Decupează notițele selectate în clipboard", + "creating-and-moving-notes": "Crearea și mutarea notițelor", + "cut-into-note": "Decupează selecția din notița curentă și crează o subnotiță cu textul selectat", + "delete-note": "Șterge notița", + "dialogs": "Ferestre", + "duplicate-subtree": "Dublifică subnotițele", + "edit-branch-prefix": "Afișează ecranul „Editează prefixul ramurii”", + "edit-note-title": "Sare de la arborele notițelor la detaliile notiței și editează titlul", + "edit-readonly-note": "Editează o notiță care este în modul doar în citire", + "eight-tab": "Activează cel de-al optelea tab din listă", + "expand-subtree": "Expandează ierarhia notiței curente", + "fifth-tab": "Activează cel de-al cincelea tab din listă", + "first-tab": "Activează cel primul tab din listă", + "follow-link-under-cursor": "Urmărește legătura de sub poziția cursorului", + "force-save-revision": "Forțează crearea/salvarea unei noi revizii ale notiției curente", + "fourth-tab": "Activează cel de-al patrulea tab din listă", + "insert-date-and-time-to-text": "Inserează data curentă și timpul în text", + "last-tab": "Activează ultimul tab din listă", + "move-note-down": "Mută notița mai jos", + "move-note-down-in-hierarchy": "Mută notița mai jos în ierarhie", + "move-note-up": "Mută notița mai sus", + "move-note-up-in-hierarchy": "Mută notița mai sus în ierarhie", + "ninth-tab": "Activează cel de-al nouălea tab din listă", + "note-clipboard": "Clipboard-ul notițelor", + "note-navigation": "Navigarea printre notițe", + "open-dev-tools": "Deschide uneltele de dezvoltator", + "open-jump-to-note-dialog": "Deschide ecranul „Sari la notiță”", + "open-new-tab": "Deschide un tab nou", + "open-new-window": "Deschide o nouă fereastră goală", + "open-note-externally": "Deschide notița ca un fișier utilizând aplicația implicită", + "other": "Altele", + "paste-markdown-into-text": "Lipește text Markdown din clipboard în notița de tip text", + "paste-notes-from-clipboard": "Lipește notițele din clipboard în notița activă", + "print-active-note": "Imprimă notița activă", + "reload-frontend-app": "Reîncarcă interfața grafică", + "render-active-note": "Reîmprospătează notița activă", + "reopen-last-tab": "Deschide din nou ultimul tab închis", + "reset-zoom-level": "Resetează nivelul de magnificare", + "ribbon-tabs": "Tab-urile din panglică", + "run-active-note": "Rulează notița curentă de tip JavaScript (frontend sau backend)", + "search-in-subtree": "Caută notițe în ierarhia notiței active", + "second-tab": "Activează cel de-al doilea tab din listă", + "select-all-notes-in-parent": "Selectează toate notițele din nivelul notiței curente", + "seventh-tab": "Activează cel de-al șaptelea tab din listă", + "show-backend-log": "Afișează fereastra „Log-uri din backend”", + "show-help": "Afișează informații utile", + "show-note-source": "Afișează fereastra „Sursa notiței”", + "show-options": "Afișează fereastra de opțiuni", + "show-recent-changes": "Afișează fereastra „Schimbări recente”", + "show-revisions": "Afișează fereastra „Revizii ale notiței”", + "show-sql-console": "Afișează ecranul „Consolă SQL”", + "sixth-tab": "Activează cel de-al șaselea tab din listă", + "sort-child-notes": "Ordonează subnotițele", + "tabs-and-windows": "Tab-uri și ferestre", + "text-note-operations": "Operații asupra notițelor text", + "third-tab": "Activează cel de-al treilea tab din listă", + "toggle-basic-properties": "Comută tab-ul „Proprietăți de bază”", + "toggle-book-properties": "Comută tab-ul „Proprietăți ale cărții”", + "toggle-file-properties": "Comută tab-ul „Proprietăți fișier”", + "toggle-full-screen": "Comută modul ecran complet", + "toggle-image-properties": "Comută tab-ul „Proprietăți imagini”", + "toggle-inherited-attributes": "Comută tab-ul „Atribute moștenite”", + "toggle-left-note-tree-panel": "Comută panoul din stânga (arborele notițelor)", + "toggle-link-map": "Comută harta legăturilor", + "toggle-note-hoisting": "Comută focalizarea pe notița curentă", + "toggle-note-info": "Comută tab-ul „Informații despre notiță”", + "toggle-note-paths": "Comută tab-ul „Căile notiței”", + "toggle-owned-attributes": "Comută tab-ul „Atribute proprii”", + "toggle-promoted-attributes": "Comută tab-ul „Atribute promovate”", + "toggle-right-pane": "Comută afișarea panoului din dreapta, ce include tabela de conținut și evidențieri", + "toggle-similar-notes": "Comută tab-ul „Notițe similare”", + "toggle-tray": "Afișează/ascunde aplicația din tray-ul de sistem", + "unhoist": "Defocalizează complet", + "zoom-in": "Mărește zoom-ul", + "zoom-out": "Micșorează zoom-ul", + "toggle-classic-editor-toolbar": "Comută tab-ul „Formatare” pentru editorul cu bară fixă", + "export-as-pdf": "Exportă notița curentă ca PDF", + "show-cheatsheet": "Afișează o fereastră cu scurtături de la tastatură comune", + "toggle-zen-mode": "Activează/dezactivează modul zen (o interfață minimală, fără distrageri)", + "back-in-note-history": "Mergi la notița anterioară din istoric", + "forward-in-note-history": "Mergi la următoarea notiță din istoric", + "scroll-to-active-note": "Derulează la notița activă în lista de notițe", + "quick-search": "Mergi la bara de căutare rapidă", + "create-note-after": "Crează o notiță după cea activă", + "create-note-into": "Crează notiță ca subnotiță a notiței active", + "clone-notes-to": "Clonează notițele selectate", + "move-notes-to": "Mută notițele selectate", + "find-in-text": "Afișează/ascunde panoul de căutare", + "open-command-palette": "Deschide paleta de comenzi" + }, + "login": { + "button": "Autentifică", + "heading": "Autentificare în Trilium", + "incorrect-password": "Parola nu este corectă. Încercați din nou.", + "password": "Parolă", + "remember-me": "Ține-mă minte", + "title": "Autentificare", + "incorrect-totp": "TOTP-ul este incorect. Încercați din nou.", + "sign_in_with_sso": "Autentificare cu {{ ssoIssuerName }}" + }, + "set_password": { + "title": "Setare parolă", + "heading": "Setare parolă", + "button": "Setează parola", + "description": "Înainte de a putea utiliza Trilium din navigator, trebuie mai întâi setată o parolă. Ulterior această parolă va fi folosită la autentificare.", + "password": "Parolă", + "password-confirmation": "Confirmarea parolei" + }, + "javascript-required": "Trilium necesită JavaScript să fie activat pentru a putea funcționa.", + "setup": { + "heading": "Instalarea Trilium Notes", + "init-in-progress": "Se inițializează documentul", + "new-document": "Sunt un utilizator nou și doresc să creez un document Trilium pentru notițele mele", + "next": "Mai departe", + "redirecting": "În scurt timp veți fi redirecționat la aplicație.", + "sync-from-desktop": "Am deja o instanță de desktop și aș dori o sincronizare cu aceasta", + "sync-from-server": "Am deja o instanță de server și doresc o sincronizare cu aceasta", + "title": "Inițializare" + }, + "setup_sync-from-desktop": { + "description": "Acești pași trebuie urmați de pe aplicația de desktop:", + "heading": "Sincronizare cu aplicația desktop", + "step1": "Deschideți aplicația Trilium Notes pentru desktop.", + "step2": "Din meniul Trilium, dați clic pe Opțiuni.", + "step3": "Clic pe categoria „Sincronizare”.", + "step4": "Schimbați adresa server-ului către: {{- host}} și apăsați „Salvează”.", + "step5": "Clic pe butonul „Testează sincronizarea” pentru a verifica dacă conexiunea a fost făcută cu succes.", + "step6": "După ce ați completat pașii, dați click {{- link}}.", + "step6-here": "aici" + }, + "setup_sync-from-server": { + "back": "Înapoi", + "finish-setup": "Finalizează inițializarea", + "heading": "Sincronizare cu server-ul", + "instructions": "Introduceți adresa server-ului Trilium și credențialele în secțiunea de jos. Astfel se va descărca întregul document Trilium de pe server și se va configura sincronizarea cu acesta. În funcție de dimensiunea documentului și viteza rețelei, acest proces poate dura.", + "note": "De remarcat:", + "password": "Parolă", + "proxy-instruction": "Dacă lăsați câmpul de proxy nesetat, proxy-ul de sistem va fi folosit (valabil doar pentru aplicația de desktop)", + "proxy-server": "Server-ul proxy (opțional)", + "proxy-server-placeholder": "https://:", + "server-host": "Adresa server-ului Trilium", + "server-host-placeholder": "https://:", + "password-placeholder": "Parolă" + }, + "setup_sync-in-progress": { + "heading": "Sincronizare în curs", + "outstanding-items": "Elemente de sincronizat:", + "outstanding-items-default": "-", + "successful": "Sincronizarea a fost configurată cu succes. Poate dura ceva timp pentru a finaliza sincronizarea inițială. După efectuarea ei se va redirecționa către pagina de autentificare." + }, + "share_404": { + "heading": "Pagină negăsită", + "title": "Pagină negăsită" + }, + "share_page": { + "child-notes": "Subnotițe:", + "clipped-from": "Această notiță a fost decupată inițial de pe {{- url}}", + "no-content": "Această notiță nu are conținut.", + "parent": "părinte:" + }, + "weekdays": { + "monday": "Luni", + "tuesday": "Marți", + "wednesday": "Miercuri", + "thursday": "Joi", + "friday": "Vineri", + "saturday": "Sâmbătă", + "sunday": "Duminică" + }, + "months": { + "january": "Ianuarie", + "february": "Februarie", + "march": "Martie", + "april": "Aprilie", + "may": "Mai", + "june": "Iunie", + "july": "Iulie", + "august": "August", + "september": "Septembrie", + "october": "Octombrie", + "november": "Noiembrie", + "december": "Decembrie" + }, + "special_notes": { + "search_prefix": "Căutare:" + }, + "test_sync": { + "not-configured": "Calea către serverul de sincronizare nu este configurată. Configurați sincronizarea înainte.", + "successful": "Comunicarea cu serverul de sincronizare a avut loc cu succes, s-a început sincronizarea." + }, + "hidden-subtree": { + "advanced-title": "Setări avansate", + "appearance-title": "Aspect", + "available-launchers-title": "Lansatoare disponibile", + "backup-title": "Copii de siguranță", + "base-abstract-launcher-title": "Lansator abstract de bază", + "bookmarks-title": "Semne de carte", + "built-in-widget-title": "Widget predefinit", + "bulk-action-title": "Acțiuni în masă", + "calendar-title": "Calendar", + "code-notes-title": "Notițe de cod", + "command-launcher-title": "Lansator de comenzi", + "custom-widget-title": "Widget personalizat", + "etapi-title": "ETAPI", + "go-to-previous-note-title": "Mergi la notița anterioară", + "images-title": "Imagini", + "launch-bar-title": "Bară de lansare", + "new-note-title": "Notiță nouă", + "note-launcher-title": "Lansator de notițe", + "note-map-title": "Harta notițelor", + "open-today-journal-note-title": "Deschide notița de astăzi", + "options-title": "Opțiuni", + "other": "Diverse", + "password-title": "Parolă", + "protected-session-title": "Sesiune protejată", + "recent-changes-title": "Schimbări recente", + "script-launcher-title": "Lansator de script-uri", + "search-history-title": "Istoric de căutare", + "settings-title": "Setări", + "shared-notes-title": "Notițe partajate", + "quick-search-title": "Căutare rapidă", + "root-title": "Notițe ascunse", + "search-notes-title": "Căutare notițe", + "shortcuts-title": "Scurtături", + "spellcheck-title": "Corectare gramaticală", + "sync-status-title": "Starea sincronizării", + "sync-title": "Sincronizare", + "text-notes": "Notițe text", + "user-hidden-title": "Definite de utilizator", + "backend-log-title": "Log backend", + "spacer-title": "Separator", + "sql-console-history-title": "Istoricul consolei SQL", + "go-to-next-note-title": "Mergi la notița următoare", + "launch-bar-templates-title": "Șabloane bară de lansare", + "visible-launchers-title": "Lansatoare vizibile", + "user-guide": "Ghidul de utilizare", + "jump-to-note-title": "Sari la...", + "llm-chat-title": "Întreabă Notes", + "multi-factor-authentication-title": "Autentificare multi-factor", + "ai-llm-title": "AI/LLM", + "localization": "Limbă și regiune", + "inbox-title": "Inbox" + }, + "notes": { + "new-note": "Notiță nouă", + "duplicate-note-suffix": "(dupl.)", + "duplicate-note-title": "{{- noteTitle }} {{ duplicateNoteSuffix }}" + }, + "backend_log": { + "log-does-not-exist": "Fișierul de loguri de backend „{{ fileName }}” nu există (încă).", + "reading-log-failed": "Nu s-a putut citi fișierul de loguri de backend „{{fileName}}”." + }, + "geo-map": { + "create-child-note-instruction": "Clic pe hartă pentru a crea o nouă notiță la acea poziție sau apăsați Escape pentru a renunța." + }, + "content_renderer": { + "note-cannot-be-displayed": "Acest tip de notiță nu poate fi afișat." + }, + "pdf": { + "export_filter": "Document PDF (*.pdf)", + "unable-to-export-message": "Notița curentă nu a putut fi exportată ca PDF.", + "unable-to-export-title": "Nu s-a putut exporta ca PDF", + "unable-to-save-message": "Nu s-a putut scrie fișierul selectat. Încercați din nou sau selectați altă destinație." + }, + "tray": { + "bookmarks": "Semne de carte", + "close": "Închide Trilium", + "new-note": "Notiță nouă", + "recents": "Notițe recente", + "today": "Mergi la notița de astăzi", + "tooltip": "Trilium Notes", + "show-windows": "Afișează ferestrele", + "open_new_window": "Deschide fereastră nouă" + }, + "migration": { + "error_message": "Eroare la migrarea către versiunea {{version}}: {{stack}}", + "old_version": "Nu se poate migra la ultima versiune direct de la versiunea dvs. Actualizați mai întâi la versiunea v0.60.4 și ulterior la această versiune.", + "wrong_db_version": "Versiunea actuală a bazei de date ({{version}}) este mai nouă decât versiunea de bază de date suportată de aplicație ({{targetVersion}}), ceea ce înseamnă că a fost creată de către o versiune mai nouă de Trilium. Actualizați aplicația la ultima versiune pentru a putea continua." + }, + "modals": { + "error_title": "Eroare" + }, + "keyboard_action_names": { + "quick-search": "Căutare rapidă", + "back-in-note-history": "Înapoi în istoricul notițelor", + "forward-in-note-history": "Înainte în istoricul notițelor", + "jump-to-note": "Mergi la...", + "scroll-to-active-note": "Derulează la notița activă", + "search-in-subtree": "Caută în subnotițe", + "expand-subtree": "Expandează subnotițele", + "collapse-tree": "Minimizează arborele de notițe", + "collapse-subtree": "Ascunde subnotițele", + "sort-child-notes": "Ordonează subnotițele", + "create-note-after": "Crează notiță după", + "create-note-into": "Crează subnotiță în", + "create-note-into-inbox": "Crează notiță în inbox", + "delete-notes": "Șterge notițe", + "move-note-up": "Mută notița deasupra", + "move-note-down": "Mută notița dedesubt", + "move-note-up-in-hierarchy": "Mută notița mai sus în ierarhie", + "move-note-down-in-hierarchy": "Mută notița mai jos în ierarhie", + "edit-note-title": "Editează titlul notiței", + "edit-branch-prefix": "Editează prefixul ramurii", + "clone-notes-to": "Clonează notițele în", + "move-notes-to": "Mută notițele în", + "copy-notes-to-clipboard": "Copiază notițele în clipboard", + "paste-notes-from-clipboard": "Lipește notițele din clipboard", + "cut-notes-to-clipboard": "Decupează notițele în clipboard", + "select-all-notes-in-parent": "Selectează toate notițele din părinte", + "add-note-above-to-selection": "Adaugă notița de deasupra la selecție", + "add-note-below-to-selection": "Adaugă notița de dedesubt la selecție", + "duplicate-subtree": "Dublifică ierarhia", + "open-new-tab": "Deschide în tab nou", + "close-active-tab": "Închide tab-ul activ", + "reopen-last-tab": "Redeschide ultimul tab", + "activate-next-tab": "Activează tab-ul următorul", + "activate-previous-tab": "Activează tab-ul anterior", + "open-new-window": "Deschide în fereastră nouă", + "toggle-system-tray-icon": "Afișează/ascunde iconița din bara de sistem", + "toggle-zen-mode": "Activează/dezactivează modul zen", + "switch-to-first-tab": "Mergi la primul tab", + "switch-to-second-tab": "Mergi la al doilea tab", + "switch-to-third-tab": "Mergi la al treilea tab", + "switch-to-fourth-tab": "Mergi la al patrulea tab", + "switch-to-fifth-tab": "Mergi la al cincelea tab", + "switch-to-sixth-tab": "Mergi la al șaselea tab", + "switch-to-seventh-tab": "Mergi la al șaptelea tab", + "switch-to-eighth-tab": "Mergi la al optelea tab", + "switch-to-ninth-tab": "Mergi la al nouălea tab", + "switch-to-last-tab": "Mergi la ultimul tab", + "show-note-source": "Afișează sursa notiței", + "show-options": "Afișează opțiunile", + "show-revisions": "Afișează reviziile", + "show-recent-changes": "Afișează modificările recente", + "show-sql-console": "Afișează consola SQL", + "show-backend-log": "Afișează log-urile din backend", + "show-help": "Afișează ghidul", + "show-cheatsheet": "Afișează ghidul rapid", + "add-link-to-text": "Inserează o legătură în text", + "follow-link-under-cursor": "Urmează legătura de la poziția curentă", + "insert-date-and-time-to-text": "Inserează data și timpul în text", + "paste-markdown-into-text": "Lipește Markdown în text", + "cut-into-note": "Decupează în subnotiță", + "add-include-note-to-text": "Adaugă o includere de notiță în text", + "edit-read-only-note": "Editează notiță ce este în modul citire", + "add-new-label": "Adaugă o nouă etichetă", + "add-new-relation": "Adaugă o nouă relație", + "toggle-ribbon-tab-classic-editor": "Comută la tab-ul de panglică pentru formatare text", + "toggle-ribbon-tab-basic-properties": "Comută la tab-ul de panglică pentru proprietăți de bază", + "toggle-ribbon-tab-book-properties": "Comută la tab-ul de panglică pentru proprietăți colecție", + "toggle-ribbon-tab-file-properties": "Comută la tab-ul de panglică pentru proprietăți fișier", + "toggle-ribbon-tab-image-properties": "Comută la tab-ul de panglică pentru proprietăți imagini", + "toggle-ribbon-tab-owned-attributes": "Comută la tab-ul de panglică pentru atribute proprii", + "toggle-ribbon-tab-inherited-attributes": "Comută la tab-ul de panglică pentru atribute moștenite", + "toggle-ribbon-tab-promoted-attributes": "Comută la tab-ul de panglică pentru atribute promovate", + "toggle-ribbon-tab-note-map": "Comută la tab-ul de panglică pentru harta notiței", + "toggle-ribbon-tab-note-info": "Comută la tab-ul de panglică pentru informații despre notiță", + "toggle-ribbon-tab-note-paths": "Comută la tab-ul de panglică pentru căile notiței", + "toggle-ribbon-tab-similar-notes": "Comută la tab-ul de panglică pentru notițe similare", + "toggle-right-pane": "Comută panoul din dreapta", + "print-active-note": "Imprimă notița activă", + "export-active-note-as-pdf": "Exportă notița activă ca PDF", + "open-note-externally": "Deschide notița într-o aplicație externă", + "render-active-note": "Randează notița activă", + "run-active-note": "Rulează notița activă", + "toggle-note-hoisting": "Comută focalizarea notiței", + "unhoist-note": "Defocalizează notița", + "reload-frontend-app": "Reîmprospătează aplicația", + "open-developer-tools": "Deschide unelete de dezvoltare", + "find-in-text": "Caută în text", + "toggle-left-pane": "Comută panoul din stânga", + "toggle-full-screen": "Comută mod pe tot ecranul", + "zoom-out": "Micșorare", + "zoom-in": "Mărire", + "reset-zoom-level": "Resetează nivelul de zoom", + "copy-without-formatting": "Copiază fără formatare", + "force-save-revision": "Forțează salvarea unei revizii", + "command-palette": "Paleta de comenzi" + }, + "weekdayNumber": "Săptămâna {weekNumber}", + "quarterNumber": "Trimestrul {quarterNumber}", + "share_theme": { + "site-theme": "Tema site-ului", + "search_placeholder": "Caută...", + "image_alt": "Imaginea articolului", + "last-updated": "Ultima actualizare: {{- date}}", + "subpages": "Subpagini:", + "on-this-page": "Pe această pagină", + "expand": "Expandează" + }, + "hidden_subtree_templates": { + "text-snippet": "Fragment de text", + "description": "Descriere", + "list-view": "Mod listă", + "grid-view": "Mod grilă", + "calendar": "Calendar", + "table": "Tabel", + "geo-map": "Hartă geografică", + "start-date": "Dată de început", + "end-date": "Dată de sfârșit", + "start-time": "Timp de început", + "end-time": "Timp de sfârșit", + "geolocation": "Geolocație", + "built-in-templates": "Șabloane predefinite", + "board": "Tablă Kanban", + "status": "Stare", + "board_note_first": "Prima notiță", + "board_note_second": "A doua notiță", + "board_note_third": "A treia notiță", + "board_status_todo": "De făcut", + "board_status_progress": "În lucru", + "board_status_done": "Finalizat" + } } diff --git a/apps/server/src/assets/translations/ru/server.json b/apps/server/src/assets/translations/ru/server.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/apps/server/src/assets/translations/ru/server.json @@ -0,0 +1 @@ +{} diff --git a/apps/server/src/assets/translations/sr/server.json b/apps/server/src/assets/translations/sr/server.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/apps/server/src/assets/translations/sr/server.json @@ -0,0 +1 @@ +{} diff --git a/apps/server/src/assets/translations/tr/server.json b/apps/server/src/assets/translations/tr/server.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/apps/server/src/assets/translations/tr/server.json @@ -0,0 +1 @@ +{} diff --git a/apps/server/src/assets/translations/tw/server.json b/apps/server/src/assets/translations/tw/server.json index 5ab2fcf28d..3142483d44 100644 --- a/apps/server/src/assets/translations/tw/server.json +++ b/apps/server/src/assets/translations/tw/server.json @@ -1,192 +1,192 @@ { - "keyboard_actions": { - "open-jump-to-note-dialog": "打開「跳轉到筆記」對話框", - "search-in-subtree": "在當前筆記的子樹中搜索筆記", - "expand-subtree": "展開當前筆記的子樹", - "collapse-tree": "折疊完整的筆記樹", - "collapse-subtree": "折疊當前筆記的子樹", - "sort-child-notes": "排序子筆記", - "creating-and-moving-notes": "新增和移動筆記", - "create-note-into-inbox": "在收件匣(如果有定義的話)或日記中新增筆記", - "delete-note": "刪除筆記", - "move-note-up": "上移筆記", - "move-note-down": "下移筆記", - "move-note-up-in-hierarchy": "上移筆記層級", - "move-note-down-in-hierarchy": "下移筆記層級", - "edit-note-title": "從筆記樹跳轉到筆記詳情並編輯標題", - "edit-branch-prefix": "顯示編輯分支前綴對話框", - "note-clipboard": "筆記剪貼簿", - "copy-notes-to-clipboard": "複製選定的筆記到剪貼簿", - "paste-notes-from-clipboard": "從剪貼簿粘貼筆記到活動筆記中", - "cut-notes-to-clipboard": "剪下選定的筆記到剪貼簿", - "select-all-notes-in-parent": "選擇當前筆記級別的所有筆記", - "add-note-above-to-the-selection": "將上方筆記添加到選擇中", - "add-note-below-to-selection": "將下方筆記添加到選擇中", - "duplicate-subtree": "複製子樹", - "tabs-and-windows": "標籤和窗口", - "open-new-tab": "打開新標籤", - "close-active-tab": "關閉活動標籤", - "reopen-last-tab": "重新打開最後關閉的標籤", - "activate-next-tab": "激活右側標籤", - "activate-previous-tab": "激活左側標籤", - "open-new-window": "打開新空白窗口", - "toggle-tray": "顯示/隱藏應用程式的系統托盤", - "first-tab": "激活列表中的第一個標籤", - "second-tab": "激活列表中的第二個標籤", - "third-tab": "激活列表中的第三個標籤", - "fourth-tab": "激活列表中的第四個標籤", - "fifth-tab": "激活列表中的第五個標籤", - "sixth-tab": "激活列表中的第六個標籤", - "seventh-tab": "激活列表中的第七個標籤", - "eight-tab": "激活列表中的第八個標籤", - "ninth-tab": "激活列表中的第九個標籤", - "last-tab": "激活列表中的最後一個標籤", - "dialogs": "對話框", - "show-note-source": "顯示筆記源對話框", - "show-options": "顯示選項對話框", - "show-revisions": "顯示筆記歷史對話框", - "show-recent-changes": "顯示最近更改對話框", - "show-sql-console": "顯示SQL控制台對話框", - "show-backend-log": "顯示後端日誌對話框", - "text-note-operations": "文本筆記操作", - "add-link-to-text": "打開對話框以將鏈接添加到文本", - "follow-link-under-cursor": "跟隨遊標下的鏈接", - "insert-date-and-time-to-text": "將當前日期和時間插入文本", - "paste-markdown-into-text": "將剪貼簿中的Markdown粘貼到文本筆記中", - "cut-into-note": "從當前筆記中剪下選擇並新增包含選定文本的子筆記", - "add-include-note-to-text": "打開對話框以包含筆記", - "edit-readonly-note": "編輯唯讀筆記", - "attributes-labels-and-relations": "屬性(標籤和關係)", - "add-new-label": "新增新標籤", - "create-new-relation": "新增新關係", - "ribbon-tabs": "功能區標籤", - "toggle-basic-properties": "切換基本屬性", - "toggle-file-properties": "切換文件屬性", - "toggle-image-properties": "切換圖像屬性", - "toggle-owned-attributes": "切換擁有的屬性", - "toggle-inherited-attributes": "切換繼承的屬性", - "toggle-promoted-attributes": "切換提升的屬性", - "toggle-link-map": "切換鏈接地圖", - "toggle-note-info": "切換筆記資訊", - "toggle-note-paths": "切換筆記路徑", - "toggle-similar-notes": "切換相似筆記", - "other": "其他", - "toggle-right-pane": "切換右側面板的顯示,包括目錄和高亮", - "print-active-note": "打印活動筆記", - "open-note-externally": "以預設應用程式打開筆記文件", - "render-active-note": "渲染(重新渲染)活動筆記", - "run-active-note": "運行主動的JavaScript(前端/後端)代碼筆記", - "toggle-note-hoisting": "切換活動筆記的提升", - "unhoist": "從任何地方取消提升", - "reload-frontend-app": "重新加載前端應用", - "open-dev-tools": "打開開發工具", - "toggle-left-note-tree-panel": "切換左側(筆記樹)面板", - "toggle-full-screen": "切換全熒幕", - "zoom-out": "縮小", - "zoom-in": "放大", - "note-navigation": "筆記導航", - "reset-zoom-level": "重置縮放級別", - "copy-without-formatting": "複製不帶格式的選定文本", - "force-save-revision": "強制新增/保存當前筆記的歷史版本", - "show-help": "顯示內置說明/備忘單", - "toggle-book-properties": "切換書籍屬性" - }, - "login": { - "title": "登入", - "heading": "Trilium登入", - "incorrect-password": "密碼不正確。請再試一次。", - "password": "密碼", - "remember-me": "記住我", - "button": "登入" - }, - "set_password": { - "title": "設定密碼", - "heading": "設定密碼", - "description": "在您可以從Web開始使用Trilium之前,您需要先設定一個密碼。然後您將使用此密碼登錄。", - "password": "密碼", - "password-confirmation": "密碼確認", - "button": "設定密碼" - }, - "javascript-required": "Trilium需要啓用JavaScript。", - "setup": { - "heading": "TriliumNext筆記設定", - "new-document": "我是新用戶,我想為我的筆記新增一個新的Trilium檔案", - "sync-from-desktop": "我已經有一個桌面實例,我想設定與它的同步", - "sync-from-server": "我已經有一個伺服器實例,我想設定與它的同步", - "next": "下一步", - "init-in-progress": "檔案初始化進行中", - "redirecting": "您將很快被重定向到應用程式。", - "title": "設定" - }, - "setup_sync-from-desktop": { - "heading": "從桌面同步", - "description": "此設定需要從桌面實例啓動:", - "step1": "打開您的TriliumNext筆記桌面實例。", - "step2": "從Trilium菜單中,點擊選項。", - "step3": "點擊同步。", - "step4": "將伺服器實例地址更改為:{{- host}}並點擊保存。", - "step5": "點擊「測試同步」按鈕以驗證連接是否成功。", - "step6": "完成這些步驟後,點擊{{- link}}。", - "step6-here": "這裡" - }, - "setup_sync-from-server": { - "heading": "從伺服器同步", - "instructions": "請在下面輸入Trilium伺服器地址和密碼。這將從伺服器下載整個Trilium數據庫檔案並設定同步。因應數據庫大小和您的連接速度,這可能需要一段時間。", - "server-host": "Trilium伺服器地址", - "server-host-placeholder": "https://<主機名稱>:<端口>", - "proxy-server": "代理伺服器(可選)", - "proxy-server-placeholder": "https://<主機名稱>:<端口>", - "note": "注意:", - "proxy-instruction": "如果您將代理設定留空,將使用系統代理(僅適用於桌面程式)", - "password": "密碼", - "password-placeholder": "密碼", - "back": "返回", - "finish-setup": "完成設定" - }, - "setup_sync-in-progress": { - "heading": "同步中", - "successful": "同步已正確設定。初始同步完成可能需要一些時間。完成後,您將被重定向到登入頁面。", - "outstanding-items": "未完成的同步項目:", - "outstanding-items-default": "無" - }, - "share_404": { - "title": "未找到", - "heading": "未找到" - }, - "share_page": { - "parent": "上級目錄:", - "clipped-from": "此筆記最初剪下自 {{- url}}", - "child-notes": "子筆記:", - "no-content": "此筆記沒有內容。" - }, - "weekdays": { - "monday": "週一", - "tuesday": "週二", - "wednesday": "週三", - "thursday": "週四", - "friday": "週五", - "saturday": "週六", - "sunday": "週日" - }, - "months": { - "january": "一月", - "february": "二月", - "march": "三月", - "april": "四月", - "may": "五月", - "june": "六月", - "july": "七月", - "august": "八月", - "september": "九月", - "october": "十月", - "november": "十一月", - "december": "十二月" - }, - "special_notes": { - "search_prefix": "搜尋:" - }, - "test_sync": { - "not-configured": "並未設定同步伺服器主機,請先設定同步", - "successful": "成功與同步伺服器握手,現在開始同步" - } + "keyboard_actions": { + "open-jump-to-note-dialog": "打開「跳轉到筆記」對話框", + "search-in-subtree": "在當前筆記的子樹中搜索筆記", + "expand-subtree": "展開當前筆記的子樹", + "collapse-tree": "折疊完整的筆記樹", + "collapse-subtree": "折疊當前筆記的子樹", + "sort-child-notes": "排序子筆記", + "creating-and-moving-notes": "新增和移動筆記", + "create-note-into-inbox": "在收件匣(如果有定義的話)或日記中新增筆記", + "delete-note": "刪除筆記", + "move-note-up": "上移筆記", + "move-note-down": "下移筆記", + "move-note-up-in-hierarchy": "上移筆記層級", + "move-note-down-in-hierarchy": "下移筆記層級", + "edit-note-title": "從筆記樹跳轉到筆記詳情並編輯標題", + "edit-branch-prefix": "顯示編輯分支前綴對話框", + "note-clipboard": "筆記剪貼簿", + "copy-notes-to-clipboard": "複製選定的筆記到剪貼簿", + "paste-notes-from-clipboard": "從剪貼簿粘貼筆記到活動筆記中", + "cut-notes-to-clipboard": "剪下選定的筆記到剪貼簿", + "select-all-notes-in-parent": "選擇當前筆記級別的所有筆記", + "add-note-above-to-the-selection": "將上方筆記添加到選擇中", + "add-note-below-to-selection": "將下方筆記添加到選擇中", + "duplicate-subtree": "複製子樹", + "tabs-and-windows": "標籤和窗口", + "open-new-tab": "打開新標籤", + "close-active-tab": "關閉活動標籤", + "reopen-last-tab": "重新打開最後關閉的標籤", + "activate-next-tab": "激活右側標籤", + "activate-previous-tab": "激活左側標籤", + "open-new-window": "打開新空白窗口", + "toggle-tray": "顯示/隱藏應用程式的系統托盤", + "first-tab": "激活列表中的第一個標籤", + "second-tab": "激活列表中的第二個標籤", + "third-tab": "激活列表中的第三個標籤", + "fourth-tab": "激活列表中的第四個標籤", + "fifth-tab": "激活列表中的第五個標籤", + "sixth-tab": "激活列表中的第六個標籤", + "seventh-tab": "激活列表中的第七個標籤", + "eight-tab": "激活列表中的第八個標籤", + "ninth-tab": "激活列表中的第九個標籤", + "last-tab": "激活列表中的最後一個標籤", + "dialogs": "對話框", + "show-note-source": "顯示筆記源對話框", + "show-options": "顯示選項對話框", + "show-revisions": "顯示筆記歷史對話框", + "show-recent-changes": "顯示最近更改對話框", + "show-sql-console": "顯示SQL控制台對話框", + "show-backend-log": "顯示後端日誌對話框", + "text-note-operations": "文本筆記操作", + "add-link-to-text": "打開對話框以將鏈接添加到文本", + "follow-link-under-cursor": "跟隨遊標下的鏈接", + "insert-date-and-time-to-text": "將當前日期和時間插入文本", + "paste-markdown-into-text": "將剪貼簿中的Markdown粘貼到文本筆記中", + "cut-into-note": "從當前筆記中剪下選擇並新增包含選定文本的子筆記", + "add-include-note-to-text": "打開對話框以包含筆記", + "edit-readonly-note": "編輯唯讀筆記", + "attributes-labels-and-relations": "屬性(標籤和關係)", + "add-new-label": "新增新標籤", + "create-new-relation": "新增新關係", + "ribbon-tabs": "功能區標籤", + "toggle-basic-properties": "切換基本屬性", + "toggle-file-properties": "切換文件屬性", + "toggle-image-properties": "切換圖像屬性", + "toggle-owned-attributes": "切換擁有的屬性", + "toggle-inherited-attributes": "切換繼承的屬性", + "toggle-promoted-attributes": "切換提升的屬性", + "toggle-link-map": "切換鏈接地圖", + "toggle-note-info": "切換筆記資訊", + "toggle-note-paths": "切換筆記路徑", + "toggle-similar-notes": "切換相似筆記", + "other": "其他", + "toggle-right-pane": "切換右側面板的顯示,包括目錄和高亮", + "print-active-note": "打印活動筆記", + "open-note-externally": "以預設應用程式打開筆記文件", + "render-active-note": "渲染(重新渲染)活動筆記", + "run-active-note": "運行主動的JavaScript(前端/後端)代碼筆記", + "toggle-note-hoisting": "切換活動筆記的提升", + "unhoist": "從任何地方取消提升", + "reload-frontend-app": "重新加載前端應用", + "open-dev-tools": "打開開發工具", + "toggle-left-note-tree-panel": "切換左側(筆記樹)面板", + "toggle-full-screen": "切換全熒幕", + "zoom-out": "縮小", + "zoom-in": "放大", + "note-navigation": "筆記導航", + "reset-zoom-level": "重置縮放級別", + "copy-without-formatting": "複製不帶格式的選定文本", + "force-save-revision": "強制新增/保存當前筆記的歷史版本", + "show-help": "顯示內置說明/備忘單", + "toggle-book-properties": "切換書籍屬性" + }, + "login": { + "title": "登入", + "heading": "Trilium登入", + "incorrect-password": "密碼不正確。請再試一次。", + "password": "密碼", + "remember-me": "記住我", + "button": "登入" + }, + "set_password": { + "title": "設定密碼", + "heading": "設定密碼", + "description": "在您可以從Web開始使用Trilium之前,您需要先設定一個密碼。然後您將使用此密碼登錄。", + "password": "密碼", + "password-confirmation": "密碼確認", + "button": "設定密碼" + }, + "javascript-required": "Trilium需要啓用JavaScript。", + "setup": { + "heading": "TriliumNext筆記設定", + "new-document": "我是新用戶,我想為我的筆記新增一個新的Trilium檔案", + "sync-from-desktop": "我已經有一個桌面實例,我想設定與它的同步", + "sync-from-server": "我已經有一個伺服器實例,我想設定與它的同步", + "next": "下一步", + "init-in-progress": "檔案初始化進行中", + "redirecting": "您將很快被重定向到應用程式。", + "title": "設定" + }, + "setup_sync-from-desktop": { + "heading": "從桌面同步", + "description": "此設定需要從桌面實例啓動:", + "step1": "打開您的TriliumNext筆記桌面實例。", + "step2": "從Trilium菜單中,點擊選項。", + "step3": "點擊同步。", + "step4": "將伺服器實例地址更改為:{{- host}}並點擊保存。", + "step5": "點擊「測試同步」按鈕以驗證連接是否成功。", + "step6": "完成這些步驟後,點擊{{- link}}。", + "step6-here": "這裡" + }, + "setup_sync-from-server": { + "heading": "從伺服器同步", + "instructions": "請在下面輸入Trilium伺服器地址和密碼。這將從伺服器下載整個Trilium數據庫檔案並設定同步。因應數據庫大小和您的連接速度,這可能需要一段時間。", + "server-host": "Trilium伺服器地址", + "server-host-placeholder": "https://<主機名稱>:<端口>", + "proxy-server": "代理伺服器(可選)", + "proxy-server-placeholder": "https://<主機名稱>:<端口>", + "note": "注意:", + "proxy-instruction": "如果您將代理設定留空,將使用系統代理(僅適用於桌面程式)", + "password": "密碼", + "password-placeholder": "密碼", + "back": "返回", + "finish-setup": "完成設定" + }, + "setup_sync-in-progress": { + "heading": "同步中", + "successful": "同步已正確設定。初始同步完成可能需要一些時間。完成後,您將被重定向到登入頁面。", + "outstanding-items": "未完成的同步項目:", + "outstanding-items-default": "無" + }, + "share_404": { + "title": "未找到", + "heading": "未找到" + }, + "share_page": { + "parent": "上級目錄:", + "clipped-from": "此筆記最初剪下自 {{- url}}", + "child-notes": "子筆記:", + "no-content": "此筆記沒有內容。" + }, + "weekdays": { + "monday": "週一", + "tuesday": "週二", + "wednesday": "週三", + "thursday": "週四", + "friday": "週五", + "saturday": "週六", + "sunday": "週日" + }, + "months": { + "january": "一月", + "february": "二月", + "march": "三月", + "april": "四月", + "may": "五月", + "june": "六月", + "july": "七月", + "august": "八月", + "september": "九月", + "october": "十月", + "november": "十一月", + "december": "十二月" + }, + "special_notes": { + "search_prefix": "搜尋:" + }, + "test_sync": { + "not-configured": "並未設定同步伺服器主機,請先設定同步", + "successful": "成功與同步伺服器握手,現在開始同步" + } } diff --git a/apps/server/src/becca/becca_loader.ts b/apps/server/src/becca/becca_loader.ts index cef89b43f9..f7faf13097 100644 --- a/apps/server/src/becca/becca_loader.ts +++ b/apps/server/src/becca/becca_loader.ts @@ -14,13 +14,13 @@ import entityConstructor from "../becca/entity_constructor.js"; import type { AttributeRow, BranchRow, EtapiTokenRow, NoteRow, OptionRow } from "@triliumnext/commons"; import type AbstractBeccaEntity from "./entities/abstract_becca_entity.js"; import ws from "../services/ws.js"; +import { dbReady } from "../services/sql_init.js"; -const beccaLoaded = new Promise(async (res, rej) => { - const sqlInit = (await import("../services/sql_init.js")).default; +export const beccaLoaded = new Promise(async (res, rej) => { // We have to import async since options init requires keyboard actions which require translations. const options_init = (await import("../services/options_init.js")).default; - sqlInit.dbReady.then(() => { + dbReady.then(() => { cls.init(() => { load(); diff --git a/apps/server/src/etapi/metrics.ts b/apps/server/src/etapi/metrics.ts index 972a6e4e7a..d460266472 100644 --- a/apps/server/src/etapi/metrics.ts +++ b/apps/server/src/etapi/metrics.ts @@ -43,7 +43,6 @@ interface MetricsData { */ function formatPrometheusMetrics(data: MetricsData): string { const lines: string[] = []; - const timestamp = Math.floor(new Date(data.timestamp).getTime() / 1000); // Helper function to add a metric const addMetric = (name: string, value: number | null, help: string, type: string = 'gauge', labels: Record = {}) => { @@ -56,7 +55,7 @@ function formatPrometheusMetrics(data: MetricsData): string { ? `{${Object.entries(labels).map(([k, v]) => `${k}="${v}"`).join(',')}}` : ''; - lines.push(`${name}${labelStr} ${value} ${timestamp}`); + lines.push(`${name}${labelStr} ${value}`); lines.push(''); }; diff --git a/apps/server/src/etapi/spec.ts b/apps/server/src/etapi/spec.ts index 7ef963f8f9..04b814c8ce 100644 --- a/apps/server/src/etapi/spec.ts +++ b/apps/server/src/etapi/spec.ts @@ -3,12 +3,18 @@ import type { Router } from "express"; import fs from "fs"; import path from "path"; import { RESOURCE_DIR } from "../services/resource_dir"; +import rateLimit from "express-rate-limit"; const specPath = path.join(RESOURCE_DIR, "etapi.openapi.yaml"); let spec: string | null = null; +const limiter = rateLimit({ + windowMs: 15 * 60 * 1000, // 15 minutes + max: 100, // limit each IP to 100 requests per windowMs +}); + function register(router: Router) { - router.get("/etapi/etapi.openapi.yaml", (_, res) => { + router.get("/etapi/etapi.openapi.yaml", limiter, (_, res) => { if (!spec) { spec = fs.readFileSync(specPath, "utf8"); } diff --git a/apps/server/src/migrations/0233__migrate_geo_map_to_collection.spec.ts b/apps/server/src/migrations/0233__migrate_geo_map_to_collection.spec.ts new file mode 100644 index 0000000000..1ce4fd2bdc --- /dev/null +++ b/apps/server/src/migrations/0233__migrate_geo_map_to_collection.spec.ts @@ -0,0 +1,299 @@ +import { describe, expect, it, beforeEach } from "vitest"; +import cls from "../services/cls.js"; +import sql from "../services/sql.js"; +import becca from "../becca/becca.js"; +import becca_loader from "../becca/becca_loader.js"; +import migration from "./0233__migrate_geo_map_to_collection.js"; + +/** + * Test suite for migration 0233 which converts geoMap notes to book type with viewConfig attachments. + * + * This migration: + * 1. Changes note type from "geoMap" to "book" + * 2. Clears the mime type + * 3. Moves the note content to a viewConfig attachment named "geoMap.json" + * 4. Clears the note content + * 5. Sets a template relation to "_template_geo_map" + * + * The test simulates the database state before migration by directly inserting + * test data into the database, then verifies the migration transforms the data correctly. + */ +describe("Migration 0233: Migrate geoMap to collection", () => { + beforeEach(async () => { + // Set up a clean in-memory database for each test + sql.rebuildIntegrationTestDatabase(); + + await new Promise((resolve) => { + cls.init(() => { + becca_loader.load(); + resolve(); + }); + }); + }); + + it("should migrate geoMap notes to book type with viewConfig attachment", async () => { + await new Promise((resolve) => { + cls.init(() => { + // Create a test geoMap note with content + const geoMapContent = JSON.stringify({ + markers: [ + { lat: 40.7128, lng: -74.0060, title: "New York" }, + { lat: 34.0522, lng: -118.2437, title: "Los Angeles" } + ], + center: { lat: 39.8283, lng: -98.5795 }, + zoom: 4 + }); + + // Insert test data directly into the database + const testNoteId = "test_geo_note_1"; + const testBlobId = "test_blob_geo_1"; + + // Insert note record + sql.execute(/*sql*/` + INSERT INTO notes (noteId, title, type, mime, blobId, dateCreated, dateModified, utcDateCreated, utcDateModified) + VALUES (?, ?, ?, ?, ?, datetime('now'), datetime('now'), datetime('now'), datetime('now')) + `, [testNoteId, "Test GeoMap Note", "geoMap", "application/json", testBlobId]); + + // Insert blob content + sql.execute(/*sql*/` + INSERT INTO blobs (blobId, content, dateModified, utcDateModified) + VALUES (?, ?, datetime('now'), datetime('now')) + `, [testBlobId, geoMapContent]); + + // Create a note without content to test edge case + const testNoteId2 = "test_geo_note_2"; + const testBlobId2 = "test_blob_geo_2"; + + sql.execute(/*sql*/` + INSERT INTO notes (noteId, title, type, mime, blobId, dateCreated, dateModified, utcDateCreated, utcDateModified) + VALUES (?, ?, ?, ?, ?, datetime('now'), datetime('now'), datetime('now'), datetime('now')) + `, [testNoteId2, "Empty GeoMap Note", "geoMap", "application/json", testBlobId2]); + + sql.execute(/*sql*/` + INSERT INTO blobs (blobId, content, dateModified, utcDateModified) + VALUES (?, ?, datetime('now'), datetime('now')) + `, [testBlobId2, ""]); + + // Also create a non-geoMap note to ensure it's not affected + const regularNoteId = "test_regular_note"; + const regularBlobId = "test_blob_regular"; + + sql.execute(/*sql*/` + INSERT INTO notes (noteId, title, type, mime, blobId, dateCreated, dateModified, utcDateCreated, utcDateModified) + VALUES (?, ?, ?, ?, ?, datetime('now'), datetime('now'), datetime('now'), datetime('now')) + `, [regularNoteId, "Regular Text Note", "text", "text/html", regularBlobId]); + + sql.execute(/*sql*/` + INSERT INTO blobs (blobId, content, dateModified, utcDateModified) + VALUES (?, ?, datetime('now'), datetime('now')) + `, [regularBlobId, "

            Regular content

            "]); + + // Reload becca to include our test data + becca_loader.load(); + + // Verify initial state + const geoMapNote1 = becca.getNote(testNoteId); + const geoMapNote2 = becca.getNote(testNoteId2); + const regularNote = becca.getNote(regularNoteId); + + expect(geoMapNote1).toBeTruthy(); + expect(geoMapNote1?.type).toBe("geoMap"); + expect(geoMapNote2).toBeTruthy(); + expect(geoMapNote2?.type).toBe("geoMap"); + expect(regularNote).toBeTruthy(); + expect(regularNote?.type).toBe("text"); + + // Run the migration + migration(); + + // Reload becca after migration + becca_loader.load(); + + // Verify migration results + const migratedNote1 = becca.getNote(testNoteId); + const migratedNote2 = becca.getNote(testNoteId2); + const unchangedNote = becca.getNote(regularNoteId); + + // Check that geoMap notes were converted to book type + expect(migratedNote1).toBeTruthy(); + expect(migratedNote1?.type).toBe("book"); + expect(migratedNote1?.mime).toBe(""); + + expect(migratedNote2).toBeTruthy(); + expect(migratedNote2?.type).toBe("book"); + expect(migratedNote2?.mime).toBe(""); + + // Check that regular note was not affected + expect(unchangedNote).toBeTruthy(); + expect(unchangedNote?.type).toBe("text"); + + // Check that content was moved to viewConfig attachment for note with content + if (migratedNote1) { + const viewConfigAttachments = migratedNote1.getAttachmentsByRole("viewConfig"); + expect(viewConfigAttachments).toHaveLength(1); + + const attachment = viewConfigAttachments[0]; + expect(attachment.title).toBe("geoMap.json"); + expect(attachment.mime).toBe("application/json"); + expect(attachment.getContent()).toBe(geoMapContent); + + // Check that note content was cleared + expect(migratedNote1.getContent()).toBe(""); + + // Check that template relation was set + const templateRelations = migratedNote1.getRelations("template"); + expect(templateRelations).toHaveLength(1); + expect(templateRelations[0].value).toBe("_template_geo_map"); + } + + // Check that note without content doesn't have viewConfig attachment + if (migratedNote2) { + const viewConfigAttachments = migratedNote2.getAttachmentsByRole("viewConfig"); + expect(viewConfigAttachments).toHaveLength(0); + + // Check that template relation was still set + const templateRelations = migratedNote2.getRelations("template"); + expect(templateRelations).toHaveLength(1); + expect(templateRelations[0].value).toBe("_template_geo_map"); + } + + resolve(); + }); + }); + }); + + it("should handle existing viewConfig attachments with same title", async () => { + await new Promise((resolve) => { + cls.init(() => { + const geoMapContent = JSON.stringify({ test: "data" }); + const testNoteId = "test_geo_note_existing"; + const testBlobId = "test_blob_geo_existing"; + + // Insert note record + sql.execute(/*sql*/` + INSERT INTO notes (noteId, title, type, mime, blobId, dateCreated, dateModified, utcDateCreated, utcDateModified) + VALUES (?, ?, ?, ?, ?, datetime('now'), datetime('now'), datetime('now'), datetime('now')) + `, [testNoteId, "Test GeoMap with Existing Attachment", "geoMap", "application/json", testBlobId]); + + // Insert blob content + sql.execute(/*sql*/` + INSERT INTO blobs (blobId, content, dateModified, utcDateModified) + VALUES (?, ?, datetime('now'), datetime('now')) + `, [testBlobId, geoMapContent]); + + // Reload becca + becca_loader.load(); + + const note = becca.getNote(testNoteId); + expect(note).toBeTruthy(); + + // Create an existing viewConfig attachment with the same title + const existingContent = JSON.stringify({ existing: "data" }); + note?.saveAttachment({ + role: "viewConfig", + title: "geoMap.json", + mime: "application/json", + content: existingContent, + position: 0 + }); + + // Verify existing attachment was created + let attachments = note?.getAttachmentsByRole("viewConfig") || []; + expect(attachments).toHaveLength(1); + expect(attachments[0].getContent()).toBe(existingContent); + + // Run migration + migration(); + + // Reload becca after migration + becca_loader.load(); + const migratedNote = becca.getNote(testNoteId); + + // Verify that existing attachment was updated, not duplicated + if (migratedNote) { + const viewConfigAttachments = migratedNote.getAttachmentsByRole("viewConfig"); + expect(viewConfigAttachments).toHaveLength(1); + + const attachment = viewConfigAttachments[0]; + expect(attachment.title).toBe("geoMap.json"); + expect(attachment.getContent()).toBe(geoMapContent); // Should be updated with note content + } + + resolve(); + }); + }); + }); + + it("should handle protected geoMap notes appropriately", async () => { + await new Promise((resolve, reject) => { + cls.init(() => { + const geoMapContent = JSON.stringify({ + markers: [{ lat: 51.5074, lng: -0.1278, title: "London" }], + center: { lat: 51.5074, lng: -0.1278 }, + zoom: 10 + }); + + const testNoteId = "protected_geo_note"; + const testBlobId = "protected_blob_geo"; + + // Insert protected geoMap note + sql.execute(/*sql*/` + INSERT INTO notes (noteId, title, type, mime, blobId, isProtected, dateCreated, dateModified, utcDateCreated, utcDateModified) + VALUES (?, ?, ?, ?, ?, ?, datetime('now'), datetime('now'), datetime('now'), datetime('now')) + `, [testNoteId, "Protected GeoMap Note", "geoMap", "application/json", testBlobId, 1]); + + // Insert encrypted blob content (in reality this would be encrypted, but for test we use plain text) + sql.execute(/*sql*/` + INSERT INTO blobs (blobId, content, dateModified, utcDateModified) + VALUES (?, ?, datetime('now'), datetime('now')) + `, [testBlobId, geoMapContent]); + + // Reload becca + becca_loader.load(); + + // Verify initial state + const protectedNote = becca.getNote(testNoteId); + expect(protectedNote).toBeTruthy(); + expect(protectedNote?.type).toBe("geoMap"); + expect(protectedNote?.isProtected).toBe(true); + + // Run migration - this should either handle protected notes gracefully or throw an error + try { + migration(); + } catch (error) { + reject(error); + } + + // Reload becca after migration attempt + becca_loader.load(); + const noteAfterMigration = becca.getNote(testNoteId); + + // If migration succeeds, verify the transformation + expect(noteAfterMigration).toBeTruthy(); + expect(noteAfterMigration?.type).toBe("book"); + expect(noteAfterMigration?.mime).toBe(""); + expect(noteAfterMigration?.isProtected).toBe(true); // Should remain protected + + // Check if content migration worked or was skipped for protected notes + const viewConfigAttachments = noteAfterMigration?.getAttachmentsByRole("viewConfig") || []; + + // Document the behavior - either content was migrated or it was skipped + if (viewConfigAttachments.length > 0) { + const attachment = viewConfigAttachments[0]; + expect(attachment.title).toBe("geoMap.json"); + console.log("Protected note content was successfully migrated to attachment"); + } else { + console.log("Protected note content migration was skipped (expected behavior)"); + } + + // Template relation should still be set regardless + const templateRelations = noteAfterMigration?.getRelations("template") || []; + expect(templateRelations).toHaveLength(1); + expect(templateRelations[0].value).toBe("_template_geo_map"); + + resolve(); + }); + }); + }); + +}); diff --git a/apps/server/src/migrations/0233__migrate_geo_map_to_collection.ts b/apps/server/src/migrations/0233__migrate_geo_map_to_collection.ts new file mode 100644 index 0000000000..7bcf55ebe3 --- /dev/null +++ b/apps/server/src/migrations/0233__migrate_geo_map_to_collection.ts @@ -0,0 +1,49 @@ +import becca from "../becca/becca"; +import becca_loader from "../becca/becca_loader"; +import cls from "../services/cls.js"; +import hidden_subtree from "../services/hidden_subtree"; + +export default () => { + cls.init(() => { + becca_loader.load(); + + // Ensure the geomap template is generated. + hidden_subtree.checkHiddenSubtree(true); + + for (const note of Object.values(becca.notes)) { + if (note.type as string !== "geoMap") { + continue; + } + + console.log(`Migrating note '${note.noteId}' from geoMap to book type...`); + + note.type = "book"; + note.mime = ""; + note.save(); + + if (!note.isProtected) { + const content = note.getContent(); + if (content) { + const title = "geoMap.json"; + const existingAttachment = note.getAttachmentsByRole("viewConfig") + .filter(a => a.title === title)[0]; + if (existingAttachment) { + existingAttachment.setContent(content); + } else { + note.saveAttachment({ + role: "viewConfig", + title, + mime: "application/json", + content, + position: 0 + }); + } + + } + note.setContent(""); + } + + note.setRelation("template", "_template_geo_map"); + } + }); +}; diff --git a/apps/server/src/migrations/migrations.ts b/apps/server/src/migrations/migrations.ts index 4743d92867..2757b4c25a 100644 --- a/apps/server/src/migrations/migrations.ts +++ b/apps/server/src/migrations/migrations.ts @@ -6,6 +6,11 @@ // Migrations should be kept in descending order, so the latest migration is first. const MIGRATIONS: (SqlMigration | JsMigration)[] = [ + // Migrate geo map to collection + { + version: 233, + module: async () => import("./0233__migrate_geo_map_to_collection.js") + }, // Remove embedding tables since LLM embedding functionality has been removed { version: 232, diff --git a/apps/server/src/routes/api/bulk_action.ts b/apps/server/src/routes/api/bulk_action.ts index d2b35dd20b..d76ec43ea3 100644 --- a/apps/server/src/routes/api/bulk_action.ts +++ b/apps/server/src/routes/api/bulk_action.ts @@ -3,13 +3,25 @@ import becca from "../../becca/becca.js"; import bulkActionService from "../../services/bulk_actions.js"; function execute(req: Request) { - const { noteIds, includeDescendants } = req.body; + const { noteIds, includeDescendants, actions } = req.body; + if (!Array.isArray(noteIds)) { + throw new Error("noteIds must be an array"); + } const affectedNoteIds = getAffectedNoteIds(noteIds, includeDescendants); const bulkActionNote = becca.getNoteOrThrow("_bulkAction"); - bulkActionService.executeActions(bulkActionNote, affectedNoteIds); + if (actions && actions.length > 0) { + for (const action of actions) { + if (!action.name) { + throw new Error("Action must have a name"); + } + } + bulkActionService.executeActions(actions, affectedNoteIds); + } else { + bulkActionService.executeActionsFromNote(bulkActionNote, affectedNoteIds); + } } function getAffectedNoteCount(req: Request) { diff --git a/apps/server/src/routes/api/notes.ts b/apps/server/src/routes/api/notes.ts index 40a955be9d..b53bb1a2a4 100644 --- a/apps/server/src/routes/api/notes.ts +++ b/apps/server/src/routes/api/notes.ts @@ -110,7 +110,7 @@ function createNote(req: Request) { const { target, targetBranchId } = req.query; - if (target !== "into" && target !== "after") { + if (target !== "into" && target !== "after" && target !== "before") { throw new ValidationError("Invalid target type."); } diff --git a/apps/server/src/routes/api/search.ts b/apps/server/src/routes/api/search.ts index 31627ba0af..0e9304a07d 100644 --- a/apps/server/src/routes/api/search.ts +++ b/apps/server/src/routes/api/search.ts @@ -40,7 +40,7 @@ function searchAndExecute(req: Request) { const { searchResultNoteIds } = searchService.searchFromNote(note); - bulkActionService.executeActions(note, searchResultNoteIds); + bulkActionService.executeActionsFromNote(note, searchResultNoteIds); } function quickSearch(req: Request) { diff --git a/apps/server/src/routes/routes.ts b/apps/server/src/routes/routes.ts index 3d61626fd4..575e0e9a9f 100644 --- a/apps/server/src/routes/routes.ts +++ b/apps/server/src/routes/routes.ts @@ -248,7 +248,7 @@ function register(app: express.Application) { route(GET, "/api/setup/status", [], setupApiRoute.getStatus, apiResultHandler); asyncRoute(PST, "/api/setup/new-document", [auth.checkAppNotInitialized], setupApiRoute.setupNewDocument, apiResultHandler); asyncRoute(PST, "/api/setup/sync-from-server", [auth.checkAppNotInitialized], setupApiRoute.setupSyncFromServer, apiResultHandler); - route(GET, "/api/setup/sync-seed", [auth.checkCredentials], setupApiRoute.getSyncSeed, apiResultHandler); + route(GET, "/api/setup/sync-seed", [loginRateLimiter, auth.checkCredentials], setupApiRoute.getSyncSeed, apiResultHandler); asyncRoute(PST, "/api/setup/sync-seed", [auth.checkAppNotInitialized], setupApiRoute.saveSyncSeed, apiResultHandler); apiRoute(GET, "/api/autocomplete", autocompleteApiRoute.getAutocomplete); @@ -263,7 +263,7 @@ function register(app: express.Application) { apiRoute(PST, "/api/bulk-action/execute", bulkActionRoute.execute); apiRoute(PST, "/api/bulk-action/affected-notes", bulkActionRoute.getAffectedNoteCount); - route(PST, "/api/login/sync", [], loginApiRoute.loginSync, apiResultHandler); + route(PST, "/api/login/sync", [loginRateLimiter], loginApiRoute.loginSync, apiResultHandler); // this is for entering protected mode so user has to be already logged-in (that's the reason we don't require username) apiRoute(PST, "/api/login/protected", loginApiRoute.loginToProtectedSession); apiRoute(PST, "/api/login/protected/touch", loginApiRoute.touchProtectedSession); diff --git a/apps/server/src/services/app_info.ts b/apps/server/src/services/app_info.ts index b3da2ac0ea..2837e8de79 100644 --- a/apps/server/src/services/app_info.ts +++ b/apps/server/src/services/app_info.ts @@ -2,8 +2,9 @@ import path from "path"; import build from "./build.js"; import packageJson from "../../package.json" with { type: "json" }; import dataDir from "./data_dir.js"; +import { AppInfo } from "@triliumnext/commons"; -const APP_DB_VERSION = 232; +const APP_DB_VERSION = 233; const SYNC_VERSION = 36; const CLIPPER_PROTOCOL_VERSION = "1.0"; @@ -16,5 +17,5 @@ export default { buildRevision: build.buildRevision, dataDirectory: path.resolve(dataDir.TRILIUM_DATA_DIR), clipperProtocolVersion: CLIPPER_PROTOCOL_VERSION, - utcDateTime: new Date().toISOString() // for timezone inference -}; + utcDateTime: new Date().toISOString() +} satisfies AppInfo; diff --git a/apps/server/src/services/backend_script_api.ts b/apps/server/src/services/backend_script_api.ts index 249d09ea0f..60af0fb970 100644 --- a/apps/server/src/services/backend_script_api.ts +++ b/apps/server/src/services/backend_script_api.ts @@ -412,6 +412,17 @@ export interface Api { */ backupNow(backupName: string): Promise; + /** + * Enables the complete duplication of the specified original note and all its children into the specified parent note. + * The new note will be named the same as the original, with (Dup) added to the end of it. + * + * @param origNoteId - the noteId for the original note to be duplicated + * @param newParentNoteId - the noteId for the parent note where the duplication is to be placed. + * + * @returns the note and the branch of the newly created note. + */ + duplicateSubtree(origNoteId: string, newParentNoteId: string): { note: BNote; branch: BBranch; } + /** * This object contains "at your risk" and "no BC guarantees" objects for advanced use cases. */ @@ -703,6 +714,7 @@ function BackendScriptApi(this: Api, currentNote: BNote, apiParams: ApiParams) { this.runOutsideOfSync = syncMutex.doExclusively; this.backupNow = backupService.backupNow; + this.duplicateSubtree = noteService.duplicateSubtree; this.__private = { becca diff --git a/apps/server/src/services/bulk_actions.ts b/apps/server/src/services/bulk_actions.ts index 1c57c6cd56..531bd9976e 100644 --- a/apps/server/src/services/bulk_actions.ts +++ b/apps/server/src/services/bulk_actions.ts @@ -5,25 +5,15 @@ import branchService from "./branches.js"; import { randomString } from "./utils.js"; import eraseService from "./erase.js"; import type BNote from "../becca/entities/bnote.js"; +import { ActionHandlers, BulkAction, BulkActionData } from "@triliumnext/commons"; -interface Action { - labelName: string; - labelValue: string; - oldLabelName: string; - newLabelName: string; +type ActionHandler = (action: T, note: BNote) => void; - relationName: string; - oldRelationName: string; - newRelationName: string; +type ActionHandlerMap = { + [K in keyof ActionHandlers]: ActionHandler>; +}; - targetNoteId: string; - targetParentNoteId: string; - newTitle: string; - script: string; -} -type ActionHandler = (action: Action, note: BNote) => void; - -const ACTION_HANDLERS: Record = { +const ACTION_HANDLERS: ActionHandlerMap = { addLabel: (action, note) => { note.addLabel(action.labelName, action.labelValue); }, @@ -125,7 +115,7 @@ const ACTION_HANDLERS: Record = { note.save(); } -}; +} as const; function getActions(note: BNote) { return note @@ -145,15 +135,23 @@ function getActions(note: BNote) { return null; } - return action; + return action as BulkAction; }) .filter((a) => !!a); } -function executeActions(note: BNote, searchResultNoteIds: string[] | Set) { +/** + * Executes the bulk actions defined in the note against the provided search result note IDs. + * @param note the note containing the bulk actions, read from the `action` label. + * @param noteIds the IDs of the notes to apply the actions to. + */ +function executeActionsFromNote(note: BNote, noteIds: string[] | Set) { const actions = getActions(note); + return executeActions(actions, noteIds); +} - for (const resultNoteId of searchResultNoteIds) { +function executeActions(actions: BulkAction[], noteIds: string[] | Set) { + for (const resultNoteId of noteIds) { const resultNote = becca.getNote(resultNoteId); if (!resultNote) { @@ -164,7 +162,8 @@ function executeActions(note: BNote, searchResultNoteIds: string[] | Set try { log.info(`Applying action handler to note ${resultNote.noteId}: ${JSON.stringify(action)}`); - ACTION_HANDLERS[action.name](action, resultNote); + const handler = ACTION_HANDLERS[action.name] as (a: typeof action, n: BNote) => void; + handler(action, resultNote); } catch (e: any) { log.error(`ExecuteScript search action failed with ${e.message}`); } @@ -173,5 +172,6 @@ function executeActions(note: BNote, searchResultNoteIds: string[] | Set } export default { - executeActions + executeActions, + executeActionsFromNote }; diff --git a/apps/server/src/services/export/markdown.spec.ts b/apps/server/src/services/export/markdown.spec.ts index 6e5eb27350..fe1dc1c372 100644 --- a/apps/server/src/services/export/markdown.spec.ts +++ b/apps/server/src/services/export/markdown.spec.ts @@ -176,7 +176,10 @@ describe("Markdown export", () => { > [!IMPORTANT] > This is a very important information. >${space} - >
            12
            34
            + > | | | + > | --- | --- | + > | 1 | 2 | + > | 3 | 4 | > [!CAUTION] > This is a caution. @@ -342,4 +345,43 @@ describe("Markdown export", () => { expect(markdownExportService.toMarkdown(html)).toBe(expected); }); + it("exports unformatted table", () => { + const html = trimIndentation/*html*/`\ +
            + + + + + + + + + + + +
            + Hi + + there +
            + Hi + + there +
            +
            + `; + const expected = trimIndentation`\ + | | | + | --- | --- | + | Hi | there | + | Hi | there |`; + expect(markdownExportService.toMarkdown(html)).toBe(expected); + }); + + it("preserves superscript and subscript", () => { + const html = /*html*/`

            Hello superscript subscript

            `; + const expected = `Hello superscript subscript`; + expect(markdownExportService.toMarkdown(html)).toBe(expected); + }); + }); diff --git a/apps/server/src/services/export/markdown.ts b/apps/server/src/services/export/markdown.ts index f68a8d87e1..ed16c6b30a 100644 --- a/apps/server/src/services/export/markdown.ts +++ b/apps/server/src/services/export/markdown.ts @@ -56,7 +56,7 @@ function toMarkdown(content: string) { instance.addRule("math", buildMathFilter()); instance.addRule("li", buildListItemFilter()); instance.use(gfm); - instance.keep([ "kbd" ]); + instance.keep([ "kbd", "sup", "sub" ]); } return instance.turndown(content); @@ -209,6 +209,7 @@ function buildFigureFilter(): Rule { return { filter(node, options) { return node.nodeName === 'FIGURE' + && node.classList.contains("image"); }, replacement(content, node) { return (node as HTMLElement).outerHTML; diff --git a/apps/server/src/services/handlers.ts b/apps/server/src/services/handlers.ts index 9d64b83039..52e50cbf3e 100644 --- a/apps/server/src/services/handlers.ts +++ b/apps/server/src/services/handlers.ts @@ -102,7 +102,7 @@ eventService.subscribe(eventService.ENTITY_CREATED, ({ entityName, entity }) => const content = note.getContent(); if ( - ["text", "code", "mermaid", "canvas", "relationMap", "mindMap", "geoMap"].includes(note.type) && + ["text", "code", "mermaid", "canvas", "relationMap", "mindMap"].includes(note.type) && typeof content === "string" && // if the note has already content we're not going to overwrite it with template's one (!content || content.trim().length === 0) && diff --git a/apps/server/src/services/hidden_subtree.spec.ts b/apps/server/src/services/hidden_subtree.spec.ts new file mode 100644 index 0000000000..811aebe9b4 --- /dev/null +++ b/apps/server/src/services/hidden_subtree.spec.ts @@ -0,0 +1,122 @@ +import { describe, it, expect } from "vitest"; +import cls from "./cls.js"; +import hiddenSubtreeService from "./hidden_subtree.js"; +import sql_init from "./sql_init.js"; +import branches from "./branches.js"; +import becca from "../becca/becca.js"; +import { LOCALES } from "@triliumnext/commons"; +import { changeLanguage } from "./i18n.js"; +import { deferred } from "./utils.js"; + +describe("Hidden Subtree", () => { + describe("Launcher movement persistence", () => { + beforeAll(async () => { + sql_init.initializeDb(); + await sql_init.dbReady; + cls.init(() => hiddenSubtreeService.checkHiddenSubtree()); + }); + + it("should persist launcher movement between visible and available after integrity check", () => { + // Move backend log to visible launchers. + const backendLogBranch = becca.getBranchFromChildAndParent("_lbBackendLog", "_lbAvailableLaunchers"); + expect(backendLogBranch).toBeDefined(); + + // Move launcher to visible launchers. + cls.init(() => { + branches.moveBranchToNote(backendLogBranch!, "_lbVisibleLaunchers"); + hiddenSubtreeService.checkHiddenSubtree(); + }); + + // Ensure the launcher is still in visible launchers. + const childBranches = backendLogBranch?.childNote.getParentBranches() + .filter((b) => !b.isDeleted); + expect(childBranches).toBeDefined(); + expect(childBranches![0].parentNoteId).toStrictEqual("_lbVisibleLaunchers"); + }); + + it("should enforce the correct placement of help", () => { + // First, verify the help note exists in its original correct location + const originalBranch = becca.getBranchFromChildAndParent("_help_Vc8PjrjAGuOp", "_help_gh7bpGYxajRS"); + expect(originalBranch).toBeDefined(); + expect(originalBranch?.parentNoteId).toBe("_help_gh7bpGYxajRS"); + + // Move the help note to an incorrect location (_help root instead of its proper parent) + cls.init(() => { + branches.moveBranchToNote(originalBranch!, "_help"); + }); + + // Verify the note was moved to the wrong location + const movedBranches = becca.notes["_help_Vc8PjrjAGuOp"]?.getParentBranches() + .filter((b) => !b.isDeleted); + expect(movedBranches).toBeDefined(); + expect(movedBranches![0].parentNoteId).toBe("_help"); + + // Run the hidden subtree integrity check + cls.init(() => { + hiddenSubtreeService.checkHiddenSubtree(true); + }); + + // Verify that the integrity check moved the help note back to its correct location + const correctedBranches = becca.notes["_help_Vc8PjrjAGuOp"]?.getParentBranches() + .filter((b) => !b.isDeleted); + expect(correctedBranches).toBeDefined(); + expect(correctedBranches![0].parentNoteId).toBe("_help_gh7bpGYxajRS"); + + // Ensure the note is no longer under the incorrect parent + const helpRootChildren = becca.notes["_help"]?.getChildNotes(); + const incorrectChild = helpRootChildren?.find(note => note.noteId === "_help_Vc8PjrjAGuOp"); + expect(incorrectChild).toBeUndefined(); + }); + + it("enforces renames of launcher notes", () => { + const jumpToNote = becca.getNote("_lbJumpTo"); + expect(jumpToNote).toBeDefined(); + jumpToNote!.title = "Renamed"; + + cls.init(() => { + jumpToNote!.save(); + hiddenSubtreeService.checkHiddenSubtree(true); + }); + + const updatedJumpToNote = becca.getNote("_lbJumpTo"); + expect(updatedJumpToNote).toBeDefined(); + expect(updatedJumpToNote?.title).not.toBe("Renamed"); + }); + + it("maintains launchers hidden, if they were shown by default but moved by the user", () => { + const launcher = becca.getNote("_lbLlmChat"); + const branch = launcher?.getParentBranches()[0]; + expect(branch).toBeDefined(); + expect(branch!.parentNoteId).toBe("_lbVisibleLaunchers"); + expect(launcher).toBeDefined(); + + cls.init(() => { + branches.moveBranchToNote(branch!, "_lbAvailableLaunchers"); + hiddenSubtreeService.checkHiddenSubtree(); + }); + + const newBranches = launcher?.getParentBranches().filter(b => !b.isDeleted); + expect(newBranches).toHaveLength(1); + expect(newBranches![0].parentNoteId).toBe("_lbAvailableLaunchers"); + }); + + it("can restore names in all languages", async () => { + const done = deferred(); + cls.wrap(async () => { + for (const locale of LOCALES) { + if (locale.contentOnly) { + continue; + } + + try { + await changeLanguage(locale.id); + } catch (error) { + done.reject(error); + } + } + done.resolve(); + })(); + await done; + }); + }); +}); diff --git a/apps/server/src/services/hidden_subtree.ts b/apps/server/src/services/hidden_subtree.ts index 6ba0d965b3..22096ca2cf 100644 --- a/apps/server/src/services/hidden_subtree.ts +++ b/apps/server/src/services/hidden_subtree.ts @@ -1,4 +1,5 @@ import BAttribute from "../becca/entities/battribute.js"; +import BBranch from "../becca/entities/bbranch.js"; import type { HiddenSubtreeItem } from "@triliumnext/commons"; import becca from "../becca/becca.js"; @@ -10,15 +11,15 @@ import { cleanUpHelp, getHelpHiddenSubtreeData } from "./in_app_help.js"; import buildLaunchBarConfig from "./hidden_subtree_launcherbar.js"; import buildHiddenSubtreeTemplates from "./hidden_subtree_templates.js"; -const LBTPL_ROOT = "_lbTplRoot"; -const LBTPL_BASE = "_lbTplBase"; -const LBTPL_HEADER = "_lbTplHeader"; -const LBTPL_NOTE_LAUNCHER = "_lbTplLauncherNote"; -const LBTPL_WIDGET = "_lbTplLauncherWidget"; -const LBTPL_COMMAND = "_lbTplLauncherCommand"; -const LBTPL_SCRIPT = "_lbTplLauncherScript"; -const LBTPL_SPACER = "_lbTplSpacer"; -const LBTPL_CUSTOM_WIDGET = "_lbTplCustomWidget"; +export const LBTPL_ROOT = "_lbTplRoot"; +export const LBTPL_BASE = "_lbTplBase"; +export const LBTPL_HEADER = "_lbTplHeader"; +export const LBTPL_NOTE_LAUNCHER = "_lbTplLauncherNote"; +export const LBTPL_WIDGET = "_lbTplLauncherWidget"; +export const LBTPL_COMMAND = "_lbTplLauncherCommand"; +export const LBTPL_SCRIPT = "_lbTplLauncherScript"; +export const LBTPL_SPACER = "_lbTplSpacer"; +export const LBTPL_CUSTOM_WIDGET = "_lbTplCustomWidget"; /* * Hidden subtree is generated as a "predictable structure" which means that it avoids generating random IDs to always @@ -290,6 +291,47 @@ function checkHiddenSubtree(force = false, extraOpts: CheckHiddenExtraOpts = {}) } } +/** + * Get all expected parent IDs for a given note ID from the hidden subtree definition + */ +function getExpectedParentIds(noteId: string, subtree: HiddenSubtreeItem): string[] { + const expectedParents: string[] = []; + + function traverse(item: HiddenSubtreeItem, parentId: string) { + if (item.id === noteId) { + expectedParents.push(parentId); + } + + if (item.children) { + for (const child of item.children) { + traverse(child, item.id); + } + } + } + + // Start traversal from root + if (subtree.id === noteId) { + expectedParents.push("root"); + } + + if (subtree.children) { + for (const child of subtree.children) { + traverse(child, subtree.id); + } + } + + return expectedParents; +} + +/** + * Check if a note ID is within the hidden subtree structure + */ +function isWithinHiddenSubtree(noteId: string): boolean { + // Consider a note to be within hidden subtree if it starts with underscore + // This is the convention used for hidden subtree notes + return noteId.startsWith("_") || noteId === "root"; +} + function checkHiddenSubtreeRecursively(parentNoteId: string, item: HiddenSubtreeItem, extraOpts: CheckHiddenExtraOpts = {}) { if (!item.id || !item.type || !item.title) { throw new Error(`Item does not contain mandatory properties: ${JSON.stringify(item)}`); @@ -313,6 +355,36 @@ function checkHiddenSubtreeRecursively(parentNoteId: string, item: HiddenSubtree })); } else { branch = note.getParentBranches().find((branch) => branch.parentNoteId === parentNoteId); + + // Clean up any branches that shouldn't exist according to the meta definition + // For hidden subtree notes, we want to ensure they only exist in their designated locations + if (item.enforceBranches || item.id.startsWith("_help")) { + // If the note exists but doesn't have a branch in the expected parent, + // create the missing branch to ensure it's in the correct location + if (!branch) { + console.log("Creating missing branch for note", item.id, "under parent", parentNoteId); + branch = new BBranch({ + noteId: item.id, + parentNoteId: parentNoteId, + notePosition: item.notePosition !== undefined ? item.notePosition : undefined, + isExpanded: item.isExpanded !== undefined ? item.isExpanded : false + }).save(); + } + + // Remove any branches that are not in the expected parent. + const expectedParents = getExpectedParentIds(item.id, hiddenSubtreeDefinition); + const currentBranches = note.getParentBranches(); + + for (const currentBranch of currentBranches) { + // Only delete branches that are not in the expected locations + // and are within the hidden subtree structure (avoid touching user-created clones) + if (!expectedParents.includes(currentBranch.parentNoteId) && + isWithinHiddenSubtree(currentBranch.parentNoteId)) { + log.info(`Removing unexpected branch for note '${item.id}' from parent '${currentBranch.parentNoteId}'`); + currentBranch.markAsDeleted(); + } + } + } } const attrs = [...(item.attributes || [])]; @@ -343,7 +415,8 @@ function checkHiddenSubtreeRecursively(parentNoteId: string, item: HiddenSubtree } } - if (extraOpts.restoreNames && note.title !== item.title) { + const shouldRestoreNames = extraOpts.restoreNames || note.noteId.startsWith("_help") || item.id.startsWith("_lb"); + if (shouldRestoreNames && note.title !== item.title) { note.title = item.title; note.save(); } @@ -380,7 +453,7 @@ function checkHiddenSubtreeRecursively(parentNoteId: string, item: HiddenSubtree type: attr.type, name: attr.name, value: attr.value, - isInheritable: false + isInheritable: attr.isInheritable }).save(); } else if (attr.name === "docName" || (existingAttribute.noteId.startsWith("_help") && attr.name === "iconClass")) { if (existingAttribute.value !== attr.value) { @@ -397,13 +470,5 @@ function checkHiddenSubtreeRecursively(parentNoteId: string, item: HiddenSubtree } export default { - checkHiddenSubtree, - LBTPL_ROOT, - LBTPL_BASE, - LBTPL_COMMAND, - LBTPL_NOTE_LAUNCHER, - LBTPL_WIDGET, - LBTPL_SCRIPT, - LBTPL_SPACER, - LBTPL_CUSTOM_WIDGET + checkHiddenSubtree }; diff --git a/apps/server/src/services/hidden_subtree_templates.ts b/apps/server/src/services/hidden_subtree_templates.ts index 62c8418984..11ed6c66bf 100644 --- a/apps/server/src/services/hidden_subtree_templates.ts +++ b/apps/server/src/services/hidden_subtree_templates.ts @@ -1,15 +1,16 @@ import { HiddenSubtreeItem } from "@triliumnext/commons"; +import { t } from "i18next"; export default function buildHiddenSubtreeTemplates() { const templates: HiddenSubtreeItem = { id: "_templates", - title: "Built-in templates", + title: t("hidden_subtree_templates.built-in-templates"), type: "book", children: [ { id: "_template_text_snippet", type: "text", - title: "Text Snippet", + title: t("hidden_subtree_templates.text-snippet"), icon: "bx-align-left", attributes: [ { @@ -23,27 +24,216 @@ export default function buildHiddenSubtreeTemplates() { { name: "label:textSnippetDescription", type: "label", - value: "promoted,alias=Description,single,text" + value: `promoted,alias=${t("hidden_subtree_templates.description")},single,text` + } + ] + }, + { + id: "_template_list_view", + type: "book", + title: t("hidden_subtree_templates.list-view"), + icon: "bx bx-list-ul", + attributes: [ + { + name: "template", + type: "label" + }, + { + name: "collection", + type: "label" + }, + { + name: "viewType", + type: "label", + value: "list" + } + ] + }, + { + id: "_template_grid_view", + type: "book", + title: t("hidden_subtree_templates.grid-view"), + icon: "bx bxs-grid", + attributes: [ + { + name: "template", + type: "label" + }, + { + name: "collection", + type: "label" + }, + { + name: "viewType", + type: "label", + value: "grid" + } + ] + }, + { + id: "_template_calendar", + type: "book", + title: t("hidden_subtree_templates.calendar"), + icon: "bx bx-calendar", + attributes: [ + { + name: "template", + type: "label", + }, + { + name: "collection", + type: "label" + }, + { + name: "viewType", + type: "label", + value: "calendar" + }, + { + name: "hidePromotedAttributes", + type: "label" + }, + { + name: "label:startDate", + type: "label", + value: `promoted,alias=${t("hidden_subtree_templates.start-date")},single,date`, + isInheritable: true + }, + { + name: "label:endDate", + type: "label", + value: `promoted,alias=${t("hidden_subtree_templates.end-date")},single,date`, + isInheritable: true + }, + { + name: "label:startTime", + type: "label", + value: `promoted,alias=${t("hidden_subtree_templates.start-time")},single,time`, + isInheritable: true + }, + { + name: "label:endTime", + type: "label", + value: `promoted,alias=${t("hidden_subtree_templates.end-time")},single,time`, + isInheritable: true } ] }, { id: "_template_table", type: "book", - title: "Table", + title: t("hidden_subtree_templates.table"), icon: "bx bx-table", attributes: [ { name: "template", type: "label" }, + { + name: "collection", + type: "label" + }, { name: "viewType", type: "label", value: "table" } ] - } + }, + { + id: "_template_geo_map", + type: "book", + title: t("hidden_subtree_templates.geo-map"), + icon: "bx bx-map-alt", + attributes: [ + { + name: "template", + type: "label" + }, + { + name: "collection", + type: "label" + }, + { + name: "viewType", + type: "label", + value: "geoMap" + }, + { + name: "hidePromotedAttributes", + type: "label" + }, + { + name: "label:geolocation", + type: "label", + value: `promoted,alias=${t("hidden_subtree_templates.geolocation")},single,text`, + isInheritable: true + } + ] + }, + { + id: "_template_board", + type: "book", + title: t("hidden_subtree_templates.board"), + icon: "bx bx-columns", + attributes: [ + { + name: "template", + type: "label" + }, + { + name: "collection", + type: "label" + }, + { + name: "viewType", + type: "label", + value: "board" + }, + { + name: "hidePromotedAttributes", + type: "label" + }, + { + name: "label:status", + type: "label", + value: `promoted,alias=${t("hidden_subtree_templates.status")},single,text`, + isInheritable: true + } + ], + children: [ + { + id: "_template_board_first", + title: t("hidden_subtree_templates.board_note_first"), + attributes: [{ + name: "status", + value: t("hidden_subtree_templates.board_status_todo"), + type: "label" + }], + type: "text" + }, + { + id: "_template_board_second", + title: t("hidden_subtree_templates.board_note_second"), + attributes: [{ + name: "status", + value: t("hidden_subtree_templates.board_status_progress"), + type: "label" + }], + type: "text" + }, + { + id: "_template_board_third", + title: t("hidden_subtree_templates.board_note_third"), + attributes: [{ + name: "status", + value: t("hidden_subtree_templates.board_status_done"), + type: "label" + }], + type: "text" + } + ] + }, ] }; diff --git a/apps/server/src/services/i18n.ts b/apps/server/src/services/i18n.ts index 3e1f4d1a62..309e08777b 100644 --- a/apps/server/src/services/i18n.ts +++ b/apps/server/src/services/i18n.ts @@ -18,6 +18,7 @@ const DAYJS_LOADER: Record Promise import("dayjs/locale/he.js"), "ku": () => import("dayjs/locale/ku.js"), "ro": () => import("dayjs/locale/ro.js"), + "ru": () => import("dayjs/locale/ru.js"), "tw": () => import("dayjs/locale/zh-tw.js") } diff --git a/apps/server/src/services/import/markdown.spec.ts b/apps/server/src/services/import/markdown.spec.ts index c8d06e28e2..0bf747a81e 100644 --- a/apps/server/src/services/import/markdown.spec.ts +++ b/apps/server/src/services/import/markdown.spec.ts @@ -299,4 +299,10 @@ $$`; expect(markdownService.renderToHtml(input, "Title")).toStrictEqual(expected); }); + it("preserves superscript and subscript", () => { + const input = `Hello superscript subscript`; + const expected = /*html*/`

            Hello superscript subscript

            `; + expect(markdownService.renderToHtml(input, "Title")).toStrictEqual(expected); + }); + }); diff --git a/apps/server/src/services/import/samples/geomap.zip b/apps/server/src/services/import/samples/geomap.zip new file mode 100644 index 0000000000..6443c19971 Binary files /dev/null and b/apps/server/src/services/import/samples/geomap.zip differ diff --git a/apps/server/src/services/import/zip.spec.ts b/apps/server/src/services/import/zip.spec.ts index 4860f7b94c..db2c7ba76e 100644 --- a/apps/server/src/services/import/zip.spec.ts +++ b/apps/server/src/services/import/zip.spec.ts @@ -70,6 +70,19 @@ describe("processNoteContent", () => { expect(content).toContain(` { + const { importedNote } = await testImport("geomap.zip"); + expect(importedNote.type).toBe("book"); + expect(importedNote.mime).toBe(""); + expect(importedNote.getRelationValue("template")).toBe("_template_geo_map"); + + const attachment = importedNote.getAttachmentsByRole("viewConfig")[0]; + expect(attachment.title).toBe("geoMap.json"); + expect(attachment.mime).toBe("application/json"); + const content = attachment.getContent(); + expect(content).toStrictEqual(`{"view":{"center":{"lat":49.19598332223546,"lng":-2.1414576506668808},"zoom":12}}`); + }); }); function getNoteByTitlePath(parentNote: BNote, ...titlePath: string[]) { diff --git a/apps/server/src/services/import/zip.ts b/apps/server/src/services/import/zip.ts index e7da680bbb..b2d83bdc69 100644 --- a/apps/server/src/services/import/zip.ts +++ b/apps/server/src/services/import/zip.ts @@ -502,6 +502,28 @@ async function importZip(taskContext: TaskContext, fileBuffer: Buffer, importRoo firstNote = firstNote || note; } } else { + if (detectedType as string === "geoMap") { + attributes.push({ + noteId, + type: "relation", + name: "template", + value: "_template_geo_map" + }); + + const attachment = new BAttachment({ + attachmentId: getNewAttachmentId(newEntityId()), + ownerId: noteId, + title: "geoMap.json", + role: "viewConfig", + mime: "application/json", + position: 0 + }); + + attachment.setContent(content, { forceSave: true }); + content = ""; + mime = ""; + } + ({ note } = noteService.createNewNote({ parentNoteId: parentNoteId, title: noteTitle || "", @@ -656,12 +678,15 @@ export function readZipFile(buffer: Buffer, processEntryCallback: (zipfile: yauz function resolveNoteType(type: string | undefined): NoteType { // BC for ZIPs created in Trilium 0.57 and older - if (type === "relation-map") { - return "relationMap"; - } else if (type === "note-map") { - return "noteMap"; - } else if (type === "web-view") { - return "webView"; + switch (type) { + case "relation-map": + return "relationMap"; + case "note-map": + return "noteMap"; + case "web-view": + return "webView"; + case "geoMap": + return "book"; } if (type && (ALLOWED_NOTE_TYPES as readonly string[]).includes(type)) { diff --git a/apps/server/src/services/keyboard_actions.ts b/apps/server/src/services/keyboard_actions.ts index fe8e7c2763..6a11242c47 100644 --- a/apps/server/src/services/keyboard_actions.ts +++ b/apps/server/src/services/keyboard_actions.ts @@ -3,7 +3,7 @@ import optionService from "./options.js"; import log from "./log.js"; import { isElectron, isMac } from "./utils.js"; -import type { KeyboardShortcut } from "@triliumnext/commons"; +import type { ActionKeyboardShortcut, KeyboardShortcut } from "@triliumnext/commons"; import { t } from "i18next"; function getDefaultKeyboardActions() { @@ -17,6 +17,8 @@ function getDefaultKeyboardActions() { }, { actionName: "backInNoteHistory", + friendlyName: t("keyboard_action_names.back-in-note-history"), + iconClass: "bx bxs-chevron-left", // Mac has a different history navigation shortcuts - https://github.com/zadam/trilium/issues/376 defaultShortcuts: isMac ? ["CommandOrControl+Left"] : ["Alt+Left"], description: t("keyboard_actions.back-in-note-history"), @@ -24,6 +26,8 @@ function getDefaultKeyboardActions() { }, { actionName: "forwardInNoteHistory", + friendlyName: t("keyboard_action_names.forward-in-note-history"), + iconClass: "bx bxs-chevron-right", // Mac has a different history navigation shortcuts - https://github.com/zadam/trilium/issues/376 defaultShortcuts: isMac ? ["CommandOrControl+Right"] : ["Alt+Right"], description: t("keyboard_actions.forward-in-note-history"), @@ -31,48 +35,72 @@ function getDefaultKeyboardActions() { }, { actionName: "jumpToNote", + friendlyName: t("keyboard_action_names.jump-to-note"), defaultShortcuts: ["CommandOrControl+J"], description: t("keyboard_actions.open-jump-to-note-dialog"), - scope: "window" + scope: "window", + ignoreFromCommandPalette: true + }, + { + actionName: "commandPalette", + friendlyName: t("keyboard_action_names.command-palette"), + defaultShortcuts: ["CommandOrControl+Shift+J"], + description: t("keyboard_actions.open-command-palette"), + scope: "window", + ignoreFromCommandPalette: true }, { actionName: "scrollToActiveNote", + friendlyName: t("keyboard_action_names.scroll-to-active-note"), defaultShortcuts: ["CommandOrControl+."], + iconClass: "bx bx-current-location", description: t("keyboard_actions.scroll-to-active-note"), scope: "window" }, { actionName: "quickSearch", + friendlyName: t("keyboard_action_names.quick-search"), + iconClass: "bx bx-search", defaultShortcuts: ["CommandOrControl+S"], description: t("keyboard_actions.quick-search"), scope: "window" }, { actionName: "searchInSubtree", + friendlyName: t("keyboard_action_names.search-in-subtree"), defaultShortcuts: ["CommandOrControl+Shift+S"], + iconClass: "bx bx-search-alt", description: t("keyboard_actions.search-in-subtree"), scope: "note-tree" }, { actionName: "expandSubtree", + friendlyName: t("keyboard_action_names.expand-subtree"), defaultShortcuts: [], + iconClass: "bx bx-layer-plus", description: t("keyboard_actions.expand-subtree"), scope: "note-tree" }, { actionName: "collapseTree", + friendlyName: t("keyboard_action_names.collapse-tree"), defaultShortcuts: ["Alt+C"], + iconClass: "bx bx-layer-minus", description: t("keyboard_actions.collapse-tree"), scope: "window" }, { actionName: "collapseSubtree", + friendlyName: t("keyboard_action_names.collapse-subtree"), + iconClass: "bx bxs-layer-minus", defaultShortcuts: ["Alt+-"], description: t("keyboard_actions.collapse-subtree"), scope: "note-tree" }, { actionName: "sortChildNotes", + friendlyName: t("keyboard_action_names.sort-child-notes"), + iconClass: "bx bx-sort-down", defaultShortcuts: ["Alt+S"], description: t("keyboard_actions.sort-child-notes"), scope: "note-tree" @@ -83,72 +111,96 @@ function getDefaultKeyboardActions() { }, { actionName: "createNoteAfter", + friendlyName: t("keyboard_action_names.create-note-after"), + iconClass: "bx bx-plus", defaultShortcuts: ["CommandOrControl+O"], description: t("keyboard_actions.create-note-after"), scope: "window" }, { actionName: "createNoteInto", + friendlyName: t("keyboard_action_names.create-note-into"), + iconClass: "bx bx-plus", defaultShortcuts: ["CommandOrControl+P"], description: t("keyboard_actions.create-note-into"), scope: "window" }, { actionName: "createNoteIntoInbox", + friendlyName: t("keyboard_action_names.create-note-into-inbox"), + iconClass: "bx bxs-inbox", defaultShortcuts: ["global:CommandOrControl+Alt+P"], description: t("keyboard_actions.create-note-into-inbox"), scope: "window" }, { actionName: "deleteNotes", + friendlyName: t("keyboard_action_names.delete-notes"), + iconClass: "bx bx-trash", defaultShortcuts: ["Delete"], description: t("keyboard_actions.delete-note"), scope: "note-tree" }, { actionName: "moveNoteUp", + friendlyName: t("keyboard_action_names.move-note-up"), + iconClass: "bx bx-up-arrow-alt", defaultShortcuts: isMac ? ["Alt+Up"] : ["CommandOrControl+Up"], description: t("keyboard_actions.move-note-up"), scope: "note-tree" }, { actionName: "moveNoteDown", + friendlyName: t("keyboard_action_names.move-note-down"), + iconClass: "bx bx-down-arrow-alt", defaultShortcuts: isMac ? ["Alt+Down"] : ["CommandOrControl+Down"], description: t("keyboard_actions.move-note-down"), scope: "note-tree" }, { actionName: "moveNoteUpInHierarchy", + friendlyName: t("keyboard_action_names.move-note-up-in-hierarchy"), + iconClass: "bx bx-arrow-from-bottom", defaultShortcuts: isMac ? ["Alt+Left"] : ["CommandOrControl+Left"], description: t("keyboard_actions.move-note-up-in-hierarchy"), scope: "note-tree" }, { actionName: "moveNoteDownInHierarchy", + friendlyName: t("keyboard_action_names.move-note-down-in-hierarchy"), + iconClass: "bx bx-arrow-from-top", defaultShortcuts: isMac ? ["Alt+Right"] : ["CommandOrControl+Right"], description: t("keyboard_actions.move-note-down-in-hierarchy"), scope: "note-tree" }, { actionName: "editNoteTitle", + friendlyName: t("keyboard_action_names.edit-note-title"), + iconClass: "bx bx-rename", defaultShortcuts: ["Enter"], description: t("keyboard_actions.edit-note-title"), scope: "note-tree" }, { actionName: "editBranchPrefix", + friendlyName: t("keyboard_action_names.edit-branch-prefix"), + iconClass: "bx bx-rename", defaultShortcuts: ["F2"], description: t("keyboard_actions.edit-branch-prefix"), scope: "note-tree" }, { actionName: "cloneNotesTo", + friendlyName: t("keyboard_action_names.clone-notes-to"), + iconClass: "bx bx-duplicate", defaultShortcuts: ["CommandOrControl+Shift+C"], description: t("keyboard_actions.clone-notes-to"), scope: "window" }, { actionName: "moveNotesTo", + friendlyName: t("keyboard_action_names.move-notes-to"), + iconClass: "bx bx-transfer", defaultShortcuts: ["CommandOrControl+Shift+X"], description: t("keyboard_actions.move-notes-to"), scope: "window" @@ -160,42 +212,56 @@ function getDefaultKeyboardActions() { { actionName: "copyNotesToClipboard", + friendlyName: t("keyboard_action_names.copy-notes-to-clipboard"), + iconClass: "bx bx-copy", defaultShortcuts: ["CommandOrControl+C"], description: t("keyboard_actions.copy-notes-to-clipboard"), scope: "note-tree" }, { actionName: "pasteNotesFromClipboard", + friendlyName: t("keyboard_action_names.paste-notes-from-clipboard"), + iconClass: "bx bx-paste", defaultShortcuts: ["CommandOrControl+V"], description: t("keyboard_actions.paste-notes-from-clipboard"), scope: "note-tree" }, { actionName: "cutNotesToClipboard", + friendlyName: t("keyboard_action_names.cut-notes-to-clipboard"), + iconClass: "bx bx-cut", defaultShortcuts: ["CommandOrControl+X"], description: t("keyboard_actions.cut-notes-to-clipboard"), scope: "note-tree" }, { actionName: "selectAllNotesInParent", + friendlyName: t("keyboard_action_names.select-all-notes-in-parent"), + iconClass: "bx bx-select-multiple", defaultShortcuts: ["CommandOrControl+A"], description: t("keyboard_actions.select-all-notes-in-parent"), scope: "note-tree" }, { actionName: "addNoteAboveToSelection", + friendlyName: t("keyboard_action_names.add-note-above-to-selection"), defaultShortcuts: ["Shift+Up"], description: t("keyboard_actions.add-note-above-to-the-selection"), - scope: "note-tree" + scope: "note-tree", + ignoreFromCommandPalette: true }, { actionName: "addNoteBelowToSelection", + friendlyName: t("keyboard_action_names.add-note-below-to-selection"), defaultShortcuts: ["Shift+Down"], description: t("keyboard_actions.add-note-below-to-selection"), - scope: "note-tree" + scope: "note-tree", + ignoreFromCommandPalette: true }, { actionName: "duplicateSubtree", + friendlyName: t("keyboard_action_names.duplicate-subtree"), + iconClass: "bx bx-outline", defaultShortcuts: [], description: t("keyboard_actions.duplicate-subtree"), scope: "note-tree" @@ -206,109 +272,147 @@ function getDefaultKeyboardActions() { }, { actionName: "openNewTab", + friendlyName: t("keyboard_action_names.open-new-tab"), + iconClass: "bx bx-plus", defaultShortcuts: isElectron ? ["CommandOrControl+T"] : [], description: t("keyboard_actions.open-new-tab"), scope: "window" }, { actionName: "closeActiveTab", + friendlyName: t("keyboard_action_names.close-active-tab"), + iconClass: "bx bx-minus", defaultShortcuts: isElectron ? ["CommandOrControl+W"] : [], description: t("keyboard_actions.close-active-tab"), scope: "window" }, { actionName: "reopenLastTab", + friendlyName: t("keyboard_action_names.reopen-last-tab"), + iconClass: "bx bx-undo", defaultShortcuts: isElectron ? ["CommandOrControl+Shift+T"] : [], + isElectronOnly: true, description: t("keyboard_actions.reopen-last-tab"), scope: "window" }, { actionName: "activateNextTab", + friendlyName: t("keyboard_action_names.activate-next-tab"), + iconClass: "bx bx-skip-next", defaultShortcuts: isElectron ? ["CommandOrControl+Tab", "CommandOrControl+PageDown"] : [], description: t("keyboard_actions.activate-next-tab"), scope: "window" }, { actionName: "activatePreviousTab", + friendlyName: t("keyboard_action_names.activate-previous-tab"), + iconClass: "bx bx-skip-previous", defaultShortcuts: isElectron ? ["CommandOrControl+Shift+Tab", "CommandOrControl+PageUp"] : [], description: t("keyboard_actions.activate-previous-tab"), scope: "window" }, { actionName: "openNewWindow", + friendlyName: t("keyboard_action_names.open-new-window"), + iconClass: "bx bx-window-open", defaultShortcuts: [], description: t("keyboard_actions.open-new-window"), scope: "window" }, { actionName: "toggleTray", + friendlyName: t("keyboard_action_names.toggle-system-tray-icon"), + iconClass: "bx bx-show", defaultShortcuts: [], + isElectronOnly: true, description: t("keyboard_actions.toggle-tray"), scope: "window" }, { actionName: "toggleZenMode", + friendlyName: t("keyboard_action_names.toggle-zen-mode"), + iconClass: "bx bxs-yin-yang", defaultShortcuts: ["F9"], description: t("keyboard_actions.toggle-zen-mode"), scope: "window" }, { actionName: "firstTab", + friendlyName: t("keyboard_action_names.switch-to-first-tab"), + iconClass: "bx bx-rectangle", defaultShortcuts: ["CommandOrControl+1"], description: t("keyboard_actions.first-tab"), scope: "window" }, { actionName: "secondTab", + friendlyName: t("keyboard_action_names.switch-to-second-tab"), + iconClass: "bx bx-rectangle", defaultShortcuts: ["CommandOrControl+2"], description: t("keyboard_actions.second-tab"), scope: "window" }, { actionName: "thirdTab", + friendlyName: t("keyboard_action_names.switch-to-third-tab"), + iconClass: "bx bx-rectangle", defaultShortcuts: ["CommandOrControl+3"], description: t("keyboard_actions.third-tab"), scope: "window" }, { actionName: "fourthTab", + friendlyName: t("keyboard_action_names.switch-to-fourth-tab"), + iconClass: "bx bx-rectangle", defaultShortcuts: ["CommandOrControl+4"], description: t("keyboard_actions.fourth-tab"), scope: "window" }, { actionName: "fifthTab", + friendlyName: t("keyboard_action_names.switch-to-fifth-tab"), + iconClass: "bx bx-rectangle", defaultShortcuts: ["CommandOrControl+5"], description: t("keyboard_actions.fifth-tab"), scope: "window" }, { actionName: "sixthTab", + friendlyName: t("keyboard_action_names.switch-to-sixth-tab"), + iconClass: "bx bx-rectangle", defaultShortcuts: ["CommandOrControl+6"], description: t("keyboard_actions.sixth-tab"), scope: "window" }, { actionName: "seventhTab", + friendlyName: t("keyboard_action_names.switch-to-seventh-tab"), + iconClass: "bx bx-rectangle", defaultShortcuts: ["CommandOrControl+7"], description: t("keyboard_actions.seventh-tab"), scope: "window" }, { actionName: "eigthTab", + friendlyName: t("keyboard_action_names.switch-to-eighth-tab"), + iconClass: "bx bx-rectangle", defaultShortcuts: ["CommandOrControl+8"], description: t("keyboard_actions.eight-tab"), scope: "window" }, { actionName: "ninthTab", + friendlyName: t("keyboard_action_names.switch-to-ninth-tab"), + iconClass: "bx bx-rectangle", defaultShortcuts: ["CommandOrControl+9"], description: t("keyboard_actions.ninth-tab"), scope: "window" }, { actionName: "lastTab", - defaultShortcuts: [], + friendlyName: t("keyboard_action_names.switch-to-last-tab"), + iconClass: "bx bx-rectangle", + defaultShortcuts: ["CommandOrControl+0"], description: t("keyboard_actions.last-tab"), scope: "window" }, @@ -317,49 +421,65 @@ function getDefaultKeyboardActions() { separator: t("keyboard_actions.dialogs") }, { + friendlyName: t("keyboard_action_names.show-note-source"), actionName: "showNoteSource", + iconClass: "bx bx-code", defaultShortcuts: [], description: t("keyboard_actions.show-note-source"), scope: "window" }, { + friendlyName: t("keyboard_action_names.show-options"), actionName: "showOptions", + iconClass: "bx bx-cog", defaultShortcuts: [], description: t("keyboard_actions.show-options"), scope: "window" }, { + friendlyName: t("keyboard_action_names.show-revisions"), actionName: "showRevisions", + iconClass: "bx bx-history", defaultShortcuts: [], description: t("keyboard_actions.show-revisions"), scope: "window" }, { + friendlyName: t("keyboard_action_names.show-recent-changes"), actionName: "showRecentChanges", + iconClass: "bx bx-history", defaultShortcuts: [], description: t("keyboard_actions.show-recent-changes"), scope: "window" }, { + friendlyName: t("keyboard_action_names.show-sql-console"), actionName: "showSQLConsole", + iconClass: "bx bx-data", defaultShortcuts: ["Alt+O"], description: t("keyboard_actions.show-sql-console"), scope: "window" }, { + friendlyName: t("keyboard_action_names.show-backend-log"), actionName: "showBackendLog", + iconClass: "bx bx-detail", defaultShortcuts: [], description: t("keyboard_actions.show-backend-log"), scope: "window" }, { + friendlyName: t("keyboard_action_names.show-help"), actionName: "showHelp", + iconClass: "bx bx-help-circle", defaultShortcuts: ["F1"], description: t("keyboard_actions.show-help"), scope: "window" }, { + friendlyName: t("keyboard_action_names.show-cheatsheet"), actionName: "showCheatsheet", + iconClass: "bx bxs-keyboard", defaultShortcuts: ["Shift+F1"], description: t("keyboard_actions.show-cheatsheet"), scope: "window" @@ -370,43 +490,57 @@ function getDefaultKeyboardActions() { }, { + friendlyName: t("keyboard_action_names.add-link-to-text"), actionName: "addLinkToText", + iconClass: "bx bx-link", defaultShortcuts: ["CommandOrControl+L"], description: t("keyboard_actions.add-link-to-text"), scope: "text-detail" }, { + friendlyName: t("keyboard_action_names.follow-link-under-cursor"), actionName: "followLinkUnderCursor", + iconClass: "bx bx-link-external", defaultShortcuts: ["CommandOrControl+Enter"], description: t("keyboard_actions.follow-link-under-cursor"), scope: "text-detail" }, { + friendlyName: t("keyboard_action_names.insert-date-and-time-to-text"), actionName: "insertDateTimeToText", + iconClass: "bx bx-calendar-event", defaultShortcuts: ["Alt+T"], description: t("keyboard_actions.insert-date-and-time-to-text"), scope: "text-detail" }, { + friendlyName: t("keyboard_action_names.paste-markdown-into-text"), actionName: "pasteMarkdownIntoText", + iconClass: "bx bxl-markdown", defaultShortcuts: [], description: t("keyboard_actions.paste-markdown-into-text"), scope: "text-detail" }, { + friendlyName: t("keyboard_action_names.cut-into-note"), actionName: "cutIntoNote", + iconClass: "bx bx-cut", defaultShortcuts: [], description: t("keyboard_actions.cut-into-note"), scope: "text-detail" }, { + friendlyName: t("keyboard_action_names.add-include-note-to-text"), actionName: "addIncludeNoteToText", + iconClass: "bx bx-note", defaultShortcuts: [], description: t("keyboard_actions.add-include-note-to-text"), scope: "text-detail" }, { + friendlyName: t("keyboard_action_names.edit-read-only-note"), actionName: "editReadOnlyNote", + iconClass: "bx bx-edit-alt", defaultShortcuts: [], description: t("keyboard_actions.edit-readonly-note"), scope: "window" @@ -417,13 +551,17 @@ function getDefaultKeyboardActions() { }, { + friendlyName: t("keyboard_action_names.add-new-label"), actionName: "addNewLabel", + iconClass: "bx bx-hash", defaultShortcuts: ["Alt+L"], description: t("keyboard_actions.add-new-label"), scope: "window" }, { + friendlyName: t("keyboard_action_names.add-new-relation"), actionName: "addNewRelation", + iconClass: "bx bx-transfer", defaultShortcuts: ["Alt+R"], description: t("keyboard_actions.create-new-relation"), scope: "window" @@ -434,43 +572,57 @@ function getDefaultKeyboardActions() { }, { + friendlyName: t("keyboard_action_names.toggle-ribbon-tab-classic-editor"), actionName: "toggleRibbonTabClassicEditor", + iconClass: "bx bx-text", defaultShortcuts: [], description: t("keyboard_actions.toggle-classic-editor-toolbar"), scope: "window" }, { actionName: "toggleRibbonTabBasicProperties", + friendlyName: t("keyboard_action_names.toggle-ribbon-tab-basic-properties"), + iconClass: "bx bx-slider", defaultShortcuts: [], description: t("keyboard_actions.toggle-basic-properties"), scope: "window" }, { actionName: "toggleRibbonTabBookProperties", + friendlyName: t("keyboard_action_names.toggle-ribbon-tab-book-properties"), + iconClass: "bx bx-book", defaultShortcuts: [], description: t("keyboard_actions.toggle-book-properties"), scope: "window" }, { actionName: "toggleRibbonTabFileProperties", + friendlyName: t("keyboard_action_names.toggle-ribbon-tab-file-properties"), + iconClass: "bx bx-file", defaultShortcuts: [], description: t("keyboard_actions.toggle-file-properties"), scope: "window" }, { actionName: "toggleRibbonTabImageProperties", + friendlyName: t("keyboard_action_names.toggle-ribbon-tab-image-properties"), + iconClass: "bx bx-image", defaultShortcuts: [], description: t("keyboard_actions.toggle-image-properties"), scope: "window" }, { actionName: "toggleRibbonTabOwnedAttributes", + friendlyName: t("keyboard_action_names.toggle-ribbon-tab-owned-attributes"), + iconClass: "bx bx-list-check", defaultShortcuts: ["Alt+A"], description: t("keyboard_actions.toggle-owned-attributes"), scope: "window" }, { actionName: "toggleRibbonTabInheritedAttributes", + friendlyName: t("keyboard_action_names.toggle-ribbon-tab-inherited-attributes"), + iconClass: "bx bx-list-plus", defaultShortcuts: [], description: t("keyboard_actions.toggle-inherited-attributes"), scope: "window" @@ -478,30 +630,40 @@ function getDefaultKeyboardActions() { // TODO: Remove or change since promoted attributes have been changed. { actionName: "toggleRibbonTabPromotedAttributes", + friendlyName: t("keyboard_action_names.toggle-ribbon-tab-promoted-attributes"), + iconClass: "bx bx-star", defaultShortcuts: [], description: t("keyboard_actions.toggle-promoted-attributes"), scope: "window" }, { actionName: "toggleRibbonTabNoteMap", + friendlyName: t("keyboard_action_names.toggle-ribbon-tab-note-map"), + iconClass: "bx bxs-network-chart", defaultShortcuts: [], description: t("keyboard_actions.toggle-link-map"), scope: "window" }, { actionName: "toggleRibbonTabNoteInfo", + friendlyName: t("keyboard_action_names.toggle-ribbon-tab-note-info"), + iconClass: "bx bx-info-circle", defaultShortcuts: [], description: t("keyboard_actions.toggle-note-info"), scope: "window" }, { actionName: "toggleRibbonTabNotePaths", + friendlyName: t("keyboard_action_names.toggle-ribbon-tab-note-paths"), + iconClass: "bx bx-collection", defaultShortcuts: [], description: t("keyboard_actions.toggle-note-paths"), scope: "window" }, { actionName: "toggleRibbonTabSimilarNotes", + friendlyName: t("keyboard_action_names.toggle-ribbon-tab-similar-notes"), + iconClass: "bx bx-bar-chart", defaultShortcuts: [], description: t("keyboard_actions.toggle-similar-notes"), scope: "window" @@ -513,108 +675,148 @@ function getDefaultKeyboardActions() { { actionName: "toggleRightPane", + friendlyName: t("keyboard_action_names.toggle-right-pane"), + iconClass: "bx bx-dock-right", defaultShortcuts: [], description: t("keyboard_actions.toggle-right-pane"), scope: "window" }, { actionName: "printActiveNote", + friendlyName: t("keyboard_action_names.print-active-note"), + iconClass: "bx bx-printer", defaultShortcuts: [], description: t("keyboard_actions.print-active-note"), scope: "window" }, { actionName: "exportAsPdf", + friendlyName: t("keyboard_action_names.export-active-note-as-pdf"), + iconClass: "bx bxs-file-pdf", defaultShortcuts: [], description: t("keyboard_actions.export-as-pdf"), scope: "window" }, { actionName: "openNoteExternally", + friendlyName: t("keyboard_action_names.open-note-externally"), + iconClass: "bx bx-file-find", defaultShortcuts: [], description: t("keyboard_actions.open-note-externally"), scope: "window" }, { actionName: "renderActiveNote", + friendlyName: t("keyboard_action_names.render-active-note"), + iconClass: "bx bx-refresh", defaultShortcuts: [], description: t("keyboard_actions.render-active-note"), scope: "window" }, { actionName: "runActiveNote", + friendlyName: t("keyboard_action_names.run-active-note"), + iconClass: "bx bx-play", defaultShortcuts: ["CommandOrControl+Enter"], description: t("keyboard_actions.run-active-note"), scope: "code-detail" }, { actionName: "toggleNoteHoisting", + friendlyName: t("keyboard_action_names.toggle-note-hoisting"), + iconClass: "bx bx-chevrons-up", defaultShortcuts: ["Alt+H"], description: t("keyboard_actions.toggle-note-hoisting"), scope: "window" }, { actionName: "unhoist", + friendlyName: t("keyboard_action_names.unhoist-note"), + iconClass: "bx bx-door-open", defaultShortcuts: ["Alt+U"], description: t("keyboard_actions.unhoist"), scope: "window" }, { actionName: "reloadFrontendApp", + friendlyName: t("keyboard_action_names.reload-frontend-app"), + iconClass: "bx bx-refresh", defaultShortcuts: ["F5", "CommandOrControl+R"], description: t("keyboard_actions.reload-frontend-app"), scope: "window" }, { actionName: "openDevTools", + friendlyName: t("keyboard_action_names.open-developer-tools"), + iconClass: "bx bx-bug-alt", defaultShortcuts: isElectron ? ["CommandOrControl+Shift+I"] : [], + isElectronOnly: true, description: t("keyboard_actions.open-dev-tools"), scope: "window" }, { actionName: "findInText", + friendlyName: t("keyboard_action_names.find-in-text"), + iconClass: "bx bx-search", defaultShortcuts: isElectron ? ["CommandOrControl+F"] : [], description: t("keyboard_actions.find-in-text"), scope: "window" }, { actionName: "toggleLeftPane", + friendlyName: t("keyboard_action_names.toggle-left-pane"), + iconClass: "bx bx-sidebar", defaultShortcuts: [], description: t("keyboard_actions.toggle-left-note-tree-panel"), scope: "window" }, { actionName: "toggleFullscreen", + friendlyName: t("keyboard_action_names.toggle-full-screen"), + iconClass: "bx bx-fullscreen", defaultShortcuts: ["F11"], description: t("keyboard_actions.toggle-full-screen"), scope: "window" }, { actionName: "zoomOut", + friendlyName: t("keyboard_action_names.zoom-out"), + iconClass: "bx bx-zoom-out", defaultShortcuts: isElectron ? ["CommandOrControl+-"] : [], + isElectronOnly: true, description: t("keyboard_actions.zoom-out"), scope: "window" }, { actionName: "zoomIn", + friendlyName: t("keyboard_action_names.zoom-in"), + iconClass: "bx bx-zoom-in", description: t("keyboard_actions.zoom-in"), defaultShortcuts: isElectron ? ["CommandOrControl+="] : [], + isElectronOnly: true, scope: "window" }, { actionName: "zoomReset", + friendlyName: t("keyboard_action_names.reset-zoom-level"), + iconClass: "bx bx-search-alt", description: t("keyboard_actions.reset-zoom-level"), defaultShortcuts: isElectron ? ["CommandOrControl+0"] : [], + isElectronOnly: true, scope: "window" }, { actionName: "copyWithoutFormatting", + friendlyName: t("keyboard_action_names.copy-without-formatting"), + iconClass: "bx bx-copy-alt", defaultShortcuts: ["CommandOrControl+Alt+C"], description: t("keyboard_actions.copy-without-formatting"), scope: "text-detail" }, { actionName: "forceSaveRevision", + friendlyName: t("keyboard_action_names.force-save-revision"), + iconClass: "bx bx-save", defaultShortcuts: [], description: t("keyboard_actions.force-save-revision"), scope: "window" @@ -627,7 +829,7 @@ function getDefaultKeyboardActions() { const platformModifier = isMac ? "Meta" : "Ctrl"; for (const action of DEFAULT_KEYBOARD_ACTIONS) { - if (action.defaultShortcuts) { + if ("defaultShortcuts" in action && action.defaultShortcuts) { action.defaultShortcuts = action.defaultShortcuts.map((shortcut) => shortcut.replace("CommandOrControl", platformModifier)); } } @@ -639,7 +841,9 @@ function getKeyboardActions() { const actions: KeyboardShortcut[] = JSON.parse(JSON.stringify(getDefaultKeyboardActions())); for (const action of actions) { - action.effectiveShortcuts = action.defaultShortcuts ? action.defaultShortcuts.slice() : []; + if ("effectiveShortcuts" in action && action.effectiveShortcuts) { + action.effectiveShortcuts = action.defaultShortcuts ? action.defaultShortcuts.slice() : []; + } } for (const option of optionService.getOptions()) { @@ -647,7 +851,7 @@ function getKeyboardActions() { let actionName = option.name.substring(17); actionName = actionName.charAt(0).toLowerCase() + actionName.slice(1); - const action = actions.find((ea) => ea.actionName === actionName); + const action = actions.find((ea) => "actionName" in ea && ea.actionName === actionName) as ActionKeyboardShortcut; if (action) { try { diff --git a/apps/server/src/services/llm/chat_storage_service.spec.ts b/apps/server/src/services/llm/chat_storage_service.spec.ts index 3fe2f1639d..d820d74977 100644 --- a/apps/server/src/services/llm/chat_storage_service.spec.ts +++ b/apps/server/src/services/llm/chat_storage_service.spec.ts @@ -55,7 +55,7 @@ describe('ChatStorageService', () => { beforeEach(async () => { vi.clearAllMocks(); chatStorageService = new ChatStorageService(); - + // Get mocked modules mockNotes = (await import('../notes.js')).default; mockSql = (await import('../sql.js')).default; @@ -177,7 +177,7 @@ describe('ChatStorageService', () => { const result = await chatStorageService.createChat(''); expect(result.title).toContain('New Chat'); - expect(result.title).toMatch(/\d{1,2}\/\d{1,2}\/\d{4}/); // Date pattern + expect(result.title).toMatch(/\d{4}/); }); }); @@ -622,4 +622,4 @@ describe('ChatStorageService', () => { expect(toolExecutions[0].arguments).toEqual({ query: 'existing' }); }); }); -}); \ No newline at end of file +}); diff --git a/apps/server/src/services/note_types.ts b/apps/server/src/services/note_types.ts index 3b2dc8d662..2aa86d0b64 100644 --- a/apps/server/src/services/note_types.ts +++ b/apps/server/src/services/note_types.ts @@ -15,7 +15,6 @@ const noteTypes = [ { type: "doc", defaultMime: "" }, { type: "contentWidget", defaultMime: "" }, { type: "mindMap", defaultMime: "application/json" }, - { type: "geoMap", defaultMime: "application/json" }, { type: "aiChat", defaultMime: "application/json" } ]; diff --git a/apps/server/src/services/notes.ts b/apps/server/src/services/notes.ts index 4c82c0e8c9..e225cdb525 100644 --- a/apps/server/src/services/notes.ts +++ b/apps/server/src/services/notes.ts @@ -254,7 +254,7 @@ function createNewNote(params: NoteParams): { }); } -function createNewNoteWithTarget(target: "into" | "after", targetBranchId: string | undefined, params: NoteParams) { +function createNewNoteWithTarget(target: "into" | "after" | "before", targetBranchId: string | undefined, params: NoteParams) { if (!params.type) { const parentNote = becca.notes[params.parentNoteId]; @@ -277,6 +277,19 @@ function createNewNoteWithTarget(target: "into" | "after", targetBranchId: strin entityChangesService.putNoteReorderingEntityChange(params.parentNoteId); + return retObject; + } else if (target === "before" && targetBranchId) { + const beforeBranch = becca.branches[targetBranchId]; + + // not updating utcDateModified to avoid having to sync whole rows + sql.execute("UPDATE branches SET notePosition = notePosition - 10 WHERE parentNoteId = ? AND notePosition < ? AND isDeleted = 0", [params.parentNoteId, beforeBranch.notePosition]); + + params.notePosition = beforeBranch.notePosition - 10; + + const retObject = createNewNote(params); + + entityChangesService.putNoteReorderingEntityChange(params.parentNoteId); + return retObject; } else { throw new Error(`Unknown target '${target}'`); @@ -918,10 +931,6 @@ function duplicateSubtree(origNoteId: string, newParentNoteId: string) { const noteIdMapping = getNoteIdMapping(origNote); - if (!origBranch) { - throw new Error("Unable to find original branch to duplicate."); - } - const res = duplicateSubtreeInner(origNote, origBranch, newParentNoteId, noteIdMapping); const duplicateNoteSuffix = t("notes.duplicate-note-suffix"); @@ -953,7 +962,7 @@ function duplicateSubtreeWithoutRoot(origNoteId: string, newNoteId: string) { } } -function duplicateSubtreeInner(origNote: BNote, origBranch: BBranch, newParentNoteId: string, noteIdMapping: Record) { +function duplicateSubtreeInner(origNote: BNote, origBranch: BBranch | null | undefined, newParentNoteId: string, noteIdMapping: Record) { if (origNote.isProtected && !protectedSessionService.isProtectedSessionAvailable()) { throw new Error(`Cannot duplicate note '${origNote.noteId}' because it is protected and protected session is not available. Enter protected session and try again.`); } diff --git a/apps/server/src/services/options_init.ts b/apps/server/src/services/options_init.ts index 73aebce209..cb05feb2b4 100644 --- a/apps/server/src/services/options_init.ts +++ b/apps/server/src/services/options_init.ts @@ -251,7 +251,7 @@ function initStartupOptions() { } function getKeyboardDefaultOptions() { - return (keyboardActions.getDefaultKeyboardActions().filter((ka) => !!ka.actionName) as KeyboardShortcutWithRequiredActionName[]).map((ka) => ({ + return (keyboardActions.getDefaultKeyboardActions().filter((ka) => "actionName" in ka) as KeyboardShortcutWithRequiredActionName[]).map((ka) => ({ name: `keyboardShortcuts${ka.actionName.charAt(0).toUpperCase()}${ka.actionName.slice(1)}`, value: JSON.stringify(ka.defaultShortcuts), isSynced: false diff --git a/apps/server/src/services/special_notes.ts b/apps/server/src/services/special_notes.ts index 4083b8fff1..a877c8c2a1 100644 --- a/apps/server/src/services/special_notes.ts +++ b/apps/server/src/services/special_notes.ts @@ -7,10 +7,9 @@ import log from "./log.js"; import hoistedNoteService from "./hoisted_note.js"; import searchService from "./search/services/search.js"; import SearchContext from "./search/search_context.js"; -import hiddenSubtree from "./hidden_subtree.js"; +import { LBTPL_NOTE_LAUNCHER, LBTPL_CUSTOM_WIDGET, LBTPL_SPACER, LBTPL_SCRIPT } from "./hidden_subtree.js"; import { t } from "i18next"; import { BNote } from "./backend_script_entrypoint.js"; -const { LBTPL_NOTE_LAUNCHER, LBTPL_CUSTOM_WIDGET, LBTPL_SPACER, LBTPL_SCRIPT } = hiddenSubtree; function getInboxNote(date: string) { const workspaceNote = hoistedNoteService.getWorkspaceNote(); diff --git a/apps/server/src/services/sql_init.ts b/apps/server/src/services/sql_init.ts index 5fb0bd573c..9fc9ba2e5d 100644 --- a/apps/server/src/services/sql_init.ts +++ b/apps/server/src/services/sql_init.ts @@ -14,12 +14,11 @@ import type { OptionRow } from "@triliumnext/commons"; import BNote from "../becca/entities/bnote.js"; import BBranch from "../becca/entities/bbranch.js"; import zipImportService from "./import/zip.js"; -import becca_loader from "../becca/becca_loader.js"; import password from "./encryption/password.js"; import backup from "./backup.js"; import eventService from "./events.js"; -const dbReady = deferred(); +export const dbReady = deferred(); function schemaExists() { return !!sql.getValue(/*sql*/`SELECT name FROM sqlite_master @@ -83,6 +82,7 @@ async function createInitialDatabase(skipDemoDb?: boolean) { // We have to import async since options init requires keyboard actions which require translations. const optionsInitService = (await import("./options_init.js")).default; + const becca_loader = (await import("../becca/becca_loader.js")).default; sql.transactional(() => { log.info("Creating database schema ..."); diff --git a/apps/server/src/services/window.ts b/apps/server/src/services/window.ts index ec87e5f00c..9ddd5e4ff6 100644 --- a/apps/server/src/services/window.ts +++ b/apps/server/src/services/window.ts @@ -295,7 +295,7 @@ async function registerGlobalShortcuts() { const allActions = keyboardActionsService.getKeyboardActions(); for (const action of allActions) { - if (!action.effectiveShortcuts) { + if (!("effectiveShortcuts" in action) || !action.effectiveShortcuts) { continue; } diff --git a/apps/server/src/services/ws.ts b/apps/server/src/services/ws.ts index 2692f47ebf..63a26bbc9a 100644 --- a/apps/server/src/services/ws.ts +++ b/apps/server/src/services/ws.ts @@ -199,13 +199,21 @@ function fillInAdditionalProperties(entityChange: EntityChange) { entityChange.entity = sql.getRow(/*sql*/`SELECT * FROM options WHERE name = ?`, [entityChange.entityId]); } } else if (entityChange.entityName === "attachments") { - entityChange.entity = sql.getRow( - /*sql*/`SELECT attachments.*, LENGTH(blobs.content) AS contentLength - FROM attachments - JOIN blobs USING (blobId) - WHERE attachmentId = ?`, - [entityChange.entityId] - ); + entityChange.entity = becca.getAttachment(entityChange.entityId); + + if (!entityChange.entity) { + entityChange.entity = sql.getRow( + /*sql*/`SELECT attachments.*, LENGTH(blobs.content) AS contentLength + FROM attachments + JOIN blobs USING (blobId) + WHERE attachmentId = ?`, + [entityChange.entityId] + ); + + if (entityChange.entity?.isProtected) { + entityChange.entity.title = protectedSessionService.decryptString(entityChange.entity.title || ""); + } + } } if (entityChange.entity instanceof AbstractBeccaEntity) { diff --git a/apps/website/package.json b/apps/website/package.json index 6467023abb..4e6a141c81 100644 --- a/apps/website/package.json +++ b/apps/website/package.json @@ -17,7 +17,7 @@ "@eslint/js": "^9.18.0", "@sveltejs/adapter-auto": "^6.0.0", "@sveltejs/kit": "^2.16.0", - "@sveltejs/vite-plugin-svelte": "^5.0.0", + "@sveltejs/vite-plugin-svelte": "^6.0.0", "@tailwindcss/typography": "^0.5.15", "@tailwindcss/vite": "^4.0.0", "eslint": "^9.18.0", diff --git a/apps/website/src/routes/+layout.svelte b/apps/website/src/routes/+layout.svelte index 9cefd17366..98e32e276b 100644 --- a/apps/website/src/routes/+layout.svelte +++ b/apps/website/src/routes/+layout.svelte @@ -12,5 +12,5 @@ diff --git a/apps/website/vite.config.ts b/apps/website/vite.config.ts index 4625e0b2c0..135fc634d5 100644 --- a/apps/website/vite.config.ts +++ b/apps/website/vite.config.ts @@ -1,7 +1,7 @@ import tailwindcss from '@tailwindcss/vite'; import { paraglideVitePlugin } from '@inlang/paraglide-js'; import { sveltekit } from '@sveltejs/kit/vite'; -import { defineConfig } from 'vite'; +import { defineConfig, type Plugin } from 'vite'; export default () => { // See https://github.com/nrwl/nx/issues/28978. @@ -16,7 +16,7 @@ export default () => { project: './project.inlang', outdir: './src/lib/paraglide' }) - ] + ] as Plugin[] }); process.chdir(cwd); // Restore the original working directory diff --git a/docker-compose.yml b/docker-compose.yml index 63f798bb9a..ba9824c7c4 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: trilium: # Optionally, replace `latest` with a version tag like `v0.90.3` # Using `latest` may cause unintended updates to the container - image: triliumnext/notes:latest + image: triliumnext/trilium:latest # Restart the container unless it was stopped by the user restart: unless-stopped environment: diff --git a/docs/Developer Guide/!!!meta.json b/docs/Developer Guide/!!!meta.json index 45135e5ea2..aee04e341c 100644 --- a/docs/Developer Guide/!!!meta.json +++ b/docs/Developer Guide/!!!meta.json @@ -1,6 +1,6 @@ { "formatVersion": 2, - "appVersion": "0.96.0", + "appVersion": "0.97.2", "files": [ { "isClone": false, diff --git a/docs/Developer Guide/Developer Guide/Building and deployment/Nix flake.md b/docs/Developer Guide/Developer Guide/Building and deployment/Nix flake.md index 9268eed6e4..b1bfb2ebba 100644 --- a/docs/Developer Guide/Developer Guide/Building and deployment/Nix flake.md +++ b/docs/Developer Guide/Developer Guide/Building and deployment/Nix flake.md @@ -7,9 +7,9 @@ Installation of Nix on Mac or Linux ([download page](https://nixos.org/download/ ## Run directly -Using [nix run](https://nix.dev/manual/nix/stable/command-ref/new-cli/nix3-run.html), the desktop app can be started as: `nix run github:TriliumNext/Notes/v0.95.0` +Using [nix run](https://nix.dev/manual/nix/stable/command-ref/new-cli/nix3-run.html), the desktop app can be started as: `nix run github:TriliumNext/Trilium/v0.95.0` -Running the server requires explicitly specifying the desired package: `nix run github:TriliumNext/Notes/v0.95.0#server` +Running the server requires explicitly specifying the desired package: `nix run github:TriliumNext/Trilium/v0.95.0#server` Instead of a version (`v0.95.0` above), you can also specify a commit hash (or a branch name). This makes it easy to test development builds. @@ -22,7 +22,7 @@ Add to your `flake.nix`: inputs = { nixpkgs.url = # ...; trilium-notes = { - url = "github:TriliumNext/Notes/v0.95.0"; + url = "github:TriliumNext/Trilium/v0.95.0"; inputs.nixpkgs.follows = "nixpkgs"; }; }; diff --git a/docs/Developer Guide/Developer Guide/Development and architecture/Database/attachments.md b/docs/Developer Guide/Developer Guide/Development and architecture/Database/attachments.md index 274233e4f4..4312832dd4 100644 --- a/docs/Developer Guide/Developer Guide/Development and architecture/Database/attachments.md +++ b/docs/Developer Guide/Developer Guide/Development and architecture/Database/attachments.md @@ -1,2 +1,16 @@ # attachments -
            Column NameData TypeNullityDefault valueDescription
            attachmentIdTextNon-null Unique ID (e.g. qhC1vzU4nwSE)
            ownerIdTextNon-null The unique ID of a row in notes.
            roleTextNon-null The role of the attachment: image for images that are attached to a note, file for uploaded files.
            mimeTextNon-null The MIME type of the attachment (e.g. image/png)
            titleTextNon-null The title of the attachment.
            isProtectedIntegerNon-null01 if the entity is protected, 0 otherwise.
            positionIntegerNon-null0Not sure where the position is relevant for attachments (saw it with values of 10 and 0).
            blobIdTextNullablenullThe corresponding blobId from the blobs table.
            dateModifiedTextNon-null Localized modification date (e.g. 2023-11-08 18:43:44.204+0200)
            utcDateModifiedTextNon-null Modification date in UTC format (e.g. 2023-11-08 16:43:44.204Z)
            utcDateScheduledForErasureTextNullablenull 
            isDeletedIntegerNon-null 1 if the entity is deleted, 0 otherwise.
            deleteIdTextNullablenull 
            \ No newline at end of file +| Column Name | Data Type | Nullity | Default value | Description | +| --- | --- | --- | --- | --- | +| `attachmentId` | Text | Non-null | | Unique ID (e.g. `qhC1vzU4nwSE`) | +| `ownerId` | Text | Non-null | | The unique ID of a row in notes. | +| `role` | Text | Non-null | | The role of the attachment: `image` for images that are attached to a note, `file` for uploaded files. | +| `mime` | Text | Non-null | | The MIME type of the attachment (e.g. `image/png`) | +| `title` | Text | Non-null | | The title of the attachment. | +| `isProtected` | Integer | Non-null | 0 | `1` if the entity is [protected](../Protected%20entities.md), `0` otherwise. | +| `position` | Integer | Non-null | 0 | Not sure where the position is relevant for attachments (saw it with values of 10 and 0). | +| `blobId` | Text | Nullable | `null` | The corresponding `blobId` from the blobs table. | +| `dateModified` | Text | Non-null | | Localized modification date (e.g. `2023-11-08 18:43:44.204+0200`) | +| `utcDateModified` | Text | Non-null | | Modification date in UTC format (e.g. `2023-11-08 16:43:44.204Z`) | +| `utcDateScheduledForErasure` | Text | Nullable | `null` | | +| `isDeleted` | Integer | Non-null | | `1` if the entity is [deleted](../Deleted%20notes.md), `0` otherwise. | +| `deleteId` | Text | Nullable | `null` | | \ No newline at end of file diff --git a/docs/Developer Guide/Developer Guide/Development and architecture/Database/attributes.md b/docs/Developer Guide/Developer Guide/Development and architecture/Database/attributes.md index bb031059cb..4e7ca6a4c9 100644 --- a/docs/Developer Guide/Developer Guide/Development and architecture/Database/attributes.md +++ b/docs/Developer Guide/Developer Guide/Development and architecture/Database/attributes.md @@ -1,2 +1,2 @@ # attributes -
            Column NameData TypeNullityDefault valueDescription
            attributeIdTextNon-null Unique Id of the attribute (e.g. qhC1vzU4nwSE), can also have a special unique ID for Special notes (e.g. _lbToday_liconClass).
            noteIdTextNon-null The ID of the note this atttribute belongs to
            typeTextNon-null The type of attribute (label or relation).
            nameTextNon-null The name/key of the attribute.
            valueTextNon-null""
            • For label attributes, a free-form value of the attribute.
            • For relation attributes, the ID of the note the relation is pointing to.
            positionIntegerNon-null0The position of the attribute compared to the other attributes. Some predefined attributes such as originalFileName have a value of 1000.
            utcDateModifiedTextNon-null Modification date in UTC format (e.g. 2023-11-08 16:43:44.204Z)
            isDeletedIntegerNon-null 1 if the entity is deleted, 0 otherwise.
            deleteIdTextNullablenull 
            isInheritableIntegerNullable0 
            \ No newline at end of file +
            Column NameData TypeNullityDefault valueDescription
            attributeIdTextNon-null Unique Id of the attribute (e.g. qhC1vzU4nwSE), can also have a special unique ID for Special notes (e.g. _lbToday_liconClass).
            noteIdTextNon-null The ID of the note this atttribute belongs to
            typeTextNon-null The type of attribute (label or relation).
            nameTextNon-null The name/key of the attribute.
            valueTextNon-null""
            • For label attributes, a free-form value of the attribute.
            • For relation attributes, the ID of the note the relation is pointing to.
            positionIntegerNon-null0The position of the attribute compared to the other attributes. Some predefined attributes such as originalFileName have a value of 1000.
            utcDateModifiedTextNon-null Modification date in UTC format (e.g. 2023-11-08 16:43:44.204Z)
            isDeletedIntegerNon-null 1 if the entity is deleted, 0 otherwise.
            deleteIdTextNullablenull 
            isInheritableIntegerNullable0 
            \ No newline at end of file diff --git a/docs/Developer Guide/Developer Guide/Development and architecture/Database/blobs.md b/docs/Developer Guide/Developer Guide/Development and architecture/Database/blobs.md index 767e456722..d0efc54345 100644 --- a/docs/Developer Guide/Developer Guide/Development and architecture/Database/blobs.md +++ b/docs/Developer Guide/Developer Guide/Development and architecture/Database/blobs.md @@ -1,2 +1,2 @@ # blobs -
            Column NameData TypeNullityDefault valueDescription
            blobIdTextNon-null The unique ID of the blob (e.g. XXbfAJXqWrYnSXcelLFA).

            Important: this ID is actually a hash of the content, see AbstractBeccaEntity#saveBlob! It is a logic error to modify an existing blob.

            contentTextNullablenull

            The content of the blob, can be either:

            • text (for plain text notes or HTML notes).
            • binary (for images and other types of attachments)
            dateModifiedTextNon-null Creation date with timezone offset (e.g. 2023-11-08 18:43:44.204+0200)
            utcDateModifiedTextNon-null Creation date in UTC format (e.g. 2023-11-08 16:43:44.204Z).

            Blobs cannot be modified, so this timestamp specifies when the blob was created.

            \ No newline at end of file +
            Column NameData TypeNullityDefault valueDescription
            blobIdTextNon-null The unique ID of the blob (e.g. XXbfAJXqWrYnSXcelLFA).

            Important: this ID is actually a hash of the content, see AbstractBeccaEntity#saveBlob! It is a logic error to modify an existing blob.

            contentTextNullablenull

            The content of the blob, can be either:

            • text (for plain text notes or HTML notes).
            • binary (for images and other types of attachments)
            dateModifiedTextNon-null Creation date with timezone offset (e.g. 2023-11-08 18:43:44.204+0200)
            utcDateModifiedTextNon-null Creation date in UTC format (e.g. 2023-11-08 16:43:44.204Z).

            Blobs cannot be modified, so this timestamp specifies when the blob was created.

            \ No newline at end of file diff --git a/docs/Developer Guide/Developer Guide/Development and architecture/Database/branches.md b/docs/Developer Guide/Developer Guide/Development and architecture/Database/branches.md index ca25da917d..d9b12dea56 100644 --- a/docs/Developer Guide/Developer Guide/Development and architecture/Database/branches.md +++ b/docs/Developer Guide/Developer Guide/Development and architecture/Database/branches.md @@ -1,2 +1,12 @@ # branches -
            Column NameData TypeNullityDefault valueDescription
            branchIdTextNon-null The ID of the branch, in the form of a_b where a is the parentNoteId and b is the noteId.
            noteIdTextNon-null The ID of the note.
            parentNoteIdTextNon-null The ID of the parent note the note belongs to.
            notePositionIntegerNon-null The position of the branch within the same level of hierarchy, the value is usually a multiple of 10.
            prefixTextNullable The branch prefix if any, or NULL otherwise.
            isExpandedIntegerNon-null0Whether the branch should appear expanded (its children shown) to the user.
            isDeletedIntegerNon-null01 if the entity is deleted, 0 otherwise.
            deleteIdTextNullablenull 
            utcDateModifiedTextNon-null Modification date in UTC format (e.g. 2023-11-08 16:43:44.204Z)
            \ No newline at end of file +| Column Name | Data Type | Nullity | Default value | Description | +| --- | --- | --- | --- | --- | +| `branchId` | Text | Non-null | | The ID of the branch, in the form of `a_b` where `a` is the `parentNoteId` and `b` is the `noteId`. | +| `noteId` | Text | Non-null | | The ID of the [note](notes.md). | +| `parentNoteId` | Text | Non-null | | The ID of the parent [note](notes.md) the note belongs to. | +| `notePosition` | Integer | Non-null | | The position of the branch within the same level of hierarchy, the value is usually a multiple of 10. | +| `prefix` | Text | Nullable | | The [branch prefix](../Branch%20prefixes.md) if any, or `NULL` otherwise. | +| `isExpanded` | Integer | Non-null | 0 | Whether the branch should appear expanded (its children shown) to the user. | +| `isDeleted` | Integer | Non-null | 0 | `1` if the entity is [deleted](../Deleted%20notes.md), `0` otherwise. | +| `deleteId` | Text | Nullable | `null` | | +| `utcDateModified` | Text | Non-null | | Modification date in UTC format (e.g. `2023-11-08 16:43:44.204Z`) | \ No newline at end of file diff --git a/docs/Developer Guide/Developer Guide/Development and architecture/Database/entity_changes.md b/docs/Developer Guide/Developer Guide/Development and architecture/Database/entity_changes.md index 36fc284709..4fd61bfaed 100644 --- a/docs/Developer Guide/Developer Guide/Development and architecture/Database/entity_changes.md +++ b/docs/Developer Guide/Developer Guide/Development and architecture/Database/entity_changes.md @@ -1,4 +1,15 @@ # entity_changes -
            Column NameData TypeNullityDefault valueDescription
            idIntegerNon-null A sequential numeric index of the entity change.
            entityNameTextNon-null The type of entity being changed (attributes, branches, note_reordering, etc.)
            entityIdTextNon-null The ID of the entity being changed.
            hashTextNullable (*) TODO: Describe how the hash is calculated
            isErasedInteger (1 or 0)Nullable (*) TODO: What does this do?
            changeIdTextNullable (*) TODO: What does this do?
            componentIdTextNullable (*) 

            The ID of the UI component that caused this change.

            Examples: date-note, F-PoZMI0vc, NA (catch all)

            instanceIdTextNullable (*) The ID of the instance that created this change.
            isSyncedInteger (1 or 0)Non-null TODO: What does this do?
            utcDateChangedTextNon-null Date of the entity change in UTC format (e.g. 2023-11-08 16:43:44.204Z)
            +| Column Name | Data Type | Nullity | Default value | Description | +| --- | --- | --- | --- | --- | +| `id` | Integer | Non-null | | A sequential numeric index of the entity change. | +| `entityName` | Text | Non-null | | The type of entity being changed (`attributes`, `branches`, `note_reordering`, etc.) | +| `entityId` | Text | Non-null | | The ID of the entity being changed. | +| `hash` | Text | Nullable (\*) | | TODO: Describe how the hash is calculated | +| `isErased` | Integer (1 or 0) | Nullable (\*) | | TODO: What does this do? | +| `changeId` | Text | Nullable (\*) | | TODO: What does this do? | +| `componentId` | Text | Nullable (\*) | | The ID of the UI component that caused this change.

            Examples: `date-note`, `F-PoZMI0vc`, `NA` (catch all) | +| `instanceId` | Text | Nullable (\*) | | The ID of the [instance](#root/pOsGYCXsbNQG/tC7s2alapj8V/Gzjqa934BdH4/c5xB8m4g2IY6) that created this change. | +| `isSynced` | Integer (1 or 0) | Non-null | | TODO: What does this do? | +| `utcDateChanged` | Text | Non-null | | Date of the entity change in UTC format (e.g. `2023-11-08 16:43:44.204Z`) | Nullable (\*) means all new values are non-null, old rows may contain null values. \ No newline at end of file diff --git a/docs/Developer Guide/Developer Guide/Development and architecture/Database/etapi_tokens.md b/docs/Developer Guide/Developer Guide/Development and architecture/Database/etapi_tokens.md index 99c719f4e1..25fe4e5dad 100644 --- a/docs/Developer Guide/Developer Guide/Development and architecture/Database/etapi_tokens.md +++ b/docs/Developer Guide/Developer Guide/Development and architecture/Database/etapi_tokens.md @@ -1,2 +1,9 @@ # etapi_tokens -
            Column NameData TypeNullityDefault valueDescription
            etapiTokenIdTextNon-null A unique ID of the token (e.g. aHmLr5BywvfJ).
            nameTextNon-null The name of the token, as is set by the user.
            tokenHashTextNon-null The token itself.
            utcDateCreatedTextNon-null Creation date in UTC format (e.g. 2023-11-08 16:43:44.204Z)
            utcDateModifiedTextNon-null Modification date in UTC format (e.g. 2023-11-08 16:43:44.204Z)
            isDeletedIntegerNon-null01 if the entity is deleted, 0 otherwise.
            \ No newline at end of file +| Column Name | Data Type | Nullity | Default value | Description | +| --- | --- | --- | --- | --- | +| `etapiTokenId` | Text | Non-null | | A unique ID of the token (e.g. `aHmLr5BywvfJ`). | +| `name` | Text | Non-null | | The name of the token, as is set by the user. | +| `tokenHash` | Text | Non-null | | The token itself. | +| `utcDateCreated` | Text | Non-null | | Creation date in UTC format (e.g. `2023-11-08 16:43:44.204Z`) | +| `utcDateModified` | Text | Non-null | | Modification date in UTC format (e.g. `2023-11-08 16:43:44.204Z`) | +| `isDeleted` | Integer | Non-null | 0 | `1` if the entity is [deleted](../Deleted%20notes.md), `0` otherwise. | \ No newline at end of file diff --git a/docs/Developer Guide/Developer Guide/Development and architecture/Database/notes.md b/docs/Developer Guide/Developer Guide/Development and architecture/Database/notes.md index f0b0b47054..572c7f6dbd 100644 --- a/docs/Developer Guide/Developer Guide/Development and architecture/Database/notes.md +++ b/docs/Developer Guide/Developer Guide/Development and architecture/Database/notes.md @@ -1,2 +1,15 @@ # notes -
            Column NameData TypeNullityDefault valueDescription
            noteIdTextNon-null The unique ID of the note (e.g. 2LJrKqIhr0Pe).
            titleTextNon-null"note"The title of the note, as defined by the user.
            isProtectedIntegerNon-null01 if the entity is protected, 0 otherwise.
            typeTextNon-null"text"The type of note (i.e. text, file, code, relationMap, mermaid, canvas).
            mimeTextNon-null"text/html"The MIME type of the note (e.g. text/html).. Note that it can be an empty string in some circumstances, but not null.
            isDeletedIntegerNullable01 if the entity is deleted, 0 otherwise.
            deleteIdTextNon-nullnull 
            dateCreatedTextNon-null Localized creation date (e.g. 2023-11-08 18:43:44.204+0200)
            dateModifiedTextNon-null Localized modification date (e.g. 2023-11-08 18:43:44.204+0200)
            utcDateCreatedTextNon-null Creation date in UTC format (e.g. 2023-11-08 16:43:44.204Z)
            utcDateModifiedTextNon-null Modification date in UTC format (e.g. 2023-11-08 16:43:44.204Z)
            blobIdTextNullablenullThe corresponding ID from blobs. Although it can theoretically be NULL, haven't found any such note yet.
            \ No newline at end of file +| Column Name | Data Type | Nullity | Default value | Description | +| --- | --- | --- | --- | --- | +| `noteId` | Text | Non-null | | The unique ID of the note (e.g. `2LJrKqIhr0Pe`). | +| `title` | Text | Non-null | `"note"` | The title of the note, as defined by the user. | +| `isProtected` | Integer | Non-null | 0 | `1` if the entity is [protected](../Protected%20entities.md), `0` otherwise. | +| `type` | Text | Non-null | `"text"` | The type of note (i.e. `text`, `file`, `code`, `relationMap`, `mermaid`, `canvas`). | +| `mime` | Text | Non-null | `"text/html"` | The MIME type of the note (e.g. `text/html`).. Note that it can be an empty string in some circumstances, but not null. | +| `isDeleted` | Integer | Nullable | 0 | `1` if the entity is [deleted](../Deleted%20notes.md), `0` otherwise. | +| `deleteId` | Text | Non-null | `null` | | +| `dateCreated` | Text | Non-null | | Localized creation date (e.g. `2023-11-08 18:43:44.204+0200`) | +| `dateModified` | Text | Non-null | | Localized modification date (e.g. `2023-11-08 18:43:44.204+0200`) | +| `utcDateCreated` | Text | Non-null | | Creation date in UTC format (e.g. `2023-11-08 16:43:44.204Z`) | +| `utcDateModified` | Text | Non-null | | Modification date in UTC format (e.g. `2023-11-08 16:43:44.204Z`) | +| `blobId` | Text | Nullable | `null` | The corresponding ID from blobs. Although it can theoretically be `NULL`, haven't found any such note yet. | \ No newline at end of file diff --git a/docs/Developer Guide/Developer Guide/Development and architecture/Database/options.md b/docs/Developer Guide/Developer Guide/Development and architecture/Database/options.md index 3bbc01a865..54c2c63d23 100644 --- a/docs/Developer Guide/Developer Guide/Development and architecture/Database/options.md +++ b/docs/Developer Guide/Developer Guide/Development and architecture/Database/options.md @@ -1,2 +1,7 @@ # options -
            Column NameData TypeNullityDefault valueDescription
            nameTextNon-null The name of option (e.g. maxContentWidth)
            valueTextNon-null The value of the option.
            isSyncedIntegerNon-null00 if the option is not synchronized and thus can differ between clients, 1 if the option is synchronized.
            utcDateModifiedTextNon-null Modification date in UTC format (e.g. 2023-11-08 16:43:44.204Z)
            \ No newline at end of file +| Column Name | Data Type | Nullity | Default value | Description | +| --- | --- | --- | --- | --- | +| `name` | Text | Non-null | | The name of option (e.g. `maxContentWidth`) | +| `value` | Text | Non-null | | The value of the option. | +| `isSynced` | Integer | Non-null | 0 | `0` if the option is not synchronized and thus can differ between clients, `1` if the option is synchronized. | +| `utcDateModified` | Text | Non-null | | Modification date in UTC format (e.g. `2023-11-08 16:43:44.204Z`) | \ No newline at end of file diff --git a/docs/Developer Guide/Developer Guide/Development and architecture/Database/recent_notes.md b/docs/Developer Guide/Developer Guide/Development and architecture/Database/recent_notes.md index 479fb985a3..8ff34c2474 100644 --- a/docs/Developer Guide/Developer Guide/Development and architecture/Database/recent_notes.md +++ b/docs/Developer Guide/Developer Guide/Development and architecture/Database/recent_notes.md @@ -1,2 +1,6 @@ # recent_notes -
            Column NameData TypeNullityDefault valueDescription
            noteIdTextNon-null Unique ID of the note (e.g. yRRTLlqTbGoZ).
            notePathTextNon-null The path (IDs) to the note from root to the note itself, separated by slashes.
            utcDateCreatedTextNon-null Creation date in UTC format (e.g. 2023-11-08 16:43:44.204Z)
            \ No newline at end of file +| Column Name | Data Type | Nullity | Default value | Description | +| --- | --- | --- | --- | --- | +| `noteId` | Text | Non-null | | Unique ID of the note (e.g. `yRRTLlqTbGoZ`). | +| `notePath` | Text | Non-null | | The path (IDs) to the [note](notes.md) from root to the note itself, separated by slashes. | +| `utcDateCreated` | Text | Non-null | | Creation date in UTC format (e.g. `2023-11-08 16:43:44.204Z`) | \ No newline at end of file diff --git a/docs/Developer Guide/Developer Guide/Development and architecture/Database/revisions.md b/docs/Developer Guide/Developer Guide/Development and architecture/Database/revisions.md index 3afe8e2437..210e05356e 100644 --- a/docs/Developer Guide/Developer Guide/Development and architecture/Database/revisions.md +++ b/docs/Developer Guide/Developer Guide/Development and architecture/Database/revisions.md @@ -1,2 +1,15 @@ # revisions -
            Column NameData TypeNullityDefault valueDescription
            revisionIdTextTextNon-null Unique ID of the revision (e.g. 0GjgUqnEudI8).
            noteIdTextNon-null ID of the note this revision belongs to.
            typeTextNon-null""The type of note (i.e. text, file, code, relationMap, mermaid, canvas).
            mimeTextNon-null""The MIME type of the note (e.g. text/html).
            titleTextNon-null The title of the note, as defined by the user.
            isProtectedIntegerNon-null01 if the entity is protected, 0 otherwise.
            blobIdTextNullablenullThe corresponding ID from blobs. Although it can theoretically be NULL, haven't found any such note yet.
            utcDateLastEditedTextNon-null Not sure how it differs from modification date.
            utcDateCreatedTextNon-null Creation date in UTC format (e.g. 2023-11-08 16:43:44.204Z)
            utcDateModifiedTextNon-null Modification date in UTC format (e.g. 2023-11-08 16:43:44.204Z)
            dateLastEditedTextNon-null Not sure how it differs from modification date.
            dateCreatedTextNon-null Localized creatino date (e.g. 2023-08-12 15:10:04.045+0300)
            \ No newline at end of file +| Column Name | Data Type | Nullity | Default value | Description | +| --- | --- | --- | --- | --- | +| `revisionId` | TextText | Non-null | | Unique ID of the revision (e.g. `0GjgUqnEudI8`). | +| `noteId` | Text | Non-null | | ID of the [note](notes.md) this revision belongs to. | +| `type` | Text | Non-null | `""` | The type of note (i.e. `text`, `file`, `code`, `relationMap`, `mermaid`, `canvas`). | +| `mime` | Text | Non-null | `""` | The MIME type of the note (e.g. `text/html`). | +| `title` | Text | Non-null | | The title of the note, as defined by the user. | +| `isProtected` | Integer | Non-null | 0 | `1` if the entity is [protected](../Protected%20entities.md), `0` otherwise. | +| `blobId` | Text | Nullable | `null` | The corresponding ID from blobs. Although it can theoretically be `NULL`, haven't found any such note yet. | +| `utcDateLastEdited` | Text | Non-null | | **Not sure how it differs from modification date.** | +| `utcDateCreated` | Text | Non-null | | Creation date in UTC format (e.g. `2023-11-08 16:43:44.204Z`) | +| `utcDateModified` | Text | Non-null | | Modification date in UTC format (e.g. `2023-11-08 16:43:44.204Z`) | +| `dateLastEdited` | Text | Non-null | | **Not sure how it differs from modification date.** | +| `dateCreated` | Text | Non-null | | Localized creatino date (e.g. `2023-08-12 15:10:04.045+0300`) | \ No newline at end of file diff --git a/docs/Developer Guide/Developer Guide/Development and architecture/Docker.md b/docs/Developer Guide/Developer Guide/Development and architecture/Docker.md index 3a32bba514..a39be75262 100644 --- a/docs/Developer Guide/Developer Guide/Development and architecture/Docker.md +++ b/docs/Developer Guide/Developer Guide/Development and architecture/Docker.md @@ -8,7 +8,7 @@ To run a Docker build: To run the built Docker image: ``` -sudo docker run -p 8081:8080 triliumnext/notes:v0.90.6-beta +sudo docker run -p 8081:8080 triliumnext/trilium:v0.90.6-beta ``` To enter a shell in the Docker container: diff --git a/docs/Developer Guide/Developer Guide/Development and architecture/Icons.md b/docs/Developer Guide/Developer Guide/Development and architecture/Icons.md index 68d57f4743..791e26f6ce 100644 --- a/docs/Developer Guide/Developer Guide/Development and architecture/Icons.md +++ b/docs/Developer Guide/Developer Guide/Development and architecture/Icons.md @@ -13,11 +13,15 @@ All the icons are now built off of the SVGs in the `images` directory using the These are stored in `images`: -
            NameResolutionDescription
            icon-black.svg53x40Used by the global menu button when not hovered.
            icon-color.svg53x40Used by the global menu when hovered.
            icon-grey.svg53x40Used by the dark theme, in place of icon-black.svg.
            +| Name | Resolution | Description | +| --- | --- | --- | +| `icon-black.svg` | 53x40 | Used by the global menu button when not hovered. | +| `icon-color.svg` | 53x40 | Used by the global menu when hovered. | +| `icon-grey.svg` | 53x40 | Used by the dark theme, in place of `icon-black.svg`. | ## App icons -
            NameResolutionDescription
            ios/apple-touch-icon.png180x180Used as apple-touch-icon, but only in login.ejs and set_password.ejs for some reason.
            mac/icon.icns512x512Provided as --icon to electron-packager for mac-arm64 and mac-x64 builds.
            png/128x128.png128x128Used in linux-x64 build, to provide an icon.png.
            png/256x256-dev.png256x256Used by the Electron window icon, if in dev mode.
            png/256x256.pngUsed by the Electron window icon, if not in dev mode.
            win/icon.ico
            • ICO 16x16
            • ICO 32x32
            • ICO 48x48
            • ICO 64x64
            • ICO 128x128
            • PNG 256x256
            • Used by the win-x64 build.
            • Used by Squirrel Windows installer for: setup icon, app icon, control panel icon
            • Used as the favicon.
            win/setup-banner.gif640x480Used by the Squirrel Windows installer during the installation process. Has only one frame.
            +
            NameResolutionDescription
            ios/apple-touch-icon.png180x180Used as apple-touch-icon, but only in login.ejs and set_password.ejs for some reason.
            mac/icon.icns512x512Provided as --icon to electron-packager for mac-arm64 and mac-x64 builds.
            png/128x128.png128x128Used in linux-x64 build, to provide an icon.png.
            png/256x256-dev.png256x256Used by the Electron window icon, if in dev mode.
            png/256x256.pngUsed by the Electron window icon, if not in dev mode.
            win/icon.ico
            • ICO 16x16
            • ICO 32x32
            • ICO 48x48
            • ICO 64x64
            • ICO 128x128
            • PNG 256x256
            • Used by the win-x64 build.
            • Used by Squirrel Windows installer for: setup icon, app icon, control panel icon
            • Used as the favicon.
            win/setup-banner.gif640x480Used by the Squirrel Windows installer during the installation process. Has only one frame.
            ## Additional locations where the branding is used diff --git a/docs/Developer Guide/Developer Guide/Development and architecture/Icons/Icons on Mac/Adaptive icon.md b/docs/Developer Guide/Developer Guide/Development and architecture/Icons/Icons on Mac/Adaptive icon.md index c613c0b209..f3947eb0e8 100644 --- a/docs/Developer Guide/Developer Guide/Development and architecture/Icons/Icons on Mac/Adaptive icon.md +++ b/docs/Developer Guide/Developer Guide/Development and architecture/Icons/Icons on Mac/Adaptive icon.md @@ -1,6 +1,15 @@ # Adaptive icon -
            Before
            After
            With new scale
            +| | | +| --- | --- | +| Before |
            | +| After |
            | +| With new scale |
            | ## Scale -
            0.9
            0.85
            0.8
            0.75
            \ No newline at end of file +| | | +| --- | --- | +| 0.9 |
            | +| 0.85 |
            | +| 0.8 |
            | +| 0.75 |
            | \ No newline at end of file diff --git a/docs/Developer Guide/Developer Guide/Development and architecture/Icons/Icons on Mac/Slightly blurry icon on Mac.md b/docs/Developer Guide/Developer Guide/Development and architecture/Icons/Icons on Mac/Slightly blurry icon on Mac.md index 48308c6fd6..a59a8abfeb 100644 --- a/docs/Developer Guide/Developer Guide/Development and architecture/Icons/Icons on Mac/Slightly blurry icon on Mac.md +++ b/docs/Developer Guide/Developer Guide/Development and architecture/Icons/Icons on Mac/Slightly blurry icon on Mac.md @@ -27,7 +27,7 @@ Even with a 1024x1024 icon, the image is still blurry. Comparing the `.icns` file from the Electron build reveals that the `.icns` file has been tampered with: -
            The electron.icns from the resulting buildThe icon source
            File: images/app-icons/mac/electron.icns
            +
            The electron.icns from the resulting buildThe icon source
            File: images/app-icons/mac/electron.icns
               icp4: 1140 bytes, png: 16x16
               icp5: 1868 bytes, png: 32x32
               ic07: 9520 bytes, png: 128x128
            @@ -37,7 +37,7 @@ Comparing the `.icns` file from the Electron build reveals that the `.icns` file
               icp5: 4364 bytes, png: 32x32
               ic07: 26273 bytes, png: 128x128
               ic09: 206192 bytes, png: 512x512
            -  ic10: 716034 bytes, png: 512x512@2x
            + ic10: 716034 bytes, png: 512x512@2x
            The bluriness might come from the image itself: [https://stackoverflow.com/questions/54030521/convert-svg-to-png-with-sharp-edges](https://stackoverflow.com/questions/54030521/convert-svg-to-png-with-sharp-edges)  diff --git a/docs/Developer Guide/Developer Guide/Development and architecture/Icons/Removed icons.md b/docs/Developer Guide/Developer Guide/Development and architecture/Icons/Removed icons.md index fd01002230..97b126515a 100644 --- a/docs/Developer Guide/Developer Guide/Development and architecture/Icons/Removed icons.md +++ b/docs/Developer Guide/Developer Guide/Development and architecture/Icons/Removed icons.md @@ -5,8 +5,23 @@ The following icons were removed: These are stored in `images`: -
            NameResolutionDescription
            icon-black.png36x36Does not appear to be used.
            icon-color.png36x36Used only by some tests in test-etapi.
            icon-grey.png36x36Does not appear to be used.
            icon.svg210x297Does not appear to be used.
            +| Name | Resolution | Description | +| --- | --- | --- | +| `icon-black.png` | 36x36 | Does not appear to be used. | +| `icon-color.png` | 36x36 | Used only by some tests in `test-etapi`. | +| `icon-grey.png` | 36x36 | Does not appear to be used. | +| `icon.svg` | 210x297 | Does not appear to be used. | ## App icons -
            NameResolutionDescription
            png/16x16-bw.png16x16Do not appear to be used.
            png/16x16.png
            png/24x24.png24x24
            png/32x32.png32x32
            png/48x48.png48x48
            png/64x64.png64x64
            png/96x96.png96x96
            png/512x512.png512x512Does not appear to be used.
            win/setup-banner.xcf GIMP source for win/setup-banner.gif. Provided only for future editing.
            \ No newline at end of file +| Name | Resolution | Description | +| --- | --- | --- | +| `png/16x16-bw.png` | 16x16 | Do not appear to be used. | +| `png/16x16.png` | | | +| `png/24x24.png` | 24x24 | | +| `png/32x32.png` | 32x32 | | +| `png/48x48.png` | 48x48 | | +| `png/64x64.png` | 64x64 | | +| `png/96x96.png` | 96x96 | | +| `png/512x512.png` | 512x512 | Does not appear to be used. | +| `win/setup-banner.xcf` | | GIMP source for `win/setup-banner.gif`. Provided only for future editing. | \ No newline at end of file diff --git a/docs/Developer Guide/Developer Guide/Development and architecture/Note types.md b/docs/Developer Guide/Developer Guide/Development and architecture/Note types.md index c2d56e7aa8..e8b9c6a3ca 100644 --- a/docs/Developer Guide/Developer Guide/Development and architecture/Note types.md +++ b/docs/Developer Guide/Developer Guide/Development and architecture/Note types.md @@ -3,7 +3,7 @@ The note type is defined by the `type` column in 
            Note Typetype valueCorresponding MIME typeContent of the note's blobRelevant attributes
            Texttext The HTML of the note. 
            Relation Map relationMapapplication/json

            A JSON describing the note:

            {
            +
            Note Typetype valueCorresponding MIME typeContent of the note's blobRelevant attributes
            Texttext The HTML of the note. 
            Relation Map relationMapapplication/json

            A JSON describing the note:

            {
                 "notes": [
                     {
                         "noteId": "gFQDL11KEm9G",
            @@ -27,4 +27,4 @@ Possible types:
             	"files": {},
             	"type": "excalidraw",
             	"version": 2
            -}
            None
            Mermaid Diagrammermaidtext/mermaid or text/plainThe plain text content of the Mermaid diagram.None
            Bookbooktext/html or blank.An empty blob.
            • #viewType which can be either grid or list.
            • #expanded

            both options are shown to the user via the “Book Properties” ribbon widget.

            Web ViewwebViewblankAn empty blob.#webViewSrc pointing to an URL to render.
            CodecodeDepends on the language (e.g. text/plain, text/x-markdown, text/x-c++src).The plain text content. 
            \ No newline at end of file +}
            None
            Mermaid Diagrammermaidtext/mermaid or text/plainThe plain text content of the Mermaid diagram.None
            Bookbooktext/html or blank.An empty blob.
            • #viewType which can be either grid or list.
            • #expanded

            both options are shown to the user via the “Book Properties” ribbon widget.

            Web ViewwebViewblankAn empty blob.#webViewSrc pointing to an URL to render.
            CodecodeDepends on the language (e.g. text/plain, text/x-markdown, text/x-c++src).The plain text content. 
            \ No newline at end of file diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Build deliveries locally.md b/docs/Developer Guide/Developer Guide/Old documentation/Build deliveries locally.md index 6f21bd626d..31a6ee0e2e 100644 --- a/docs/Developer Guide/Developer Guide/Old documentation/Build deliveries locally.md +++ b/docs/Developer Guide/Developer Guide/Old documentation/Build deliveries locally.md @@ -1,7 +1,13 @@ # Build deliveries locally In the project root: -
            PlatformArchitectureApplicationBuild command
            macOSx86_64Desktop / Electron app./bin/build-mac-x64.sh
            ARM 64Desktop / Electron app./bin/build-mac-arm64.sh
            Linuxx86_64Desktop / Electron app./bin/build-linux-x64.sh
            Server./bin/build-server.sh
            Windowsx86_64Desktop / Electron app./bin/build-win-x64.sh
            +| Platform | Architecture | Application | Build command | +| --- | --- | --- | --- | +| macOS | x86\_64 | Desktop / Electron app | `./bin/build-mac-x64.sh` | +| ARM 64 | Desktop / Electron app | `./bin/build-mac-arm64.sh` | | +| Linux | x86\_64 | Desktop / Electron app | `./bin/build-linux-x64.sh` | +| Server | `./bin/build-server.sh` | | | +| Windows | x86\_64 | Desktop / Electron app | `./bin/build-win-x64.sh` | Under NixOS the following `nix-shell` is needed: @@ -19,8 +25,8 @@ The resulting build will be in the `dist` directory under the project root. ### Testing the Linux builds under NixOS -
            Desktop clientServer
            $ NIXPKGS_ALLOW_UNFREE=1 nix-shell -p steam-run
            +
            Desktop clientServer
            $ NIXPKGS_ALLOW_UNFREE=1 nix-shell -p steam-run
             [nix-shell] cd dist/trilium-linux-x64
             [nix-shell] steam-run ./trilium
            $ NIXPKGS_ALLOW_UNFREE=1 nix-shell -p steam-run
             [nix-shell] cd dist/trilium-linux-x64-server
            -[nix-shell] steam-run ./trilium.sh
            \ No newline at end of file +[nix-shell] steam-run ./trilium.sh
            \ No newline at end of file diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Building and deployment/CI/Main.md b/docs/Developer Guide/Developer Guide/Old documentation/Building and deployment/CI/Main.md index c7d6320ae6..f7e96aa619 100644 --- a/docs/Developer Guide/Developer Guide/Old documentation/Building and deployment/CI/Main.md +++ b/docs/Developer Guide/Developer Guide/Old documentation/Building and deployment/CI/Main.md @@ -13,7 +13,7 @@ The main workflow of the CI runs on `develop` branches as well as any branch tha ## Downloading the artifacts from the main branch -Simply go to the [`develop` branch on GitHub](https://github.com/TriliumNext/Notes) and look at the commit bar: +Simply go to the [`develop` branch on GitHub](https://github.com/TriliumNext/Trilium) and look at the commit bar:
            diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Documentation.md b/docs/Developer Guide/Developer Guide/Old documentation/Documentation.md index c1d2a80646..987582cac3 100644 --- a/docs/Developer Guide/Developer Guide/Old documentation/Documentation.md +++ b/docs/Developer Guide/Developer Guide/Old documentation/Documentation.md @@ -52,7 +52,7 @@ Important aspects to consider: ## Location of the documentation -All documentation is stored in the [Notes](https://github.com/TriliumNext/Notes) repository: +All documentation is stored in the [Notes](https://github.com/TriliumNext/Trilium) repository: * `docs/Developer Guide` contains Markdown documentation that can be modified either externally (using a Markdown editor, or internally using Trilium). * `docs/Release Notes` is also stored in Markdown format and can be freely edited. diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Installation/Download latest nightly and in.md b/docs/Developer Guide/Developer Guide/Old documentation/Installation/Download latest nightly and in.md index 90a7740bef..0d5f2a2e4d 100644 --- a/docs/Developer Guide/Developer Guide/Old documentation/Installation/Download latest nightly and in.md +++ b/docs/Developer Guide/Developer Guide/Old documentation/Installation/Download latest nightly and in.md @@ -6,7 +6,7 @@ On Ubuntu: name=TriliumNotes-linux-x64-nightly.deb rm -f $name* -wget https://github.com/TriliumNext/Notes/releases/download/nightly/$name +wget https://github.com/TriliumNext/Trilium/releases/download/nightly/$name sudo apt-get install ./$name rm $name ``` \ No newline at end of file diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Project maintenance/Updating dependencies.md b/docs/Developer Guide/Developer Guide/Old documentation/Project maintenance/Updating dependencies.md index 0c8f4e7d6b..fb27cb6bf0 100644 --- a/docs/Developer Guide/Developer Guide/Old documentation/Project maintenance/Updating dependencies.md +++ b/docs/Developer Guide/Developer Guide/Old documentation/Project maintenance/Updating dependencies.md @@ -1,2 +1,2 @@ # Updating dependencies -
            DependencyName in library_loaderThings to check for a basic sanity check Protected by unit tests
            better-sqlite3 See bettersqlite binaries.  
            jsdom 
            • Note map
            • Clipper
            • Note similarity
            Protected by typings, should catch any potential changes in API.Yes
            async-mutex 
            • Sync
              
            axios 
            • Can't be directly tested, as it's exposed only via the backend script API.
              
            sax 
            • EverNote imports
              
            • ws
            • debounce
             
            • Check any action is reported from server to client (e.g. delete a note).
              
            ejs 
            • Onboarding / first setup
              
            dayjs 
            • Day notes
              
            semver 
            • Application should start.
              
            https-proxy-agent ???  
            sax 
            • EverNote import
              
            ini 
            • Affects config, generally if the application starts then it should be OK.
              
            jsplumbRELATION_MAP
            • Relation map note type
              
            jquery.mark.es6MARKJS
            • In search, when highlighting the text that matched.
            • In search in HTML, which might not actually be used since it seems to have been replaced by CKEditor's own find & replace dialog.
              
            knockout.js 
            • Used in rendering the login and main layout of the application.
              
            normalize.min.css 
            • Used in shared notes.
              
            wheel-zoom.min.jsWHEEL_ZOOM
            • When opening a image that is in attachment.
            • When opening a stand-alone image note.
            • When zooming in a mermaid chart.
              
            fancytree 
            • The note tree should be fully functional.
              
            bootstrap 
            • Check mostly the on-boarding pages, when there is no database.
              
            electron-debug 
            • Run electron using npm run start-electron and check that the debug hotkeys are still working (Ctrl+Shift+I on Windows/Linux, Cmd+Alt+I for dev tools, Cmd/Ctrl+R for reload).
              
            electron-dl    
            eslint    
            marked 
            • Importing a markdown note.
             Yes
            force-graph 
            • Note map
              
            \ No newline at end of file +
            DependencyName in library_loaderThings to check for a basic sanity check Protected by unit tests
            better-sqlite3 See bettersqlite binaries.  
            jsdom 
            • Note map
            • Clipper
            • Note similarity
            Protected by typings, should catch any potential changes in API.Yes
            async-mutex 
            • Sync
              
            axios 
            • Can't be directly tested, as it's exposed only via the backend script API.
              
            sax 
            • EverNote imports
              
            • ws
            • debounce
             
            • Check any action is reported from server to client (e.g. delete a note).
              
            ejs 
            • Onboarding / first setup
              
            dayjs 
            • Day notes
              
            semver 
            • Application should start.
              
            https-proxy-agent ???  
            sax 
            • EverNote import
              
            ini 
            • Affects config, generally if the application starts then it should be OK.
              
            jsplumbRELATION_MAP
            • Relation map note type
              
            jquery.mark.es6MARKJS
            • In search, when highlighting the text that matched.
            • In search in HTML, which might not actually be used since it seems to have been replaced by CKEditor's own find & replace dialog.
              
            knockout.js 
            • Used in rendering the login and main layout of the application.
              
            normalize.min.css 
            • Used in shared notes.
              
            wheel-zoom.min.jsWHEEL_ZOOM
            • When opening a image that is in attachment.
            • When opening a stand-alone image note.
            • When zooming in a mermaid chart.
              
            fancytree 
            • The note tree should be fully functional.
              
            bootstrap 
            • Check mostly the on-boarding pages, when there is no database.
              
            electron-debug 
            • Run electron using npm run start-electron and check that the debug hotkeys are still working (Ctrl+Shift+I on Windows/Linux, Cmd+Alt+I for dev tools, Cmd/Ctrl+R for reload).
              
            electron-dl    
            eslint    
            marked 
            • Importing a markdown note.
             Yes
            force-graph 
            • Note map
              
            \ No newline at end of file diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Project maintenance/Updating dependencies/Node.js, Electron and `better-.md b/docs/Developer Guide/Developer Guide/Old documentation/Project maintenance/Updating dependencies/Node.js, Electron and `better-.md index e5f18fba24..93b94ab729 100644 --- a/docs/Developer Guide/Developer Guide/Old documentation/Project maintenance/Updating dependencies/Node.js, Electron and `better-.md +++ b/docs/Developer Guide/Developer Guide/Old documentation/Project maintenance/Updating dependencies/Node.js, Electron and `better-.md @@ -5,4 +5,32 @@ Trilium Next started with version [8.4.0](https://github.com/WiseLibs/better-sqlite3/releases/tag/v8.4.0) for `better-sqlite3` -
            better-sqlite3 versionSQLite versionNode.js prebuildsElectron.js prebuilds
            8.4.0<3.43.0v20???
            8.5.0v20v25
            8.5.1 v26
            8.5.2v20 (macOS + arm64)
            8.6.03.43.0 
            8.7.03.43.1 
            9.0.03.43.2 v27
            9.1.03.44.0 
            9.1.1macOS + Alpine
            9.2.03.44.2 
            9.2.1 / 9.2.2 v28
            9.3.03.45.0 
            9.4.03.45.1 
            9.4.1Windows arm, arm64
            9.4.2 <v29
            9.4.3 <v29
            9.4.4 v29
            9.4.5Better prebuilds
            9.5.03.45.2 
            9.6.03.45.3 v30
            10.0.0v22
            10.1.03.46.0 
            11.0.0>21
            11.1.0 (prerelease)  v31
            11.1.1  
            11.1.2  
            \ No newline at end of file +| | | | | +| --- | --- | --- | --- | +| `better-sqlite3` version | SQLite version | Node.js prebuilds | Electron.js prebuilds | +| 8.4.0 | <3.43.0 | v20 | ??? | +| 8.5.0 | v20 | v25 | | +| 8.5.1 | | v26 | | +| 8.5.2 | v20 (macOS + arm64) | | | +| 8.6.0 | 3.43.0 | | | +| 8.7.0 | 3.43.1 | | | +| 9.0.0 | 3.43.2 | | v27 | +| 9.1.0 | 3.44.0 | | | +| 9.1.1 | macOS + Alpine | | | +| 9.2.0 | 3.44.2 | | | +| 9.2.1 / 9.2.2 | | v28 | | +| 9.3.0 | 3.45.0 | | | +| 9.4.0 | 3.45.1 | | | +| 9.4.1 | Windows arm, arm64 | | | +| 9.4.2 | | 21 | | | +| 11.1.0 (prerelease) | | | v31 | +| 11.1.1 | | | | +| 11.1.2 | | | | \ No newline at end of file diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Project maintenance/Updating dependencies/Testing compatibility.md b/docs/Developer Guide/Developer Guide/Old documentation/Project maintenance/Updating dependencies/Testing compatibility.md index f4a6057f2c..3813260558 100644 --- a/docs/Developer Guide/Developer Guide/Old documentation/Project maintenance/Updating dependencies/Testing compatibility.md +++ b/docs/Developer Guide/Developer Guide/Old documentation/Project maintenance/Updating dependencies/Testing compatibility.md @@ -1,2 +1,15 @@ # Testing compatibility -
            better-sqlite3 version
            Change log
            SQLite version
            Change log
            Compatibility with upstream Trilium
            8.4.0<3.43.0Compatible, same version.
            8.6.03.43.0 
            8.7.03.43.1 
            9.0.03.43.2 
            9.1.0 + 9.1.13.44.0 
            9.2.0 + 9.2.1 + 9.2.23.44.2 
            9.3.03.45.0 
            9.4.0, 9.4.1, 9.4.2, 9.4.3, 9.4.4, 9.4.53.45.1 
            9.5.03.45.2 
            9.6.0 / 10.0.03.45.3 
            10.1.0 / 11.0.0 / 11.1.1 / 11.1.2 / 11.2.0 / 11.2.13.46.0 
            11.3.03.46.1 
            \ No newline at end of file +| `better-sqlite3` version
            [Change log](https://github.com/WiseLibs/better-sqlite3/releases) | SQLite version
            [Change log](https://www.sqlite.org/changes.html) | Compatibility with upstream Trilium | +| --- | --- | --- | +| 8.4.0 | <3.43.0 | Compatible, same version. | +| 8.6.0 | 3.43.0 | | +| 8.7.0 | 3.43.1 | | +| 9.0.0 | 3.43.2 | | +| 9.1.0 + 9.1.1 | 3.44.0 | | +| 9.2.0 + 9.2.1 + 9.2.2 | 3.44.2 | | +| 9.3.0 | 3.45.0 | | +| 9.4.0, 9.4.1, 9.4.2, 9.4.3, 9.4.4, 9.4.5 | 3.45.1 | | +| 9.5.0 | 3.45.2 | | +| 9.6.0 / 10.0.0 | 3.45.3 | | +| 10.1.0 / 11.0.0 / 11.1.1 / 11.1.2 / 11.2.0 / 11.2.1 | 3.46.0 | | +| 11.3.0 | 3.46.1 | | \ No newline at end of file diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Sub-projects/CKEditor/Differences from upstream.md b/docs/Developer Guide/Developer Guide/Old documentation/Sub-projects/CKEditor/Differences from upstream.md index 132b9e8598..a5230d8f7f 100644 --- a/docs/Developer Guide/Developer Guide/Old documentation/Sub-projects/CKEditor/Differences from upstream.md +++ b/docs/Developer Guide/Developer Guide/Old documentation/Sub-projects/CKEditor/Differences from upstream.md @@ -3,7 +3,10 @@ * Zadam left a TODO in `findandreplaceUI`: `// FIXME: keyboard shortcut doesn't work:` [`https://github.com/ckeditor/ckeditor5/issues/10645`](https://github.com/ckeditor/ckeditor5/issues/10645) * `packages\ckeditor5-build-balloon-block\src\mention_customization.js` introduces note insertion via `@` character. -
            Affected fileAffected methodChanged inReason for change
            packages/ckeditor5-mention/src/mentionui.tscreateRegExp()6db05043be24bacf9bd51ea46408232b01a1b232 (added back)Allows triggering the autocomplete for labels and attributes in the attribute editor.
            init()55a63a1934efb9a520fcc2d69f3ce55ac22aca39Allows dismissing @-mention permanently after pressing ESC, otherwise it would automatically show up as soon as a space was entered.
            +| Affected file | Affected method | Changed in | Reason for change | +| --- | --- | --- | --- | +| `packages/ckeditor5-mention/src/mentionui.ts` | `createRegExp()` | `6db05043be24bacf9bd51ea46408232b01a1b232` (added back) | Allows triggering the autocomplete for labels and attributes in the attribute editor. | +| `init()` | `55a63a1934efb9a520fcc2d69f3ce55ac22aca39` | Allows dismissing @-mention permanently after pressing ESC, otherwise it would automatically show up as soon as a space was entered. | | ## Checking the old repo diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Sub-projects/CKEditor/Versions and external plugins.md b/docs/Developer Guide/Developer Guide/Old documentation/Sub-projects/CKEditor/Versions and external plugins.md index dae4810a1e..2fe124c314 100644 --- a/docs/Developer Guide/Developer Guide/Old documentation/Sub-projects/CKEditor/Versions and external plugins.md +++ b/docs/Developer Guide/Developer Guide/Old documentation/Sub-projects/CKEditor/Versions and external plugins.md @@ -1,4 +1,8 @@ # Versions and external plugins ## External plugins -
            trilium-ckeditor543.2.0 
            ckeditor5-math See ckeditor5-math.
               
            \ No newline at end of file +| | | | +| --- | --- | --- | +| trilium-ckeditor5 | 43.2.0 | | +| `ckeditor5-math` | | See 
            ckeditor5-math. | +| | | | \ No newline at end of file diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Testing.md b/docs/Developer Guide/Developer Guide/Old documentation/Testing.md index 1f26e37e79..95efd99192 100644 --- a/docs/Developer Guide/Developer Guide/Old documentation/Testing.md +++ b/docs/Developer Guide/Developer Guide/Old documentation/Testing.md @@ -5,7 +5,7 @@ Using `vitest`, there are some unit and integration tests done for both the clie These tests can be found by looking for the corresponding `.spec.ts` in the same directory as the source file. -

            To run the server-side tests:

            npm run server:test

            To view the code coverage for the server:

            npm run server:coverage

            Afterwards, a friendly HTML report can be found in /coverage/index.html.

            To run the client-side tests:

            npm run client:test

            To view the code coverage for the client:

            npm run client:coverage

            Afterwards, a friendly HTML report can be found in /src/public/app/coverage/index.html.

            +

            To run the server-side tests:

            npm run server:test

            To view the code coverage for the server:

            npm run server:coverage

            Afterwards, a friendly HTML report can be found in /coverage/index.html.

            To run the client-side tests:

            npm run client:test

            To view the code coverage for the client:

            npm run client:coverage

            Afterwards, a friendly HTML report can be found in /src/public/app/coverage/index.html.

            To run both client and server-side tests: diff --git a/docs/README-ZH_CN.md b/docs/README-ZH_CN.md index e63f1da63f..39ef00b40f 100644 --- a/docs/README-ZH_CN.md +++ b/docs/README-ZH_CN.md @@ -15,7 +15,7 @@ Trilium Notes 是一个层次化的笔记应用程序,专注于建立大型个 欢迎加入我们的官方讨论和社区。我们专注于Trilium的开发,乐于听取您对功能、建议或问题的意见! - [Matrix](https://matrix.to/#/#triliumnext:matrix.org)(用于同步讨论) -- [Github Discussions](https://github.com/TriliumNext/Notes/discussions)(用于异步讨论) +- [Github Discussions](https://github.com/TriliumNext/Trilium/discussions)(用于异步讨论) - [Wiki](https://triliumnext.github.io/Docs/)(用于常见操作问题和用户指南) 上面链接的两个房间是镜像的,所以您可以在任意平台上使用XMPP或者Matrix来和我们交流。 @@ -55,7 +55,7 @@ Trilium Notes 是一个层次化的笔记应用程序,专注于建立大型个 Trilium 可以用作桌面应用程序(Linux 和 Windows)或服务器(Linux)上托管的 Web 应用程序。虽然有 macOS 版本的桌面应用程序,但它[不受支持](https://triliumnext.github.io/Docs/Wiki/faq#mac-os-support)。 -* 如果要在桌面上使用 Trilium,请从[最新版本](https://github.com/TriliumNext/Notes/releases/latest)下载适用于您平台的二进制版本,解压缩该软件包并运行`trilium`可执行文件。 +* 如果要在桌面上使用 Trilium,请从[最新版本](https://github.com/TriliumNext/Trilium/releases/latest)下载适用于您平台的二进制版本,解压缩该软件包并运行`trilium`可执行文件。 * 如果要在服务器上安装 Trilium,请参考[此页面](https://triliumnext.github.io/Docs/Wiki/server-installation)。 * 当前仅支持(测试过)最近发布的 Chrome 和 Firefox 浏览器。 diff --git a/docs/README.es.md b/docs/README.es.md index 2d49db9cc2..474239a8d3 100644 --- a/docs/README.es.md +++ b/docs/README.es.md @@ -14,7 +14,7 @@ Vea estas [capturas de pantalla](https://triliumnext.github.io/Docs/Wiki/screens ### ¿Cómo migrar desde Trilium? -No hay pasos de migración especiales para migrar de una instancia de zadam/Trilium a una instancia de TriliumNext/Notes. Simplemente actualice su instancia de Trilium a la última versión e [instale TriliumNext/Notes como de costumbre](#-Instalación) +No hay pasos de migración especiales para migrar de una instancia de zadam/Trilium a una instancia de TriliumNext/Trilium. Simplemente actualice su instancia de Trilium a la última versión e [instale TriliumNext/Trilium como de costumbre](#-Instalación) ## 💬 Discuta con nosotros @@ -22,7 +22,7 @@ Siéntase libre de unirse a nuestras conversaciones oficiales. ¡Nos encantaría - [Matrix](https://matrix.to/#/#triliumnext:matrix.org) (Para discusiones síncronas) - La sala `General` es replicada a [XMPP](xmpp:discuss@trilium.thisgreat.party?join) -- [Discusiones de GitHub](https://github.com/TriliumNext/Notes/discussions) (Para discusiones asíncronas) +- [Discusiones de GitHub](https://github.com/TriliumNext/Trilium/discussions) (Para discusiones asíncronas) - [Wiki](https://triliumnext.github.io/Docs/) (Para preguntas frecuentes y guías de usuario) ## 🎁 Características @@ -58,7 +58,7 @@ Siéntase libre de unirse a nuestras conversaciones oficiales. ¡Nos encantaría Para usar TriliumNext en su máquina de escritorio (Linux, MacOS y Windows) tiene algunas opciones: -- Descargue la versión binaria para su plataforma desde la [página de lanzamientos](https://github.com/TriliumNext/Notes/releases/latest), descomprima el paquete y ejecute el ejecutable `trilium`. +- Descargue la versión binaria para su plataforma desde la [página de lanzamientos](https://github.com/TriliumNext/Trilium/releases/latest), descomprima el paquete y ejecute el ejecutable `trilium`. - Acceda a TriliumNext a través de la interfaz web de una instalación de servidor (ver más abajo) - Actualmente solo las últimas versiones de Chrome y Firefox son compatibles (y están probadas). - (Próximamente) TriliumNext también se proporcionará como un Flatpak @@ -68,11 +68,11 @@ Para usar TriliumNext en su máquina de escritorio (Linux, MacOS y Windows) tien Para usar TriliumNext en un dispositivo móvil: - Utilice un navegador web móvil para acceder a la interfaz móvil de una instalación de servidor (ver más abajo) -- El uso de una aplicación móvil aún no está soportado ([vea aquí](https://github.com/TriliumNext/Notes/issues/72)) para seguir las mejoras móviles. +- El uso de una aplicación móvil aún no está soportado ([vea aquí](https://github.com/TriliumNext/Trilium/issues/72)) para seguir las mejoras móviles. ### Servidor -Para instalar TriliumNext en su servidor (incluyendo vía Docker desde [Dockerhub](https://hub.docker.com/r/triliumnext/notes)) siga la [documentación de instalación de servidor](https://triliumnext.github.io/Docs/Wiki/server-installation). +Para instalar TriliumNext en su servidor (incluyendo vía Docker desde [Dockerhub](https://hub.docker.com/r/triliumnext/trilium)) siga la [documentación de instalación de servidor](https://triliumnext.github.io/Docs/Wiki/server-installation). ## 📝 Documentación diff --git a/docs/README.it.md b/docs/README.it.md index 58c2806d74..5c8a154249 100644 --- a/docs/README.it.md +++ b/docs/README.it.md @@ -15,7 +15,7 @@ Vedi [fotografie](https://triliumnext.github.io/Docs/Wiki/screenshot-tour) per u Sentiti libero di unirti alle nostre discussioni ufficiali e alla nostra comunità. Siamo concentrati sullo sviluppo di Trilium e ci piacerebbe sapere quali funzioni, suggerimenti o eventuali problemi hai! - [Matrix](https://matrix.to/#/#triliumnext:matrix.org) (Per discussioni sincrone) -- [Discussioni Github](https://github.com/TriliumNext/Notes/discussions) (Per discussioni asincrone) +- [Discussioni Github](https://github.com/TriliumNext/Trilium/discussions) (Per discussioni asincrone) - [Wiki](https://triliumnext.github.io/Docs/) (Per le domande più comuni e le guide per l'utente) Le due stanze linkate sopra sono connesse e contengono gli stessi messaggi, quindi puoi usare XMPP o Matrix da qualsiasi client tu preferisca, praticamente su qualsiasi piattaforma! @@ -53,7 +53,7 @@ Le due stanze linkate sopra sono connesse e contengono gli stessi messaggi, quin Trilium è fornito come applicazione desktop (Linux e Windows) o come applicazione web ospitata sul tuo server (Linux). La versione desktop per Mac OS è disponibile, ma [non è supportata](https://triliumnext.github.io/Docs/Wiki/faq#mac-os-support). -* Se vuoi usare Trilium sul tuo desktop, scarica il rilascio binario per la tua piattaforma dall'[ultimo rilascio](https://github.com/TriliumNext/Notes/releases/latest), decomprimi l'archivio e avvia l'eseguibile ```trilium```. +* Se vuoi usare Trilium sul tuo desktop, scarica il rilascio binario per la tua piattaforma dall'[ultimo rilascio](https://github.com/TriliumNext/Trilium/releases/latest), decomprimi l'archivio e avvia l'eseguibile ```trilium```. * Se vuoi installare Trilium su un server, segui [questa pagina](https://triliumnext.github.io/Docs/Wiki/server-installation). * Per ora solo Chrome e Firefox sono i browser supportati (testati). diff --git a/docs/README.ja.md b/docs/README.ja.md index d1cb164b0e..47ff290591 100644 --- a/docs/README.ja.md +++ b/docs/README.ja.md @@ -34,7 +34,7 @@ Trilium Notes は、大規模な個人知識ベースの構築に焦点を当て Trilium は、デスクトップアプリケーション(Linux、Windows)またはサーバー上でホストされるウェブアプリケーション(Linux)として提供されます。 Mac OS のデスクトップビルドも利用可能ですが、 [unsupported](https://triliumnext.github.io/Docs/Wiki/faq#mac-os-support) となっています。 -* デスクトップで Trilium を使用したい場合は、 [latest release](https://github.com/TriliumNext/Notes/releases/latest) からお使いのプラットフォームのバイナリリリースをダウンロードし、パッケージを解凍して ``trilium`` の実行ファイルを実行してください。 +* デスクトップで Trilium を使用したい場合は、 [latest release](https://github.com/TriliumNext/Trilium/releases/latest) からお使いのプラットフォームのバイナリリリースをダウンロードし、パッケージを解凍して ``trilium`` の実行ファイルを実行してください。 * サーバーに Trilium をインストールする場合は、[このページ](https://triliumnext.github.io/Docs/Wiki/server-installation)に従ってください。 * 現在、対応(動作確認)しているブラウザは、最近の Chrome と Firefox のみです。 diff --git a/docs/README.ru.md b/docs/README.ru.md index ebf6240c53..af15fcab99 100644 --- a/docs/README.ru.md +++ b/docs/README.ru.md @@ -28,7 +28,7 @@ Trilium Notes – это приложение для заметок с иера Trilium предоставляется в виде десктопного приложения (Linux и Windows) или веб-приложения, размещенного на вашем сервере (Linux). Доступна сборка Mac OS, но она [не поддерживается](https://triliumnext.github.io/Docs/Wiki/faq#mac-os-support). -* Если вы хотите использовать Trilium на десктопе, скачайте архив для своей платформы со страницы [релизов](https://github.com/TriliumNext/Notes/releases/latest), распакуйте и запустите исполняемый файл ```trilium```. +* Если вы хотите использовать Trilium на десктопе, скачайте архив для своей платформы со страницы [релизов](https://github.com/TriliumNext/Trilium/releases/latest), распакуйте и запустите исполняемый файл ```trilium```. * Если вы хотите установить Trilium на сервере, следуйте этой [инструкции](https://triliumnext.github.io/Docs/Wiki/server-installation). * В данный момент поддерживаются (протестированы) последние версии браузеров Chrome и Firefox. diff --git a/docs/Release Notes/!!!meta.json b/docs/Release Notes/!!!meta.json index 548a9de602..15bd2e6f22 100644 --- a/docs/Release Notes/!!!meta.json +++ b/docs/Release Notes/!!!meta.json @@ -1,6 +1,6 @@ { "formatVersion": 2, - "appVersion": "0.96.0", + "appVersion": "0.97.2", "files": [ { "isClone": false, @@ -61,6 +61,84 @@ "attachments": [], "dirFileName": "Release Notes", "children": [ + { + "isClone": false, + "noteId": "lvOuiWsLDv8F", + "notePath": [ + "hD3V4hiu2VW4", + "lvOuiWsLDv8F" + ], + "title": "v0.97.2", + "notePosition": 10, + "prefix": null, + "isExpanded": false, + "type": "text", + "mime": "text/html", + "attributes": [ + { + "type": "relation", + "name": "template", + "value": "wyurrlcDl416", + "isInheritable": false, + "position": 60 + } + ], + "format": "markdown", + "dataFileName": "v0.97.2.md", + "attachments": [] + }, + { + "isClone": false, + "noteId": "OtFZ6Nd9vM3n", + "notePath": [ + "hD3V4hiu2VW4", + "OtFZ6Nd9vM3n" + ], + "title": "v0.97.1", + "notePosition": 20, + "prefix": null, + "isExpanded": false, + "type": "text", + "mime": "text/html", + "attributes": [ + { + "type": "relation", + "name": "template", + "value": "wyurrlcDl416", + "isInheritable": false, + "position": 60 + } + ], + "format": "markdown", + "dataFileName": "v0.97.1.md", + "attachments": [] + }, + { + "isClone": false, + "noteId": "SJZ5PwfzHSQ1", + "notePath": [ + "hD3V4hiu2VW4", + "SJZ5PwfzHSQ1" + ], + "title": "v0.97.0", + "notePosition": 30, + "prefix": null, + "isExpanded": false, + "type": "text", + "mime": "text/html", + "attributes": [ + { + "type": "relation", + "name": "template", + "value": "wyurrlcDl416", + "isInheritable": false, + "position": 60 + } + ], + "format": "markdown", + "dataFileName": "v0.97.0.md", + "attachments": [] + }, { "isClone": false, "noteId": "mYXFde3LuNR7", @@ -69,7 +147,7 @@ "mYXFde3LuNR7" ], "title": "v0.96.0", - "notePosition": 10, + "notePosition": 40, "prefix": null, "isExpanded": false, "type": "text", @@ -95,7 +173,7 @@ "jthwbL0FdaeU" ], "title": "v0.95.0", - "notePosition": 20, + "notePosition": 50, "prefix": null, "isExpanded": false, "type": "text", @@ -121,7 +199,7 @@ "7HGYsJbLuhnv" ], "title": "v0.94.1", - "notePosition": 30, + "notePosition": 60, "prefix": null, "isExpanded": false, "type": "text", @@ -147,7 +225,7 @@ "Neq53ujRGBqv" ], "title": "v0.94.0", - "notePosition": 40, + "notePosition": 70, "prefix": null, "isExpanded": false, "type": "text", @@ -173,7 +251,7 @@ "VN3xnce1vLkX" ], "title": "v0.93.0", - "notePosition": 50, + "notePosition": 80, "prefix": null, "isExpanded": false, "type": "text", @@ -191,7 +269,7 @@ "WRaBfQqPr6qo" ], "title": "v0.92.7", - "notePosition": 60, + "notePosition": 90, "prefix": null, "isExpanded": false, "type": "text", @@ -217,7 +295,7 @@ "a2rwfKNmUFU1" ], "title": "v0.92.6", - "notePosition": 70, + "notePosition": 100, "prefix": null, "isExpanded": false, "type": "text", @@ -235,7 +313,7 @@ "fEJ8qErr0BKL" ], "title": "v0.92.5-beta", - "notePosition": 80, + "notePosition": 110, "prefix": null, "isExpanded": false, "type": "text", @@ -253,7 +331,7 @@ "kkkZQQGSXjwy" ], "title": "v0.92.4", - "notePosition": 90, + "notePosition": 120, "prefix": null, "isExpanded": false, "type": "text", @@ -271,7 +349,7 @@ "vAroNixiezaH" ], "title": "v0.92.3-beta", - "notePosition": 100, + "notePosition": 130, "prefix": null, "isExpanded": false, "type": "text", @@ -289,7 +367,7 @@ "mHEq1wxAKNZd" ], "title": "v0.92.2-beta", - "notePosition": 110, + "notePosition": 140, "prefix": null, "isExpanded": false, "type": "text", @@ -307,7 +385,7 @@ "IykjoAmBpc61" ], "title": "v0.92.1-beta", - "notePosition": 120, + "notePosition": 150, "prefix": null, "isExpanded": false, "type": "text", @@ -325,7 +403,7 @@ "dq2AJ9vSBX4Y" ], "title": "v0.92.0-beta", - "notePosition": 130, + "notePosition": 160, "prefix": null, "isExpanded": false, "type": "text", @@ -343,7 +421,7 @@ "3a8aMe4jz4yM" ], "title": "v0.91.6", - "notePosition": 140, + "notePosition": 170, "prefix": null, "isExpanded": false, "type": "text", @@ -361,7 +439,7 @@ "8djQjkiDGESe" ], "title": "v0.91.5", - "notePosition": 150, + "notePosition": 180, "prefix": null, "isExpanded": false, "type": "text", @@ -379,7 +457,7 @@ "OylxVoVJqNmr" ], "title": "v0.91.4-beta", - "notePosition": 160, + "notePosition": 190, "prefix": null, "isExpanded": false, "type": "text", @@ -397,7 +475,7 @@ "tANGQDvnyhrj" ], "title": "v0.91.3-beta", - "notePosition": 170, + "notePosition": 200, "prefix": null, "isExpanded": false, "type": "text", @@ -415,7 +493,7 @@ "hMoBfwSoj1SC" ], "title": "v0.91.2-beta", - "notePosition": 180, + "notePosition": 210, "prefix": null, "isExpanded": false, "type": "text", @@ -433,7 +511,7 @@ "a2XMSKROCl9z" ], "title": "v0.91.1-beta", - "notePosition": 190, + "notePosition": 220, "prefix": null, "isExpanded": false, "type": "text", @@ -451,7 +529,7 @@ "yqXFvWbLkuMD" ], "title": "v0.90.12", - "notePosition": 200, + "notePosition": 230, "prefix": null, "isExpanded": false, "type": "text", @@ -469,7 +547,7 @@ "veS7pg311yJP" ], "title": "v0.90.11-beta", - "notePosition": 210, + "notePosition": 240, "prefix": null, "isExpanded": false, "type": "text", @@ -487,7 +565,7 @@ "sq5W9TQxRqMq" ], "title": "v0.90.10-beta", - "notePosition": 220, + "notePosition": 250, "prefix": null, "isExpanded": false, "type": "text", @@ -505,7 +583,7 @@ "yFEGVCUM9tPx" ], "title": "v0.90.9-beta", - "notePosition": 230, + "notePosition": 260, "prefix": null, "isExpanded": false, "type": "text", @@ -523,7 +601,7 @@ "o4wAGqOQuJtV" ], "title": "v0.90.8", - "notePosition": 240, + "notePosition": 270, "prefix": null, "isExpanded": false, "type": "text", @@ -556,7 +634,7 @@ "i4A5g9iOg9I0" ], "title": "v0.90.7-beta", - "notePosition": 250, + "notePosition": 280, "prefix": null, "isExpanded": false, "type": "text", @@ -574,7 +652,7 @@ "ThNf2GaKgXUs" ], "title": "v0.90.6-beta", - "notePosition": 260, + "notePosition": 290, "prefix": null, "isExpanded": false, "type": "text", @@ -592,7 +670,7 @@ "G4PAi554kQUr" ], "title": "v0.90.5-beta", - "notePosition": 270, + "notePosition": 300, "prefix": null, "isExpanded": false, "type": "text", @@ -619,7 +697,7 @@ "zATRobGRCmBn" ], "title": "v0.90.4", - "notePosition": 280, + "notePosition": 310, "prefix": null, "isExpanded": false, "type": "text", @@ -637,7 +715,7 @@ "sCDLf8IKn3Iz" ], "title": "v0.90.3", - "notePosition": 290, + "notePosition": 320, "prefix": null, "isExpanded": false, "type": "text", @@ -655,7 +733,7 @@ "VqqyBu4AuTjC" ], "title": "v0.90.2-beta", - "notePosition": 300, + "notePosition": 330, "prefix": null, "isExpanded": false, "type": "text", @@ -673,7 +751,7 @@ "RX3Nl7wInLsA" ], "title": "v0.90.1-beta", - "notePosition": 310, + "notePosition": 340, "prefix": null, "isExpanded": false, "type": "text", @@ -691,7 +769,7 @@ "GyueACukPWjk" ], "title": "v0.90.0-beta", - "notePosition": 320, + "notePosition": 350, "prefix": null, "isExpanded": false, "type": "text", @@ -709,7 +787,7 @@ "wyurrlcDl416" ], "title": "Release Template", - "notePosition": 330, + "notePosition": 360, "prefix": null, "isExpanded": false, "type": "text", diff --git a/docs/Release Notes/Release Notes/Release Template.md b/docs/Release Notes/Release Notes/Release Template.md index b6c59f4dcc..acba4dc76b 100644 --- a/docs/Release Notes/Release Notes/Release Template.md +++ b/docs/Release Notes/Release Notes/Release Template.md @@ -2,7 +2,7 @@ > [!IMPORTANT] > If you enjoyed this release, consider showing a token of appreciation by: > -> * Pressing the “Star” button on [GitHub](https://github.com/TriliumNext/Notes) (top-right). +> * Pressing the “Star” button on [GitHub](https://github.com/TriliumNext/Trilium) (top-right). > * Considering a one-time or recurrent donation to the [lead developer](https://github.com/eliandoran) via [GitHub Sponsors](https://github.com/sponsors/eliandoran) or [PayPal](https://paypal.me/eliandoran). ## 💡 Key highlights diff --git a/docs/Release Notes/Release Notes/v0.90.1-beta.md b/docs/Release Notes/Release Notes/v0.90.1-beta.md index ac1e70ccea..33c7cac6e8 100644 --- a/docs/Release Notes/Release Notes/v0.90.1-beta.md +++ b/docs/Release Notes/Release Notes/v0.90.1-beta.md @@ -21,11 +21,36 @@ The following regressions due to the conversion to TypeScript has been solved, c ### Client-side library updates -
            LibraryOld versionNew version
            axios1.6.71.7.2
            excalidraw0.17.30.17.6
            katex0.16.90.16.11
            mermaid10.9.010.9.1
            react, react-dom18.2.018.3.1
            +| Library | Old version | New version | +| --- | --- | --- | +| `axios` | 1.6.7 | 1.7.2 | +| `excalidraw` | 0.17.3 | 0.17.6 | +| `katex` | 0.16.9 | 0.16.11 | +| `mermaid` | 10.9.0 | 10.9.1 | +| `react`, `react-dom` | 18.2.0 | 18.3.1 | ### Server-side library updates -
            LibraryOld versionNew version
            sanitize-url6.0.47.1.0
            archiver7.0.07.0.1
            marked12.0.013.0.2
            sanitize-html1.6.71.7.2
            turndown7.1.27.2.0
            yauzl3.1.23.1.3
            express4.18.34.19.2
            express-rate-limit7.2.07.3.1
            jsdom24.0.024.1.0
            ws8.16.08.18.0
            ejs3.1.93.1.10
            dayjs1.11.101.11.12
            semver7.6.07.6.3
            async-mutex0.4.10.5.0
            https-proxy-agent7.0.47.0.5
            sax1.3.01.4.1
            ini3.0.14.1.3
            debounce1.2.12.1.0
            +| Library | Old version | New version | +| --- | --- | --- | +| `sanitize-url` | 6.0.4 | 7.1.0 | +| `archiver` | 7.0.0 | 7.0.1 | +| `marked` | 12.0.0 | 13.0.2 | +| `sanitize-html` | 1.6.7 | 1.7.2 | +| `turndown` | 7.1.2 | 7.2.0 | +| `yauzl` | 3.1.2 | 3.1.3 | +| `express` | 4.18.3 | 4.19.2 | +| `express-rate-limit` | 7.2.0 | 7.3.1 | +| `jsdom` | 24.0.0 | 24.1.0 | +| `ws` | 8.16.0 | 8.18.0 | +| `ejs` | 3.1.9 | 3.1.10 | +| `dayjs` | 1.11.10 | 1.11.12 | +| `semver` | 7.6.0 | 7.6.3 | +| `async-mutex` | 0.4.1 | 0.5.0 | +| `https-proxy-agent` | 7.0.4 | 7.0.5 | +| `sax` | 1.3.0 | 1.4.1 | +| `ini` | 3.0.1 | 4.1.3 | +| `debounce` | 1.2.1 | 2.1.0 | ## ✨ Technical improvements diff --git a/docs/Release Notes/Release Notes/v0.97.0.md b/docs/Release Notes/Release Notes/v0.97.0.md new file mode 100644 index 0000000000..f109f60d94 --- /dev/null +++ b/docs/Release Notes/Release Notes/v0.97.0.md @@ -0,0 +1,72 @@ +# v0.97.0 +> [!CAUTION] +> **Important Security Update** +> +> This release addresses a security vulnerability that could make password-based attacks against your Trilium instance more feasible. We strongly recommend upgrading to this version as soon as possible, especially if your Trilium server is accessible over a network. +> +> For more details about this security fix, please see our published security advisory which will be available 14 days after this release. + +> [!IMPORTANT] +> If you enjoyed this release, consider showing a token of appreciation by: +> +> * Pressing the “Star” button on [GitHub](https://github.com/TriliumNext/Notes) (top-right). +> * Considering a one-time or recurrent donation to the [lead developer](https://github.com/eliandoran) via [GitHub Sponsors](https://github.com/sponsors/eliandoran) or [PayPal](https://paypal.me/eliandoran). + +## 💡 Key highlights + +* “Books” have been renamed to Collections to better match their intentions. + * **A new collection was introduced,** _**table.**_ + * See the in-app documentation for more information. + * Custom table theme for Trilium by @adoriandoran + * Geomap: The geomap was converted from a standalone note type to a collection. + * The collections are not displayed directly in “Insert child” in the note tree with predefined configuration such as promoted attributes to make them easier to use (e.g. for calendar, geomap). +* A new editing mechanism was introduced: quick edit. This opens notes for editing in a popup instead of a tab, allowing easy access. This is especially useful for collections, to edit notes without switching context. + +## 🐞 Bugfixes + +* [Missing note meta. Can't export empty note and involved note tree](https://github.com/TriliumNext/Trilium/issues/6146) +* [Mermaid notes sluggish](https://github.com/TriliumNext/Trilium/issues/5805) +* [In-app help confusing due to ligatures](https://github.com/TriliumNext/Trilium/issues/6224) +* Geo map: tooltip not showing. +* [Nix flake support broke with electron 37 upgrade](https://github.com/TriliumNext/Trilium/issues/6217) +* Signing on Windows did not work on the previous release. +* [When editing a note in Linux, middle-clicking a note title in tree pane triggers a paste action](https://github.com/TriliumNext/Trilium/issues/5812) +* Editor not focused after switching tabs. +* PDF file preview: inconvenient 10px scrollable margin at the bottom. +* Calendar view: + * Subtree children not displayed when in calendar root. + * Title changes to events not reflected. +* [Attributes Dialogue Doesn't Display for existing attributes](https://github.com/TriliumNext/Trilium/issues/5718) +* [Issues on Prometeus dashboard due to timestamps](https://github.com/TriliumNext/Trilium/issues/6354) +* [Ckeditor (re)-creation likely causes important lagging when coming from code note](https://github.com/TriliumNext/Trilium/issues/6367) + +## ✨ Improvements + +* Export to ZIP: + * Improve error handling + * Improve handling of notes with empty title. +* Tree context menu: reorder the note types of “Insert (child) note...” by @adoriandoran +* [Note map: add attributes to include or exclude relations](https://github.com/TriliumNext/Trilium/pull/6104) by @kieranknowles1 +* [iframe sandbox allow popups](https://github.com/TriliumNext/Trilium/issues/5698) +* [Badges for the note type context menu](https://github.com/TriliumNext/Trilium/pull/6229) by @adoriandoran +* The “Book/Collection Properties" ribbon tab no longer focuses automatically. +* Geomap improvements: + * Geolocation now displayed in the context menu. + * Context menu for empty spaces on the map, for quickly viewing the location or adding a new marker. + * Adding markers by drag & dropping from note tree. + * Read-only mode to prevent modification such as dragging. + * Calendar View: Added options to hide weekends & display week numbers directly from the “Collection Properties” in the ribbon. +* [Tree Context Menu: relocate the "Duplicate subtree" menu item](https://github.com/TriliumNext/Trilium/pull/6299) by @adoriandoran + +## 📖 Documentation + +* New features, table. +* Updated collections. +* Keyboard shortcuts for the note tree. + +## 🛠️ Technical updates + +* Updated to Electron 37.2.2. +* Mindmap dependency (MindElixir) was updated to the latest major version. +* Mermaid diagrams updated to the latest version (new diagram type tree map supported). +* CKEditor updated to latest major version (46). \ No newline at end of file diff --git a/docs/Release Notes/Release Notes/v0.97.1.md b/docs/Release Notes/Release Notes/v0.97.1.md new file mode 100644 index 0000000000..8c72a9368a --- /dev/null +++ b/docs/Release Notes/Release Notes/v0.97.1.md @@ -0,0 +1,77 @@ +# v0.97.1 +> [!TIP] +> This release is functionally identical to v0.97.0, but it fixes the version number not being correctly set in the release, causing some issues with the cache. + +> [!CAUTION] +> **Important Security Update** +> +> This release addresses a security vulnerability that could make password-based attacks against your Trilium instance more feasible. We strongly recommend upgrading to this version as soon as possible, especially if your Trilium server is accessible over a network. +> +> For more details about this security fix, please see our published security advisory which will be available 14 days after this release. + +> [!IMPORTANT] +> If you enjoyed this release, consider showing a token of appreciation by: +> +> * Pressing the “Star” button on [GitHub](https://github.com/TriliumNext/Notes) (top-right). +> * Considering a one-time or recurrent donation to the [lead developer](https://github.com/eliandoran) via [GitHub Sponsors](https://github.com/sponsors/eliandoran) or [PayPal](https://paypal.me/eliandoran). + +## Changes from v0.97.0 + +### 💡 Key highlights + +* “Books” have been renamed to Collections to better match their intentions. + * **A new collection was introduced,** _**table.**_ + * See the in-app documentation for more information. + * Custom table theme for Trilium by @adoriandoran + * Geomap: The geomap was converted from a standalone note type to a collection. + * The collections are not displayed directly in “Insert child” in the note tree with predefined configuration such as promoted attributes to make them easier to use (e.g. for calendar, geomap). +* A new editing mechanism was introduced: quick edit. This opens notes for editing in a popup instead of a tab, allowing easy access. This is especially useful for collections, to edit notes without switching context. + +### 🐞 Bugfixes + +* [Missing note meta. Can't export empty note and involved note tree](https://github.com/TriliumNext/Trilium/issues/6146) +* [Mermaid notes sluggish](https://github.com/TriliumNext/Trilium/issues/5805) +* [In-app help confusing due to ligatures](https://github.com/TriliumNext/Trilium/issues/6224) +* Geo map: tooltip not showing. +* [Nix flake support broke with electron 37 upgrade](https://github.com/TriliumNext/Trilium/issues/6217) +* Signing on Windows did not work on the previous release. +* [When editing a note in Linux, middle-clicking a note title in tree pane triggers a paste action](https://github.com/TriliumNext/Trilium/issues/5812) +* Editor not focused after switching tabs. +* PDF file preview: inconvenient 10px scrollable margin at the bottom. +* Calendar view: + * Subtree children not displayed when in calendar root. + * Title changes to events not reflected. +* [Attributes Dialogue Doesn't Display for existing attributes](https://github.com/TriliumNext/Trilium/issues/5718) +* [Issues on Prometeus dashboard due to timestamps](https://github.com/TriliumNext/Trilium/issues/6354) +* [Ckeditor (re)-creation likely causes important lagging when coming from code note](https://github.com/TriliumNext/Trilium/issues/6367) + +### ✨ Improvements + +* Export to ZIP: + * Improve error handling + * Improve handling of notes with empty title. +* Tree context menu: reorder the note types of “Insert (child) note...” by @adoriandoran +* [Note map: add attributes to include or exclude relations](https://github.com/TriliumNext/Trilium/pull/6104) by @kieranknowles1 +* [iframe sandbox allow popups](https://github.com/TriliumNext/Trilium/issues/5698) +* [Badges for the note type context menu](https://github.com/TriliumNext/Trilium/pull/6229) by @adoriandoran +* The “Book/Collection Properties" ribbon tab no longer focuses automatically. +* Geomap improvements: + * Geolocation now displayed in the context menu. + * Context menu for empty spaces on the map, for quickly viewing the location or adding a new marker. + * Adding markers by drag & dropping from note tree. + * Read-only mode to prevent modification such as dragging. + * Calendar View: Added options to hide weekends & display week numbers directly from the “Collection Properties” in the ribbon. +* [Tree Context Menu: relocate the "Duplicate subtree" menu item](https://github.com/TriliumNext/Trilium/pull/6299) by @adoriandoran + +### 📖 Documentation + +* New features, table. +* Updated collections. +* Keyboard shortcuts for the note tree. + +### 🛠️ Technical updates + +* Updated to Electron 37.2.2. +* Mindmap dependency (MindElixir) was updated to the latest major version. +* Mermaid diagrams updated to the latest version (new diagram type tree map supported). +* CKEditor updated to latest major version (46). \ No newline at end of file diff --git a/docs/Release Notes/Release Notes/v0.97.2.md b/docs/Release Notes/Release Notes/v0.97.2.md new file mode 100644 index 0000000000..886ec75014 --- /dev/null +++ b/docs/Release Notes/Release Notes/v0.97.2.md @@ -0,0 +1,61 @@ +# v0.97.2 +> [!NOTE] +> Translations are now easily editable online via Weblate. If you wish to contribute to Trilium by translating to your native language, head on over to [our Weblate page](https://hosted.weblate.org/engage/trilium/). + +> [!IMPORTANT] +> If you enjoyed this release, consider showing a token of appreciation by: +> +> * Pressing the “Star” button on [GitHub](https://github.com/TriliumNext/Notes) (top-right). +> * Considering a one-time or recurrent donation to the [lead developer](https://github.com/eliandoran) via [GitHub Sponsors](https://github.com/sponsors/eliandoran) or [PayPal](https://paypal.me/eliandoran). + +## 💡 Key highlights + +* A new collection type has been added: a board in which child notes are grouped in columns. +* Geo map now comes with a vector map by default. + * The vector styles will provide for a smoother experience, consult the documentation for more information. + * Apart from that, there are multiple styles to choose from in the _Collection properties_ section in the ribbon, including dark themes. + * Apart from that, added an option to display a scale on the map. +* Jump to note was enhanced to allow triggering commands (such as the ones that can have a keyboard shortcut assigned to them) quickly. + * Press Ctrl+Shift+J to test it out. + * The feature was renamed to simply “Jump to…” to better accommodate the new role. + * For more information, check the user guide for “Jump to…”. + +## 🐞 Bugfixes + +* [Shared note dark mode text doesn't change](https://github.com/TriliumNext/Trilium/issues/6427) +* [Markdown export of simple tables results in HTML, not Markdown](https://github.com/TriliumNext/Trilium/issues/6366) +* [Cannot edit ReadOnly note in quick edit](https://github.com/TriliumNext/Trilium/issues/6425) +* [Documentation for collections is empty](https://github.com/TriliumNext/Trilium/issues/6420) +* [Laggy "Mermaid Diagram" note type refresh during editing](https://github.com/TriliumNext/Trilium/issues/6443) +* Geomap not reacting to marker icon changes. +* [Checkbox Inputs (in Canvas Node > Export image...) have broken styling](https://github.com/TriliumNext/Trilium/issues/6463) +* [Rename Book note type to Collection](https://github.com/TriliumNext/Trilium/issues/6471) +* [Table view persistence not working in protected notes](https://github.com/TriliumNext/Trilium/issues/6473#issuecomment-3120029185) +* [Table caption print issue](https://github.com/TriliumNext/Trilium/issues/6483) +* [Commonmark import sub and sup tags not working](https://github.com/TriliumNext/Trilium/issues/4307) +* [Migration failing if there is a protected geomap](https://github.com/TriliumNext/Trilium/issues/6489) +* Window refreshing when sorting notes via the dialog. +* [Odd behavior in Safari on macOS (random refreshing+new note creation+user guide opens)](https://github.com/TriliumNext/Trilium/issues/6218) +* Note tooltip showing up in note list +* Copy to clipboard button also opening into note list + +## ✨ Improvements + +* [Show inline mermaid diagram in share view instead of mermaid diagram code](https://github.com/TriliumNext/Trilium/issues/5438) +* Canvas improvements: + * Add grid to canvas by @Papierkorb2292 + * Improve style of toolbars and dropdowns on the Next theme. +* New type for promoted attributes: color. +* Web view note preview (in note list): + * The `#webViewSrc` is now hidden + * Dedicated button to open the link externally. +* [User Guide pages should be searchable](https://github.com/TriliumNext/Trilium/issues/6515) + +## 🌍 Internationalization + +* 100% translation coverage for Romanian. +* Spanish language improvements by @Aitanuqui + +## 🛠️ Technical updates + +* The shortcut keys management was completely rewritten as it was based on an older library. **Please raise any issues you might have with your keyboard shortcuts.** \ No newline at end of file diff --git a/docs/Script API/media/README-ZH_CN.md b/docs/Script API/media/README-ZH_CN.md index 0fb87daa87..75704ace62 100644 --- a/docs/Script API/media/README-ZH_CN.md +++ b/docs/Script API/media/README-ZH_CN.md @@ -15,7 +15,7 @@ Trilium Notes 是一个层次化的笔记应用程序,专注于建立大型个 欢迎加入我们的官方讨论和社区。我们专注于Trilium的开发,乐于听取您对功能、建议或问题的意见! - [Matrix](https://matrix.to/#/#triliumnext:matrix.org)(用于同步讨论) -- [Github Discussions](https://github.com/TriliumNext/Notes/discussions)(用于异步讨论) +- [Github Discussions](https://github.com/TriliumNext/Trilium/discussions)(用于异步讨论) - [Wiki](https://triliumnext.github.io/Docs/)(用于常见操作问题和用户指南) 上面链接的两个房间是镜像的,所以您可以在任意平台上使用XMPP或者Matrix来和我们交流。 @@ -55,7 +55,7 @@ Trilium Notes 是一个层次化的笔记应用程序,专注于建立大型个 Trilium 可以用作桌面应用程序(Linux 和 Windows)或服务器(Linux)上托管的 Web 应用程序。虽然有 macOS 版本的桌面应用程序,但它[不受支持](https://triliumnext.github.io/Docs/Wiki/faq#mac-os-support)。 -* 如果要在桌面上使用 Trilium,请从[最新版本](https://github.com/TriliumNext/Notes/releases/latest)下载适用于您平台的二进制版本,解压缩该软件包并运行`trilium`可执行文件。 +* 如果要在桌面上使用 Trilium,请从[最新版本](https://github.com/TriliumNext/Trilium/releases/latest)下载适用于您平台的二进制版本,解压缩该软件包并运行`trilium`可执行文件。 * 如果要在服务器上安装 Trilium,请参考[此页面](https://triliumnext.github.io/Docs/Wiki/server-installation)。 * 当前仅支持(测试过)最近发布的 Chrome 和 Firefox 浏览器。 diff --git a/docs/Script API/media/README.es.md b/docs/Script API/media/README.es.md index d57d656953..72736348bb 100644 --- a/docs/Script API/media/README.es.md +++ b/docs/Script API/media/README.es.md @@ -14,7 +14,7 @@ Vea estas [capturas de pantalla](https://triliumnext.github.io/Docs/Wiki/screens ### ¿Cómo migrar desde Trilium? -No hay pasos de migración especiales para migrar de una instancia de zadam/Trilium a una instancia de TriliumNext/Notes. Simplemente actualice su instancia de Trilium a la última versión e [instale TriliumNext/Notes como de costumbre](#-Instalación) +No hay pasos de migración especiales para migrar de una instancia de zadam/Trilium a una instancia de TriliumNext/Trilium. Simplemente actualice su instancia de Trilium a la última versión e [instale TriliumNext/Trilium como de costumbre](#-Instalación) ## 💬 Discuta con nosotros @@ -22,7 +22,7 @@ Siéntase libre de unirse a nuestras conversaciones oficiales. ¡Nos encantaría - [Matrix](https://matrix.to/#/#triliumnext:matrix.org) (Para discusiones síncronas) - La sala `General` es replicada a [XMPP](xmpp:discuss@trilium.thisgreat.party?join) -- [Discusiones de GitHub](https://github.com/TriliumNext/Notes/discussions) (Para discusiones asíncronas) +- [Discusiones de GitHub](https://github.com/TriliumNext/Trilium/discussions) (Para discusiones asíncronas) - [Wiki](https://triliumnext.github.io/Docs/) (Para preguntas frecuentes y guías de usuario) ## 🎁 Características @@ -58,7 +58,7 @@ Siéntase libre de unirse a nuestras conversaciones oficiales. ¡Nos encantaría Para usar TriliumNext en su máquina de escritorio (Linux, MacOS y Windows) tiene algunas opciones: -- Descargue la versión binaria para su plataforma desde la [página de lanzamientos](https://github.com/TriliumNext/Notes/releases/latest), descomprima el paquete y ejecute el ejecutable `trilium`. +- Descargue la versión binaria para su plataforma desde la [página de lanzamientos](https://github.com/TriliumNext/Trilium/releases/latest), descomprima el paquete y ejecute el ejecutable `trilium`. - Acceda a TriliumNext a través de la interfaz web de una instalación de servidor (ver más abajo) - Actualmente solo las últimas versiones de Chrome y Firefox son compatibles (y están probadas). - (Próximamente) TriliumNext también se proporcionará como un Flatpak @@ -68,11 +68,11 @@ Para usar TriliumNext en su máquina de escritorio (Linux, MacOS y Windows) tien Para usar TriliumNext en un dispositivo móvil: - Utilice un navegador web móvil para acceder a la interfaz móvil de una instalación de servidor (ver más abajo) -- El uso de una aplicación móvil aún no está soportado ([vea aquí](https://github.com/TriliumNext/Notes/issues/72)) para seguir las mejoras móviles. +- El uso de una aplicación móvil aún no está soportado ([vea aquí](https://github.com/TriliumNext/Trilium/issues/72)) para seguir las mejoras móviles. ### Servidor -Para instalar TriliumNext en su servidor (incluyendo vía Docker desde [Dockerhub](https://hub.docker.com/r/triliumnext/notes)) siga la [documentación de instalación de servidor](https://triliumnext.github.io/Docs/Wiki/server-installation). +Para instalar TriliumNext en su servidor (incluyendo vía Docker desde [Dockerhub](https://hub.docker.com/r/triliumnext/trilium)) siga la [documentación de instalación de servidor](https://triliumnext.github.io/Docs/Wiki/server-installation). ## 📝 Documentación diff --git a/docs/Script API/media/README.it.md b/docs/Script API/media/README.it.md index 1c0bf99113..5fb3bb0a75 100644 --- a/docs/Script API/media/README.it.md +++ b/docs/Script API/media/README.it.md @@ -15,7 +15,7 @@ Vedi [fotografie](https://triliumnext.github.io/Docs/Wiki/screenshot-tour) per u Sentiti libero di unirti alle nostre discussioni ufficiali e alla nostra comunità. Siamo concentrati sullo sviluppo di Trilium e ci piacerebbe sapere quali funzioni, suggerimenti o eventuali problemi hai! - [Matrix](https://matrix.to/#/#triliumnext:matrix.org) (Per discussioni sincrone) -- [Discussioni Github](https://github.com/TriliumNext/Notes/discussions) (Per discussioni asincrone) +- [Discussioni Github](https://github.com/TriliumNext/Trilium/discussions) (Per discussioni asincrone) - [Wiki](https://triliumnext.github.io/Docs/) (Per le domande più comuni e le guide per l'utente) Le due stanze linkate sopra sono connesse e contengono gli stessi messaggi, quindi puoi usare XMPP o Matrix da qualsiasi client tu preferisca, praticamente su qualsiasi piattaforma! @@ -53,7 +53,7 @@ Le due stanze linkate sopra sono connesse e contengono gli stessi messaggi, quin Trilium è fornito come applicazione desktop (Linux e Windows) o come applicazione web ospitata sul tuo server (Linux). La versione desktop per Mac OS è disponibile, ma [non è supportata](https://triliumnext.github.io/Docs/Wiki/faq#mac-os-support). -* Se vuoi usare Trilium sul tuo desktop, scarica il rilascio binario per la tua piattaforma dall'[ultimo rilascio](https://github.com/TriliumNext/Notes/releases/latest), decomprimi l'archivio e avvia l'eseguibile ```trilium```. +* Se vuoi usare Trilium sul tuo desktop, scarica il rilascio binario per la tua piattaforma dall'[ultimo rilascio](https://github.com/TriliumNext/Trilium/releases/latest), decomprimi l'archivio e avvia l'eseguibile ```trilium```. * Se vuoi installare Trilium su un server, segui [questa pagina](https://triliumnext.github.io/Docs/Wiki/server-installation). * Per ora solo Chrome e Firefox sono i browser supportati (testati). diff --git a/docs/Script API/media/README.ja.md b/docs/Script API/media/README.ja.md index e16234dbd6..012f8c910c 100644 --- a/docs/Script API/media/README.ja.md +++ b/docs/Script API/media/README.ja.md @@ -34,7 +34,7 @@ Trilium Notes は、大規模な個人知識ベースの構築に焦点を当て Trilium は、デスクトップアプリケーション(Linux、Windows)またはサーバー上でホストされるウェブアプリケーション(Linux)として提供されます。 Mac OS のデスクトップビルドも利用可能ですが、 [unsupported](https://triliumnext.github.io/Docs/Wiki/faq#mac-os-support) となっています。 -* デスクトップで Trilium を使用したい場合は、 [latest release](https://github.com/TriliumNext/Notes/releases/latest) からお使いのプラットフォームのバイナリリリースをダウンロードし、パッケージを解凍して ``trilium`` の実行ファイルを実行してください。 +* デスクトップで Trilium を使用したい場合は、 [latest release](https://github.com/TriliumNext/Trilium/releases/latest) からお使いのプラットフォームのバイナリリリースをダウンロードし、パッケージを解凍して ``trilium`` の実行ファイルを実行してください。 * サーバーに Trilium をインストールする場合は、[このページ](https://triliumnext.github.io/Docs/Wiki/server-installation)に従ってください。 * 現在、対応(動作確認)しているブラウザは、最近の Chrome と Firefox のみです。 diff --git a/docs/Script API/media/README.md b/docs/Script API/media/README.md index a32ea2ba21..0aba72e2ea 100644 --- a/docs/Script API/media/README.md +++ b/docs/Script API/media/README.md @@ -1,6 +1,6 @@ # Trilium Notes -![GitHub Sponsors](https://img.shields.io/github/sponsors/eliandoran) ![Docker Pulls](https://img.shields.io/docker/pulls/triliumnext/notes) ![GitHub Downloads (all assets, all releases)](https://img.shields.io/github/downloads/triliumnext/notes/total) +![GitHub Sponsors](https://img.shields.io/github/sponsors/eliandoran) ![Docker Pulls](https://img.shields.io/docker/pulls/triliumnext/trilium) ![GitHub Downloads (all assets, all releases)](https://img.shields.io/github/downloads/triliumnext/trilium/total) [English](./README.md) | [Chinese](./README-ZH_CN.md) | [Russian](./README.ru.md) | [Japanese](./README.ja.md) | [Italian](./README.it.md) | [Spanish](./README.es.md) @@ -16,9 +16,9 @@ See [screenshots](https://triliumnext.github.io/Docs/Wiki/screenshot-tour) for q ### Migrating from Trilium? -There are no special migration steps to migrate from a zadam/Trilium instance to a TriliumNext/Notes instance. Just upgrade your Trilium instance to the latest version and [install TriliumNext/Notes as usual](#-installation) +There are no special migration steps to migrate from a zadam/Trilium instance to a TriliumNext/Trilium instance. Just upgrade your Trilium instance to the latest version and [install TriliumNext/Trilium as usual](#-installation) -Versions up to and including [v0.90.4](https://github.com/TriliumNext/Notes/releases/tag/v0.90.4) are compatible with the latest zadam/trilium version of [v0.63.7](https://github.com/zadam/trilium/releases/tag/v0.63.7). Any later versions of TriliumNext have their sync versions incremented. +Versions up to and including [v0.90.4](https://github.com/TriliumNext/Trilium/releases/tag/v0.90.4) are compatible with the latest zadam/trilium version of [v0.63.7](https://github.com/zadam/trilium/releases/tag/v0.63.7). Any later versions of TriliumNext have their sync versions incremented. ## 💬 Discuss with us @@ -26,7 +26,7 @@ Feel free to join our official conversations. We would love to hear what feature - [Matrix](https://matrix.to/#/#triliumnext:matrix.org) (For synchronous discussions) - The `General` Matrix room is also bridged to [XMPP](xmpp:discuss@trilium.thisgreat.party?join) -- [Github Discussions](https://github.com/TriliumNext/Notes/discussions) (For Asynchronous discussions) +- [Github Discussions](https://github.com/TriliumNext/Trilium/discussions) (For Asynchronous discussions) - [Wiki](https://triliumnext.github.io/Docs/) (For common how-to questions and user guides) ## 🎁 Features @@ -63,16 +63,16 @@ Feel free to join our official conversations. We would love to hear what feature To use TriliumNext on your desktop machine (Linux, MacOS, and Windows) you have a few options: -* Download the binary release for your platform from the [latest release page](https://github.com/TriliumNext/Notes/releases/latest), unzip the package and run the ```trilium``` executable. +* Download the binary release for your platform from the [latest release page](https://github.com/TriliumNext/Trilium/releases/latest), unzip the package and run the ```trilium``` executable. * Access TriliumNext via the web interface of a server installation (see below) * Currently only the latest versions of Chrome & Firefox are supported (and tested). * (Coming Soon) TriliumNext will also be provided as a Flatpak #### MacOS -Currently when running TriliumNext/Notes on MacOS, you may get the following error: +Currently when running TriliumNext/Trilium on MacOS, you may get the following error: > Apple could not verify "Trilium Notes" is free of malware and may harm your Mac or compromise your privacy. -You will need to run the command on your shell to resolve the error (documented [here](https://github.com/TriliumNext/Notes/issues/329#issuecomment-2287164137)): +You will need to run the command on your shell to resolve the error (documented [here](https://github.com/TriliumNext/Trilium/issues/329#issuecomment-2287164137)): ```bash xattr -c "/path/to/Trilium Next.app" @@ -84,11 +84,11 @@ To use TriliumNext on a mobile device, you can use a mobile web browser to acces If you prefer a native Android app, you can use [TriliumDroid](https://apt.izzysoft.de/fdroid/index/apk/eu.fliegendewurst.triliumdroid). Report bugs and missing features at [their repository](https://github.com/FliegendeWurst/TriliumDroid). -See issue https://github.com/TriliumNext/Notes/issues/72 for more information on mobile app support. +See issue https://github.com/TriliumNext/Trilium/issues/72 for more information on mobile app support. ### Server -To install TriliumNext on your own server (including via Docker from [Dockerhub](https://hub.docker.com/r/triliumnext/notes)) follow [the server installation docs](https://triliumnext.github.io/Docs/Wiki/server-installation). +To install TriliumNext on your own server (including via Docker from [Dockerhub](https://hub.docker.com/r/triliumnext/trilium)) follow [the server installation docs](https://triliumnext.github.io/Docs/Wiki/server-installation). ## 📝 Documentation @@ -101,17 +101,17 @@ You can also read [Patterns of personal knowledge base](https://triliumnext.gith ### Code ```shell -git clone https://github.com/TriliumNext/Notes.git +git clone https://github.com/TriliumNext/Trilium.git cd Notes npm install npm run server:start ``` -For more details, see the [development docs](https://github.com/TriliumNext/Notes/blob/develop/docs/Developer%20Guide/Developer%20Guide/Building%20and%20deployment/Running%20a%20development%20build.md). +For more details, see the [development docs](https://github.com/TriliumNext/Trilium/blob/develop/docs/Developer%20Guide/Developer%20Guide/Building%20and%20deployment/Running%20a%20development%20build.md). ### Documentation -See the [documentation guide](https://github.com/TriliumNext/Notes/blob/develop/docs/Developer%20Guide/Developer%20Guide/Documentation.md) for details. +See the [documentation guide](https://github.com/TriliumNext/Trilium/blob/develop/docs/Developer%20Guide/Developer%20Guide/Documentation.md) for details. ## 👏 Shoutouts @@ -123,7 +123,7 @@ See the [documentation guide](https://github.com/TriliumNext/Notes/blob/develop/ ## 🤝 Support Support for the TriliumNext organization will be possible in the near future. For now, you can: -- Support continued development on TriliumNext by supporting our developers: [eliandoran](https://github.com/sponsors/eliandoran) (See the [repository insights]([developers]([url](https://github.com/TriliumNext/Notes/graphs/contributors))) for a full list) +- Support continued development on TriliumNext by supporting our developers: [eliandoran](https://github.com/sponsors/eliandoran) (See the [repository insights]([developers]([url](https://github.com/TriliumNext/Trilium/graphs/contributors))) for a full list) - Show a token of gratitude to the original Trilium developer ([zadam](https://github.com/sponsors/zadam)) via [PayPal](https://paypal.me/za4am) or Bitcoin (bitcoin:bc1qv3svjn40v89mnkre5vyvs2xw6y8phaltl385d2). diff --git a/docs/Script API/media/README.ru.md b/docs/Script API/media/README.ru.md index 03a319313b..3c13ccdcba 100644 --- a/docs/Script API/media/README.ru.md +++ b/docs/Script API/media/README.ru.md @@ -28,7 +28,7 @@ Trilium Notes – это приложение для заметок с иера Trilium предоставляется в виде десктопного приложения (Linux и Windows) или веб-приложения, размещенного на вашем сервере (Linux). Доступна сборка Mac OS, но она [не поддерживается](https://triliumnext.github.io/Docs/Wiki/faq#mac-os-support). -* Если вы хотите использовать Trilium на десктопе, скачайте архив для своей платформы со страницы [релизов](https://github.com/TriliumNext/Notes/releases/latest), распакуйте и запустите исполняемый файл ```trilium```. +* Если вы хотите использовать Trilium на десктопе, скачайте архив для своей платформы со страницы [релизов](https://github.com/TriliumNext/Trilium/releases/latest), распакуйте и запустите исполняемый файл ```trilium```. * Если вы хотите установить Trilium на сервере, следуйте этой [инструкции](https://triliumnext.github.io/Docs/Wiki/server-installation). * В данный момент поддерживаются (протестированы) последние версии браузеров Chrome и Firefox. diff --git a/docs/User Guide/!!!meta.json b/docs/User Guide/!!!meta.json index dd69e1440a..ba9bbfbf7b 100644 --- a/docs/User Guide/!!!meta.json +++ b/docs/User Guide/!!!meta.json @@ -1,6 +1,6 @@ { "formatVersion": 2, - "appVersion": "0.96.0", + "appVersion": "0.97.2", "files": [ { "isClone": false, @@ -20,6 +20,144 @@ "attachments": [], "dirFileName": "User Guide", "children": [ + { + "isClone": false, + "noteId": "BOCnjTMBCoxW", + "notePath": [ + "pOsGYCXsbNQG", + "BOCnjTMBCoxW" + ], + "title": "Feature Highlights", + "notePosition": 10, + "prefix": null, + "isExpanded": false, + "type": "text", + "mime": "text/html", + "attributes": [ + { + "type": "relation", + "name": "internalLink", + "value": "ZjLYv08Rp3qC", + "isInheritable": false, + "position": 10 + }, + { + "type": "relation", + "name": "internalLink", + "value": "R9pX4DGra2Vt", + "isInheritable": false, + "position": 20 + }, + { + "type": "relation", + "name": "internalLink", + "value": "LMAv4Uy3Wk6J", + "isInheritable": false, + "position": 30 + }, + { + "type": "relation", + "name": "internalLink", + "value": "NRnIZmSMc5sj", + "isInheritable": false, + "position": 40 + }, + { + "type": "relation", + "name": "internalLink", + "value": "rC3pL2aptaRE", + "isInheritable": false, + "position": 50 + }, + { + "type": "relation", + "name": "internalLink", + "value": "GTwFsgaA0lCt", + "isInheritable": false, + "position": 60 + }, + { + "type": "relation", + "name": "internalLink", + "value": "2FvYrpmOXm29", + "isInheritable": false, + "position": 70 + }, + { + "type": "relation", + "name": "internalLink", + "value": "iPIMuisry3hd", + "isInheritable": false, + "position": 80 + }, + { + "type": "relation", + "name": "internalLink", + "value": "ZlN4nump6EbW", + "isInheritable": false, + "position": 90 + }, + { + "type": "relation", + "name": "internalLink", + "value": "pwc194wlRzcH", + "isInheritable": false, + "position": 100 + }, + { + "type": "relation", + "name": "internalLink", + "value": "7DAiwaf8Z7Rz", + "isInheritable": false, + "position": 110 + }, + { + "type": "relation", + "name": "internalLink", + "value": "veGu4faJErEM", + "isInheritable": false, + "position": 120 + }, + { + "type": "relation", + "name": "internalLink", + "value": "xWbu3jpNWapp", + "isInheritable": false, + "position": 130 + }, + { + "type": "relation", + "name": "internalLink", + "value": "AgjCISero73a", + "isInheritable": false, + "position": 140 + }, + { + "type": "relation", + "name": "internalLink", + "value": "81SGnPGMk7Xc", + "isInheritable": false, + "position": 150 + }, + { + "type": "relation", + "name": "internalLink", + "value": "gBbsAeiuUxI5", + "isInheritable": false, + "position": 160 + }, + { + "type": "label", + "name": "iconClass", + "value": "bx bx-star", + "isInheritable": false, + "position": 10 + } + ], + "format": "markdown", + "dataFileName": "Feature Highlights.md", + "attachments": [] + }, { "isClone": false, "noteId": "Otzi9La2YAUX", @@ -28,7 +166,7 @@ "Otzi9La2YAUX" ], "title": "Installation & Setup", - "notePosition": 10, + "notePosition": 20, "prefix": null, "isExpanded": false, "type": "text", @@ -1144,7 +1282,7 @@ "gh7bpGYxajRS" ], "title": "Basic Concepts and Features", - "notePosition": 30, + "notePosition": 40, "prefix": null, "isExpanded": false, "type": "text", @@ -1382,6 +1520,13 @@ "isInheritable": false, "position": 30 }, + { + "type": "relation", + "name": "internalLink", + "value": "DvdZhoQZY9Yd", + "isInheritable": false, + "position": 40 + }, { "type": "label", "name": "shareAlias", @@ -1589,7 +1734,7 @@ "dataFileName": "Note tree contextual menu.md", "attachments": [ { - "attachmentId": "8DX1hysz3JRh", + "attachmentId": "5mFOLdHBuKYa", "title": "image.png", "role": "image", "mime": "image/png", @@ -1597,7 +1742,7 @@ "dataFileName": "Note tree contextual menu_.png" }, { - "attachmentId": "GQv4tBf9VSON", + "attachmentId": "E3x5TRRe2pvx", "title": "image.png", "role": "image", "mime": "image/png", @@ -1650,6 +1795,56 @@ "dataFileName": "Multiple selection_image.png" } ] + }, + { + "isClone": false, + "noteId": "DvdZhoQZY9Yd", + "notePath": [ + "pOsGYCXsbNQG", + "gh7bpGYxajRS", + "Vc8PjrjAGuOp", + "oPVyFC7WL2Lp", + "DvdZhoQZY9Yd" + ], + "title": "Keyboard shortcuts", + "notePosition": 30, + "prefix": null, + "isExpanded": false, + "type": "text", + "mime": "text/html", + "attributes": [ + { + "type": "relation", + "name": "internalLink", + "value": "oPVyFC7WL2Lp", + "isInheritable": false, + "position": 10 + }, + { + "type": "relation", + "name": "internalLink", + "value": "ZjLYv08Rp3qC", + "isInheritable": false, + "position": 20 + }, + { + "type": "relation", + "name": "internalLink", + "value": "yTjUdsOi4CIE", + "isInheritable": false, + "position": 30 + }, + { + "type": "label", + "name": "iconClass", + "value": "bx bxs-keyboard", + "isInheritable": false, + "position": 10 + } + ], + "format": "markdown", + "dataFileName": "Keyboard shortcuts.md", + "attachments": [] } ] }, @@ -2476,6 +2671,128 @@ "format": "markdown", "dataFileName": "Zoom.md", "attachments": [] + }, + { + "isClone": false, + "noteId": "ZjLYv08Rp3qC", + "notePath": [ + "pOsGYCXsbNQG", + "gh7bpGYxajRS", + "Vc8PjrjAGuOp", + "ZjLYv08Rp3qC" + ], + "title": "Quick edit", + "notePosition": 200, + "prefix": null, + "isExpanded": false, + "type": "text", + "mime": "text/html", + "attributes": [], + "format": "markdown", + "dataFileName": "Quick edit.md", + "attachments": [ + { + "attachmentId": "EBOLwVGrA8bv", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "Quick edit_image.png" + } + ] + }, + { + "isClone": false, + "noteId": "lgKX7r3aL30x", + "notePath": [ + "pOsGYCXsbNQG", + "gh7bpGYxajRS", + "Vc8PjrjAGuOp", + "lgKX7r3aL30x" + ], + "title": "Note Tooltip", + "notePosition": 210, + "prefix": null, + "isExpanded": false, + "type": "text", + "mime": "text/html", + "attributes": [ + { + "type": "relation", + "name": "internalLink", + "value": "ZjLYv08Rp3qC", + "isInheritable": false, + "position": 10 + }, + { + "type": "relation", + "name": "internalLink", + "value": "Cq5X6iKQop6R", + "isInheritable": false, + "position": 20 + }, + { + "type": "relation", + "name": "internalLink", + "value": "hrZ1D00cLbal", + "isInheritable": false, + "position": 30 + }, + { + "type": "relation", + "name": "internalLink", + "value": "iPIMuisry3hd", + "isInheritable": false, + "position": 40 + }, + { + "type": "relation", + "name": "internalLink", + "value": "GTwFsgaA0lCt", + "isInheritable": false, + "position": 50 + }, + { + "type": "relation", + "name": "internalLink", + "value": "81SGnPGMk7Xc", + "isInheritable": false, + "position": 60 + }, + { + "type": "relation", + "name": "internalLink", + "value": "xWbu3jpNWapp", + "isInheritable": false, + "position": 70 + }, + { + "type": "relation", + "name": "internalLink", + "value": "2FvYrpmOXm29", + "isInheritable": false, + "position": 80 + }, + { + "type": "label", + "name": "iconClass", + "value": "bx bx-message-detail", + "isInheritable": false, + "position": 100 + } + ], + "format": "markdown", + "dataFileName": "Note Tooltip.md", + "attachments": [ + { + "attachmentId": "AHAT2uK9sy9d", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "Note Tooltip_image.png" + } + ] } ] }, @@ -3164,6 +3481,13 @@ "isInheritable": false, "position": 70 }, + { + "type": "relation", + "name": "internalLink", + "value": "81SGnPGMk7Xc", + "isInheritable": false, + "position": 80 + }, { "type": "label", "name": "shareAlias", @@ -3229,34 +3553,6 @@ "isInheritable": false, "position": 30 }, - { - "type": "relation", - "name": "internalLink", - "value": "iPIMuisry3hd", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "6f9hih2hXXZk", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "W8vYD3Q1zjCR", - "isInheritable": false, - "position": 60 - }, - { - "type": "relation", - "name": "internalLink", - "value": "xWbu3jpNWapp", - "isInheritable": false, - "position": 70 - }, { "type": "label", "name": "iconClass", @@ -3269,237 +3565,12 @@ "dataFileName": "Note List.md", "attachments": [ { - "attachmentId": "1SA0UPq471jp", + "attachmentId": "9VbOf4HySQjH", "title": "image.png", "role": "image", "mime": "image/png", "position": 10, "dataFileName": "Note List_image.png" - }, - { - "attachmentId": "2xoejxffj82c", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "1_Note List_image.png" - }, - { - "attachmentId": "mppVaDhlClF7", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "2_Note List_image.png" - } - ], - "dirFileName": "Note List", - "children": [ - { - "isClone": false, - "noteId": "xWbu3jpNWapp", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "BFs8mudNFgCS", - "0ESUbbAxVnoK", - "xWbu3jpNWapp" - ], - "title": "Calendar View", - "notePosition": 10, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "label", - "name": "iconClass", - "value": "bx bx-calendar", - "isInheritable": false, - "position": 10 - } - ], - "format": "markdown", - "dataFileName": "Calendar View.md", - "attachments": [ - { - "attachmentId": "37CfbqKYcOtd", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Calendar View_image.png" - }, - { - "attachmentId": "akAHcIEcGnWR", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "1_Calendar View_image.png" - }, - { - "attachmentId": "AU7dnIevWPrz", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "2_Calendar View_image.png" - }, - { - "attachmentId": "COiR1tnE86i1", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "3_Calendar View_image.png" - }, - { - "attachmentId": "fOdCNTs2BuI0", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "4_Calendar View_image.png" - }, - { - "attachmentId": "HfBu0m3WXtn2", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "5_Calendar View_image.png" - }, - { - "attachmentId": "ho00OJTNrxVI", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "6_Calendar View_image.png" - }, - { - "attachmentId": "irfNX8n4159U", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "7_Calendar View_image.png" - }, - { - "attachmentId": "KF56rdNuOwWd", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "8_Calendar View_image.png" - }, - { - "attachmentId": "oBWr5GL6cUAZ", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "9_Calendar View_image.png" - }, - { - "attachmentId": "oS6yUoQtfhpg", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "10_Calendar View_image.png" - }, - { - "attachmentId": "u2c09UpZghff", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "11_Calendar View_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "2FvYrpmOXm29", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "BFs8mudNFgCS", - "0ESUbbAxVnoK", - "2FvYrpmOXm29" - ], - "title": "Table", - "notePosition": 20, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "label", - "name": "iconClass", - "value": "bx bx-table", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "OFXdgB2nNk1F", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "oPVyFC7WL2Lp", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "m1lbrzyKDaRB", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "CdNpE2pqjmI6", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "m523cpzocqaD", - "isInheritable": false, - "position": 60 - }, - { - "type": "relation", - "name": "internalLink", - "value": "eIg8jdvaoNNd", - "isInheritable": false, - "position": 70 - } - ], - "format": "markdown", - "dataFileName": "Table.md", - "attachments": [ - { - "attachmentId": "vJYUG9fLQ2Pd", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Table_image.png" - } - ] } ] } @@ -3713,7 +3784,7 @@ "wArbEsdSae6g", "F1r9QtzQLZqm" ], - "title": "Jump to Note", + "title": "Jump to...", "notePosition": 50, "prefix": null, "isExpanded": false, @@ -3723,10 +3794,17 @@ { "type": "relation", "name": "internalLink", - "value": "xYmIYSP6wE3F", + "value": "A9Oc6YKKc65v", "isInheritable": false, "position": 10 }, + { + "type": "relation", + "name": "internalLink", + "value": "xYmIYSP6wE3F", + "isInheritable": false, + "position": 20 + }, { "type": "label", "name": "iconClass", @@ -3736,23 +3814,23 @@ } ], "format": "markdown", - "dataFileName": "Jump to Note.md", + "dataFileName": "Jump to.md", "attachments": [ + { + "attachmentId": "7IU5WrneDsfi", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "Jump to_image.png" + }, { "attachmentId": "P9veX5eFZdPp", "title": "image.png", "role": "image", "mime": "image/png", "position": 10, - "dataFileName": "Jump to Note_image.png" - }, - { - "attachmentId": "xA1F6kynr4YU", - "title": "recent-notes.gif", - "role": "image", - "mime": "image/gif", - "position": 10, - "dataFileName": "Jump to Note_recent-notes.gif" + "dataFileName": "1_Jump to_image.png" }, { "attachmentId": "y8yxomaf1Gkz", @@ -3760,7 +3838,7 @@ "role": "image", "mime": "image/png", "position": 10, - "dataFileName": "1_Jump to Note_image.png" + "dataFileName": "2_Jump to_image.png" } ] }, @@ -4009,6 +4087,22 @@ } ] }, + { + "isClone": true, + "noteId": "ZjLYv08Rp3qC", + "notePath": [ + "pOsGYCXsbNQG", + "gh7bpGYxajRS", + "wArbEsdSae6g", + "ZjLYv08Rp3qC" + ], + "title": "Quick edit", + "prefix": null, + "dataFileName": "Quick edit.clone.md", + "type": "text", + "format": "markdown", + "isExpanded": false + }, { "isClone": false, "noteId": "9sRHySam5fXb", @@ -4649,7 +4743,7 @@ "s3YCWHBfmYuM" ], "title": "Quick Start", - "notePosition": 50, + "notePosition": 60, "prefix": null, "isExpanded": false, "type": "text", @@ -4710,7 +4804,7 @@ "i6dbnitykE5D" ], "title": "FAQ", - "notePosition": 60, + "notePosition": 70, "prefix": null, "isExpanded": false, "type": "text", @@ -4799,7 +4893,7 @@ "KSZ04uQ2D1St" ], "title": "Note Types", - "notePosition": 120, + "notePosition": 130, "prefix": null, "isExpanded": false, "type": "text", @@ -6375,24 +6469,31 @@ { "type": "relation", "name": "internalLink", - "value": "nRhnJkTT8cPs", + "value": "3IDVtesTQ8ds", "isInheritable": false, "position": 10 }, { "type": "relation", "name": "internalLink", - "value": "oPVyFC7WL2Lp", + "value": "hrZ1D00cLbal", "isInheritable": false, "position": 20 }, { "type": "relation", "name": "internalLink", - "value": "BCkXAVs63Ttv", + "value": "oPVyFC7WL2Lp", "isInheritable": false, "position": 30 }, + { + "type": "relation", + "name": "internalLink", + "value": "BCkXAVs63Ttv", + "isInheritable": false, + "position": 40 + }, { "type": "label", "name": "shareAlias", @@ -6410,38 +6511,114 @@ ], "format": "markdown", "dataFileName": "Links.md", - "attachments": [ + "attachments": [], + "dirFileName": "Links", + "children": [ { - "attachmentId": "4LuLbS0gxlkC", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Links_image.png" + "isClone": false, + "noteId": "3IDVtesTQ8ds", + "notePath": [ + "pOsGYCXsbNQG", + "KSZ04uQ2D1St", + "iPIMuisry3hd", + "QEAPj01N5f7w", + "3IDVtesTQ8ds" + ], + "title": "External links", + "notePosition": 10, + "prefix": null, + "isExpanded": false, + "type": "text", + "mime": "text/html", + "attributes": [ + { + "type": "relation", + "name": "internalLink", + "value": "nRhnJkTT8cPs", + "isInheritable": false, + "position": 10 + }, + { + "type": "label", + "name": "iconClass", + "value": "bx bx-link-external", + "isInheritable": false, + "position": 20 + } + ], + "format": "markdown", + "dataFileName": "External links.md", + "attachments": [ + { + "attachmentId": "4iWGIpzSV6MV", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "External links_image.png" + }, + { + "attachmentId": "7VIWlzGk8mAN", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "1_External links_image.png" + }, + { + "attachmentId": "ScPPPlw9Ab9Y", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "2_External links_image.png" + } + ] }, { - "attachmentId": "4OJh3ujbwosA", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "1_Links_image.png" - }, - { - "attachmentId": "GH0rUFn6UUDY", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "2_Links_image.png" - }, - { - "attachmentId": "w1jpXjdAuL2B", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "3_Links_image.png" + "isClone": false, + "noteId": "hrZ1D00cLbal", + "notePath": [ + "pOsGYCXsbNQG", + "KSZ04uQ2D1St", + "iPIMuisry3hd", + "QEAPj01N5f7w", + "hrZ1D00cLbal" + ], + "title": "Internal (reference) links", + "notePosition": 20, + "prefix": null, + "isExpanded": false, + "type": "text", + "mime": "text/html", + "attributes": [ + { + "type": "relation", + "name": "internalLink", + "value": "nRhnJkTT8cPs", + "isInheritable": false, + "position": 10 + }, + { + "type": "label", + "name": "iconClass", + "value": "bx bx-link", + "isInheritable": false, + "position": 20 + } + ], + "format": "markdown", + "dataFileName": "Internal (reference) links.md", + "attachments": [ + { + "attachmentId": "ausNE2PtmeVB", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "Internal (reference) links.png" + } + ] } ] }, @@ -7640,7 +7817,7 @@ "KSZ04uQ2D1St", "GTwFsgaA0lCt" ], - "title": "Book", + "title": "Collections", "notePosition": 130, "prefix": null, "isExpanded": false, @@ -7650,7 +7827,7 @@ { "type": "relation", "name": "internalLink", - "value": "BFs8mudNFgCS", + "value": "8QqnMzx393bx", "isInheritable": false, "position": 10 }, @@ -7664,10 +7841,80 @@ { "type": "relation", "name": "internalLink", - "value": "BlN9DFI679QC", + "value": "mULW0Q3VojwY", "isInheritable": false, "position": 30 }, + { + "type": "relation", + "name": "internalLink", + "value": "xWbu3jpNWapp", + "isInheritable": false, + "position": 40 + }, + { + "type": "relation", + "name": "internalLink", + "value": "81SGnPGMk7Xc", + "isInheritable": false, + "position": 50 + }, + { + "type": "relation", + "name": "internalLink", + "value": "2FvYrpmOXm29", + "isInheritable": false, + "position": 60 + }, + { + "type": "relation", + "name": "internalLink", + "value": "OFXdgB2nNk1F", + "isInheritable": false, + "position": 70 + }, + { + "type": "relation", + "name": "internalLink", + "value": "CtBQqbwXDx1w", + "isInheritable": false, + "position": 80 + }, + { + "type": "relation", + "name": "internalLink", + "value": "BlN9DFI679QC", + "isInheritable": false, + "position": 90 + }, + { + "type": "relation", + "name": "internalLink", + "value": "oPVyFC7WL2Lp", + "isInheritable": false, + "position": 100 + }, + { + "type": "relation", + "name": "internalLink", + "value": "m523cpzocqaD", + "isInheritable": false, + "position": 110 + }, + { + "type": "relation", + "name": "internalLink", + "value": "KC1HB96bqqHX", + "isInheritable": false, + "position": 120 + }, + { + "type": "relation", + "name": "internalLink", + "value": "2mUhVmZK8RF3", + "isInheritable": false, + "position": 130 + }, { "type": "label", "name": "shareAlias", @@ -7684,15 +7931,639 @@ } ], "format": "markdown", - "dataFileName": "Book.md", - "attachments": [ + "dataFileName": "Collections.md", + "attachments": [], + "dirFileName": "Collections", + "children": [ { - "attachmentId": "lpq3QC1C5LWg", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "Book_image.png" + "isClone": false, + "noteId": "xWbu3jpNWapp", + "notePath": [ + "pOsGYCXsbNQG", + "KSZ04uQ2D1St", + "GTwFsgaA0lCt", + "xWbu3jpNWapp" + ], + "title": "Calendar View", + "notePosition": 10, + "prefix": null, + "isExpanded": false, + "type": "text", + "mime": "text/html", + "attributes": [ + { + "type": "relation", + "name": "internalLink", + "value": "ZjLYv08Rp3qC", + "isInheritable": false, + "position": 10 + }, + { + "type": "relation", + "name": "internalLink", + "value": "BlN9DFI679QC", + "isInheritable": false, + "position": 20 + }, + { + "type": "label", + "name": "iconClass", + "value": "bx bx-calendar", + "isInheritable": false, + "position": 10 + } + ], + "format": "markdown", + "dataFileName": "Calendar View.md", + "attachments": [ + { + "attachmentId": "37CfbqKYcOtd", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "Calendar View_image.png" + }, + { + "attachmentId": "akAHcIEcGnWR", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "1_Calendar View_image.png" + }, + { + "attachmentId": "AU7dnIevWPrz", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "2_Calendar View_image.png" + }, + { + "attachmentId": "COiR1tnE86i1", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "3_Calendar View_image.png" + }, + { + "attachmentId": "fOdCNTs2BuI0", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "4_Calendar View_image.png" + }, + { + "attachmentId": "HfBu0m3WXtn2", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "5_Calendar View_image.png" + }, + { + "attachmentId": "ho00OJTNrxVI", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "6_Calendar View_image.png" + }, + { + "attachmentId": "irfNX8n4159U", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "7_Calendar View_image.png" + }, + { + "attachmentId": "KF56rdNuOwWd", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "8_Calendar View_image.png" + }, + { + "attachmentId": "oBWr5GL6cUAZ", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "9_Calendar View_image.png" + }, + { + "attachmentId": "oS6yUoQtfhpg", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "10_Calendar View_image.png" + }, + { + "attachmentId": "u2c09UpZghff", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "11_Calendar View_image.png" + } + ] + }, + { + "isClone": false, + "noteId": "81SGnPGMk7Xc", + "notePath": [ + "pOsGYCXsbNQG", + "KSZ04uQ2D1St", + "GTwFsgaA0lCt", + "81SGnPGMk7Xc" + ], + "title": "Geo Map View", + "notePosition": 20, + "prefix": null, + "isExpanded": false, + "type": "text", + "mime": "text/html", + "attributes": [ + { + "type": "relation", + "name": "internalLink", + "value": "KSZ04uQ2D1St", + "isInheritable": false, + "position": 10 + }, + { + "type": "relation", + "name": "internalLink", + "value": "0ESUbbAxVnoK", + "isInheritable": false, + "position": 20 + }, + { + "type": "relation", + "name": "internalLink", + "value": "XpOYSgsLkTJy", + "isInheritable": false, + "position": 30 + }, + { + "type": "relation", + "name": "internalLink", + "value": "oPVyFC7WL2Lp", + "isInheritable": false, + "position": 40 + }, + { + "type": "relation", + "name": "internalLink", + "value": "IakOLONlIfGI", + "isInheritable": false, + "position": 50 + }, + { + "type": "relation", + "name": "internalLink", + "value": "lgKX7r3aL30x", + "isInheritable": false, + "position": 60 + }, + { + "type": "relation", + "name": "internalLink", + "value": "ZjLYv08Rp3qC", + "isInheritable": false, + "position": 70 + }, + { + "type": "relation", + "name": "internalLink", + "value": "BlN9DFI679QC", + "isInheritable": false, + "position": 80 + }, + { + "type": "label", + "name": "iconClass", + "value": "bx bx-map-alt", + "isInheritable": false, + "position": 10 + } + ], + "format": "markdown", + "dataFileName": "Geo Map View.md", + "attachments": [ + { + "attachmentId": "1f07O0Z25ZRr", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "Geo Map View_image.png" + }, + { + "attachmentId": "3oh61qhNLu7D", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "1_Geo Map View_image.png" + }, + { + "attachmentId": "aCSNn9QlgHFi", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "2_Geo Map View_image.png" + }, + { + "attachmentId": "aCuXZY7WV4li", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "3_Geo Map View_image.png" + }, + { + "attachmentId": "agH6yREFgsoU", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "4_Geo Map View_image.png" + }, + { + "attachmentId": "AHyDUM6R5HeG", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "5_Geo Map View_image.png" + }, + { + "attachmentId": "CcjWLhE3KKfv", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "6_Geo Map View_image.png" + }, + { + "attachmentId": "fQy8R1vxKhwN", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "7_Geo Map View_image.png" + }, + { + "attachmentId": "gJ4Yz80jxcbn", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "8_Geo Map View_image.png" + }, + { + "attachmentId": "I39BinT2gsN9", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "9_Geo Map View_image.png" + }, + { + "attachmentId": "IeXU8SLZU7Oz", + "title": "image.jpg", + "role": "image", + "mime": "image/jpg", + "position": 10, + "dataFileName": "Geo Map View_image.jpg" + }, + { + "attachmentId": "Mb9kRm63MxjE", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "10_Geo Map View_image.png" + }, + { + "attachmentId": "Mx2xwNIk76ZS", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "11_Geo Map View_image.png" + }, + { + "attachmentId": "oaahbsMRbqd2", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "12_Geo Map View_image.png" + }, + { + "attachmentId": "pGf1p74KKGU4", + "title": "image.png", + "role": "image", + "mime": "image/jpg", + "position": 10, + "dataFileName": "13_Geo Map View_image.png" + }, + { + "attachmentId": "tfa1TRUatWEh", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "14_Geo Map View_image.png" + }, + { + "attachmentId": "tuNZ7Uk9WfX1", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "15_Geo Map View_image.png" + }, + { + "attachmentId": "x6yBLIsY2LSv", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "16_Geo Map View_image.png" + }, + { + "attachmentId": "yJMyBRYA3Kwi", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "17_Geo Map View_image.png" + }, + { + "attachmentId": "ZvTlu9WMd37z", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "18_Geo Map View_image.png" + } + ] + }, + { + "isClone": false, + "noteId": "8QqnMzx393bx", + "notePath": [ + "pOsGYCXsbNQG", + "KSZ04uQ2D1St", + "GTwFsgaA0lCt", + "8QqnMzx393bx" + ], + "title": "Grid View", + "notePosition": 30, + "prefix": null, + "isExpanded": false, + "type": "text", + "mime": "text/html", + "attributes": [ + { + "type": "relation", + "name": "internalLink", + "value": "6f9hih2hXXZk", + "isInheritable": false, + "position": 10 + }, + { + "type": "relation", + "name": "internalLink", + "value": "0ESUbbAxVnoK", + "isInheritable": false, + "position": 20 + }, + { + "type": "relation", + "name": "internalLink", + "value": "iPIMuisry3hd", + "isInheritable": false, + "position": 30 + }, + { + "type": "relation", + "name": "internalLink", + "value": "W8vYD3Q1zjCR", + "isInheritable": false, + "position": 40 + }, + { + "type": "label", + "name": "iconClass", + "value": "bx bxs-grid", + "isInheritable": false, + "position": 20 + } + ], + "format": "markdown", + "dataFileName": "Grid View.md", + "attachments": [ + { + "attachmentId": "al3KatZRq5TB", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "Grid View_image.png" + } + ] + }, + { + "isClone": false, + "noteId": "mULW0Q3VojwY", + "notePath": [ + "pOsGYCXsbNQG", + "KSZ04uQ2D1St", + "GTwFsgaA0lCt", + "mULW0Q3VojwY" + ], + "title": "List View", + "notePosition": 40, + "prefix": null, + "isExpanded": false, + "type": "text", + "mime": "text/html", + "attributes": [ + { + "type": "relation", + "name": "internalLink", + "value": "8QqnMzx393bx", + "isInheritable": false, + "position": 10 + }, + { + "type": "relation", + "name": "internalLink", + "value": "BlN9DFI679QC", + "isInheritable": false, + "position": 20 + }, + { + "type": "label", + "name": "iconClass", + "value": "bx bx-list-ul", + "isInheritable": false, + "position": 10 + } + ], + "format": "markdown", + "dataFileName": "List View.md", + "attachments": [ + { + "attachmentId": "igeOEpKp4ygW", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "List View_image.png" + } + ] + }, + { + "isClone": false, + "noteId": "2FvYrpmOXm29", + "notePath": [ + "pOsGYCXsbNQG", + "KSZ04uQ2D1St", + "GTwFsgaA0lCt", + "2FvYrpmOXm29" + ], + "title": "Table View", + "notePosition": 50, + "prefix": null, + "isExpanded": false, + "type": "text", + "mime": "text/html", + "attributes": [ + { + "type": "relation", + "name": "internalLink", + "value": "OFXdgB2nNk1F", + "isInheritable": false, + "position": 10 + }, + { + "type": "relation", + "name": "internalLink", + "value": "m1lbrzyKDaRB", + "isInheritable": false, + "position": 20 + }, + { + "type": "relation", + "name": "internalLink", + "value": "oPVyFC7WL2Lp", + "isInheritable": false, + "position": 30 + }, + { + "type": "relation", + "name": "internalLink", + "value": "BlN9DFI679QC", + "isInheritable": false, + "position": 40 + }, + { + "type": "relation", + "name": "internalLink", + "value": "eIg8jdvaoNNd", + "isInheritable": false, + "position": 50 + }, + { + "type": "relation", + "name": "internalLink", + "value": "CdNpE2pqjmI6", + "isInheritable": false, + "position": 60 + }, + { + "type": "relation", + "name": "internalLink", + "value": "m523cpzocqaD", + "isInheritable": false, + "position": 70 + }, + { + "type": "label", + "name": "iconClass", + "value": "bx bx-table", + "isInheritable": false, + "position": 10 + } + ], + "format": "markdown", + "dataFileName": "Table View.md", + "attachments": [ + { + "attachmentId": "vJYUG9fLQ2Pd", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "Table View_image.png" + } + ] + }, + { + "isClone": false, + "noteId": "CtBQqbwXDx1w", + "notePath": [ + "pOsGYCXsbNQG", + "KSZ04uQ2D1St", + "GTwFsgaA0lCt", + "CtBQqbwXDx1w" + ], + "title": "Board View", + "notePosition": 60, + "prefix": null, + "isExpanded": false, + "type": "text", + "mime": "text/html", + "attributes": [ + { + "type": "relation", + "name": "internalLink", + "value": "2FvYrpmOXm29", + "isInheritable": false, + "position": 10 + }, + { + "type": "label", + "name": "iconClass", + "value": "bx bx-columns", + "isInheritable": false, + "position": 10 + } + ], + "format": "markdown", + "dataFileName": "Board View.md", + "attachments": [ + { + "attachmentId": "usSSa0WI6dDK", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "Board View_image.png" + } + ] } ] }, @@ -7937,201 +8808,6 @@ } ] }, - { - "isClone": false, - "noteId": "81SGnPGMk7Xc", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "81SGnPGMk7Xc" - ], - "title": "Geo Map", - "notePosition": 200, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "XpOYSgsLkTJy", - "isInheritable": false, - "position": 10 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-map-alt", - "isInheritable": false, - "position": 10 - } - ], - "format": "markdown", - "dataFileName": "Geo Map.md", - "attachments": [ - { - "attachmentId": "1f07O0Z25ZRr", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Geo Map_image.png" - }, - { - "attachmentId": "3oh61qhNLu7D", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "1_Geo Map_image.png" - }, - { - "attachmentId": "aCSNn9QlgHFi", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "2_Geo Map_image.png" - }, - { - "attachmentId": "aCuXZY7WV4li", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "3_Geo Map_image.png" - }, - { - "attachmentId": "agH6yREFgsoU", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "4_Geo Map_image.png" - }, - { - "attachmentId": "AHyDUM6R5HeG", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "5_Geo Map_image.png" - }, - { - "attachmentId": "CcjWLhE3KKfv", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "6_Geo Map_image.png" - }, - { - "attachmentId": "DapDey8gMiFc", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "7_Geo Map_image.png" - }, - { - "attachmentId": "fQy8R1vxKhwN", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "8_Geo Map_image.png" - }, - { - "attachmentId": "gJ4Yz80jxcbn", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "9_Geo Map_image.png" - }, - { - "attachmentId": "I39BinT2gsN9", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "10_Geo Map_image.png" - }, - { - "attachmentId": "IeXU8SLZU7Oz", - "title": "image.jpg", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "Geo Map_image.jpg" - }, - { - "attachmentId": "Mb9kRm63MxjE", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "11_Geo Map_image.png" - }, - { - "attachmentId": "Mx2xwNIk76ZS", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "12_Geo Map_image.png" - }, - { - "attachmentId": "oaahbsMRbqd2", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "13_Geo Map_image.png" - }, - { - "attachmentId": "pGf1p74KKGU4", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "14_Geo Map_image.png" - }, - { - "attachmentId": "tfa1TRUatWEh", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "15_Geo Map_image.png" - }, - { - "attachmentId": "x6yBLIsY2LSv", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "16_Geo Map_image.png" - }, - { - "attachmentId": "yJMyBRYA3Kwi", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "17_Geo Map_image.png" - }, - { - "attachmentId": "ZvTlu9WMd37z", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "18_Geo Map_image.png" - } - ] - }, { "isClone": false, "noteId": "W8vYD3Q1zjCR", @@ -8303,7 +8979,7 @@ "BgmBlOIl72jZ" ], "title": "Troubleshooting", - "notePosition": 240, + "notePosition": 250, "prefix": null, "isExpanded": false, "type": "text", @@ -8562,7 +9238,7 @@ "pKK96zzmvBGf" ], "title": "Theme development", - "notePosition": 250, + "notePosition": 260, "prefix": null, "isExpanded": false, "type": "text", @@ -8765,7 +9441,7 @@ "tC7s2alapj8V" ], "title": "Advanced Usage", - "notePosition": 310, + "notePosition": 320, "prefix": null, "isExpanded": false, "type": "text", @@ -11303,7 +11979,7 @@ "LMAv4Uy3Wk6J" ], "title": "AI", - "notePosition": 320, + "notePosition": 330, "prefix": null, "isExpanded": false, "type": "book", @@ -11666,7 +12342,7 @@ "CdNpE2pqjmI6" ], "title": "Scripting", - "notePosition": 330, + "notePosition": 340, "prefix": null, "isExpanded": false, "type": "text", diff --git a/docs/User Guide/User Guide/Advanced Usage/Attributes/Labels.md b/docs/User Guide/User Guide/Advanced Usage/Attributes/Labels.md index 54233914ad..53307238fd 100644 --- a/docs/User Guide/User Guide/Advanced Usage/Attributes/Labels.md +++ b/docs/User Guide/User Guide/Advanced Usage/Attributes/Labels.md @@ -39,4 +39,4 @@ This is a list of labels that Trilium natively supports. > [!TIP] > Some labels presented here end with a `*`. That means that there are multiple labels with the same prefix, consult the specific page linked in the description of that label for more information. -
            LabelDescription
            disableVersioningDisables automatic creation of Note Revisions for a particular note. Useful for e.g. large, but unimportant notes - e.g. large JS libraries used for scripting.
            versioningLimitLimits the maximum number of Note Revisions for a particular note, overriding the global settings.
            calendarRootMarks the note which should be used as root for Day Notes. Only one should be marked as such.
            archivedHides notes from default search results and dialogs. Archived notes can optionally be hidden in the Note Tree.
            excludeFromExportExcludes this note and its children when exporting.
            run, runOnInstance, runAtHourSee Events.
            disableInclusionScripts with this label won't be included into parent script execution.
            sorted

            Keeps child notes sorted by title alphabetically.

            When given a value, it will sort by the value of another label instead. If one of the child notes doesn't have the specified label, the title will be used for them instead.

            sortDirection

            If sorted is applied, specifies the direction of the sort:

            • ASC, ascending (default)
            • DESC, descending
            sortFoldersFirstIf sorted is applied, folders (notes with children) will be sorted as a group at the top, and the rest will be sorted.
            topIf sorted is applied to the parent note, keeps given note on top in its parent.
            hidePromotedAttributesHide Promoted Attributes on this note. Generally useful when defining inherited attributes, but the parent note doesn't need them.
            readOnlyMarks a note to be always be read-only, if it's a supported note (text, code, mermaid).
            autoReadOnlyDisabledDisables automatic read-only mode for the given note.
            appCssMarks CSS notes which are loaded into the Trilium application and can thus be used to modify Trilium's looks. See Custom app-wide CSS for more info.
            appThemeMarks CSS notes which are full Trilium themes and are thus available in Trilium options. See Theme development for more information.
            appThemeBaseSet to next, next-light, or next-dark to use the corresponding TriliumNext theme (auto, light or dark) as the base for a custom theme, instead of the legacy one. See Customize the Next theme for more information.
            cssClassValue of this label is then added as CSS class to the node representing given note in the Note Tree. This can be useful for advanced theming. Can be used in template notes.
            iconClassvalue of this label is added as a CSS class to the icon on the tree which can help visually distinguish the notes in the tree. Example might be bx bx-home - icons are taken from boxicons. Can be used in template notes.
            pageSizeSpecifies the number of items per page in Note List.
            customRequestHandlerSee Custom Request Handler.
            customResourceProviderSee Custom Resource Providers.
            widgetMarks this note as a custom widget which will be added to the Trilium component tree. See Custom Widgets for more information.
            searchHomeNew search notes will be created as children of this note (see Saved Search).
            workspace and related attributesSee Workspaces.
            inboxdefault inbox location for new notes - when you create a note using new note button in the sidebar, notes will be created as child notes in the note marked as with #inbox label.
            sqlConsoleHomeDefault location of SQL Console notes
            bookmarkedIndicates this note is a bookmark.
            bookmarkFolderNote with this label will appear in bookmarks as folder (allowing access to its children). See Bookmarks for more information.
            share*See the attribute reference in Sharing.
            displayRelations, hideRelationsComma delimited names of relations which should be displayed/hidden in a Relation Map (both the note type and the Note Map (Link map, Tree map) general functionality).
            titleTemplate

            Default title of notes created as children of this note. This value is evaluated as a JavaScript string and thus can be enriched with dynamic content via the injected now and parentNote variables.

            Examples:

            • \({parentNote.getLabel('authorName')}'s literary works
            • Log for \){now.format('YYYY-MM-DD HH:mm:ss')}
            • to mirror the parent's template.

            See Default Note Title for more info.

            templateThis note will appear in the selection of available template when creating new note. See Templates for more information.
            tocControls the display of the Table of contents for a given note. #toc or #toc=show to always display the table of contents, #toc=false to always hide it.
            colordefines color of the note in note tree, links etc. Use any valid CSS color value like 'red' or #a13d5f
            keyboardShortcutDefines a keyboard shortcut which will immediately jump to this note. Example: 'ctrl+alt+e'. Requires frontend reload for the change to take effect.
            keepCurrentHoistingOpening this link won't change hoisting even if the note is not displayable in the current hoisted subtree.
            executeButtonTitle of the button which will execute the current code note
            executeDescriptionLonger description of the current code note displayed together with the execute button
            excludeFromNoteMapNotes with this label will be hidden from the Note Map.
            newNotesOnTopNew notes will be created at the top of the parent note, not on the bottom.
            hideHighlightWidgetHides the Highlights list widget
            hideChildrenOverviewHides the Note List for that particular note.
            printLandscapeWhen exporting to PDF, changes the orientation of the page to landscape instead of portrait.
            printPageSizeWhen exporting to PDF, changes the size of the page. Supported values: A0, A1, A2, A3, A4, A5, A6, Legal, Letter, Tabloid, Ledger.
            geolocationIndicates the latitude and longitude of a note, to be displayed in a Geo Map.
            calendar:*Defines specific options for the Calendar View.
            viewTypeSets the view of child notes (e.g. grid or list). See Note List for more information.
            \ No newline at end of file +
            LabelDescription
            disableVersioningDisables automatic creation of Note Revisions for a particular note. Useful for e.g. large, but unimportant notes - e.g. large JS libraries used for scripting.
            versioningLimitLimits the maximum number of Note Revisions for a particular note, overriding the global settings.
            calendarRootMarks the note which should be used as root for Day Notes. Only one should be marked as such.
            archivedHides notes from default search results and dialogs. Archived notes can optionally be hidden in the Note Tree.
            excludeFromExportExcludes this note and its children when exporting.
            run, runOnInstance, runAtHourSee Events.
            disableInclusionScripts with this label won't be included into parent script execution.
            sorted

            Keeps child notes sorted by title alphabetically.

            When given a value, it will sort by the value of another label instead. If one of the child notes doesn't have the specified label, the title will be used for them instead.

            sortDirection

            If sorted is applied, specifies the direction of the sort:

            • ASC, ascending (default)
            • DESC, descending
            sortFoldersFirstIf sorted is applied, folders (notes with children) will be sorted as a group at the top, and the rest will be sorted.
            topIf sorted is applied to the parent note, keeps given note on top in its parent.
            hidePromotedAttributesHide Promoted Attributes on this note. Generally useful when defining inherited attributes, but the parent note doesn't need them.
            readOnlyMarks a note to be always be read-only, if it's a supported note (text, code, mermaid).
            autoReadOnlyDisabledDisables automatic read-only mode for the given note.
            appCssMarks CSS notes which are loaded into the Trilium application and can thus be used to modify Trilium's looks. See Custom app-wide CSS for more info.
            appThemeMarks CSS notes which are full Trilium themes and are thus available in Trilium options. See Theme development for more information.
            appThemeBaseSet to next, next-light, or next-dark to use the corresponding TriliumNext theme (auto, light or dark) as the base for a custom theme, instead of the legacy one. See Customize the Next theme for more information.
            cssClassValue of this label is then added as CSS class to the node representing given note in the Note Tree. This can be useful for advanced theming. Can be used in template notes.
            iconClassvalue of this label is added as a CSS class to the icon on the tree which can help visually distinguish the notes in the tree. Example might be bx bx-home - icons are taken from boxicons. Can be used in template notes.
            pageSizeSpecifies the number of items per page in Note List.
            customRequestHandlerSee Custom Request Handler.
            customResourceProviderSee Custom Resource Providers.
            widgetMarks this note as a custom widget which will be added to the Trilium component tree. See Custom Widgets for more information.
            searchHomeNew search notes will be created as children of this note (see Saved Search).
            workspace and related attributesSee Workspaces.
            inboxdefault inbox location for new notes - when you create a note using new note button in the sidebar, notes will be created as child notes in the note marked as with #inbox label.
            sqlConsoleHomeDefault location of SQL Console notes
            bookmarkedIndicates this note is a bookmark.
            bookmarkFolderNote with this label will appear in bookmarks as folder (allowing access to its children). See Bookmarks for more information.
            share*See the attribute reference in Sharing.
            displayRelations, hideRelationsComma delimited names of relations which should be displayed/hidden in a Relation Map (both the note type and the Note Map (Link map, Tree map) general functionality).
            titleTemplate

            Default title of notes created as children of this note. This value is evaluated as a JavaScript string and thus can be enriched with dynamic content via the injected now and parentNote variables.

            Examples:

            • \({parentNote.getLabel('authorName')}'s literary works
            • Log for \){now.format('YYYY-MM-DD HH:mm:ss')}
            • to mirror the parent's template.

            See Default Note Title for more info.

            templateThis note will appear in the selection of available template when creating new note. See Templates for more information.
            tocControls the display of the Table of contents for a given note. #toc or #toc=show to always display the table of contents, #toc=false to always hide it.
            colordefines color of the note in note tree, links etc. Use any valid CSS color value like 'red' or #a13d5f
            keyboardShortcutDefines a keyboard shortcut which will immediately jump to this note. Example: 'ctrl+alt+e'. Requires frontend reload for the change to take effect.
            keepCurrentHoistingOpening this link won't change hoisting even if the note is not displayable in the current hoisted subtree.
            executeButtonTitle of the button which will execute the current code note
            executeDescriptionLonger description of the current code note displayed together with the execute button
            excludeFromNoteMapNotes with this label will be hidden from the Note Map.
            newNotesOnTopNew notes will be created at the top of the parent note, not on the bottom.
            hideHighlightWidgetHides the Highlights list widget
            hideChildrenOverviewHides the Note List for that particular note.
            printLandscapeWhen exporting to PDF, changes the orientation of the page to landscape instead of portrait.
            printPageSizeWhen exporting to PDF, changes the size of the page. Supported values: A0, A1, A2, A3, A4, A5, A6, Legal, Letter, Tabloid, Ledger.
            geolocationIndicates the latitude and longitude of a note, to be displayed in a Geo Map.
            calendar:*Defines specific options for the Calendar View.
            viewTypeSets the view of child notes (e.g. grid or list). See Note List for more information.
            \ No newline at end of file diff --git a/docs/User Guide/User Guide/Advanced Usage/Attributes/Relations.md b/docs/User Guide/User Guide/Advanced Usage/Attributes/Relations.md index 6a8bdbb4c1..2916640ecb 100644 --- a/docs/User Guide/User Guide/Advanced Usage/Attributes/Relations.md +++ b/docs/User Guide/User Guide/Advanced Usage/Attributes/Relations.md @@ -41,4 +41,14 @@ These relations are supported and used internally by Trilium. > [!TIP] > Some relations presented here end with a `*`. That means that there are multiple relations with the same prefix, consult the specific page linked in the description of that relation for more information. -
            LabelDescription
            runOn*See Events
            templatenote's attributes will be inherited even without a parent-child relationship, note's content and subtree will be added to instance notes if empty. See documentation for details.
            inheritnote's attributes will be inherited even without a parent-child relationship. See Templates for a similar concept. See Attribute Inheritance in the documentation.
            renderNotenotes of type Render Note will be rendered using a code note (HTML or script) and it is necessary to point using this relation to which note should be rendered
            widget_relationtarget of this relation will be executed and rendered as a widget in the sidebar
            shareCssCSS note which will be injected into the share page. CSS note must be in the shared sub-tree as well. Consider using share_hidden_from_tree and share_omit_default_css as well.
            shareJsJavaScript note which will be injected into the share page. JS note must be in the shared sub-tree as well. Consider using share_hidden_from_tree.
            shareTemplateEmbedded JavaScript note that will be used as the template for displaying the shared note. Falls back to the default template. Consider using share_hidden_from_tree.
            shareFaviconFavicon note to be set in the shared page. Typically you want to set it to share root and make it inheritable. Favicon note must be in the shared sub-tree as well. Consider using share_hidden_from_tree.
            \ No newline at end of file +| Label | Description | +| --- | --- | +| `runOn*` | See Events | +| `template` | note's attributes will be inherited even without a parent-child relationship, note's content and subtree will be added to instance notes if empty. See documentation for details. | +| `inherit` | note's attributes will be inherited even without a parent-child relationship. See Templates for a similar concept. See Attribute Inheritance in the documentation. | +| `renderNote` | notes of type Render Note will be rendered using a code note (HTML or script) and it is necessary to point using this relation to which note should be rendered | +| `widget_relation` | target of this relation will be executed and rendered as a widget in the sidebar | +| `shareCss` | CSS note which will be injected into the share page. CSS note must be in the shared sub-tree as well. Consider using `share_hidden_from_tree` and `share_omit_default_css` as well. | +| `shareJs` | JavaScript note which will be injected into the share page. JS note must be in the shared sub-tree as well. Consider using `share_hidden_from_tree`. | +| `shareTemplate` | Embedded JavaScript note that will be used as the template for displaying the shared note. Falls back to the default template. Consider using `share_hidden_from_tree`. | +| `shareFavicon` | Favicon note to be set in the shared page. Typically you want to set it to share root and make it inheritable. Favicon note must be in the shared sub-tree as well. Consider using `share_hidden_from_tree`. | \ No newline at end of file diff --git a/docs/User Guide/User Guide/Advanced Usage/Configuration (config.ini or e.md b/docs/User Guide/User Guide/Advanced Usage/Configuration (config.ini or e.md index e8773f0e64..e917794a82 100644 --- a/docs/User Guide/User Guide/Advanced Usage/Configuration (config.ini or e.md +++ b/docs/User Guide/User Guide/Advanced Usage/Configuration (config.ini or e.md @@ -1,5 +1,5 @@ # Configuration (config.ini or environment variables) -Trilium supports configuration via a file named `config.ini` and environment variables. Please review the file named [config-sample.ini](https://github.com/TriliumNext/Notes/blob/develop/apps/server/src/assets/config-sample.ini) in the [Notes](https://github.com/TriliumNext/Notes) repository to see what values are supported. +Trilium supports configuration via a file named `config.ini` and environment variables. Please review the file named [config-sample.ini](https://github.com/TriliumNext/Trilium/blob/develop/apps/server/src/assets/config-sample.ini) in the [Notes](https://github.com/TriliumNext/Trilium) repository to see what values are supported. You can provide the same values via environment variables instead of the `config.ini` file, and these environment variables use the following format: diff --git a/docs/User Guide/User Guide/Advanced Usage/Configuration (config.ini or environment variables)/Cross-Origin Resource Sharing .md b/docs/User Guide/User Guide/Advanced Usage/Configuration (config.ini or environment variables)/Cross-Origin Resource Sharing .md index 31feaff99c..686cb76851 100644 --- a/docs/User Guide/User Guide/Advanced Usage/Configuration (config.ini or environment variables)/Cross-Origin Resource Sharing .md +++ b/docs/User Guide/User Guide/Advanced Usage/Configuration (config.ini or environment variables)/Cross-Origin Resource Sharing .md @@ -3,4 +3,8 @@ By default, Trilium cannot be accessed in web browsers by requests coming from o However, it is possible to manually configure [Cross-Origin Resource Sharing (CORS)](https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CORS) since Trilium v0.93.0 using environment variables or `config.ini`, as follows: -
            CORS HeaderCorresponding option in config.iniCorresponding option in environment variables in the Network section
            Access-Control-Allow-OriginTRILIUM_NETWORK_CORS_ALLOW_ORIGINcorsAllowOrigin 
            Access-Control-Allow-MethodsTRILIUM_NETWORK_CORS_ALLOW_METHODScorsAllowMethods 
            Access-Control-Allow-HeadersTRILIUM_NETWORK_CORS_ALLOW_HEADERScorsAllowHeaders
            \ No newline at end of file +| CORS Header | Corresponding option in `config.ini` | Corresponding option in environment variables in the `Network` section | +| --- | --- | --- | +| `Access-Control-Allow-Origin` | `TRILIUM_NETWORK_CORS_ALLOW_ORIGIN` | `corsAllowOrigin` | +| `Access-Control-Allow-Methods` | `TRILIUM_NETWORK_CORS_ALLOW_METHODS` | `corsAllowMethods` | +| `Access-Control-Allow-Headers` | `TRILIUM_NETWORK_CORS_ALLOW_HEADERS` | `corsAllowHeaders` | \ No newline at end of file diff --git a/docs/User Guide/User Guide/Advanced Usage/Database/Demo Notes.md b/docs/User Guide/User Guide/Advanced Usage/Database/Demo Notes.md index 895e8b9e89..a8e74fe533 100644 --- a/docs/User Guide/User Guide/Advanced Usage/Database/Demo Notes.md +++ b/docs/User Guide/User Guide/Advanced Usage/Database/Demo Notes.md @@ -13,7 +13,7 @@ There are some cases in which you may want to restore the original demo notes. F You can easily restore the demo notes by using Trilium's built-in import feature by importing them: -* Download [this .zip archive](https://github.com/TriliumNext/Notes/raw/develop/db/demo.zip) with the latest version of the demo notes +* Download [this .zip archive](https://github.com/TriliumNext/Trilium/raw/develop/db/demo.zip) with the latest version of the demo notes * Right click on any note in your tree under which you would like the demo notes to be imported * Click "Import into note" * Select the .zip archive to import it \ No newline at end of file diff --git a/docs/User Guide/User Guide/Advanced Usage/ETAPI (REST API).md b/docs/User Guide/User Guide/Advanced Usage/ETAPI (REST API).md index 2a27f565ed..4ea811020c 100644 --- a/docs/User Guide/User Guide/Advanced Usage/ETAPI (REST API).md +++ b/docs/User Guide/User Guide/Advanced Usage/ETAPI (REST API).md @@ -1,7 +1,7 @@ # ETAPI (REST API) ETAPI is Trilium's public/external REST API. It is available since Trilium v0.50. -The documentation is in OpenAPI format, available [here](https://github.com/TriliumNext/Notes/blob/master/src/etapi/etapi.openapi.yaml). +The documentation is in OpenAPI format, available [here](https://github.com/TriliumNext/Trilium/blob/master/src/etapi/etapi.openapi.yaml). ## API clients @@ -11,7 +11,7 @@ As an alternative to calling the API directly, there are client libraries to sim ## Obtaining a token -All operations with the REST API have to be authenticated using a token. You can get this token either from Options -> ETAPI or programmatically using the `/auth/login` REST call (see the [spec](https://github.com/TriliumNext/Notes/blob/master/src/etapi/etapi.openapi.yaml)). +All operations with the REST API have to be authenticated using a token. You can get this token either from Options -> ETAPI or programmatically using the `/auth/login` REST call (see the [spec](https://github.com/TriliumNext/Trilium/blob/master/src/etapi/etapi.openapi.yaml)). ## Authentication diff --git a/docs/User Guide/User Guide/Advanced Usage/Hidden Notes.md b/docs/User Guide/User Guide/Advanced Usage/Hidden Notes.md index 94713fdd30..99907bb819 100644 --- a/docs/User Guide/User Guide/Advanced Usage/Hidden Notes.md +++ b/docs/User Guide/User Guide/Advanced Usage/Hidden Notes.md @@ -15,4 +15,4 @@ From the 
            NoteDescription
            Note Map

            This note is actually opened when the Note Map feature that is accessed from the Launch Bar.

            It is possible to create any child notes in it without any additional meaning. For example, it can be used to store a list of note maps which can be linked to from other notes or bookmarked.

            SQL Console History

            When SQL queries or commands are executed in the SQL Console, they are stored here, grouped by month. Only the query is stored and not the results.

            This section can be accessed without going to the hidden tree by simply going to the Global menu and selecting Advanced → Open SQL Console History.

            Notes can be added as children of this tree, but it's generally not recommended to do so to not interfere with the normal history process.

            Search History

            Whenever a search is executed from the full Search, the query will be stored here, grouped by month. Only the search parameters are stored and not the results themselves.

            This section can be accessed without going to the hidden tree by simply going to the Global menu and selecting Advanced → Open Search History.

            Notes can be added as children of this tree, but it's generally not recommended to do so to not interfere with the normal history process.

            Bulk Action

            This section is used for Bulk Actions. The last configuration for bulk actions will be stored as part of this note, each action in its own action label.

            Notes can be added as children of this tree, but there won't be any benefit in doing so.

            Backend Log

            This note corresponds to the backend log feature (see Error logs).

            This item can be accessed without going to the hidden try by going to the Global menu and selecting Advanced → Show backend log.

            User HiddenThis section can be used by scripts to create their own notes that should not be directly visible to the user. The note can be identified by scripts by its unique ID: _userHidden
            Launch Bar Templates

            This section contains the templates for the creation of launchers in the Launch Bar. It is not possible to create child notes here.

            Theoretically some of the notes here can be customized, but there's not much benefit to be had in doing so.

            Shared Notes

            This tree lists all of the notes that are shared publicly. It can be useful to track down which notes are shared regardless of their position in the note tree.

            This section can be accessed without going to the hidden tree simply by going to the Global menu and selecting Show Shared Notes Subtree.

            Sub-notes cannot be created here.

            Launch Bar

            The tree contains both available and displayed items of the Launch Bar.

            This section can be accessed without going to the hidden tree by:

            • Going to the Global menu and selecting Configure Launchbar.
            • Right-clicking an empty space on the Launch Bar and selecting Configure Launchbar.

            Sub-notes cannot be created here.

            Options

            This section stores the list of Options.

            This section can be accessed without going to the hidden tree by:

            Mobile Launch Bar

            This is very similar to the Launch Bar, but is dedicated for the mobile UI only.

            Accessing it outside the Launch Bar is the same as the Launch Bar, but needs to be done so from the mobile interface.

            User GuideThis is where the note structure for the User Guide is actually stored. Only the metadata is stored, as the help itself is present as actual files in the application directory.
            \ No newline at end of file +
            NoteDescription
            Note Map

            This note is actually opened when the Note Map feature that is accessed from the Launch Bar.

            It is possible to create any child notes in it without any additional meaning. For example, it can be used to store a list of note maps which can be linked to from other notes or bookmarked.

            SQL Console History

            When SQL queries or commands are executed in the SQL Console, they are stored here, grouped by month. Only the query is stored and not the results.

            This section can be accessed without going to the hidden tree by simply going to the Global menu and selecting Advanced → Open SQL Console History.

            Notes can be added as children of this tree, but it's generally not recommended to do so to not interfere with the normal history process.

            Search History

            Whenever a search is executed from the full Search, the query will be stored here, grouped by month. Only the search parameters are stored and not the results themselves.

            This section can be accessed without going to the hidden tree by simply going to the Global menu and selecting Advanced → Open Search History.

            Notes can be added as children of this tree, but it's generally not recommended to do so to not interfere with the normal history process.

            Bulk Action

            This section is used for Bulk Actions. The last configuration for bulk actions will be stored as part of this note, each action in its own action label.

            Notes can be added as children of this tree, but there won't be any benefit in doing so.

            Backend Log

            This note corresponds to the backend log feature (see Error logs).

            This item can be accessed without going to the hidden try by going to the Global menu and selecting Advanced → Show backend log.

            User HiddenThis section can be used by scripts to create their own notes that should not be directly visible to the user. The note can be identified by scripts by its unique ID: _userHidden
            Launch Bar Templates

            This section contains the templates for the creation of launchers in the Launch Bar. It is not possible to create child notes here.

            Theoretically some of the notes here can be customized, but there's not much benefit to be had in doing so.

            Shared Notes

            This tree lists all of the notes that are shared publicly. It can be useful to track down which notes are shared regardless of their position in the note tree.

            This section can be accessed without going to the hidden tree simply by going to the Global menu and selecting Show Shared Notes Subtree.

            Sub-notes cannot be created here.

            Launch Bar

            The tree contains both available and displayed items of the Launch Bar.

            This section can be accessed without going to the hidden tree by:

            • Going to the Global menu and selecting Configure Launchbar.
            • Right-clicking an empty space on the Launch Bar and selecting Configure Launchbar.

            Sub-notes cannot be created here.

            Options

            This section stores the list of Options.

            This section can be accessed without going to the hidden tree by:

            Mobile Launch Bar

            This is very similar to the Launch Bar, but is dedicated for the mobile UI only.

            Accessing it outside the Launch Bar is the same as the Launch Bar, but needs to be done so from the mobile interface.

            User GuideThis is where the note structure for the User Guide is actually stored. Only the metadata is stored, as the help itself is present as actual files in the application directory.
            \ No newline at end of file diff --git a/docs/User Guide/User Guide/Advanced Usage/Note source.md b/docs/User Guide/User Guide/Advanced Usage/Note source.md index 26986739e8..927f63ce11 100644 --- a/docs/User Guide/User Guide/Advanced Usage/Note source.md +++ b/docs/User Guide/User Guide/Advanced Usage/Note source.md @@ -7,7 +7,7 @@ For example: *
            Text notes are represented internally as HTML, using the CKEditor representation. Note that due to the custom plugins, some HTML elements are specific to Trilium only, for example the admonitions. * Code notes are plain text and are represented internally as-is. -* Geo Map notes contain only minimal information (viewport, zoom) as a JSON. +* Geo Map notes contain only minimal information (viewport, zoom) as a JSON. * Canvas notes are represented as JSON, with Trilium's own information alongside with Excalidraw's internal JSON representation format. * Mind Map notes are represented as JSON, with the internal format of MindElixir. diff --git a/docs/User Guide/User Guide/Advanced Usage/Sharing.md b/docs/User Guide/User Guide/Advanced Usage/Sharing.md index 9e03163f4c..64b5767ddb 100644 --- a/docs/User Guide/User Guide/Advanced Usage/Sharing.md +++ b/docs/User Guide/User Guide/Advanced Usage/Sharing.md @@ -16,7 +16,7 @@ Trilium allows you to share selected notes as **publicly accessible** read-only ### By note type -
             Supported featuresLimitations
            Text
            • Table of contents.
            • Syntax highlight of code blocks, provided a language is selected (does not work if “Auto-detected” is enabled).
            • Rendering for math equations.
            • Including notes is not supported.
            • Inline Mermaid diagrams are not rendered.
            Code
            • Basic support (displaying the contents of the note in a monospace font).
            • No syntax highlight.
            Saved SearchNot supported.
            Relation MapNot supported.
            Note MapNot supported.
            Render NoteNot supported.
            Book
            • The child notes are displayed in a fixed format. 
            • More advanced view types such as the calendar view are not supported.
            Mermaid Diagrams
            • The diagram is displayed as a vector image.
            • No further interaction supported.
            Canvas
            • The diagram is displayed as a vector image.
            • No further interaction supported.
            Web ViewNot supported.
            Mind MapThe diagram is displayed as a vector image.
            • No further interaction supported.
            Geo MapNot supported.
            FileBasic interaction (downloading the file).
            • No further interaction supported.
            +
             Supported featuresLimitations
            Text
            • Table of contents.
            • Syntax highlight of code blocks, provided a language is selected (does not work if “Auto-detected” is enabled).
            • Rendering for math equations.
            • Including notes is not supported.
            • Inline Mermaid diagrams are not rendered.
            Code
            • Basic support (displaying the contents of the note in a monospace font).
            • No syntax highlight.
            Saved SearchNot supported. 
            Relation MapNot supported. 
            Note MapNot supported. 
            Render NoteNot supported. 
            Collections
            • The child notes are displayed in a fixed format. 
            • More advanced view types such as the calendar view are not supported.
            Mermaid Diagrams
            • The diagram is displayed as a vector image.
            • No further interaction supported.
            Canvas
            • The diagram is displayed as a vector image.
            • No further interaction supported.
            Web ViewNot supported. 
            Mind MapThe diagram is displayed as a vector image.
            • No further interaction supported.
            Geo Map ViewNot supported. 
            FileBasic interaction (downloading the file).
            • No further interaction supported.
            While the sharing feature is powerful, it has some limitations: @@ -103,7 +103,7 @@ You can designate a specific note or folder as the root of your shared content b ## Attribute reference -
            AttributeDescription
            shareHiddenFromTreethis note is hidden from left navigation tree, but still accessible with its URL
            shareExternalLinknote will act as a link to an external website in the share tree
            shareAliasdefine an alias using which the note will be available under https://your_trilium_host/share/[your_alias]
            shareOmitDefaultCssdefault share page CSS will be omitted. Use when you make extensive styling changes.
            shareRootmarks note which is served on /share root.
            shareDescriptiondefine text to be added to the HTML meta tag for description
            shareRawNote will be served in its raw format, without HTML wrapper. See also Serving directly the content of a note for an alternative method without setting an attribute.
            shareDisallowRobotIndexing

            Indicates to web crawlers that the page should not be indexed of this note by:

            • Setting the X-Robots-Tag: noindex HTTP header.
            • Setting the noindex, follow meta tag.
            shareCredentialsrequire credentials to access this shared note. Value is expected to be in format username:password. Don't forget to make this inheritable to apply to child-notes/images.
            shareIndexNote with this label will list all roots of shared notes.
            +
            AttributeDescription
            shareHiddenFromTreethis note is hidden from left navigation tree, but still accessible with its URL
            shareExternalLinknote will act as a link to an external website in the share tree
            shareAliasdefine an alias using which the note will be available under https://your_trilium_host/share/[your_alias]
            shareOmitDefaultCssdefault share page CSS will be omitted. Use when you make extensive styling changes.
            shareRootmarks note which is served on /share root.
            shareDescriptiondefine text to be added to the HTML meta tag for description
            shareRawNote will be served in its raw format, without HTML wrapper. See also Serving directly the content of a note for an alternative method without setting an attribute.
            shareDisallowRobotIndexing

            Indicates to web crawlers that the page should not be indexed of this note by:

            • Setting the X-Robots-Tag: noindex HTTP header.
            • Setting the noindex, follow meta tag.
            shareCredentialsrequire credentials to access this shared note. Value is expected to be in format username:password. Don't forget to make this inheritable to apply to child-notes/images.
            shareIndexNote with this label will list all roots of shared notes.
            ## Credits diff --git a/docs/User Guide/User Guide/Advanced Usage/Sharing/Serving directly the content o.md b/docs/User Guide/User Guide/Advanced Usage/Sharing/Serving directly the content o.md index 54531bf318..bb04022596 100644 --- a/docs/User Guide/User Guide/Advanced Usage/Sharing/Serving directly the content o.md +++ b/docs/User Guide/User Guide/Advanced Usage/Sharing/Serving directly the content o.md @@ -1,7 +1,9 @@ # Serving directly the content of a note When accessing a shared note, Trilium will render it as a web page. Sometimes it's desirable to serve the content directly so that it can be used in a script or downloaded by the user. -
            A note displayed as a web page (HTML)A note displayed as a raw format
            +| A note displayed as a web page (HTML) | A note displayed as a raw format | +| --- | --- | +|
            | ![](Serving%20directly%20the%20conte.png) | ## By adding an attribute to the note diff --git a/docs/User Guide/User Guide/Advanced Usage/Technologies used/Leaflet.md b/docs/User Guide/User Guide/Advanced Usage/Technologies used/Leaflet.md index ae773accad..85f4dc9bb0 100644 --- a/docs/User Guide/User Guide/Advanced Usage/Technologies used/Leaflet.md +++ b/docs/User Guide/User Guide/Advanced Usage/Technologies used/Leaflet.md @@ -1,5 +1,5 @@ # Leaflet -Leaflet is the library behind [Geo map](../../Note%20Types/Geo%20Map.md) notes. +Leaflet is the library behind [Geo map](../../Note%20Types/Collections/Geo%20Map%20View.md) notes. ## Plugins diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Import & Export/Evernote.md b/docs/User Guide/User Guide/Basic Concepts and Features/Import & Export/Evernote.md index bda28e61d3..58df4cfe49 100644 --- a/docs/User Guide/User Guide/Basic Concepts and Features/Import & Export/Evernote.md +++ b/docs/User Guide/User Guide/Basic Concepts and Features/Import & Export/Evernote.md @@ -15,4 +15,4 @@ After importing the ENEX file, go over the imported notes and resources to be su All resources (except for images) are created as note's attachments. -HTML inside ENEX files is not exactly valid so some formatting maybe broken or lost. You can report major problems into [Trilium issue tracker](https://github.com/TriliumNext/Notes/issues). \ No newline at end of file +HTML inside ENEX files is not exactly valid so some formatting maybe broken or lost. You can report major problems into [Trilium issue tracker](https://github.com/TriliumNext/Trilium/issues). \ No newline at end of file diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Jump to Note_image.png b/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/1_Jump to_image.png similarity index 100% rename from docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Jump to Note_image.png rename to docs/User Guide/User Guide/Basic Concepts and Features/Navigation/1_Jump to_image.png diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/1_Jump to Note_image.png b/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/2_Jump to_image.png similarity index 100% rename from docs/User Guide/User Guide/Basic Concepts and Features/Navigation/1_Jump to Note_image.png rename to docs/User Guide/User Guide/Basic Concepts and Features/Navigation/2_Jump to_image.png diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Jump to Note.md b/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Jump to Note.md deleted file mode 100644 index 6b5da28547..0000000000 --- a/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Jump to Note.md +++ /dev/null @@ -1,25 +0,0 @@ -# Jump to Note -
            - -The _Jump to Note_ function allows easy navigation between notes by searching for their title. In addition to that, it can also trigger a full search or create notes. - -## Entering jump to note - -* In the Launch Bar, press ![](1_Jump%20to%20Note_image.png) button. -* Using the keyboard, press Ctrl + J. - -## Recent notes - -Jump to note also has the ability to show the list of recently viewed / edited notes and quickly jump to it. - -To access this functionality, click on `Jump to` button on the top. By default, (when nothing is entered into autocomplete), this dialog will show the list of recent notes. - -Alternatively you can click on the "time" icon on the right. - - - -## Interaction - -* By default, when there is no text entered it will display the most recent notes. -* Using the keyboard, use the up or down arrow keys to navigate between items. Press Enter to open the desired note. -* If the note doesn't exist, it's possible to create it by typing the desired note title and selecting the _Create and link child note_ option. \ No newline at end of file diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Jump to Note_recent-notes.gif b/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Jump to Note_recent-notes.gif deleted file mode 100644 index 45d99021ea..0000000000 Binary files a/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Jump to Note_recent-notes.gif and /dev/null differ diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Jump to.md b/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Jump to.md new file mode 100644 index 0000000000..f6175a9afb --- /dev/null +++ b/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Jump to.md @@ -0,0 +1,62 @@ +# Jump to... +
            + +## Jump to Note + +The _Jump to Note_ function allows easy navigation between notes by searching for their title. In addition to that, it can also trigger a full search or create notes. + +To enter the “Jump to” dialog: + +* In the Launch Bar, press ![](2_Jump%20to_image.png) button. +* Using the keyboard, press Ctrl + J. + +In addition to searching for notes, it is also possible to search for commands. See the dedicated section below for more information. + +### Interaction + +* By default, when there is no text entered it will display the most recent notes. +* Using the keyboard, use the up or down arrow keys to navigate between items. Press Enter to open the desired note. +* If the note doesn't exist, it's possible to create it by typing the desired note title and selecting the _Create and link child note_ option. + +## Recent notes + +Jump to note also has the ability to show the list of recently viewed / edited notes and quickly jump to it. + +To access this functionality, click on `Jump to` button on the top. By default, (when nothing is entered into autocomplete), this dialog will show the list of recent notes. + +Alternatively you can click on the "time" icon on the right. + +## Command Palette + +
            + +The command palette is a feature which allows easy execution of various commands that can be found throughout the application, such as from menus or keyboard shortcuts. This feature integrates directly into the “Jump to” dialog. + +### Interaction + +To trigger the command palette: + +* Press Ctrl+Shift+J to display the command palette directly. +* If in the “Jump to” dialog, type `>` in the search to switch to the command palette. + +Interaction: + +* Type a few words to filter between commands. +* Use the up and down arrows on the keyboard or the mouse to select a command. +* Press Enter to execute the command. + +To exit the command palette: + +* Remove the `>` in the search to go back to the note search. +* Press Esc to dismiss the dialog entirely. + +### Options available + +Currently the following options are displayed: + +* Most of the Keyboard Shortcuts have an entry, with the exception of those that are too specific to be run from a dialog. +* Some additional options which are not yet available as keyboard shortcuts, but can be accessed from various menus such as: exporting a note, showing attachments, searching for notes or configuring the Launch Bar. + +### Limitations + +Currently it's not possible to define custom actions that are displayed in the command palette. In the future this might change by integrating the options in the launch bar, which can be customized if needed. \ No newline at end of file diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Jump to_image.png b/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Jump to_image.png new file mode 100644 index 0000000000..707dbc309d Binary files /dev/null and b/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Jump to_image.png differ diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Note Navigation.md b/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Note Navigation.md index 321b9dd23d..94530ed19d 100644 --- a/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Note Navigation.md +++ b/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Note Navigation.md @@ -13,4 +13,4 @@ This works identically to browser backwards / forwards, it's actually using buil This is useful to quickly find and view arbitrary notes - click on `Jump to` button on the top or press Ctrl + J . Then type part of the note name and autocomplete will help you pick the desired note. -See Jump to Note for more information. \ No newline at end of file +See Jump to Note for more information. \ No newline at end of file diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Quick edit.clone.md b/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Quick edit.clone.md new file mode 100644 index 0000000000..c769505f10 --- /dev/null +++ b/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Quick edit.clone.md @@ -0,0 +1,2 @@ +# Quick edit +This is a clone of a note. Go to its [primary location](../UI%20Elements/Quick%20edit.md). \ No newline at end of file diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Quick search.md b/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Quick search.md index a533eef409..e233405cad 100644 --- a/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Quick search.md +++ b/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Quick search.md @@ -5,7 +5,7 @@ The _Quick search_ function does a full-text search (that is, it searches throug The alternative to the quick search is the Search function, which opens in a dedicated tab and has support for advanced queries. -For even faster navigation, it's possible to use Jump to Note which will only search through the note titles instead of the content. +For even faster navigation, it's possible to use Jump to Note which will only search through the note titles instead of the content. ## Layout diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Workspaces.md b/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Workspaces.md index d4f3f1bed0..c01f289b90 100644 --- a/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Workspaces.md +++ b/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Workspaces.md @@ -12,4 +12,12 @@ So far workspace consists of these features: ### Configuration -
            LabelDescription
            workspaceMarks this note as a workspace, button to enter the workspace is controlled by this
            workspaceIconClassdefines box icon CSS class which will be used in tab when hoisted to this note
            workspaceTabBackgroundColorCSS color used in the note tab when hoisted to this note, use any CSS color format, e.g. "lightblue" or "#ddd". See https://www.w3schools.com/cssref/css_colors.asp.
            workspaceCalendarRootMarking a note with this label will define a new per-workspace calendar for Day Notes. If there's no such note, the global calendar will be used.
            workspaceTemplateThis note will appear in the selection of available template when creating new note, but only when hoisted into a workspace containing this template
            workspaceSearchHomenew search notes will be created as children of this note when hoisted to some ancestor of this workspace note
            workspaceInboxdefault inbox location for new notes when hoisted to some ancestor of this workspace note
            \ No newline at end of file +| Label | Description | +| --- | --- | +| `workspace` | Marks this note as a workspace, button to enter the workspace is controlled by this | +| `workspaceIconClass` | defines box icon CSS class which will be used in tab when hoisted to this note | +| `workspaceTabBackgroundColor` | CSS color used in the note tab when hoisted to this note, use any CSS color format, e.g. "lightblue" or "#ddd". See [https://www.w3schools.com/cssref/css\_colors.asp](https://www.w3schools.com/cssref/css_colors.asp). | +| `workspaceCalendarRoot` | Marking a note with this label will define a new per-workspace calendar for Day Notes. If there's no such note, the global calendar will be used. | +| `workspaceTemplate` | This note will appear in the selection of available template when creating new note, but only when hoisted into a workspace containing this template | +| `workspaceSearchHome` | new search notes will be created as children of this note when hoisted to some ancestor of this workspace note | +| `workspaceInbox` | default inbox location for new notes when hoisted to some ancestor of this workspace note | \ No newline at end of file diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/1_Note List_image.png b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/1_Note List_image.png deleted file mode 100644 index 4f0329d42b..0000000000 Binary files a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/1_Note List_image.png and /dev/null differ diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/2_Note List_image.png b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/2_Note List_image.png deleted file mode 100644 index 4b581bbe98..0000000000 Binary files a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/2_Note List_image.png and /dev/null differ diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List.md b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List.md index 8eed85e6a8..1caff1801e 100644 --- a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List.md +++ b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List.md @@ -1,4 +1,6 @@ # Note List +
            + When a note has one or more child notes, they will be listed at the end of the note for easy navigation. ## Configuration @@ -8,32 +10,6 @@ When a note has one or more child notes, they will be listed at the end of the n ## View types -By default, the notes will be displayed in a grid, however there are also some other view types available. +The view types dictate how the child notes are represented. By default, the notes will be displayed in a grid, however there are also some other view types available. -> [!TIP] -> Generally the view type can only be changed in a Book note from the Ribbon, but it can also be changed manually on any type of note using the `#viewType` attribute. - -### Grid view - -
            - -This view presents the child notes in a grid format, allowing for a more visual navigation experience. - -* For Text notes, the text can be slighly scrollable via the mouse wheel to reveal more context. -* For Code notes, syntax highlighting is applied. -* For File notes, a preview is made available for audio, video and PDF notes. -* If the note does not have a content, a list of its child notes will be displayed instead. - -This is the default view type. - -### List view - -
            - -In the list view mode, each note is displayed in a single row with only the title and the icon of the note being visible by the default. By pressing the expand button it's possible to view the content of the note, as well as the children of the note (recursively). - -### Calendar view - -
            - -In the calendar view, child notes are represented as events, with a start date and optionally an end date. The view also has interaction support such as moving or creating new events. See Calendar View for more information. \ No newline at end of file +Generally the view type can only be changed in a Collections note from the Ribbon, but it can also be changed manually on any type of note using the `#viewType` attribute. \ No newline at end of file diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Calendar View.md b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Calendar View.md deleted file mode 100644 index aec8046b99..0000000000 --- a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Calendar View.md +++ /dev/null @@ -1,102 +0,0 @@ -# Calendar View -
            - -The Calendar view of Book notes will display each child note in a calendar that has a start date and optionally an end date, as an event. - -The Calendar view has multiple display modes: - -* Week view, where all the 7 days of the week (or 5 if the weekends are hidden) are displayed in columns. This mode allows entering and displaying time-specific events, not just all-day events. -* Month view, where the entire month is displayed and all-day events can be inserted. Both time-specific events and all-day events are listed. -* Year view, which displays the entire year for quick reference. -* List view, which displays all the events of a given month in sequence. - -Unlike other Book view types, the Calendar view also allows some kind of interaction, such as moving events around as well as creating new ones. - -## Creating a calendar - -
               
            1The Calendar View works only for Book note types. To create a new note, right click on the note tree on the left and select Insert note after, or Insert child note and then select Book.
            2Once created, the “View type” of the Book needs changed to “Calendar”, by selecting the “Book Properties” tab in the ribbon.
            - -## Creating a new event/note - -* Clicking on a day will create a new child note and assign it to that particular day. - * You will be asked for the name of the new note. If the popup is dismissed by pressing the close button or escape, then the note will not be created. -* It's possible to drag across multiple days to set both the start and end date of a particular note. - ![](Calendar%20View_image.png) -* Creating new notes from the calendar will respect the `~child:template` relation if set on the book note. - -## Interacting with events - -* Hovering the mouse over an event will display information about the note. - ![](7_Calendar%20View_image.png) -* Left clicking the event will go to that note. Middle clicking will open the note in a new tab and right click will offer more options including opening the note in a new split or window. -* Drag and drop an event on the calendar to move it to another day. -* The length of an event can be changed by placing the mouse to the right edge of the event and dragging the mouse around. - -## Configuring the calendar - -The following attributes can be added to the book type: - -
            NameDescription
            #calendar:hideWeekendsWhen present (regardless of value), it will hide Saturday and Sundays from the calendar.
            #calendar:weekNumbersWhen present (regardless of value), it will show the number of the week on the calendar.
            #calendar:view

            Which view to display in the calendar:

            • timeGridWeek for the week view;
            • dayGridMonth for the month view;
            • multiMonthYear for the year view;
            • listMonth for the list view.

            Any other value will be dismissed and the default view (month) will be used instead.

            The value of this label is automatically updated when changing the view using the UI buttons.

            ~child:templateDefines the template for newly created notes in the calendar (via dragging or clicking).
            - -In addition, the first day of the week can be either Sunday or Monday and can be adjusted from the application settings. - -## Configuring the calendar events - -For each note of the calendar, the following attributes can be used: - -
            NameDescription
            #startDateThe date the event starts, which will display it in the calendar. The format is YYYY-MM-DD (year, month and day separated by a minus sign).
            #endDateSimilar to startDate, mentions the end date if the event spans across multiple days. The date is inclusive, so the end day is also considered. The attribute can be missing for single-day events.
            #startTimeThe time the event starts at. If this value is missing, then the event is considered a full-day event. The format is HH:MM (hours in 24-hour format and minutes).
            #endTimeSimilar to startTime, it mentions the time at which the event ends (in relation with endDate if present, or startDate).
            #colorDisplays the event with a specified color (named such as red, gray or hex such as #FF0000). This will also change the color of the note in other places such as the note tree.
            #calendar:colorSimilar to #color, but applies the color only for the event in the calendar and not for other places such as the note tree.
            #iconClassIf present, the icon of the note will be displayed to the left of the event title.
            #calendar:titleChanges the title of an event to point to an attribute of the note other than the title, can either a label or a relation (without the # or ~ symbol). See Use-cases for more information.
            #calendar:displayedAttributesAllows displaying the value of one or more attributes in the calendar like this:    

              

            #weight="70" #Mood="Good" #calendar:displayedAttributes="weight,Mood"  

            It can also be used with relations, case in which it will display the title of the target note:   

            ~assignee=@My assignee #calendar:displayedAttributes="assignee"
            #calendar:startDateAllows using a different label to represent the start date, other than startDate (e.g. expiryDate). The label name must not be prefixed with #. If the label is not defined for a note, the default will be used instead.
            #calendar:endDateSimilar to #calendar:startDate, allows changing the attribute which is being used to read the end date.
            #calendar:startTimeSimilar to #calendar:startDate, allows changing the attribute which is being used to read the start time.
            #calendar:endTimeSimilar to #calendar:startDate, allows changing the attribute which is being used to read the end time.
            - -## How the calendar works - -![](11_Calendar%20View_image.png) - -The calendar displays all the child notes of the book that have a `#startDate`. An `#endDate` can optionally be added. - -If editing the start date and end date from the note itself is desirable, the following attributes can be added to the book note: - -``` -#viewType=calendar #label:startDate(inheritable)="promoted,alias=Start Date,single,date" -#label:endDate(inheritable)="promoted,alias=End Date,single,date" -#hidePromotedAttributes -``` - -This will result in: - -![](10_Calendar%20View_image.png) - -When not used in a Journal, the calendar is recursive. That is, it will look for events not just in its child notes but also in the children of these child notes. - -## Use-cases - -### Using with the Journal / calendar - -It is possible to integrate the calendar view into the Journal with day notes. In order to do so change the note type of the Journal note (calendar root) to Book and then select the Calendar View. - -Based on the `#calendarRoot` (or `#workspaceCalendarRoot`) attribute, the calendar will know that it's in a calendar and apply the following: - -* The calendar events are now rendered based on their `dateNote` attribute rather than `startDate`. -* Interactive editing such as dragging over an empty era or resizing an event is no longer possible. -* Clicking on the empty space on a date will automatically open that day's note or create it if it does not exist. -* Direct children of a day note will be displayed on the calendar despite not having a `dateNote` attribute. Children of the child notes will not be displayed. - - - -### Using a different attribute as event title - -By default, events are displayed on the calendar by their note title. However, it is possible to configure a different attribute to be displayed instead. - -To do so, assign `#calendar:title` to the child note (not the calendar/book note), with the value being `name` where `name` can be any label (make not to add the `#` prefix). The attribute can also come through inheritance such as a template attribute. If the note does not have the requested label, the title of the note will be used instead. - -
              
            #startDate=2025-02-11 #endDate=2025-02-13 #name="My vacation" #calendar:title="name"

             

            - -### Using a relation attribute as event title - -Similarly to using an attribute, use `#calendar:title` and set it to `name` where `name` is the name of the relation to use. - -Moreover, if there are more relations of the same name, they will be displayed as multiple events coming from the same note. - -
              
            #startDate=2025-02-14 #endDate=2025-02-15 ~for=@John Smith ~for=@Jane Doe #calendar:title="for"
            - -Note that it's even possible to have a `#calendar:title` on the target note (e.g. “John Smith”) which will try to render an attribute of it. Note that it's not possible to use a relation here as well for safety reasons (an accidental recursion  of attributes could cause the application to loop infinitely). - -
              
            #calendar:title="shortName" #shortName="John S."
            \ No newline at end of file diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Table.md b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Table.md deleted file mode 100644 index 26e33353a7..0000000000 --- a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Table.md +++ /dev/null @@ -1,83 +0,0 @@ -# Table -
            - -The table view displays information in a grid, where the rows are individual notes and the columns are Promoted Attributes. In addition, values are editable. - -## Interaction - -### Creating a new table - -Right click the Note Tree and select _Insert child note_ and look for the _Table item_. - -### Adding columns - -Each column is a [promoted attribute](../../../Advanced%20Usage/Attributes/Promoted%20Attributes.md) that is defined on the Book note. Ideally, the promoted attributes need to be inheritable in order to show up in the child notes. - -To create a new column, simply press _Add new column_ at the bottom of the table. - -There are also a few predefined columns: - -* The current item number, identified by the `#` symbol. This simply counts the note and is affected by sorting. -* Note ID, representing the unique ID used internally by Trilium -* The title of the note. - -### Adding new rows - -Each row is actually a note that is a child of the book note. - -To create a new note, press _Add new row_ at the bottom of the table. By default it will try to edit the title of the newly created note. - -Alternatively, the note can be created from theNote Tree or [scripting](../../../Scripting.md). - -### Editing data - -Simply click on a cell within a row to change its value. The change will not only reflect in the table, but also as an attribute of the corresponding note. - -* The editing will respect the type of the promoted attribute, by presenting a normal text box, a number selector or a date selector for example. -* It also possible to change the title of a note. -* Editing relations is also possible, by using the note autocomplete. - -## Working with the data - -### Sorting - -It is possible to sort the data by the values of a column: - -* To do so, simply click on a column. -* To switch between ascending or descending sort, simply click again on the same column. The arrow next to the column will indicate the direction of the sort. - -### Reordering and hiding columns - -* Columns can be reordered by dragging the header of the columns. -* Columns can be hidden or shown by right clicking on a column and clicking the item corresponding to the column. - -### Reordering rows - -Notes can be dragged around to change their order. This will also change the order of the note in the Note Tree. - -Currently, it's possible to reorder notes even if sorting is used, but the result might be inconsistent. - -## Limitations - -The table functionality is still in its early stages, as such it faces quite a few important limitations: - -1. As mentioned previously, the columns of the table are defined as Promoted Attributes. - 1. But only the promoted attributes that are defined at the level of the Book note are actually taken into consideration. - 2. There are plans to recursively look for columns across the sub-hierarchy. -2. Hierarchy is not yet supported, so the table will only show the items that are direct children of the _Book_ note. -3. Multiple labels and relations are not supported. If a Promoted Attributes is defined with a _Multi value_ specificity, they will be ignored. - -## Use in search - -The table view can be used in a Saved Search by adding the `#viewType=table` attribute. - -Unlike when used in a book, saved searches are not limited to the sub-hierarchy of a note and allows for advanced queries thanks to the power of the Search. - -However, there are also some limitations: - -* It's not possible to reorder notes. -* It's not possible to add a new row. - -Columns are supported, by being defined as Promoted Attributes to the Saved Search note. - -Editing is also supported. \ No newline at end of file diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List_image.png b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List_image.png index b0a8e157b0..8de2914c1c 100644 Binary files a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List_image.png and b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List_image.png differ diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Read-Only Notes.md b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Read-Only Notes.md index 7811c5d6c4..0163c1b78b 100644 --- a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Read-Only Notes.md +++ b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Read-Only Notes.md @@ -39,4 +39,5 @@ When pressed, the note will become editable but will become read-only again afte Some note types have a special behavior based on whether the read-only mode is enabled: -* Mermaid Diagrams will hide the Mermaid source code and display the diagram preview in full-size. In this case, the read-only mode can be easily toggled on or off via a dedicated button in the Floating buttons area. \ No newline at end of file +* Mermaid Diagrams will hide the Mermaid source code and display the diagram preview in full-size. In this case, the read-only mode can be easily toggled on or off via a dedicated button in the Floating buttons area. +* Geo Map View will disallow all interaction that would otherwise change the map (dragging notes, adding new items). \ No newline at end of file diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Themes/Theme Gallery.md b/docs/User Guide/User Guide/Basic Concepts and Features/Themes/Theme Gallery.md index 9301699367..34a7811a05 100644 --- a/docs/User Guide/User Guide/Basic Concepts and Features/Themes/Theme Gallery.md +++ b/docs/User Guide/User Guide/Basic Concepts and Features/Themes/Theme Gallery.md @@ -5,7 +5,26 @@ These are user-created themes which were made publicly available: These themes may or may not be compatible with the latest versions of TriliumNext and are based on the original/legacy theme. -
            ThemeAuthor
            Midnighttobealive
            EOTEtobealive
            Trilium ThemesAbourass
            MaterialDarkZMonk91
            lightslategrayjaroet
            melon-4raphwriter
            Neon_DarkEngr-AllanG
            Coder_DarkEngr-AllanG
            velvetidelem
            Dark PlusSADAVA
            SolarizedWKSu
            Norden3r0
            Bear Note LightAllanZyne
            Bear Note DarkAllanZyne
            Miku HatsuneSebiann
            Midnightcwilliams5
            Blue (light)SiriusXT
            Blue (dark)SiriusXT
            +| Theme | Author | +| --- | --- | +| [Midnight](https://github.com/tobealive/trilium-midnight-theme) | [tobealive](https://github.com/tobealive) | +| [EOTE](https://github.com/tobealive/trilum-eote-theme) | [tobealive](https://github.com/tobealive) | +| [Trilium Themes](https://github.com/Abourass/TriliumThemes) | [Abourass](https://github.com/Abourass) | +| [MaterialDark](https://github.com/ZMonk91/Material-Dark-Trilium) | [ZMonk91](https://github.com/ZMonk91) | +| [lightslategray](https://github.com/jaroet/trilium-theme-lightslategray) | [jaroet](https://github.com/jaroet) | +| [melon-4](https://github.com/raphwriter/trilium-theme-melon) | [raphwriter](https://github.com/raphwriter) | +| [Neon\_Dark](https://github.com/Engr-AllanG/trilium-themes) | [Engr-AllanG](https://github.com/Engr-AllanG) | +| [Coder\_Dark](https://github.com/Engr-AllanG/trilium-themes) | [Engr-AllanG](https://github.com/Engr-AllanG) | +| [velvet](https://github.com/idelem/trilium-theme-velvet) | [idelem](https://github.com/idelem) | +| [Dark Plus](https://github.com/SADAVA/trilium-notes-theme-dark-plus) | [SADAVA](https://github.com/SADAVA) | +| [Solarized](https://github.com/WKSu/trilium-solarized-theme) | [WKSu](https://github.com/WKSu) | +| [Nord](https://github.com/en3r0/Trilium-Nord-Theme) | [en3r0](https://github.com/en3r0) | +| [Bear Note Light](https://github.com/AllanZyne/trilium-bear-theme) | [AllanZyne](https://github.com/AllanZyne) | +| [Bear Note Dark](https://github.com/AllanZyne/trilium-bear-theme) | [AllanZyne](https://github.com/AllanZyne) | +| [Miku Hatsune](https://github.com/Sebiann/miku-hatsune-trilium-theme) | [Sebiann](https://github.com/Sebiann) | +| [Midnight](https://github.com/cwilliams5/Midnight-Trilium-Dark-Mode) | [cwilliams5](https://github.com/cwilliams5) | +| [Blue](https://github.com/SiriusXT/trilium-theme-blue) (light) | [SiriusXT](https://github.com/SiriusXT) | +| [Blue](https://github.com/SiriusXT/trilium-theme-blue) (dark) | [SiriusXT](https://github.com/SiriusXT) | > [!TIP] -> If you would like to add your theme to this gallery, write a new post in [👐 Show and tell](https://github.com/TriliumNext/Notes/discussions/categories/show-and-tell). \ No newline at end of file +> If you would like to add your theme to this gallery, write a new post in [👐 Show and tell](https://github.com/TriliumNext/Trilium/discussions/categories/show-and-tell). \ No newline at end of file diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tooltip.md b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tooltip.md new file mode 100644 index 0000000000..dbdf139e8e --- /dev/null +++ b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tooltip.md @@ -0,0 +1,21 @@ +# Note Tooltip +
            + +The note tooltip is a convenience feature which displays a popup when hovering over an [internal link](../../Note%20Types/Text/Links/Internal%20\(reference\)%20links.md) to another note. + +The following information is displayed: + +* The note path, at the top of the popup. +* The title of the note. + * Clicking on the title will open the note in the current tab. + * Holding Ctrl pressed while clicking the title will open in a new tab instead of the current one. +* A snippet of the content will be displayed as well. +* A button to [quickly edit](Quick%20edit.md) the note in a popup. + +The tooltip can be found in multiple places, including: + +* In Text notes, when hovering over Internal (reference) links . +* Collections:  + * Geo Map View, when hovering over a marker. + * Calendar View, when hovering over an event. + * Table View, when hovering over a note title, or over a [relation](../../Advanced%20Usage/Attributes/Relations.md). \ No newline at end of file diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tooltip_image.png b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tooltip_image.png new file mode 100644 index 0000000000..049a07d61b Binary files /dev/null and b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tooltip_image.png differ diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree.md b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree.md index 24014253ca..edd0470e00 100644 --- a/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree.md +++ b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree.md @@ -22,4 +22,8 @@ You can easily rearrange the note tree by dragging and dropping notes, as demons You can also move notes using the familiar cut and paste functions available in the context menu, or with the associated keyboard [shortcuts](../Keyboard%20Shortcuts.md): `CTRL-C` ( [copy](../Notes/Cloning%20Notes.md)), Ctrl + X (cut) and Ctrl + V (paste). -See Note Tree Menu for more information. \ No newline at end of file +See Note tree contextual menu for more information. + +## Keyboard shortcuts + +The note tree comes with multiple keyboard shortcuts to make editing faster, consult the dedicated Keyboard shortcuts section. \ No newline at end of file diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/1_Note tree contextual menu_.png b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/1_Note tree contextual menu_.png index f36081d10d..cd9f40c1cb 100644 Binary files a/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/1_Note tree contextual menu_.png and b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/1_Note tree contextual menu_.png differ diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Keyboard shortcuts.md b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Keyboard shortcuts.md new file mode 100644 index 0000000000..faec3ac7a5 --- /dev/null +++ b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Keyboard shortcuts.md @@ -0,0 +1,17 @@ +# Keyboard shortcuts +The Note Tree comes with multiple keyboard shortcuts to make editing faster: + +* Opening notes: + * Click to open the note in the current tab. + * Ctrl+Click or Middle click to open the note in a new tab. + * Ctrl+Right click to open the note in Quick edit. +* Navigation within the tree: + * Up and Down to navigate between notes. + * Left to collapse a note, or Right to expand it. +* Clipboard management: + * Ctrl+C to copy a note. + * Ctrl+X to cut a note. + * Ctrl+V to paste it somewhere. +* For Multiple selection: + * Alt+Clickto add a single note to the current selection. + * Shift+Clickto select a range of notes, starting from the current note (the highlighted one) to the one that is being clicked. \ No newline at end of file diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu.md b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu.md index 31c92c9b6e..2df2536cf2 100644 --- a/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu.md +++ b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu.md @@ -1,5 +1,5 @@ # Note tree contextual menu -
            +
            The _note tree menu_ can be accessed by right-clicking in the Note Tree. @@ -48,6 +48,10 @@ The contextual menu can operate: * Will display a modal to specify where to move the desired notes. * **Clone to…** * Will display a modal to specify where to [clone](../../Notes/Cloning%20Notes.md) the desired notes. +* **Duplicate** + * Creates a copy of the note and its descendants. + * This process is different from Cloning Notes since the duplicated note can be edited independently from the original. + * An alternative to this, if done regularly, would be Templates. * **Delete** * Will delete the given notes, asking for confirmation first. * In the dialog, the following options can be configured: @@ -62,7 +66,7 @@ The contextual menu can operate: ## Advanced options -
            +
            The advanced options menu offers some of the less frequently used actions for notes. @@ -75,10 +79,6 @@ To access these options, first look for the _Advanced_ option in the contextual * **Convert to attachment** * Converts the selected notes to Attachments of their parent notes. * This functional is most useful when dealing with image File notes that were imported from an external source or an older version of Trilium. -* **Duplicate subtree** - * Creates a copy of the note and its descendants. - * This process is different from Cloning Notes since the duplicated note can be edited independently from the original. - * An alternative to this, if done regularly, would be Templates. * **Expand subtree** * Expands all the child notes in the Note Tree. * **Collapse subtree** diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu_.png b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu_.png index afbc96c251..51683bdc0f 100644 Binary files a/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu_.png and b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu_.png differ diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Quick edit.md b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Quick edit.md new file mode 100644 index 0000000000..d844f74a1b --- /dev/null +++ b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Quick edit.md @@ -0,0 +1,33 @@ +# Quick edit +
            + +_Quick edit_ provides an alternative to the standard tab-based navigation and editing. + +Instead of clicking on a note which switches the Note Tree to the newly selected note, or navigating between two different Tabs, the _Quick edit_ feature opens as a popup window that can be easily dismissed. + +This feature is also well integrated with Collections such as the calendar view, which makes it easy to edit entries without having to go back and forth between the child note and the calendar. + +## Feature highlights + +* All note types are supported, including Collections. +* Note that the Note List will not be displayed, except for notes of type Collections. +* For Text notes, depending on user preference, both the floating and classic editors are supported. See Formatting toolbar. +* The title and the note and the icon are editable, just like a normal tab. +* The Promoted Attributes are also displayed. + * This integrates well with Collections where there are predefined attributes such as the _Start date_ and _End date_, allowing for easy editing. + +## Accessing the quick edit + +* From the Note Tree: + * Right click on a note and select _Quick edit_. + * or, press Ctrl+Right click on a note. +* On Internal (reference) links:  + * Right click and select _Quick edit_. + * or, press Ctrl+Right click on the link. +* On a Note Tooltip, press the quick edit icon. +* In Collections: + * For Calendar View: + * Clicking on an event will open that event for quick editing. + * If the calendar is for the Day Notes root, clicking on the day number will open the popup for that day note. + * For Geo Map View: + * Clicking on a marker will open that marker, but only if the map is in read-only mode. \ No newline at end of file diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Quick edit_image.png b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Quick edit_image.png new file mode 100644 index 0000000000..89882f216e Binary files /dev/null and b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Quick edit_image.png differ diff --git a/docs/User Guide/User Guide/Feature Highlights.md b/docs/User Guide/User Guide/Feature Highlights.md new file mode 100644 index 0000000000..7cedd84f1e --- /dev/null +++ b/docs/User Guide/User Guide/Feature Highlights.md @@ -0,0 +1,32 @@ +# Feature Highlights +This section presents the most important changes by version. For a full set of changes, please consult the change log of each release. For purposes of brevity, beta versions are skipped and the features gathered to the nearest stable version. + +* v0.97.0: + * Books are now Collections. + * Table View is a new collection type displaying notes and attributes in an editable grid. + * Quick edit is introduced, adding a new way to edit notes in a popup instead of opening a new tab. It also integrates well with Collections. +* v0.96.0: + * Text gain premium features thanks to a collaboration with the CKEditor team: + * Slash Commands + * Text Snippets +* v0.95.0: + * A more friendly theme was introduced for Sharing, with search, expandable tree, night mode and more. +* v0.94.0: + * Added integration with AI (using self-hosted LLMs such as Ollama or industry standards such as ChatGPT). +* v0.92.5: + * Windows binaries are now signed. + * Multi-Factor Authentication was introduced. +* v0.92.4: + * macOS binaries are now signed. + * Text notes can now have adjustable Content language & Right-to-left support. + * Export as PDF + * Zen mode + * Calendar View, allowing notes to be displayed in a monthly grid based on start and end dates. +* v0.91.5: + * Significant improvements for mobile. + * Footnotes are now supported in Text notes. + * Mermaid diagrams can now be inserted inline within Text notes. + * The TriliumNext theme is introduced, bringing a more modern design to the application. + * Geo Map View, displaying notes as markers on a geographical map for easy trip planning. +* v0.90.8: + * A new note type was introduced: Mind Map \ No newline at end of file diff --git a/docs/User Guide/User Guide/Installation & Setup/Backup.md b/docs/User Guide/User Guide/Installation & Setup/Backup.md index 943185f3a0..699ca0e009 100644 --- a/docs/User Guide/User Guide/Installation & Setup/Backup.md +++ b/docs/User Guide/User Guide/Installation & Setup/Backup.md @@ -40,4 +40,4 @@ noBackup=true You can also review the [configuration](../Advanced%20Usage/Configuration%20\(config.ini%20or%20e.md) file to provide all `config.ini` values as environment variables instead. -See [sample config](https://github.com/TriliumNext/Notes/blob/master/config-sample.ini). \ No newline at end of file +See [sample config](https://github.com/TriliumNext/Trilium/blob/master/config-sample.ini). \ No newline at end of file diff --git a/docs/User Guide/User Guide/Installation & Setup/Desktop Installation.md b/docs/User Guide/User Guide/Installation & Setup/Desktop Installation.md index 653e06d918..6b8ed9e97c 100644 --- a/docs/User Guide/User Guide/Installation & Setup/Desktop Installation.md +++ b/docs/User Guide/User Guide/Installation & Setup/Desktop Installation.md @@ -1,7 +1,7 @@ # Desktop Installation To install Trilium on your desktop, follow these steps: -1. **Download the Latest Release**: Obtain the appropriate binary release for your operating system from the [latest release page](https://github.com/TriliumNext/Notes/releases/latest) on GitHub. +1. **Download the Latest Release**: Obtain the appropriate binary release for your operating system from the [latest release page](https://github.com/TriliumNext/Trilium/releases/latest) on GitHub. 2. **Extract the Package**: Unzip the downloaded package to a location of your choice. 3. **Run the Application**: Launch Trilium by executing the `trilium` executable found within the unzipped folder. diff --git a/docs/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Manually.md b/docs/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Manually.md index 404262525c..580892b5cb 100644 --- a/docs/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Manually.md +++ b/docs/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Manually.md @@ -26,12 +26,12 @@ sudo apt install libpng16-16 libpng-dev pkg-config autoconf libtool build-essent ### Download -You can either download source code zip/tar from [https://github.com/TriliumNext/Notes/releases/latest](https://github.com/TriliumNext/Notes/releases/latest). +You can either download source code zip/tar from [https://github.com/TriliumNext/Trilium/releases/latest](https://github.com/TriliumNext/Trilium/releases/latest). For the latest version including betas, clone Git repository **from** `main` **branch** with: ``` -git clone -b main https://github.com/triliumnext/notes.git +git clone -b main https://github.com/triliumnext/trilium.git ``` ## Installation diff --git a/docs/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Packaged version for Linux.md b/docs/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Packaged version for Linux.md index 88386a9f39..5b2273983d 100644 --- a/docs/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Packaged version for Linux.md +++ b/docs/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Packaged version for Linux.md @@ -4,7 +4,7 @@ This is essentially Trilium sources + node modules + node.js runtime packaged in ## Steps * SSH into your server -* use `wget` (or `curl`) to download latest `TriliumNotes-Server-[VERSION]-linux-x64.tar.xz` (copy link from [release page](https://github.com/TriliumNext/Notes/releases), notice `-Server` suffix) on your server. +* use `wget` (or `curl`) to download latest `TriliumNotes-Server-[VERSION]-linux-x64.tar.xz` (copy link from [release page](https://github.com/TriliumNext/Trilium/releases), notice `-Server` suffix) on your server. * unpack the archive, e.g. using `tar -xf -d TriliumNotes-Server-[VERSION]-linux-x64.tar.xz` * `cd trilium-linux-x64-server` * `./trilium.sh` diff --git a/docs/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Using Docker.md b/docs/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Using Docker.md index 0f711f89e2..cefbd41bbe 100644 --- a/docs/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Using Docker.md +++ b/docs/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Using Docker.md @@ -1,5 +1,5 @@ # Using Docker -Official docker images are published on docker hub for **AMD64**, **ARMv7** and **ARM64/v8**: [https://hub.docker.com/r/triliumnext/notes/](https://hub.docker.com/r/triliumnext/notes/) +Official docker images are published on docker hub for **AMD64**, **ARMv7** and **ARM64/v8**: [https://hub.docker.com/r/triliumnext/trilium/](https://hub.docker.com/r/triliumnext/trilium/) ## Prerequisites @@ -17,7 +17,7 @@ If you need help installing Docker, reference the [Docker Installation Docs](htt ### Grab the latest docker-compose.yml: ``` -wget https://raw.githubusercontent.com/TriliumNext/Notes/master/docker-compose.yml +wget https://raw.githubusercontent.com/TriliumNext/Trilium/master/docker-compose.yml ``` Optionally, edit the `docker-compose.yml` file to configure the container settings prior to starting it. Unless configured otherwise, the data directory will be `~/trilium-data` and the container will be accessible at port 8080. @@ -34,10 +34,10 @@ docker compose up -d ### Pulling the Docker Image -To pull the image, use the following command, replacing `[VERSION]` with the desired version or tag, such as `v0.91.6` or just `latest`. (See published tag names at [https://hub.docker.com/r/triliumnext/notes/tags](https://hub.docker.com/r/triliumnext/notes/tags).): +To pull the image, use the following command, replacing `[VERSION]` with the desired version or tag, such as `v0.91.6` or just `latest`. (See published tag names at [https://hub.docker.com/r/triliumnext/trilium/tags](https://hub.docker.com/r/triliumnext/trilium/tags).): ``` -docker pull triliumnext/notes:v0.91.6 +docker pull triliumnext/trilium:v0.91.6 ``` **Warning:** Avoid using the "latest" tag, as it may automatically upgrade your instance to a new minor version, potentially disrupting sync setups or causing other issues. @@ -53,7 +53,7 @@ Trilium requires a directory on the host system to store its data. This director Run the container to make it accessible only from the localhost. This setup is suitable for testing or when using a proxy server like Nginx or Apache. ``` -sudo docker run -t -i -p 127.0.0.1:8080:8080 -v ~/trilium-data:/home/node/trilium-data triliumnext/notes:[VERSION] +sudo docker run -t -i -p 127.0.0.1:8080:8080 -v ~/trilium-data:/home/node/trilium-data triliumnext/trilium:[VERSION] ``` 1. Verify the container is running using `docker ps`. @@ -70,13 +70,13 @@ docker network create -d macvlan -o parent=eth0 --subnet 192.168.2.0/24 --gatewa Then, run the container with the network settings: ``` -docker run --net=mynet -d -p 127.0.0.1:8080:8080 -v ~/trilium-data:/home/node/trilium-data triliumnext/notes:-latest +docker run --net=mynet -d -p 127.0.0.1:8080:8080 -v ~/trilium-data:/home/node/trilium-data triliumnext/trilium:-latest ``` To set a different user ID (UID) and group ID (GID) for the saved data, use the `USER_UID` and `USER_GID` environment variables: ``` -docker run --net=mynet -d -p 127.0.0.1:8080:8080 -e "USER_UID=1001" -e "USER_GID=1001" -v ~/trilium-data:/home/node/trilium-data triliumnext/notes:-latest +docker run --net=mynet -d -p 127.0.0.1:8080:8080 -e "USER_UID=1001" -e "USER_GID=1001" -v ~/trilium-data:/home/node/trilium-data triliumnext/trilium:-latest ``` Find the local IP address using `docker inspect [container_name]` and access the service from devices on the local network. @@ -91,7 +91,7 @@ docker inspect [container_name] To allow access from any IP address, run the container as follows: ``` -docker run -d -p 0.0.0.0:8080:8080 -v ~/trilium-data:/home/node/trilium-data triliumnext/notes:[VERSION] +docker run -d -p 0.0.0.0:8080:8080 -v ~/trilium-data:/home/node/trilium-data triliumnext/trilium:[VERSION] ``` Stop the container with `docker stop `, where the container ID is obtained from `docker ps`. @@ -101,10 +101,10 @@ Stop the container with `docker stop `, where the container ID is For a custom data directory, use: ``` --v ~/YourOwnDirectory:/home/node/trilium-data triliumnext/notes:[VERSION] +-v ~/YourOwnDirectory:/home/node/trilium-data triliumnext/trilium:[VERSION] ``` -If you want to run your instance in a non-default way, please use the volume switch as follows: `-v ~/YourOwnDirectory:/home/node/trilium-data triliumnext/notes:`. It is important to be aware of how Docker works for volumes, with the first path being your own and the second the one to virtually bind to. [https://docs.docker.com/storage/volumes/](https://docs.docker.com/storage/volumes/) The path before the colon is the host directory, and the path after the colon is the container's path. More details can be found in the [Docker Volumes Documentation](https://docs.docker.com/storage/volumes/). +If you want to run your instance in a non-default way, please use the volume switch as follows: `-v ~/YourOwnDirectory:/home/node/trilium-data triliumnext/trilium:`. It is important to be aware of how Docker works for volumes, with the first path being your own and the second the one to virtually bind to. [https://docs.docker.com/storage/volumes/](https://docs.docker.com/storage/volumes/) The path before the colon is the host directory, and the path after the colon is the container's path. More details can be found in the [Docker Volumes Documentation](https://docs.docker.com/storage/volumes/). ## Reverse Proxy @@ -132,10 +132,10 @@ Below are some commands to pull the rootless images: ``` # For Debian-based image -docker pull triliumnext/notes:rootless +docker pull triliumnext/trilium:rootless # For Alpine-based image -docker pull triliumnext/notes:rootless-alpine +docker pull triliumnext/trilium:rootless-alpine ``` ### Why Rootless? @@ -171,13 +171,13 @@ TRILIUM_DATA_DIR=/path/to/your/data TRILIUM_UID=$(id -u) TRILIUM_GID=$(id -g) do ``` # Build the image -docker build -t triliumnext/notes:rootless -f apps/server/Dockerfile.rootless . +docker build -t triliumnext/trilium:rootless -f apps/server/Dockerfile.rootless . # Run with default UID/GID (1000:1000) -docker run -d --name trilium -p 8080:8080 -v ~/trilium-data:/home/trilium/trilium-data triliumnext/notes:rootless +docker run -d --name trilium -p 8080:8080 -v ~/trilium-data:/home/trilium/trilium-data triliumnext/trilium:rootless # Run with custom UID/GID -docker run -d --name trilium -p 8080:8080 --user $(id -u):$(id -g) -v ~/trilium-data:/home/trilium/trilium-data triliumnext/notes:rootless +docker run -d --name trilium -p 8080:8080 --user $(id -u):$(id -g) -v ~/trilium-data:/home/trilium/trilium-data triliumnext/trilium:rootless ``` @@ -224,11 +224,11 @@ If you would prefer, you can also customize the UID/GID at build time: ``` # For Debian-based image with custom UID/GID docker build --build-arg USER=myuser --build-arg UID=1001 --build-arg GID=1001 \ - -t triliumnext/notes:rootless-custom -f apps/server/Dockerfile.rootless . + -t triliumnext/trilium:rootless-custom -f apps/server/Dockerfile.rootless . # For Alpine-based image with custom UID/GID docker build --build-arg USER=myuser --build-arg UID=1001 --build-arg GID=1001 \ - -t triliumnext/notes:alpine-rootless-custom -f apps/server/Dockerfile.alpine.rootless . + -t triliumnext/trilium:alpine-rootless-custom -f apps/server/Dockerfile.alpine.rootless . ``` @@ -236,4 +236,4 @@ Available build arguments: * `USER`: Username for the non-root user (default: trilium) * `UID`: User ID for the non-root user (default: 1000) -* `GID`: Group ID for the non-root user (default: 1000) \ No newline at end of file +* `GID`: Group ID for the non-root user (default: 1000) diff --git a/docs/User Guide/User Guide/Installation & Setup/Server Installation/2. Reverse proxy/Apache.md b/docs/User Guide/User Guide/Installation & Setup/Server Installation/2. Reverse proxy/Apache.md index 248775e6ee..93f54da100 100644 --- a/docs/User Guide/User Guide/Installation & Setup/Server Installation/2. Reverse proxy/Apache.md +++ b/docs/User Guide/User Guide/Installation & Setup/Server Installation/2. Reverse proxy/Apache.md @@ -4,8 +4,8 @@ I've assumed you have created a DNS A record for `trilium.yourdomain.com` that y 1. Download docker image and create container ``` - docker pull triliumnext/notes:[VERSION] - docker create --name trilium -t -p 127.0.0.1:8080:8080 -v ~/trilium-data:/home/node/trilium-data triliumnext/notes:[VERSION] + docker pull triliumnext/trilium:[VERSION] + docker create --name trilium -t -p 127.0.0.1:8080:8080 -v ~/trilium-data:/home/node/trilium-data triliumnext/trilium:[VERSION] ``` 2. Configure Apache proxy and websocket proxy diff --git a/docs/User Guide/User Guide/Installation & Setup/Upgrading TriliumNext.md b/docs/User Guide/User Guide/Installation & Setup/Upgrading TriliumNext.md index e51a815868..a98917ba39 100644 --- a/docs/User Guide/User Guide/Installation & Setup/Upgrading TriliumNext.md +++ b/docs/User Guide/User Guide/Installation & Setup/Upgrading TriliumNext.md @@ -6,7 +6,7 @@ This document outlines the steps required to upgrade Trilium to a new release ve Trilium does not support built-in automatic upgrades; all updates must be performed manually. The upgrade process varies depending on the installation method: * [**Docker Server Installation**](Server%20Installation/1.%20Installing%20the%20server/Using%20Docker.md): Pull the new image and restart the container. -* **Other Installations**: Download the latest version from the [release page](https://github.com/TriliumNext/Notes/releases/latest) and replace the existing application files. +* **Other Installations**: Download the latest version from the [release page](https://github.com/TriliumNext/Trilium/releases/latest) and replace the existing application files. ## Database Compatibility and Migration diff --git a/docs/User Guide/User Guide/Note Types.md b/docs/User Guide/User Guide/Note Types.md index 71e510a111..9912d9fc74 100644 --- a/docs/User Guide/User Guide/Note Types.md +++ b/docs/User Guide/User Guide/Note Types.md @@ -25,4 +25,18 @@ It is possible to change the type of a note after it has been created via the _B The following note types are supported by Trilium: -
            Note TypeDescription
            TextThe default note type, which allows for rich text formatting, images, admonitions and right-to-left support.
            CodeUses a mono-space font and can be used to store larger chunks of code or plain text than a text note, and has better syntax highlighting.
            Saved SearchStores the information about a search (the search text, criteria, etc.) for later use. Can be used for quick filtering of a large amount of notes, for example. The search can easily be triggered.
            Relation MapAllows easy creation of notes and relations between them. Can be used for mainly relational data such as a family tree.
            Note MapDisplays the relationships between the notes, whether via relations or their hierarchical structure.
            Render NoteUsed in Scripting, it displays the HTML content of another note. This allows displaying any kind of content, provided there is a script behind it to generate it.
            Book

            Displays the children of the note either as a grid, a list, or for a more specialized case: a calendar.

            Generally useful for easy reading of short notes.

            Mermaid DiagramsDisplays diagrams such as bar charts, flow charts, state diagrams, etc. Requires a bit of technical knowledge since the diagrams are written in a specialized format.
            CanvasAllows easy drawing of sketches, diagrams, handwritten content. Uses the same technology behind excalidraw.com.
            Web ViewDisplays the content of an external web page, similar to a browser.
            Mind MapEasy for brainstorming ideas, by placing them in a hierarchical layout.
            Geo MapDisplays the children of the note as a geographical map, one use-case would be to plan vacations. It even has basic support for tracks. Notes can also be created from it.
            FileRepresents an uploaded file such as PDFs, images, video or audio files.
            \ No newline at end of file +| Note Type | Description | +| --- | --- | +| Text | The default note type, which allows for rich text formatting, images, admonitions and right-to-left support. | +| Code | Uses a mono-space font and can be used to store larger chunks of code or plain text than a text note, and has better syntax highlighting. | +| Saved Search | Stores the information about a search (the search text, criteria, etc.) for later use. Can be used for quick filtering of a large amount of notes, for example. The search can easily be triggered. | +| Relation Map | Allows easy creation of notes and relations between them. Can be used for mainly relational data such as a family tree. | +| Note Map | Displays the relationships between the notes, whether via relations or their hierarchical structure. | +| Render Note | Used in Scripting, it displays the HTML content of another note. This allows displaying any kind of content, provided there is a script behind it to generate it. | +| Collections | Displays the children of the note either as a grid, a list, or for a more specialized case: a calendar.

            Generally useful for easy reading of short notes. | +| Mermaid Diagrams | Displays diagrams such as bar charts, flow charts, state diagrams, etc. Requires a bit of technical knowledge since the diagrams are written in a specialized format. | +| Canvas | Allows easy drawing of sketches, diagrams, handwritten content. Uses the same technology behind [excalidraw.com](https://excalidraw.com). | +| Web View | Displays the content of an external web page, similar to a browser. | +| Mind Map | Easy for brainstorming ideas, by placing them in a hierarchical layout. | +| Geo Map View | Displays the children of the note as a geographical map, one use-case would be to plan vacations. It even has basic support for tracks. Notes can also be created from it. | +| File | Represents an uploaded file such as PDFs, images, video or audio files. | \ No newline at end of file diff --git a/docs/User Guide/User Guide/Note Types/7_Geo Map_image.png b/docs/User Guide/User Guide/Note Types/7_Geo Map_image.png deleted file mode 100644 index 00c5e8cc36..0000000000 Binary files a/docs/User Guide/User Guide/Note Types/7_Geo Map_image.png and /dev/null differ diff --git a/docs/User Guide/User Guide/Note Types/Book.md b/docs/User Guide/User Guide/Note Types/Book.md deleted file mode 100644 index 59543b9375..0000000000 --- a/docs/User Guide/User Guide/Note Types/Book.md +++ /dev/null @@ -1,14 +0,0 @@ -# Book -A **Book Note** in Trilium is a special type of [note](../Basic%20Concepts%20and%20Features/Notes.md) designed to display the contents of its child notes sequentially, creating a linear, book-like reading experience. This format is particularly useful for viewing multiple smaller notes in a cohesive, continuous manner. - -![](Book_image.png) - -In the example above, the "node.js" note on the left panel contains several child notes. The right panel displays the content of these child notes as a single continuous document. - -## Features - -The Book Note format compiles the contents of all child notes into one continuous view. This makes it ideal for reading extensive information broken into smaller, manageable segments. - -It uses the Note List mechanism to display the child notes, allowing the use of any of the view types (grid, list, calendar). - -To adjust the view type, see the dedicated _Book_ tab in the Ribbon. \ No newline at end of file diff --git a/docs/User Guide/User Guide/Note Types/Book_image.png b/docs/User Guide/User Guide/Note Types/Book_image.png deleted file mode 100644 index ba4e1dd7a6..0000000000 Binary files a/docs/User Guide/User Guide/Note Types/Book_image.png and /dev/null differ diff --git a/docs/User Guide/User Guide/Note Types/Collections.md b/docs/User Guide/User Guide/Note Types/Collections.md new file mode 100644 index 0000000000..81f177fd50 --- /dev/null +++ b/docs/User Guide/User Guide/Note Types/Collections.md @@ -0,0 +1,56 @@ +# Collections +Collections are a unique type of notes that don't have a content, but instead display its child notes in various presentation methods. + +Classic collections are read-only mode and compiles the contents of all child notes into one continuous view. This makes it ideal for reading extensive information broken into smaller, manageable segments. + +* Grid View which is the default presentation method for child notes (see Note List), where the notes are displayed as tiles with their title and content being visible. +* List View is similar to Grid View, but it displays the notes one under the other with the content being expandable/collapsible, but also works recursively. + +More specialized collections were introduced, such as the: + +* Calendar View which displays a week, month or year calendar with the notes being shown as events. New events can be added easily by dragging across the calendar. +* Geo Map View which displays a geographical map in which the notes are represented as markers/pins on the map. New events can be easily added by pointing on the map. +* Table View displays each note as a row in a table, with Promoted Attributes being shown as well. This makes it easy to visualize attributes of notes, as well as making them easily editable. +* Board View (Kanban) displays notes in columns, grouped by the value of a label. + +For a quick presentation of all the supported view types, see the child notes of this help page, including screenshots. + +## Configuration + +To adjust the view type, see the dedicated _Collections_ tab in the Ribbon. + +## Use cases + +### Creating a new collection + +To create a new collections, right click in the Note Tree and look for the _Collections_ entry and select the desired type. + +### Adding a description to a collection + +To add a text before the collection, for example to describe it: + +1. Create a new collection. +2. In the Ribbon, go to _Basic Properties_ and change the note type from _Collection_ to _Text_. + +Now the text will be displayed above while still maintaining the collection view. + +### Using saved search + +Since collections are based on the Note List mechanism, it's possible to apply the same configuration to Saved Search to do advanced querying and presenting the result in an adequate matter such as a calendar, a table or even a map. + +### Creating a collection from scratch + +By default, collections come with a default configuration and sometimes even sample notes. To create a collection completely from scratch: + +1. Create a new note of type _Text_ (or any type). +2. In the Ribbon, go to _Basic Properties_ and select _Collection_ as the note type. +3. Still in the ribbon, go to _Collection Properties_ and select the desired view type. +4. Consult the help page of the corresponding view type in order to understand how to configure them. + +## Under the hood + +Collections by themselves are simply notes with no content that rely on the Note List mechanism (the one that lists the children notes at the bottom of a note) to display information. + +By default, new collections use predefined Templates that are stored safely in the Hidden Notes to define some basic configuration such as the type of view, but also some Promoted Attributes to make editing easier. + +Collections don't store their configuration (e.g. the position on the map, the hidden columns in a table) in the content of the note itself, but as attachments. \ No newline at end of file diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/10_Calendar View_image.png b/docs/User Guide/User Guide/Note Types/Collections/10_Calendar View_image.png similarity index 100% rename from docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/10_Calendar View_image.png rename to docs/User Guide/User Guide/Note Types/Collections/10_Calendar View_image.png diff --git a/docs/User Guide/User Guide/Note Types/11_Geo Map_image.png b/docs/User Guide/User Guide/Note Types/Collections/10_Geo Map View_image.png similarity index 100% rename from docs/User Guide/User Guide/Note Types/11_Geo Map_image.png rename to docs/User Guide/User Guide/Note Types/Collections/10_Geo Map View_image.png diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/11_Calendar View_image.png b/docs/User Guide/User Guide/Note Types/Collections/11_Calendar View_image.png similarity index 100% rename from docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/11_Calendar View_image.png rename to docs/User Guide/User Guide/Note Types/Collections/11_Calendar View_image.png diff --git a/docs/User Guide/User Guide/Note Types/12_Geo Map_image.png b/docs/User Guide/User Guide/Note Types/Collections/11_Geo Map View_image.png similarity index 100% rename from docs/User Guide/User Guide/Note Types/12_Geo Map_image.png rename to docs/User Guide/User Guide/Note Types/Collections/11_Geo Map View_image.png diff --git a/docs/User Guide/User Guide/Note Types/13_Geo Map_image.png b/docs/User Guide/User Guide/Note Types/Collections/12_Geo Map View_image.png similarity index 100% rename from docs/User Guide/User Guide/Note Types/13_Geo Map_image.png rename to docs/User Guide/User Guide/Note Types/Collections/12_Geo Map View_image.png diff --git a/docs/User Guide/User Guide/Note Types/14_Geo Map_image.png b/docs/User Guide/User Guide/Note Types/Collections/13_Geo Map View_image.png similarity index 100% rename from docs/User Guide/User Guide/Note Types/14_Geo Map_image.png rename to docs/User Guide/User Guide/Note Types/Collections/13_Geo Map View_image.png diff --git a/docs/User Guide/User Guide/Note Types/15_Geo Map_image.png b/docs/User Guide/User Guide/Note Types/Collections/14_Geo Map View_image.png similarity index 100% rename from docs/User Guide/User Guide/Note Types/15_Geo Map_image.png rename to docs/User Guide/User Guide/Note Types/Collections/14_Geo Map View_image.png diff --git a/docs/User Guide/User Guide/Note Types/Collections/15_Geo Map View_image.png b/docs/User Guide/User Guide/Note Types/Collections/15_Geo Map View_image.png new file mode 100644 index 0000000000..72dbb98617 Binary files /dev/null and b/docs/User Guide/User Guide/Note Types/Collections/15_Geo Map View_image.png differ diff --git a/docs/User Guide/User Guide/Note Types/16_Geo Map_image.png b/docs/User Guide/User Guide/Note Types/Collections/16_Geo Map View_image.png similarity index 100% rename from docs/User Guide/User Guide/Note Types/16_Geo Map_image.png rename to docs/User Guide/User Guide/Note Types/Collections/16_Geo Map View_image.png diff --git a/docs/User Guide/User Guide/Note Types/17_Geo Map_image.png b/docs/User Guide/User Guide/Note Types/Collections/17_Geo Map View_image.png similarity index 100% rename from docs/User Guide/User Guide/Note Types/17_Geo Map_image.png rename to docs/User Guide/User Guide/Note Types/Collections/17_Geo Map View_image.png diff --git a/docs/User Guide/User Guide/Note Types/18_Geo Map_image.png b/docs/User Guide/User Guide/Note Types/Collections/18_Geo Map View_image.png similarity index 100% rename from docs/User Guide/User Guide/Note Types/18_Geo Map_image.png rename to docs/User Guide/User Guide/Note Types/Collections/18_Geo Map View_image.png diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/1_Calendar View_image.png b/docs/User Guide/User Guide/Note Types/Collections/1_Calendar View_image.png similarity index 100% rename from docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/1_Calendar View_image.png rename to docs/User Guide/User Guide/Note Types/Collections/1_Calendar View_image.png diff --git a/docs/User Guide/User Guide/Note Types/1_Geo Map_image.png b/docs/User Guide/User Guide/Note Types/Collections/1_Geo Map View_image.png similarity index 100% rename from docs/User Guide/User Guide/Note Types/1_Geo Map_image.png rename to docs/User Guide/User Guide/Note Types/Collections/1_Geo Map View_image.png diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/2_Calendar View_image.png b/docs/User Guide/User Guide/Note Types/Collections/2_Calendar View_image.png similarity index 100% rename from docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/2_Calendar View_image.png rename to docs/User Guide/User Guide/Note Types/Collections/2_Calendar View_image.png diff --git a/docs/User Guide/User Guide/Note Types/2_Geo Map_image.png b/docs/User Guide/User Guide/Note Types/Collections/2_Geo Map View_image.png similarity index 100% rename from docs/User Guide/User Guide/Note Types/2_Geo Map_image.png rename to docs/User Guide/User Guide/Note Types/Collections/2_Geo Map View_image.png diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/3_Calendar View_image.png b/docs/User Guide/User Guide/Note Types/Collections/3_Calendar View_image.png similarity index 100% rename from docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/3_Calendar View_image.png rename to docs/User Guide/User Guide/Note Types/Collections/3_Calendar View_image.png diff --git a/docs/User Guide/User Guide/Note Types/3_Geo Map_image.png b/docs/User Guide/User Guide/Note Types/Collections/3_Geo Map View_image.png similarity index 100% rename from docs/User Guide/User Guide/Note Types/3_Geo Map_image.png rename to docs/User Guide/User Guide/Note Types/Collections/3_Geo Map View_image.png diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/4_Calendar View_image.png b/docs/User Guide/User Guide/Note Types/Collections/4_Calendar View_image.png similarity index 100% rename from docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/4_Calendar View_image.png rename to docs/User Guide/User Guide/Note Types/Collections/4_Calendar View_image.png diff --git a/docs/User Guide/User Guide/Note Types/4_Geo Map_image.png b/docs/User Guide/User Guide/Note Types/Collections/4_Geo Map View_image.png similarity index 100% rename from docs/User Guide/User Guide/Note Types/4_Geo Map_image.png rename to docs/User Guide/User Guide/Note Types/Collections/4_Geo Map View_image.png diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/5_Calendar View_image.png b/docs/User Guide/User Guide/Note Types/Collections/5_Calendar View_image.png similarity index 100% rename from docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/5_Calendar View_image.png rename to docs/User Guide/User Guide/Note Types/Collections/5_Calendar View_image.png diff --git a/docs/User Guide/User Guide/Note Types/5_Geo Map_image.png b/docs/User Guide/User Guide/Note Types/Collections/5_Geo Map View_image.png similarity index 100% rename from docs/User Guide/User Guide/Note Types/5_Geo Map_image.png rename to docs/User Guide/User Guide/Note Types/Collections/5_Geo Map View_image.png diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/6_Calendar View_image.png b/docs/User Guide/User Guide/Note Types/Collections/6_Calendar View_image.png similarity index 100% rename from docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/6_Calendar View_image.png rename to docs/User Guide/User Guide/Note Types/Collections/6_Calendar View_image.png diff --git a/docs/User Guide/User Guide/Note Types/6_Geo Map_image.png b/docs/User Guide/User Guide/Note Types/Collections/6_Geo Map View_image.png similarity index 100% rename from docs/User Guide/User Guide/Note Types/6_Geo Map_image.png rename to docs/User Guide/User Guide/Note Types/Collections/6_Geo Map View_image.png diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/7_Calendar View_image.png b/docs/User Guide/User Guide/Note Types/Collections/7_Calendar View_image.png similarity index 100% rename from docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/7_Calendar View_image.png rename to docs/User Guide/User Guide/Note Types/Collections/7_Calendar View_image.png diff --git a/docs/User Guide/User Guide/Note Types/8_Geo Map_image.png b/docs/User Guide/User Guide/Note Types/Collections/7_Geo Map View_image.png similarity index 100% rename from docs/User Guide/User Guide/Note Types/8_Geo Map_image.png rename to docs/User Guide/User Guide/Note Types/Collections/7_Geo Map View_image.png diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/8_Calendar View_image.png b/docs/User Guide/User Guide/Note Types/Collections/8_Calendar View_image.png similarity index 100% rename from docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/8_Calendar View_image.png rename to docs/User Guide/User Guide/Note Types/Collections/8_Calendar View_image.png diff --git a/docs/User Guide/User Guide/Note Types/9_Geo Map_image.png b/docs/User Guide/User Guide/Note Types/Collections/8_Geo Map View_image.png similarity index 100% rename from docs/User Guide/User Guide/Note Types/9_Geo Map_image.png rename to docs/User Guide/User Guide/Note Types/Collections/8_Geo Map View_image.png diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/9_Calendar View_image.png b/docs/User Guide/User Guide/Note Types/Collections/9_Calendar View_image.png similarity index 100% rename from docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/9_Calendar View_image.png rename to docs/User Guide/User Guide/Note Types/Collections/9_Calendar View_image.png diff --git a/docs/User Guide/User Guide/Note Types/10_Geo Map_image.png b/docs/User Guide/User Guide/Note Types/Collections/9_Geo Map View_image.png similarity index 100% rename from docs/User Guide/User Guide/Note Types/10_Geo Map_image.png rename to docs/User Guide/User Guide/Note Types/Collections/9_Geo Map View_image.png diff --git a/docs/User Guide/User Guide/Note Types/Collections/Board View.md b/docs/User Guide/User Guide/Note Types/Collections/Board View.md new file mode 100644 index 0000000000..6a631bd751 --- /dev/null +++ b/docs/User Guide/User Guide/Note Types/Collections/Board View.md @@ -0,0 +1,52 @@ +# Board View +
            + +The Board view presents sub-notes in columns for a Kanban-like experience. Each column represents a possible value for a status label, which can be adjusted. + +## How it works + +When first creating a collection of _Board_ type, a few subnotes will be created, each having a `#status` label set. The board then groups each note by the value of the status attribute. + +Notes are displayed recursively, so even the child notes of the child notes will be displayed. However, unlike the Table View, the notes are not displayed in a hierarchy. + +## Interaction with columns + +* Create a new column by pressing _Add Column_ near the last column. + * Once pressed, a text box will be displayed to set the name of the column. Press Enter to confirm. +* To reorder a column, simply hold the mouse over the title and drag it to the desired position. +* To delete a column, right click on its title and select _Delete column_. +* To rename a column, click on the note title. + * Press Enter to confirm. + * Upon renaming a column, the corresponding status attribute of all its notes will be changed in bulk. +* If there are many columns, use the mouse wheel to scroll. + +## Interaction with notes + +* Create a new note in any column by pressing _New item_ + * Enter the name of the note and press _Enter_. + * Doing so will create a new note. The new note will have an attribute (`status` label by default) set to the name of the column. +* To change the state of a note, simply drag a note from one column to the other to change its state. +* The order of the notes in each column corresponds to their position in the tree. + * It's possible to reorder notes simply by dragging them to the desired position within the same columns. + * It's also possible to drag notes across columns, at the desired position. +* For more options, right click on a note to display a context menu with the following options: + * Open the note in a new tab/split/window or quick edit. + * Move the note to any column. + * Insert a new note above/below the current one. + * Delete the current note. +* If there are many notes within the column, move the mouse over the column and use the mouse wheel to scroll. + +## Configuration + +### Grouping by another attribute + +By default, the label used to group the notes is `#status`. It is possible to use a different label if needed by defining a label named `#board:groupBy` with the value being the attribute to use (without `#` attribute prefix). + +> [!NOTE] +> It's currently not possible to set a relation as the grouping criteria. There are plans to add support for it. + +## Interaction + +## Limitations + +* It is not possible yet to use group by a relation, only by label. \ No newline at end of file diff --git a/docs/User Guide/User Guide/Note Types/Collections/Board View_image.png b/docs/User Guide/User Guide/Note Types/Collections/Board View_image.png new file mode 100644 index 0000000000..be4b027d2b Binary files /dev/null and b/docs/User Guide/User Guide/Note Types/Collections/Board View_image.png differ diff --git a/docs/User Guide/User Guide/Note Types/Collections/Calendar View.md b/docs/User Guide/User Guide/Note Types/Collections/Calendar View.md new file mode 100644 index 0000000000..cd0f860104 --- /dev/null +++ b/docs/User Guide/User Guide/Note Types/Collections/Calendar View.md @@ -0,0 +1,128 @@ +# Calendar View +
            + +The Calendar view will display each child note in a calendar that has a start date and optionally an end date, as an event. + +The Calendar view has multiple display modes: + +* Week view, where all the 7 days of the week (or 5 if the weekends are hidden) are displayed in columns. This mode allows entering and displaying time-specific events, not just all-day events. +* Month view, where the entire month is displayed and all-day events can be inserted. Both time-specific events and all-day events are listed. +* Year view, which displays the entire year for quick reference. +* List view, which displays all the events of a given month in sequence. + +Unlike other Collection view types, the Calendar view also allows some kind of interaction, such as moving events around as well as creating new ones. + +## Creating a calendar + +| | | | +| --- | --- | --- | +| 1 | ![](2_Calendar%20View_image.png) | The Calendar View works only for Collection note types. To create a new note, right click on the note tree on the left and select Insert note after, or Insert child note and then select _Collection_. | +| 2 | ![](3_Calendar%20View_image.png) | Once created, the “View type” of the Collection needs changed to “Calendar”, by selecting the “Collection Properties” tab in the ribbon. | + +## Creating a new event/note + +* Clicking on a day will create a new child note and assign it to that particular day. + * You will be asked for the name of the new note. If the popup is dismissed by pressing the close button or escape, then the note will not be created. +* It's possible to drag across multiple days to set both the start and end date of a particular note. + ![](Calendar%20View_image.png) +* Creating new notes from the calendar will respect the `~child:template` relation if set on the Collection note. + +## Interacting with events + +* Hovering the mouse over an event will display information about the note. + ![](7_Calendar%20View_image.png) +* Left clicking the event will open a Quick edit to edit the note in a popup while allowing easy return to the calendar by just dismissing the popup. + * Middle clicking will open the note in a new tab. + * Right click will offer more options including opening the note in a new split or window. +* Drag and drop an event on the calendar to move it to another day. +* The length of an event can be changed by placing the mouse to the right edge of the event and dragging the mouse around. + +## Configuring the calendar view + +In the _Collections_ tab in the Ribbon, it's possible to adjust the following: + +* Hide weekends from the week view. +* Display week numbers on the calendar. + +## Configuring the calendar using attributes + +The following attributes can be added to the Collection type: + +
            NameDescription
            #calendar:hideWeekendsWhen present (regardless of value), it will hide Saturday and Sundays from the calendar.
            #calendar:weekNumbersWhen present (regardless of value), it will show the number of the week on the calendar.
            #calendar:view

            Which view to display in the calendar:

            • timeGridWeek for the week view;
            • dayGridMonth for the month view;
            • multiMonthYear for the year view;
            • listMonth for the list view.

            Any other value will be dismissed and the default view (month) will be used instead.

            The value of this label is automatically updated when changing the view using the UI buttons.

            ~child:templateDefines the template for newly created notes in the calendar (via dragging or clicking).
            + +In addition, the first day of the week can be either Sunday or Monday and can be adjusted from the application settings. + +## Configuring the calendar events using attributes + +For each note of the calendar, the following attributes can be used: + +| Name | Description | +| --- | --- | +| `#startDate` | The date the event starts, which will display it in the calendar. The format is `YYYY-MM-DD` (year, month and day separated by a minus sign). | +| `#endDate` | Similar to `startDate`, mentions the end date if the event spans across multiple days. The date is inclusive, so the end day is also considered. The attribute can be missing for single-day events. | +| `#startTime` | The time the event starts at. If this value is missing, then the event is considered a full-day event. The format is `HH:MM` (hours in 24-hour format and minutes). | +| `#endTime` | Similar to `startTime`, it mentions the time at which the event ends (in relation with `endDate` if present, or `startDate`). | +| `#color` | Displays the event with a specified color (named such as `red`, `gray` or hex such as `#FF0000`). This will also change the color of the note in other places such as the note tree. | +| `#calendar:color` | Similar to `#color`, but applies the color only for the event in the calendar and not for other places such as the note tree. | +| `#iconClass` | If present, the icon of the note will be displayed to the left of the event title. | +| `#calendar:title` | Changes the title of an event to point to an attribute of the note other than the title, can either a label or a relation (without the `#` or `~` symbol). See _Use-cases_ for more information. | +| `#calendar:displayedAttributes` | Allows displaying the value of one or more attributes in the calendar like this:    

            ![](9_Calendar%20View_image.png)   

            `#weight="70" #Mood="Good" #calendar:displayedAttributes="weight,Mood"`  

            It can also be used with relations, case in which it will display the title of the target note:   

            `~assignee=@My assignee #calendar:displayedAttributes="assignee"` | +| `#calendar:startDate` | Allows using a different label to represent the start date, other than `startDate` (e.g. `expiryDate`). The label name **must not be** prefixed with `#`. If the label is not defined for a note, the default will be used instead. | +| `#calendar:endDate` | Similar to `#calendar:startDate`, allows changing the attribute which is being used to read the end date. | +| `#calendar:startTime` | Similar to `#calendar:startDate`, allows changing the attribute which is being used to read the start time. | +| `#calendar:endTime` | Similar to `#calendar:startDate`, allows changing the attribute which is being used to read the end time. | + +## How the calendar works + +![](11_Calendar%20View_image.png) + +The calendar displays all the child notes of the Collection that have a `#startDate`. An `#endDate` can optionally be added. + +If editing the start date and end date from the note itself is desirable, the following attributes can be added to the Collection note: + +``` +#viewType=calendar #label:startDate(inheritable)="promoted,alias=Start Date,single,date" +#label:endDate(inheritable)="promoted,alias=End Date,single,date" +#hidePromotedAttributes +``` + +This will result in: + +![](10_Calendar%20View_image.png) + +When not used in a Journal, the calendar is recursive. That is, it will look for events not just in its child notes but also in the children of these child notes. + +## Use-cases + +### Using with the Journal / calendar + +It is possible to integrate the calendar view into the Journal with day notes. In order to do so change the note type of the Journal note (calendar root) to Collection and then select the Calendar View. + +Based on the `#calendarRoot` (or `#workspaceCalendarRoot`) attribute, the calendar will know that it's in a calendar and apply the following: + +* The calendar events are now rendered based on their `dateNote` attribute rather than `startDate`. +* Interactive editing such as dragging over an empty era or resizing an event is no longer possible. +* Clicking on the empty space on a date will automatically open that day's note or create it if it does not exist. +* Direct children of a day note will be displayed on the calendar despite not having a `dateNote` attribute. Children of the child notes will not be displayed. + + + +### Using a different attribute as event title + +By default, events are displayed on the calendar by their note title. However, it is possible to configure a different attribute to be displayed instead. + +To do so, assign `#calendar:title` to the child note (not the calendar/Collection note), with the value being `name` where `name` can be any label (make not to add the `#` prefix). The attribute can also come through inheritance such as a template attribute. If the note does not have the requested label, the title of the note will be used instead. + +
              
            #startDate=2025-02-11 #endDate=2025-02-13 #name="My vacation" #calendar:title="name"

             

            + +### Using a relation attribute as event title + +Similarly to using an attribute, use `#calendar:title` and set it to `name` where `name` is the name of the relation to use. + +Moreover, if there are more relations of the same name, they will be displayed as multiple events coming from the same note. + +
              
            #startDate=2025-02-14 #endDate=2025-02-15 ~for=@John Smith ~for=@Jane Doe #calendar:title="for"
            + +Note that it's even possible to have a `#calendar:title` on the target note (e.g. “John Smith”) which will try to render an attribute of it. Note that it's not possible to use a relation here as well for safety reasons (an accidental recursion  of attributes could cause the application to loop infinitely). + +
              
            #calendar:title="shortName" #shortName="John S."
            \ No newline at end of file diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Calendar View_image.png b/docs/User Guide/User Guide/Note Types/Collections/Calendar View_image.png similarity index 100% rename from docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Calendar View_image.png rename to docs/User Guide/User Guide/Note Types/Collections/Calendar View_image.png diff --git a/docs/User Guide/User Guide/Note Types/Collections/Geo Map View.md b/docs/User Guide/User Guide/Note Types/Collections/Geo Map View.md new file mode 100644 index 0000000000..ae0be91ce0 --- /dev/null +++ b/docs/User Guide/User Guide/Note Types/Collections/Geo Map View.md @@ -0,0 +1,179 @@ +# Geo Map View +> [!IMPORTANT] +> Starting with Trilium v0.97.0, the geo map has been converted from a standalone [note type](../../Note%20Types.md) to a type of view for the Note List.  + +
            + +This note type displays the children notes on a geographical map, based on an attribute. It is also possible to add new notes at a specific location using the built-in interface. + +## Creating a new geo map + +| | | | +| --- | --- | --- | +| 1 |
            | Right click on any note on the note tree and select _Insert child note_ → _Geo Map (beta)_. | +| 2 |
            | By default the map will be empty and will show the entire world. | + +## Repositioning the map + +* Click and drag the map in order to move across the map. +* Use the mouse wheel, two-finger gesture on a touchpad or the +/- buttons on the top-left to adjust the zoom. + +The position on the map and the zoom are saved inside the map note and restored when visiting again the note. + +## Adding a marker using the map + +### Adding a new note using the plus button + +| | | | +| --- | --- | --- | +| 1 | To create a marker, first navigate to the desired point on the map. Then press the ![](10_Geo%20Map%20View_image.png) button in the [Floating buttons](../../Basic%20Concepts%20and%20Features/UI%20Elements/Floating%20buttons.md) (top-right) area.  

            If the button is not visible, make sure the button section is visible by pressing the chevron button (![](17_Geo%20Map%20View_image.png)) in the top-right of the map. | | +| 2 | | Once pressed, the map will enter in the insert mode, as illustrated by the notification.     

            Simply click the point on the map where to place the marker, or the Escape key to cancel. | +| 3 | | Enter the name of the marker/note to be created. | +| 4 | | Once confirmed, the marker will show up on the map and it will also be displayed as a child note of the map. | + +### Adding a new note using the contextual menu + +1. Right click anywhere on the map, where to place the newly created marker (and corresponding note). +2. Select _Add a marker at this location_. +3. Enter the name of the newly created note. +4. The map should be updated with the new marker. + +### Adding an existing note on note from the note tree + +1. Select the desired note in the Note Tree. +2. Hold the mouse on the note and drag it to the map to the desired location. +3. The map should be updated with the new marker. + +This works for: + +* Notes that are not part of the geo map, case in which a [clone](../../Basic%20Concepts%20and%20Features/Notes/Cloning%20Notes.md) will be created. +* Notes that are a child of the geo map but not yet positioned on the map. +* Notes that are a child of the geo map and also positioned, case in which the marker will be relocated to the new position. + +## How the location of the markers is stored + +The location of a marker is stored in the `#geolocation` attribute of the child notes: + + + +This value can be added manually if needed. The value of the attribute is made up of the latitude and longitude separated by a comma. + +## Repositioning markers + +It's possible to reposition existing markers by simply drag and dropping them to the new destination. + +As soon as the mouse is released, the new position is saved. + +If moved by mistake, there is currently no way to undo the change. If the mouse was not yet released, it's possible to force a refresh of the page (Ctrl+R ) to cancel it. + +## Interaction with the markers + +* Hovering over a marker will display a Note Tooltip with the content of the note it belongs to. + * Clicking on the note title in the tooltip will navigate to the note in the current view. +* Middle-clicking the marker will open the note in a new tab. +* Right-clicking the marker will open a contextual menu (as described below). +* If the map is in read-only mode, clicking on a marker will open a Quick edit popup for the corresponding note. + +## Contextual menu + +It's possible to press the right mouse button to display a contextual menu. + +1. If right-clicking an empty section of the map (not on a marker), it allows to: + 1. Displays the latitude and longitude. Clicking this option will copy them to the clipboard. + 2. Open the location using an external application (if the operating system supports it). + 3. Adding a new marker at that location. +2. If right-clicking on a marker, it allows to: + 1. Displays the latitude and longitude. Clicking this option will copy them to the clipboard. + 2. Open the location using an external application (if the operating system supports it). + 3. Open the note in a new tab, split or window. + 4. Remove the marker from the map, which will remove the `#geolocation` attribute of the note. To add it back again, the coordinates have to be manually added back in. + +## Icon and color of the markers + +
            image
            + +The markers will have the same icon as the note. + +It's possible to add a custom color to a marker by assigning them a `#color` attribute such as `#color=green`. + +## Adding the coordinates manually + +In a nutshell, create a child note and set the `#geolocation` attribute to the coordinates. + +The value of the attribute is made up of the latitude and longitude separated by a comma. + +### Adding from Google Maps + +| | | | +| --- | --- | --- | +| 1 |
            | Go to Google Maps on the web and look for a desired location, right click on it and a context menu will show up.     

            Simply click on the first item displaying the coordinates and they will be copied to clipboard.     

            Then paste the value inside the text box into the `#geolocation` attribute of a child note of the map (don't forget to surround the value with a `"` character). | +| 2 |
            | In Trilium, create a child note under the map. | +| 3 |
            | And then go to Owned Attributes and type `#geolocation="`, then paste from the clipboard as-is and then add the ending `"` character. Press Enter to confirm and the map should now be updated to contain the new note. | + +### Adding from OpenStreetMap + +Similarly to the Google Maps approach: + +| | | | +| --- | --- | --- | +| 1 | | Go to any location on openstreetmap.org and right click to bring up the context menu. Select the “Show address” item. | +| 2 | | The address will be visible in the top-left of the screen, in the place of the search bar.     

            Select the coordinates and copy them into the clipboard. | +| 3 | | Simply paste the value inside the text box into the `#geolocation` attribute of a child note of the map and then it should be displayed on the map. | + +## Adding GPS tracks (.gpx) + +Trilium has basic support for displaying GPS tracks on the geo map. + +| | | | +| --- | --- | --- | +| 1 |
            | To add a track, simply drag & drop a .gpx file inside the geo map in the note tree. | +| 2 |
            | In order for the file to be recognized as a GPS track, it needs to show up as `application/gpx+xml` in the _File type_ field. | +| 3 |
            | When going back to the map, the track should now be visible.     

            The start and end points of the track are indicated by the two blue markers. | + +> [!NOTE] +> The starting point of the track will be displayed as a marker, with the name of the note underneath. The start marker will also respect the icon and the `color` of the note. The end marker is displayed with a distinct icon. +> +> If the GPX contains waypoints, they will also be displayed. If they have a name, it is displayed when hovering over it with the mouse. + +## Read-only mode + +When a map is in read-only all editing features will be disabled such as: + +* The add button in the Floating buttons. +* Dragging markers. +* Editing from the contextual menu (removing locations or adding new items). + +To enable read-only mode simply press the _Lock_ icon from the Floating buttons. To disable it, press the button again. + +## Configuration + +### Map Style + +The styling of the map can be adjusted in the _Collection Properties_ tab in the Ribbon or manually via the `#map:style` attribute. + +The geo map comes with two different types of styles: + +* Raster styles + * For these styles the map is represented as a grid of images at different zoom levels. This is the traditional way OpenStreetMap used to work. + * Zoom is slightly restricted. + * Currently, the only raster theme is the original OpenStreetMap style. +* Vector styles + * Vector styles are not represented as images, but as geometrical shapes. This makes the rendering much smoother, especially when zooming and looking at the building edges, for example. + * The map can be zoomed in much further. + * These come both in a light and a dark version. + * The vector styles come from [VersaTiles](https://versatiles.org/), a free and open-source project providing map tiles based on OpenStreetMap. + +> [!NOTE] +> Currently it is not possible to use a custom map style. + +### Scale + +Activating this option via the Ribbon or manually via `#map:scale` will display an indicator in the bottom-left of the scale of the map. + +## Troubleshooting + +
            + +### Grid-like artifacts on the map + +This occurs if the application is not at 100% zoom which causes the pixels of the map to not render correctly due to fractional scaling. The only possible solution is to set the UI zoom at 100% (default keyboard shortcut is Ctrl+0). \ No newline at end of file diff --git a/docs/User Guide/User Guide/Note Types/Geo Map_image.jpg b/docs/User Guide/User Guide/Note Types/Collections/Geo Map View_image.jpg similarity index 100% rename from docs/User Guide/User Guide/Note Types/Geo Map_image.jpg rename to docs/User Guide/User Guide/Note Types/Collections/Geo Map View_image.jpg diff --git a/docs/User Guide/User Guide/Note Types/Geo Map_image.png b/docs/User Guide/User Guide/Note Types/Collections/Geo Map View_image.png similarity index 100% rename from docs/User Guide/User Guide/Note Types/Geo Map_image.png rename to docs/User Guide/User Guide/Note Types/Collections/Geo Map View_image.png diff --git a/docs/User Guide/User Guide/Note Types/Collections/Grid View.md b/docs/User Guide/User Guide/Note Types/Collections/Grid View.md new file mode 100644 index 0000000000..33f8870101 --- /dev/null +++ b/docs/User Guide/User Guide/Note Types/Collections/Grid View.md @@ -0,0 +1,23 @@ +# Grid View +
            + +This view presents the child notes in a grid format, allowing for a more visual navigation experience. + +Each tile contains: + +* The title of a note. +* A snippet of the content. +* For empty notes, the sub-children are also displayed, allowing for quick navigation. + +Depending on the type of note: + +* For Text notes, the text can be slightly scrollable via the mouse wheel to reveal more context. +* For Code notes, syntax highlighting is applied. +* For File notes, a preview is made available for audio, video and PDF notes. +* If the note does not have a content, a list of its child notes will be displayed instead. + +The grid view is also used by default in the Note List of every note, making it easy to navigate to children notes. + +## Configuration + +Unlike most other view types, the grid view is not actually configurable. \ No newline at end of file diff --git a/docs/User Guide/User Guide/Note Types/Collections/Grid View_image.png b/docs/User Guide/User Guide/Note Types/Collections/Grid View_image.png new file mode 100644 index 0000000000..8de2914c1c Binary files /dev/null and b/docs/User Guide/User Guide/Note Types/Collections/Grid View_image.png differ diff --git a/docs/User Guide/User Guide/Note Types/Collections/List View.md b/docs/User Guide/User Guide/Note Types/Collections/List View.md new file mode 100644 index 0000000000..e6f07aa895 --- /dev/null +++ b/docs/User Guide/User Guide/Note Types/Collections/List View.md @@ -0,0 +1,11 @@ +# List View +
            + +List view is similar to Grid View, but in the list view mode, each note is displayed in a single row with only the title and the icon of the note being visible by the default. By pressing the expand button it's possible to view the content of the note, as well as the children of the note (recursively). + +In the example above, the "Node.js" note on the left panel contains several child notes. The right panel displays the content of these child notes as a single continuous document. + +## Interaction + +* Each note can be expanded or collapsed by clicking on the arrow to the left of the title. +* In the Ribbon, in the _Collection_ tab there are options to expand and to collapse all notes easily. \ No newline at end of file diff --git a/docs/User Guide/User Guide/Note Types/Collections/List View_image.png b/docs/User Guide/User Guide/Note Types/Collections/List View_image.png new file mode 100644 index 0000000000..61a9d82496 Binary files /dev/null and b/docs/User Guide/User Guide/Note Types/Collections/List View_image.png differ diff --git a/docs/User Guide/User Guide/Note Types/Collections/Table View.md b/docs/User Guide/User Guide/Note Types/Collections/Table View.md new file mode 100644 index 0000000000..0454b0a933 --- /dev/null +++ b/docs/User Guide/User Guide/Note Types/Collections/Table View.md @@ -0,0 +1,150 @@ +# Table View +
            + +The table view displays information in a grid, where the rows are individual notes and the columns are Promoted Attributes. In addition, values are editable. + +## How it works + +The tabular structure is represented as such: + +* Each child note is a row in the table. +* If child rows also have children, they will be displayed under an expander (nested notes). +* Each column is a [promoted attribute](../../Advanced%20Usage/Attributes/Promoted%20Attributes.md) that is defined on the Collection note. + * Actually, both promoted and unpromoted attributes are supported, but it's a requirement to use a label/relation definition. + * The promoted attributes are usually defined as inheritable in order to show up in the child notes, but it's not a requirement. +* If there are multiple attribute definitions with the same `name`, only one will be displayed. + +There are also a few predefined columns: + +* The current item number, identified by the `#` symbol. + * This simply counts the note and is affected by sorting. +* Note ID, representing the unique ID used internally by Trilium +* The title of the note. + +## Interaction + +### Creating a new table + +Right click the Note Tree and select _Insert child note_ and look for the _Table item_. + +### Adding columns + +Each column is a [promoted or unpromoted attribute](../../Advanced%20Usage/Attributes/Promoted%20Attributes.md) that is defined on the Collection note. + +To create a new column, either: + +* Press _Add new column_ at the bottom of the table. +* Right click on an existing column and select Add column to the left/right. +* Right click on the empty space of the column header and select _Label_ or _Relation_ in the _New column_ section. + +### Adding new rows + +Each row is actually a note that is a child of the Collection note. + +To create a new note, either: + +* Press _Add new row_ at the bottom of the table. +* Right click on an existing row and select _Insert row above, Insert child note_ or _Insert row below_. + +By default it will try to edit the title of the newly created note. + +Alternatively, the note can be created from the Note Tree or [scripting](../../Scripting.md). + +### Context menu + +There are multiple menus: + +* Right clicking on a column, allows: + * Sorting by the selected column and resetting the sort. + * Hiding the selected column or adjusting the visibility of every column. + * Adding new columns to the left or the right of the column. + * Editing the current column. + * Deleting the current column. +* Right clicking on the space to the right of the columns, allows: + * Adjusting the visibility of every column. + * Adding new columns. +* Right clicking on a row, allows: + * Opening the corresponding note of the row in a new tab, split, window or quick editing it. + * Inserting rows above, below or as a child note. + * Deleting the row. + +### Editing data + +Simply click on a cell within a row to change its value. The change will not only reflect in the table, but also as an attribute of the corresponding note. + +* The editing will respect the type of the promoted attribute, by presenting a normal text box, a number selector or a date selector for example. +* It also possible to change the title of a note. +* Editing relations is also possible + * Simply click on a relation and it will become editable. Enter the text to look for a note and click on it. + * To remove a relation, remove the title of the note from the text box and click outside the cell. + +### Editing columns + +It is possible to edit a column by right clicking it and selecting _Edit column._ This will basically change the label/relation definition at the collection level. + +If the _Name_ field of a column is changed, this will trigger a batch operation in which the corresponding label/relation will be renamed in all the children. + +## Working with the data + +### Sorting by column + +By default, the order of the notes matches the order in the Note Tree. However, it is possible to sort the data by the values of a column: + +* To do so, simply click on a column. +* To switch between ascending or descending sort, simply click again on the same column. The arrow next to the column will indicate the direction of the sort. +* To disable sorting and fall back to the original order, right click any column on the header and select _Clear sorting._ + +### Reordering and hiding columns + +* Columns can be reordered by dragging the header of the columns. +* Columns can be hidden or shown by right clicking on a column and clicking the item corresponding to the column. + +### Reordering rows + +Notes can be dragged around to change their order. To do so, move the mouse over the three vertical dots near the number row and drag the mouse to the desired position. + +This will also change the order of the note in the Note Tree. + +Reordering does have some limitations: + +* If the parent note has `#sorted`, reordering will be disabled. +* If using nested tables, then reordering will also be disabled. +* Currently, it's possible to reorder notes even if column sorting is used, but the result might be inconsistent. + +### Nested trees + +If the child notes of the collection also have their own child notes, then they will be displayed in a hierarchy. + +Next to the title of each element there will be a button to expand or collapse. By default, all items are expanded. + +Since nesting is not always desirable, it is possible to limit the nesting to a certain number of levels or even disable it completely. To do so, either: + +* Go to _Collection Properties_ in the Ribbon and look for the _Max nesting depth_ section. + * To disable nesting, type 0 and press Enter. + * To limit to a certain depth, type in the desired number (e.g. 2 to only display children and sub-children). + * To re-enable unlimited nesting, remove the number and press Enter. +* Manually set `maxNestingDepth` to the desired value. + +Limitations: + +* While in this mode, it's not possible to reorder notes. + +## Limitations + +* Multi-value labels and relations are not supported. If a Promoted Attributes is defined with a _Multi value_ specificity, they will be ignored. +* There is no support to filter the rows by a certain criteria. Consider using the table view in search for that use case. + +## Use in search + +The table view can be used in a Saved Search by adding the `#viewType=table` attribute. + +Unlike when used in a Collection, saved searches are not limited to the sub-hierarchy of a note and allows for advanced queries thanks to the power of the Search. + +However, there are also some limitations: + +* It's not possible to reorder notes. +* It's not possible to add a new row. + +Columns are supported, by being defined as Promoted Attributes to the Saved Search note. + +Editing is also supported. \ No newline at end of file diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Table_image.png b/docs/User Guide/User Guide/Note Types/Collections/Table View_image.png similarity index 100% rename from docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Table_image.png rename to docs/User Guide/User Guide/Note Types/Collections/Table View_image.png diff --git a/docs/User Guide/User Guide/Note Types/Geo Map.md b/docs/User Guide/User Guide/Note Types/Geo Map.md deleted file mode 100644 index 78237cad34..0000000000 --- a/docs/User Guide/User Guide/Note Types/Geo Map.md +++ /dev/null @@ -1,88 +0,0 @@ -# Geo Map -
            - -This note type displays the children notes on a geographical map, based on an attribute. It is also possible to add new notes at a specific location using the built-in interface. - -## Creating a new geo map - -
               
            1
            Right click on any note on the note tree and select Insert child noteGeo Map (beta).
            2
            By default the map will be empty and will show the entire world.
            - -## Repositioning the map - -* Click and drag the map in order to move across the map. -* Use the mouse wheel, two-finger gesture on a touchpad or the +/- buttons on the top-left to adjust the zoom. - -The position on the map and the zoom are saved inside the map note and restored when visiting again the note. - -## Adding a marker using the map - -
               
            1To create a marker, first navigate to the desired point on the map. Then press the button in the Floating buttons (top-right) area. 

            If the button is not visible, make sure the button section is visible by pressing the chevron button () in the top-right of the map.
             
            2Once pressed, the map will enter in the insert mode, as illustrated by the notification.    

            Simply click the point on the map where to place the marker, or the Escape key to cancel.
            3Enter the name of the marker/note to be created.
            4Once confirmed, the marker will show up on the map and it will also be displayed as a child note of the map.
            - -## How the location of the markers is stored - -The location of a marker is stored in the `#geolocation` attribute of the child notes: - - - -This value can be added manually if needed. The value of the attribute is made up of the latitude and longitude separated by a comma. - -## Repositioning markers - -It's possible to reposition existing markers by simply drag and dropping them to the new destination. - -As soon as the mouse is released, the new position is saved. - -If moved by mistake, there is currently no way to undo the change. If the mouse was not yet released, it's possible to force a refresh of the page (Ctrl+R ) to cancel it. - -## Interaction with the markers - -* Hovering over a marker will display the content of the note it belongs to. - * Clicking on the note title in the tooltip will navigate to the note in the current view. -* Middle-clicking the marker will open the note in a new tab. -* Right-clicking the marker will open a contextual menu allowing: - * Opening the note in a new tab, split or window. - * Opening the location using an external application (if the operating system supports it). - * Removing the marker from the map, which will remove the `#geolocation` attribute of the note. To add it back again, the coordinates have to be manually added back in. - -## Icon and color of the markers - -
            image
            - -The markers will have the same icon as the note. - -It's possible to add a custom color to a marker by assigning them a `#color` attribute such as `#color=green`. - -## Adding the coordinates manually - -In a nutshell, create a child note and set the `#geolocation` attribute to the coordinates. - -The value of the attribute is made up of the latitude and longitude separated by a comma. - -### Adding from Google Maps - -
               
            1
            Go to Google Maps on the web and look for a desired location, right click on it and a context menu will show up.    

            Simply click on the first item displaying the coordinates and they will be copied to clipboard.    

            Then paste the value inside the text box into the #geolocation attribute of a child note of the map (don't forget to surround the value with a " character).
            2
            In Trilium, create a child note under the map.
            3
            And then go to Owned Attributes and type #geolocation=", then paste from the clipboard as-is and then add the ending " character. Press Enter to confirm and the map should now be updated to contain the new note.
            - -### Adding from OpenStreetMap - -Similarly to the Google Maps approach: - -
               
            1Go to any location on openstreetmap.org and right click to bring up the context menu. Select the “Show address” item.
            2The address will be visible in the top-left of the screen, in the place of the search bar.    

            Select the coordinates and copy them into the clipboard.
            3Simply paste the value inside the text box into the #geolocation attribute of a child note of the map and then it should be displayed on the map.
            - -## Adding GPS tracks (.gpx) - -Trilium has basic support for displaying GPS tracks on the geo map. - -
               
            1
            To add a track, simply drag & drop a .gpx file inside the geo map in the note tree.
            2
            In order for the file to be recognized as a GPS track, it needs to show up as application/gpx+xml in the File type field.
            3
            When going back to the map, the track should now be visible.    

            The start and end points of the track are indicated by the two blue markers.
            - -> [!NOTE] -> The starting point of the track will be displayed as a marker, with the name of the note underneath. The start marker will also respect the icon and the `color` of the note. The end marker is displayed with a distinct icon. -> -> If the GPX contains waypoints, they will also be displayed. If they have a name, it is displayed when hovering over it with the mouse. - -## Troubleshooting - -
            - -### Grid-like artifacts on the map - -This occurs if the application is not at 100% zoom which causes the pixels of the map to not render correctly due to fractional scaling. The only possible solution is to set the UI zoom at 100% (default keyboard shortcut is Ctrl+0). \ No newline at end of file diff --git a/docs/User Guide/User Guide/Note Types/Text.md b/docs/User Guide/User Guide/Note Types/Text.md index 1b6486efb2..eb0cb76b12 100644 --- a/docs/User Guide/User Guide/Note Types/Text.md +++ b/docs/User Guide/User Guide/Note Types/Text.md @@ -16,7 +16,7 @@ Fore more information see 
            Dedicated articleFeature
            General formatting
            • Headings (section titles, paragraph)
            • Font size
            • Bold, italic, underline, strike-through
            • Superscript, subscript
            • Font color & background color
            • Remove formatting
            Lists
            • Bulleted lists
            • Numbered lists
            • To-do lists
            Block quotes & admonitions
            • Block quotes
            • Admonitions
            Tables
            • Basic tables
            • Merging cells
            • Styling tables and cells.
            • Table captions
            Developer-specific formatting
            • Inline code
            • Code blocks
            • Keyboard shortcuts
            Footnotes
            • Footnotes
            Images
            • Images
            Links
            • External links
            • Internal Trilium links
            Include Note
            • Include note
            Insert buttons
            Other features
            Premium features
            +
            Dedicated articleFeature
            General formatting
            • Headings (section titles, paragraph)
            • Font size
            • Bold, italic, underline, strike-through
            • Superscript, subscript
            • Font color & background color
            • Remove formatting
            Lists
            • Bulleted lists
            • Numbered lists
            • To-do lists
            Block quotes & admonitions
            • Block quotes
            • Admonitions
            Tables
            • Basic tables
            • Merging cells
            • Styling tables and cells.
            • Table captions
            Developer-specific formatting
            • Inline code
            • Code blocks
            • Keyboard shortcuts
            Footnotes
            • Footnotes
            Images
            • Images
            Links
            • External links
            • Internal Trilium links
            Include Note
            • Include note
            Insert buttons
            Other features
            Premium features
            ## Read-Only vs. Editing Mode diff --git a/docs/User Guide/User Guide/Note Types/Text/Images.md b/docs/User Guide/User Guide/Note Types/Text/Images.md index e2b1e05b5f..835988c63b 100644 --- a/docs/User Guide/User Guide/Note Types/Text/Images.md +++ b/docs/User Guide/User Guide/Note Types/Text/Images.md @@ -24,7 +24,12 @@ Clicking on an image will reveal a popup with multiple options: The first set of options configure the alignment are, in order: -
            IconOptionPreviewDescription
            InlineAs the name suggests, the name can be put inside a paragraph and moved around similarly as if it was a block of text. Use drag & drop or cut-paste to move it around.
            Centered imageThe image will be displayed as a block and centered, not allowing text in either the left or right of it.
            Wrap textThe image will be displayed to the left or the right of the text.
            Block alignSimilarly to Centered image, the image will be displayed as a block and aligned either to the left or to the right, but not allowing text to flow on either of its sides.
            +| Icon | Option | Preview | Description | +| --- | --- | --- | --- | +| ![](5_Images_image.png) | Inline | ![](1_Images_image.png) | As the name suggests, the name can be put inside a paragraph and moved around similarly as if it was a block of text. Use drag & drop or cut-paste to move it around. | +| ![](10_Images_image.png) | Centered image | ![](2_Images_image.png) | The image will be displayed as a block and centered, not allowing text in either the left or right of it. | +| ![](4_Images_image.png) | Wrap text | ![](7_Images_image.png) | The image will be displayed to the left or the right of the text. | +| ![](Images_image.png) | Block align | ![](3_Images_image.png) | Similarly to _Centered image_, the image will be displayed as a block and aligned either to the left or to the right, but not allowing text to flow on either of its sides. | ## Compression diff --git a/docs/User Guide/User Guide/Note Types/Text/Keyboard shortcuts.md b/docs/User Guide/User Guide/Note Types/Text/Keyboard shortcuts.md index 49ce6e2284..84b6edc32e 100644 --- a/docs/User Guide/User Guide/Note Types/Text/Keyboard shortcuts.md +++ b/docs/User Guide/User Guide/Note Types/Text/Keyboard shortcuts.md @@ -1,7 +1,21 @@ # Keyboard shortcuts ## Trilium-specific shortcuts -
            ActionPCMac
            Bring up inline formatting toolbar (arrow keys , to navigate, Enter to apply)Alt+F10+F10
            Bring up block formatting toolbarAlt+F10+F10
            Create external linkCtrl+K+K
            Create internal (note) linkCtrl+L+L
            Inserts current date and time at caret positionAlt+T +T 
            Increase paragraph indentationTab
            Decrease paragraph indentationShift + Tab +
            Mark selected text as keyboard shortcutCtrl + Alt + K+ + K
            Insert Math EquationsCtrl + M+ M
            Move blocks (lists, paragraphs, etc.) upCtrl+ + 
            Alt++
            Move blocks (lists, paragraphs, etc.) downCtrl++
            Alt++
            +| Action | PC | Mac | +| --- | --- | --- | +| Bring up inline formatting toolbar (arrow keys , to navigate, Enter to apply) | Alt+F10 | +F10 | +| Bring up block formatting toolbar | Alt+F10 | +F10 | +| Create [external link](Links.md) | Ctrl+K | +K | +| Create [internal (note) link](Links.md) | Ctrl+L | +L | +| Inserts current date and time at caret position | Alt+T | +T | +| Increase paragraph indentation | Tab | | +| Decrease paragraph indentation | Shift + Tab | + | +| Mark selected text as [keyboard shortcut](Developer-specific%20formatting.md) | Ctrl + Alt + K | \+ \+ K | +| Insert 
            Math Equations | Ctrl + M | \+ M | +| Move blocks (lists, paragraphs, etc.) up | Ctrl+ | + | +| Alt+ | + | | +| Move blocks (lists, paragraphs, etc.) down | Ctrl+ | + | +| Alt+ | + | | ## Common shortcuts @@ -10,22 +24,66 @@ ### Content editing -
            ActionPCMac
            Insert a hard break (a new paragraph)Enter 
            Insert a soft break (a <br> element)Shift+Enter⇧Enter
            Copy selected contentCtrl+C⌘C
            Paste contentCtrl+V⌘V
            Paste content as plain textCtrl+Shift+V⌘⇧V
            UndoCtrl+Z⌘Z
            RedoCtrl+Y, Ctrl+Shift+Z⌘Y, ⌘⇧Z
            Bold textCtrl+B⌘B
            Change text caseShift+F3⇧F3 (may require Fn)
            Create linkCtrl+K⌘K
            Move out of a link←←, →→ 
            Move out of an inline code style←←, →→ 
            Select allCtrl+A⌘A
            Find in the documentCtrl+F⌘F
            Copy text formattingCtrl+Shift+C⌘⇧C
            Paste text formattingCtrl+Shift+V⌘⇧V
            Italic textCtrl+I⌘I
            Strikethrough textCtrl+Shift+X⌘⇧X
            Underline textCtrl+U⌘U
            Revert autoformatting actionBackspace 
            +| Action | PC | Mac | +| --- | --- | --- | +| Insert a hard break (a new paragraph) | Enter | | +| Insert a soft break (a `
            ` element) | Shift+Enter | ⇧Enter | +| Copy selected content | Ctrl+C | ⌘C | +| Paste content | Ctrl+V | ⌘V | +| Paste content as plain text | Ctrl+Shift+V | ⌘⇧V | +| Undo | Ctrl+Z | ⌘Z | +| Redo | Ctrl+Y, Ctrl+Shift+Z | ⌘Y, ⌘⇧Z | +| Bold text | Ctrl+B | ⌘B | +| Change text case | Shift+F3 | ⇧F3 (may require Fn) | +| Create link | Ctrl+K | ⌘K | +| Move out of a link | ←←, →→ | | +| Move out of an inline code style | ←←, →→ | | +| Select all | Ctrl+A | ⌘A | +| Find in the document | Ctrl+F | ⌘F | +| Copy text formatting | Ctrl+Shift+C | ⌘⇧C | +| Paste text formatting | Ctrl+Shift+V | ⌘⇧V | +| Italic text | Ctrl+I | ⌘I | +| Strikethrough text | Ctrl+Shift+X | ⌘⇧X | +| Underline text | Ctrl+U | ⌘U | +| Revert autoformatting action | Backspace | | ### Interacting with blocks Blocks are images, tables, blockquotes, annotations. -
            ActionPCMac
            Insert a new paragraph directly after a widgetEnter 
            Insert a new paragraph directly before a widgetShift+Enter⇧Enter
            Move the caret to allow typing directly before a widget,  
            Move the caret to allow typing directly after a widget,  
            After entering a nested editable, move the selection to the closest ancestor widget. For example: move from an image caption to the whole image widget.Tab then Esc 
            +| Action | PC | Mac | +| --- | --- | --- | +| Insert a new paragraph directly after a widget | Enter | | +| Insert a new paragraph directly before a widget | Shift+Enter | ⇧Enter | +| Move the caret to allow typing directly before a widget | , | | +| Move the caret to allow typing directly after a widget | , | | +| After entering a nested editable, move the selection to the closest ancestor widget. For example: move from an image caption to the whole image widget. | Tab then Esc | | Specifically for lists: -
            ActionPCMac
            Increase list item indent 
            Decrease list item indentShift+⇧⇥
            +| Action | PC | Mac | +| --- | --- | --- | +| Increase list item indent | | | +| Decrease list item indent | Shift+ | ⇧⇥ | In tables: -
            ActionPCMac
            Move the selection to the next cell 
            Move the selection to the previous cellShift+⇧⇥
            Insert a new table row (when in the last cell of a table) 
            Navigate through the table, , ,  
            +| Action | PC | Mac | +| --- | --- | --- | +| Move the selection to the next cell | | | +| Move the selection to the previous cell | Shift+ | ⇧⇥ | +| Insert a new table row (when in the last cell of a table) | | | +| Navigate through the table | , , , | | ### General UI shortcuts -
            ActionPCMac
            Close contextual balloons, dropdowns, and dialogsEsc 
            Open the accessibility help dialogAlt+0⌥0
            Move focus between form fields (inputs, buttons, etc.), Shift+, ⇧⇥
            Move focus to the toolbar, navigate between toolbarsAlt+F10⌥F10 (may require Fn)
            Navigate through the toolbar or menu bar, , ,  
            Navigate to the next focusable field or an element outside the editorTab, Shift+Tab 
            Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content.Enter, Space 
            Move focus in and out of an active dialog windowCtrl+F6⌘F6 (may require Fn)
            \ No newline at end of file +| Action | PC | Mac | +| --- | --- | --- | +| Close contextual balloons, dropdowns, and dialogs | Esc | | +| Open the accessibility help dialog | Alt+0 | ⌥0 | +| Move focus between form fields (inputs, buttons, etc.) | , Shift+ | , ⇧⇥ | +| Move focus to the toolbar, navigate between toolbars | Alt+F10 | ⌥F10 (may require Fn) | +| Navigate through the toolbar or menu bar | , , , | | +| Navigate to the next focusable field or an element outside the editor | Tab, Shift+Tab | | +| Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content. | Enter, Space | | +| Move focus in and out of an active dialog window | Ctrl+F6 | ⌘F6 (may require Fn) | \ No newline at end of file diff --git a/docs/User Guide/User Guide/Note Types/Text/Links.md b/docs/User Guide/User Guide/Note Types/Text/Links.md index 8387ce0f1f..93d9bfcc96 100644 --- a/docs/User Guide/User Guide/Note Types/Text/Links.md +++ b/docs/User Guide/User Guide/Note Types/Text/Links.md @@ -1,51 +1,8 @@ # Links -## External links +There are two types of links: -An external link is a standard web link targeting for example a website. For example, [https://en.wikipedia.org/wiki/South\_China\_Sea](https://en.wikipedia.org/wiki/South_China_Sea) is an external link to a Wikipedia page. - -To create a link without a custom text: - -* Press in the Formatting toolbar: - * A popup will appear, type or paste the URL in the box. - * Press Enter or the check mark icon to confirm. -* Alternatively, press Ctrl+K to trigger the aforementioned popup. -* A simpler way is to paste the raw link and press space to turn it automatically into a link. - -To create a link with a custom text: - -* First, type and select the text which will be turned into a link. -* Follow the previous steps to open the link interface (via the formatting toolbar, or Ctrl+K). -* Alternatively, simply paste (Ctrl+V) over the selected text to turn it into a link. - -Once a link is inserted: - -* The text inside the link can be changed if needed but the link itself will remain. -* To modify the link, click on the link to display the popup and press the _Edit link_ button. -* To remove a link, click on it and press the _Unlink_ button. - -You can follow external link by either double clicking (will open new tab/window) it or right clicking on them and choosing "Open in new tab". - -## Internal links to notes - -Unlike external notes, internal links (links to other notes) can be created at the current position by : - -1. Pressing Ctrl + L or the button from the Formatting toolbar. -2. Filling in the desired note to link. It's also possible to create notes from this dialog by typing a non-existing note title and selecting _Create and link child note_. - -There are two link types, adjustable when creating the link to the note: - -1. _link title mirrors the note's current title_ - 1. This is sometimes also called "reference link". - 2. Title of such links cannot be changed, instead it is always mirroring the title of linked note. - 3. The icon of the note is also displayed. - 4. The link title will automatically update if the title of the note is changed. -2. _link title can be changed arbitrarily_ - 1. This is the traditional hyperlink, where the text of the link can be different to the note title. - -Once an internal link is created: - -* You can follow the note link by double clicking it. -* Alternatively if you only wish to quickly preview the content, you can hover over the link and will see read only preview. +* External links, for standard hyperlinks to websites or other resources. +* Internal (reference) links for links to other notes within Trilium. ## Pasting links diff --git a/docs/User Guide/User Guide/Note Types/Text/2_Links_image.png b/docs/User Guide/User Guide/Note Types/Text/Links/1_External links_image.png similarity index 100% rename from docs/User Guide/User Guide/Note Types/Text/2_Links_image.png rename to docs/User Guide/User Guide/Note Types/Text/Links/1_External links_image.png diff --git a/docs/User Guide/User Guide/Note Types/Text/3_Links_image.png b/docs/User Guide/User Guide/Note Types/Text/Links/2_External links_image.png similarity index 100% rename from docs/User Guide/User Guide/Note Types/Text/3_Links_image.png rename to docs/User Guide/User Guide/Note Types/Text/Links/2_External links_image.png diff --git a/docs/User Guide/User Guide/Note Types/Text/Links/External links.md b/docs/User Guide/User Guide/Note Types/Text/Links/External links.md new file mode 100644 index 0000000000..fabc2f21ee --- /dev/null +++ b/docs/User Guide/User Guide/Note Types/Text/Links/External links.md @@ -0,0 +1,24 @@ +# External links +An external link is a standard web link targeting for example a website. For example, [https://en.wikipedia.org/wiki/South\_China\_Sea](https://en.wikipedia.org/wiki/South_China_Sea) is an external link to a Wikipedia page. + +To create a link without a custom text: + +* Press in the Formatting toolbar: + * A popup will appear, type or paste the URL in the box. + * Press Enter or the check mark icon to confirm. +* Alternatively, press Ctrl+K to trigger the aforementioned popup. +* A simpler way is to paste the raw link and press space to turn it automatically into a link. + +To create a link with a custom text: + +* First, type and select the text which will be turned into a link. +* Follow the previous steps to open the link interface (via the formatting toolbar, or Ctrl+K). +* Alternatively, simply paste (Ctrl+V) over the selected text to turn it into a link. + +Once a link is inserted: + +* The text inside the link can be changed if needed but the link itself will remain. +* To modify the link, click on the link to display the popup and press the _Edit link_ button. +* To remove a link, click on it and press the _Unlink_ button. + +You can follow external link by either double clicking (will open new tab/window) it or right clicking on them and choosing "Open in new tab". \ No newline at end of file diff --git a/docs/User Guide/User Guide/Note Types/Text/Links_image.png b/docs/User Guide/User Guide/Note Types/Text/Links/External links_image.png similarity index 100% rename from docs/User Guide/User Guide/Note Types/Text/Links_image.png rename to docs/User Guide/User Guide/Note Types/Text/Links/External links_image.png diff --git a/docs/User Guide/User Guide/Note Types/Text/Links/Internal (reference) links.md b/docs/User Guide/User Guide/Note Types/Text/Links/Internal (reference) links.md new file mode 100644 index 0000000000..e45eb2cf1b --- /dev/null +++ b/docs/User Guide/User Guide/Note Types/Text/Links/Internal (reference) links.md @@ -0,0 +1,20 @@ +# Internal (reference) links +Unlike external notes, internal links (links to other notes) can be created at the current position by : + +1. Pressing Ctrl + L or the button from the Formatting toolbar. +2. Filling in the desired note to link. It's also possible to create notes from this dialog by typing a non-existing note title and selecting _Create and link child note_. + +There are two link types, adjustable when creating the link to the note: + +1. _link title mirrors the note's current title_ + 1. This is sometimes also called "reference link". + 2. Title of such links cannot be changed, instead it is always mirroring the title of linked note. + 3. The icon of the note is also displayed. + 4. The link title will automatically update if the title of the note is changed. +2. _link title can be changed arbitrarily_ + 1. This is the traditional hyperlink, where the text of the link can be different to the note title. + +Once an internal link is created: + +* You can follow the note link by double clicking it. +* Alternatively if you only wish to quickly preview the content, you can hover over the link and will see read only preview. \ No newline at end of file diff --git a/docs/User Guide/User Guide/Note Types/Text/1_Links_image.png b/docs/User Guide/User Guide/Note Types/Text/Links/Internal (reference) links.png similarity index 100% rename from docs/User Guide/User Guide/Note Types/Text/1_Links_image.png rename to docs/User Guide/User Guide/Note Types/Text/Links/Internal (reference) links.png diff --git a/docs/User Guide/User Guide/Note Types/Text/Lists.md b/docs/User Guide/User Guide/Note Types/Text/Lists.md index 51768fa47e..efa0c5a62d 100644 --- a/docs/User Guide/User Guide/Note Types/Text/Lists.md +++ b/docs/User Guide/User Guide/Note Types/Text/Lists.md @@ -23,6 +23,13 @@ For bulleted and numbered lists, it's possible to configure an alternative marke It possible to add content-level blocks such as headings, code blocks, tables within lists, as follows: -
            1First, create a list.
            2Press Enter to create a new list item.
            3Press Backspace to get rid of the bullet point. Notice the cursor position.
            4At this point, insert any desired block-level item such as a code block.
            5To continue with a new bullet point, press Enter until the cursor moves to a new blank position.
            6Press Enter once more to create the new bullet.
            +| | | | +| --- | --- | --- | +| 1 | ![](6_Lists_image.png) | First, create a list. | +| 2 | ![](4_Lists_image.png) | Press Enter to create a new list item. | +| 3 | ![](5_Lists_image.png) | Press Backspace to get rid of the bullet point. Notice the cursor position. | +| 4 | | At this point, insert any desired block-level item such as a code block. | +| 5 | | To continue with a new bullet point, press Enter until the cursor moves to a new blank position. | +| 6 | | Press Enter once more to create the new bullet. | The same principle applies to all three list types (bullet, numbered and to-do). \ No newline at end of file diff --git a/docs/User Guide/User Guide/Scripting/Events.md b/docs/User Guide/User Guide/Scripting/Events.md index 06638c5580..6dbeeeba67 100644 --- a/docs/User Guide/User Guide/Scripting/Events.md +++ b/docs/User Guide/User Guide/Scripting/Events.md @@ -5,10 +5,22 @@ Global events are attached to the script note via label. Simply create e.g. "run" label with some of these values and script note will be executed once the event occurs. -
            LabelDescription
            run

            Defines on which events script should run. Possible values are:

            • frontendStartup - when Trilium frontend starts up (or is refreshed), but not on mobile.
            • mobileStartup - when Trilium frontend starts up (or is refreshed), on mobile.
            • backendStartup - when Trilium backend starts up
            • hourly - run once an hour. You can use additional label runAtHour to specify at which hour, on the back-end.
            • daily - run once a day, on the back-end
            runOnInstanceSpecifies that the script should only run on a particular Trilium instance.
            runAtHourOn which hour should this run. Should be used together with #run=hourly. Can be defined multiple times for more runs during the day.
            +
            LabelDescription
            run

            Defines on which events script should run. Possible values are:

            • frontendStartup - when Trilium frontend starts up (or is refreshed), but not on mobile.
            • mobileStartup - when Trilium frontend starts up (or is refreshed), on mobile.
            • backendStartup - when Trilium backend starts up
            • hourly - run once an hour. You can use additional label runAtHour to specify at which hour, on the back-end.
            • daily - run once a day, on the back-end
            runOnInstanceSpecifies that the script should only run on a particular Trilium instance.
            runAtHourOn which hour should this run. Should be used together with #run=hourly. Can be defined multiple times for more runs during the day.
            ## Entity events Other events are bound to some entity, these are defined as [relations](../Advanced%20Usage/Attributes.md) - meaning that script is triggered only if note has this script attached to it through relations (or it can inherit it). -
            RelationDescription
            runOnNoteCreationexecutes when note is created on backend. Use this relation if you want to run the script for all notes created under a specific subtree. In that case, create it on the subtree root note and make it inheritable. A new note created within the subtree (any depth) will trigger the script.
            runOnChildNoteCreationexecutes when new note is created under the note where this relation is defined
            runOnNoteTitleChangeexecutes when note title is changed (includes note creation as well)
            runOnNoteContentChangeexecutes when note content is changed (includes note creation as well).
            runOnNoteChangeexecutes when note is changed (includes note creation as well). Does not include content changes
            runOnNoteDeletionexecutes when note is being deleted
            runOnBranchCreationexecutes when a branch is created. Branch is a link between parent note and child note and is created e.g. when cloning or moving note.
            runOnBranchChangeexecutes when a branch is updated. (since v0.62)
            runOnBranchDeletionexecutes when a branch is deleted. Branch is a link between parent note and child note and is deleted e.g. when moving note (old branch/link is deleted).
            runOnAttributeCreationexecutes when new attribute is created for the note which defines this relation
            runOnAttributeChangeexecutes when the attribute is changed of a note which defines this relation. This is triggered also when the attribute is deleted
            \ No newline at end of file +| Relation | Description | +| --- | --- | +| `runOnNoteCreation` | executes when note is created on backend. Use this relation if you want to run the script for all notes created under a specific subtree. In that case, create it on the subtree root note and make it inheritable. A new note created within the subtree (any depth) will trigger the script. | +| `runOnChildNoteCreation` | executes when new note is created under the note where this relation is defined | +| `runOnNoteTitleChange` | executes when note title is changed (includes note creation as well) | +| `runOnNoteContentChange` | executes when note content is changed (includes note creation as well). | +| `runOnNoteChange` | executes when note is changed (includes note creation as well). Does not include content changes | +| `runOnNoteDeletion` | executes when note is being deleted | +| `runOnBranchCreation` | executes when a branch is created. Branch is a link between parent note and child note and is created e.g. when cloning or moving note. | +| `runOnBranchChange` | executes when a branch is updated. (since v0.62) | +| `runOnBranchDeletion` | executes when a branch is deleted. Branch is a link between parent note and child note and is deleted e.g. when moving note (old branch/link is deleted). | +| `runOnAttributeCreation` | executes when new attribute is created for the note which defines this relation | +| `runOnAttributeChange` | executes when the attribute is changed of a note which defines this relation. This is triggered also when the attribute is deleted | \ No newline at end of file diff --git a/docs/User Guide/User Guide/Troubleshooting.md b/docs/User Guide/User Guide/Troubleshooting.md index 80c7a402d8..f439d11851 100644 --- a/docs/User Guide/User Guide/Troubleshooting.md +++ b/docs/User Guide/User Guide/Troubleshooting.md @@ -67,5 +67,5 @@ If you continue using the existing document file, change your password (Options Reporting bugs is highly valuable. Here are some tips: -* Use GitHub issues for reporting: [https://github.com/TriliumNext/Notes/issues](https://github.com/TriliumNext/Notes/issues) +* Use GitHub issues for reporting: [https://github.com/TriliumNext/Trilium/issues](https://github.com/TriliumNext/Trilium/issues) * Refer to the [error logs](Troubleshooting/Error%20logs.md) page for information on providing necessary details. \ No newline at end of file diff --git a/docs/User Guide/User Guide/Troubleshooting/Error logs.md b/docs/User Guide/User Guide/Troubleshooting/Error logs.md index 6ec95fbb82..ad29cb8d6f 100644 --- a/docs/User Guide/User Guide/Troubleshooting/Error logs.md +++ b/docs/User Guide/User Guide/Troubleshooting/Error logs.md @@ -26,7 +26,7 @@ Copy-paste (or screenshot) the logs. It's better to provide not just errors, but ## Providing sensitive data -If you don't feel comfortable attaching the logs or anything sensitive to the public GitHub issues, feel free to contact the devs in our Matrix [support channel](https://github.com/TriliumNext/Notes#-discuss-with-us). +If you don't feel comfortable attaching the logs or anything sensitive to the public GitHub issues, feel free to contact the devs in our Matrix [support channel](https://github.com/TriliumNext/Trilium#-discuss-with-us). Use this email to also provide anything which could assist in analysing the bug - e.g. files/images/ZIPs being imported or [anonymized database](Anonymized%20Database.md). diff --git a/docs/User Guide/User Guide/Troubleshooting/Reporting issues.md b/docs/User Guide/User Guide/Troubleshooting/Reporting issues.md index 6cd6c60bd3..65f2e00818 100644 --- a/docs/User Guide/User Guide/Troubleshooting/Reporting issues.md +++ b/docs/User Guide/User Guide/Troubleshooting/Reporting issues.md @@ -1,4 +1,4 @@ # Reporting issues -Go to [Issues · TriliumNext/Notes](https://github.com/TriliumNext/Notes/issues) and press “New issue”. +Go to [Issues · TriliumNext/Trilium](https://github.com/TriliumNext/Trilium/issues) and press “New issue”. If you are reporting a bug, select “Bug Report” and fill in the details. \ No newline at end of file diff --git a/flake.lock b/flake.lock index 0aabefa814..d77c38c697 100644 --- a/flake.lock +++ b/flake.lock @@ -38,16 +38,16 @@ }, "nixpkgs": { "locked": { - "lastModified": 1748437600, - "narHash": "sha256-hYKMs3ilp09anGO7xzfGs3JqEgUqFMnZ8GMAqI6/k04=", + "lastModified": 1751886450, + "narHash": "sha256-ODg0kj9LqBfwijQIDGC3WATqYN0sndImloD3IvinJEM=", "owner": "nixos", "repo": "nixpkgs", - "rev": "7282cb574e0607e65224d33be8241eae7cfe0979", + "rev": "979affb003b4626f2603b03ae7709dd4617b27e4", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixos-25.05", + "ref": "master", "repo": "nixpkgs", "type": "github" } @@ -60,11 +60,11 @@ ] }, "locked": { - "lastModified": 1748901165, - "narHash": "sha256-SctrxW5rVrROBLfh8p4kXfbF7NbJQDkse/Penu4PlEs=", + "lastModified": 1749022118, + "narHash": "sha256-7Qzmy1snKbxFBKoqUrfyxxmEB8rPxDdV7PQwRiAR01o=", "owner": "FliegendeWurst", "repo": "pnpm2nix-nzbr", - "rev": "cda68d63418896a58542f3310c1c757ae92b1f22", + "rev": "35f88a41d29839b3989f31871263451c8e092cb1", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 23d3e5568b..ccf7c7b5aa 100644 --- a/flake.nix +++ b/flake.nix @@ -2,7 +2,7 @@ description = "Trilium Notes (experimental flake)"; inputs = { - nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05"; + nixpkgs.url = "github:nixos/nixpkgs/master"; flake-utils.url = "github:numtide/flake-utils"; pnpm2nix = { url = "github:FliegendeWurst/pnpm2nix-nzbr"; diff --git a/package.json b/package.json index 33a72e898f..5c332cc801 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@triliumnext/source", - "version": "0.96.0", + "version": "0.97.2", "description": "Build your personal knowledge base with Trilium Notes", "directories": { "doc": "docs" @@ -12,7 +12,7 @@ "server:test": "nx test server", "server:build": "nx build server", "server:coverage": "nx test server --coverage", - "server:start": "nx run server:serve", + "server:start": "nx run server:serve --outputStyle stream", "server:start-prod": "nx run server:start-prod", "electron:build": "nx build desktop", "chore:ci-update-nightly-version": "tsx ./scripts/update-nightly-version.ts", @@ -27,39 +27,39 @@ "private": true, "devDependencies": { "@electron/rebuild": "4.0.1", - "@nx/devkit": "21.2.2", - "@nx/esbuild": "21.2.2", - "@nx/eslint": "21.2.2", - "@nx/eslint-plugin": "21.2.2", - "@nx/express": "21.2.2", - "@nx/js": "21.2.2", - "@nx/node": "21.2.2", - "@nx/playwright": "21.2.2", - "@nx/vite": "21.2.2", - "@nx/web": "21.2.2", + "@nx/devkit": "21.3.11", + "@nx/esbuild": "21.3.11", + "@nx/eslint": "21.3.11", + "@nx/eslint-plugin": "21.3.11", + "@nx/express": "21.3.11", + "@nx/js": "21.3.11", + "@nx/node": "21.3.11", + "@nx/playwright": "21.3.11", + "@nx/vite": "21.3.11", + "@nx/web": "21.3.11", "@playwright/test": "^1.36.0", "@triliumnext/server": "workspace:*", "@types/express": "^5.0.0", - "@types/node": "22.16.0", + "@types/node": "22.17.0", "@vitest/coverage-v8": "^3.0.5", "@vitest/ui": "^3.0.0", - "chalk": "5.4.1", - "cross-env": "7.0.3", + "chalk": "5.5.0", + "cross-env": "10.0.0", "dpdm": "3.14.0", "esbuild": "^0.25.0", "eslint": "^9.8.0", "eslint-config-prettier": "^10.0.0", "eslint-plugin-playwright": "^2.0.0", "happy-dom": "~18.0.0", - "jiti": "2.4.2", + "jiti": "2.5.1", "jsdom": "~26.1.0", "jsonc-eslint-parser": "^2.1.0", - "nx": "21.2.2", + "nx": "21.3.11", "react-refresh": "^0.17.0", - "rollup-plugin-webpack-stats": "2.1.0", + "rollup-plugin-webpack-stats": "2.1.3", "tslib": "^2.3.0", "tsx": "4.20.3", - "typescript": "~5.8.0", + "typescript": "~5.9.0", "typescript-eslint": "^8.19.0", "upath": "2.0.1", "vite": "^7.0.0", @@ -80,7 +80,7 @@ "url": "https://github.com/TriliumNext/Notes/issues" }, "homepage": "https://github.com/TriliumNext/Notes#readme", - "packageManager": "pnpm@10.12.4", + "packageManager": "pnpm@10.14.0", "pnpm": { "patchedDependencies": { "@ckeditor/ckeditor5-mention": "patches/@ckeditor__ckeditor5-mention.patch", @@ -89,16 +89,21 @@ "@nx/js": "patches/@nx__js.patch" }, "overrides": { - "mermaid": "11.8.0", - "preact": "10.26.9", + "mermaid": "11.9.0", + "preact": "10.27.0", "roughjs": "4.6.6", - "@types/express-serve-static-core": "5.0.6", + "@types/express-serve-static-core": "5.0.7", "flat@<5.0.1": ">=5.0.1", "debug@>=3.2.0 <3.2.7": ">=3.2.7", "nanoid@<3.3.8": ">=3.3.8", "nanoid@>=4.0.0 <5.0.9": ">=5.0.9", "dompurify@<3.2.4": ">=3.2.4", - "esbuild@<=0.24.2": ">=0.25.0" + "esbuild@<=0.24.2": ">=0.25.0", + "cookie@<0.7.0": ">=0.7.0", + "tar-fs@>=2.0.0 <2.1.3": ">=2.1.3", + "on-headers@<1.1.0": ">=1.1.0", + "form-data@>=4.0.0 <4.0.4": ">=4.0.4", + "form-data@>=3.0.0 <3.0.4": ">=3.0.4" }, "ignoredBuiltDependencies": [ "sqlite3" diff --git a/packages/ckeditor5-admonition/package.json b/packages/ckeditor5-admonition/package.json index 8197db07a5..a61de18ff0 100644 --- a/packages/ckeditor5-admonition/package.json +++ b/packages/ckeditor5-admonition/package.json @@ -35,11 +35,11 @@ "@ckeditor/ckeditor5-dev-build-tools": "43.1.0", "@ckeditor/ckeditor5-inspector": ">=4.1.0", "@ckeditor/ckeditor5-package-tools": "^4.0.0", - "@typescript-eslint/eslint-plugin": "~8.35.0", + "@typescript-eslint/eslint-plugin": "~8.39.0", "@typescript-eslint/parser": "^8.0.0", "@vitest/browser": "^3.0.5", "@vitest/coverage-istanbul": "^3.0.5", - "ckeditor5": "45.2.1", + "ckeditor5": "46.0.0", "eslint": "^9.0.0", "eslint-config-ckeditor5": ">=9.1.0", "http-server": "^14.1.0", @@ -47,13 +47,13 @@ "stylelint": "^16.0.0", "stylelint-config-ckeditor5": ">=9.1.0", "ts-node": "^10.9.1", - "typescript": "5.8.3", + "typescript": "5.9.2", "vite-plugin-svgo": "~2.0.0", "vitest": "^3.0.5", "webdriverio": "^9.0.7" }, "peerDependencies": { - "ckeditor5": "45.2.1" + "ckeditor5": "46.0.0" }, "author": "Elian Doran ", "license": "GPL-2.0-or-later", diff --git a/packages/ckeditor5-admonition/src/admonitioncommand.ts b/packages/ckeditor5-admonition/src/admonitioncommand.ts index 27381cd520..35456efbc5 100644 --- a/packages/ckeditor5-admonition/src/admonitioncommand.ts +++ b/packages/ckeditor5-admonition/src/admonitioncommand.ts @@ -8,7 +8,7 @@ */ import { Command, first } from 'ckeditor5'; -import type { DocumentFragment, Element, Position, Range, Schema, Writer } from 'ckeditor5'; +import type { ModelElement, ModelPosition, ModelRange, ModelSchema, ModelWriter, ModelDocumentFragment } from 'ckeditor5'; /** * The block quote command plugin. @@ -154,18 +154,18 @@ export default class AdmonitionCommand extends Command { * start it or end it, then the quote will be split (if needed) and the blocks * will be moved out of it, so other quoted blocks remained quoted. */ - private _removeQuote( writer: Writer, blocks: Array ): void { + private _removeQuote( writer: ModelWriter, blocks: Array ): void { // Unquote all groups of block. Iterate in the reverse order to not break following ranges. getRangesOfBlockGroups( writer, blocks ).reverse().forEach( groupRange => { if ( groupRange.start.isAtStart && groupRange.end.isAtEnd ) { - writer.unwrap( groupRange.start.parent as Element ); + writer.unwrap( groupRange.start.parent as ModelElement ); return; } // The group of blocks are at the beginning of an so let's move them left (out of the ). if ( groupRange.start.isAtStart ) { - const positionBefore = writer.createPositionBefore( groupRange.start.parent as Element ); + const positionBefore = writer.createPositionBefore( groupRange.start.parent as ModelElement ); writer.move( groupRange, positionBefore ); @@ -180,7 +180,7 @@ export default class AdmonitionCommand extends Command { // Now we are sure that groupRange.end.isAtEnd is true, so let's move the blocks right. - const positionAfter = writer.createPositionAfter( groupRange.end.parent as Element ); + const positionAfter = writer.createPositionAfter( groupRange.end.parent as ModelElement ); writer.move( groupRange, positionAfter ); } ); @@ -189,9 +189,9 @@ export default class AdmonitionCommand extends Command { /** * Applies the quote to given blocks. */ - private _applyQuote( writer: Writer, blocks: Array, type?: AdmonitionType): void { + private _applyQuote( writer: ModelWriter, blocks: Array, type?: AdmonitionType): void { this._lastType = type; - const quotesToMerge: Array = []; + const quotesToMerge: Array = []; // Quote all groups of block. Iterate in the reverse order to not break following ranges. getRangesOfBlockGroups( writer, blocks ).reverse().forEach( groupRange => { @@ -205,7 +205,7 @@ export default class AdmonitionCommand extends Command { writer.wrap( groupRange, quote ); } else if (quote.is("element")) { this.editor.model.change((writer) => { - writer.setAttribute(ADMONITION_TYPE_ATTRIBUTE, type, quote as Element); + writer.setAttribute(ADMONITION_TYPE_ATTRIBUTE, type, quote as ModelElement); }); } @@ -228,7 +228,7 @@ export default class AdmonitionCommand extends Command { } } -function findQuote( elementOrPosition: Element | Position ): Element | DocumentFragment | null { +function findQuote( elementOrPosition: ModelElement | ModelPosition ): ModelElement | ModelDocumentFragment | null { return elementOrPosition.parent!.name == 'aside' ? elementOrPosition.parent : null; } @@ -239,7 +239,7 @@ function findQuote( elementOrPosition: Element | Position ): Element | DocumentF * blocks: [ a, b, d, f, g, h ] * output ranges: [ab]c[d]e[fgh] */ -function getRangesOfBlockGroups( writer: Writer, blocks: Array ): Array { +function getRangesOfBlockGroups( writer: ModelWriter, blocks: Array ): Array { let startPosition; let i = 0; const ranges = []; @@ -266,9 +266,9 @@ function getRangesOfBlockGroups( writer: Writer, blocks: Array ): Array /** * Checks whether can wrap the block. */ -function checkCanBeQuoted( schema: Schema, block: Element ): boolean { +function checkCanBeQuoted( schema: ModelSchema, block: ModelElement ): boolean { // TMP will be replaced with schema.checkWrap(). - const isBQAllowed = schema.checkChild( block.parent as Element, 'aside' ); + const isBQAllowed = schema.checkChild( block.parent as ModelElement, 'aside' ); const isBlockAllowedInBQ = schema.checkChild( [ '$root', 'aside' ], block ); return isBQAllowed && isBlockAllowedInBQ; diff --git a/packages/ckeditor5-footnotes/package.json b/packages/ckeditor5-footnotes/package.json index cb2c95d69b..f5de208dad 100644 --- a/packages/ckeditor5-footnotes/package.json +++ b/packages/ckeditor5-footnotes/package.json @@ -36,11 +36,11 @@ "@ckeditor/ckeditor5-dev-build-tools": "43.1.0", "@ckeditor/ckeditor5-inspector": ">=4.1.0", "@ckeditor/ckeditor5-package-tools": "^4.0.0", - "@typescript-eslint/eslint-plugin": "~8.35.0", + "@typescript-eslint/eslint-plugin": "~8.39.0", "@typescript-eslint/parser": "^8.0.0", "@vitest/browser": "^3.0.5", "@vitest/coverage-istanbul": "^3.0.5", - "ckeditor5": "45.2.1", + "ckeditor5": "46.0.0", "eslint": "^9.0.0", "eslint-config-ckeditor5": ">=9.1.0", "http-server": "^14.1.0", @@ -48,13 +48,13 @@ "stylelint": "^16.0.0", "stylelint-config-ckeditor5": ">=9.1.0", "ts-node": "^10.9.1", - "typescript": "5.8.3", + "typescript": "5.9.2", "vite-plugin-svgo": "~2.0.0", "vitest": "^3.0.5", "webdriverio": "^9.0.7" }, "peerDependencies": { - "ckeditor5": "45.2.1" + "ckeditor5": "46.0.0" }, "scripts": { "build": "node ./scripts/build-dist.mjs", diff --git a/packages/ckeditor5-footnotes/src/footnote-editing/auto-formatting.ts b/packages/ckeditor5-footnotes/src/footnote-editing/auto-formatting.ts index 1390b3a26b..54d97cf103 100644 --- a/packages/ckeditor5-footnotes/src/footnote-editing/auto-formatting.ts +++ b/packages/ckeditor5-footnotes/src/footnote-editing/auto-formatting.ts @@ -1,4 +1,4 @@ -import { type Editor, Text, TextProxy, type Element, type Range, type Autoformat, inlineAutoformatEditing } from 'ckeditor5'; +import { type Editor, ModelText, ModelTextProxy, type ModelElement, type ModelRange, type Autoformat, inlineAutoformatEditing } from 'ckeditor5'; import { COMMANDS, ELEMENTS } from '../constants.js'; import { modelQueryElement, modelQueryElementsAll } from '../utils.js'; @@ -68,13 +68,13 @@ const regexMatchCallback = ( * Footnotes only get inserted if the matching range is an integer between 1 * and the number of existing footnotes + 1. */ -const formatCallback = ( ranges: Array, editor: Editor, rootElement: Element ): boolean | undefined => { +const formatCallback = ( ranges: Array, editor: Editor, rootElement: ModelElement ): boolean | undefined => { const command = editor.commands.get( COMMANDS.insertFootnote ); if ( !command || !command.isEnabled ) { return; } const text = [ ...ranges[ 0 ].getItems() ][ 0 ]; - if ( !( text instanceof TextProxy || text instanceof Text ) ) { + if ( !( text instanceof ModelTextProxy || text instanceof ModelText ) ) { return false; } const match = text.data.match( /[0-9]+/ ); @@ -108,14 +108,14 @@ const formatCallback = ( ranges: Array, editor: Editor, rootElement: Elem /** * Adds functionality to support creating footnotes using markdown syntax, e.g. `[^1]`. */ -export const addFootnoteAutoformatting = ( editor: Editor, rootElement: Element ): void => { +export const addFootnoteAutoformatting = ( editor: Editor, rootElement: ModelElement ): void => { if ( editor.plugins.has( 'Autoformat' ) ) { const autoformatPluginInstance = editor.plugins.get( 'Autoformat' ) as Autoformat; inlineAutoformatEditing( editor, autoformatPluginInstance, text => regexMatchCallback( editor, text ), - ( _, ranges: Array ) => formatCallback( ranges, editor, rootElement ) + ( _, ranges: Array ) => formatCallback( ranges, editor, rootElement ) ); } }; diff --git a/packages/ckeditor5-footnotes/src/footnote-editing/converters.ts b/packages/ckeditor5-footnotes/src/footnote-editing/converters.ts index 30d2eeecde..48b6e653b1 100644 --- a/packages/ckeditor5-footnotes/src/footnote-editing/converters.ts +++ b/packages/ckeditor5-footnotes/src/footnote-editing/converters.ts @@ -1,4 +1,4 @@ -import { type Editor, type DowncastConversionApi, type ViewContainerElement, Element, toWidget, toWidgetEditable } from 'ckeditor5'; +import { type Editor, type DowncastConversionApi, type ViewContainerElement, ModelElement, toWidget, toWidgetEditable } from 'ckeditor5'; import { ATTRIBUTES, CLASSES, ELEMENTS } from '../constants.js'; import { viewQueryElement } from '../utils.js'; @@ -232,7 +232,7 @@ export const defineConverters = ( editor: Editor ): void => { * for both data and editing downcasts. */ function createFootnoteBackLinkViewElement( - modelElement: Element, + modelElement: ModelElement, conversionApi: DowncastConversionApi ): ViewContainerElement { const viewWriter = conversionApi.writer; @@ -264,7 +264,7 @@ function createFootnoteBackLinkViewElement( * data downcast and editing downcast conversions. */ function createFootnoteReferenceViewElement( - modelElement: Element, + modelElement: ModelElement, conversionApi: DowncastConversionApi ): ViewContainerElement { const viewWriter = conversionApi.writer; @@ -301,7 +301,7 @@ function createFootnoteReferenceViewElement( * data downcast and editing downcast conversions. */ function createFootnoteItemViewElement( - modelElement: Element, + modelElement: ModelElement, conversionApi: DowncastConversionApi ): ViewContainerElement { const viewWriter = conversionApi.writer; @@ -330,7 +330,7 @@ function createFootnoteItemViewElement( */ function updateFootnoteReferenceView( data: { - item: Element; + item: ModelElement; attributeOldValue: string; attributeNewValue: string; }, @@ -339,7 +339,7 @@ function updateFootnoteReferenceView( ) { const { item, attributeNewValue: newIndex } = data; if ( - !( item instanceof Element ) || + !( item instanceof ModelElement ) || !conversionApi.consumable.consume( item, `attribute:${ ATTRIBUTES.footnoteIndex }:${ ELEMENTS.footnoteReference }` ) ) { return; diff --git a/packages/ckeditor5-footnotes/src/footnote-editing/footnote-editing.ts b/packages/ckeditor5-footnotes/src/footnote-editing/footnote-editing.ts index 5fefb68342..bd19f8d936 100644 --- a/packages/ckeditor5-footnotes/src/footnote-editing/footnote-editing.ts +++ b/packages/ckeditor5-footnotes/src/footnote-editing/footnote-editing.ts @@ -11,7 +11,7 @@ import { defineSchema } from './schema.js'; import { ATTRIBUTES, COMMANDS, ELEMENTS } from '../constants.js'; import InsertFootnoteCommand from '../insert-footnote-command.js'; import { modelQueryElement, modelQueryElementsAll } from '../utils.js'; -import { Autoformat, Batch, Element, Plugin, RootElement, viewToModelPositionOutsideModelElement, Widget, Writer } from 'ckeditor5'; +import { Autoformat, Batch, ModelElement, Plugin, ModelRootElement, viewToModelPositionOutsideModelElement, Widget, ModelWriter } from 'ckeditor5'; export default class FootnoteEditing extends Plugin { @@ -26,7 +26,7 @@ export default class FootnoteEditing extends Plugin { /** * The root element of the document. */ - public get rootElement(): RootElement { + public get rootElement(): ModelRootElement { const rootElement = this.editor.model.document.getRoot(); if ( !rootElement ) { throw new Error( 'Document has no rootElement element.' ); @@ -56,7 +56,7 @@ export default class FootnoteEditing extends Plugin { if ( diffItem.type === 'attribute' && diffItem.attributeKey === ATTRIBUTES.footnoteIndex ) { const { attributeNewValue: newFootnoteIndex } = diffItem; const footnote = [ ...diffItem.range.getItems() ].find( item => item.is( 'element', ELEMENTS.footnoteItem ) ); - const footnoteId = footnote instanceof Element && footnote.getAttribute( ATTRIBUTES.footnoteId ); + const footnoteId = footnote instanceof ModelElement && footnote.getAttribute( ATTRIBUTES.footnoteId ); if ( !footnoteId ) { return; } @@ -143,7 +143,7 @@ export default class FootnoteEditing extends Plugin { * batch these changes with the ones that instantiated them, * such that the set can be undone with a single action. */ - private _clearContents( modelWriter: Writer, footnoteContent: Element ) { + private _clearContents( modelWriter: ModelWriter, footnoteContent: ModelElement ) { const contents = modelWriter.createRangeIn( footnoteContent ); modelWriter.appendElement( 'paragraph', footnoteContent ); modelWriter.remove( contents ); @@ -155,7 +155,7 @@ export default class FootnoteEditing extends Plugin { * which triggers the `updateReferenceIds` method. modelWriter is passed in to batch these changes with * the ones that instantiated them, such that the set can be undone with a single action. */ - private _removeFootnote( modelWriter: Writer, footnote: Element ) { + private _removeFootnote( modelWriter: ModelWriter, footnote: ModelElement ) { // delete the current footnote and its references, // and renumber subsequent footnotes. if ( !this.editor ) { @@ -185,7 +185,7 @@ export default class FootnoteEditing extends Plugin { // immediately deletes the footnote. This deliberately sets the new selection position // to avoid that. const neighborFootnote = index === 0 ? footnoteSection.getChild( index ) : footnoteSection.getChild( ( index ?? 0 ) - 1 ); - if ( !( neighborFootnote instanceof Element ) ) { + if ( !( neighborFootnote instanceof ModelElement ) ) { return; } @@ -212,7 +212,7 @@ export default class FootnoteEditing extends Plugin { * all references are deleted. modelWriter is passed in to batch these changes with * the ones that instantiated them, such that the set can be undone with a single action. */ - private _removeReferences( modelWriter: Writer, footnoteId: string | undefined = undefined ) { + private _removeReferences( modelWriter: ModelWriter, footnoteId: string | undefined = undefined ) { const removeList: Array = []; if ( !this.rootElement ) { throw new Error( 'Document has no root element.' ); diff --git a/packages/ckeditor5-footnotes/src/footnote-editing/schema.ts b/packages/ckeditor5-footnotes/src/footnote-editing/schema.ts index 0049145712..b26f8ec2c7 100644 --- a/packages/ckeditor5-footnotes/src/footnote-editing/schema.ts +++ b/packages/ckeditor5-footnotes/src/footnote-editing/schema.ts @@ -1,5 +1,5 @@ // eslint-disable-next-line no-restricted-imports -import { Schema } from 'ckeditor5'; +import { ModelSchema } from 'ckeditor5'; import { ATTRIBUTES, ELEMENTS } from '../constants.js'; /** @@ -7,7 +7,7 @@ import { ATTRIBUTES, ELEMENTS } from '../constants.js'; * See here for the meanings of each rule: * https://ckeditor.com/docs/ckeditor5/latest/api/module_engine_model_schema-SchemaItemDefinition.html#member-isObject */ -export const defineSchema = ( schema: Schema ): void => { +export const defineSchema = ( schema: ModelSchema ): void => { /** * Footnote section at the footer of the document. */ diff --git a/packages/ckeditor5-footnotes/src/insert-footnote-command.ts b/packages/ckeditor5-footnotes/src/insert-footnote-command.ts index 30789660c6..27d1a61ed0 100644 --- a/packages/ckeditor5-footnotes/src/insert-footnote-command.ts +++ b/packages/ckeditor5-footnotes/src/insert-footnote-command.ts @@ -1,4 +1,4 @@ -import { Command, type Element, type RootElement, type Writer } from "ckeditor5"; +import { Command, type ModelElement, type ModelRootElement, type ModelWriter } from "ckeditor5"; import { ATTRIBUTES, ELEMENTS } from './constants.js'; import { modelQueryElement } from './utils.js'; @@ -82,7 +82,7 @@ export default class InsertFootnoteCommand extends Command { /** * Returns the footnote section if it exists, or creates on if it doesn't. */ - private _getFootnoteSection( writer: Writer, rootElement: RootElement ): Element { + private _getFootnoteSection( writer: ModelWriter, rootElement: ModelRootElement ): ModelElement { const footnoteSection = modelQueryElement( this.editor, rootElement, element => element.is( 'element', ELEMENTS.footnoteSection ) ); diff --git a/packages/ckeditor5-footnotes/src/utils.ts b/packages/ckeditor5-footnotes/src/utils.ts index 5121b8b5cd..43dee09366 100644 --- a/packages/ckeditor5-footnotes/src/utils.ts +++ b/packages/ckeditor5-footnotes/src/utils.ts @@ -1,4 +1,4 @@ -import { type Editor, Element, Text, TextProxy, ViewElement } from 'ckeditor5'; +import { type Editor, ModelElement, ModelText, ModelTextProxy, ViewElement } from 'ckeditor5'; // There's ample DRY violation in this file; type checking // polymorphism without full typescript is just incredibly finicky. @@ -11,14 +11,14 @@ import { type Editor, Element, Text, TextProxy, ViewElement } from 'ckeditor5'; */ export const modelQueryElementsAll = ( editor: Editor, - rootElement: Element, - predicate: ( item: Element ) => boolean = _ => true -): Array => { + rootElement: ModelElement, + predicate: ( item: ModelElement ) => boolean = _ => true +): Array => { const range = editor.model.createRangeIn( rootElement ); - const output: Array = []; + const output: Array = []; for ( const item of range.getItems() ) { - if ( !( item instanceof Element ) ) { + if ( !( item instanceof ModelElement ) ) { continue; } @@ -35,14 +35,14 @@ export const modelQueryElementsAll = ( */ export const modelQueryTextAll = ( editor: Editor, - rootElement: Element, - predicate: ( item: Text | TextProxy ) => boolean = _ => true -): Array => { + rootElement: ModelElement, + predicate: ( item: ModelText | ModelTextProxy ) => boolean = _ => true +): Array => { const range = editor.model.createRangeIn( rootElement ); - const output: Array = []; + const output: Array = []; for ( const item of range.getItems() ) { - if ( !( item instanceof Text || item instanceof TextProxy ) ) { + if ( !( item instanceof ModelText || item instanceof ModelTextProxy ) ) { continue; } @@ -59,13 +59,13 @@ export const modelQueryTextAll = ( */ export const modelQueryElement = ( editor: Editor, - rootElement: Element, - predicate: ( item: Element ) => boolean = _ => true -): Element | null => { + rootElement: ModelElement, + predicate: ( item: ModelElement ) => boolean = _ => true +): ModelElement | null => { const range = editor.model.createRangeIn( rootElement ); for ( const item of range.getItems() ) { - if ( !( item instanceof Element ) ) { + if ( !( item instanceof ModelElement ) ) { continue; } @@ -82,13 +82,13 @@ export const modelQueryElement = ( */ export const modelQueryText = ( editor: Editor, - rootElement: Element, - predicate: ( item: Text | TextProxy ) => boolean = _ => true -): Text | TextProxy | null => { + rootElement: ModelElement, + predicate: ( item: ModelText | ModelTextProxy ) => boolean = _ => true +): ModelText | ModelTextProxy | null => { const range = editor.model.createRangeIn( rootElement ); for ( const item of range.getItems() ) { - if ( !( item instanceof Text || item instanceof TextProxy ) ) { + if ( !( item instanceof ModelText || item instanceof ModelTextProxy ) ) { continue; } diff --git a/packages/ckeditor5-keyboard-marker/package.json b/packages/ckeditor5-keyboard-marker/package.json index 60234e9ff9..7ed920afa4 100644 --- a/packages/ckeditor5-keyboard-marker/package.json +++ b/packages/ckeditor5-keyboard-marker/package.json @@ -38,11 +38,11 @@ "@ckeditor/ckeditor5-dev-build-tools": "43.1.0", "@ckeditor/ckeditor5-inspector": ">=4.1.0", "@ckeditor/ckeditor5-package-tools": "^4.0.0", - "@typescript-eslint/eslint-plugin": "~8.35.0", + "@typescript-eslint/eslint-plugin": "~8.39.0", "@typescript-eslint/parser": "^8.0.0", "@vitest/browser": "^3.0.5", "@vitest/coverage-istanbul": "^3.0.5", - "ckeditor5": "45.2.1", + "ckeditor5": "46.0.0", "eslint": "^9.0.0", "eslint-config-ckeditor5": ">=9.1.0", "http-server": "^14.1.0", @@ -50,13 +50,13 @@ "stylelint": "^16.0.0", "stylelint-config-ckeditor5": ">=9.1.0", "ts-node": "^10.9.1", - "typescript": "5.8.3", + "typescript": "5.9.2", "vite-plugin-svgo": "~2.0.0", "vitest": "^3.0.5", "webdriverio": "^9.0.7" }, "peerDependencies": { - "ckeditor5": "45.2.1" + "ckeditor5": "46.0.0" }, "scripts": { "build": "node ./scripts/build-dist.mjs", diff --git a/packages/ckeditor5-math/package.json b/packages/ckeditor5-math/package.json index cb3d162ae3..d03f52f9ce 100644 --- a/packages/ckeditor5-math/package.json +++ b/packages/ckeditor5-math/package.json @@ -39,11 +39,11 @@ "@ckeditor/ckeditor5-dev-utils": "43.1.0", "@ckeditor/ckeditor5-inspector": ">=4.1.0", "@ckeditor/ckeditor5-package-tools": "^4.0.0", - "@typescript-eslint/eslint-plugin": "~8.35.0", + "@typescript-eslint/eslint-plugin": "~8.39.0", "@typescript-eslint/parser": "^8.0.0", "@vitest/browser": "^3.0.5", "@vitest/coverage-istanbul": "^3.0.5", - "ckeditor5": "45.2.1", + "ckeditor5": "46.0.0", "eslint": "^9.0.0", "eslint-config-ckeditor5": ">=9.1.0", "http-server": "^14.1.0", @@ -51,13 +51,13 @@ "stylelint": "^16.0.0", "stylelint-config-ckeditor5": ">=9.1.0", "ts-node": "^10.9.1", - "typescript": "5.8.3", + "typescript": "5.9.2", "vite-plugin-svgo": "~2.0.0", "vitest": "^3.0.5", "webdriverio": "^9.0.7" }, "peerDependencies": { - "ckeditor5": "45.2.1" + "ckeditor5": "46.0.0" }, "scripts": { "build": "node ./scripts/build-dist.mjs", @@ -90,6 +90,6 @@ } }, "dependencies": { - "@ckeditor/ckeditor5-icons": "45.2.1" + "@ckeditor/ckeditor5-icons": "46.0.0" } } diff --git a/packages/ckeditor5-math/src/automath.ts b/packages/ckeditor5-math/src/automath.ts index bf16eacae8..4e54f78cfd 100644 --- a/packages/ckeditor5-math/src/automath.ts +++ b/packages/ckeditor5-math/src/automath.ts @@ -1,4 +1,4 @@ -import { Clipboard, Plugin, type Editor, LivePosition, LiveRange, Undo } from 'ckeditor5'; +import { Clipboard, Plugin, type Editor, ModelLivePosition, ModelLiveRange, Undo } from 'ckeditor5'; import { extractDelimiters, hasDelimiters, delimitersCounts } from './utils.js'; export default class AutoMath extends Plugin { @@ -11,7 +11,7 @@ export default class AutoMath extends Plugin { } private _timeoutId: null | number; - private _positionToInsert: null | LivePosition; + private _positionToInsert: null | ModelLivePosition; constructor( editor: Editor ) { super( editor ); @@ -31,10 +31,10 @@ export default class AutoMath extends Plugin { return; } - const leftLivePosition = LivePosition.fromPosition( firstRange.start ); + const leftLivePosition = ModelLivePosition.fromPosition( firstRange.start ); leftLivePosition.stickiness = 'toPrevious'; - const rightLivePosition = LivePosition.fromPosition( firstRange.end ); + const rightLivePosition = ModelLivePosition.fromPosition( firstRange.end ); rightLivePosition.stickiness = 'toNext'; modelDocument.once( 'change:data', () => { @@ -63,15 +63,15 @@ export default class AutoMath extends Plugin { } private _mathBetweenPositions( - leftPosition: LivePosition, - rightPosition: LivePosition + leftPosition: ModelLivePosition, + rightPosition: ModelLivePosition ) { const editor = this.editor; // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const mathConfig = this.editor.config.get( 'math' ); - const equationRange = new LiveRange( leftPosition, rightPosition ); + const equationRange = new ModelLiveRange( leftPosition, rightPosition ); const walker = equationRange.getWalker( { ignoreElementEnd: true } ); let text = ''; @@ -97,7 +97,7 @@ export default class AutoMath extends Plugin { return; } - this._positionToInsert = LivePosition.fromPosition( leftPosition ); + this._positionToInsert = ModelLivePosition.fromPosition( leftPosition ); // With timeout user can undo conversation if want use plain text this._timeoutId = window.setTimeout( () => { @@ -106,7 +106,7 @@ export default class AutoMath extends Plugin { writer.remove( equationRange ); - let insertPosition: LivePosition | null; + let insertPosition: ModelLivePosition | null; // Check if position where the math element should be inserted is still valid. if ( this._positionToInsert?.root.rootName !== '$graveyard' ) { diff --git a/packages/ckeditor5-math/src/mathediting.ts b/packages/ckeditor5-math/src/mathediting.ts index 0c51653c39..bd026829cb 100644 --- a/packages/ckeditor5-math/src/mathediting.ts +++ b/packages/ckeditor5-math/src/mathediting.ts @@ -1,5 +1,5 @@ import MathCommand from './mathcommand.js'; -import { type Editor, Plugin, toWidget, Widget, viewToModelPositionOutsideModelElement, type DowncastWriter, type Element, CKEditorError, uid } from 'ckeditor5'; +import { type Editor, Plugin, toWidget, Widget, viewToModelPositionOutsideModelElement, type ViewDowncastWriter, type ModelElement, CKEditorError, uid } from 'ckeditor5'; import { renderEquation, extractDelimiters } from './utils.js'; export default class MathEditing extends Plugin { @@ -211,8 +211,8 @@ export default class MathEditing extends Plugin { // Create view for editor function createMathtexEditingView( - modelItem: Element, - writer: DowncastWriter + modelItem: ModelElement, + writer: ViewDowncastWriter ) { const equation = String( modelItem.getAttribute( 'equation' ) ); const display = !!modelItem.getAttribute( 'display' ); @@ -261,8 +261,8 @@ export default class MathEditing extends Plugin { // Create view for data function createMathtexView( - modelItem: Element, - { writer }: { writer: DowncastWriter } + modelItem: ModelElement, + { writer }: { writer: ViewDowncastWriter } ) { const equation = modelItem.getAttribute( 'equation' ); if ( typeof equation != 'string' ) { diff --git a/packages/ckeditor5-math/src/utils.ts b/packages/ckeditor5-math/src/utils.ts index 2e120b6c2d..05df08fcec 100644 --- a/packages/ckeditor5-math/src/utils.ts +++ b/packages/ckeditor5-math/src/utils.ts @@ -1,10 +1,10 @@ -import type { Editor, Element as CKElement, DocumentSelection, PositioningFunction } from 'ckeditor5'; +import type { Editor, ModelElement, ModelDocumentSelection, PositioningFunction } from 'ckeditor5'; import { BalloonPanelView, CKEditorError } from 'ckeditor5'; import type { KatexOptions, MathJax2, MathJax3 } from './typings-external.js'; export function getSelectedMathModelWidget( - selection: DocumentSelection -): null | CKElement { + selection: ModelDocumentSelection +): null | ModelElement { const selectedElement = selection.getSelectedElement(); if ( diff --git a/packages/ckeditor5-mermaid/package.json b/packages/ckeditor5-mermaid/package.json index 2017d32804..939d34c0bc 100644 --- a/packages/ckeditor5-mermaid/package.json +++ b/packages/ckeditor5-mermaid/package.json @@ -38,11 +38,11 @@ "@ckeditor/ckeditor5-dev-build-tools": "43.1.0", "@ckeditor/ckeditor5-inspector": ">=4.1.0", "@ckeditor/ckeditor5-package-tools": "^4.0.0", - "@typescript-eslint/eslint-plugin": "~8.35.0", + "@typescript-eslint/eslint-plugin": "~8.39.0", "@typescript-eslint/parser": "^8.0.0", "@vitest/browser": "^3.0.5", "@vitest/coverage-istanbul": "^3.0.5", - "ckeditor5": "45.2.1", + "ckeditor5": "46.0.0", "eslint": "^9.0.0", "eslint-config-ckeditor5": ">=9.1.0", "http-server": "^14.1.0", @@ -50,13 +50,13 @@ "stylelint": "^16.0.0", "stylelint-config-ckeditor5": ">=9.1.0", "ts-node": "^10.9.1", - "typescript": "5.8.3", + "typescript": "5.9.2", "vite-plugin-svgo": "~2.0.0", "vitest": "^3.0.5", "webdriverio": "^9.0.7" }, "peerDependencies": { - "ckeditor5": "45.2.1" + "ckeditor5": "46.0.0" }, "scripts": { "build": "node ./scripts/build-dist.mjs", diff --git a/packages/ckeditor5-mermaid/src/commands/mermaidPreviewCommand.ts b/packages/ckeditor5-mermaid/src/commands/mermaidPreviewCommand.ts index 420ab111ba..b4de57f8b3 100644 --- a/packages/ckeditor5-mermaid/src/commands/mermaidPreviewCommand.ts +++ b/packages/ckeditor5-mermaid/src/commands/mermaidPreviewCommand.ts @@ -1,5 +1,5 @@ import { checkIsOn } from '../utils.js'; -import { Command, Element } from 'ckeditor5'; +import { Command, ModelElement } from 'ckeditor5'; /** * The mermaid preview command. @@ -27,7 +27,7 @@ export default class MermaidPreviewCommand extends Command { const editor = this.editor; const model = editor.model; const documentSelection = this.editor.model.document.selection; - const mermaidItem = (documentSelection.getSelectedElement() || documentSelection.getLastPosition()?.parent) as Element; + const mermaidItem = (documentSelection.getSelectedElement() || documentSelection.getLastPosition()?.parent) as ModelElement; if (mermaidItem) { model.change( writer => { diff --git a/packages/ckeditor5-mermaid/src/commands/mermaidSourceViewCommand.ts b/packages/ckeditor5-mermaid/src/commands/mermaidSourceViewCommand.ts index 67e5e19548..fd623a6b2e 100644 --- a/packages/ckeditor5-mermaid/src/commands/mermaidSourceViewCommand.ts +++ b/packages/ckeditor5-mermaid/src/commands/mermaidSourceViewCommand.ts @@ -1,5 +1,5 @@ import { checkIsOn } from '../utils.js'; -import { Command, Element } from 'ckeditor5'; +import { Command, ModelElement } from 'ckeditor5'; /** * The mermaid source view command. @@ -29,7 +29,7 @@ export default class MermaidSourceViewCommand extends Command { const editor = this.editor; const model = editor.model; const documentSelection = this.editor.model.document.selection; - const mermaidItem = (documentSelection.getSelectedElement() || documentSelection.getLastPosition()?.parent) as Element; + const mermaidItem = (documentSelection.getSelectedElement() || documentSelection.getLastPosition()?.parent) as ModelElement; model.change( writer => { if ( mermaidItem.getAttribute( 'displayMode' ) !== 'source' ) { diff --git a/packages/ckeditor5-mermaid/src/commands/mermaidSplitViewCommand.ts b/packages/ckeditor5-mermaid/src/commands/mermaidSplitViewCommand.ts index 692e707cb6..d78c4c0605 100644 --- a/packages/ckeditor5-mermaid/src/commands/mermaidSplitViewCommand.ts +++ b/packages/ckeditor5-mermaid/src/commands/mermaidSplitViewCommand.ts @@ -3,7 +3,7 @@ */ import { checkIsOn } from '../utils.js'; -import { Command, Element } from 'ckeditor5'; +import { Command, ModelElement } from 'ckeditor5'; /** * The mermaid split view command. @@ -31,7 +31,7 @@ export default class MermaidSplitViewCommand extends Command { const editor = this.editor; const model = editor.model; const documentSelection = this.editor.model.document.selection; - const mermaidItem = (documentSelection.getSelectedElement() || documentSelection.getLastPosition()?.parent) as Element; + const mermaidItem = (documentSelection.getSelectedElement() || documentSelection.getLastPosition()?.parent) as ModelElement; model.change( writer => { if ( mermaidItem.getAttribute( 'displayMode' ) !== 'split' ) { diff --git a/packages/ckeditor5-mermaid/src/mermaidediting.ts b/packages/ckeditor5-mermaid/src/mermaidediting.ts index 1e2fc2e88a..05d7af480b 100644 --- a/packages/ckeditor5-mermaid/src/mermaidediting.ts +++ b/packages/ckeditor5-mermaid/src/mermaidediting.ts @@ -8,7 +8,7 @@ import MermaidPreviewCommand from './commands/mermaidPreviewCommand.js'; import MermaidSourceViewCommand from './commands/mermaidSourceViewCommand.js'; import MermaidSplitViewCommand from './commands/mermaidSplitViewCommand.js'; import InsertMermaidCommand from './commands/insertMermaidCommand.js'; -import { DowncastAttributeEvent, DowncastConversionApi, EditorConfig, Element, EventInfo, Item, Node, Plugin, toWidget, UpcastConversionApi, UpcastConversionData, ViewElement, ViewText, ViewUIElement } from 'ckeditor5'; +import { DowncastAttributeEvent, DowncastConversionApi, EditorConfig, ModelElement, EventInfo, ModelItem, ModelNode, Plugin, toWidget, UpcastConversionApi, UpcastConversionData, ViewElement, ViewText, ViewUIElement } from 'ckeditor5'; // Time in milliseconds. const DEBOUNCE_TIME = 300; @@ -95,7 +95,7 @@ export default class MermaidEditing extends Plugin { return; } - const targetViewPosition = mapper.toViewPosition( model.createPositionBefore( data.item as Item ) ); + const targetViewPosition = mapper.toViewPosition( model.createPositionBefore( data.item as ModelItem ) ); // For downcast we're using only language-mermaid class. We don't set class to `mermaid language-mermaid` as // multiple markdown converters that we have seen are using only `language-mermaid` class and not `mermaid` alone. const code = writer.createContainerElement( 'code', { @@ -109,7 +109,7 @@ export default class MermaidEditing extends Plugin { writer.insert( model.createPositionAt( code, 'end' ) as any, sourceTextNode ); writer.insert( model.createPositionAt( pre, 'end' ) as any, code ); writer.insert( targetViewPosition, pre ); - mapper.bindElements( data.item as Element, code as ViewElement ); + mapper.bindElements( data.item as ModelElement, code as ViewElement ); } _mermaidDowncast( evt: EventInfo, data: DowncastConversionData, conversionApi: DowncastConversionApi ) { @@ -122,7 +122,7 @@ export default class MermaidEditing extends Plugin { return; } - const targetViewPosition = mapper.toViewPosition( model.createPositionBefore( data.item as Item ) ); + const targetViewPosition = mapper.toViewPosition( model.createPositionBefore( data.item as ModelItem ) ); const wrapperAttributes = { class: [ 'ck-mermaid__wrapper' ] @@ -144,7 +144,7 @@ export default class MermaidEditing extends Plugin { writer.insert( targetViewPosition, wrapper ); - mapper.bindElements( data.item as Element, wrapper ); + mapper.bindElements( data.item as ModelElement, wrapper ); return toWidget( wrapper, writer, { label: t( 'Mermaid widget' ), @@ -158,7 +158,7 @@ export default class MermaidEditing extends Plugin { const debouncedListener = debounce( event => { editor.model.change( writer => { - writer.setAttribute( 'source', event.target.value, data.item as Node ); + writer.setAttribute( 'source', event.target.value, data.item as ModelNode ); } ); }, DEBOUNCE_TIME ); @@ -171,7 +171,7 @@ export default class MermaidEditing extends Plugin { // Move the selection onto the mermaid widget if it's currently not selected. if ( selectedElement !== data.item ) { - model.change( writer => writer.setSelection( data.item as Node, 'on' ) ); + model.change( writer => writer.setSelection( data.item as ModelNode, 'on' ) ); } }, true ); @@ -200,7 +200,7 @@ export default class MermaidEditing extends Plugin { const domConverter = this.editor.editing.view.domConverter; if ( newSource ) { - const mermaidView = conversionApi.mapper.toViewElement( data.item as Element ); + const mermaidView = conversionApi.mapper.toViewElement( data.item as ModelElement ); if (!mermaidView) { return; } @@ -208,7 +208,7 @@ export default class MermaidEditing extends Plugin { for ( const _child of mermaidView.getChildren() ) { const child = _child as ViewElement; if ( child.name === 'textarea' && child.hasClass( 'ck-mermaid__editing-view' ) ) { - // Text & HTMLElement & Node & DocumentFragment + // Text & HTMLElement & ModelNode & DocumentFragment const domEditingTextarea = domConverter.viewToDom(child) as HTMLElement as HTMLInputElement; if ( domEditingTextarea.value != newSource ) { diff --git a/packages/ckeditor5-mermaid/src/mermaidui.ts b/packages/ckeditor5-mermaid/src/mermaidui.ts index e7109c0c0b..d5fc6519eb 100644 --- a/packages/ckeditor5-mermaid/src/mermaidui.ts +++ b/packages/ckeditor5-mermaid/src/mermaidui.ts @@ -7,7 +7,7 @@ import previewModeIcon from '../theme/icons/preview-mode.svg'; import splitModeIcon from '../theme/icons/split-mode.svg'; import sourceModeIcon from '../theme/icons/source-mode.svg'; import infoIcon from '../theme/icons/info.svg'; -import { ButtonView, Editor, Element, Locale, Observable, Plugin } from 'ckeditor5'; +import { ButtonView, Editor, ModelElement, Locale, Observable, Plugin } from 'ckeditor5'; import InsertMermaidCommand from './commands/insertMermaidCommand.js'; /* global window, document */ @@ -69,7 +69,7 @@ export default class MermaidUI extends Plugin { // Execute the command when the button is clicked. command.listenTo( buttonView, 'execute', () => { - const mermaidItem = editor.execute( 'insertMermaidCommand' ) as Element; + const mermaidItem = editor.execute( 'insertMermaidCommand' ) as ModelElement; const mermaidItemViewElement = editor.editing.mapper.toViewElement( mermaidItem ); view.scrollToTheSelection(); diff --git a/packages/ckeditor5/package.json b/packages/ckeditor5/package.json index a1fe0d0cd0..1f7ccfb2ec 100644 --- a/packages/ckeditor5/package.json +++ b/packages/ckeditor5/package.json @@ -35,8 +35,8 @@ "@triliumnext/ckeditor5-keyboard-marker": "workspace:*", "@triliumnext/ckeditor5-math": "workspace:*", "@triliumnext/ckeditor5-mermaid": "workspace:*", - "ckeditor5": "45.2.1", - "ckeditor5-premium-features": "45.2.1" + "ckeditor5": "46.0.0", + "ckeditor5-premium-features": "46.0.0" }, "devDependencies": { "@types/jquery": "3.5.32" diff --git a/packages/ckeditor5/src/index.ts b/packages/ckeditor5/src/index.ts index cc3db23c44..0bdc4c493e 100644 --- a/packages/ckeditor5/src/index.ts +++ b/packages/ckeditor5/src/index.ts @@ -5,7 +5,7 @@ import { BalloonEditor, DecoupledEditor, FindAndReplaceEditing, FindCommand } fr import "./translation_overrides.js"; export { EditorWatchdog } from "ckeditor5"; export { PREMIUM_PLUGINS } from "./plugins.js"; -export type { EditorConfig, MentionFeed, MentionFeedObjectItem, Node, Position, Element, WatchdogConfig } from "ckeditor5"; +export type { EditorConfig, MentionFeed, MentionFeedObjectItem, ModelNode, ModelPosition, ModelElement, WatchdogConfig } from "ckeditor5"; export type { TemplateDefinition } from "ckeditor5-premium-features"; export { default as buildExtraCommands } from "./extra_slash_commands.js"; diff --git a/packages/ckeditor5/src/plugins/file_upload/fileuploadcommand.ts b/packages/ckeditor5/src/plugins/file_upload/fileuploadcommand.ts index d5a2c7237c..56f9b76b0a 100644 --- a/packages/ckeditor5/src/plugins/file_upload/fileuploadcommand.ts +++ b/packages/ckeditor5/src/plugins/file_upload/fileuploadcommand.ts @@ -1,4 +1,4 @@ -import { Command, FileRepository, Model, type NodeAttributes, type Writer } from "ckeditor5"; +import { Command, FileRepository, Model, type ModelNodeAttributes, type ModelWriter } from "ckeditor5"; interface FileUploadOpts { file: File[]; @@ -34,7 +34,7 @@ export default class FileUploadCommand extends Command { /** * Handles uploading single file. */ -function uploadFile( writer: Writer, model: Model, fileRepository: FileRepository, file: File ) { +function uploadFile( writer: ModelWriter, model: Model, fileRepository: FileRepository, file: File ) { const loader = fileRepository.createLoader( file ); // Do not throw when upload adapter is not set. FileRepository will log an error anyway. @@ -45,7 +45,7 @@ function uploadFile( writer: Writer, model: Model, fileRepository: FileRepositor insertFileLink( writer, model, { href: '', uploadId: loader.id }, file ); } -function insertFileLink( writer: Writer, model: Model, attributes: NodeAttributes = {}, file: File ) { +function insertFileLink( writer: ModelWriter, model: Model, attributes: ModelNodeAttributes = {}, file: File ) { const placeholder = writer.createElement( 'reference', attributes ); model.insertContent( placeholder, model.document.selection ); writer.insertText( ' ', placeholder, 'after' ); diff --git a/packages/ckeditor5/src/plugins/file_upload/fileuploadediting.ts b/packages/ckeditor5/src/plugins/file_upload/fileuploadediting.ts index b44b11126a..dcca223f59 100644 --- a/packages/ckeditor5/src/plugins/file_upload/fileuploadediting.ts +++ b/packages/ckeditor5/src/plugins/file_upload/fileuploadediting.ts @@ -1,4 +1,4 @@ -import { Clipboard, FileRepository, Notification, Plugin, UpcastWriter, ViewElement, type Editor, type FileLoader, type Item, type Node, type ViewItem, type ViewRange } from 'ckeditor5'; +import { Clipboard, FileRepository, Notification, Plugin, UpcastWriter, ViewElement, type Editor, type FileLoader, type ModelItem, type ModelNode, type ViewItem, type ViewRange } from 'ckeditor5'; import FileUploadCommand from './fileuploadcommand'; export default class FileUploadEditing extends Plugin { @@ -58,7 +58,7 @@ export default class FileUploadEditing extends Plugin { this.listenTo( editor.plugins.get( Clipboard ), 'inputTransformation', ( evt, data ) => { const fetchableFiles = Array.from( editor.editing.view.createRangeIn( data.content ) ) - .filter( value => isLocalFile( value.item ) && !(value.item as unknown as Node).getAttribute( 'uploadProcessed' ) ) + .filter( value => isLocalFile( value.item ) && !(value.item as unknown as ModelNode).getAttribute( 'uploadProcessed' ) ) .map( value => { return { promise: fetchLocalFile( value.item ), fileElement: value as unknown as ViewElement }; } ); @@ -123,7 +123,7 @@ export default class FileUploadEditing extends Plugin { } ); } - _readAndUpload( loader: FileLoader, fileElement: Item ) { + _readAndUpload( loader: FileLoader, fileElement: ModelItem ) { const editor = this.editor; const model = editor.model; const t = editor.locale.t; @@ -195,7 +195,7 @@ export default class FileUploadEditing extends Plugin { function fetchLocalFile( link: ViewItem ) { return new Promise( ( resolve, reject ) => { - const href = (link as unknown as Node).getAttribute( 'href' ) as string; + const href = (link as unknown as ModelNode).getAttribute( 'href' ) as string; // Fetch works asynchronously and so does not block the browser UI when processing data. fetch( href ) @@ -250,7 +250,7 @@ export function isHtmlIncluded( dataTransfer: DataTransfer ) { return Array.from( dataTransfer.types ).includes( 'text/html' ) && dataTransfer.getData( 'text/html' ) !== ''; } -function getFileLinksFromChangeItem( editor: Editor, item: Item ) { +function getFileLinksFromChangeItem( editor: Editor, item: ModelItem ) { return Array.from( editor.model.createRangeOn( item ) ) .filter( value => value.item.hasAttribute( 'href' ) ) .map( value => value.item ); diff --git a/packages/ckeditor5/src/plugins/indent_block_shortcut.ts b/packages/ckeditor5/src/plugins/indent_block_shortcut.ts index ce00462a5e..2e65e978c8 100644 --- a/packages/ckeditor5/src/plugins/indent_block_shortcut.ts +++ b/packages/ckeditor5/src/plugins/indent_block_shortcut.ts @@ -2,7 +2,7 @@ * https://github.com/zadam/trilium/issues/978 */ -import { DocumentFragment, Element, Plugin, Position } from "ckeditor5"; +import { ModelDocumentFragment, ModelElement, Plugin, ModelPosition } from "ckeditor5"; export default class IndentBlockShortcutPlugin extends Plugin { @@ -28,7 +28,7 @@ export default class IndentBlockShortcutPlugin extends Plugin { // in table TAB should switch cells isInTable() { - let el: Position | Element | DocumentFragment | null = this.editor.model.document.selection.getFirstPosition(); + let el: ModelPosition | ModelElement | ModelDocumentFragment | null = this.editor.model.document.selection.getFirstPosition(); while (el) { if ("name" in el && el.name === 'tableCell') { diff --git a/packages/ckeditor5/src/plugins/mention_customization.ts b/packages/ckeditor5/src/plugins/mention_customization.ts index 2c747bd184..6b844a5f61 100644 --- a/packages/ckeditor5/src/plugins/mention_customization.ts +++ b/packages/ckeditor5/src/plugins/mention_customization.ts @@ -1,4 +1,4 @@ -import { Command, Mention, Plugin, Range, type Selectable } from "ckeditor5"; +import { Command, Mention, Plugin, ModelRange, type ModelSelectable } from "ckeditor5"; /** * Overrides the actions taken by the Mentions plugin (triggered by `@` in the text editor, or `~` & `#` in the attribute editor): @@ -31,7 +31,7 @@ interface MentionOpts { }; marker: string; text?: string; - range?: Range; + range?: ModelRange; } interface MentionAttribute { @@ -48,7 +48,7 @@ class CustomMentionCommand extends Command { const {document} = model; const {selection} = document; const mention = options.mention as unknown as MentionAttribute; - const range = (options.range || selection.getFirstRange()) as Selectable; + const range = (options.range || selection.getFirstRange()) as ModelSelectable; if (mention.id.startsWith('#') || mention.id.startsWith('~')) { model.change(writer => { @@ -69,7 +69,7 @@ class CustomMentionCommand extends Command { } } - insertReference(range: Selectable, notePath: string) { + insertReference(range: ModelSelectable, notePath: string) { const {model} = this.editor; model.change(writer => { diff --git a/packages/ckeditor5/src/plugins/move_block_updown.ts b/packages/ckeditor5/src/plugins/move_block_updown.ts index 32a5c39a10..2c6e7dc805 100644 --- a/packages/ckeditor5/src/plugins/move_block_updown.ts +++ b/packages/ckeditor5/src/plugins/move_block_updown.ts @@ -2,7 +2,7 @@ * https://github.com/TriliumNext/Trilium/issues/1002 */ -import { Command, DocumentSelection, Element, Node, Plugin, Range } from 'ckeditor5'; +import { Command, ModelDocumentSelection, ModelElement, ModelNode, Plugin, ModelRange } from 'ckeditor5'; export default class MoveBlockUpDownPlugin extends Plugin { init() { @@ -46,7 +46,7 @@ export default class MoveBlockUpDownPlugin extends Plugin { abstract class MoveBlockUpDownCommand extends Command { - abstract getSibling(selectedBlock: Element): Node | null; + abstract getSibling(selectedBlock: ModelElement): ModelNode | null; abstract get offset(): "before" | "after"; override execute() { @@ -81,7 +81,7 @@ abstract class MoveBlockUpDownCommand extends Command { } // Restore selection - let range: Range; + let range: ModelRange; const maxStart = firstBlock.maxOffset ?? startOffset; const maxEnd = lastBlock.maxOffset ?? endOffset; // If original offsets valid within bounds, restore partial selection @@ -105,9 +105,9 @@ abstract class MoveBlockUpDownCommand extends Command { }); } - getSelectedBlocks(selection: DocumentSelection) { + getSelectedBlocks(selection: ModelDocumentSelection) { const blocks = [...selection.getSelectedBlocks()]; - const resolved: Element[] = []; + const resolved: ModelElement[] = []; // Selects elements (such as Mermaid) when there are no blocks if (!blocks.length) { @@ -118,10 +118,10 @@ abstract class MoveBlockUpDownCommand extends Command { } for (const block of blocks) { - let el: Element = block; + let el: ModelElement = block; // Traverse up until the parent is the root ($root) or there is no parent while (el.parent && el.parent.name !== '$root') { - el = el.parent as Element; + el = el.parent as ModelElement; } resolved.push(el); } @@ -140,7 +140,7 @@ abstract class MoveBlockUpDownCommand extends Command { class MoveBlockUpCommand extends MoveBlockUpDownCommand { - getSibling(selectedBlock: Element) { + getSibling(selectedBlock: ModelElement) { return selectedBlock.previousSibling; } @@ -153,7 +153,7 @@ class MoveBlockUpCommand extends MoveBlockUpDownCommand { class MoveBlockDownCommand extends MoveBlockUpDownCommand { /** @override */ - getSibling(selectedBlock: Element) { + getSibling(selectedBlock: ModelElement) { return selectedBlock.nextSibling; } diff --git a/packages/ckeditor5/src/plugins/referencelink.ts b/packages/ckeditor5/src/plugins/referencelink.ts index a790eb0a15..7569d2fa6b 100644 --- a/packages/ckeditor5/src/plugins/referencelink.ts +++ b/packages/ckeditor5/src/plugins/referencelink.ts @@ -1,4 +1,4 @@ -import { Command, Element, LinkEditing, Plugin, toWidget, viewToModelPositionOutsideModelElement, Widget } from "ckeditor5"; +import { Command, ModelElement, LinkEditing, Plugin, toWidget, viewToModelPositionOutsideModelElement, Widget } from "ckeditor5"; export default class ReferenceLink extends Plugin { static get requires() { @@ -32,7 +32,7 @@ class ReferenceLinkCommand extends Command { override refresh() { const model = this.editor.model; const selection = model.document.selection; - this.isEnabled = selection.focus !== null && model.schema.checkChild(selection.focus.parent as Element, 'reference'); + this.isEnabled = selection.focus !== null && model.schema.checkChild(selection.focus.parent as ModelElement, 'reference'); } } diff --git a/packages/ckeditor5/src/plugins/syntax_highlighting/index.ts b/packages/ckeditor5/src/plugins/syntax_highlighting/index.ts index 18c5fae9c5..f9d6569642 100644 --- a/packages/ckeditor5/src/plugins/syntax_highlighting/index.ts +++ b/packages/ckeditor5/src/plugins/syntax_highlighting/index.ts @@ -1,10 +1,10 @@ -import type { Element, Position, Writer } from "ckeditor5"; -import type { Node, Editor } from "ckeditor5"; +import type { ModelElement, ModelPosition, ModelWriter } from "ckeditor5"; +import type { ModelNode, Editor } from "ckeditor5"; import { Plugin } from "ckeditor5"; interface SpanStackEntry { className: string; - posStart: Position; + posStart: ModelPosition; } /* @@ -77,9 +77,9 @@ export default class SyntaxHighlighting extends Plugin { // See // https://github.com/ckeditor/ckeditor5/blob/b53d2a4b49679b072f4ae781ac094e7e831cfb14/packages/ckeditor5-block-quote/src/blockquoteediting.js#L54 const changes = document.differ.getChanges(); - let dirtyCodeBlocks = new Set(); + let dirtyCodeBlocks = new Set(); - function lookForCodeBlocks(node: Element | Node) { + function lookForCodeBlocks(node: ModelElement | ModelNode) { if (!("getChildren" in node)) { return; } @@ -91,7 +91,7 @@ export default class SyntaxHighlighting extends Plugin { if (child.is("element", "codeBlock")) { dirtyCodeBlocks.add(child); - } else if ((child as Element).childCount > 0) { + } else if ((child as ModelElement).childCount > 0) { lookForCodeBlocks(child); } } @@ -100,7 +100,7 @@ export default class SyntaxHighlighting extends Plugin { for (const change of changes) { dbg("change " + JSON.stringify(change)); - if ("name" in change && change.name !== "paragraph" && change.name !== "codeBlock" && change?.position?.nodeAfter && (change.position.nodeAfter as Element).childCount > 0) { + if ("name" in change && change.name !== "paragraph" && change.name !== "codeBlock" && change?.position?.nodeAfter && (change.position.nodeAfter as ModelElement).childCount > 0) { /* * We need to look for code blocks recursively, as they can be placed within a
            due to * general HTML support or normally underneath other elements such as tables, blockquotes, etc. @@ -115,7 +115,7 @@ export default class SyntaxHighlighting extends Plugin { // etc (the postfixer won't get later changes for those). if (codeBlock) { log("dirtying inserted codeBlock " + JSON.stringify(codeBlock.toJSON())); - dirtyCodeBlocks.add(codeBlock as Element); + dirtyCodeBlocks.add(codeBlock as ModelElement); } } else if (change.type == "remove" && change.name == "codeBlock" && change.position) { // An existing codeblock was removed, do nothing. Note the @@ -149,7 +149,7 @@ export default class SyntaxHighlighting extends Plugin { * the formatting would be stored with the note and it would need a * way to remove that formatting when editing back the note. */ - highlightCodeBlock(codeBlock: Element, writer: Writer) { + highlightCodeBlock(codeBlock: ModelElement, writer: ModelWriter) { log("highlighting codeblock " + JSON.stringify(codeBlock.toJSON())); const model = codeBlock.root.document?.model; if (!model) { @@ -242,7 +242,7 @@ export default class SyntaxHighlighting extends Plugin { let spanStack: SpanStackEntry[] = []; let iChild = -1; let childText = ""; - let child: Node | null = null; + let child: ModelNode | null = null; let iChildText = 0; while (iHtml < html.length) { diff --git a/packages/codemirror/package.json b/packages/codemirror/package.json index 6034d61955..089caac6b8 100644 --- a/packages/codemirror/package.json +++ b/packages/codemirror/package.json @@ -24,13 +24,13 @@ "@codemirror/lang-html": "6.4.9", "@codemirror/lang-javascript": "6.2.4", "@codemirror/lang-json": "6.0.2", - "@codemirror/lang-markdown": "6.3.3", + "@codemirror/lang-markdown": "6.3.4", "@codemirror/lang-php": "6.0.2", "@codemirror/lang-vue": "0.1.3", "@codemirror/lang-xml": "6.1.0", "@codemirror/legacy-modes": "6.5.1", "@codemirror/search": "6.5.11", - "@codemirror/view": "6.38.0", + "@codemirror/view": "6.38.1", "@fsegurai/codemirror-theme-abcdef": "6.2.0", "@fsegurai/codemirror-theme-abyss": "6.2.0", "@fsegurai/codemirror-theme-android-studio": "6.2.0", @@ -62,6 +62,6 @@ "codemirror-lang-elixir": "4.0.0", "codemirror-lang-hcl": "0.1.0", "codemirror-lang-mermaid": "0.5.0", - "eslint-linter-browserify": "9.30.1" + "eslint-linter-browserify": "9.32.0" } } diff --git a/packages/commons/package.json b/packages/commons/package.json index 2bccaf60c1..aa0bdbff5e 100644 --- a/packages/commons/package.json +++ b/packages/commons/package.json @@ -1,6 +1,6 @@ { "name": "@triliumnext/commons", - "version": "0.96.0", + "version": "0.97.2", "description": "Shared library between the clients (e.g. browser, Electron) and the server, mostly for type definitions and utility methods.", "private": true, "type": "module", diff --git a/packages/commons/src/index.ts b/packages/commons/src/index.ts index 96ba3325f6..151924c8fe 100644 --- a/packages/commons/src/index.ts +++ b/packages/commons/src/index.ts @@ -5,3 +5,5 @@ export * from "./lib/hidden_subtree.js"; export * from "./lib/rows.js"; export * from "./lib/test-utils.js"; export * from "./lib/mime_type.js"; +export * from "./lib/bulk_actions.js"; +export * from "./lib/server_api.js"; diff --git a/packages/commons/src/lib/bulk_actions.ts b/packages/commons/src/lib/bulk_actions.ts new file mode 100644 index 0000000000..d80c189741 --- /dev/null +++ b/packages/commons/src/lib/bulk_actions.ts @@ -0,0 +1,49 @@ +export type ActionHandlers = { + addLabel: { + labelName: string; + labelValue?: string; + }, + addRelation: { + relationName: string; + targetNoteId: string; + }, + deleteNote: {}, + deleteRevisions: {}, + deleteLabel: { + labelName: string; + }, + deleteRelation: { + relationName: string; + }, + renameNote: { + newTitle: string; + }, + renameLabel: { + oldLabelName: string; + newLabelName: string; + }, + renameRelation: { + oldRelationName: string; + newRelationName: string; + }, + updateLabelValue: { + labelName: string; + labelValue: string; + }, + updateRelationTarget: { + relationName: string; + targetNoteId: string; + }, + moveNote: { + targetParentNoteId: string; + }, + executeScript: { + script: string; + } +}; + +export type BulkActionData = ActionHandlers[T] & { name: T }; + +export type BulkAction = { + [K in keyof ActionHandlers]: { name: K; } & ActionHandlers[K]; +}[keyof ActionHandlers]; diff --git a/packages/commons/src/lib/hidden_subtree.ts b/packages/commons/src/lib/hidden_subtree.ts index af860aba8a..e33276da97 100644 --- a/packages/commons/src/lib/hidden_subtree.ts +++ b/packages/commons/src/lib/hidden_subtree.ts @@ -1,6 +1,4 @@ -import type { AttributeType } from "./rows.js"; - -type LauncherNoteType = "launcher" | "search" | "doc" | "noteMap" | "contentWidget" | "book" | "file" | "image" | "text" | "relationMap" | "render" | "canvas" | "mermaid" | "webView" | "code" | "mindMap" | "geoMap"; +type LauncherNoteType = "launcher" | "search" | "doc" | "noteMap" | "contentWidget" | "book" | "file" | "image" | "text" | "relationMap" | "render" | "canvas" | "mermaid" | "webView" | "code" | "mindMap"; enum Command { jumpToNote, @@ -45,4 +43,10 @@ export interface HiddenSubtreeItem { | "quickSearch" | "aiChatLauncher"; command?: keyof typeof Command; + /** + * If set to true, then branches will be enforced to be in the correct place. + * This is useful for ensuring that the launcher is always in the correct place, even if + * the user moves it around. + */ + enforceBranches?: boolean; } diff --git a/packages/commons/src/lib/i18n.ts b/packages/commons/src/lib/i18n.ts index bfb5caac10..2baa39b2e7 100644 --- a/packages/commons/src/lib/i18n.ts +++ b/packages/commons/src/lib/i18n.ts @@ -6,10 +6,10 @@ export interface Locale { /** `true` if the language is not supported by the application as a display language, but it is selectable by the user for the content. */ contentOnly?: boolean; /** The value to pass to `--lang` for the Electron instance in order to set it as a locale. Not setting it will hide it from the list of supported locales. */ - electronLocale?: string; + electronLocale?: "en" | "de" | "es" | "fr" | "zh_CN" | "zh_TW" | "ro" | "af" | "am" | "ar" | "bg" | "bn" | "ca" | "cs" | "da" | "el" | "en-GB" | "es-419" | "et" | "fa" | "fi" | "fil" | "gu" | "he" | "hi" | "hr" | "hu" | "id" | "it" | "ja" | "kn" | "ko" | "lt" | "lv" | "ml" | "mr" | "ms" | "nb" | "nl" | "pl" | "pt-BR" | "pt-PT" | "ru" | "sk" | "sl" | "sr" | "sv" | "sw" | "ta" | "te" | "th" | "tr" | "uk" | "ur" | "vi"; } -const UNSORTED_LOCALES = [ +const UNSORTED_LOCALES: Locale[] = [ { id: "en", name: "English", @@ -45,6 +45,11 @@ const UNSORTED_LOCALES = [ name: "Română", electronLocale: "ro" }, + { + id: "ru", + name: "Русский", + electronLocale: "ru" + }, /* * Right to left languages diff --git a/packages/commons/src/lib/keyboard_actions_interface.ts b/packages/commons/src/lib/keyboard_actions_interface.ts index 2fc96665f6..c3de7e0dbb 100644 --- a/packages/commons/src/lib/keyboard_actions_interface.ts +++ b/packages/commons/src/lib/keyboard_actions_interface.ts @@ -2,6 +2,7 @@ const enum KeyboardActionNamesEnum { backInNoteHistory, forwardInNoteHistory, jumpToNote, + commandPalette, scrollToActiveNote, quickSearch, searchInSubtree, @@ -97,12 +98,21 @@ const enum KeyboardActionNamesEnum { export type KeyboardActionNames = keyof typeof KeyboardActionNamesEnum; -export interface KeyboardShortcut { - separator?: string; - actionName?: KeyboardActionNames; +export interface KeyboardShortcutSeparator { + separator: string; +} + +export interface ActionKeyboardShortcut { + actionName: KeyboardActionNames; + friendlyName: string; description?: string; defaultShortcuts?: string[]; effectiveShortcuts?: string[]; + /** + * An icon describing the action. + * This is currently only used in the command palette. + */ + iconClass?: string; /** * Scope here means on which element the keyboard shortcuts are attached - this means that for the shortcut to work, * the focus has to be inside the element. @@ -112,8 +122,19 @@ export interface KeyboardShortcut { * e.g. CTRL-C in note tree does something a bit different from CTRL-C in the text editor. */ scope?: "window" | "note-tree" | "text-detail" | "code-detail"; + /** + * Whether the action is only available for the desktop application. + * This is used to hide actions that are not available in the web version. + */ + isElectronOnly?: boolean; + /** + * If set to true, the action will not be shown in the command palette. + */ + ignoreFromCommandPalette?: boolean; } -export interface KeyboardShortcutWithRequiredActionName extends KeyboardShortcut { +export type KeyboardShortcut = ActionKeyboardShortcut | KeyboardShortcutSeparator; + +export interface KeyboardShortcutWithRequiredActionName extends ActionKeyboardShortcut { actionName: KeyboardActionNames; } diff --git a/packages/commons/src/lib/rows.ts b/packages/commons/src/lib/rows.ts index a407d80013..d45b1eb16b 100644 --- a/packages/commons/src/lib/rows.ts +++ b/packages/commons/src/lib/rows.ts @@ -119,8 +119,7 @@ export const ALLOWED_NOTE_TYPES = [ "book", "webView", "code", - "mindMap", - "geoMap" + "mindMap" ] as const; export type NoteType = (typeof ALLOWED_NOTE_TYPES)[number]; diff --git a/packages/commons/src/lib/server_api.ts b/packages/commons/src/lib/server_api.ts new file mode 100644 index 0000000000..de91281db0 --- /dev/null +++ b/packages/commons/src/lib/server_api.ts @@ -0,0 +1,12 @@ +export interface AppInfo { + appVersion: string; + dbVersion: number; + nodeVersion: string; + syncVersion: number; + buildDate: string; + buildRevision: string; + dataDirectory: string; + clipperProtocolVersion: string; + /** for timezone inference */ + utcDateTime: string; +} diff --git a/packages/share-theme/src/styles/content.css b/packages/share-theme/src/styles/content.css index 41a0d3f2fb..00d5f20309 100644 --- a/packages/share-theme/src/styles/content.css +++ b/packages/share-theme/src/styles/content.css @@ -1,3 +1,10 @@ +:root { + --ck-content-font-family: inherit; + --ck-content-font-size: inherit; + --ck-content-font-color: inherit; + --ck-content-line-height: inherit; +} + .ck-content code, .ck-content pre { color: var(--text-primary); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index be701a6584..18ca9a335a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,16 +5,21 @@ settings: excludeLinksFromLockfile: false overrides: - mermaid: 11.8.0 - preact: 10.26.9 + mermaid: 11.9.0 + preact: 10.27.0 roughjs: 4.6.6 - '@types/express-serve-static-core': 5.0.6 + '@types/express-serve-static-core': 5.0.7 flat@<5.0.1: '>=5.0.1' debug@>=3.2.0 <3.2.7: '>=3.2.7' nanoid@<3.3.8: '>=3.3.8' nanoid@>=4.0.0 <5.0.9: '>=5.0.9' dompurify@<3.2.4: '>=3.2.4' esbuild@<=0.24.2: '>=0.25.0' + cookie@<0.7.0: '>=0.7.0' + tar-fs@>=2.0.0 <2.1.3: '>=2.1.3' + on-headers@<1.1.0: '>=1.1.0' + form-data@>=4.0.0 <4.0.4: '>=4.0.4' + form-data@>=3.0.0 <3.0.4: '>=3.0.4' patchedDependencies: '@ckeditor/ckeditor5-code-block': @@ -38,38 +43,38 @@ importers: specifier: 4.0.1 version: 4.0.1 '@nx/devkit': - specifier: 21.2.2 - version: 21.2.2(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))) + specifier: 21.3.11 + version: 21.3.11(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) '@nx/esbuild': - specifier: 21.2.2 - version: 21.2.2(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))) + specifier: 21.3.11 + version: 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) '@nx/eslint': - specifier: 21.2.2 - version: 21.2.2(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@zkochan/js-yaml@0.0.7)(eslint@9.30.1(jiti@2.4.2))(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))) + specifier: 21.3.11 + version: 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@zkochan/js-yaml@0.0.7)(eslint@9.32.0(jiti@2.5.1))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) '@nx/eslint-plugin': - specifier: 21.2.2 - version: 21.2.2(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@typescript-eslint/parser@8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint-config-prettier@10.1.5(eslint@9.30.1(jiti@2.4.2)))(eslint@9.30.1(jiti@2.4.2))(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17)))(typescript@5.8.3) + specifier: 21.3.11 + version: 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@typescript-eslint/parser@8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint-config-prettier@10.1.8(eslint@9.32.0(jiti@2.5.1)))(eslint@9.32.0(jiti@2.5.1))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)))(typescript@5.9.2) '@nx/express': - specifier: 21.2.2 - version: 21.2.2(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.16.0)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.30.1(jiti@2.4.2))(express@4.21.2)(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@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@22.16.0)(typescript@5.8.3))(typescript@5.8.3) + specifier: 21.3.11 + version: 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.17.0)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.32.0(jiti@2.5.1))(express@4.21.2)(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@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@22.17.0)(typescript@5.9.2))(typescript@5.9.2) '@nx/js': - specifier: 21.2.2 - version: 21.2.2(patch_hash=7201af3a8fb4840b046e4e18cc2758fa67ee3d0cf11d0783869dc828cfc79fc7)(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))) + specifier: 21.3.11 + version: 21.3.11(patch_hash=7201af3a8fb4840b046e4e18cc2758fa67ee3d0cf11d0783869dc828cfc79fc7)(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) '@nx/node': - specifier: 21.2.2 - version: 21.2.2(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.16.0)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.30.1(jiti@2.4.2))(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@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@22.16.0)(typescript@5.8.3))(typescript@5.8.3) + specifier: 21.3.11 + version: 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.17.0)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.32.0(jiti@2.5.1))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@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@22.17.0)(typescript@5.9.2))(typescript@5.9.2) '@nx/playwright': - specifier: 21.2.2 - version: 21.2.2(@babel/traverse@7.28.0)(@playwright/test@1.53.2)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@zkochan/js-yaml@0.0.7)(eslint@9.30.1(jiti@2.4.2))(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17)))(typescript@5.8.3) + specifier: 21.3.11 + version: 21.3.11(@babel/traverse@7.28.0)(@playwright/test@1.54.2)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@zkochan/js-yaml@0.0.7)(eslint@9.32.0(jiti@2.5.1))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)))(typescript@5.9.2) '@nx/vite': - specifier: 21.2.2 - version: 21.2.2(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17)))(typescript@5.8.3)(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0))(vitest@3.2.4) + specifier: 21.3.11 + version: 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)))(typescript@5.9.2)(vite@7.1.1(@types/node@22.17.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vitest@3.2.4) '@nx/web': - specifier: 21.2.2 - version: 21.2.2(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))) + specifier: 21.3.11 + version: 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) '@playwright/test': specifier: ^1.36.0 - version: 1.53.2 + version: 1.54.2 '@triliumnext/server': specifier: workspace:* version: link:apps/server @@ -77,8 +82,8 @@ importers: specifier: ^5.0.0 version: 5.0.3 '@types/node': - specifier: 22.16.0 - version: 22.16.0 + specifier: 22.17.0 + version: 22.17.0 '@vitest/coverage-v8': specifier: ^3.0.5 version: 3.2.4(@vitest/browser@3.2.4)(vitest@3.2.4) @@ -86,32 +91,32 @@ importers: specifier: ^3.0.0 version: 3.2.4(vitest@3.2.4) chalk: - specifier: 5.4.1 - version: 5.4.1 + specifier: 5.5.0 + version: 5.5.0 cross-env: - specifier: 7.0.3 - version: 7.0.3 + specifier: 10.0.0 + version: 10.0.0 dpdm: specifier: 3.14.0 version: 3.14.0 esbuild: specifier: ^0.25.0 - version: 0.25.5 + version: 0.25.8 eslint: specifier: ^9.8.0 - version: 9.30.1(jiti@2.4.2) + version: 9.32.0(jiti@2.5.1) eslint-config-prettier: specifier: ^10.0.0 - version: 10.1.5(eslint@9.30.1(jiti@2.4.2)) + version: 10.1.8(eslint@9.32.0(jiti@2.5.1)) eslint-plugin-playwright: specifier: ^2.0.0 - version: 2.2.0(eslint@9.30.1(jiti@2.4.2)) + version: 2.2.2(eslint@9.32.0(jiti@2.5.1)) happy-dom: specifier: ~18.0.0 version: 18.0.1 jiti: - specifier: 2.4.2 - version: 2.4.2 + specifier: 2.5.1 + version: 2.5.1 jsdom: specifier: ~26.1.0 version: 26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) @@ -119,14 +124,14 @@ importers: specifier: ^2.1.0 version: 2.4.0 nx: - specifier: 21.2.2 - version: 21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17)) + specifier: 21.3.11 + version: 21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)) react-refresh: specifier: ^0.17.0 version: 0.17.0 rollup-plugin-webpack-stats: - specifier: 2.1.0 - version: 2.1.0(rollup@4.44.1)(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0)) + specifier: 2.1.3 + version: 2.1.3(rolldown@1.0.0-beta.29)(rollup@4.46.2)(vite@7.1.1(@types/node@22.17.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) tslib: specifier: ^2.3.0 version: 2.8.1 @@ -134,29 +139,29 @@ importers: specifier: 4.20.3 version: 4.20.3 typescript: - specifier: ~5.8.0 - version: 5.8.3 + specifier: ~5.9.0 + version: 5.9.2 typescript-eslint: specifier: ^8.19.0 - version: 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) + version: 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) upath: specifier: 2.0.1 version: 2.0.1 vite: specifier: ^7.0.0 - version: 7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0) + version: 7.1.1(@types/node@22.17.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) vite-plugin-dts: specifier: ~4.5.0 - version: 4.5.4(@types/node@22.16.0)(rollup@4.44.1)(typescript@5.8.3)(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0)) + version: 4.5.4(@types/node@22.17.0)(rollup@4.46.2)(typescript@5.9.2)(vite@7.1.1(@types/node@22.17.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) vitest: specifier: ^3.0.0 - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.16.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.4.2)(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.16.0)(typescript@5.8.3))(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0) + version: 3.2.4(@types/debug@4.1.12)(@types/node@22.17.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.5.1)(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.17.0)(typescript@5.9.2))(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) apps/client: dependencies: '@eslint/js': - specifier: 9.30.1 - version: 9.30.1 + specifier: 9.32.0 + version: 9.32.0 '@excalidraw/excalidraw': specifier: 0.18.0 version: 0.18.0(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@16.14.0))(react@16.14.0) @@ -178,12 +183,15 @@ importers: '@fullcalendar/timegrid': specifier: 6.1.18 version: 6.1.18(@fullcalendar/core@6.1.18) + '@maplibre/maplibre-gl-leaflet': + specifier: 0.1.3 + version: 0.1.3(@types/leaflet@1.9.20)(leaflet@1.9.4)(maplibre-gl@5.6.1) '@mermaid-js/layout-elk': specifier: 0.1.8 - version: 0.1.8(mermaid@11.8.0) + version: 0.1.8(mermaid@11.9.0) '@mind-elixir/node-menu': - specifier: 1.0.5 - version: 1.0.5(mind-elixir@4.6.2) + specifier: 5.0.0 + version: 5.0.0(mind-elixir@5.0.4) '@popperjs/core': specifier: 2.11.8 version: 2.11.8 @@ -230,17 +238,14 @@ importers: specifier: 16.3.0 version: 16.3.0 i18next: - specifier: 25.3.0 - version: 25.3.0(typescript@5.8.3) + specifier: 25.3.2 + version: 25.3.2(typescript@5.9.2) i18next-http-backend: specifier: 3.0.2 version: 3.0.2(encoding@0.1.13) jquery: specifier: 3.7.1 version: 3.7.1 - jquery-hotkeys: - specifier: 0.2.2 - version: 0.2.2 jquery.fancytree: specifier: 2.38.5 version: 2.38.5(jquery@3.7.1) @@ -263,14 +268,14 @@ importers: specifier: 8.11.1 version: 8.11.1 marked: - specifier: 16.0.0 - version: 16.0.0 + specifier: 16.1.2 + version: 16.1.2 mermaid: - specifier: 11.8.0 - version: 11.8.0 + specifier: 11.9.0 + version: 11.9.0 mind-elixir: - specifier: 4.6.2 - version: 4.6.2 + specifier: 5.0.4 + version: 5.0.4 normalize.css: specifier: 8.0.1 version: 8.0.1 @@ -278,8 +283,8 @@ importers: specifier: 9.4.3 version: 9.4.3 preact: - specifier: 10.26.9 - version: 10.26.9 + specifier: 10.27.0 + version: 10.27.0 split.js: specifier: 1.6.5 version: 1.6.5 @@ -294,8 +299,11 @@ importers: version: 9.0.4 devDependencies: '@ckeditor/ckeditor5-inspector': - specifier: 4.1.0 - version: 4.1.0 + specifier: 5.0.0 + version: 5.0.0 + '@preact/preset-vite': + specifier: 2.10.2 + version: 2.10.2(@babel/core@7.28.0)(preact@10.27.0)(vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) '@types/bootstrap': specifier: 5.2.10 version: 5.2.10 @@ -303,8 +311,8 @@ importers: specifier: 3.5.32 version: 3.5.32 '@types/leaflet': - specifier: 1.9.19 - version: 1.9.19 + specifier: 1.9.20 + version: 1.9.20 '@types/leaflet-gpx': specifier: 1.3.7 version: 1.3.7 @@ -312,11 +320,11 @@ importers: specifier: 8.11.12 version: 8.11.12 '@types/tabulator-tables': - specifier: 6.2.6 - version: 6.2.6 + specifier: 6.2.9 + version: 6.2.9 copy-webpack-plugin: specifier: 13.0.0 - version: 13.0.0(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)) + version: 13.0.0(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)) happy-dom: specifier: 18.0.1 version: 18.0.1 @@ -324,8 +332,8 @@ importers: specifier: 0.7.2 version: 0.7.2 vite-plugin-static-copy: - specifier: 3.1.0 - version: 3.1.0(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0)) + specifier: 3.1.1 + version: 3.1.1(vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) apps/db-compare: dependencies: @@ -345,8 +353,8 @@ importers: apps/desktop: dependencies: '@electron/remote': - specifier: 2.1.2 - version: 2.1.2(electron@37.2.0) + specifier: 2.1.3 + version: 2.1.3(electron@37.2.6) better-sqlite3: specifier: ^12.0.0 version: 12.2.0 @@ -367,29 +375,29 @@ importers: version: 2.38.5(jquery@3.7.1) devDependencies: '@electron-forge/cli': - specifier: 7.8.1 - version: 7.8.1(encoding@0.1.13) + specifier: 7.8.3 + version: 7.8.3(encoding@0.1.13) '@electron-forge/maker-deb': - specifier: 7.8.1 - version: 7.8.1 + specifier: 7.8.3 + version: 7.8.3 '@electron-forge/maker-dmg': - specifier: 7.8.1 - version: 7.8.1 + specifier: 7.8.3 + version: 7.8.3 '@electron-forge/maker-flatpak': - specifier: 7.8.1 - version: 7.8.1 + specifier: 7.8.3 + version: 7.8.3 '@electron-forge/maker-rpm': - specifier: 7.8.1 - version: 7.8.1 + specifier: 7.8.3 + version: 7.8.3 '@electron-forge/maker-squirrel': - specifier: 7.8.1 - version: 7.8.1 + specifier: 7.8.3 + version: 7.8.3 '@electron-forge/maker-zip': - specifier: 7.8.1 - version: 7.8.1 + specifier: 7.8.3 + version: 7.8.3 '@electron-forge/plugin-auto-unpack-natives': - specifier: 7.8.1 - version: 7.8.1 + specifier: 7.8.3 + version: 7.8.3 '@triliumnext/server': specifier: workspace:* version: link:../server @@ -398,10 +406,10 @@ importers: version: 1.0.2 copy-webpack-plugin: specifier: 13.0.0 - version: 13.0.0(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)) + version: 13.0.0(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)) electron: - specifier: 37.2.0 - version: 37.2.0 + specifier: 37.2.6 + version: 37.2.6 prebuild-install: specifier: ^7.1.1 version: 7.1.3 @@ -409,11 +417,11 @@ importers: apps/desktop-e2e: devDependencies: dotenv: - specifier: 17.0.1 - version: 17.0.1 + specifier: 17.2.1 + version: 17.2.1 electron: - specifier: 37.2.0 - version: 37.2.0 + specifier: 37.2.6 + version: 37.2.6 apps/dump-db: dependencies: @@ -463,13 +471,13 @@ importers: version: 11.0.4 copy-webpack-plugin: specifier: 13.0.0 - version: 13.0.0(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)) + version: 13.0.0(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)) electron: - specifier: 37.2.0 - version: 37.2.0 + specifier: 37.2.6 + version: 37.2.6 fs-extra: - specifier: 11.3.0 - version: 11.3.0 + specifier: 11.3.1 + version: 11.3.1 apps/server: dependencies: @@ -478,14 +486,14 @@ importers: version: 12.2.0 devDependencies: '@anthropic-ai/sdk': - specifier: 0.55.1 - version: 0.55.1 + specifier: 0.58.0 + version: 0.58.0 '@braintree/sanitize-url': specifier: 7.1.1 version: 7.1.1 '@electron/remote': - specifier: 2.1.2 - version: 2.1.2(electron@37.2.0) + specifier: 2.1.3 + version: 2.1.3(electron@37.2.6) '@triliumnext/commons': specifier: workspace:* version: link:../../packages/commons @@ -520,8 +528,8 @@ importers: specifier: 1.0.4 version: 1.0.4 '@types/express-http-proxy': - specifier: 1.6.6 - version: 1.6.6 + specifier: 1.6.7 + version: 1.6.7 '@types/express-session': specifier: 1.18.2 version: 1.18.2 @@ -592,8 +600,8 @@ importers: specifier: 0.5.0 version: 0.5.0 axios: - specifier: 1.10.0 - version: 1.10.0(debug@4.4.1) + specifier: 1.11.0 + version: 1.11.0(debug@4.4.1) bindings: specifier: 1.5.0 version: 1.5.0 @@ -601,8 +609,8 @@ importers: specifier: 2.1.0 version: 2.1.0 cheerio: - specifier: 1.1.0 - version: 1.1.0 + specifier: 1.1.2 + version: 1.1.2 chokidar: specifier: 4.0.3 version: 4.0.3 @@ -610,8 +618,8 @@ importers: specifier: 4.2.2 version: 4.2.2 compression: - specifier: 1.8.0 - version: 1.8.0 + specifier: 1.8.1 + version: 1.8.1 cookie-parser: specifier: 1.4.7 version: 1.4.7 @@ -631,8 +639,8 @@ importers: specifier: 3.1.10 version: 3.1.10 electron: - specifier: 37.2.0 - version: 37.2.0 + specifier: 37.2.6 + version: 37.2.6 electron-debug: specifier: 4.1.0 version: 4.1.0 @@ -650,19 +658,19 @@ importers: version: 2.1.1 express-openid-connect: specifier: ^2.17.1 - version: 2.18.1(express@5.1.0) + version: 2.19.2(express@5.1.0) express-rate-limit: - specifier: 7.5.1 - version: 7.5.1(express@5.1.0) + specifier: 8.0.1 + version: 8.0.1(express@5.1.0) express-session: - specifier: 1.18.1 - version: 1.18.1 + specifier: 1.18.2 + version: 1.18.2 file-uri-to-path: specifier: 2.0.0 version: 2.0.0 fs-extra: - specifier: 11.3.0 - version: 11.3.0 + specifier: 11.3.1 + version: 11.3.1 helmet: specifier: 8.1.0 version: 8.1.0 @@ -679,8 +687,8 @@ importers: specifier: 7.0.6 version: 7.0.6 i18next: - specifier: 25.3.0 - version: 25.3.0(typescript@5.8.3) + specifier: 25.3.2 + version: 25.3.2(typescript@5.9.2) i18next-fs-backend: specifier: 2.6.0 version: 2.6.0 @@ -694,8 +702,8 @@ importers: specifier: 2.0.2 version: 2.0.2 is-svg: - specifier: 6.0.0 - version: 6.0.0 + specifier: 6.1.0 + version: 6.1.0 jimp: specifier: 1.6.0 version: 1.6.0 @@ -706,23 +714,23 @@ importers: specifier: 26.1.0 version: 26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) marked: - specifier: 16.0.0 - version: 16.0.0 + specifier: 16.1.2 + version: 16.1.2 mime-types: specifier: 3.0.1 version: 3.0.1 multer: - specifier: 2.0.1 - version: 2.0.1 + specifier: 2.0.2 + version: 2.0.2 normalize-strings: specifier: 1.1.1 version: 1.1.1 ollama: - specifier: 0.5.16 - version: 0.5.16 + specifier: 0.5.17 + version: 0.5.17 openai: - specifier: 5.8.2 - version: 5.8.2(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.24.4) + specifier: 5.12.0 + version: 5.12.0(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.24.4) rand-token: specifier: 1.0.1 version: 1.0.1 @@ -751,8 +759,8 @@ importers: specifier: 3.2.0 version: 3.2.0 supertest: - specifier: 7.1.1 - version: 7.1.1 + specifier: 7.1.4 + version: 7.1.4 swagger-jsdoc: specifier: 6.2.8 version: 6.2.8(openapi-types@12.1.3) @@ -763,8 +771,8 @@ importers: specifier: ^1.3.0 version: 1.4.2 tmp: - specifier: 0.2.3 - version: 0.2.3 + specifier: 0.2.4 + version: 0.2.4 turndown: specifier: 7.2.0 version: 7.2.0 @@ -784,8 +792,8 @@ importers: apps/server-e2e: devDependencies: dotenv: - specifier: 17.0.1 - version: 17.0.1 + specifier: 17.2.1 + version: 17.2.1 apps/website: dependencies: @@ -795,55 +803,55 @@ importers: devDependencies: '@eslint/compat': specifier: ^1.2.5 - version: 1.3.1(eslint@9.30.1(jiti@2.4.2)) + version: 1.3.1(eslint@9.32.0(jiti@2.5.1)) '@eslint/js': specifier: ^9.18.0 - version: 9.30.1 + version: 9.32.0 '@sveltejs/adapter-auto': specifier: ^6.0.0 - version: 6.0.1(@sveltejs/kit@2.22.2(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.35.2)(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0)))(svelte@5.35.2)(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0))) + version: 6.0.2(@sveltejs/kit@2.27.3(@sveltejs/vite-plugin-svelte@6.1.0(svelte@5.38.0)(vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)))(svelte@5.38.0)(vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))) '@sveltejs/kit': specifier: ^2.16.0 - version: 2.22.2(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.35.2)(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0)))(svelte@5.35.2)(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0)) + version: 2.27.3(@sveltejs/vite-plugin-svelte@6.1.0(svelte@5.38.0)(vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)))(svelte@5.38.0)(vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) '@sveltejs/vite-plugin-svelte': - specifier: ^5.0.0 - version: 5.1.0(svelte@5.35.2)(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0)) + specifier: ^6.0.0 + version: 6.1.0(svelte@5.38.0)(vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) '@tailwindcss/typography': specifier: ^0.5.15 version: 0.5.16(tailwindcss@4.1.11) '@tailwindcss/vite': specifier: ^4.0.0 - version: 4.1.11(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0)) + version: 4.1.11(vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) eslint: specifier: ^9.18.0 - version: 9.30.1(jiti@2.4.2) + version: 9.32.0(jiti@2.5.1) eslint-plugin-svelte: specifier: ^3.0.0 - version: 3.10.1(eslint@9.30.1(jiti@2.4.2))(svelte@5.35.2)(ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.16.0)(typescript@5.8.3)) + version: 3.11.0(eslint@9.32.0(jiti@2.5.1))(svelte@5.38.0)(ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.1.0)(typescript@5.9.2)) globals: specifier: ^16.0.0 version: 16.3.0 mdsvex: specifier: ^0.12.3 - version: 0.12.6(svelte@5.35.2) + version: 0.12.6(svelte@5.38.0) svelte: specifier: ^5.0.0 - version: 5.35.2 + version: 5.38.0 svelte-check: specifier: ^4.0.0 - version: 4.2.2(picomatch@4.0.2)(svelte@5.35.2)(typescript@5.8.3) + version: 4.3.1(picomatch@4.0.3)(svelte@5.38.0)(typescript@5.9.2) tailwindcss: specifier: ^4.0.0 version: 4.1.11 typescript: specifier: ^5.0.0 - version: 5.8.3 + version: 5.9.2 typescript-eslint: specifier: ^8.20.0 - version: 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) + version: 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) vite: specifier: ^7.0.0 - version: 7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0) + version: 7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) packages/ckeditor5: dependencies: @@ -863,11 +871,11 @@ importers: specifier: workspace:* version: link:../ckeditor5-mermaid ckeditor5: - specifier: 45.2.1 - version: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + specifier: 46.0.0 + version: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) ckeditor5-premium-features: - specifier: 45.2.1 - version: 45.2.1(bufferutil@4.0.9)(ckeditor5@45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41))(utf-8-validate@6.0.5) + specifier: 46.0.0 + version: 46.0.0(bufferutil@4.0.9)(ckeditor5@46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41))(utf-8-validate@6.0.5) devDependencies: '@types/jquery': specifier: 3.5.32 @@ -877,248 +885,248 @@ importers: devDependencies: '@ckeditor/ckeditor5-dev-build-tools': specifier: 43.1.0 - version: 43.1.0(@swc/helpers@0.5.17)(tslib@2.8.1)(typescript@5.8.3) + version: 43.1.0(@swc/helpers@0.5.17)(tslib@2.8.1)(typescript@5.9.2) '@ckeditor/ckeditor5-inspector': specifier: '>=4.1.0' - version: 4.1.0 + version: 5.0.0 '@ckeditor/ckeditor5-package-tools': specifier: ^4.0.0 - version: 4.0.0(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.16.0)(bufferutil@4.0.9)(esbuild@0.25.5)(utf-8-validate@6.0.5) + version: 4.0.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.1.0)(bufferutil@4.0.9)(esbuild@0.25.8)(utf-8-validate@6.0.5) '@typescript-eslint/eslint-plugin': - specifier: ~8.35.0 - version: 8.35.1(@typescript-eslint/parser@8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) + specifier: ~8.39.0 + version: 8.39.0(@typescript-eslint/parser@8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) '@typescript-eslint/parser': specifier: ^8.0.0 - version: 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) + version: 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) '@vitest/browser': specifier: ^3.0.5 - version: 3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@22.16.0)(typescript@5.8.3))(playwright@1.53.2)(utf-8-validate@6.0.5)(vite@7.0.0(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0))(vitest@3.2.4)(webdriverio@9.15.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)) + version: 3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@24.1.0)(typescript@5.9.2))(playwright@1.54.2)(utf-8-validate@6.0.5)(vite@7.0.0(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vitest@3.2.4)(webdriverio@9.18.4(bufferutil@4.0.9)(utf-8-validate@6.0.5)) '@vitest/coverage-istanbul': specifier: ^3.0.5 version: 3.2.4(vitest@3.2.4) ckeditor5: - specifier: 45.2.1 - version: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + specifier: 46.0.0 + version: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) eslint: specifier: ^9.0.0 - version: 9.30.1(jiti@2.4.2) + version: 9.32.0(jiti@2.5.1) eslint-config-ckeditor5: specifier: '>=9.1.0' - version: 11.0.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) + version: 12.1.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) http-server: specifier: ^14.1.0 version: 14.1.1 lint-staged: specifier: ^16.0.0 - version: 16.1.2 + version: 16.1.4 stylelint: specifier: ^16.0.0 - version: 16.21.1(typescript@5.8.3) + version: 16.23.1(typescript@5.9.2) stylelint-config-ckeditor5: specifier: '>=9.1.0' - version: 11.0.1(stylelint@16.21.1(typescript@5.8.3)) + version: 12.1.0(stylelint@16.23.1(typescript@5.9.2)) ts-node: specifier: ^10.9.1 - version: 10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.16.0)(typescript@5.8.3) + version: 10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.1.0)(typescript@5.9.2) typescript: - specifier: 5.8.3 - version: 5.8.3 + specifier: 5.9.2 + version: 5.9.2 vite-plugin-svgo: specifier: ~2.0.0 - version: 2.0.0(typescript@5.8.3)(vite@7.0.0(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0)) + version: 2.0.0(typescript@5.9.2)(vite@7.0.0(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) vitest: specifier: ^3.0.5 - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.16.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.4.2)(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.16.0)(typescript@5.8.3))(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.1.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.5.1)(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@24.1.0)(typescript@5.9.2))(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) webdriverio: specifier: ^9.0.7 - version: 9.15.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) + version: 9.18.4(bufferutil@4.0.9)(utf-8-validate@6.0.5) packages/ckeditor5-footnotes: devDependencies: '@ckeditor/ckeditor5-dev-build-tools': specifier: 43.1.0 - version: 43.1.0(@swc/helpers@0.5.17)(tslib@2.8.1)(typescript@5.8.3) + version: 43.1.0(@swc/helpers@0.5.17)(tslib@2.8.1)(typescript@5.9.2) '@ckeditor/ckeditor5-inspector': specifier: '>=4.1.0' - version: 4.1.0 + version: 5.0.0 '@ckeditor/ckeditor5-package-tools': specifier: ^4.0.0 - version: 4.0.0(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.16.0)(bufferutil@4.0.9)(esbuild@0.25.5)(utf-8-validate@6.0.5) + version: 4.0.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.1.0)(bufferutil@4.0.9)(esbuild@0.25.8)(utf-8-validate@6.0.5) '@typescript-eslint/eslint-plugin': - specifier: ~8.35.0 - version: 8.35.1(@typescript-eslint/parser@8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) + specifier: ~8.39.0 + version: 8.39.0(@typescript-eslint/parser@8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) '@typescript-eslint/parser': specifier: ^8.0.0 - version: 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) + version: 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) '@vitest/browser': specifier: ^3.0.5 - version: 3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@22.16.0)(typescript@5.8.3))(playwright@1.53.2)(utf-8-validate@6.0.5)(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0))(vitest@3.2.4)(webdriverio@9.15.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)) + version: 3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@24.1.0)(typescript@5.9.2))(playwright@1.54.2)(utf-8-validate@6.0.5)(vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vitest@3.2.4)(webdriverio@9.18.4(bufferutil@4.0.9)(utf-8-validate@6.0.5)) '@vitest/coverage-istanbul': specifier: ^3.0.5 version: 3.2.4(vitest@3.2.4) ckeditor5: - specifier: 45.2.1 - version: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + specifier: 46.0.0 + version: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) eslint: specifier: ^9.0.0 - version: 9.30.1(jiti@2.4.2) + version: 9.32.0(jiti@2.5.1) eslint-config-ckeditor5: specifier: '>=9.1.0' - version: 11.0.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) + version: 12.1.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) http-server: specifier: ^14.1.0 version: 14.1.1 lint-staged: specifier: ^16.0.0 - version: 16.1.2 + version: 16.1.4 stylelint: specifier: ^16.0.0 - version: 16.21.1(typescript@5.8.3) + version: 16.23.1(typescript@5.9.2) stylelint-config-ckeditor5: specifier: '>=9.1.0' - version: 11.0.1(stylelint@16.21.1(typescript@5.8.3)) + version: 12.1.0(stylelint@16.23.1(typescript@5.9.2)) ts-node: specifier: ^10.9.1 - version: 10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.16.0)(typescript@5.8.3) + version: 10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.1.0)(typescript@5.9.2) typescript: - specifier: 5.8.3 - version: 5.8.3 + specifier: 5.9.2 + version: 5.9.2 vite-plugin-svgo: specifier: ~2.0.0 - version: 2.0.0(typescript@5.8.3)(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0)) + version: 2.0.0(typescript@5.9.2)(vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) vitest: specifier: ^3.0.5 - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.16.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.4.2)(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.16.0)(typescript@5.8.3))(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.1.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.5.1)(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@24.1.0)(typescript@5.9.2))(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) webdriverio: specifier: ^9.0.7 - version: 9.15.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) + version: 9.18.4(bufferutil@4.0.9)(utf-8-validate@6.0.5) packages/ckeditor5-keyboard-marker: devDependencies: '@ckeditor/ckeditor5-dev-build-tools': specifier: 43.1.0 - version: 43.1.0(@swc/helpers@0.5.17)(tslib@2.8.1)(typescript@5.8.3) + version: 43.1.0(@swc/helpers@0.5.17)(tslib@2.8.1)(typescript@5.9.2) '@ckeditor/ckeditor5-inspector': specifier: '>=4.1.0' - version: 4.1.0 + version: 5.0.0 '@ckeditor/ckeditor5-package-tools': specifier: ^4.0.0 - version: 4.0.0(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.16.0)(bufferutil@4.0.9)(esbuild@0.25.5)(utf-8-validate@6.0.5) + version: 4.0.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.1.0)(bufferutil@4.0.9)(esbuild@0.25.8)(utf-8-validate@6.0.5) '@typescript-eslint/eslint-plugin': - specifier: ~8.35.0 - version: 8.35.1(@typescript-eslint/parser@8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) + specifier: ~8.39.0 + version: 8.39.0(@typescript-eslint/parser@8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) '@typescript-eslint/parser': specifier: ^8.0.0 - version: 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) + version: 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) '@vitest/browser': specifier: ^3.0.5 - version: 3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@22.16.0)(typescript@5.8.3))(playwright@1.53.2)(utf-8-validate@6.0.5)(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0))(vitest@3.2.4)(webdriverio@9.15.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)) + version: 3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@24.1.0)(typescript@5.9.2))(playwright@1.54.2)(utf-8-validate@6.0.5)(vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vitest@3.2.4)(webdriverio@9.18.4(bufferutil@4.0.9)(utf-8-validate@6.0.5)) '@vitest/coverage-istanbul': specifier: ^3.0.5 version: 3.2.4(vitest@3.2.4) ckeditor5: - specifier: 45.2.1 - version: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + specifier: 46.0.0 + version: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) eslint: specifier: ^9.0.0 - version: 9.30.1(jiti@2.4.2) + version: 9.32.0(jiti@2.5.1) eslint-config-ckeditor5: specifier: '>=9.1.0' - version: 11.0.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) + version: 12.1.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) http-server: specifier: ^14.1.0 version: 14.1.1 lint-staged: specifier: ^16.0.0 - version: 16.1.2 + version: 16.1.4 stylelint: specifier: ^16.0.0 - version: 16.21.1(typescript@5.8.3) + version: 16.23.1(typescript@5.9.2) stylelint-config-ckeditor5: specifier: '>=9.1.0' - version: 11.0.1(stylelint@16.21.1(typescript@5.8.3)) + version: 12.1.0(stylelint@16.23.1(typescript@5.9.2)) ts-node: specifier: ^10.9.1 - version: 10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.16.0)(typescript@5.8.3) + version: 10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.1.0)(typescript@5.9.2) typescript: - specifier: 5.8.3 - version: 5.8.3 + specifier: 5.9.2 + version: 5.9.2 vite-plugin-svgo: specifier: ~2.0.0 - version: 2.0.0(typescript@5.8.3)(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0)) + version: 2.0.0(typescript@5.9.2)(vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) vitest: specifier: ^3.0.5 - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.16.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.4.2)(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.16.0)(typescript@5.8.3))(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.1.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.5.1)(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@24.1.0)(typescript@5.9.2))(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) webdriverio: specifier: ^9.0.7 - version: 9.15.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) + version: 9.18.4(bufferutil@4.0.9)(utf-8-validate@6.0.5) packages/ckeditor5-math: dependencies: '@ckeditor/ckeditor5-icons': - specifier: 45.2.1 - version: 45.2.1 + specifier: 46.0.0 + version: 46.0.0 devDependencies: '@ckeditor/ckeditor5-dev-build-tools': specifier: 43.1.0 - version: 43.1.0(@swc/helpers@0.5.17)(tslib@2.8.1)(typescript@5.8.3) + version: 43.1.0(@swc/helpers@0.5.17)(tslib@2.8.1)(typescript@5.9.2) '@ckeditor/ckeditor5-dev-utils': specifier: 43.1.0 - version: 43.1.0(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)) + version: 43.1.0(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)) '@ckeditor/ckeditor5-inspector': specifier: '>=4.1.0' - version: 4.1.0 + version: 5.0.0 '@ckeditor/ckeditor5-package-tools': specifier: ^4.0.0 - version: 4.0.0(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.16.0)(bufferutil@4.0.9)(esbuild@0.25.5)(utf-8-validate@6.0.5) + version: 4.0.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.1.0)(bufferutil@4.0.9)(esbuild@0.25.8)(utf-8-validate@6.0.5) '@typescript-eslint/eslint-plugin': - specifier: ~8.35.0 - version: 8.35.1(@typescript-eslint/parser@8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) + specifier: ~8.39.0 + version: 8.39.0(@typescript-eslint/parser@8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) '@typescript-eslint/parser': specifier: ^8.0.0 - version: 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) + version: 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) '@vitest/browser': specifier: ^3.0.5 - version: 3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@22.16.0)(typescript@5.8.3))(playwright@1.53.2)(utf-8-validate@6.0.5)(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0))(vitest@3.2.4)(webdriverio@9.15.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)) + version: 3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@24.1.0)(typescript@5.9.2))(playwright@1.54.2)(utf-8-validate@6.0.5)(vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vitest@3.2.4)(webdriverio@9.18.4(bufferutil@4.0.9)(utf-8-validate@6.0.5)) '@vitest/coverage-istanbul': specifier: ^3.0.5 version: 3.2.4(vitest@3.2.4) ckeditor5: - specifier: 45.2.1 - version: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + specifier: 46.0.0 + version: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) eslint: specifier: ^9.0.0 - version: 9.30.1(jiti@2.4.2) + version: 9.32.0(jiti@2.5.1) eslint-config-ckeditor5: specifier: '>=9.1.0' - version: 11.0.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) + version: 12.1.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) http-server: specifier: ^14.1.0 version: 14.1.1 lint-staged: specifier: ^16.0.0 - version: 16.1.2 + version: 16.1.4 stylelint: specifier: ^16.0.0 - version: 16.21.1(typescript@5.8.3) + version: 16.23.1(typescript@5.9.2) stylelint-config-ckeditor5: specifier: '>=9.1.0' - version: 11.0.1(stylelint@16.21.1(typescript@5.8.3)) + version: 12.1.0(stylelint@16.23.1(typescript@5.9.2)) ts-node: specifier: ^10.9.1 - version: 10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.16.0)(typescript@5.8.3) + version: 10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.1.0)(typescript@5.9.2) typescript: - specifier: 5.8.3 - version: 5.8.3 + specifier: 5.9.2 + version: 5.9.2 vite-plugin-svgo: specifier: ~2.0.0 - version: 2.0.0(typescript@5.8.3)(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0)) + version: 2.0.0(typescript@5.9.2)(vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) vitest: specifier: ^3.0.5 - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.16.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.4.2)(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.16.0)(typescript@5.8.3))(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.1.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.5.1)(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@24.1.0)(typescript@5.9.2))(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) webdriverio: specifier: ^9.0.7 - version: 9.15.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) + version: 9.18.4(bufferutil@4.0.9)(utf-8-validate@6.0.5) packages/ckeditor5-mermaid: dependencies: @@ -1131,61 +1139,61 @@ importers: devDependencies: '@ckeditor/ckeditor5-dev-build-tools': specifier: 43.1.0 - version: 43.1.0(@swc/helpers@0.5.17)(tslib@2.8.1)(typescript@5.8.3) + version: 43.1.0(@swc/helpers@0.5.17)(tslib@2.8.1)(typescript@5.9.2) '@ckeditor/ckeditor5-inspector': specifier: '>=4.1.0' - version: 4.1.0 + version: 5.0.0 '@ckeditor/ckeditor5-package-tools': specifier: ^4.0.0 - version: 4.0.0(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.16.0)(bufferutil@4.0.9)(esbuild@0.25.5)(utf-8-validate@6.0.5) + version: 4.0.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.1.0)(bufferutil@4.0.9)(esbuild@0.25.8)(utf-8-validate@6.0.5) '@typescript-eslint/eslint-plugin': - specifier: ~8.35.0 - version: 8.35.1(@typescript-eslint/parser@8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) + specifier: ~8.39.0 + version: 8.39.0(@typescript-eslint/parser@8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) '@typescript-eslint/parser': specifier: ^8.0.0 - version: 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) + version: 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) '@vitest/browser': specifier: ^3.0.5 - version: 3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@22.16.0)(typescript@5.8.3))(playwright@1.53.2)(utf-8-validate@6.0.5)(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0))(vitest@3.2.4)(webdriverio@9.15.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)) + version: 3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@24.1.0)(typescript@5.9.2))(playwright@1.54.2)(utf-8-validate@6.0.5)(vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vitest@3.2.4)(webdriverio@9.18.4(bufferutil@4.0.9)(utf-8-validate@6.0.5)) '@vitest/coverage-istanbul': specifier: ^3.0.5 version: 3.2.4(vitest@3.2.4) ckeditor5: - specifier: 45.2.1 - version: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + specifier: 46.0.0 + version: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) eslint: specifier: ^9.0.0 - version: 9.30.1(jiti@2.4.2) + version: 9.32.0(jiti@2.5.1) eslint-config-ckeditor5: specifier: '>=9.1.0' - version: 11.0.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) + version: 12.1.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) http-server: specifier: ^14.1.0 version: 14.1.1 lint-staged: specifier: ^16.0.0 - version: 16.1.2 + version: 16.1.4 stylelint: specifier: ^16.0.0 - version: 16.21.1(typescript@5.8.3) + version: 16.23.1(typescript@5.9.2) stylelint-config-ckeditor5: specifier: '>=9.1.0' - version: 11.0.1(stylelint@16.21.1(typescript@5.8.3)) + version: 12.1.0(stylelint@16.23.1(typescript@5.9.2)) ts-node: specifier: ^10.9.1 - version: 10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.16.0)(typescript@5.8.3) + version: 10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.1.0)(typescript@5.9.2) typescript: - specifier: 5.8.3 - version: 5.8.3 + specifier: 5.9.2 + version: 5.9.2 vite-plugin-svgo: specifier: ~2.0.0 - version: 2.0.0(typescript@5.8.3)(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0)) + version: 2.0.0(typescript@5.9.2)(vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) vitest: specifier: ^3.0.5 - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.16.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.4.2)(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.16.0)(typescript@5.8.3))(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.1.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.5.1)(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@24.1.0)(typescript@5.9.2))(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) webdriverio: specifier: ^9.0.7 - version: 9.15.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) + version: 9.18.4(bufferutil@4.0.9)(utf-8-validate@6.0.5) packages/codemirror: dependencies: @@ -1205,8 +1213,8 @@ importers: specifier: 6.0.2 version: 6.0.2 '@codemirror/lang-markdown': - specifier: 6.3.3 - version: 6.3.3 + specifier: 6.3.4 + version: 6.3.4 '@codemirror/lang-php': specifier: 6.0.2 version: 6.0.2 @@ -1223,86 +1231,86 @@ importers: specifier: 6.5.11 version: 6.5.11 '@codemirror/view': - specifier: 6.38.0 - version: 6.38.0 + specifier: 6.38.1 + version: 6.38.1 '@fsegurai/codemirror-theme-abcdef': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1) + version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-abyss': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1) + version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-android-studio': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1) + version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-andromeda': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1) + version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-basic-dark': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1) + version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-basic-light': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1) + version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-forest': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1) + version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-github-dark': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1) + version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-github-light': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1) + version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-gruvbox-dark': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1) + version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-gruvbox-light': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1) + version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-material-dark': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1) + version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-material-light': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1) + version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-monokai': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1) + version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-nord': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1) + version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-palenight': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1) + version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-solarized-dark': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1) + version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-solarized-light': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1) + version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-tokyo-night-day': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1) + version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-tokyo-night-storm': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1) + version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-volcano': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1) + version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-vscode-dark': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1) + version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-vscode-light': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1) + version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1) '@replit/codemirror-indentation-markers': specifier: 6.5.3 - version: 6.5.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0) + version: 6.5.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1) '@replit/codemirror-lang-nix': specifier: 6.0.1 - version: 6.0.1(@codemirror/autocomplete@6.18.6)(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/common@1.2.3)(@lezer/highlight@1.2.1)(@lezer/lr@1.4.2) + version: 6.0.1(@codemirror/autocomplete@6.18.6)(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/common@1.2.3)(@lezer/highlight@1.2.1)(@lezer/lr@1.4.2) '@replit/codemirror-vim': specifier: 6.3.0 - version: 6.3.0(@codemirror/commands@6.8.1)(@codemirror/language@6.11.0)(@codemirror/search@6.5.11)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0) + version: 6.3.0(@codemirror/commands@6.8.1)(@codemirror/language@6.11.0)(@codemirror/search@6.5.11)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1) '@ssddanbrown/codemirror-lang-smarty': specifier: 1.0.0 version: 1.0.0 @@ -1319,8 +1327,8 @@ importers: specifier: 0.5.0 version: 0.5.0 eslint-linter-browserify: - specifier: 9.30.1 - version: 9.30.1 + specifier: 9.32.0 + version: 9.32.0 packages/commons: {} @@ -1358,25 +1366,25 @@ importers: version: 5.21.1 '@typescript-eslint/eslint-plugin': specifier: ^8.0.0 - version: 8.35.1(@typescript-eslint/parser@8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) + version: 8.39.0(@typescript-eslint/parser@8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) '@typescript-eslint/parser': specifier: ^8.0.0 - version: 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) + version: 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) dotenv: specifier: ^17.0.0 - version: 17.0.1 + version: 17.2.1 esbuild: specifier: ^0.25.0 - version: 0.25.5 + version: 0.25.8 eslint: specifier: ^9.0.0 - version: 9.30.1(jiti@2.4.2) + version: 9.32.0(jiti@2.5.1) highlight.js: specifier: ^11.8.0 version: 11.11.1 typescript: specifier: ^5.2.2 - version: 5.8.3 + version: 5.9.2 packages/turndown-plugin-gfm: devDependencies: @@ -1389,9 +1397,6 @@ importers: packages: - '@adobe/css-tools@4.3.3': - resolution: {integrity: sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==} - '@ampproject/remapping@2.3.0': resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} @@ -1402,8 +1407,8 @@ packages: '@antfu/utils@8.1.1': resolution: {integrity: sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==} - '@anthropic-ai/sdk@0.55.1': - resolution: {integrity: sha512-gjOMS4chmm8BxClKmCjNHmvf1FrO1Cn++CSX6K3YCZjz5JG4I9ZttQ/xEH4FBsz6HQyZvnUpiKlOAkmxaGmEaQ==} + '@anthropic-ai/sdk@0.58.0': + resolution: {integrity: sha512-wF8w+LB0AlKVLYUQho0nbK0uDv0K5Cgb92dbh8213t4roilnQ9Tm6zndheIaUxQdoEAeb0uoOT+GkkoIkqD8+A==} hasBin: true '@apidevtools/json-schema-ref-parser@9.1.2': @@ -1441,110 +1446,110 @@ packages: '@aws-crypto/util@5.2.0': resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} - '@aws-sdk/client-bedrock-runtime@3.621.0': - resolution: {integrity: sha512-08QQhvnY3WQvIKX3rdzPcOwq13rD16jL63U2itpciNPVAlsDdw/4cUnbVSW+h9V/Lhb9LmlmbbbYdI3ZvGW+7A==} - engines: {node: '>=16.0.0'} + '@aws-sdk/client-bedrock-runtime@3.823.0': + resolution: {integrity: sha512-mA5ZqVof+M1Oje0tvu/GcD44boQJDUErN5oIDwHH/IV9pvgAB4Dp8zZyQztd/75rzFb5/TUeiWfj8bN+JPnx3A==} + engines: {node: '>=18.0.0'} - '@aws-sdk/client-sso-oidc@3.621.0': - resolution: {integrity: sha512-mMjk3mFUwV2Y68POf1BQMTF+F6qxt5tPu6daEUCNGC9Cenk3h2YXQQoS4/eSyYzuBiYk3vx49VgleRvdvkg8rg==} - engines: {node: '>=16.0.0'} - peerDependencies: - '@aws-sdk/client-sts': ^3.621.0 + '@aws-sdk/client-sso@3.823.0': + resolution: {integrity: sha512-dBWdsbyGw8rPfdCsZySNtTOGQK4EZ8lxB/CneSQWRBPHgQ+Ys88NXxImO8xfWO7Itt1eh8O7UDTZ9+smcvw2pw==} + engines: {node: '>=18.0.0'} - '@aws-sdk/client-sso@3.621.0': - resolution: {integrity: sha512-xpKfikN4u0BaUYZA9FGUMkkDmfoIP0Q03+A86WjqDWhcOoqNA1DkHsE4kZ+r064ifkPUfcNuUvlkVTEoBZoFjA==} - engines: {node: '>=16.0.0'} + '@aws-sdk/core@3.823.0': + resolution: {integrity: sha512-1Cf4w8J7wYexz0KU3zpaikHvldGXQEjFldHOhm0SBGRy7qfYNXecfJAamccF7RdgLxKGgkv5Pl9zX/Z/DcW9zg==} + engines: {node: '>=18.0.0'} - '@aws-sdk/client-sts@3.621.0': - resolution: {integrity: sha512-707uiuReSt+nAx6d0c21xLjLm2lxeKc7padxjv92CIrIocnQSlJPxSCM7r5zBhwiahJA6MNQwmTl2xznU67KgA==} - engines: {node: '>=16.0.0'} + '@aws-sdk/credential-provider-env@3.823.0': + resolution: {integrity: sha512-AIrLLwumObge+U1klN4j5ToIozI+gE9NosENRyHe0GIIZgTLOG/8jxrMFVYFeNHs7RUtjDTxxewislhFyGxJ/w==} + engines: {node: '>=18.0.0'} - '@aws-sdk/core@3.621.0': - resolution: {integrity: sha512-CtOwWmDdEiINkGXD93iGfXjN0WmCp9l45cDWHHGa8lRgEDyhuL7bwd/pH5aSzj0j8SiQBG2k0S7DHbd5RaqvbQ==} - engines: {node: '>=16.0.0'} + '@aws-sdk/credential-provider-http@3.823.0': + resolution: {integrity: sha512-u4DXvB/J/o2bcvP1JP6n3ch7V3/NngmiJFPsM0hKUyRlLuWM37HEDEdjPRs3/uL/soTxrEhWKTA9//YVkvzI0w==} + engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-env@3.620.1': - resolution: {integrity: sha512-ExuILJ2qLW5ZO+rgkNRj0xiAipKT16Rk77buvPP8csR7kkCflT/gXTyzRe/uzIiETTxM7tr8xuO9MP/DQXqkfg==} - engines: {node: '>=16.0.0'} + '@aws-sdk/credential-provider-ini@3.823.0': + resolution: {integrity: sha512-C0o63qviK5yFvjH9zKWAnCUBkssJoQ1A1XAHe0IAQkurzoNBSmu9oVemqwnKKHA4H6QrmusaEERfL00yohIkJA==} + engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-http@3.621.0': - resolution: {integrity: sha512-/jc2tEsdkT1QQAI5Dvoci50DbSxtJrevemwFsm0B73pwCcOQZ5ZwwSdVqGsPutzYzUVx3bcXg3LRL7jLACqRIg==} - engines: {node: '>=16.0.0'} + '@aws-sdk/credential-provider-node@3.823.0': + resolution: {integrity: sha512-nfSxXVuZ+2GJDpVFlflNfh55Yb4BtDsXLGNssXF5YU6UgSPsi8j2YkaE92Jv2s7dlUK07l0vRpLyPuXMaGeiRQ==} + engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-ini@3.621.0': - resolution: {integrity: sha512-0EWVnSc+JQn5HLnF5Xv405M8n4zfdx9gyGdpnCmAmFqEDHA8LmBdxJdpUk1Ovp/I5oPANhjojxabIW5f1uU0RA==} - engines: {node: '>=16.0.0'} - peerDependencies: - '@aws-sdk/client-sts': ^3.621.0 + '@aws-sdk/credential-provider-process@3.823.0': + resolution: {integrity: sha512-U/A10/7zu2FbMFFVpIw95y0TZf+oYyrhZTBn9eL8zgWcrYRqxrxdqtPj/zMrfIfyIvQUhuJSENN4dx4tfpCMWQ==} + engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-node@3.621.0': - resolution: {integrity: sha512-4JqpccUgz5Snanpt2+53hbOBbJQrSFq7E1sAAbgY6BKVQUsW5qyXqnjvSF32kDeKa5JpBl3bBWLZl04IadcPHw==} - engines: {node: '>=16.0.0'} + '@aws-sdk/credential-provider-sso@3.823.0': + resolution: {integrity: sha512-ff8IM80Wqz1V7VVMaMUqO2iR417jggfGWLPl8j2l7uCgwpEyop1ZZl5CFVYEwSupRBtwp+VlW1gTCk7ke56MUw==} + engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-process@3.620.1': - resolution: {integrity: sha512-hWqFMidqLAkaV9G460+1at6qa9vySbjQKKc04p59OT7lZ5cO5VH5S4aI05e+m4j364MBROjjk2ugNvfNf/8ILg==} - engines: {node: '>=16.0.0'} + '@aws-sdk/credential-provider-web-identity@3.823.0': + resolution: {integrity: sha512-lzoZdJMQq9w7i4lXVka30cVBe/dZoUDZST8Xz/soEd73gg7RTKgG+0szL4xFWgdBDgcJDWLfZfJzlbyIVyAyOA==} + engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-sso@3.621.0': - resolution: {integrity: sha512-Kza0jcFeA/GEL6xJlzR2KFf1PfZKMFnxfGzJzl5yN7EjoGdMijl34KaRyVnfRjnCWcsUpBWKNIDk9WZVMY9yiw==} - engines: {node: '>=16.0.0'} + '@aws-sdk/eventstream-handler-node@3.821.0': + resolution: {integrity: sha512-JqmzOCAnd9pUnmbrqXIbyBUxjw/UAfXAu8KAsE/4SveUIvyYRbYSTfCoPq6nnNJQpBtdEFLkjvBnHKBcInDwkg==} + engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-web-identity@3.621.0': - resolution: {integrity: sha512-w7ASSyfNvcx7+bYGep3VBgC3K6vEdLmlpjT7nSIHxxQf+WSdvy+HynwJosrpZax0sK5q0D1Jpn/5q+r5lwwW6w==} - engines: {node: '>=16.0.0'} - peerDependencies: - '@aws-sdk/client-sts': ^3.621.0 + '@aws-sdk/middleware-eventstream@3.821.0': + resolution: {integrity: sha512-L+qud1uX1hX7MpRy564dFj4/5sDRKVLToiydvgRy6Rc3pwsVhRpm6/2djMVgDsFI3sYd+JoeTFjEypkoV3LE5Q==} + engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-host-header@3.620.0': - resolution: {integrity: sha512-VMtPEZwqYrII/oUkffYsNWY9PZ9xpNJpMgmyU0rlDQ25O1c0Hk3fJmZRe6pEkAJ0omD7kLrqGl1DUjQVxpd/Rg==} - engines: {node: '>=16.0.0'} + '@aws-sdk/middleware-host-header@3.821.0': + resolution: {integrity: sha512-xSMR+sopSeWGx5/4pAGhhfMvGBHioVBbqGvDs6pG64xfNwM5vq5s5v6D04e2i+uSTj4qGa71dLUs5I0UzAK3sw==} + engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-logger@3.609.0': - resolution: {integrity: sha512-S62U2dy4jMDhDFDK5gZ4VxFdWzCtLzwbYyFZx2uvPYTECkepLUfzLic2BHg2Qvtu4QjX+oGE3P/7fwaGIsGNuQ==} - engines: {node: '>=16.0.0'} + '@aws-sdk/middleware-logger@3.821.0': + resolution: {integrity: sha512-0cvI0ipf2tGx7fXYEEN5fBeZDz2RnHyb9xftSgUsEq7NBxjV0yTZfLJw6Za5rjE6snC80dRN8+bTNR1tuG89zA==} + engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-recursion-detection@3.620.0': - resolution: {integrity: sha512-nh91S7aGK3e/o1ck64sA/CyoFw+gAYj2BDOnoNa6ouyCrVJED96ZXWbhye/fz9SgmNUZR2g7GdVpiLpMKZoI5w==} - engines: {node: '>=16.0.0'} + '@aws-sdk/middleware-recursion-detection@3.821.0': + resolution: {integrity: sha512-efmaifbhBoqKG3bAoEfDdcM8hn1psF+4qa7ykWuYmfmah59JBeqHLfz5W9m9JoTwoKPkFcVLWZxnyZzAnVBOIg==} + engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-user-agent@3.620.0': - resolution: {integrity: sha512-bvS6etn+KsuL32ubY5D3xNof1qkenpbJXf/ugGXbg0n98DvDFQ/F+SMLxHgbnER5dsKYchNnhmtI6/FC3HFu/A==} - engines: {node: '>=16.0.0'} + '@aws-sdk/middleware-user-agent@3.823.0': + resolution: {integrity: sha512-TKRQK09ld1LrIPExC9rIDpqnMsWcv+eq8ABKFHVo8mDLTSuWx/IiQ4eCh9T5zDuEZcLY4nNYCSzXKqw6XKcMCA==} + engines: {node: '>=18.0.0'} - '@aws-sdk/region-config-resolver@3.614.0': - resolution: {integrity: sha512-vDCeMXvic/LU0KFIUjpC3RiSTIkkvESsEfbVHiHH0YINfl8HnEqR5rj+L8+phsCeVg2+LmYwYxd5NRz4PHxt5g==} - engines: {node: '>=16.0.0'} + '@aws-sdk/nested-clients@3.823.0': + resolution: {integrity: sha512-/BcyOBubrJnd2gxlbbmNJR1w0Z3OVN/UE8Yz20e+ou+Mijjv7EbtVwmWvio1e3ZjphwdA8tVfPYZKwXmrvHKmQ==} + engines: {node: '>=18.0.0'} - '@aws-sdk/token-providers@3.614.0': - resolution: {integrity: sha512-okItqyY6L9IHdxqs+Z116y5/nda7rHxLvROxtAJdLavWTYDydxrZstImNgGWTeVdmc0xX2gJCI77UYUTQWnhRw==} - engines: {node: '>=16.0.0'} - peerDependencies: - '@aws-sdk/client-sso-oidc': ^3.614.0 + '@aws-sdk/region-config-resolver@3.821.0': + resolution: {integrity: sha512-t8og+lRCIIy5nlId0bScNpCkif8sc0LhmtaKsbm0ZPm3sCa/WhCbSZibjbZ28FNjVCV+p0D9RYZx0VDDbtWyjw==} + engines: {node: '>=18.0.0'} - '@aws-sdk/types@3.609.0': - resolution: {integrity: sha512-+Tqnh9w0h2LcrUsdXyT1F8mNhXz+tVYBtP19LpeEGntmvHwa2XzvLUCWpoIAIVsHp5+HdB2X9Sn0KAtmbFXc2Q==} - engines: {node: '>=16.0.0'} + '@aws-sdk/token-providers@3.823.0': + resolution: {integrity: sha512-vz6onCb/+g4y+owxGGPMEMdN789dTfBOgz/c9pFv0f01840w9Rrt46l+gjQlnXnx+0KG6wNeBIVhFdbCfV3HyQ==} + engines: {node: '>=18.0.0'} - '@aws-sdk/util-endpoints@3.614.0': - resolution: {integrity: sha512-wK2cdrXHH4oz4IomV/yrGkftU9A+ITB6nFL+rxxyO78is2ifHJpFdV4aqk4LSkXYPi6CXWNru/Dqc7yiKXgJPw==} - engines: {node: '>=16.0.0'} + '@aws-sdk/types@3.821.0': + resolution: {integrity: sha512-Znroqdai1a90TlxGaJ+FK1lwC0fHpo97Xjsp5UKGR5JODYm7f9+/fF17ebO1KdoBr/Rm0UIFiF5VmI8ts9F1eA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/util-endpoints@3.821.0': + resolution: {integrity: sha512-Uknt/zUZnLE76zaAAPEayOeF5/4IZ2puTFXvcSCWHsi9m3tqbb9UozlnlVqvCZLCRWfQryZQoG2W4XSS3qgk5A==} + engines: {node: '>=18.0.0'} '@aws-sdk/util-locate-window@3.804.0': resolution: {integrity: sha512-zVoRfpmBVPodYlnMjgVjfGoEZagyRF5IPn3Uo6ZvOZp24chnW/FRstH7ESDHDDRga4z3V+ElUQHKpFDXWyBW5A==} engines: {node: '>=18.0.0'} - '@aws-sdk/util-user-agent-browser@3.609.0': - resolution: {integrity: sha512-fojPU+mNahzQ0YHYBsx0ZIhmMA96H+ZIZ665ObU9tl+SGdbLneVZVikGve+NmHTQwHzwkFsZYYnVKAkreJLAtA==} + '@aws-sdk/util-user-agent-browser@3.821.0': + resolution: {integrity: sha512-irWZHyM0Jr1xhC+38OuZ7JB6OXMLPZlj48thElpsO1ZSLRkLZx5+I7VV6k3sp2yZ7BYbKz/G2ojSv4wdm7XTLw==} - '@aws-sdk/util-user-agent-node@3.614.0': - resolution: {integrity: sha512-15ElZT88peoHnq5TEoEtZwoXTXRxNrk60TZNdpl/TUBJ5oNJ9Dqb5Z4ryb8ofN6nm9aFf59GVAerFDz8iUoHBA==} - engines: {node: '>=16.0.0'} + '@aws-sdk/util-user-agent-node@3.823.0': + resolution: {integrity: sha512-WvNeRz7HV3JLBVGTXW4Qr5QvvWY0vtggH5jW/NqHFH+ZEliVQaUIJ/HNLMpMoCSiu/DlpQAyAjRZXAptJ0oqbw==} + engines: {node: '>=18.0.0'} peerDependencies: aws-crt: '>=1.0.0' peerDependenciesMeta: aws-crt: optional: true + '@aws-sdk/xml-builder@3.821.0': + resolution: {integrity: sha512-DIIotRnefVL6DiaHtO6/21DhJ4JZnnIwdNbpwiAhdt/AVbttcE4yw925gsjur0OGv5BTYXQXU3YnANBYnZjuQA==} + engines: {node: '>=18.0.0'} + '@babel/code-frame@7.26.2': resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} engines: {node: '>=6.9.0'} @@ -1553,18 +1558,10 @@ packages: resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.26.8': - resolution: {integrity: sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==} - engines: {node: '>=6.9.0'} - '@babel/compat-data@7.28.0': resolution: {integrity: sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==} engines: {node: '>=6.9.0'} - '@babel/core@7.26.10': - resolution: {integrity: sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==} - engines: {node: '>=6.9.0'} - '@babel/core@7.28.0': resolution: {integrity: sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==} engines: {node: '>=6.9.0'} @@ -1581,8 +1578,8 @@ packages: resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.27.0': - resolution: {integrity: sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA==} + '@babel/helper-annotate-as-pure@7.27.3': + resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} engines: {node: '>=6.9.0'} '@babel/helper-compilation-targets@7.27.2': @@ -1614,20 +1611,10 @@ packages: resolution: {integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.25.9': - resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} - engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.27.1': resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.26.0': - resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-module-transforms@7.27.3': resolution: {integrity: sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==} engines: {node: '>=6.9.0'} @@ -1638,8 +1625,8 @@ packages: resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==} engines: {node: '>=6.9.0'} - '@babel/helper-plugin-utils@7.26.5': - resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==} + '@babel/helper-plugin-utils@7.27.1': + resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} engines: {node: '>=6.9.0'} '@babel/helper-remap-async-to-generator@7.25.9': @@ -1666,10 +1653,6 @@ packages: resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.25.9': - resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} - engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.27.1': resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} engines: {node: '>=6.9.0'} @@ -1678,10 +1661,6 @@ packages: resolution: {integrity: sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.27.0': - resolution: {integrity: sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==} - engines: {node: '>=6.9.0'} - '@babel/helpers@7.27.6': resolution: {integrity: sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==} engines: {node: '>=6.9.0'} @@ -1787,8 +1766,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-jsx@7.25.9': - resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} + '@babel/plugin-syntax-jsx@7.27.1': + resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1835,8 +1814,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-typescript@7.25.9': - resolution: {integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==} + '@babel/plugin-syntax-typescript@7.27.1': + resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -2075,6 +2054,18 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-jsx-development@7.27.1': + resolution: {integrity: sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx@7.27.1': + resolution: {integrity: sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-regenerator@7.27.0': resolution: {integrity: sha512-LX/vCajUJQDqE7Aum/ELUMZAY19+cDpghxrnyt5I1tV6X5PyC86AOoWXWFYFeIvauyeSA6/ktn4tQVn/3ZifsA==} engines: {node: '>=6.9.0'} @@ -2200,14 +2191,14 @@ packages: resolution: {integrity: sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==} engines: {node: '>=6.9.0'} - '@babel/types@7.27.6': - resolution: {integrity: sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==} - engines: {node: '>=6.9.0'} - '@babel/types@7.28.0': resolution: {integrity: sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==} engines: {node: '>=6.9.0'} + '@babel/types@7.28.1': + resolution: {integrity: sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==} + engines: {node: '>=6.9.0'} + '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} @@ -2221,8 +2212,8 @@ packages: '@braintree/sanitize-url@7.1.1': resolution: {integrity: sha512-i1L7noDNxtFyL5DmZafWy1wRVhGehQmzZaz1HiN5e7iylJMSZR7ekOV7NsIqa5qBldlLrsKv4HbgFUVlQrz8Mw==} - '@bufbuild/protobuf@2.6.0': - resolution: {integrity: sha512-6cuonJVNOIL7lTj5zgo/Rc2bKAo4/GvN+rKCrUj7GdEHRzCk8zKOfFwUsL9nAVk5rSIsRmlgcpLzTRysopEeeg==} + '@bufbuild/protobuf@2.6.3': + resolution: {integrity: sha512-w/gJKME9mYN7ZoUAmSMAWXk4hkVpxRKvEJCb3dV5g9wwWdxTJJ0ayOJAVcNxtdqaxDyFuC0uz4RSGVacJ030PQ==} '@bundled-es-modules/cookie@2.0.1': resolution: {integrity: sha512-8o+5fRPLNbjbdGRRmJj3h6Hh1AQJf2dk3qQ/5ZFb+PXkRNiSoMGGUKlsgLfrxneb72axVJyIYji64E2+nNfYyw==} @@ -2254,56 +2245,56 @@ packages: '@ckeditor/ckeditor5-utils': '>= 37.0' ckeditor5: '>= 37.0' - '@ckeditor/ckeditor5-adapter-ckfinder@45.2.1': - resolution: {integrity: sha512-lvXu5hc1wP0U2tTGm9wi8QoWrxnoPfR04A5br8u5cYzIbmyYDFcHgBWhWXjrDrjxVGDMSLgmrMtsw5gLhzE2yw==} + '@ckeditor/ckeditor5-adapter-ckfinder@46.0.0': + resolution: {integrity: sha512-Y5OrOyHHgnjA9ferph822U9eJdWqIFbPoRpUTcs/kXWKmQBCvAqPOoGJGAz6O9TCZoGUqjK71eVKV0jSnSo22A==} - '@ckeditor/ckeditor5-ai@45.2.1': - resolution: {integrity: sha512-CDkYC9u8ualtiSA7T/RX7OkFBbqNncpTr3MGXZZG8d4t3xjrFiXvVW8OnJJkbhBBRrFzIrkHoeDqNnlTiArHHw==} + '@ckeditor/ckeditor5-ai@46.0.0': + resolution: {integrity: sha512-56CPl4LETFZn+uzN7A9cG8Bj7hZnREGUIp4IhmnGRZvLr5wFWtfL8XhQh8huo7hBJ0uhAVY5pDB2owLkfz4ITw==} - '@ckeditor/ckeditor5-alignment@45.2.1': - resolution: {integrity: sha512-aYCxhuvur2vtgzhl8yw4OWqhjsNvqUBW5Lyk4SVcs+fVyaOxIYhjNw+9oVkAjryPT/wLVhXBHnQEBoG6hUuE8g==} + '@ckeditor/ckeditor5-alignment@46.0.0': + resolution: {integrity: sha512-GNyqLCASALv9hygMfj0lvsl2WAMbOLNcezjjlapYYiZDJSWrxWkYI8Sl+GojjWYyIovwBaGHwJM1IDYKB3mMgw==} - '@ckeditor/ckeditor5-autoformat@45.2.1': - resolution: {integrity: sha512-0QsRJ+Oh3+3oAwG+KeuyPBnFArF4mzFk8RX277iqQInbIit63lds0pgejJGvXMrDcpUxo6RzmXKZPJEeps818Q==} + '@ckeditor/ckeditor5-autoformat@46.0.0': + resolution: {integrity: sha512-/PU0QlSKHTemYzELG1cQWn7GQ2AYKb3+pSvM3sTgxYkel00KZcmmh0Nl18nyJrlKqn7xKAqEg8XwjsF17I/fJA==} - '@ckeditor/ckeditor5-autosave@45.2.1': - resolution: {integrity: sha512-XnK5Ktec5nQ12ianvf++zrxNpS9sjA2C/e9TTBcY3h99oMcdO7cbm0Yv9zzQNODQifdrHq/KXwAoWSYYNTjtiw==} + '@ckeditor/ckeditor5-autosave@46.0.0': + resolution: {integrity: sha512-xIaLvCg6ijac41UyPMIfBvS1Gc1u9Y4OcvGln3GCskdFVyjNhHOe4p8yaTavwJ78Dc+59zDIP0rGV8AYWFhyYA==} - '@ckeditor/ckeditor5-basic-styles@45.2.1': - resolution: {integrity: sha512-PXnnddU8boF2PFziaodXrPYtLgEmWSjH9YaZMSFrcsf11RmqLJ3YjaJHfL94TFFQuK+Ey3pAIiT7d7EOjARBVw==} + '@ckeditor/ckeditor5-basic-styles@46.0.0': + resolution: {integrity: sha512-i56SO1n0Xuclhel4Ol362khimK9NQFv4NEcnP058b7JK7JXVDZlyyNHh+J8nTALWokmoLPvj823/2F4yKC8oRQ==} - '@ckeditor/ckeditor5-block-quote@45.2.1': - resolution: {integrity: sha512-H7x7EYwfK6M2v4n6VIp1PJ5YyZBnR6/vyqEiH7CQB5cN6IvgjxArXimD6BnIVYXgiwVGk89P4Lv0UZOe4zICYQ==} + '@ckeditor/ckeditor5-block-quote@46.0.0': + resolution: {integrity: sha512-ASZM3p0wzg2Q4OMsEFhyyi3mN8EUl02LhOxZ41eKa1H2qtAUi+aIFEYNf69raWZ2tqzLfm0z2wTNROzPa3KCJw==} - '@ckeditor/ckeditor5-bookmark@45.2.1': - resolution: {integrity: sha512-qJxadIb5d0dJWSA3pLC9Udo22tViqgg60LqvkjA7HPoP/NNx0YPaS5fmnb7nW03KaZo/58C8nc9DdvuO7LlWWw==} + '@ckeditor/ckeditor5-bookmark@46.0.0': + resolution: {integrity: sha512-E52IERdDfNKuagMUkFju6ScFqDIDpXYlLhOmOLv7C/Xh8vKJtyufjjDl/OkhBdMa6gaaHug4a9F7OfCtE+P/Lw==} - '@ckeditor/ckeditor5-case-change@45.2.1': - resolution: {integrity: sha512-Iptyf8quiVPAfoaW9mBwXGwfX1uoyfS6/45kS95SZM1cA29PednSnZNKE8ZkWR1jKhYi6Eev9ntKmvd4Q7gMLA==} + '@ckeditor/ckeditor5-case-change@46.0.0': + resolution: {integrity: sha512-HAsZ/8wywWDP5kWmBxy8YkIS7kxwK2YLmzro+u7rwMwnxXw+DaoMtCeTZcFehwBC2mzN6DfMUXZ4epl9IfNK/g==} - '@ckeditor/ckeditor5-ckbox@45.2.1': - resolution: {integrity: sha512-v+2I5scbc6y4lnz9cbH/6FQRxpqJ1vymlSACFe6R9mH8aqIROHArIhofG6Bwd9LK6ksAMITO+He20fFWe0HJRA==} + '@ckeditor/ckeditor5-ckbox@46.0.0': + resolution: {integrity: sha512-3RWEx+H7+RKlblI579w8AnlDO3JeRFHmNxh2XolSGohy1bqTttATi5WZVVmGK6quIgFss4VmRpuzZYPpiciuIQ==} - '@ckeditor/ckeditor5-ckfinder@45.2.1': - resolution: {integrity: sha512-LEgK9IM+ZX+WcE60kqyr1aMQQfH6HgUUIomly2b7InmIfwUBzIc37ef21WlFd/w+YSjwBjwRLG0W+oYVmx3SZg==} + '@ckeditor/ckeditor5-ckfinder@46.0.0': + resolution: {integrity: sha512-g7bhFrrlEUi/QbRkGbNRKeeZCrXU7DkLkGsMBypb0m/7hFF0M3XivXNxh9MxrBjIbCyLjnCPXZVL3dLcapHUww==} - '@ckeditor/ckeditor5-clipboard@45.2.1': - resolution: {integrity: sha512-VEzCNHEzJO4B5Co4Q3YO06g7GThkSmgOWAFgQwa/BDKqT40/u36ccB7uYKsWzBMBRu3KsOWFk6sPSueQiMfmew==} + '@ckeditor/ckeditor5-clipboard@46.0.0': + resolution: {integrity: sha512-FNXyYk8lZKCdpOOql8rTGnTyW6eRo07i4jTSb0sCOOc/x3iAfhyw0ckHI11hi7U3cYE0fOf8WZvp2fn0NfsPVg==} - '@ckeditor/ckeditor5-cloud-services@45.2.1': - resolution: {integrity: sha512-LQDjKxScFAkgXiFB9fypqf3pj2ou63SgsTmt3aMuH/e5NGxGCbG9EodHWgFCg5cvGEXV+jC7JCrOquflti/yBg==} + '@ckeditor/ckeditor5-cloud-services@46.0.0': + resolution: {integrity: sha512-ai1OjKmoWmBK/RY5jUXVFAX92szMrK/UcVcu1QHwYBoBNqxoQajsLyzBd+QUg3Z3AdQCpLEJqabgsfizMyrpiA==} - '@ckeditor/ckeditor5-code-block@45.2.1': - resolution: {integrity: sha512-/XmKP8lol6WHDK/wbxFJu3npH8WnbZC9Gt7kND8bnpfQTSVihZmtjOnSfmyo6jKTsXWB1eDUI4+JdKCdrgfd2A==} + '@ckeditor/ckeditor5-code-block@46.0.0': + resolution: {integrity: sha512-9rJqjpW/RY/kKCYEWMchTaTuGyMnUHspteBumtFOnwJS6PVaA1uJU5FOAPSFevZx9KzJBoXbehxtZWmUjImLMQ==} - '@ckeditor/ckeditor5-collaboration-core@45.2.1': - resolution: {integrity: sha512-e9PwSUJ21mKeS97B1LHTw53xSbeWlSTJNMMiDNR6bktMfGq92Q+Pw5UuV6m4N/X59V4+svQBxFJBbiNMKAExuQ==} + '@ckeditor/ckeditor5-collaboration-core@46.0.0': + resolution: {integrity: sha512-2avV+/PwoPI8qKelprjLoush3PqEME3q1iwh6gTqqN+Ayy7Zc7jV5yEl5HIUZO5L0WzHYkiBZjfmRCxUxL8Hsg==} - '@ckeditor/ckeditor5-comments@45.2.1': - resolution: {integrity: sha512-7bKJMUEJ94rC2PP51UxMmCPYFxi3KGDMCdBk+oa8+OZ7GtJf2Csmu9J1uT9eeGjqeD+LVbU7ljYpDCDlofjgZA==} + '@ckeditor/ckeditor5-comments@46.0.0': + resolution: {integrity: sha512-02ji0gIeLuVBopZfmw9hPOWnfDtA9MgDUtCPWI9rqjhg9k0u/ZcYGBFqsL6mUu7h/YaY1n8Z4aKIuArQFwYc3Q==} - '@ckeditor/ckeditor5-core@45.2.1': - resolution: {integrity: sha512-h32tw/50ampWiouysBEQLXbPSAV1QV4iUEFNQzJVSy9q9fnGy6hsLZNlTqA+bORHwhn8SL96+OcAcGUNOiWfEg==} + '@ckeditor/ckeditor5-core@46.0.0': + resolution: {integrity: sha512-Mm5bZVE6i2vcmwaCPvXgNGsVZwgQfb7DZhphWMZD7z4yfCJjqiJ+3ph6ZHtByHLcbUhq1Z8mn8Q+23Y/BVXfhg==} '@ckeditor/ckeditor5-dev-build-tools@43.1.0': resolution: {integrity: sha512-e4dyv/8MtmrcABlTMeCaBi/H+/axxXfYIPB6shOLP/ZXLOnz6j5AEuw+v/KsJja5Y+A7JPPg48H8twaB/KftIQ==} @@ -2314,233 +2305,232 @@ packages: resolution: {integrity: sha512-dIjau68aLaaQtugLsHaCTuxhRL9t2bFmtTIsoUfMl1uHWpOWMdv2LeGEcDznZp633gZh6SDmrqLq2Bp2iOVBew==} engines: {node: '>=18.0.0', npm: '>=5.7.1'} - '@ckeditor/ckeditor5-dev-translations@45.0.10': - resolution: {integrity: sha512-WplydfwQNMBPr4c/0sxi/gzjO84pKDt+Kjpxvw8IyvEM8Pm6hhtDUq6hxvqHwrP2DaPBSiP8Yu4DmC3co2VIRg==} - engines: {node: '>=18.0.0', npm: '>=5.7.1'} + '@ckeditor/ckeditor5-dev-translations@50.3.1': + resolution: {integrity: sha512-QMAnbZtAaAcukpBoui1jJP3tDRxUqGGT8V87asLPW42u5LggmZ+Vw7ORtVc+2UCB/2M0ZvVYZDASjJ46NCJa9A==} + engines: {node: '>=22.0.0', npm: '>=5.7.1'} '@ckeditor/ckeditor5-dev-utils@43.1.0': resolution: {integrity: sha512-EM1zg0vWcFSkxbwOYV6YE6nPoBphfEHtRKzgk86ex9XbxoQvq8HdDvC0dkCSAfgX0oUrFxjLonQBJUTgCoD3YQ==} engines: {node: '>=18.0.0', npm: '>=5.7.1'} - '@ckeditor/ckeditor5-dev-utils@45.0.10': - resolution: {integrity: sha512-qy+9myEN/c/LSQYbjwXx9P1YEIb3ms1gmTb3LwOzyZFeEZacztC5vKjEopBFQaNBy38edm9F97UXyANiZ+BUiw==} - engines: {node: '>=18.0.0', npm: '>=5.7.1'} + '@ckeditor/ckeditor5-dev-utils@50.3.1': + resolution: {integrity: sha512-Yl0yxDEI9AKKqfVk51hNZKLsYL2s0kFA06kmDkIp+ADg+IkgZRlEIkcEIZht5qSg6N9HFjh0RQQ8O0sLxRiJBA==} + engines: {node: '>=22.0.0', npm: '>=5.7.1'} - '@ckeditor/ckeditor5-document-outline@45.2.1': - resolution: {integrity: sha512-8fo1ld+Y/ky8k4qleySMuv/Hhx4v/dt4yIBCPew79yNCSDSRPhxVM42KBdE43B/m7YZmRODieRqJadiB4pF3wA==} + '@ckeditor/ckeditor5-document-outline@46.0.0': + resolution: {integrity: sha512-aLOQuPHXnHKzjQOm2Gg8O0WfzEAUJ0bDuM3nAE7/rqRja2bke2fBqWiy0pGMtVuy+TdYHpn+YGV5o012JNeKtg==} - '@ckeditor/ckeditor5-easy-image@45.2.1': - resolution: {integrity: sha512-jPydqTv1pRWo+uYQQn+er/WH3z6R77Jn3w2hQGKy77Ku9j0gEp/YwODSTW/IeZDDHE7Bmrw1S5ULHoveX7k4lg==} + '@ckeditor/ckeditor5-easy-image@46.0.0': + resolution: {integrity: sha512-y9rnIlbQRSe3FRdsoAaL0zpW6jlYPxIpCGT28WdWAF3kLwMp/41oKz6ggjbgzAafobUsbPdjpOzoLEDb8RyMcw==} - '@ckeditor/ckeditor5-editor-balloon@45.2.1': - resolution: {integrity: sha512-K/nNGeaBuD5MvaxamoZzv97LPzyb7n9t8FiScmXIpgkmy/mRt1jkbhmMtGuHdTuUL2v4z3hCthb1EDsxJM8HwQ==} + '@ckeditor/ckeditor5-editor-balloon@46.0.0': + resolution: {integrity: sha512-mDkeX4Lu9NG8gWW1hWPQvR2ZJ7JqKXBfkxRgI7D3PrwrfDyzT2XllfQ31ZjvdUwyUUWyJjIV5AkjsjwWerZHdQ==} - '@ckeditor/ckeditor5-editor-classic@45.2.1': - resolution: {integrity: sha512-cIyNNu4jano8WHl94ljNxXVpxGQadx4esDbV1rmj3e5gCh0XCXPOcyHYW9QPCT1Jf2M7YX32t5FFT/ixV4269A==} + '@ckeditor/ckeditor5-editor-classic@46.0.0': + resolution: {integrity: sha512-o0JLR+7KEydjEuHepkaWbi1VGzocxRik7/LiN60jvzeue48YF3ELtD1czRa5eebuAzh3FSL2r3hfbqpagxGlBg==} - '@ckeditor/ckeditor5-editor-decoupled@45.2.1': - resolution: {integrity: sha512-LNXe8CTIYL7PxwMHe2i1Ta7BlqmEO9ke/xrQxW+FHJ1obEsjZS56uz7YgBWISGXjWh/0bBRpz+7jL0FhflK9Dw==} + '@ckeditor/ckeditor5-editor-decoupled@46.0.0': + resolution: {integrity: sha512-HkCfauugtLQxD87A4HcFq2nMxnYq9yngh5JZTPygDSDigRMjNtbdk4PVqMt7p96yw6epJs1HVIZDlFqLljJfLw==} - '@ckeditor/ckeditor5-editor-inline@45.2.1': - resolution: {integrity: sha512-/z/7U43QdVn0PUgIq+a/HRbgAut2eeLCzWVL4henbfSRxYJ9DBHH3ckIhX//QTfyTodeJ/5igrSmZH7oGVPwww==} + '@ckeditor/ckeditor5-editor-inline@46.0.0': + resolution: {integrity: sha512-m4C6wFkEU16wLdwu2IkTutz+M0u72yqbngMVM95TJ0FNhNQf3T/TVdhjVQxMDlw7Ep+2X3vUDJXMpDQXLNoy1Q==} - '@ckeditor/ckeditor5-editor-multi-root@45.2.1': - resolution: {integrity: sha512-o3AIx3fKCbQPKrbcgflgUVLEfP+zL2/oX22agIA0iugghpLF2Q7y0hlVRuYjWa0fOY1mxt7EKC6BWwgrSF3X3Q==} + '@ckeditor/ckeditor5-editor-multi-root@46.0.0': + resolution: {integrity: sha512-WHCibqvsEBVZ0KqlCycqL+7S/5xXt+c4vuLlrKA6hYkF8YQXnxtxIVIWUZp6fEZi0+b75Eke3dOEK4wTY/tDbA==} - '@ckeditor/ckeditor5-email@45.2.1': - resolution: {integrity: sha512-CHuqu94j/R69Mbpk1TgiEUWf0JVELBandVzWylpLefTAwqTDkXwRAW+cpVrapELJKABUo9sCbhdzaMA5nEsYkA==} + '@ckeditor/ckeditor5-email@46.0.0': + resolution: {integrity: sha512-Y7ka17XCOMG7ShxLPyukeYaIQazsOjetVbxWlSolJcZS0YW9yQHE9mIUYlwMdgMjZHYe9MHD6WE6V5yMzKrHqA==} - '@ckeditor/ckeditor5-emoji@45.2.1': - resolution: {integrity: sha512-g5jtferdBRC7VI34AiLoVQZ4MYYr3PgEM0yZ1rNJSt0UfxQgZcHTu0SrZV/qxxweDcyQikHeBMrkQy0i77zabQ==} + '@ckeditor/ckeditor5-emoji@46.0.0': + resolution: {integrity: sha512-XCvkdcujJQeQbYMR6vGzZeOt11+9Q+BbzPh45BAytqzrWN4ngOpJX+BS6ORiZK4f9EsWPgF3kJgJiLVEJhovvw==} - '@ckeditor/ckeditor5-engine@45.2.1': - resolution: {integrity: sha512-kX6myPFscybc7ujM/iFTCKi5353+uRg0h1UKXVvh0NuqcnzJkMmpke3iFyzUckkfmtw/GvLvtRTli3190QgBaw==} + '@ckeditor/ckeditor5-engine@46.0.0': + resolution: {integrity: sha512-kuTPDygXaZkILp2A002zDWEZH1gHd6Pw5UfgF+S9f9wEgA0vPLYi/qbeqLkM6D95JQyAfXYPuEkXq6fZdtoZYQ==} - '@ckeditor/ckeditor5-enter@45.2.1': - resolution: {integrity: sha512-y5wsQmB6+rERieqkPi/DvrrY2v8t8bUVZtVtx7vdiujF3Iab7s6GvPcLCZJDhDPRNSVxJb2wR0jREIqGv+CAgw==} + '@ckeditor/ckeditor5-enter@46.0.0': + resolution: {integrity: sha512-SAGbScUrB1nazw7dXaGuT/S02bmYvnz/AMRxDkjRAXPqCNE6AUgdCr6dDmXREigQjsR01jvhvx1PAZwUgiC8IQ==} - '@ckeditor/ckeditor5-essentials@45.2.1': - resolution: {integrity: sha512-kMHqD/m5Y55CqgjAa4Ui5p+yg28c1Itm6V97Sn30z3lMXauSRU9Bg9JnSlV+b1zqZuiUGBedEtc8ou5rm1px+A==} + '@ckeditor/ckeditor5-essentials@46.0.0': + resolution: {integrity: sha512-3YuRFelc0f0oerzdrcDvSsMkKDATAB/Z219mjqize0N2RwUA17CCMCbFnGDWZYRekglRQYLTvxd8LCTCmEjQFA==} - '@ckeditor/ckeditor5-export-inline-styles@45.2.1': - resolution: {integrity: sha512-c03xnl5pC5BbVMt4TMpALyhcworhCM5RVC2XiiYAyMeVfoad5i3D6MknFRclpJATtVlwEqxhz+qo0pwtiL3V9A==} + '@ckeditor/ckeditor5-export-inline-styles@46.0.0': + resolution: {integrity: sha512-0MJXr9h6owrJRn4i8erutlSTsZ2IQRuFib8k987wm5zl7anMSS1p83sDhZezRQu4MX1P+nUOcQDsdVGRS0y1WQ==} - '@ckeditor/ckeditor5-export-pdf@45.2.1': - resolution: {integrity: sha512-VuSm9F/SqHlCQE8zlRJB2vFNCLqbC/OVJaUyw8rsRHVAw8g1FF+C7vg6UXuSyZNqZlldLyaX7O3Eb2gMJTMtPA==} + '@ckeditor/ckeditor5-export-pdf@46.0.0': + resolution: {integrity: sha512-m7JSpT4nptuqMp58PYkrBPJrEjxVt2FMcYlEHedGgc7po8OcyshHjN6/KcgIPRejyqzKg1wmTwXorTamSJmocw==} - '@ckeditor/ckeditor5-export-word@45.2.1': - resolution: {integrity: sha512-yTlspek4Hkl9yv/mwowMfJkb5f8bGO3aHvxHZY6osN4I4ZvCJvAAcPy8p1X8HRPAzwLdhH9yB8tL09bjtKZI1w==} + '@ckeditor/ckeditor5-export-word@46.0.0': + resolution: {integrity: sha512-TqN6wgNxiiinoIx1eUhJqCsoKMFJBeqfj9Qu32iHgYKN/oHjJkczcQBGluMn0wMW7l+ybjenYKqkMfhPUYgPoQ==} - '@ckeditor/ckeditor5-find-and-replace@45.2.1': - resolution: {integrity: sha512-mfdWr5Sy+HHLKZXXq3qkuMYgIUR+est/snEQyUeySUYMMh0LxvlO5nUG6X5RQXmWy9eTmpNDvObLxm48/tcsvg==} + '@ckeditor/ckeditor5-find-and-replace@46.0.0': + resolution: {integrity: sha512-qGw1rOyGVRKQZR7ogNs0XxUb78SkB0xie3LFWZduFAGOaDhC7+DMx91UuO2+lbEaqgGtg1gffNm4Rce//2WdbA==} - '@ckeditor/ckeditor5-font@45.2.1': - resolution: {integrity: sha512-ZrvK0XcR/SXYbGyAczJRd4Y/U2fJcqEKSpxNHZLxTpVDArS9E1PQGQ/F27w4Z2wfmAKKjqf2SPlWb2JBZ/RY/w==} + '@ckeditor/ckeditor5-font@46.0.0': + resolution: {integrity: sha512-Eynyqqre6p+X5ZxlojOfbWuUh8dZdjSnm+8m/7lEOwh8rgzEA5QJ4k91x5BFCYT/yMCesvKTv8H39qIjs/J0Qg==} - '@ckeditor/ckeditor5-format-painter@45.2.1': - resolution: {integrity: sha512-DSNWrailGCkv9ScdEMBGzT1hSS42bw32/b5J+3OI2hdDFTw/FaASpshcB6+fzSNeIyrgzypY10OONvlpt27h0w==} + '@ckeditor/ckeditor5-format-painter@46.0.0': + resolution: {integrity: sha512-224mVroOMf53aX4rdESpYkTvy+hLGQN/sbpOlhFpzuWuS00+rOO9RfJTU6q4tmZh1fr7m+ky61ybONFZz/EZdg==} - '@ckeditor/ckeditor5-fullscreen@45.2.1': - resolution: {integrity: sha512-quSvp00VLA03aXTStgICRIglKN19Dn2elyJ+w20i1ZitvWZNf9bNayDeeCZGR2+qU/2kAEAsn5Q2bdHlC2tUnA==} + '@ckeditor/ckeditor5-fullscreen@46.0.0': + resolution: {integrity: sha512-vus25ec9AyGOVcy9ghUTILz8LLctW7dDP2GhUreCX1FEouue8UgvvrfYYLwim1tI7b1deRcg1zIAENHVhjNLiw==} - '@ckeditor/ckeditor5-heading@45.2.1': - resolution: {integrity: sha512-J9ICygU3x0c0gY7FJJ0Ba3EFVlspbQinungipnIyMF2/4SXTOepKxHYG3x7j9xcjpUGosokeSvKfdQ0ACKtoKg==} + '@ckeditor/ckeditor5-heading@46.0.0': + resolution: {integrity: sha512-fIrmsH4xh3d/QpunSZR3RPR+jybEXBibYwd8EF3ClcpmhhtMRul7BponRVb70a4A4bE+35Pq3Dj+HVV1bn6pIg==} - '@ckeditor/ckeditor5-highlight@45.2.1': - resolution: {integrity: sha512-Z8mIWO0TpvAyfQslJn3FertL8Brl2L7xIgad/s8JMfUWPcB7Tg2qm5GUqe1yfBmROz2g86JX+v6iMVvb5MkBHg==} + '@ckeditor/ckeditor5-highlight@46.0.0': + resolution: {integrity: sha512-F2jChM/83tcogE3QrxzQJtbCCLhzZY+izpXhiYLO9myfm0guOXITggTbl1LiJ1jdV9iEpq81Lq72/m5mZl5kVw==} - '@ckeditor/ckeditor5-horizontal-line@45.2.1': - resolution: {integrity: sha512-YMI7XQuMUTbhG33jrAGlmkkIxVnusF/e057oUAJ+Er6ug1RRAd3Y1I2MLmmk4/4mGmjXZPOXH8ueWHHFCMOvog==} + '@ckeditor/ckeditor5-horizontal-line@46.0.0': + resolution: {integrity: sha512-5JAYD3nohuqgjPf757XFqi5JWGLkf+5s8SBKFL7b5r6g0WQT0zm7yIxPQGhy0N2eFBFhPW/cdWPa3WhUJYVCmw==} - '@ckeditor/ckeditor5-html-embed@45.2.1': - resolution: {integrity: sha512-UMr3GPcoavAHHFv4DWk/9dvgHmHEft1VzUYEAYK9S2lC8ADkSzo6rrWOwYapFZps1tJEwQjLQF+XZ9fw41t0lw==} + '@ckeditor/ckeditor5-html-embed@46.0.0': + resolution: {integrity: sha512-jHuvg+hIDyjq1zqNoMbR1sbiDBdmd4pZzG5CYcUW2l1DblFzjDq1RUnETHpS+YM0tu4QYYLiMhd9OE4s+bO9eA==} - '@ckeditor/ckeditor5-html-support@45.2.1': - resolution: {integrity: sha512-ZxT3vxO4++iN7BU1fApTIDGkjAkWemUyNkUxWt/TRg3tgOUbnlyhyS9HHOh/UITfNuLgx9IKm04uh611okIIAA==} + '@ckeditor/ckeditor5-html-support@46.0.0': + resolution: {integrity: sha512-w+CvJ6fBzxXRJ978urZsOKfLXRINzUsfUr4XqUcU0Y9RRXIuyQa/XSRqgAZY2Wrl0t56P+AnolKWJDHx6yiVlQ==} - '@ckeditor/ckeditor5-icons@45.2.1': - resolution: {integrity: sha512-vDCbPu8zKMFgiUQTFuie0h9PNHifXuAeiNHvk/W/6OutTNJwuBp7oLBpYvvkkJ5/iTFPL7En5nOc/czScNmqQw==} + '@ckeditor/ckeditor5-icons@46.0.0': + resolution: {integrity: sha512-WjE4DWF8tnUgFWmvVZswTQnqpWnwSGIZaG1aq11iHFvzK20O7IzJmKzxS6QxOYFeK+I8+sLzbJEDQeZerZb3Kg==} - '@ckeditor/ckeditor5-image@45.2.1': - resolution: {integrity: sha512-dBd9jKh0Pn6pXJEOc3HX0aONJjTOVTh758K43Ncm/AN73G/mcoaN92mkoMSm1yxzea5W21hFBbr8ttseOyaIYw==} + '@ckeditor/ckeditor5-image@46.0.0': + resolution: {integrity: sha512-7NbZB1IrH+2/TJQ07RPqf/o+Qg2PFgtOl0lT8/0nSqCUVbaA5qb2hxoSPB+NGJGeSFRlJEjf0QHMSv6xA2wR8A==} - '@ckeditor/ckeditor5-import-word@45.2.1': - resolution: {integrity: sha512-VDIfc9RGCHGBlN1FliBYRjTCx/sltNc/J46ck7le25e1Or1hVm2Mig4wpwJxBxp2kVXeWUxK17fPzBE/csCnBQ==} + '@ckeditor/ckeditor5-import-word@46.0.0': + resolution: {integrity: sha512-VmWoWJl5Hwj5z5dj6bxsQCMBgV723dLEG8lE2dc+1wU0l7SHNPakQhbGJhFNSfC1ADJp86NCp6yL33O0n8wffw==} - '@ckeditor/ckeditor5-indent@45.2.1': - resolution: {integrity: sha512-aQlXGtsydQ2l3wffKFE/Hs9RAmlJPLn6vMzi44NLnKxQ33bPPhqAr3JlCEMlyI5ihVlUE45KtEWt+F7wNljFrg==} + '@ckeditor/ckeditor5-indent@46.0.0': + resolution: {integrity: sha512-DGAHxA5NIe4jQ9mnoTpx6EpXKaHFSbqReZBQfZQakW3ypUOjRbpwrQOIEVtRSADaxRM37KcO6oS8duthqqwNDw==} - '@ckeditor/ckeditor5-inspector@4.1.0': - resolution: {integrity: sha512-yKoIFpaSVQQIhgFEyoltwG40OSsWX5psYdYvNxW84nfxgrs90DJrbMQDtdchVZNMXBu6CkJfPiPG0WBLU9su3g==} - engines: {node: '>=14.0.0', npm: '>=5.7.1'} + '@ckeditor/ckeditor5-inspector@5.0.0': + resolution: {integrity: sha512-WVCa1mtePJkLtI81Rn2E6orV0B2Az/+O7f+corJzYapoH5koVEe9TcVyoKRquKUWeBXMG+D1m72vmR2kuoLNhA==} - '@ckeditor/ckeditor5-language@45.2.1': - resolution: {integrity: sha512-pCN1tr+g4Cj7wqRLiaLcbDRJze+pxp8bfHr0T1z1wZRIs5c2lyZtSX00EqyxkXWFYWfu0wPujqKxQzetPbr98w==} + '@ckeditor/ckeditor5-language@46.0.0': + resolution: {integrity: sha512-REricrlKECtJy9E7F6uP+xcYweJU/eCiD5+pHCTosw9/x7XdxwLydwtUosmG9fgvZDeWBEH8SWc9RFCDscPcNQ==} - '@ckeditor/ckeditor5-link@45.2.1': - resolution: {integrity: sha512-TjqPAfbjQEpmJK7YQ3ounjnEVSbseGwyws9AeyhVKHINbppE1LSA9Q8pDELEUalEOBvaEZgB5x0OtuCQE7exdg==} + '@ckeditor/ckeditor5-line-height@46.0.0': + resolution: {integrity: sha512-e4REy8taOCwwmDr0QZYD7Wf8LR77kbKmMpNqD22dobVezbyd/v/ryGzQfGDvlL8jOeAjEkzFp2TmgZzgde1CgA==} - '@ckeditor/ckeditor5-list-multi-level@45.2.1': - resolution: {integrity: sha512-Bxq6yLPopNfBHeeA2VJ7T5ZJBO3JO0QpugWg2kV2TxBbaErllChlCLF2BNRXeXLj0TutogsbMW94bXCdzgzDeA==} + '@ckeditor/ckeditor5-link@46.0.0': + resolution: {integrity: sha512-R3cCGqgO7FOQJu69yubdoBGaRJ/mK1AB5J4NQXOslNg8us5QIbbL8ZPPbmAY3QtK7w59rJ4eeHJbtAhy28RmWA==} - '@ckeditor/ckeditor5-list@45.2.1': - resolution: {integrity: sha512-liUKNg4XVoj4dx2JtxS6F+zSlnAYLUCv8y9odEAOQ/ar9m2cCvtxfBAbO6GQnJu1aBOxM5/P1J3HuQmFCr48EQ==} + '@ckeditor/ckeditor5-list-multi-level@46.0.0': + resolution: {integrity: sha512-6YcHiNOPyPrGbNxIry+e1xoA9WRUc+1W7SuE5V1GIr87awzyNeMZNJKsqaVFXv/mIJ3kdS39id6gYOUKpc37wg==} - '@ckeditor/ckeditor5-markdown-gfm@45.2.1': - resolution: {integrity: sha512-SGLY//kbcZy/MzZDSy/af/80gmh5vkMoQhAqR4FBTgWTosKbZblhgXaLM10Ld0bcjQMJL2BLeTNKHDcy7S2MFQ==} + '@ckeditor/ckeditor5-list@46.0.0': + resolution: {integrity: sha512-TsEUVFFT/MsJ8JLzE4YAmDDB9kImOBx7+pATN5jQJzKB2pgAoEihTytnWni45nEcXOKj8rOf3CvXTl5rVJfl2Q==} - '@ckeditor/ckeditor5-media-embed@45.2.1': - resolution: {integrity: sha512-0NED9h+BIAns/DNaUotCD5Uhm6MNzGI4QsJ4obCrtl0lolBerXhzcRtlRVaF3R8omlMvS6r80fWsWSCttcpGjw==} + '@ckeditor/ckeditor5-markdown-gfm@46.0.0': + resolution: {integrity: sha512-uDHTS+VrmUY/bZWDQv/9nOOSMnfLOymAmvQ/oTNPlIZQXxprDU1cH221TxOZpvE0u1SHC3Spomt38Ea6yqzGZw==} - '@ckeditor/ckeditor5-mention@45.2.1': - resolution: {integrity: sha512-q77TXcjzQ1dZkvxPKu3TC3OAJiwLXeCNYglGvt5iqxQ1PmY86TI0EyO/qWApKiydacowev7ppCbDkHvA0oCMRA==} + '@ckeditor/ckeditor5-media-embed@46.0.0': + resolution: {integrity: sha512-ZC8JbaWAxGaC7bANYc7ADOKZtHJFHNsftwKWt0xb2mmqox8BpJlEo6o4LYakXcPBI/JgnXawwukDia2KR8Bz+g==} - '@ckeditor/ckeditor5-merge-fields@45.2.1': - resolution: {integrity: sha512-mrO4Y/vXX/TMh5GSP0mQ22ArobA4UCNsgxy8lt7N7FluNSmU3LDZ+G/YdcHuY2JKalIgstds/oiiXMCnXFCUYQ==} + '@ckeditor/ckeditor5-mention@46.0.0': + resolution: {integrity: sha512-BWwzitc6UUR+vmBf5Hvb1MNmFsYl5k59YT/dKXl0TIeKPJgygdRTFv7EN95wgA1ROpUXRwjCDCfYP5uuaLfjJQ==} - '@ckeditor/ckeditor5-minimap@45.2.1': - resolution: {integrity: sha512-bKYcvZ7wIolttXfXR9BzyVEI+6FmflO0EhvOw+Ic9VClDy81Y4EYyCMB0XsXK0JO0KTnTKUOmLrPTfOnU/c68w==} + '@ckeditor/ckeditor5-merge-fields@46.0.0': + resolution: {integrity: sha512-AWOSHm/HfpiTFE33A/O6hVE0f0q9JIDjpY4KnBQD4Bprb/PfhZ8ns8rCSvC3vZWSPB5O92n+y9L3LjvJ8ZIuhQ==} - '@ckeditor/ckeditor5-operations-compressor@45.2.1': - resolution: {integrity: sha512-8qP1ibqrAEQRBcntspA2wqDmx0NiSaSHmyWO56jDx7P82HjQVfKLiOEB8DLFDa/KUNeAKTeQP9CsIga0x5zBQw==} + '@ckeditor/ckeditor5-minimap@46.0.0': + resolution: {integrity: sha512-HiMv+fb9VBmtxVbsPhiDhfn2g2bLP3QpVXT4gmqtYEZoFV/02JvIqeweKDXtx/hrY4qXqklbKNECrJLEAz9Ssw==} - '@ckeditor/ckeditor5-package-tools@4.0.0': - resolution: {integrity: sha512-LSNB5Q51A7nZL2N/o7EuV3TcHn2rncpc1qucP3GgJstYSXELY37NEGgprGKWJPH20tQqs1vJIFO7L4Jq6h1h1A==} + '@ckeditor/ckeditor5-operations-compressor@46.0.0': + resolution: {integrity: sha512-z7FYiUIgwm5fWF//nHdZbnuHIChxtU1BuwsPBETG6BM8lhrvExiB35kdu0FFFTpSUcgHXPUOJ0Z4bQIoEhjUMA==} + + '@ckeditor/ckeditor5-package-tools@4.0.2': + resolution: {integrity: sha512-Dznbs0xKNcvONJIb4FnvDC9LyUV20271N8FoSaAlCnZeNdrPoKlVJfcHAwsVPqLhtQ8mxfm6k7WnIC5aC6I9Bw==} hasBin: true - '@ckeditor/ckeditor5-page-break@45.2.1': - resolution: {integrity: sha512-KiHGordLRIzebAeyyY43WHR1bpjXab9cD+S8BWeivGBYytFRN4S+MT288HiweYk53Pla2pumrgoBZ/qKLkn98Q==} + '@ckeditor/ckeditor5-page-break@46.0.0': + resolution: {integrity: sha512-zhgqdS9CLdJ46PTsMogudKtxyN2SW+aCEFjvXff56j51kvfY9shUfk6I0O8+ChmslWy8v7nM4QAQVTDJC/vSEw==} - '@ckeditor/ckeditor5-pagination@45.2.1': - resolution: {integrity: sha512-VShRm24XpEQxCxDUxC000kLdTuxSzpO9tqMGh8pbVKSSr73Etjx4JIOO/wP9hf+rRjD9RnkbAzlB9EiDwLDCpg==} + '@ckeditor/ckeditor5-pagination@46.0.0': + resolution: {integrity: sha512-/AJY7D2db6y+hQMZ465EBrFp8rA0n7V2aX7+FQut9KoJqwnUCNFnAhUaNxe8jNapb7s8Skfql6/fQGIW6whBKg==} - '@ckeditor/ckeditor5-paragraph@45.2.1': - resolution: {integrity: sha512-bDZUEHXruWG7P7PDIwNKKuUjgIvLbbY+m0GEXOI4+eB7cnJBOLbs62t8m+tLFJ/PRWUsJ/kA1RJQgouiy60+0Q==} + '@ckeditor/ckeditor5-paragraph@46.0.0': + resolution: {integrity: sha512-3XCJTzFBGv1G6ZS2zQ8QVfX6waBXW08cvFi7F6hhK44OZYllTgW0l9jpR1TnmcC3VokNa4LQrC1fn/J5Hk8fBQ==} - '@ckeditor/ckeditor5-paste-from-office-enhanced@45.2.1': - resolution: {integrity: sha512-vGySSlQkYrCKds/YggO7V/l3bClpIvP3zFxBFAZquqQF3QclttFG7gCNGCl+dC9gL7SoR2aQq8PgvscdHckrgA==} + '@ckeditor/ckeditor5-paste-from-office-enhanced@46.0.0': + resolution: {integrity: sha512-hVMgfJ4BTcDZJvxjiNLIiWLrRaEi9PsIa5Enw/LxPhPOcZcOHVFj0ZlQIfHAubhuGAw/AxaKmXswBaoU1cWW5A==} - '@ckeditor/ckeditor5-paste-from-office@45.2.1': - resolution: {integrity: sha512-G5duZPSLmdGxghjBeHU2i1WJoKn8YdKI2lZu8GxqRQ1/FTaoWqnCpEAnxztLLTtwyI9HuFh6IuxrdnyPQOWtxw==} + '@ckeditor/ckeditor5-paste-from-office@46.0.0': + resolution: {integrity: sha512-8GaHLbcuG26xPiGtp25yoYqB0wy+0IgDZqSW2m6rM3DsMHrFWilufwArp/9wExTBjeKgdbsgv6BP0RFEA1oXcg==} - '@ckeditor/ckeditor5-real-time-collaboration@45.2.1': - resolution: {integrity: sha512-CpWrPiynP3cAn67EuY1iPqJZkAKqFZBGoWWNn8i110u0EkhH8qIAWBbsa9RixsTnjL4s2tQAO9iVbqnl0CWbLw==} + '@ckeditor/ckeditor5-real-time-collaboration@46.0.0': + resolution: {integrity: sha512-RnboRHSI4lVESFhH/pJCKMJAcLGN61gsQ4mXzx4tNXSScPPioF3KkXCivdkuYgJvDtffRuoUoS5tyjWda353ig==} - '@ckeditor/ckeditor5-remove-format@45.2.1': - resolution: {integrity: sha512-JKZdCqdrCOjP84ynUhE8F10q0LTiOTadhCsMYtfFUaMXlv+Ey6BMwh28I9WstGmhBiDmF4evivI8Jovncc0pyg==} + '@ckeditor/ckeditor5-remove-format@46.0.0': + resolution: {integrity: sha512-bOSzTlhTk8TAvSt7C+yNrS531y/D2ghoFhyexhBb2JU+TAeNXkuyuTSxFc9luWIZf2AKvWe4hU3yyVDIlXT9Bg==} - '@ckeditor/ckeditor5-restricted-editing@45.2.1': - resolution: {integrity: sha512-rapILyX18HIw8xCuXozfQorz6Y/0Jd48/zr9ChXDbDkbDr4qaWdqAZ2bMuz8qP8k53dmkvxl4DfVfqM200txXQ==} + '@ckeditor/ckeditor5-restricted-editing@46.0.0': + resolution: {integrity: sha512-euhQ57RfJFJzRP9SseV4sqWsXY9WRQobCaiW1ENxnwEa4FxmnDiLElR6xZ9jimrG5bN3ldbedjJ79mhKp9VMhA==} - '@ckeditor/ckeditor5-revision-history@45.2.1': - resolution: {integrity: sha512-JwRyiwrhacae/cLTJh850XjlieIPUtUbD05Zn1cqD2Q5felh8kMRwhKThPBtHF7pXoZSZ0fnB5SlJLucg0e3zw==} + '@ckeditor/ckeditor5-revision-history@46.0.0': + resolution: {integrity: sha512-msf49YrSdtHTifyKqfkHxU4LomWBKD4cmOTbXfttiE7V1asPRrDFfp+yWymF3HnDZbma0FfEIg2s0/Q+qR844A==} - '@ckeditor/ckeditor5-select-all@45.2.1': - resolution: {integrity: sha512-WRXtKECu+yrZGfNeriRQT+q41NDmW3K72cQL7Sben9CsJ4ixAFdc4APaDC5GvIvE00hjjLhZAVBtV8fiBTys/g==} + '@ckeditor/ckeditor5-select-all@46.0.0': + resolution: {integrity: sha512-6SvSkYuwZRJuTy/HwQUGh3HpkxkCkEq8Yfew6YWuwulRUgKwMrD4F9R6ZUqDCornTpP+o6p9UrseSFn/3sgxwQ==} - '@ckeditor/ckeditor5-show-blocks@45.2.1': - resolution: {integrity: sha512-VX6v9mkDkh5xaK/KANxjDRiRMowcUODHBg1z+MJZyVqeFxfDabHSQuS2OLYzsSJfeTlCzs/11IRHCGQq4ifyIQ==} + '@ckeditor/ckeditor5-show-blocks@46.0.0': + resolution: {integrity: sha512-hhOANTwo6XC1Y59/O8q+XAh+dqokhMov6/HLeuZ0uxVCuryDQxXh+C1lU6rjFG9EKW0zUoQPViLkOAbx/Nm4xQ==} - '@ckeditor/ckeditor5-slash-command@45.2.1': - resolution: {integrity: sha512-bEFo12rifbRvgM0nVo4cEOx5aGOXMqR/7aL1+VJydr79pquovRyA2oub7eB2osHmwOHpNf8Wf5X2lNlSfv+oDw==} + '@ckeditor/ckeditor5-slash-command@46.0.0': + resolution: {integrity: sha512-B4/DcgWDYtcSKlR8FyQzcLGHJWYsuURb9dV4FD0OYeigzC/+l8c0B1AP0+3ZHtpmIclR2/OFMSYWuetBKhKX1g==} - '@ckeditor/ckeditor5-source-editing-enhanced@45.2.1': - resolution: {integrity: sha512-UHAzebeI4yPfrtuBCbwy25Qmr1JTaGCnb/pTIuNEY+8/DIOA3kp4dWK/cKzTaTygKL0OxB/dF7VkGddbQktoiw==} + '@ckeditor/ckeditor5-source-editing-enhanced@46.0.0': + resolution: {integrity: sha512-viuf65xAX5m0JZUT2XKGB4Wz4FSVIUcbOaRyw3HOLjqmcj58S+8VMfcRrChvtde1fQvzF28+5haekci9MSUWWg==} - '@ckeditor/ckeditor5-source-editing@45.2.1': - resolution: {integrity: sha512-HFaUovnh6v/9oIUWpxmxNxQIHArONuqzKMyipLHS7XWzb9nnMda+P5wnoYEiysoiNSDyBhM+yLCsgqs28XsmJg==} + '@ckeditor/ckeditor5-source-editing@46.0.0': + resolution: {integrity: sha512-TRIgm1vjSerGfuiOg50/+WNXzDYUonjZLsxvFP3c9EOpTs8vqXjdQP/VeyK4PG3DgbablMsZOZhSi9ci0IO3xQ==} - '@ckeditor/ckeditor5-special-characters@45.2.1': - resolution: {integrity: sha512-VECZXNiE1dA/TTJJUdz9kbWXDTXTIWsXyuBrvwQX/SgsPjIKYlpGW+oTu6iZdC4I/q0dsFvJvDJ6ngx89cxpLg==} + '@ckeditor/ckeditor5-special-characters@46.0.0': + resolution: {integrity: sha512-tfjKoavd6rguOE3bzLl65PWJQJsWtAJCZVvW3B6TrbeT3oEqJ1UhBnnA46LgwvXM5tT94b7xCK2AmcjyQ5eG0A==} - '@ckeditor/ckeditor5-style@45.2.1': - resolution: {integrity: sha512-Rdf3FeNRFBngYBUrdfjLBYQkvcFHc4g7D48+nkBiYmPeYDIcviRxq0Ss50UHHgwl/aB6w6UvVdI2j+2HhYE+xQ==} + '@ckeditor/ckeditor5-style@46.0.0': + resolution: {integrity: sha512-Cm8jHegh4UG+1309qbs/hf7aIYTyqp4/zbBciW8Mcdrct8d2eeIigWPt54sw2PWz3v5ZsUquH4Y4JupiEXsOOw==} - '@ckeditor/ckeditor5-table@45.2.1': - resolution: {integrity: sha512-Twu2vztW0s5BVwn+AYcvH8Akx0SS1tSZ1P7MbVvYnm3+o0hOsHjO+bFi9anN+U53l5ciukNFtwLbvQw8YcKXvg==} + '@ckeditor/ckeditor5-table@46.0.0': + resolution: {integrity: sha512-N51XBgCWsxrjMJaw9DNuCF9oYhdQgSRhtDsEhY8Q9+VYdtfSxEcjtLpzlUT2/GIwrZKWeFWuJeB3sba/jdfP1w==} - '@ckeditor/ckeditor5-template@45.2.1': - resolution: {integrity: sha512-ef90Vi7AuV4uk7d/qC23epSAimhwhQIugJjYeWQOBQyjGZz5VZXwHJjI1NNMC+n77d8279QkxKqbCt5pHBeLKA==} + '@ckeditor/ckeditor5-template@46.0.0': + resolution: {integrity: sha512-GMvNkqLyIQ7iQJfevYEdkO8QxdW5e5D2Ao1WFo67fwBB40vB0cGLnPKWS6fagordSErmuKn0I0GfkcgCrpOKxA==} - '@ckeditor/ckeditor5-theme-lark@45.2.1': - resolution: {integrity: sha512-+JYkfdbCW7bYK+dYmxDSL49s4tZTzabrymvSt+fgFATDmbosP9zRRENPSYpfq0J7v0wJSOJrkK6aPiuEJr8VrQ==} + '@ckeditor/ckeditor5-theme-lark@46.0.0': + resolution: {integrity: sha512-gaztcvUQ6KAbNTB1efkciEWwesJIp9CjIM91nOBj72eR5/xZKM+aTbLdiciVFSgB1Ma1qCU3DvQ1vafACO93qQ==} - '@ckeditor/ckeditor5-track-changes@45.2.1': - resolution: {integrity: sha512-t+VyDHjljVhC9En6I24IpA/hpJnOx9F/PPO0uW2jruynJ3HO/jNaLdYFQB4snRAMAD83Kr2yXB/v2UPfouW+zw==} + '@ckeditor/ckeditor5-track-changes@46.0.0': + resolution: {integrity: sha512-RJthlQjALgskwd9WedD1CRHAK9ebRn9Jo0vIydPaFa8pl5klqGvZVR6uT8jnJ7yRdYXNa/BY+EHqZxUeRdnORg==} - '@ckeditor/ckeditor5-typing@45.2.1': - resolution: {integrity: sha512-zsIDw2UZjEgH1OBFTE/e+ACFWgpQgwLGmfOA1R99SpSyuBzGgEeTQm/rLniZbnAQ3TJMHDm89dz0MneMhn9cgg==} + '@ckeditor/ckeditor5-typing@46.0.0': + resolution: {integrity: sha512-xeFrXEpzo9T/bLaIwHtYDSSPb5KYA2eiYPVWxivw3VEs6gDfHhRz7EZEZ9OhnjNBQYhiyLgKaX+3di72sqrbhA==} - '@ckeditor/ckeditor5-ui@45.2.1': - resolution: {integrity: sha512-ZBl6xJliYhdQr8/9gCi9Pytz88YDD3VV+zyDq+5pBl1mI8feBjxp5XfPZxxAfV0dowqppqP/17UnPLtc+7YA0g==} + '@ckeditor/ckeditor5-ui@46.0.0': + resolution: {integrity: sha512-VMdUOK42l+b/rHUctXv0WOMbvcqWXM8kglxZ1paAzWBWhhy1cp2Q6VW21w23VSmmwNA110xPKTcKlkC09bniDA==} - '@ckeditor/ckeditor5-undo@45.2.1': - resolution: {integrity: sha512-c3xJqk6iZLgHrCpJHektg/I1+ApcaTDEDfIS0pps8oxL1Ys6CWNE0QrlF5AuRoUopv//ik1iZg/qoA98JsQ1Ng==} + '@ckeditor/ckeditor5-undo@46.0.0': + resolution: {integrity: sha512-MoLU8c/ip7KVByKZT8fVXSP7ZzxwXu4Rxk/T91rHcxR2BLa93fyS3M9v6oXmww9fI9enGVPw2LD+yESXYJMOiQ==} - '@ckeditor/ckeditor5-upload@45.2.1': - resolution: {integrity: sha512-lg54V7wXouKy4q9Umt47ubUidelMsujgwxJCJg3egcNLKPiskYHnWlhYfA8hyVV21XCpfbm73c8Y1UWvkTglXA==} + '@ckeditor/ckeditor5-upload@46.0.0': + resolution: {integrity: sha512-GPRctyLpktYgV00C71R31leUM7rZchEqdvGK+EJfmx8qWkzuKSXLN8HJ9rhjgFf8D49eQm506sH5lek9+HZA0w==} - '@ckeditor/ckeditor5-uploadcare@45.2.1': - resolution: {integrity: sha512-3ZMFkImnii4cZiDK3QroJzE9GGJ073/Aga0X4ru7LoGl7rv1Sqzh0a8K1aVvtg4/1f/78kvFwQYHtpSDkqfGpA==} + '@ckeditor/ckeditor5-uploadcare@46.0.0': + resolution: {integrity: sha512-w7e9u4VC4qn4rA9Pwfz8XM7H5dEa2bC/dVsJMYihd+K1Mb5uNCrL+W93yENT1TjPKopW2+rPp7IMUSqxFPvzOQ==} - '@ckeditor/ckeditor5-utils@45.2.1': - resolution: {integrity: sha512-qjSsnUaw/VwklJZsRTVT6zDSBjMnmYIIGu3mHSk7Ybtao8W3fz1yzqdX3X6i937XGbw37+2MUfhJhrpubMnA8A==} + '@ckeditor/ckeditor5-utils@46.0.0': + resolution: {integrity: sha512-wql+hSp29EMMhQlj0oXHiOOzD4ZTvRrI7801WtFjfiSldmIJAyIiF4zLFiRoB5+pGbt+AQB76VAdqFjz43AkuA==} - '@ckeditor/ckeditor5-watchdog@45.2.1': - resolution: {integrity: sha512-FthIfLtl4qCv7iNEul9ZvUulFZVYNeMwS+Ww22HstZlJP3Ahh/JF4CGTkzfbP/oGFUsZCEochQ7H2/f4MN7pbg==} + '@ckeditor/ckeditor5-watchdog@46.0.0': + resolution: {integrity: sha512-p6lNeUsuWkJ9lJ/59TkCOUrOhUxcB2NGm3sGsG3qHSB/I6W6jjW3r7ZZah/z3Ysy0ImkHLQX0WlFDlw7E6EnSw==} - '@ckeditor/ckeditor5-widget@45.2.1': - resolution: {integrity: sha512-4HOfHewBE0cF+7zKnQBWRJHLdq4K48YDW/uC5J0vDhLrtetBwWPE9kbnOUUoAGNYqGkiYRd7btt1M6pPhXrz9Q==} + '@ckeditor/ckeditor5-widget@46.0.0': + resolution: {integrity: sha512-NhTtCkkZQNzKHPtUvN5ukOUfwI3rop0Zdo9QxfKFcrSc5B7a9+YLX70lyPzp6loUypy9N9XP4qvvjBUXg64UMw==} - '@ckeditor/ckeditor5-word-count@45.2.1': - resolution: {integrity: sha512-H4JmccFnFM+IaiT0zUTnx/7ebpAvelaJMEHWmntRlr1IFLf8AtwgOGBSeurglDVebyGXyqarbUxV4HpDxtzBxA==} + '@ckeditor/ckeditor5-word-count@46.0.0': + resolution: {integrity: sha512-wCoQm66jgkFcW8w2acqkUbTzxFt9dkFilU+cMgLOrxBdYarG4T9Xdp2bk6CQyVYf3s+be7N+QGwJGsIyhWT+Gw==} '@codemirror/autocomplete@6.18.6': resolution: {integrity: sha512-PHHBXFomUs5DF+9tCOM/UoW6XQ4R44lLNNhRaW9PKPTU0D7lIjRg3ElxaJnTwsl/oHiR93WSXDBrekhoUGCPtg==} - '@codemirror/commands@6.8.0': - resolution: {integrity: sha512-q8VPEFaEP4ikSlt6ZxjB3zW72+7osfAYW9i8Zu943uqbKuz6utc1+F170hyLUCUltXORjQXRyYQNfkckzA/bPQ==} - '@codemirror/commands@6.8.1': resolution: {integrity: sha512-KlGVYufHMQzxbdQONiLyGQDUW0itrLZwq3CcY7xpv9ZLRHqzkBSoteocBHtMCoY7/Ci4xhzSrToIeLg7FxHuaw==} @@ -2559,8 +2549,8 @@ packages: '@codemirror/lang-markdown@6.3.2': resolution: {integrity: sha512-c/5MYinGbFxYl4itE9q/rgN/sMTjOr8XL5OWnC+EaRMLfCbVUmmubTJfdgpfcSS2SCaT7b+Q+xi3l6CgoE+BsA==} - '@codemirror/lang-markdown@6.3.3': - resolution: {integrity: sha512-1fn1hQAPWlSSMCvnF810AkhWpNLkJpl66CRfIy3vVl20Sl4NwChkorCHqpMtNbXr1EuMJsrDnhEpjZxKZ2UX3A==} + '@codemirror/lang-markdown@6.3.4': + resolution: {integrity: sha512-fBm0BO03azXnTAsxhONDYHi/qWSI+uSEIpzKM7h/bkIc9fHnFp9y7KTMXKON0teNT97pFhc1a9DQTtWBYEZ7ug==} '@codemirror/lang-php@6.0.2': resolution: {integrity: sha512-ZKy2v1n8Fc8oEXj0Th0PUMXzQJ0AIR6TaZU+PbDHExFwdu+guzOA4jmCHS1Nz4vbFezwD7LyBdDnddSJeScMCA==} @@ -2589,8 +2579,8 @@ packages: '@codemirror/theme-one-dark@6.1.2': resolution: {integrity: sha512-F+sH0X16j/qFLMAfbciKTxVOwkdAS336b7AXTKOZhy8BR3eH/RelsnLgLFINrpST63mmN2OuwUt0W2ndUgYwUA==} - '@codemirror/view@6.38.0': - resolution: {integrity: sha512-yvSchUwHOdupXkd7xJ0ob36jdsSR/I+/C+VbY0ffBiL5NiSTEBDfB1ZGWbbIlDd5xgdUkody+lukAdOxYrOBeg==} + '@codemirror/view@6.38.1': + resolution: {integrity: sha512-RmTOkE7hRU3OVREqFVITWHz6ocgBjv08GoePscAakgVQfciA3SGCEk7mb9IzwW61cKKmlTpHXG6DUE5Ubx+MGQ==} '@cspotcode/source-map-support@0.8.1': resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} @@ -2644,6 +2634,12 @@ packages: peerDependencies: postcss-selector-parser: ^7.0.0 + '@csstools/selector-resolve-nested@3.1.0': + resolution: {integrity: sha512-mf1LEW0tJLKfWyvn5KdDrhpxHyuxpbNwTIwOYLIvsTffeyOf85j5oIzfG0yosxDgx/sswlqBnESYUcQH0vgZ0g==} + engines: {node: '>=18'} + peerDependencies: + postcss-selector-parser: ^7.0.0 + '@csstools/selector-specificity@5.0.0': resolution: {integrity: sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==} engines: {node: '>=18'} @@ -2661,85 +2657,85 @@ packages: '@dual-bundle/import-meta-resolve@4.1.0': resolution: {integrity: sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg==} - '@electron-forge/cli@7.8.1': - resolution: {integrity: sha512-QI3EShutfq9Y+2TWWrPjm4JZM3eSAKzoQvRZdVhAfVpUbyJ8K23VqJShg3kGKlPf9BXHAGvE+8LyH5s2yDr1qA==} + '@electron-forge/cli@7.8.3': + resolution: {integrity: sha512-BSAjGGfVf0yp3NQhXYmyCw9T//YCQHuktMv4HXfDVfo7AoV6DA1oEhqldI4Q7aHKeRob5+yBkvRRYPiu5ayCPw==} engines: {node: '>= 16.4.0'} hasBin: true - '@electron-forge/core-utils@7.8.1': - resolution: {integrity: sha512-mRoPLDNZgmjyOURE/K0D3Op53XGFmFRgfIvFC7c9S/BqsRpovVblrqI4XxPRdNmH9dvhd8On9gGz+XIYAKD3aQ==} + '@electron-forge/core-utils@7.8.3': + resolution: {integrity: sha512-8jhK7AvUKEqDyTMMuRhvS1TkE73YEnHYAxVvkJq35e1KdCwGbGnSRhaEs7OOqRfkKxfepdJ7BMKFSoKFeP+z0Q==} engines: {node: '>= 16.4.0'} - '@electron-forge/core@7.8.1': - resolution: {integrity: sha512-jkh0QPW5p0zmruu1E8+2XNufc4UMxy13WLJcm7hn9jbaXKLkMbKuEvhrN1tH/9uGp1mhr/t8sC4N67gP+gS87w==} + '@electron-forge/core@7.8.3': + resolution: {integrity: sha512-qX2vi/LP3HcSqSfLfzMeH2ll8SFZQnOk8VN/b3bq6XrBCbrfrSsTYYWakN6mmfalLJcQRm4jCEc6gcyuGO4i6Q==} engines: {node: '>= 16.4.0'} - '@electron-forge/maker-base@7.8.1': - resolution: {integrity: sha512-GUZqschGuEBzSzE0bMeDip65IDds48DZXzldlRwQ+85SYVA6RMU2AwDDqx3YiYsvP2OuxKruuqIJZtOF5ps4FQ==} + '@electron-forge/maker-base@7.8.3': + resolution: {integrity: sha512-WmF66cHdziaK8Asi7IRTLxZjCZ8IqXXHr6IPl4d5oatN6s5RG+HHzG1hiJ7LzlOEntqdSpE8Wh2nB2TmyR4huQ==} engines: {node: '>= 16.4.0'} - '@electron-forge/maker-deb@7.8.1': - resolution: {integrity: sha512-tjjeesQtCP5Xht1X7gl4+K9bwoETPmQfBkOVAY/FZIxPj40uQh/hOUtLX2tYENNGNVZ1ryDYRs8TuPi+I41Vfw==} + '@electron-forge/maker-deb@7.8.3': + resolution: {integrity: sha512-GZHJU06LRFJkv1wMc3bjMVzedQhyxnyMZqgDJjE9TIlXXZkN2EqGmKLw/HxwNRA1R8yuQeA4Ih6/dEB4bZTevg==} engines: {node: '>= 16.4.0'} - '@electron-forge/maker-dmg@7.8.1': - resolution: {integrity: sha512-l449QvY2Teu+J9rHnjkTHEm/wOJ1LRfmrQ2QkGtFoTRcqvFWdUAEN8nK2/08w3j2h6tvOY3QSUjRzXrhJZRNRA==} + '@electron-forge/maker-dmg@7.8.3': + resolution: {integrity: sha512-N3yKU89D7pC/xPeblSQyBQT1DLKzZMl4V5kla6nc3LIA0oyjz99Gosv8IAj9vFkreQ5QRqpTIlu1ecDL9JY9dQ==} engines: {node: '>= 16.4.0'} - '@electron-forge/maker-flatpak@7.8.1': - resolution: {integrity: sha512-lp1R+G+3dfFJUMHUMIeDzhNhD1NsRcVlGjVUTP8NAaPEkcK8aSclXBEEHcKCIOsknhHIN+Odhpf3zAqTvAWdwg==} + '@electron-forge/maker-flatpak@7.8.3': + resolution: {integrity: sha512-8+3rWKhBxqhr3Add11AaYTQ4l6YnoKJ6llX2i0Br62G1vGmlzuJHt1CTYLx+EzsznNgfcmzHN106ZubRrNhxJQ==} engines: {node: '>= 16.4.0'} - '@electron-forge/maker-rpm@7.8.1': - resolution: {integrity: sha512-TF6wylft3BHkw9zdHcxmjEPBZYgTIc0jE31skFnMEQ/aExbNRiNaCZvsXy+7ptTWZxhxUKRc9KHhLFRMCmOK8g==} + '@electron-forge/maker-rpm@7.8.3': + resolution: {integrity: sha512-TqHHdF5D3Dy4NgG+pi8eRc18P1D0FF1LE+CqQF4MRof+XrpHhRtog5Ac4gWjvg1Wma6WjPyTdryHAkURsoBbuQ==} engines: {node: '>= 16.4.0'} - '@electron-forge/maker-squirrel@7.8.1': - resolution: {integrity: sha512-qT1PMvT7ALF0ONOkxlA0oc0PiFuKCAKgoMPoxYo9gGOqFvnAb+TBcnLxflQ4ashE/ZkrHpykr4LcDJxqythQTA==} + '@electron-forge/maker-squirrel@7.8.3': + resolution: {integrity: sha512-6XSEhZMbgfjAaCm8A54pNjn4ghfxJgPu4i7ok3PhP44WOrFPaPivLttpvKRnxRb0PGZstPjPBFcwL1F9S1trjA==} engines: {node: '>= 16.4.0'} - '@electron-forge/maker-zip@7.8.1': - resolution: {integrity: sha512-unIxEoV1lnK4BLVqCy3L2y897fTyg8nKY1WT4rrpv0MUKnQG4qmigDfST5zZNNHHaulEn/ElAic2GEiP7d6bhQ==} + '@electron-forge/maker-zip@7.8.3': + resolution: {integrity: sha512-ytao285wKAjKBO6eULzLeqUDP5Zh7beQlGyHjgOMknk7FI0sNy+zGdh3CrCGIhkXSHU/DpukPwRu2SiKvIaIGA==} engines: {node: '>= 16.4.0'} - '@electron-forge/plugin-auto-unpack-natives@7.8.1': - resolution: {integrity: sha512-4URAgWX9qqqKe6Bfad0VmpFRrwINYMODfKGd2nFQrfHxmBtdpXnsWlLwVGE/wGssIQaTMI5bWQ6F2RNeXTgnhA==} + '@electron-forge/plugin-auto-unpack-natives@7.8.3': + resolution: {integrity: sha512-7tRhySvfdTrBC4PEhAzjzjJGT5dBSU6jhy3XlQ8LJH50jHIT9bioQq6dfn/3iw/VaD1ftGWKx+HlntYCmBhViw==} engines: {node: '>= 16.4.0'} - '@electron-forge/plugin-base@7.8.1': - resolution: {integrity: sha512-iCZC2d7CbsZ9l6j5d+KPIiyQx0U1QBfWAbKnnQhWCSizjcrZ7A9V4sMFZeTO6+PVm48b/r9GFPm+slpgZtYQLg==} + '@electron-forge/plugin-base@7.8.3': + resolution: {integrity: sha512-0CzPQlO3BGu5bLCrx2Xqo6B1yoHhA9wG9boZE58ANr8Qma1NQfAWZU3LnMmF3EdWNTX76PxpZeeb3QbPNcxSuA==} engines: {node: '>= 16.4.0'} - '@electron-forge/publisher-base@7.8.1': - resolution: {integrity: sha512-z2C+C4pcFxyCXIFwXGDcxhU8qtVUPZa3sPL6tH5RuMxJi77768chLw2quDWk2/dfupcSELXcOMYCs7aLysCzeQ==} + '@electron-forge/publisher-base@7.8.3': + resolution: {integrity: sha512-kurRKVNyLsK2JgmVl88UHu0+qSH+PysMtk/xP0YX5sYNMVxRay8+S1T10tAh6Qom94KwpF3CLYtkebvxb/fq+A==} engines: {node: '>= 16.4.0'} - '@electron-forge/shared-types@7.8.1': - resolution: {integrity: sha512-guLyGjIISKQQRWHX+ugmcjIOjn2q/BEzCo3ioJXFowxiFwmZw/oCZ2KlPig/t6dMqgUrHTH5W/F0WKu0EY4M+Q==} + '@electron-forge/shared-types@7.8.3': + resolution: {integrity: sha512-gkZtD7ALXHPDOthJo1rQYLDNfG09fdDRMWvjEgaXdF3Z69xXFfnOWPNuOkRUODNalMnuuGs6l7jDl+QFQgHlDg==} engines: {node: '>= 16.4.0'} - '@electron-forge/template-base@7.8.1': - resolution: {integrity: sha512-k8jEUr0zWFWb16ZGho+Es2OFeKkcbTgbC6mcH4eNyF/sumh/4XZMcwRtX1i7EiZAYiL9sVxyI6KVwGu254g+0g==} + '@electron-forge/template-base@7.8.3': + resolution: {integrity: sha512-C0tVODDNKoqhCf7T1HRONJs9DKAmjmk8Of0t8rVjT0ERDzMvLGlBByd785v5lFlKbGERyoaXsYltxPAu92G3aA==} engines: {node: '>= 16.4.0'} - '@electron-forge/template-vite-typescript@7.8.1': - resolution: {integrity: sha512-CccQhwUjZcc6svzuOi3BtbDal591DzyX2J5GPa6mwVutDP8EMtqJL1VyOHdcWO/7XjI6GNAD0fiXySOJiUAECA==} + '@electron-forge/template-vite-typescript@7.8.3': + resolution: {integrity: sha512-HJjjY9xmlpl0vx10mrXdWn2RYHExfazACxmDNNmGO1eq3eqrQk/3R+NDGyqMJ7ajBsRVbkQNt+wayH7HkRJUjA==} engines: {node: '>= 16.4.0'} - '@electron-forge/template-vite@7.8.1': - resolution: {integrity: sha512-qzSlJaBYYqQAbBdLk4DqAE3HCNz4yXbpkb+VC74ddL4JGwPdPU57DjCthr6YetKJ2FsOVy9ipovA8HX5UbXpAg==} + '@electron-forge/template-vite@7.8.3': + resolution: {integrity: sha512-tDL5h+UO5iOzdEYNVsSu4zkUVN4RTxti5iXzcBquKd9Kgt/A/M7xHeuKj7g1Ds7Ul/n2XcFvcfgLcRmiXQeVDA==} engines: {node: '>= 16.4.0'} - '@electron-forge/template-webpack-typescript@7.8.1': - resolution: {integrity: sha512-h922E+6zWwym1RT6WKD79BLTc4H8YxEMJ7wPWkBX59kw/exsTB/KFdiJq6r82ON5jSJ+Q8sDGqSmDWdyCfo+Gg==} + '@electron-forge/template-webpack-typescript@7.8.3': + resolution: {integrity: sha512-Xz3X7YJvot08Xm+0BLIS28GJH+0z9vEN9xYX76SOL4jqDcHH8lRFpNWcE2HsxxxRbCVH+s0etVmACZcWoujUrw==} engines: {node: '>= 16.4.0'} - '@electron-forge/template-webpack@7.8.1': - resolution: {integrity: sha512-DA77o9kTCHrq+W211pyNP49DyAt0d1mzMp2gisyNz7a+iKvlv2DsMAeRieLoCQ44akb/z8ZsL0YLteSjKLy4AA==} + '@electron-forge/template-webpack@7.8.3': + resolution: {integrity: sha512-1zkji5px1kDXbigFN5959anCf3HAVBvam3bHh2VejnCScegLQP3JBjAn2Nw2ILWq6ej5JNuA/V99b1dr11hPOw==} engines: {node: '>= 16.4.0'} - '@electron-forge/tracer@7.8.1': - resolution: {integrity: sha512-r2i7aHVp2fylGQSPDw3aTcdNfVX9cpL1iL2MKHrCRNwgrfR+nryGYg434T745GGm1rNQIv5Egdkh5G9xf00oWA==} + '@electron-forge/tracer@7.8.3': + resolution: {integrity: sha512-YVVDaPEUOvR1z+DDdj8wR/vO9OSlC91wz4/2Iqe9rqQz8sztnnQBClMAZTqu9bkDTFyHrns8j8v7tPVuVS6ULQ==} engines: {node: '>= 14.17.5'} '@electron/asar@3.4.1': @@ -2785,8 +2781,8 @@ packages: engines: {node: '>=22.12.0'} hasBin: true - '@electron/remote@2.1.2': - resolution: {integrity: sha512-EPwNx+nhdrTBxyCqXt/pftoQg/ybtWDW3DUWHafejvnB1ZGGfMpv6e15D8KeempocjXe78T7WreyGGb3mlZxdA==} + '@electron/remote@2.1.3': + resolution: {integrity: sha512-XlpxC8S4ttj/v2d+PKp9na/3Ev8bV7YWNL7Cw5b9MAWgTphEml7iYgbc7V0r9D6yDOfOkj06bchZgOZdlWJGNA==} peerDependencies: electron: '>= 13.0.0' @@ -2799,14 +2795,17 @@ packages: engines: {node: '>=14.14'} hasBin: true - '@emnapi/core@1.4.3': - resolution: {integrity: sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==} + '@emnapi/core@1.4.5': + resolution: {integrity: sha512-XsLw1dEOpkSX/WucdqUhPWP7hDxSvZiY+fsUC14h+FtQ2Ifni4znbBt8punRX+Uj2JG/uDb8nEHVKvrVlvdZ5Q==} - '@emnapi/runtime@1.4.3': - resolution: {integrity: sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==} + '@emnapi/runtime@1.4.5': + resolution: {integrity: sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg==} - '@emnapi/wasi-threads@1.0.2': - resolution: {integrity: sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==} + '@emnapi/wasi-threads@1.0.4': + resolution: {integrity: sha512-PJR+bOmMOPH8AtcTGAyYNiuJ3/Fcoj2XN/gBEWzDIKh254XO+mM9XoXHk5GNEhodxeMznbg7BlRojVbKN+gC6g==} + + '@epic-web/invariant@1.0.0': + resolution: {integrity: sha512-lrTPqgvfFQtR/eY/qkIzp98OGdNJu0m5ji3q/nJI8v3SXkRKEnWiOxMmbvcSoAIzv/cGiuvRy57k4suKQSAdwA==} '@es-joy/jsdoccomment@0.50.2': resolution: {integrity: sha512-YAdE/IJSpwbOTiaURNCKECdAwqrJuFiZhylmesBcIRawtYKnBR2wxPhoIewMg+Yu+QuYvHfJNReWpoxGBKOChA==} @@ -2818,150 +2817,306 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.25.8': + resolution: {integrity: sha512-urAvrUedIqEiFR3FYSLTWQgLu5tb+m0qZw0NBEasUeo6wuqatkMDaRT+1uABiGXEu5vqgPd7FGE1BhsAIy9QVA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + '@esbuild/android-arm64@0.25.5': resolution: {integrity: sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg==} engines: {node: '>=18'} cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.25.8': + resolution: {integrity: sha512-OD3p7LYzWpLhZEyATcTSJ67qB5D+20vbtr6vHlHWSQYhKtzUYrETuWThmzFpZtFsBIxRvhO07+UgVA9m0i/O1w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm@0.25.5': resolution: {integrity: sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA==} engines: {node: '>=18'} cpu: [arm] os: [android] + '@esbuild/android-arm@0.25.8': + resolution: {integrity: sha512-RONsAvGCz5oWyePVnLdZY/HHwA++nxYWIX1atInlaW6SEkwq6XkP3+cb825EUcRs5Vss/lGh/2YxAb5xqc07Uw==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + '@esbuild/android-x64@0.25.5': resolution: {integrity: sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw==} engines: {node: '>=18'} cpu: [x64] os: [android] + '@esbuild/android-x64@0.25.8': + resolution: {integrity: sha512-yJAVPklM5+4+9dTeKwHOaA+LQkmrKFX96BM0A/2zQrbS6ENCmxc4OVoBs5dPkCCak2roAD+jKCdnmOqKszPkjA==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + '@esbuild/darwin-arm64@0.25.5': resolution: {integrity: sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.25.8': + resolution: {integrity: sha512-Jw0mxgIaYX6R8ODrdkLLPwBqHTtYHJSmzzd+QeytSugzQ0Vg4c5rDky5VgkoowbZQahCbsv1rT1KW72MPIkevw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-x64@0.25.5': resolution: {integrity: sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ==} engines: {node: '>=18'} cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.25.8': + resolution: {integrity: sha512-Vh2gLxxHnuoQ+GjPNvDSDRpoBCUzY4Pu0kBqMBDlK4fuWbKgGtmDIeEC081xi26PPjn+1tct+Bh8FjyLlw1Zlg==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + '@esbuild/freebsd-arm64@0.25.5': resolution: {integrity: sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.25.8': + resolution: {integrity: sha512-YPJ7hDQ9DnNe5vxOm6jaie9QsTwcKedPvizTVlqWG9GBSq+BuyWEDazlGaDTC5NGU4QJd666V0yqCBL2oWKPfA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-x64@0.25.5': resolution: {integrity: sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.25.8': + resolution: {integrity: sha512-MmaEXxQRdXNFsRN/KcIimLnSJrk2r5H8v+WVafRWz5xdSVmWLoITZQXcgehI2ZE6gioE6HirAEToM/RvFBeuhw==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + '@esbuild/linux-arm64@0.25.5': resolution: {integrity: sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg==} engines: {node: '>=18'} cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.25.8': + resolution: {integrity: sha512-WIgg00ARWv/uYLU7lsuDK00d/hHSfES5BzdWAdAig1ioV5kaFNrtK8EqGcUBJhYqotlUByUKz5Qo6u8tt7iD/w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm@0.25.5': resolution: {integrity: sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw==} engines: {node: '>=18'} cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.25.8': + resolution: {integrity: sha512-FuzEP9BixzZohl1kLf76KEVOsxtIBFwCaLupVuk4eFVnOZfU+Wsn+x5Ryam7nILV2pkq2TqQM9EZPsOBuMC+kg==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + '@esbuild/linux-ia32@0.25.5': resolution: {integrity: sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA==} engines: {node: '>=18'} cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.25.8': + resolution: {integrity: sha512-A1D9YzRX1i+1AJZuFFUMP1E9fMaYY+GnSQil9Tlw05utlE86EKTUA7RjwHDkEitmLYiFsRd9HwKBPEftNdBfjg==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-loong64@0.25.5': resolution: {integrity: sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg==} engines: {node: '>=18'} cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.25.8': + resolution: {integrity: sha512-O7k1J/dwHkY1RMVvglFHl1HzutGEFFZ3kNiDMSOyUrB7WcoHGf96Sh+64nTRT26l3GMbCW01Ekh/ThKM5iI7hQ==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-mips64el@0.25.5': resolution: {integrity: sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.25.8': + resolution: {integrity: sha512-uv+dqfRazte3BzfMp8PAQXmdGHQt2oC/y2ovwpTteqrMx2lwaksiFZ/bdkXJC19ttTvNXBuWH53zy/aTj1FgGw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-ppc64@0.25.5': resolution: {integrity: sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.25.8': + resolution: {integrity: sha512-GyG0KcMi1GBavP5JgAkkstMGyMholMDybAf8wF5A70CALlDM2p/f7YFE7H92eDeH/VBtFJA5MT4nRPDGg4JuzQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-riscv64@0.25.5': resolution: {integrity: sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.25.8': + resolution: {integrity: sha512-rAqDYFv3yzMrq7GIcen3XP7TUEG/4LK86LUPMIz6RT8A6pRIDn0sDcvjudVZBiiTcZCY9y2SgYX2lgK3AF+1eg==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-s390x@0.25.5': resolution: {integrity: sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ==} engines: {node: '>=18'} cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.25.8': + resolution: {integrity: sha512-Xutvh6VjlbcHpsIIbwY8GVRbwoviWT19tFhgdA7DlenLGC/mbc3lBoVb7jxj9Z+eyGqvcnSyIltYUrkKzWqSvg==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-x64@0.25.5': resolution: {integrity: sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw==} engines: {node: '>=18'} cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.25.8': + resolution: {integrity: sha512-ASFQhgY4ElXh3nDcOMTkQero4b1lgubskNlhIfJrsH5OKZXDpUAKBlNS0Kx81jwOBp+HCeZqmoJuihTv57/jvQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + '@esbuild/netbsd-arm64@0.25.5': resolution: {integrity: sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] + '@esbuild/netbsd-arm64@0.25.8': + resolution: {integrity: sha512-d1KfruIeohqAi6SA+gENMuObDbEjn22olAR7egqnkCD9DGBG0wsEARotkLgXDu6c4ncgWTZJtN5vcgxzWRMzcw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + '@esbuild/netbsd-x64@0.25.5': resolution: {integrity: sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.25.8': + resolution: {integrity: sha512-nVDCkrvx2ua+XQNyfrujIG38+YGyuy2Ru9kKVNyh5jAys6n+l44tTtToqHjino2My8VAY6Lw9H7RI73XFi66Cg==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + '@esbuild/openbsd-arm64@0.25.5': resolution: {integrity: sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] + '@esbuild/openbsd-arm64@0.25.8': + resolution: {integrity: sha512-j8HgrDuSJFAujkivSMSfPQSAa5Fxbvk4rgNAS5i3K+r8s1X0p1uOO2Hl2xNsGFppOeHOLAVgYwDVlmxhq5h+SQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + '@esbuild/openbsd-x64@0.25.5': resolution: {integrity: sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.25.8': + resolution: {integrity: sha512-1h8MUAwa0VhNCDp6Af0HToI2TJFAn1uqT9Al6DJVzdIBAd21m/G0Yfc77KDM3uF3T/YaOgQq3qTJHPbTOInaIQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openharmony-arm64@0.25.8': + resolution: {integrity: sha512-r2nVa5SIK9tSWd0kJd9HCffnDHKchTGikb//9c7HX+r+wHYCpQrSgxhlY6KWV1nFo1l4KFbsMlHk+L6fekLsUg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + '@esbuild/sunos-x64@0.25.5': resolution: {integrity: sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA==} engines: {node: '>=18'} cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.25.8': + resolution: {integrity: sha512-zUlaP2S12YhQ2UzUfcCuMDHQFJyKABkAjvO5YSndMiIkMimPmxA+BYSBikWgsRpvyxuRnow4nS5NPnf9fpv41w==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + '@esbuild/win32-arm64@0.25.5': resolution: {integrity: sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw==} engines: {node: '>=18'} cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.25.8': + resolution: {integrity: sha512-YEGFFWESlPva8hGL+zvj2z/SaK+pH0SwOM0Nc/d+rVnW7GSTFlLBGzZkuSU9kFIGIo8q9X3ucpZhu8PDN5A2sQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-ia32@0.25.5': resolution: {integrity: sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ==} engines: {node: '>=18'} cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.25.8': + resolution: {integrity: sha512-hiGgGC6KZ5LZz58OL/+qVVoZiuZlUYlYHNAmczOm7bs2oE1XriPFi5ZHHrS8ACpV5EjySrnoCKmcbQMN+ojnHg==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-x64@0.25.5': resolution: {integrity: sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==} engines: {node: '>=18'} cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.25.8': + resolution: {integrity: sha512-cn3Yr7+OaaZq1c+2pe+8yxC8E144SReCQjN6/2ynubzYjvyqZjTXfQJpAcQpsdJq3My7XADANiYGHoFC69pLQw==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@eslint-community/eslint-utils@4.7.0': resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3001,16 +3156,20 @@ packages: resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.30.1': - resolution: {integrity: sha512-zXhuECFlyep42KZUhWjfvsmXGX39W8K8LFb8AWXM9gSV9dQB+MrJGLKvW6Zw0Ggnbpw0VHTtrhFXYe3Gym18jg==} + '@eslint/js@9.32.0': + resolution: {integrity: sha512-BBpRFZK3eX6uMLKz8WxFOBIFFcGFJ/g8XuwjTHCqHROSIsopI+ddn/d5Cfh36+7+e5edVS8dbSHnBNhrLEX0zg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/markdown@6.6.0': + resolution: {integrity: sha512-IsWPy2jU3gaQDlioDC4sT4I4kG1hX1OMWs/q2sWwJrPoMASHW/Z4SDw+6Aql6EsHejGbagYuJbFq9Zvx+Y1b1Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.6': resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.3.3': - resolution: {integrity: sha512-1+WqvgNMhmlAambTvT3KPtCl/Ibr68VldY2XY40SL1CE0ZXiakFR/cbTspaF5HsnpDMvcYYoJHfl4980NBjGag==} + '@eslint/plugin-kit@0.3.4': + resolution: {integrity: sha512-Ul5l+lHEcw3L5+k8POx6r74mxEYKG5kOb6Xpy2gCRW6zweT6TEhAf8vhxGgjhqrd/VO/Dirhsb+1hNpD1ue9hw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@excalidraw/excalidraw@0.18.0': @@ -3311,8 +3470,8 @@ packages: resolution: {integrity: sha512-cvz/C1rF5WBxzHbEoiBoI6Sz6q6M+TdxfWkEGBYTD77opY8i8WN01prUWXEM87GPF4SZcyIySez9U0Ccm12oFQ==} engines: {node: '>=18.0.0'} - '@inquirer/confirm@5.1.13': - resolution: {integrity: sha512-EkCtvp67ICIVVzjsquUiVSd+V5HRGOGQfsqA4E4vMWhYnB7InUL0pa0TIWt1i+OfP16Gkds8CdIu6yGZwOM1Yw==} + '@inquirer/confirm@5.1.14': + resolution: {integrity: sha512-5yR4IBfe0kXe59r1YCTG8WXkUbl7Z35HK87Sw+WUyGD8wNUx7JvY7laahzeytyE1oLn74bQnL7hstctQxisQ8Q==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3320,8 +3479,8 @@ packages: '@types/node': optional: true - '@inquirer/core@10.1.14': - resolution: {integrity: sha512-Ma+ZpOJPewtIYl6HZHZckeX1STvDnHTCB2GVINNUlSEn2Am6LddWwfPkIGY0IUFVjUUrr/93XlBwTK6mfLjf0A==} + '@inquirer/core@10.1.15': + resolution: {integrity: sha512-8xrp836RZvKkpNbVvgWUlxjT4CraKk2q+I3Ksy+seI2zkcE+y6wNs1BVhgcv8VyImFecUhdQrYLdW32pAjwBdA==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3329,12 +3488,12 @@ packages: '@types/node': optional: true - '@inquirer/figures@1.0.12': - resolution: {integrity: sha512-MJttijd8rMFcKJC8NYmprWr6hD3r9Gd9qUC0XwPNwoEPWSMVJwA2MlXxF+nhZZNMY+HXsWa+o7KY2emWYIn0jQ==} + '@inquirer/figures@1.0.13': + resolution: {integrity: sha512-lGPVU3yO9ZNqA7vTYz26jny41lE7yoQansmqdMLBEfqaGsmdg7V3W9mK9Pvb5IL4EVZ9GnSDGMO/cJXud5dMaw==} engines: {node: '>=18'} - '@inquirer/type@3.0.7': - resolution: {integrity: sha512-PfunHQcjwnju84L+ycmcMKB/pTPIngjUJvfnRhKY6FKPuYXlM4aQCb/nIdTFR6BEhMjFvngzvng/vBAJMZpLSA==} + '@inquirer/type@3.0.8': + resolution: {integrity: sha512-lg9Whz8onIHRthWaN1Q9EGLa/0LFJjyM8mEUbL1eTi6yMGvBf8gvyDLtxSXztQsxMvhxxNpJYrwa1YHdq+w4Jw==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3342,6 +3501,14 @@ packages: '@types/node': optional: true + '@isaacs/balanced-match@4.0.1': + resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} + engines: {node: 20 || >=22} + + '@isaacs/brace-expansion@5.0.0': + resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==} + engines: {node: 20 || >=22} + '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -3358,62 +3525,78 @@ packages: resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} - '@jest/console@29.7.0': - resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/console@30.0.5': + resolution: {integrity: sha512-xY6b0XiL0Nav3ReresUarwl2oIz1gTnxGbGpho9/rbUWsLH0f1OD/VT84xs8c7VmH7MChnLb0pag6PhZhAdDiA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/environment@29.7.0': - resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/diff-sequences@30.0.1': + resolution: {integrity: sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/expect-utils@29.7.0': - resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/environment@30.0.5': + resolution: {integrity: sha512-aRX7WoaWx1oaOkDQvCWImVQ8XNtdv5sEWgk4gxR6NXb7WBUnL5sRak4WRzIQRZ1VTWPvV4VI4mgGjNL9TeKMYA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/expect@29.7.0': - resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/expect-utils@30.0.5': + resolution: {integrity: sha512-F3lmTT7CXWYywoVUGTCmom0vXq3HTTkaZyTAzIy+bXSBizB7o5qzlC9VCtq0arOa8GqmNsbg/cE9C6HLn7Szew==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/fake-timers@29.7.0': - resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/expect@30.0.5': + resolution: {integrity: sha512-6udac8KKrtTtC+AXZ2iUN/R7dp7Ydry+Fo6FPFnDG54wjVMnb6vW/XNlf7Xj8UDjAE3aAVAsR4KFyKk3TCXmTA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/globals@29.7.0': - resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/fake-timers@30.0.5': + resolution: {integrity: sha512-ZO5DHfNV+kgEAeP3gK3XlpJLL4U3Sz6ebl/n68Uwt64qFFs5bv4bfEEjyRGK5uM0C90ewooNgFuKMdkbEoMEXw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/reporters@29.7.0': - resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/get-type@30.0.1': + resolution: {integrity: sha512-AyYdemXCptSRFirI5EPazNxyPwAL0jXt3zceFjaj8NFiKP9pOi0bfXonf6qkf82z2t3QWPeLCWWw4stPBzctLw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/globals@30.0.5': + resolution: {integrity: sha512-7oEJT19WW4oe6HR7oLRvHxwlJk2gev0U9px3ufs8sX9PoD1Eza68KF0/tlN7X0dq/WVsBScXQGgCldA1V9Y/jA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/pattern@30.0.1': + resolution: {integrity: sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/reporters@30.0.5': + resolution: {integrity: sha512-mafft7VBX4jzED1FwGC1o/9QUM2xebzavImZMeqnsklgcyxBto8mV4HzNSzUrryJ+8R9MFOM3HgYuDradWR+4g==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 peerDependenciesMeta: node-notifier: optional: true - '@jest/schemas@29.6.3': - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/schemas@30.0.5': + resolution: {integrity: sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/source-map@29.6.3': - resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/snapshot-utils@30.0.5': + resolution: {integrity: sha512-XcCQ5qWHLvi29UUrowgDFvV4t7ETxX91CbDczMnoqXPOIcZOxyNdSjm6kV5XMc8+HkxfRegU/MUmnTbJRzGrUQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/test-result@29.7.0': - resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/source-map@30.0.1': + resolution: {integrity: sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/test-sequencer@29.7.0': - resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/test-result@30.0.5': + resolution: {integrity: sha512-wPyztnK0gbDMQAJZ43tdMro+qblDHH1Ru/ylzUo21TBKqt88ZqnKKK2m30LKmLLoKtR2lxdpCC/P3g1vfKcawQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/transform@29.7.0': - resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/test-sequencer@30.0.5': + resolution: {integrity: sha512-Aea/G1egWoIIozmDD7PBXUOxkekXl7ueGzrsGGi1SbeKgQqCYCIf+wfbflEbf2LiPxL8j2JZGLyrzZagjvW4YQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/types@29.6.3': - resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/transform@30.0.5': + resolution: {integrity: sha512-Vk8amLQCmuZyy6GbBht1Jfo9RSdBtg7Lks+B0PecnjI8J+PCLQPGh7uI8Q/2wwpW2gLdiAfiHNsmekKlywULqg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/types@30.0.5': + resolution: {integrity: sha512-aREYa3aku9SSnea4aX6bhKn4bgv3AXkgijoQgbYV3yvbiGt6z+MQ85+6mIhx9DsKW2BuB/cLR/A+tcMThx+KLQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} '@jimp/core@1.6.0': resolution: {integrity: sha512-EQQlKU3s9QfdJqiSrZWNTxBs3rKXgO2W+GxNXDtwchF3a4IqxDheFX1ti+Env9hdJXDiYLp2jTRjlxhPthsk8w==} @@ -3542,6 +3725,9 @@ packages: resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} engines: {node: '>=6.0.0'} + '@jridgewell/source-map@0.3.10': + resolution: {integrity: sha512-0pPkgz9dY+bijgistcTTJ5mR+ocqRXLuhXHYdzoMmmoJ2C9S46RCm2GMUbatPEUK9Yjy26IrAy8D/M00lLkv+Q==} + '@jridgewell/source-map@0.3.6': resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} @@ -3572,14 +3758,20 @@ packages: peerDependencies: tslib: '2' - '@jsonjoy.com/util@1.5.0': - resolution: {integrity: sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA==} + '@jsonjoy.com/util@1.6.0': + resolution: {integrity: sha512-sw/RMbehRhN68WRtcKCpQOPfnH6lLP4GJfqzi3iYej8tnzpZUDr6UkZYJjcjjC0FWEJOJbyM3PTIwxucUmDG2A==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' - '@keyv/serialize@1.0.3': - resolution: {integrity: sha512-qnEovoOp5Np2JDGonIDL6Ayihw0RhnRh6vxPuHo4RDn1UOzwEo4AeIfpL6UGIrsceWrCMiVPgwRjbHu4vYFc3g==} + '@keyv/serialize@1.1.0': + resolution: {integrity: sha512-RlDgexML7Z63Q8BSaqhXdCYNBy/JQnqYIwxofUrNLGCblOMHp+xux2Q8nLMLlPpgHQPoU0Do8Z6btCpRBEqZ8g==} + + '@kwsites/file-exists@1.1.1': + resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==} + + '@kwsites/promise-deferred@1.1.1': + resolution: {integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==} '@leichtgewicht/ip-codec@2.0.5': resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==} @@ -3647,16 +3839,51 @@ packages: resolution: {integrity: sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==} engines: {node: '>= 10.0.0'} + '@mapbox/geojson-rewind@0.5.2': + resolution: {integrity: sha512-tJaT+RbYGJYStt7wI3cq4Nl4SXxG8W7JDG5DMJu97V25RnbNg3QtQtf+KD+VLjNpWKYsRvXDNmNrBgEETr1ifA==} + hasBin: true + + '@mapbox/jsonlint-lines-primitives@2.0.2': + resolution: {integrity: sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==} + engines: {node: '>= 0.6'} + + '@mapbox/point-geometry@0.1.0': + resolution: {integrity: sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==} + + '@mapbox/tiny-sdf@2.0.7': + resolution: {integrity: sha512-25gQLQMcpivjOSA40g3gO6qgiFPDpWRoMfd+G/GoppPIeP6JDaMMkMrEJnMZhKyyS6iKwVt5YKu02vCUyJM3Ug==} + + '@mapbox/unitbezier@0.0.1': + resolution: {integrity: sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==} + + '@mapbox/vector-tile@1.3.1': + resolution: {integrity: sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==} + + '@mapbox/whoots-js@3.1.0': + resolution: {integrity: sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==} + engines: {node: '>=6.0.0'} + + '@maplibre/maplibre-gl-leaflet@0.1.3': + resolution: {integrity: sha512-9+hp1PSJcxuuj5/Zta9zbQ8+ZvN4doWXPtlY7ikNtUZY1VbkamY0uTqzHp9kxRPqpgeKGrI7MjzXvwzU88wWCw==} + peerDependencies: + '@types/leaflet': ^1.9.0 + leaflet: ^1.9.3 + maplibre-gl: ^2.4.0 || ^3.3.1 || ^4.3.2 || ^5.0.0 + + '@maplibre/maplibre-gl-style-spec@23.3.0': + resolution: {integrity: sha512-IGJtuBbaGzOUgODdBRg66p8stnwj9iDXkgbYKoYcNiiQmaez5WVRfXm4b03MCDwmZyX93csbfHFWEJJYHnn5oA==} + hasBin: true + '@marijn/find-cluster-break@1.0.2': resolution: {integrity: sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==} '@mermaid-js/layout-elk@0.1.8': resolution: {integrity: sha512-uU+Glm1tQZScphrFuzf6dzPpYTrET3sz6Q2SqpLj/nr+FpO6cfgJmYdJ+vWA8oGoeNQZLVey480qbKAFk8DBuQ==} peerDependencies: - mermaid: 11.8.0 + mermaid: 11.9.0 - '@mermaid-js/parser@0.6.0': - resolution: {integrity: sha512-7DNESgpyZ5WG1SIkrYafVBhWmImtmQuoxOO1lawI3gQYWxBX3v1FW3IyuuRfKJAO06XrZR71W0Kif5VEGGd4VA==} + '@mermaid-js/parser@0.6.2': + resolution: {integrity: sha512-+PO02uGF6L6Cs0Bw8RpGhikVvMWEysfAyl27qTlroUB8jSWr1lL0Sf6zi78ZxlSnmgSY2AMMKVgghnN9jTtwkQ==} '@microsoft/api-extractor-model@7.30.6': resolution: {integrity: sha512-znmFn69wf/AIrwHya3fxX6uB5etSIn6vg4Q4RB/tb5VDDs1rqREc+AvMC/p19MUN13CZ7+V/8pkYPTj7q8tftg==} @@ -3671,10 +3898,10 @@ packages: '@microsoft/tsdoc@0.15.1': resolution: {integrity: sha512-4aErSrCR/On/e5G2hDP0wjooqDdauzEbIq8hIkIe5pXV0rtWJZvdCEKL0ykZxex+IxIwBp0eGeV48hQN07dXtw==} - '@mind-elixir/node-menu@1.0.5': - resolution: {integrity: sha512-tlw85nwtfEoF47mLecRSMkcNW6D9ScDyg1YI+InZKtSgsvvnEm72kOyksp8B1haLk2ctVMFPJ7ay84MtWgrBGQ==} + '@mind-elixir/node-menu@5.0.0': + resolution: {integrity: sha512-fpKMhcKTIl0/L0ghsltbodv8EGw87uExloqwHGRJLF4IO/NfKrteVjq3Kd1B8gf7UqkQAigMV6LxS4XKSS3ESw==} peerDependencies: - mind-elixir: '>4.4.1' + mind-elixir: '>5.0.0' '@mixmark-io/domino@2.2.0': resolution: {integrity: sha512-Y28PR25bHXUg88kCV7nivXrP2Nj2RueZ3/l/jdx6J9f8J4nsEGcgX0Qe6lt7Pa+J79+kPiJU3LguR6O/6zrLOw==} @@ -3683,12 +3910,15 @@ packages: resolution: {integrity: sha512-wK+5pLK5XFmgtH3aQ2YVvA3HohS3xqV/OxuVOdNx9Wpnz7VE/fnC+e1A7ln6LFYeck7gOJ/dsZV6OLplOtAJ2w==} engines: {node: '>=18'} - '@napi-rs/wasm-runtime@0.2.11': - resolution: {integrity: sha512-9DPkXtvHydrcOsopiYpUgPHpmj0HWZKMUnL2dZqpvC42lsratuBG06V5ipyno0fUek5VlFsNQ+AcFATSrJXgMA==} + '@napi-rs/wasm-runtime@0.2.12': + resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} '@napi-rs/wasm-runtime@0.2.4': resolution: {integrity: sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==} + '@napi-rs/wasm-runtime@1.0.2': + resolution: {integrity: sha512-4pSAVWEyZMgE9q+SYkHK+UhYRo4o7P+NYZSsuuhU0wKNzV09ujaxerrbzgv6zyLoWIggJb8ql/KRzv0H9WuAZQ==} + '@noble/hashes@1.8.0': resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==} engines: {node: ^14.21.3 || >=16} @@ -3720,6 +3950,15 @@ packages: resolution: {integrity: sha512-/xGlezI6xfGO9NwuJlnwz/K14qD1kCSAGtacBHnGzeAIuJGazcp45KP5NuyARXoKb7cwulAGWVsbeSxdG/cb0Q==} engines: {node: ^18.17.0 || >=20.5.0} + '@npmcli/git@6.0.3': + resolution: {integrity: sha512-GUYESQlxZRAdhs3UhbB6pVRNUELQOHXwK9ruDkwmCv2aZ5y0SApQzUJCg02p3A7Ue2J5hxvlk1YI53c00NmRyQ==} + engines: {node: ^18.17.0 || >=20.5.0} + + '@npmcli/installed-package-contents@3.0.0': + resolution: {integrity: sha512-fkxoPuFGvxyrH+OQzyTkX2LUEamrF4jZSmxjAtPPHHGO0dqsQ8tTKjnIS8SAnPHdk2I03BDtSMR5K/4loKg79Q==} + engines: {node: ^18.17.0 || >=20.5.0} + hasBin: true + '@npmcli/move-file@1.1.2': resolution: {integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==} engines: {node: '>=10'} @@ -3730,21 +3969,41 @@ packages: engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} deprecated: This functionality has been moved to @npmcli/fs - '@nx/devkit@21.2.2': - resolution: {integrity: sha512-fBeFY8wW9cb6AWjPGNZVa8nhYpDVu1hDPirxy+Z0Uxe3uo6BfwP9ZrUVIj99yGi2accEcvNx0ccygaa0aPzKng==} - peerDependencies: - nx: 21.2.2 + '@npmcli/node-gyp@4.0.0': + resolution: {integrity: sha512-+t5DZ6mO/QFh78PByMq1fGSAub/agLJZDRfJRMeOSNCt8s9YVlTjmGpIPwPhvXTGUIJk+WszlT0rQa1W33yzNA==} + engines: {node: ^18.17.0 || >=20.5.0} - '@nx/esbuild@21.2.2': - resolution: {integrity: sha512-X9Rhy/pwcKlwiJUJjJo6GO1f8aQZR2mUeSzjB2kQp/R8f/gWISVUCIAmBwaoLHjdEgVL+vV+UzVGBr3YP1TsSA==} + '@npmcli/package-json@6.2.0': + resolution: {integrity: sha512-rCNLSB/JzNvot0SEyXqWZ7tX2B5dD2a1br2Dp0vSYVo5jh8Z0EZ7lS9TsZ1UtziddB1UfNUaMCc538/HztnJGA==} + engines: {node: ^18.17.0 || >=20.5.0} + + '@npmcli/promise-spawn@8.0.2': + resolution: {integrity: sha512-/bNJhjc+o6qL+Dwz/bqfTQClkEO5nTQ1ZEcdCkAQjhkZMHIh22LPG7fNh1enJP1NKWDqYiiABnjFCY7E0zHYtQ==} + engines: {node: ^18.17.0 || >=20.5.0} + + '@npmcli/redact@3.2.2': + resolution: {integrity: sha512-7VmYAmk4csGv08QzrDKScdzn11jHPFGyqJW39FyPgPuAp3zIaUmuCo1yxw9aGs+NEJuTGQ9Gwqpt93vtJubucg==} + engines: {node: ^18.17.0 || >=20.5.0} + + '@npmcli/run-script@9.1.0': + resolution: {integrity: sha512-aoNSbxtkePXUlbZB+anS1LqsJdctG5n3UVhfU47+CDdwMi6uNTBMF9gPcQRnqghQd2FGzcwwIFBruFMxjhBewg==} + engines: {node: ^18.17.0 || >=20.5.0} + + '@nx/devkit@21.3.11': + resolution: {integrity: sha512-JOV8TAa9K5+ZwTA/EUi0g5qcKEg5vmi0AyOUsrNUHlv3BgQnwZtPLDDTPPZ+ezq24o6YzgwueZWj3CLEdMHEDg==} + peerDependencies: + nx: 21.3.11 + + '@nx/esbuild@21.3.11': + resolution: {integrity: sha512-KODlvBH5JpuAJpDb98J093270TniNDPVDmLtVbAiPFJPRI5R7ElOLxO5gYtDNIlcQyVbrG6gb6I8RDFYz+nKeQ==} peerDependencies: esbuild: '>=0.25.0' peerDependenciesMeta: esbuild: optional: true - '@nx/eslint-plugin@21.2.2': - resolution: {integrity: sha512-3QeRTDrRBrdL3mieWFTTaRvw1+FMa/KZAJn854JGjjSTXbFvrQXZQ+vY/n9VYkCrOpf9L5FWL7dw1MP05Vt3GQ==} + '@nx/eslint-plugin@21.3.11': + resolution: {integrity: sha512-BabOp+5qZx/GgCWVALiVm4wjrUOO5sqeItsAWtpocMsvYE8YRZ4+AekS/F2knTjJdcdrh51hxqv5ua3YTNFtfA==} peerDependencies: '@typescript-eslint/parser': ^6.13.2 || ^7.0.0 || ^8.0.0 eslint-config-prettier: ^10.0.0 @@ -3752,8 +4011,8 @@ packages: eslint-config-prettier: optional: true - '@nx/eslint@21.2.2': - resolution: {integrity: sha512-YErnbbkD2gXf9mhnk5T4J5j106bITw2qcA4COCuKpycnX/gszSed9OnU1vCsaza0ah+2CoNWioer2pi4x1WcAA==} + '@nx/eslint@21.3.11': + resolution: {integrity: sha512-9jeD8QuU3OMcItjtw0QHl5cwohLeA9R+lajNJoOjS2tUGXTHWb8NOcEZBXWMcML+eV1iloIDW8/P4jV4BYqP2w==} peerDependencies: '@zkochan/js-yaml': 0.0.7 eslint: ^8.0.0 || ^9.0.0 @@ -3761,97 +4020,97 @@ packages: '@zkochan/js-yaml': optional: true - '@nx/express@21.2.2': - resolution: {integrity: sha512-7u5+ZfxNNyKnZdYOrDWmZqtr3ybd8EXXeYaeaSREHHlIu8/XKi2xYWcgKjH/1HtvZRAL1r19WFJ/hcpWVwKVfg==} + '@nx/express@21.3.11': + resolution: {integrity: sha512-8VcU8+TnXmD+yCi58YyeW13ULwFrHRVD5x/B2T8IKH7j//Vc15vIBkIisgcRt2tGlz3QdR0TLftOsouCTpFlfw==} peerDependencies: express: ^4.21.2 peerDependenciesMeta: express: optional: true - '@nx/jest@21.2.2': - resolution: {integrity: sha512-6R0eGmcUSKCxUQNbaz7G+1O6qnyeTY1xsaizD+8TnyZVd732OUb8KBP8OSmtSQ0spKpbQDcu3CMx+w0ZcBUM1g==} + '@nx/jest@21.3.11': + resolution: {integrity: sha512-PkdNWeoUY81zr+jtUapBdvvh26lWYIhDNyUwTjIBFajX8EAlhJpvShKHs7QObmrwOMLMXwLHKINiSCw9rueOBQ==} - '@nx/js@21.2.2': - resolution: {integrity: sha512-mwDHfNRynPTZBQY+EwTaY6nKJrzem4soI84iGDU9XQiLfBdZwjo27UzLsqYVWsDanhmVt7FtNBmpluSpWw/h8g==} + '@nx/js@21.3.11': + resolution: {integrity: sha512-aN8g1TP3FMN6MFLvMrZNaoqSwAkBFH1PunKQV17w4nlPkimWICaCP2DhY5W3VoOpjQBbhQoqrRt4mVfgnEpyvA==} peerDependencies: verdaccio: ^6.0.5 peerDependenciesMeta: verdaccio: optional: true - '@nx/node@21.2.2': - resolution: {integrity: sha512-Ti8qK+/2+NmG3ALJk6ZF5WxIiOp0BlK2ZFXK9qP2tNSpiRz4k2U1yytBcBB9sdb5WQaZzAJ2UxrzzdTujNAC2Q==} + '@nx/node@21.3.11': + resolution: {integrity: sha512-4B2onNmhrCaLlhwhDycMOisAuXmajAbl9gM8G6dS4Tc6z8QHXswlJG6rVP4VvR0ZZKtLeKGED2X5hpv9T1ikxw==} - '@nx/nx-darwin-arm64@21.2.2': - resolution: {integrity: sha512-qDF1SHW9UYzFQBRA3MGLYDPCU/j1ACasAdjv5kMXXBtmg+1WC3mZ/KO84wXJE7j9ImXOPKm9dmiW63LfXteXZw==} + '@nx/nx-darwin-arm64@21.3.11': + resolution: {integrity: sha512-qXZrW6kfsfGG9n4cWugR2v8ys7P1SsbQuFahlbNSTd7g+ZxozaOnc7tyxW9XuY84KQ35HwP/QSu1E13fK5CXwQ==} cpu: [arm64] os: [darwin] - '@nx/nx-darwin-x64@21.2.2': - resolution: {integrity: sha512-gdxOcfGonAD+eM5oKKd+2rcrGWmJOfON5HJpLkDfgOO/vyb6FUQub3xUu/JB2RAJ4r6iW/8JZxzheFDIiHDEug==} + '@nx/nx-darwin-x64@21.3.11': + resolution: {integrity: sha512-6NJEIGRITpFZYptJtr/wdnVuidAS/wONMMSwX5rgAqh5A9teI0vxZVOgG6n5f6NQyqEDvZ9ytcIvLsQWA4kJFg==} cpu: [x64] os: [darwin] - '@nx/nx-freebsd-x64@21.2.2': - resolution: {integrity: sha512-uO+k4AXGchOlzsoE3uljBKYlI84hv15R2CcLfXjbwrIw+0YZOIeZ/pDYNZMpOy1HePTuCVUxaYQCEBO7N2PI3w==} + '@nx/nx-freebsd-x64@21.3.11': + resolution: {integrity: sha512-9VZOM9mutzuZCUgijHXrIl3NgKt2CWuH/awLqDS8ijhLs6WfI5TYTa+mFwx90dfZZ4y/jy6XWXa2Ee3OShf7Hg==} cpu: [x64] os: [freebsd] - '@nx/nx-linux-arm-gnueabihf@21.2.2': - resolution: {integrity: sha512-7ZaZKJNqQvvXs66GYdvY7kJoZ3wFnaIamjdlFYtH+5oQdCTqRTHb9HsB0/q6pf5nEDCEW/FJkXszKgCfViDZLA==} + '@nx/nx-linux-arm-gnueabihf@21.3.11': + resolution: {integrity: sha512-a05tAySKDEWt0TGoSnWp/l5+HL/CDJQkHfI9pXho85oDSkVRzhOInAn1EeZB/F+Q3PnJFsMHMhbuu2/nm3uYJA==} cpu: [arm] os: [linux] - '@nx/nx-linux-arm64-gnu@21.2.2': - resolution: {integrity: sha512-M1YuraXtzYTm/HXDAUWN7e009lWFTvpFF1Z38f7IuB07u76ARw1Fb/BcjVYHwt65QR70AcM7MQ5Fpq7PThHPkw==} + '@nx/nx-linux-arm64-gnu@21.3.11': + resolution: {integrity: sha512-MPeivf0ptNpzQYvww6zHIqVbE5dTT2isl/WqzGyy7NgSeYDpFXmouDCQaeKxo5WytMVRCvCw/NnWTQuCK6TjnA==} cpu: [arm64] os: [linux] - '@nx/nx-linux-arm64-musl@21.2.2': - resolution: {integrity: sha512-raXkg8uijQFOgfKadUzwkFetyFb5pQbY0u6aLz0o9Eq5ml82B8ODrHwZdj2YLVNx2bB2Y0nq6R6HeYQRB94xIQ==} + '@nx/nx-linux-arm64-musl@21.3.11': + resolution: {integrity: sha512-/hJpc4VJsbxDEreXt5Ka9HJ3TBEHgIa9y/i+H9MmWOeapCdH1Edhx58Heuv9OaX7kK8Y8q0cSicv0dJCghiTjA==} cpu: [arm64] os: [linux] - '@nx/nx-linux-x64-gnu@21.2.2': - resolution: {integrity: sha512-je6D2kG8jCB72QVrYRXs4xRrU2g2zQREqODt+s1zI2lWlMDJcBwxDxGtlxXM3mDyeUGCh2s9nlkrA0GCTin1LQ==} + '@nx/nx-linux-x64-gnu@21.3.11': + resolution: {integrity: sha512-pTBHuloqTxpTHa/fdKjHkFFsfW16mEcTp37HDtoQpjPfcd9nO8CYO8OClaewr9khNqCnSbCLfSoIg/alnb7BWw==} cpu: [x64] os: [linux] - '@nx/nx-linux-x64-musl@21.2.2': - resolution: {integrity: sha512-ZDCNM0iBACq5Wgb1+JY20jMMRmxQKIDAoCrkxMciSAjh5s/1fGOboqWmKoztwW5g9QPJs/GdOojWbesu4B42eg==} + '@nx/nx-linux-x64-musl@21.3.11': + resolution: {integrity: sha512-OhFjURB68rd6xld8t8fiNpopF2E7v+8/jfbpsku9c0gdV2UhzoxCeZwooe7qhQjCcjVO8JNOs4dAf7qs1VtpMw==} cpu: [x64] os: [linux] - '@nx/nx-win32-arm64-msvc@21.2.2': - resolution: {integrity: sha512-jQRWpp2i5yAYD0FcZWZu6HMVxPWGEEa1DAf9wn7gHsORCehYH91GeOeVmaXcsPEg56uN+QhJhpIRIcDE5Ob4kw==} + '@nx/nx-win32-arm64-msvc@21.3.11': + resolution: {integrity: sha512-pGE2Td13oEj7aeogwCL+2fjmpabQVSduKfGOTlt4YoMlM0w0bXYSWqwiGBMKbMA50qkhnVapwwkuWF38PgCIxg==} cpu: [arm64] os: [win32] - '@nx/nx-win32-x64-msvc@21.2.2': - resolution: {integrity: sha512-qBrVdqYVRV1KQFyRtQbtic/R5ByH9F0kZJoQM3hSmcHgbg2s2+v9ivnaik4L6iX8FbAoCjYYm+J8L42yuOgCJA==} + '@nx/nx-win32-x64-msvc@21.3.11': + resolution: {integrity: sha512-KJqLL/Zyx96hs+7pKbo/fsU7ZTFSLeZLnYQu05o6fvJJ5I1+p85t212/7vkbKKWJncyMospQdzLr3zLG3A/u8A==} cpu: [x64] os: [win32] - '@nx/playwright@21.2.2': - resolution: {integrity: sha512-TsBDOOnKw/MaMDvslDlRzehfogWyovLorKIZZRcSoZ6Y8Xq8bQj4pwsItaygKUgQHrlRU5W0eQ6yKTCNlfrf/g==} + '@nx/playwright@21.3.11': + resolution: {integrity: sha512-15VfcWM8+DgOZ726vOpfSX0rTi3Em3XgfjySRWuJbGDRua4BZUcVQMxvDgj30jQRCygaefw4N910sHWwVhaCbA==} peerDependencies: '@playwright/test': ^1.36.0 peerDependenciesMeta: '@playwright/test': optional: true - '@nx/vite@21.2.2': - resolution: {integrity: sha512-lGtRUFSUGg717bdn6AUh2cOdPzBU7mxlM3qPgRBylEsZ7gtrVyojehWF1gxKP4mXoKXhIUOtmiCWd5XIf3jf0w==} + '@nx/vite@21.3.11': + resolution: {integrity: sha512-aplSvXZOFrGnGZfYGNjz8wP9wrHl37o0UIFgN8pVB6PqWqEmxliVJ1ywFFtku6q1dKK29BB253xFjL63t7l+4w==} peerDependencies: vite: ^5.0.0 || ^6.0.0 vitest: ^1.3.1 || ^2.0.0 || ^3.0.0 - '@nx/web@21.2.2': - resolution: {integrity: sha512-WWskMms4uz6pjv5wXH/0KPokSIexPAjIiuoBVi6EvFt7UG06Z/3h/o7HnepJQAPgjiORASvsedBPKjXqNMfCOQ==} + '@nx/web@21.3.11': + resolution: {integrity: sha512-nDXv9yJgqZGqD3iEGkacJ7HQ4AbIlPvXH3qdv1ZwJWn0hAt7gBh1TO24gKz38sB3bwZlORRXEAi3dG0XgGkdxA==} - '@nx/workspace@21.2.2': - resolution: {integrity: sha512-Q/EJgc+QOyFjNcAmMw6zn6BRdoKxaWvrl/WDyiG3vwcmnUCdFlT+KRZ6ux7cVXMEVLLpQIHStxyS3sdGpXl6HA==} + '@nx/workspace@21.3.11': + resolution: {integrity: sha512-DD2iu9Ip/faNQ5MXZk+UbbBxGofYKjzHsXKRvMNQ/OAVzP/u9z2CPXEmRKlRAEQoy1lInmyopwfEUWwK1v4x0g==} '@open-draft/deferred-promise@2.2.0': resolution: {integrity: sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==} @@ -3862,6 +4121,13 @@ packages: '@open-draft/until@2.1.0': resolution: {integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==} + '@oxc-project/runtime@0.77.3': + resolution: {integrity: sha512-vsC/ewcGJ7xXnnwZkku7rpPH5Lxb5g4J+V6lD9eBTnRLmXVXM7Qu50y+ozD+UD5IXaSoVOvVMGTT4YSNCz2MQQ==} + engines: {node: '>=6.9.0'} + + '@oxc-project/types@0.77.3': + resolution: {integrity: sha512-5Vh+neJhhxuF0lYCjZXbxjqm2EO6YJ1jG+KuHntrd6VY67OMpYhWq2cZhUhy+xL9qLJVJRaeII7Xj9fciA6v7A==} + '@oxc-resolver/binding-darwin-arm64@5.3.0': resolution: {integrity: sha512-hXem5ZAguS7IlSiHg/LK0tEfLj4eUo+9U6DaFwwBEGd0L0VIF9LmuiHydRyOrdnnmi9iAAFMAn/wl2cUoiuruA==} cpu: [arm64] @@ -4025,8 +4291,12 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@playwright/test@1.53.2': - resolution: {integrity: sha512-tEB2U5z74ebBeyfGNZ3Jfg29AnW+5HlWhvHtb/Mqco9pFdZU1ZLNdVb2UtB5CvmiilNr2ZfVH/qMmAROG/XTzw==} + '@pkgr/core@0.2.9': + resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + + '@playwright/test@1.54.2': + resolution: {integrity: sha512-A+znathYxPf+72riFd1r1ovOLqsIIB0jKIoPjyK2kqEIe30/6jF6BC7QNluHuwUmsD2tv1XZVugN8GqfTMOxsA==} engines: {node: '>=18'} hasBin: true @@ -4036,6 +4306,29 @@ packages: '@popperjs/core@2.11.8': resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} + '@preact/preset-vite@2.10.2': + resolution: {integrity: sha512-K9wHlJOtkE+cGqlyQ5v9kL3Ge0Ql4LlIZjkUTL+1zf3nNdF88F9UZN6VTV8jdzBX9Fl7WSzeNMSDG7qECPmSmg==} + peerDependencies: + '@babel/core': 7.x + vite: 2.x || 3.x || 4.x || 5.x || 6.x || 7.x + + '@prefresh/babel-plugin@0.5.2': + resolution: {integrity: sha512-AOl4HG6dAxWkJ5ndPHBgBa49oo/9bOiJuRDKHLSTyH+Fd9x00shTXpdiTj1W41l6oQIwUOAgJeHMn4QwIDpHkA==} + + '@prefresh/core@1.5.5': + resolution: {integrity: sha512-H6GTXUl4V4fe3ijz7yhSa/mZ+pGSOh7XaJb6uP/sQsagBx9yl0D1HKDaeoMQA8Ad2Xm27LqvbitMGSdY9UFSKQ==} + peerDependencies: + preact: 10.27.0 + + '@prefresh/utils@1.2.1': + resolution: {integrity: sha512-vq/sIuN5nYfYzvyayXI4C2QkprfNaHUQ9ZX+3xLD8nL3rWyzpxOm1+K7RtMbhd+66QcaISViK7amjnheQ/4WZw==} + + '@prefresh/vite@2.4.8': + resolution: {integrity: sha512-H7vlo9UbJInuRbZhRQrdgVqLP7qKjDoX7TgYWWwIVhEHeHO0hZ4zyicvwBrV1wX5A3EPOmArgRkUaN7cPI2VXQ==} + peerDependencies: + preact: 10.27.0 + vite: '>=2.0.0' + '@promptbook/utils@0.69.5': resolution: {integrity: sha512-xm5Ti/Hp3o4xHrsK9Yy3MS6KbDxYbq485hDsFvxqaNA7equHLPdo8H8faTitTeb14QCDfLW4iwCxdVYu5sn6YQ==} @@ -4069,8 +4362,8 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@puppeteer/browsers@2.10.5': - resolution: {integrity: sha512-eifa0o+i8dERnngJwKrfp3dEq7ia5XFyoqB17S4gK8GhsQE4/P8nxOfQSE0zQHxzzLo/cmF+7+ywEQ7wK7Fb+w==} + '@puppeteer/browsers@2.10.6': + resolution: {integrity: sha512-pHUn6ZRt39bP3698HFQlu2ZHCkS/lPcpv7fVQcGBSzNNygw171UXAKrCUhy+TEMw4lEttOKDgNpb04hwUAJeiQ==} engines: {node: '>=18'} hasBin: true @@ -4383,6 +4676,79 @@ packages: '@codemirror/state': 6.x.x '@codemirror/view': 6.x.x + '@rolldown/binding-android-arm64@1.0.0-beta.29': + resolution: {integrity: sha512-pDv7gg59Gdy80eFmMkEqXEaoJi3Y9W/a9T3z9M4t8Ma8aVXNldvSy9UgtlX7AK7DPqF8tULnmIZ2Z3rvGMz/NQ==} + cpu: [arm64] + os: [android] + + '@rolldown/binding-darwin-arm64@1.0.0-beta.29': + resolution: {integrity: sha512-fPqR6TfTqbzgKKCQYtcCS+Dms91YcptTbdlwJ13DxOUgMe8LgDIVsLLlEykfm7ijJd5mM4zNw0Hr2CJb6kvQZw==} + cpu: [arm64] + os: [darwin] + + '@rolldown/binding-darwin-x64@1.0.0-beta.29': + resolution: {integrity: sha512-7Z4qosL0xN8i6++txHOEPCVP3/lcGLOvftUJOWATZ5aDkDskwcZDa66BGiJt/K1/DgW4kpRVmnGWUWAORHBbFA==} + cpu: [x64] + os: [darwin] + + '@rolldown/binding-freebsd-x64@1.0.0-beta.29': + resolution: {integrity: sha512-0HLTfPW5Glh608s76qgayN/nPsXPchNUumavf7W5nh1eMG6qBsOO7Q1QaK0v4un7qtsn3IA/1Tgq0ZgNc0dbeg==} + cpu: [x64] + os: [freebsd] + + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.29': + resolution: {integrity: sha512-QNboxdVTJOZS4zP8kA2+XUwAegejd5QNSH5zVR4neqG2AfbxRcMFzSVRkJHN6yDaaKweD/4sUvXfmef6p/7zsw==} + cpu: [arm] + os: [linux] + + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.29': + resolution: {integrity: sha512-hzBmOtYdC4369XxN2SNJ3oBlXKWNif3ieWBT+oh/qvAeox4fQR0ngqyh+kIGOufBnP5Zc2rqJf9LzIbJw3Tx/Q==} + cpu: [arm64] + os: [linux] + + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.29': + resolution: {integrity: sha512-6B35GmFJJ4RX88OgubrnUmuJBUgRh6/OTXIpy8m/VUnoc683lufIPo26HW/0LxLgxp2GM7KHr3LOULcVxbqq4Q==} + cpu: [arm64] + os: [linux] + + '@rolldown/binding-linux-arm64-ohos@1.0.0-beta.29': + resolution: {integrity: sha512-z3ru8fUCunQM8q9I7RbDVMT5cxzxVVVBNNKM5/qAQQrdObd1u8g0LR5z0yLtaFWzybwLVdPtJDRcXtLm5tOBFA==} + cpu: [arm64] + os: [openharmony] + + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.29': + resolution: {integrity: sha512-n6fs4L7j99MIiI6vKhQDdyScv4/uMAPtIMkB0zGbUX8MKWT1osym1hvWVdlENjnS/Phf0zzhjyOgoFDzdhI1cQ==} + cpu: [x64] + os: [linux] + + '@rolldown/binding-linux-x64-musl@1.0.0-beta.29': + resolution: {integrity: sha512-C5hcJgtDN4rp6/WsPTQSDVUWrdnIC//ynMGcUIh1O0anm9KnSy47zKQ5D9EqtlEKvO+2PPqmyUVJ2DTq18nlVA==} + cpu: [x64] + os: [linux] + + '@rolldown/binding-wasm32-wasi@1.0.0-beta.29': + resolution: {integrity: sha512-lMN1IBItdZFO182Sdus9oVuNDqyIymn/bsR5KwgeGaiqLsrmpQHBSLwkS/nKJO1nzYlpGDRugFSpnrSJ5ZmihQ==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.29': + resolution: {integrity: sha512-0UrXCUAOrbWdyVJskzjtne/4d3YMMhhhpBnob3SeF4jAvbKYqPhCZJ71pP7yUpvbowGXXTnHWpKfitg4Sovmtw==} + cpu: [arm64] + os: [win32] + + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.29': + resolution: {integrity: sha512-YX0OYL1dcB7rPnsndpEa68fytYyZZj1iaWzH7momFB2oBS2lXAe1UrrDWcdLoUXdzPIyzpvtBCiS2XcDgYG7ag==} + cpu: [ia32] + os: [win32] + + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.29': + resolution: {integrity: sha512-azrPWbV+NZiCFNs59AgH9Y6vFKHoAI6T/XtKKsoLxkPyP1LpbdgL5eqRfeWz+GCAUY9qhDOC4hH1GjFG8PrZIg==} + cpu: [x64] + os: [win32] + + '@rolldown/pluginutils@1.0.0-beta.29': + resolution: {integrity: sha512-NIJgOsMjbxAXvoGq/X0gD7VPMQ8j9g0BiDaNjVNVjvl+iKXxL3Jre0v31RmBYeLEmkbj2s02v8vFTbUXi5XS2Q==} + '@rollup/plugin-commonjs@25.0.8': resolution: {integrity: sha512-ZEZWTK5n6Qde0to4vS9Mr5x/0UZoqCxPVR9KRUjU4kA2sO7GEUn1fop0DAwpO6z0Nw/kJON9bDmSxdWxO/TT1A==} engines: {node: '>=14.0.0'} @@ -4460,8 +4826,8 @@ packages: cpu: [arm] os: [android] - '@rollup/rollup-android-arm-eabi@4.44.1': - resolution: {integrity: sha512-JAcBr1+fgqx20m7Fwe1DxPUl/hPkee6jA6Pl7n1v2EFiktAHenTaXl5aIFjUIEsfn9w3HE4gK1lEgNGMzBDs1w==} + '@rollup/rollup-android-arm-eabi@4.46.2': + resolution: {integrity: sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==} cpu: [arm] os: [android] @@ -4470,8 +4836,8 @@ packages: cpu: [arm64] os: [android] - '@rollup/rollup-android-arm64@4.44.1': - resolution: {integrity: sha512-RurZetXqTu4p+G0ChbnkwBuAtwAbIwJkycw1n6GvlGlBuS4u5qlr5opix8cBAYFJgaY05TWtM+LaoFggUmbZEQ==} + '@rollup/rollup-android-arm64@4.46.2': + resolution: {integrity: sha512-nTeCWY83kN64oQ5MGz3CgtPx8NSOhC5lWtsjTs+8JAJNLcP3QbLCtDDgUKQc/Ro/frpMq4SHUaHN6AMltcEoLQ==} cpu: [arm64] os: [android] @@ -4480,8 +4846,8 @@ packages: cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-arm64@4.44.1': - resolution: {integrity: sha512-fM/xPesi7g2M7chk37LOnmnSTHLG/v2ggWqKj3CCA1rMA4mm5KVBT1fNoswbo1JhPuNNZrVwpTvlCVggv8A2zg==} + '@rollup/rollup-darwin-arm64@4.46.2': + resolution: {integrity: sha512-HV7bW2Fb/F5KPdM/9bApunQh68YVDU8sO8BvcW9OngQVN3HHHkw99wFupuUJfGR9pYLLAjcAOA6iO+evsbBaPQ==} cpu: [arm64] os: [darwin] @@ -4490,8 +4856,8 @@ packages: cpu: [x64] os: [darwin] - '@rollup/rollup-darwin-x64@4.44.1': - resolution: {integrity: sha512-gDnWk57urJrkrHQ2WVx9TSVTH7lSlU7E3AFqiko+bgjlh78aJ88/3nycMax52VIVjIm3ObXnDL2H00e/xzoipw==} + '@rollup/rollup-darwin-x64@4.46.2': + resolution: {integrity: sha512-SSj8TlYV5nJixSsm/y3QXfhspSiLYP11zpfwp6G/YDXctf3Xkdnk4woJIF5VQe0of2OjzTt8EsxnJDCdHd2xMA==} cpu: [x64] os: [darwin] @@ -4500,8 +4866,8 @@ packages: cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-arm64@4.44.1': - resolution: {integrity: sha512-wnFQmJ/zPThM5zEGcnDcCJeYJgtSLjh1d//WuHzhf6zT3Md1BvvhJnWoy+HECKu2bMxaIcfWiu3bJgx6z4g2XA==} + '@rollup/rollup-freebsd-arm64@4.46.2': + resolution: {integrity: sha512-ZyrsG4TIT9xnOlLsSSi9w/X29tCbK1yegE49RYm3tu3wF1L/B6LVMqnEWyDB26d9Ecx9zrmXCiPmIabVuLmNSg==} cpu: [arm64] os: [freebsd] @@ -4510,8 +4876,8 @@ packages: cpu: [x64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.44.1': - resolution: {integrity: sha512-uBmIxoJ4493YATvU2c0upGz87f99e3wop7TJgOA/bXMFd2SvKCI7xkxY/5k50bv7J6dw1SXT4MQBQSLn8Bb/Uw==} + '@rollup/rollup-freebsd-x64@4.46.2': + resolution: {integrity: sha512-pCgHFoOECwVCJ5GFq8+gR8SBKnMO+xe5UEqbemxBpCKYQddRQMgomv1104RnLSg7nNvgKy05sLsY51+OVRyiVw==} cpu: [x64] os: [freebsd] @@ -4520,8 +4886,8 @@ packages: cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-gnueabihf@4.44.1': - resolution: {integrity: sha512-n0edDmSHlXFhrlmTK7XBuwKlG5MbS7yleS1cQ9nn4kIeW+dJH+ExqNgQ0RrFRew8Y+0V/x6C5IjsHrJmiHtkxQ==} + '@rollup/rollup-linux-arm-gnueabihf@4.46.2': + resolution: {integrity: sha512-EtP8aquZ0xQg0ETFcxUbU71MZlHaw9MChwrQzatiE8U/bvi5uv/oChExXC4mWhjiqK7azGJBqU0tt5H123SzVA==} cpu: [arm] os: [linux] @@ -4530,8 +4896,8 @@ packages: cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.44.1': - resolution: {integrity: sha512-8WVUPy3FtAsKSpyk21kV52HCxB+me6YkbkFHATzC2Yd3yuqHwy2lbFL4alJOLXKljoRw08Zk8/xEj89cLQ/4Nw==} + '@rollup/rollup-linux-arm-musleabihf@4.46.2': + resolution: {integrity: sha512-qO7F7U3u1nfxYRPM8HqFtLd+raev2K137dsV08q/LRKRLEc7RsiDWihUnrINdsWQxPR9jqZ8DIIZ1zJJAm5PjQ==} cpu: [arm] os: [linux] @@ -4540,8 +4906,8 @@ packages: cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.44.1': - resolution: {integrity: sha512-yuktAOaeOgorWDeFJggjuCkMGeITfqvPgkIXhDqsfKX8J3jGyxdDZgBV/2kj/2DyPaLiX6bPdjJDTu9RB8lUPQ==} + '@rollup/rollup-linux-arm64-gnu@4.46.2': + resolution: {integrity: sha512-3dRaqLfcOXYsfvw5xMrxAk9Lb1f395gkoBYzSFcc/scgRFptRXL9DOaDpMiehf9CO8ZDRJW2z45b6fpU5nwjng==} cpu: [arm64] os: [linux] @@ -4550,8 +4916,8 @@ packages: cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.44.1': - resolution: {integrity: sha512-W+GBM4ifET1Plw8pdVaecwUgxmiH23CfAUj32u8knq0JPFyK4weRy6H7ooxYFD19YxBulL0Ktsflg5XS7+7u9g==} + '@rollup/rollup-linux-arm64-musl@4.46.2': + resolution: {integrity: sha512-fhHFTutA7SM+IrR6lIfiHskxmpmPTJUXpWIsBXpeEwNgZzZZSg/q4i6FU4J8qOGyJ0TR+wXBwx/L7Ho9z0+uDg==} cpu: [arm64] os: [linux] @@ -4560,8 +4926,8 @@ packages: cpu: [loong64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.44.1': - resolution: {integrity: sha512-1zqnUEMWp9WrGVuVak6jWTl4fEtrVKfZY7CvcBmUUpxAJ7WcSowPSAWIKa/0o5mBL/Ij50SIf9tuirGx63Ovew==} + '@rollup/rollup-linux-loongarch64-gnu@4.46.2': + resolution: {integrity: sha512-i7wfGFXu8x4+FRqPymzjD+Hyav8l95UIZ773j7J7zRYc3Xsxy2wIn4x+llpunexXe6laaO72iEjeeGyUFmjKeA==} cpu: [loong64] os: [linux] @@ -4570,8 +4936,8 @@ packages: cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.44.1': - resolution: {integrity: sha512-Rl3JKaRu0LHIx7ExBAAnf0JcOQetQffaw34T8vLlg9b1IhzcBgaIdnvEbbsZq9uZp3uAH+JkHd20Nwn0h9zPjA==} + '@rollup/rollup-linux-ppc64-gnu@4.46.2': + resolution: {integrity: sha512-B/l0dFcHVUnqcGZWKcWBSV2PF01YUt0Rvlurci5P+neqY/yMKchGU8ullZvIv5e8Y1C6wOn+U03mrDylP5q9Yw==} cpu: [ppc64] os: [linux] @@ -4580,8 +4946,8 @@ packages: cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.44.1': - resolution: {integrity: sha512-j5akelU3snyL6K3N/iX7otLBIl347fGwmd95U5gS/7z6T4ftK288jKq3A5lcFKcx7wwzb5rgNvAg3ZbV4BqUSw==} + '@rollup/rollup-linux-riscv64-gnu@4.46.2': + resolution: {integrity: sha512-32k4ENb5ygtkMwPMucAb8MtV8olkPT03oiTxJbgkJa7lJ7dZMr0GCFJlyvy+K8iq7F/iuOr41ZdUHaOiqyR3iQ==} cpu: [riscv64] os: [linux] @@ -4590,8 +4956,8 @@ packages: cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-musl@4.44.1': - resolution: {integrity: sha512-ppn5llVGgrZw7yxbIm8TTvtj1EoPgYUAbfw0uDjIOzzoqlZlZrLJ/KuiE7uf5EpTpCTrNt1EdtzF0naMm0wGYg==} + '@rollup/rollup-linux-riscv64-musl@4.46.2': + resolution: {integrity: sha512-t5B2loThlFEauloaQkZg9gxV05BYeITLvLkWOkRXogP4qHXLkWSbSHKM9S6H1schf/0YGP/qNKtiISlxvfmmZw==} cpu: [riscv64] os: [linux] @@ -4600,8 +4966,8 @@ packages: cpu: [s390x] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.44.1': - resolution: {integrity: sha512-Hu6hEdix0oxtUma99jSP7xbvjkUM/ycke/AQQ4EC5g7jNRLLIwjcNwaUy95ZKBJJwg1ZowsclNnjYqzN4zwkAw==} + '@rollup/rollup-linux-s390x-gnu@4.46.2': + resolution: {integrity: sha512-YKjekwTEKgbB7n17gmODSmJVUIvj8CX7q5442/CK80L8nqOUbMtf8b01QkG3jOqyr1rotrAnW6B/qiHwfcuWQA==} cpu: [s390x] os: [linux] @@ -4610,8 +4976,8 @@ packages: cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.44.1': - resolution: {integrity: sha512-EtnsrmZGomz9WxK1bR5079zee3+7a+AdFlghyd6VbAjgRJDbTANJ9dcPIPAi76uG05micpEL+gPGmAKYTschQw==} + '@rollup/rollup-linux-x64-gnu@4.46.2': + resolution: {integrity: sha512-Jj5a9RUoe5ra+MEyERkDKLwTXVu6s3aACP51nkfnK9wJTraCC8IMe3snOfALkrjTYd2G1ViE1hICj0fZ7ALBPA==} cpu: [x64] os: [linux] @@ -4620,8 +4986,8 @@ packages: cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.44.1': - resolution: {integrity: sha512-iAS4p+J1az6Usn0f8xhgL4PaU878KEtutP4hqw52I4IO6AGoyOkHCxcc4bqufv1tQLdDWFx8lR9YlwxKuv3/3g==} + '@rollup/rollup-linux-x64-musl@4.46.2': + resolution: {integrity: sha512-7kX69DIrBeD7yNp4A5b81izs8BqoZkCIaxQaOpumcJ1S/kmqNFjPhDu1LHeVXv0SexfHQv5cqHsxLOjETuqDuA==} cpu: [x64] os: [linux] @@ -4630,8 +4996,8 @@ packages: cpu: [arm64] os: [win32] - '@rollup/rollup-win32-arm64-msvc@4.44.1': - resolution: {integrity: sha512-NtSJVKcXwcqozOl+FwI41OH3OApDyLk3kqTJgx8+gp6On9ZEt5mYhIsKNPGuaZr3p9T6NWPKGU/03Vw4CNU9qg==} + '@rollup/rollup-win32-arm64-msvc@4.46.2': + resolution: {integrity: sha512-wiJWMIpeaak/jsbaq2HMh/rzZxHVW1rU6coyeNNpMwk5isiPjSTx0a4YLSlYDwBH/WBvLz+EtsNqQScZTLJy3g==} cpu: [arm64] os: [win32] @@ -4640,8 +5006,8 @@ packages: cpu: [ia32] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.44.1': - resolution: {integrity: sha512-JYA3qvCOLXSsnTR3oiyGws1Dm0YTuxAAeaYGVlGpUsHqloPcFjPg+X0Fj2qODGLNwQOAcCiQmHub/V007kiH5A==} + '@rollup/rollup-win32-ia32-msvc@4.46.2': + resolution: {integrity: sha512-gBgaUDESVzMgWZhcyjfs9QFK16D8K6QZpwAaVNJxYDLHWayOta4ZMjGm/vsAEy3hvlS2GosVFlBlP9/Wb85DqQ==} cpu: [ia32] os: [win32] @@ -4650,8 +5016,8 @@ packages: cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.44.1': - resolution: {integrity: sha512-J8o22LuF0kTe7m+8PvW9wk3/bRq5+mRo5Dqo6+vXb7otCm3TPhYOJqOaQtGU9YMWQSL3krMnoOxMr0+9E6F3Ug==} + '@rollup/rollup-win32-x64-msvc@4.46.2': + resolution: {integrity: sha512-CvUo2ixeIQGtF6WvuB87XWqPQkoFAFqW+HUo/WzHwuHDvIwZCtjdWXoYCcr06iKGydiqTclC4jU/TNObC/xKZg==} cpu: [x64] os: [win32] @@ -4689,12 +5055,36 @@ packages: '@sideway/pinpoint@2.0.0': resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} - '@sinclair/typebox@0.27.8': - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + '@sigstore/bundle@3.1.0': + resolution: {integrity: sha512-Mm1E3/CmDDCz3nDhFKTuYdB47EdRFRQMOE/EAbiG1MJW77/w1b3P7Qx7JSrVJs8PfwOLOVcKQCHErIwCTyPbag==} + engines: {node: ^18.17.0 || >=20.5.0} + + '@sigstore/core@2.0.0': + resolution: {integrity: sha512-nYxaSb/MtlSI+JWcwTHQxyNmWeWrUXJJ/G4liLrGG7+tS4vAz6LF3xRXqLH6wPIVUoZQel2Fs4ddLx4NCpiIYg==} + engines: {node: ^18.17.0 || >=20.5.0} + + '@sigstore/protobuf-specs@0.4.3': + resolution: {integrity: sha512-fk2zjD9117RL9BjqEwF7fwv7Q/P9yGsMV4MUJZ/DocaQJ6+3pKr+syBq1owU5Q5qGw5CUbXzm+4yJ2JVRDQeSA==} + engines: {node: ^18.17.0 || >=20.5.0} + + '@sigstore/sign@3.1.0': + resolution: {integrity: sha512-knzjmaOHOov1Ur7N/z4B1oPqZ0QX5geUfhrVaqVlu+hl0EAoL4o+l0MSULINcD5GCWe3Z0+YJO8ues6vFlW0Yw==} + engines: {node: ^18.17.0 || >=20.5.0} + + '@sigstore/tuf@3.1.1': + resolution: {integrity: sha512-eFFvlcBIoGwVkkwmTi/vEQFSva3xs5Ot3WmBcjgjVdiaoelBLQaQ/ZBfhlG0MnG0cmTYScPpk7eDdGDWUcFUmg==} + engines: {node: ^18.17.0 || >=20.5.0} + + '@sigstore/verify@2.1.1': + resolution: {integrity: sha512-hVJD77oT67aowHxwT4+M6PGOp+E2LtLdTK3+FC0lBO9T7sYwItDMXZ7Z07IDCvR1M717a4axbIWckrW67KMP/w==} + engines: {node: ^18.17.0 || >=20.5.0} '@sinclair/typebox@0.31.28': resolution: {integrity: sha512-/s55Jujywdw/Jpan+vsy6JZs1z2ZTGxTmbZTPiuSL2wz9mfzA2gN1zzaqmvfi4pq+uOt7Du85fkiwv5ymW84aQ==} + '@sinclair/typebox@0.34.38': + resolution: {integrity: sha512-HpkxMmc2XmZKhvaKIZZThlHmx1L0I/V1hWK1NubtlFnr6ZqdiOpV72TKudZUNQjZNsyDBay72qFEhEvb+bcwcA==} + '@sindresorhus/is@4.6.0': resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} engines: {node: '>=10'} @@ -4702,194 +5092,197 @@ packages: '@sinonjs/commons@3.0.1': resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} - '@sinonjs/fake-timers@10.3.0': - resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} + '@sinonjs/fake-timers@13.0.5': + resolution: {integrity: sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==} - '@smithy/abort-controller@3.1.9': - resolution: {integrity: sha512-yiW0WI30zj8ZKoSYNx90no7ugVn3khlyH/z5W8qtKBtVE6awRALbhSG+2SAHA1r6bO/6M9utxYKVZ3PCJ1rWxw==} - engines: {node: '>=16.0.0'} + '@smithy/abort-controller@4.0.4': + resolution: {integrity: sha512-gJnEjZMvigPDQWHrW3oPrFhQtkrgqBkyjj3pCIdF3A5M6vsZODG93KNlfJprv6bp4245bdT32fsHK4kkH3KYDA==} + engines: {node: '>=18.0.0'} - '@smithy/config-resolver@3.0.13': - resolution: {integrity: sha512-Gr/qwzyPaTL1tZcq8WQyHhTZREER5R1Wytmz4WnVGL4onA3dNk6Btll55c8Vr58pLdvWZmtG8oZxJTw3t3q7Jg==} - engines: {node: '>=16.0.0'} + '@smithy/config-resolver@4.1.4': + resolution: {integrity: sha512-prmU+rDddxHOH0oNcwemL+SwnzcG65sBF2yXRO7aeXIn/xTlq2pX7JLVbkBnVLowHLg4/OL4+jBmv9hVrVGS+w==} + engines: {node: '>=18.0.0'} - '@smithy/core@2.5.7': - resolution: {integrity: sha512-8olpW6mKCa0v+ibCjoCzgZHQx1SQmZuW/WkrdZo73wiTprTH6qhmskT60QLFdT9DRa5mXxjz89kQPZ7ZSsoqqg==} - engines: {node: '>=16.0.0'} + '@smithy/core@3.7.0': + resolution: {integrity: sha512-7ov8hu/4j0uPZv8b27oeOFtIBtlFmM3ibrPv/Omx1uUdoXvcpJ00U+H/OWWC/keAguLlcqwtyL2/jTlSnApgNQ==} + engines: {node: '>=18.0.0'} - '@smithy/credential-provider-imds@3.2.8': - resolution: {integrity: sha512-ZCY2yD0BY+K9iMXkkbnjo+08T2h8/34oHd0Jmh6BZUSZwaaGlGCyBT/3wnS7u7Xl33/EEfN4B6nQr3Gx5bYxgw==} - engines: {node: '>=16.0.0'} + '@smithy/credential-provider-imds@4.0.6': + resolution: {integrity: sha512-hKMWcANhUiNbCJouYkZ9V3+/Qf9pteR1dnwgdyzR09R4ODEYx8BbUysHwRSyex4rZ9zapddZhLFTnT4ZijR4pw==} + engines: {node: '>=18.0.0'} - '@smithy/eventstream-codec@3.1.10': - resolution: {integrity: sha512-323B8YckSbUH0nMIpXn7HZsAVKHYHFUODa8gG9cHo0ySvA1fr5iWaNT+iIL0UCqUzG6QPHA3BSsBtRQou4mMqQ==} + '@smithy/eventstream-codec@4.0.4': + resolution: {integrity: sha512-7XoWfZqWb/QoR/rAU4VSi0mWnO2vu9/ltS6JZ5ZSZv0eovLVfDfu0/AX4ub33RsJTOth3TiFWSHS5YdztvFnig==} + engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-browser@3.0.14': - resolution: {integrity: sha512-kbrt0vjOIihW3V7Cqj1SXQvAI5BR8SnyQYsandva0AOR307cXAc+IhPngxIPslxTLfxwDpNu0HzCAq6g42kCPg==} - engines: {node: '>=16.0.0'} + '@smithy/eventstream-serde-browser@4.0.4': + resolution: {integrity: sha512-3fb/9SYaYqbpy/z/H3yIi0bYKyAa89y6xPmIqwr2vQiUT2St+avRt8UKwsWt9fEdEasc5d/V+QjrviRaX1JRFA==} + engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-config-resolver@3.0.11': - resolution: {integrity: sha512-P2pnEp4n75O+QHjyO7cbw/vsw5l93K/8EWyjNCAAybYwUmj3M+hjSQZ9P5TVdUgEG08ueMAP5R4FkuSkElZ5tQ==} - engines: {node: '>=16.0.0'} + '@smithy/eventstream-serde-config-resolver@4.1.2': + resolution: {integrity: sha512-JGtambizrWP50xHgbzZI04IWU7LdI0nh/wGbqH3sJesYToMi2j/DcoElqyOcqEIG/D4tNyxgRuaqBXWE3zOFhQ==} + engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-node@3.0.13': - resolution: {integrity: sha512-zqy/9iwbj8Wysmvi7Lq7XFLeDgjRpTbCfwBhJa8WbrylTAHiAu6oQTwdY7iu2lxigbc9YYr9vPv5SzYny5tCXQ==} - engines: {node: '>=16.0.0'} + '@smithy/eventstream-serde-node@4.0.4': + resolution: {integrity: sha512-RD6UwNZ5zISpOWPuhVgRz60GkSIp0dy1fuZmj4RYmqLVRtejFqQ16WmfYDdoSoAjlp1LX+FnZo+/hkdmyyGZ1w==} + engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-universal@3.0.13': - resolution: {integrity: sha512-L1Ib66+gg9uTnqp/18Gz4MDpJPKRE44geOjOQ2SVc0eiaO5l255ADziATZgjQjqumC7yPtp1XnjHlF1srcwjKw==} - engines: {node: '>=16.0.0'} + '@smithy/eventstream-serde-universal@4.0.4': + resolution: {integrity: sha512-UeJpOmLGhq1SLox79QWw/0n2PFX+oPRE1ZyRMxPIaFEfCqWaqpB7BU9C8kpPOGEhLF7AwEqfFbtwNxGy4ReENA==} + engines: {node: '>=18.0.0'} - '@smithy/fetch-http-handler@3.2.9': - resolution: {integrity: sha512-hYNVQOqhFQ6vOpenifFME546f0GfJn2OiQ3M0FDmuUu8V/Uiwy2wej7ZXxFBNqdx0R5DZAqWM1l6VRhGz8oE6A==} + '@smithy/fetch-http-handler@5.1.0': + resolution: {integrity: sha512-mADw7MS0bYe2OGKkHYMaqarOXuDwRbO6ArD91XhHcl2ynjGCFF+hvqf0LyQcYxkA1zaWjefSkU7Ne9mqgApSgQ==} + engines: {node: '>=18.0.0'} - '@smithy/fetch-http-handler@4.1.3': - resolution: {integrity: sha512-6SxNltSncI8s689nvnzZQc/dPXcpHQ34KUj6gR/HBroytKOd/isMG3gJF/zBE1TBmTT18TXyzhg3O3SOOqGEhA==} + '@smithy/hash-node@4.0.4': + resolution: {integrity: sha512-qnbTPUhCVnCgBp4z4BUJUhOEkVwxiEi1cyFM+Zj6o+aY8OFGxUQleKWq8ltgp3dujuhXojIvJWdoqpm6dVO3lQ==} + engines: {node: '>=18.0.0'} - '@smithy/hash-node@3.0.11': - resolution: {integrity: sha512-emP23rwYyZhQBvklqTtwetkQlqbNYirDiEEwXl2v0GYWMnCzxst7ZaRAnWuy28njp5kAH54lvkdG37MblZzaHA==} - engines: {node: '>=16.0.0'} - - '@smithy/invalid-dependency@3.0.11': - resolution: {integrity: sha512-NuQmVPEJjUX6c+UELyVz8kUx8Q539EDeNwbRyu4IIF8MeV7hUtq1FB3SHVyki2u++5XLMFqngeMKk7ccspnNyQ==} + '@smithy/invalid-dependency@4.0.4': + resolution: {integrity: sha512-bNYMi7WKTJHu0gn26wg8OscncTt1t2b8KcsZxvOv56XA6cyXtOAAAaNP7+m45xfppXfOatXF3Sb1MNsLUgVLTw==} + engines: {node: '>=18.0.0'} '@smithy/is-array-buffer@2.2.0': resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==} engines: {node: '>=14.0.0'} - '@smithy/is-array-buffer@3.0.0': - resolution: {integrity: sha512-+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ==} - engines: {node: '>=16.0.0'} + '@smithy/is-array-buffer@4.0.0': + resolution: {integrity: sha512-saYhF8ZZNoJDTvJBEWgeBccCg+yvp1CX+ed12yORU3NilJScfc6gfch2oVb4QgxZrGUx3/ZJlb+c/dJbyupxlw==} + engines: {node: '>=18.0.0'} - '@smithy/middleware-content-length@3.0.13': - resolution: {integrity: sha512-zfMhzojhFpIX3P5ug7jxTjfUcIPcGjcQYzB9t+rv0g1TX7B0QdwONW+ATouaLoD7h7LOw/ZlXfkq4xJ/g2TrIw==} - engines: {node: '>=16.0.0'} + '@smithy/middleware-content-length@4.0.4': + resolution: {integrity: sha512-F7gDyfI2BB1Kc+4M6rpuOLne5LOcEknH1n6UQB69qv+HucXBR1rkzXBnQTB2q46sFy1PM/zuSJOB532yc8bg3w==} + engines: {node: '>=18.0.0'} - '@smithy/middleware-endpoint@3.2.8': - resolution: {integrity: sha512-OEJZKVUEhMOqMs3ktrTWp7UvvluMJEvD5XgQwRePSbDg1VvBaL8pX8mwPltFn6wk1GySbcVwwyldL8S+iqnrEQ==} - engines: {node: '>=16.0.0'} + '@smithy/middleware-endpoint@4.1.14': + resolution: {integrity: sha512-+BGLpK5D93gCcSEceaaYhUD/+OCGXM1IDaq/jKUQ+ujB0PTWlWN85noodKw/IPFZhIKFCNEe19PGd/reUMeLSQ==} + engines: {node: '>=18.0.0'} + deprecated: Please upgrade to @smithy/middleware-endpoint@4.1.15 or higher to fix a bug preventing the resolution of ENV and config file custom endpoints https://github.com/smithy-lang/smithy-typescript/issues/1645 - '@smithy/middleware-retry@3.0.34': - resolution: {integrity: sha512-yVRr/AAtPZlUvwEkrq7S3x7Z8/xCd97m2hLDaqdz6ucP2RKHsBjEqaUA2ebNv2SsZoPEi+ZD0dZbOB1u37tGCA==} - engines: {node: '>=16.0.0'} + '@smithy/middleware-retry@4.1.15': + resolution: {integrity: sha512-iKYUJpiyTQ33U2KlOZeUb0GwtzWR3C0soYcKuCnTmJrvt6XwTPQZhMfsjJZNw7PpQ3TU4Ati1qLSrkSJxnnSMQ==} + engines: {node: '>=18.0.0'} - '@smithy/middleware-serde@3.0.11': - resolution: {integrity: sha512-KzPAeySp/fOoQA82TpnwItvX8BBURecpx6ZMu75EZDkAcnPtO6vf7q4aH5QHs/F1s3/snQaSFbbUMcFFZ086Mw==} - engines: {node: '>=16.0.0'} + '@smithy/middleware-serde@4.0.8': + resolution: {integrity: sha512-iSSl7HJoJaGyMIoNn2B7czghOVwJ9nD7TMvLhMWeSB5vt0TnEYyRRqPJu/TqW76WScaNvYYB8nRoiBHR9S1Ddw==} + engines: {node: '>=18.0.0'} - '@smithy/middleware-stack@3.0.11': - resolution: {integrity: sha512-1HGo9a6/ikgOMrTrWL/WiN9N8GSVYpuRQO5kjstAq4CvV59bjqnh7TbdXGQ4vxLD3xlSjfBjq5t1SOELePsLnA==} - engines: {node: '>=16.0.0'} + '@smithy/middleware-stack@4.0.4': + resolution: {integrity: sha512-kagK5ggDrBUCCzI93ft6DjteNSfY8Ulr83UtySog/h09lTIOAJ/xUSObutanlPT0nhoHAkpmW9V5K8oPyLh+QA==} + engines: {node: '>=18.0.0'} - '@smithy/node-config-provider@3.1.12': - resolution: {integrity: sha512-O9LVEu5J/u/FuNlZs+L7Ikn3lz7VB9hb0GtPT9MQeiBmtK8RSY3ULmsZgXhe6VAlgTw0YO+paQx4p8xdbs43vQ==} - engines: {node: '>=16.0.0'} + '@smithy/node-config-provider@4.1.3': + resolution: {integrity: sha512-HGHQr2s59qaU1lrVH6MbLlmOBxadtzTsoO4c+bF5asdgVik3I8o7JIOzoeqWc5MjVa+vD36/LWE0iXKpNqooRw==} + engines: {node: '>=18.0.0'} - '@smithy/node-http-handler@3.3.3': - resolution: {integrity: sha512-BrpZOaZ4RCbcJ2igiSNG16S+kgAc65l/2hmxWdmhyoGWHTLlzQzr06PXavJp9OBlPEG/sHlqdxjWmjzV66+BSQ==} - engines: {node: '>=16.0.0'} + '@smithy/node-http-handler@4.1.0': + resolution: {integrity: sha512-vqfSiHz2v8b3TTTrdXi03vNz1KLYYS3bhHCDv36FYDqxT7jvTll1mMnCrkD+gOvgwybuunh/2VmvOMqwBegxEg==} + engines: {node: '>=18.0.0'} - '@smithy/property-provider@3.1.11': - resolution: {integrity: sha512-I/+TMc4XTQ3QAjXfOcUWbSS073oOEAxgx4aZy8jHaf8JQnRkq2SZWw8+PfDtBvLUjcGMdxl+YwtzWe6i5uhL/A==} - engines: {node: '>=16.0.0'} + '@smithy/property-provider@4.0.4': + resolution: {integrity: sha512-qHJ2sSgu4FqF4U/5UUp4DhXNmdTrgmoAai6oQiM+c5RZ/sbDwJ12qxB1M6FnP+Tn/ggkPZf9ccn4jqKSINaquw==} + engines: {node: '>=18.0.0'} - '@smithy/protocol-http@4.1.8': - resolution: {integrity: sha512-hmgIAVyxw1LySOwkgMIUN0kjN8TG9Nc85LJeEmEE/cNEe2rkHDUWhnJf2gxcSRFLWsyqWsrZGw40ROjUogg+Iw==} - engines: {node: '>=16.0.0'} + '@smithy/protocol-http@5.1.2': + resolution: {integrity: sha512-rOG5cNLBXovxIrICSBm95dLqzfvxjEmuZx4KK3hWwPFHGdW3lxY0fZNXfv2zebfRO7sJZ5pKJYHScsqopeIWtQ==} + engines: {node: '>=18.0.0'} - '@smithy/querystring-builder@3.0.11': - resolution: {integrity: sha512-u+5HV/9uJaeLj5XTb6+IEF/dokWWkEqJ0XiaRRogyREmKGUgZnNecLucADLdauWFKUNbQfulHFEZEdjwEBjXRg==} - engines: {node: '>=16.0.0'} + '@smithy/querystring-builder@4.0.4': + resolution: {integrity: sha512-SwREZcDnEYoh9tLNgMbpop+UTGq44Hl9tdj3rf+yeLcfH7+J8OXEBaMc2kDxtyRHu8BhSg9ADEx0gFHvpJgU8w==} + engines: {node: '>=18.0.0'} - '@smithy/querystring-parser@3.0.11': - resolution: {integrity: sha512-Je3kFvCsFMnso1ilPwA7GtlbPaTixa3WwC+K21kmMZHsBEOZYQaqxcMqeFFoU7/slFjKDIpiiPydvdJm8Q/MCw==} - engines: {node: '>=16.0.0'} + '@smithy/querystring-parser@4.0.4': + resolution: {integrity: sha512-6yZf53i/qB8gRHH/l2ZwUG5xgkPgQF15/KxH0DdXMDHjesA9MeZje/853ifkSY0x4m5S+dfDZ+c4x439PF0M2w==} + engines: {node: '>=18.0.0'} - '@smithy/service-error-classification@3.0.11': - resolution: {integrity: sha512-QnYDPkyewrJzCyaeI2Rmp7pDwbUETe+hU8ADkXmgNusO1bgHBH7ovXJiYmba8t0fNfJx75fE8dlM6SEmZxheog==} - engines: {node: '>=16.0.0'} + '@smithy/service-error-classification@4.0.6': + resolution: {integrity: sha512-RRoTDL//7xi4tn5FrN2NzH17jbgmnKidUqd4KvquT0954/i6CXXkh1884jBiunq24g9cGtPBEXlU40W6EpNOOg==} + engines: {node: '>=18.0.0'} - '@smithy/shared-ini-file-loader@3.1.12': - resolution: {integrity: sha512-1xKSGI+U9KKdbG2qDvIR9dGrw3CNx+baqJfyr0igKEpjbHL5stsqAesYBzHChYHlelWtb87VnLWlhvfCz13H8Q==} - engines: {node: '>=16.0.0'} + '@smithy/shared-ini-file-loader@4.0.4': + resolution: {integrity: sha512-63X0260LoFBjrHifPDs+nM9tV0VMkOTl4JRMYNuKh/f5PauSjowTfvF3LogfkWdcPoxsA9UjqEOgjeYIbhb7Nw==} + engines: {node: '>=18.0.0'} - '@smithy/signature-v4@4.2.4': - resolution: {integrity: sha512-5JWeMQYg81TgU4cG+OexAWdvDTs5JDdbEZx+Qr1iPbvo91QFGzjy0IkXAKaXUHqmKUJgSHK0ZxnCkgZpzkeNTA==} - engines: {node: '>=16.0.0'} + '@smithy/signature-v4@5.1.2': + resolution: {integrity: sha512-d3+U/VpX7a60seHziWnVZOHuEgJlclufjkS6zhXvxcJgkJq4UWdH5eOBLzHRMx6gXjsdT9h6lfpmLzbrdupHgQ==} + engines: {node: '>=18.0.0'} - '@smithy/smithy-client@3.7.0': - resolution: {integrity: sha512-9wYrjAZFlqWhgVo3C4y/9kpc68jgiSsKUnsFPzr/MSiRL93+QRDafGTfhhKAb2wsr69Ru87WTiqSfQusSmWipA==} - engines: {node: '>=16.0.0'} + '@smithy/smithy-client@4.4.6': + resolution: {integrity: sha512-3wfhywdzB/CFszP6moa5L3lf5/zSfQoH0kvVSdkyK2az5qZet0sn2PAHjcTDiq296Y4RP5yxF7B6S6+3oeBUCQ==} + engines: {node: '>=18.0.0'} - '@smithy/types@3.7.2': - resolution: {integrity: sha512-bNwBYYmN8Eh9RyjS1p2gW6MIhSO2rl7X9QeLM8iTdcGRP+eDiIWDt66c9IysCc22gefKszZv+ubV9qZc7hdESg==} - engines: {node: '>=16.0.0'} + '@smithy/types@4.3.1': + resolution: {integrity: sha512-UqKOQBL2x6+HWl3P+3QqFD4ncKq0I8Nuz9QItGv5WuKuMHuuwlhvqcZCoXGfc+P1QmfJE7VieykoYYmrOoFJxA==} + engines: {node: '>=18.0.0'} - '@smithy/url-parser@3.0.11': - resolution: {integrity: sha512-TmlqXkSk8ZPhfc+SQutjmFr5FjC0av3GZP4B/10caK1SbRwe/v+Wzu/R6xEKxoNqL+8nY18s1byiy6HqPG37Aw==} + '@smithy/url-parser@4.0.4': + resolution: {integrity: sha512-eMkc144MuN7B0TDA4U2fKs+BqczVbk3W+qIvcoCY6D1JY3hnAdCuhCZODC+GAeaxj0p6Jroz4+XMUn3PCxQQeQ==} + engines: {node: '>=18.0.0'} - '@smithy/util-base64@3.0.0': - resolution: {integrity: sha512-Kxvoh5Qtt0CDsfajiZOCpJxgtPHXOKwmM+Zy4waD43UoEMA+qPxxa98aE/7ZhdnBFZFXMOiBR5xbcaMhLtznQQ==} - engines: {node: '>=16.0.0'} + '@smithy/util-base64@4.0.0': + resolution: {integrity: sha512-CvHfCmO2mchox9kjrtzoHkWHxjHZzaFojLc8quxXY7WAAMAg43nuxwv95tATVgQFNDwd4M9S1qFzj40Ul41Kmg==} + engines: {node: '>=18.0.0'} - '@smithy/util-body-length-browser@3.0.0': - resolution: {integrity: sha512-cbjJs2A1mLYmqmyVl80uoLTJhAcfzMOyPgjwAYusWKMdLeNtzmMz9YxNl3/jRLoxSS3wkqkf0jwNdtXWtyEBaQ==} + '@smithy/util-body-length-browser@4.0.0': + resolution: {integrity: sha512-sNi3DL0/k64/LO3A256M+m3CDdG6V7WKWHdAiBBMUN8S3hK3aMPhwnPik2A/a2ONN+9doY9UxaLfgqsIRg69QA==} + engines: {node: '>=18.0.0'} - '@smithy/util-body-length-node@3.0.0': - resolution: {integrity: sha512-Tj7pZ4bUloNUP6PzwhN7K386tmSmEET9QtQg0TgdNOnxhZvCssHji+oZTUIuzxECRfG8rdm2PMw2WCFs6eIYkA==} - engines: {node: '>=16.0.0'} + '@smithy/util-body-length-node@4.0.0': + resolution: {integrity: sha512-q0iDP3VsZzqJyje8xJWEJCNIu3lktUGVoSy1KB0UWym2CL1siV3artm+u1DFYTLejpsrdGyCSWBdGNjJzfDPjg==} + engines: {node: '>=18.0.0'} '@smithy/util-buffer-from@2.2.0': resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==} engines: {node: '>=14.0.0'} - '@smithy/util-buffer-from@3.0.0': - resolution: {integrity: sha512-aEOHCgq5RWFbP+UDPvPot26EJHjOC+bRgse5A8V3FSShqd5E5UN4qc7zkwsvJPPAVsf73QwYcHN1/gt/rtLwQA==} - engines: {node: '>=16.0.0'} + '@smithy/util-buffer-from@4.0.0': + resolution: {integrity: sha512-9TOQ7781sZvddgO8nxueKi3+yGvkY35kotA0Y6BWRajAv8jjmigQ1sBwz0UX47pQMYXJPahSKEKYFgt+rXdcug==} + engines: {node: '>=18.0.0'} - '@smithy/util-config-provider@3.0.0': - resolution: {integrity: sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ==} - engines: {node: '>=16.0.0'} + '@smithy/util-config-provider@4.0.0': + resolution: {integrity: sha512-L1RBVzLyfE8OXH+1hsJ8p+acNUSirQnWQ6/EgpchV88G6zGBTDPdXiiExei6Z1wR2RxYvxY/XLw6AMNCCt8H3w==} + engines: {node: '>=18.0.0'} - '@smithy/util-defaults-mode-browser@3.0.34': - resolution: {integrity: sha512-FumjjF631lR521cX+svMLBj3SwSDh9VdtyynTYDAiBDEf8YPP5xORNXKQ9j0105o5+ARAGnOOP/RqSl40uXddA==} - engines: {node: '>= 10.0.0'} + '@smithy/util-defaults-mode-browser@4.0.22': + resolution: {integrity: sha512-hjElSW18Wq3fUAWVk6nbk7pGrV7ZT14DL1IUobmqhV3lxcsIenr5FUsDe2jlTVaS8OYBI3x+Og9URv5YcKb5QA==} + engines: {node: '>=18.0.0'} - '@smithy/util-defaults-mode-node@3.0.34': - resolution: {integrity: sha512-vN6aHfzW9dVVzkI0wcZoUXvfjkl4CSbM9nE//08lmUMyf00S75uuCpTrqF9uD4bD9eldIXlt53colrlwKAT8Gw==} - engines: {node: '>= 10.0.0'} + '@smithy/util-defaults-mode-node@4.0.22': + resolution: {integrity: sha512-7B8mfQBtwwr2aNRRmU39k/bsRtv9B6/1mTMrGmmdJFKmLAH+KgIiOuhaqfKOBGh9sZ/VkZxbvm94rI4MMYpFjQ==} + engines: {node: '>=18.0.0'} - '@smithy/util-endpoints@2.1.7': - resolution: {integrity: sha512-tSfcqKcN/Oo2STEYCABVuKgJ76nyyr6skGl9t15hs+YaiU06sgMkN7QYjo0BbVw+KT26zok3IzbdSOksQ4YzVw==} - engines: {node: '>=16.0.0'} + '@smithy/util-endpoints@3.0.6': + resolution: {integrity: sha512-YARl3tFL3WgPuLzljRUnrS2ngLiUtkwhQtj8PAL13XZSyUiNLQxwG3fBBq3QXFqGFUXepIN73pINp3y8c2nBmA==} + engines: {node: '>=18.0.0'} - '@smithy/util-hex-encoding@3.0.0': - resolution: {integrity: sha512-eFndh1WEK5YMUYvy3lPlVmYY/fZcQE1D8oSf41Id2vCeIkKJXPcYDCZD+4+xViI6b1XSd7tE+s5AmXzz5ilabQ==} - engines: {node: '>=16.0.0'} + '@smithy/util-hex-encoding@4.0.0': + resolution: {integrity: sha512-Yk5mLhHtfIgW2W2WQZWSg5kuMZCVbvhFmC7rV4IO2QqnZdbEFPmQnCcGMAX2z/8Qj3B9hYYNjZOhWym+RwhePw==} + engines: {node: '>=18.0.0'} - '@smithy/util-middleware@3.0.11': - resolution: {integrity: sha512-dWpyc1e1R6VoXrwLoLDd57U1z6CwNSdkM69Ie4+6uYh2GC7Vg51Qtan7ITzczuVpqezdDTKJGJB95fFvvjU/ow==} - engines: {node: '>=16.0.0'} + '@smithy/util-middleware@4.0.4': + resolution: {integrity: sha512-9MLKmkBmf4PRb0ONJikCbCwORACcil6gUWojwARCClT7RmLzF04hUR4WdRprIXal7XVyrddadYNfp2eF3nrvtQ==} + engines: {node: '>=18.0.0'} - '@smithy/util-retry@3.0.11': - resolution: {integrity: sha512-hJUC6W7A3DQgaee3Hp9ZFcOxVDZzmBIRBPlUAk8/fSOEl7pE/aX7Dci0JycNOnm9Mfr0KV2XjIlUOcGWXQUdVQ==} - engines: {node: '>=16.0.0'} + '@smithy/util-retry@4.0.6': + resolution: {integrity: sha512-+YekoF2CaSMv6zKrA6iI/N9yva3Gzn4L6n35Luydweu5MMPYpiGZlWqehPHDHyNbnyaYlz/WJyYAZnC+loBDZg==} + engines: {node: '>=18.0.0'} - '@smithy/util-stream@3.3.4': - resolution: {integrity: sha512-SGhGBG/KupieJvJSZp/rfHHka8BFgj56eek9px4pp7lZbOF+fRiVr4U7A3y3zJD8uGhxq32C5D96HxsTC9BckQ==} - engines: {node: '>=16.0.0'} + '@smithy/util-stream@4.2.3': + resolution: {integrity: sha512-cQn412DWHHFNKrQfbHY8vSFI3nTROY1aIKji9N0tpp8gUABRilr7wdf8fqBbSlXresobM+tQFNk6I+0LXK/YZg==} + engines: {node: '>=18.0.0'} - '@smithy/util-uri-escape@3.0.0': - resolution: {integrity: sha512-LqR7qYLgZTD7nWLBecUi4aqolw8Mhza9ArpNEQ881MJJIU2sE5iHCK6TdyqqzcDLy0OPe10IY4T8ctVdtynubg==} - engines: {node: '>=16.0.0'} + '@smithy/util-uri-escape@4.0.0': + resolution: {integrity: sha512-77yfbCbQMtgtTylO9itEAdpPXSog3ZxMe09AEhm0dU0NLTalV70ghDZFR+Nfi1C60jnJoh/Re4090/DuZh2Omg==} + engines: {node: '>=18.0.0'} '@smithy/util-utf8@2.3.0': resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==} engines: {node: '>=14.0.0'} - '@smithy/util-utf8@3.0.0': - resolution: {integrity: sha512-rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA==} - engines: {node: '>=16.0.0'} + '@smithy/util-utf8@4.0.0': + resolution: {integrity: sha512-b+zebfKCfRdgNJDknHCob3O7FpeYQN6ZG6YLExMcasDHsCXlsXCEuiPZeLnJLpwa5dvPetGlnGCiMHuLwGvFow==} + engines: {node: '>=18.0.0'} '@socket.io/component-emitter@3.1.2': resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} @@ -4904,6 +5297,9 @@ packages: '@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} @@ -4921,13 +5317,13 @@ packages: peerDependencies: acorn: ^8.9.0 - '@sveltejs/adapter-auto@6.0.1': - resolution: {integrity: sha512-mcWud3pYGPWM2Pphdj8G9Qiq24nZ8L4LB7coCUckUEy5Y7wOWGJ/enaZ4AtJTcSm5dNK1rIkBRoqt+ae4zlxcQ==} + '@sveltejs/adapter-auto@6.0.2': + resolution: {integrity: sha512-SEyhlW5dMcsAZBONGCKUlK3+Ywr+8I2OupJh7OJR0URqsGzvkcWKRkBXqWifWVJnehjCGVLaqD/94aZ3xpj1jQ==} peerDependencies: '@sveltejs/kit': ^2.0.0 - '@sveltejs/kit@2.22.2': - resolution: {integrity: sha512-2MvEpSYabUrsJAoq5qCOBGAlkICjfjunrnLcx3YAk2XV7TvAIhomlKsAgR4H/4uns5rAfYmj7Wet5KRtc8dPIg==} + '@sveltejs/kit@2.27.3': + resolution: {integrity: sha512-jiG3NGZ8RRpi+ncjVnX+oR7uWEgzy//3YLGcTU5mHtjGraeGyNDr7GJFHlk7z0vi8bMXpXIUkEXj6p70FJmHvw==} engines: {node: '>=18.13'} hasBin: true peerDependencies: @@ -4935,20 +5331,20 @@ packages: svelte: ^4.0.0 || ^5.0.0-next.0 vite: ^5.0.3 || ^6.0.0 || ^7.0.0-beta.0 - '@sveltejs/vite-plugin-svelte-inspector@4.0.1': - resolution: {integrity: sha512-J/Nmb2Q2y7mck2hyCX4ckVHcR5tu2J+MtBEQqpDrrgELZ2uvraQcK/ioCV61AqkdXFgriksOKIceDcQmqnGhVw==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22} + '@sveltejs/vite-plugin-svelte-inspector@5.0.0': + resolution: {integrity: sha512-iwQ8Z4ET6ZFSt/gC+tVfcsSBHwsqc6RumSaiLUkAurW3BCpJam65cmHw0oOlDMTO0u+PZi9hilBRYN+LZNHTUQ==} + engines: {node: ^20.19 || ^22.12 || >=24} peerDependencies: - '@sveltejs/vite-plugin-svelte': ^5.0.0 + '@sveltejs/vite-plugin-svelte': ^6.0.0-next.0 svelte: ^5.0.0 - vite: ^6.0.0 + vite: ^6.3.0 || ^7.0.0 - '@sveltejs/vite-plugin-svelte@5.1.0': - resolution: {integrity: sha512-wojIS/7GYnJDYIg1higWj2ROA6sSRWvcR1PO/bqEyFr/5UZah26c8Cz4u0NaqjPeVltzsVpt2Tm8d2io0V+4Tw==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22} + '@sveltejs/vite-plugin-svelte@6.1.0': + resolution: {integrity: sha512-+U6lz1wvGEG/BvQyL4z/flyNdQ9xDNv5vrh+vWBWTHaebqT0c9RNggpZTo/XSPoHsSCWBlYaTlRX8pZ9GATXCw==} + engines: {node: ^20.19 || ^22.12 || >=24} peerDependencies: svelte: ^5.0.0 - vite: ^6.0.0 + vite: ^6.3.0 || ^7.0.0 '@swc-node/core@1.13.3': resolution: {integrity: sha512-OGsvXIid2Go21kiNqeTIn79jcaX4l0G93X2rAnas4LFoDyA9wAwVK7xZdm+QsKoMn5Mus2yFLCc4OtX2dD/PWA==} @@ -5190,9 +5586,20 @@ packages: '@tsconfig/node16@1.0.4': resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + '@tufjs/canonical-json@2.0.0': + resolution: {integrity: sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@tufjs/models@3.0.1': + resolution: {integrity: sha512-UUYHISyhCU3ZgN8yaear3cGATHb3SMuKHsQ/nVbHXcmnBf+LzQ/cQfhNG+rfaSHgqGKNEm2cOCLVLELStUQ1JA==} + engines: {node: ^18.17.0 || >=20.5.0} + '@tweenjs/tween.js@25.0.0': resolution: {integrity: sha512-XKLA6syeBUaPzx4j3qwMqzzq+V4uo72BnlbOjmuljLrRqdsd3qnzvZZoxvMHZ23ndsRS4aufU6JOZYpCbU6T1A==} + '@tybys/wasm-util@0.10.0': + resolution: {integrity: sha512-VyyPYFlOMNylG45GoAe0xDoLwWuowvf92F9kySqzYh8vmYm7D2u4iUJKa1tOUpS70Ku13ASrOkS4ScXFsTaCNQ==} + '@tybys/wasm-util@0.9.0': resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} @@ -5394,11 +5801,11 @@ packages: '@types/estree@1.0.8': resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} - '@types/express-http-proxy@1.6.6': - resolution: {integrity: sha512-J8ZqHG76rq1UB716IZ3RCmUhg406pbWxsM3oFCFccl5xlWUPzoR4if6Og/cE4juK8emH0H9quZa5ltn6ZdmQJg==} + '@types/express-http-proxy@1.6.7': + resolution: {integrity: sha512-CEp9pbnwVI1RzN9PXc+KESMxwUW5r1O7tkWb5h7Wg/YAIf+KulD/zKev8fbbn+Ljt0Yvs8MXwV2W6Id+cKxe2Q==} - '@types/express-serve-static-core@5.0.6': - resolution: {integrity: sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==} + '@types/express-serve-static-core@5.0.7': + resolution: {integrity: sha512-R+33OsgWw7rOhD1emjU7dzCDHucJrgJXMA5PYCzJxVil0dsyx5iBEPHqpPfiKNJQb7lZ1vxwoLR4Z87bBUpeGQ==} '@types/express-session@1.18.2': resolution: {integrity: sha512-k+I0BxwVXsnEU2hV77cCobC08kIsn4y44C3gC0b46uxZVMaXA04lSPgRLR/bSL2w0t0ShJiG8o4jPzRG/nscFg==} @@ -5415,14 +5822,17 @@ packages: '@types/fs-extra@9.0.13': resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} + '@types/geojson-vt@3.2.5': + resolution: {integrity: sha512-qDO7wqtprzlpe8FfQ//ClPV9xiuoh2nkIgiouIptON9w5jvD/fA4szvP9GBlDVdJ5dldAl0kX/sy3URbWwLx0g==} + '@types/geojson@7946.0.16': resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==} '@types/glob@7.2.0': resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} - '@types/graceful-fs@4.1.9': - resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} + '@types/hast@3.0.4': + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} '@types/html@1.0.4': resolution: {integrity: sha512-Wb1ymSAftCLxhc3D6vS0Ike/0xg7W6c+DQxAkerU6pD7C8CMzTYwvrwnlcrTfsVO/nMelB9KOKIT7+N5lOeQUg==} @@ -5469,8 +5879,8 @@ packages: '@types/leaflet-gpx@1.3.7': resolution: {integrity: sha512-IDshIOLZ7dUUjRiCE3DuJcAGavgUCw0xQ93dc/3YvsA6jrFc+nx8eXr0tqZIf2SaWMgqiDj/n7N24WWNh/898g==} - '@types/leaflet@1.9.19': - resolution: {integrity: sha512-pB+n2daHcZPF2FDaWa+6B0a0mSDf4dPU35y5iTXsx7x/PzzshiX5atYiS1jlBn43X7XvM8AP+AB26lnSk0J4GA==} + '@types/leaflet@1.9.20': + resolution: {integrity: sha512-rooalPMlk61LCaLOvBF2VIf9M47HgMQqi5xQ9QRi7c8PkdIe0WrIi5IxXUXQjAdL0c+vcQ01mYWbthzmp9GHWw==} '@types/lodash-es@4.17.12': resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==} @@ -5478,15 +5888,18 @@ packages: '@types/lodash@4.17.16': resolution: {integrity: sha512-HX7Em5NYQAXKW+1T+FiuG27NGwzJfCX3s1GjOa7ujxZa52kjJLOr4FUxT+giF6Tgxv1e+/czV/iTtBw27WTU9g==} - '@types/luxon@3.4.2': - resolution: {integrity: sha512-TifLZlFudklWlMBfhubvgqTXRzLDI5pCbGa4P8a3wPyUQSW+1xQ5eDsreP9DWHX3tjq1ke96uYG/nwundroWcA==} + '@types/luxon@3.6.2': + resolution: {integrity: sha512-R/BdP7OxEMc44l2Ex5lSXHoIXTB2JLNa3y2QISIbr58U/YcsffyQrYW//hZSdrfxrjRZj3GcUoxMPGdO8gSYuw==} + + '@types/mapbox__point-geometry@0.1.4': + resolution: {integrity: sha512-mUWlSxAmYLfwnRBmgYV86tgYmMIICX4kza8YnE/eIlywGe2XoOxlpVnXWwir92xRLjwyarqwpu2EJKD2pk0IUA==} + + '@types/mapbox__vector-tile@1.3.4': + resolution: {integrity: sha512-bpd8dRn9pr6xKvuEBQup8pwQfD4VUyqO/2deGjfpe6AwC8YRlyEipvefyRJUSiCJTZuCb8Pl1ciVV5ekqJ96Bg==} '@types/mark.js@8.11.12': resolution: {integrity: sha512-244ZnaIBpz4c6xutliAnYVZp6xJlmC569jZqnR3ElO1Y01ooYASSVQEqpd2x0A2UfrgVMs5V9/9tUAdZaDMytQ==} - '@types/marked@4.3.2': - resolution: {integrity: sha512-a79Yc3TOk6dGdituy8hmTTJXjOkZ7zsFYV10L337ttq/rec8lRMDBpV7fL3uLx6TgbFCa5DU/h8FmIBQPSbU0w==} - '@types/mdast@4.0.4': resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} @@ -5508,8 +5921,8 @@ packages: '@types/multer@2.0.0': resolution: {integrity: sha512-C3Z9v9Evij2yST3RSBktxP9STm6OdMc5uR1xF1SGr98uv8dUlAL2hqwrZ3GVB3uyMyiegnscEK6PGtYvNrjTjw==} - '@types/node-forge@1.3.11': - resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} + '@types/node-forge@1.3.13': + resolution: {integrity: sha512-zePQJSW5QkwSHKRApqWCVKeKoSOt4xvEnLENZPjyvm9Ezdf/EyDeJM7jqLzOwjVICQQzvLZ63T55MKdJB5H6ww==} '@types/node@16.9.1': resolution: {integrity: sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==} @@ -5517,18 +5930,30 @@ packages: '@types/node@20.17.32': resolution: {integrity: sha512-zeMXFn8zQ+UkjK4ws0RiOC9EWByyW1CcVmLe+2rQocXRsGEDxUCwPEIVgpsGcLHS/P8JkT0oa3839BRABS0oPw==} + '@types/node@20.19.9': + resolution: {integrity: sha512-cuVNgarYWZqxRJDQHEB58GEONhOK79QVR/qYx4S7kcUObQvUwvFnYxJuuHUKm2aieN9X3yZB4LZsuYNU1Qphsw==} + '@types/node@22.15.21': resolution: {integrity: sha512-EV/37Td6c+MgKAbkcLG6vqZ2zEYHD7bvSrzqqs2RIhbA6w3x+Dqz8MZM3sP6kGTeLrdoOgKZe+Xja7tUB2DNkQ==} '@types/node@22.15.30': resolution: {integrity: sha512-6Q7lr06bEHdlfplU6YRbgG1SFBdlsfNC4/lX+SkhiTs0cpJkOElmWls8PxDFv4yY/xKb8Y6SO0OmSX4wgqTZbA==} - '@types/node@22.16.0': - resolution: {integrity: sha512-B2egV9wALML1JCpv3VQoQ+yesQKAmNMBIAY7OteVrikcOcAkWm+dGL6qpeCktPjAv6N1JLnhbNiqS35UpFyBsQ==} + '@types/node@22.17.0': + resolution: {integrity: sha512-bbAKTCqX5aNVryi7qXVMi+OkB3w/OyblodicMbvE38blyAz7GxXf6XYhklokijuPwwVg9sDLKRxt0ZHXQwZVfQ==} + + '@types/node@24.1.0': + resolution: {integrity: sha512-ut5FthK5moxFKH2T1CUOC6ctR67rQRvvHdFLCD2Ql6KXmMuCrjsSsRI9UsLCm9M18BMwClv4pn327UvB7eeO1w==} '@types/parse-json@4.0.2': resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} + '@types/pbf@3.0.5': + resolution: {integrity: sha512-j3pOPiEcWZ34R6a6mN07mUkM4o4Lwf6hPNt8eilOeZhTFbxFXmKhvXl9Y28jotFPaI1bpPDJsbCprUoNke6OrA==} + + '@types/postcss-import@14.0.3': + resolution: {integrity: sha512-raZhRVTf6Vw5+QbmQ7LOHSDML71A5rj4+EqDzAbrZPfxfoGzFxMHRCq16VlddGIZpHELw0BG4G0YE2ANkdZiIQ==} + '@types/qs@6.14.0': resolution: {integrity: sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==} @@ -5603,6 +6028,9 @@ packages: '@types/superagent@8.1.9': resolution: {integrity: sha512-pTVjI73witn+9ILmoJdajHGW2jkSaOzhiFYF1Rd3EQ94kymLqB9PjD9ISg7WaALC7+dCHT0FGe9T2LktLq/3GQ==} + '@types/supercluster@7.1.3': + resolution: {integrity: sha512-Z0pOY34GDFl3Q6hUFYf3HkTwKEE02e7QgtJppBt+beEAxnyOpJua+voGFvxINBHa06GwLFFym7gRPY2SiKIfIA==} + '@types/supertest@6.0.3': resolution: {integrity: sha512-8WzXq62EXFhJ7QsH3Ocb/iKQ/Ty9ZVWnVzoTKc9tyyFRRF3a74Tk2+TLFgaFFw364Ere+npzHKEJ6ga2LzIL7w==} @@ -5612,8 +6040,11 @@ packages: '@types/swagger-ui@5.21.1': resolution: {integrity: sha512-DUmUH59eeOtvAqcWwBduH2ws0cc5i95KHsXCS4FsOfbUq/clW8TN+HqRBj7q5p9MSsSNK43RziIGItNbrAGLxg==} - '@types/tabulator-tables@6.2.6': - resolution: {integrity: sha512-A+2VrqDluI6hNw5dQl1Z7b8pjQfAE62+3Kj0cFfenWzj0T0ewMicPrpPINHL7ASqz9u9FTDn1Mz1Ige2tF4Wlw==} + '@types/tabulator-tables@6.2.9': + resolution: {integrity: sha512-u4AlO6z54njaeeLFSlwuqpKSCdUko0O0x47UolLNmwA8AhamSl9x7wziN+mo6Q0ca4g/V0FuhqIO9yXvaBh69A==} + + '@types/through2@2.0.41': + resolution: {integrity: sha512-ryQ0tidWkb1O1JuYvWKyMLYEtOWDqF5mHerJzKz/gQpoAaJq2l/dsMPBF0B5BNVT34rbARYJ5/tsZwLfUi2kwQ==} '@types/tmp@0.2.6': resolution: {integrity: sha512-chhaNf2oKHlRkDGt+tiKE2Z5aJ6qalm7Z9rlLdBwmOiAAf09YQvvoLXjWK4HWPF1xU/fqvMgfNfpVoBscA/tKA==} @@ -5630,6 +6061,12 @@ packages: '@types/unist@2.0.11': resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + + '@types/uuid@9.0.8': + resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} + '@types/whatwg-mimetype@3.0.2': resolution: {integrity: sha512-c2AKvDT8ToxLIOUlN51gTiHXflsfIFisS4pO7pDPoKouJCESkhZnEy623gwP9laCy5lnLDAw1vAzu2vM2YLOrA==} @@ -5651,73 +6088,230 @@ packages: '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - '@typescript-eslint/eslint-plugin@8.35.1': - resolution: {integrity: sha512-9XNTlo7P7RJxbVeICaIIIEipqxLKguyh+3UbXuT2XQuFp6d8VOeDEGuz5IiX0dgZo8CiI6aOFLg4e8cF71SFVg==} + '@typescript-eslint/eslint-plugin@8.38.0': + resolution: {integrity: sha512-CPoznzpuAnIOl4nhj4tRr4gIPj5AfKgkiJmGQDaq+fQnRJTYlcBjbX3wbciGmpoPf8DREufuPRe1tNMZnGdanA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.35.1 + '@typescript-eslint/parser': ^8.38.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/parser@8.35.1': - resolution: {integrity: sha512-3MyiDfrfLeK06bi/g9DqJxP5pV74LNv4rFTyvGDmT3x2p1yp1lOd+qYZfiRPIOf/oON+WRZR5wxxuF85qOar+w==} + '@typescript-eslint/eslint-plugin@8.39.0': + resolution: {integrity: sha512-bhEz6OZeUR+O/6yx9Jk6ohX6H9JSFTaiY0v9/PuKT3oGK0rn0jNplLmyFUGV+a9gfYnVNwGDwS/UkLIuXNb2Rw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.39.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/parser@8.38.0': + resolution: {integrity: sha512-Zhy8HCvBUEfBECzIl1PKqF4p11+d0aUJS1GeUiuqK9WmOug8YCmC4h4bjyBvMyAMI9sbRczmrYL5lKg/YMbrcQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/project-service@8.35.1': - resolution: {integrity: sha512-VYxn/5LOpVxADAuP3NrnxxHYfzVtQzLKeldIhDhzC8UHaiQvYlXvKuVho1qLduFbJjjy5U5bkGwa3rUGUb1Q6Q==} + '@typescript-eslint/parser@8.39.0': + resolution: {integrity: sha512-g3WpVQHngx0aLXn6kfIYCZxM6rRJlWzEkVpqEFLT3SgEDsp9cpCbxxgwnE504q4H+ruSDh/VGS6nqZIDynP+vg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/project-service@8.38.0': + resolution: {integrity: sha512-dbK7Jvqcb8c9QfH01YB6pORpqX1mn5gDZc9n63Ak/+jD67oWXn3Gs0M6vddAN+eDXBCS5EmNWzbSxsn9SzFWWg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/scope-manager@8.35.1': - resolution: {integrity: sha512-s/Bpd4i7ht2934nG+UoSPlYXd08KYz3bmjLEb7Ye1UVob0d1ENiT3lY8bsCmik4RqfSbPw9xJJHbugpPpP5JUg==} + '@typescript-eslint/project-service@8.39.0': + resolution: {integrity: sha512-CTzJqaSq30V/Z2Og9jogzZt8lJRR5TKlAdXmWgdu4hgcC9Kww5flQ+xFvMxIBWVNdxJO7OifgdOK4PokMIWPew==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/scope-manager@8.38.0': + resolution: {integrity: sha512-WJw3AVlFFcdT9Ri1xs/lg8LwDqgekWXWhH3iAF+1ZM+QPd7oxQ6jvtW/JPwzAScxitILUIFs0/AnQ/UWHzbATQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.35.1': - resolution: {integrity: sha512-K5/U9VmT9dTHoNowWZpz+/TObS3xqC5h0xAIjXPw+MNcKV9qg6eSatEnmeAwkjHijhACH0/N7bkhKvbt1+DXWQ==} + '@typescript-eslint/scope-manager@8.39.0': + resolution: {integrity: sha512-8QOzff9UKxOh6npZQ/4FQu4mjdOCGSdO3p44ww0hk8Vu+IGbg0tB/H1LcTARRDzGCC8pDGbh2rissBuuoPgH8A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/tsconfig-utils@8.38.0': + resolution: {integrity: sha512-Lum9RtSE3EroKk/bYns+sPOodqb2Fv50XOl/gMviMKNvanETUuUcC9ObRbzrJ4VSd2JalPqgSAavwrPiPvnAiQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/type-utils@8.35.1': - resolution: {integrity: sha512-HOrUBlfVRz5W2LIKpXzZoy6VTZzMu2n8q9C2V/cFngIC5U1nStJgv0tMV4sZPzdf4wQm9/ToWUFPMN9Vq9VJQQ==} + '@typescript-eslint/tsconfig-utils@8.39.0': + resolution: {integrity: sha512-Fd3/QjmFV2sKmvv3Mrj8r6N8CryYiCS8Wdb/6/rgOXAWGcFuc+VkQuG28uk/4kVNVZBQuuDHEDUpo/pQ32zsIQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/type-utils@8.38.0': + resolution: {integrity: sha512-c7jAvGEZVf0ao2z+nnz8BUaHZD09Agbh+DY7qvBQqLiz8uJzRgVPj5YvOh8I8uEiH8oIUGIfHzMwUcGVco/SJg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/types@8.35.1': - resolution: {integrity: sha512-q/O04vVnKHfrrhNAscndAn1tuQhIkwqnaW+eu5waD5IPts2eX1dgJxgqcPx5BX109/qAz7IG6VrEPTOYKCNfRQ==} + '@typescript-eslint/type-utils@8.39.0': + resolution: {integrity: sha512-6B3z0c1DXVT2vYA9+z9axjtc09rqKUPRmijD5m9iv8iQpHBRYRMBcgxSiKTZKm6FwWw1/cI4v6em35OsKCiN5Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/types@8.38.0': + resolution: {integrity: sha512-wzkUfX3plUqij4YwWaJyqhiPE5UCRVlFpKn1oCRn2O1bJ592XxWJj8ROQ3JD5MYXLORW84063z3tZTb/cs4Tyw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.35.1': - resolution: {integrity: sha512-Vvpuvj4tBxIka7cPs6Y1uvM7gJgdF5Uu9F+mBJBPY4MhvjrjWGK4H0lVgLJd/8PWZ23FTqsaJaLEkBCFUk8Y9g==} + '@typescript-eslint/types@8.39.0': + resolution: {integrity: sha512-ArDdaOllnCj3yn/lzKn9s0pBQYmmyme/v1HbGIGB0GB/knFI3fWMHloC+oYTJW46tVbYnGKTMDK4ah1sC2v0Kg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@8.38.0': + resolution: {integrity: sha512-fooELKcAKzxux6fA6pxOflpNS0jc+nOQEEOipXFNjSlBS6fqrJOVY/whSn70SScHrcJ2LDsxWrneFoWYSVfqhQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/utils@8.35.1': - resolution: {integrity: sha512-lhnwatFmOFcazAsUm3ZnZFpXSxiwoa1Lj50HphnDe1Et01NF4+hrdXONSUHIcbVu2eFb1bAf+5yjXkGVkXBKAQ==} + '@typescript-eslint/typescript-estree@8.39.0': + resolution: {integrity: sha512-ndWdiflRMvfIgQRpckQQLiB5qAKQ7w++V4LlCHwp62eym1HLB/kw7D9f2e8ytONls/jt89TEasgvb+VwnRprsw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/utils@8.38.0': + resolution: {integrity: sha512-hHcMA86Hgt+ijJlrD8fX0j1j8w4C92zue/8LOPAFioIno+W0+L7KqE8QZKCcPGc/92Vs9x36w/4MPTJhqXdyvg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/visitor-keys@8.35.1': - resolution: {integrity: sha512-VRwixir4zBWCSTP/ljEo091lbpypz57PoeAQ9imjG+vbeof9LplljsL1mos4ccG6H9IjfrVGM359RozUnuFhpw==} + '@typescript-eslint/utils@8.39.0': + resolution: {integrity: sha512-4GVSvNA0Vx1Ktwvf4sFE+exxJ3QGUorQG1/A5mRfRNZtkBT2xrA/BCO2H0eALx/PnvCS6/vmYwRdDA41EoffkQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/visitor-keys@8.38.0': + resolution: {integrity: sha512-pWrTcoFNWuwHlA9CvlfSsGWs14JxfN1TH25zM5L7o0pRLhsoZkDnTsXfQRJBEWJoV5DL0jf+Z+sxiud+K0mq1g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@uploadcare/file-uploader@1.12.0': - resolution: {integrity: sha512-yymQlZPJ5Rx8sK8FnsOMoeI9HgzLR9jSnD8nwIRyDeXKyHJkdHZg22jMgy30ibCXBWbWptaG4I1BG77/o27ODg==} + '@typescript-eslint/visitor-keys@8.39.0': + resolution: {integrity: sha512-ldgiJ+VAhQCfIjeOgu8Kj5nSxds0ktPOSO9p4+0VDH2R2pLvQraaM5Oen2d7NxzMCm+Sn/vJT+mv2H5u6b/3fA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@ungap/structured-clone@1.3.0': + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + + '@unrs/resolver-binding-android-arm-eabi@1.11.1': + resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==} + cpu: [arm] + os: [android] + + '@unrs/resolver-binding-android-arm64@1.11.1': + resolution: {integrity: sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==} + cpu: [arm64] + os: [android] + + '@unrs/resolver-binding-darwin-arm64@1.11.1': + resolution: {integrity: sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==} + cpu: [arm64] + os: [darwin] + + '@unrs/resolver-binding-darwin-x64@1.11.1': + resolution: {integrity: sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==} + cpu: [x64] + os: [darwin] + + '@unrs/resolver-binding-freebsd-x64@1.11.1': + resolution: {integrity: sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==} + cpu: [x64] + os: [freebsd] + + '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': + resolution: {integrity: sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==} + cpu: [arm] + os: [linux] + + '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': + resolution: {integrity: sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==} + cpu: [arm] + os: [linux] + + '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': + resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==} + cpu: [arm64] + os: [linux] + + '@unrs/resolver-binding-linux-arm64-musl@1.11.1': + resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==} + cpu: [arm64] + os: [linux] + + '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': + resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==} + cpu: [ppc64] + os: [linux] + + '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': + resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==} + cpu: [riscv64] + os: [linux] + + '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': + resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==} + cpu: [riscv64] + os: [linux] + + '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': + resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==} + cpu: [s390x] + os: [linux] + + '@unrs/resolver-binding-linux-x64-gnu@1.11.1': + resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==} + cpu: [x64] + os: [linux] + + '@unrs/resolver-binding-linux-x64-musl@1.11.1': + resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==} + cpu: [x64] + os: [linux] + + '@unrs/resolver-binding-wasm32-wasi@1.11.1': + resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': + resolution: {integrity: sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==} + cpu: [arm64] + os: [win32] + + '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': + resolution: {integrity: sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==} + cpu: [ia32] + os: [win32] + + '@unrs/resolver-binding-win32-x64-msvc@1.11.1': + resolution: {integrity: sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==} + cpu: [x64] + os: [win32] + + '@uploadcare/file-uploader@1.16.3-alpha.0': + resolution: {integrity: sha512-QTOJ62NmJ8+G1LX72Y7+Z116YRiRs7EfSEdXNSZPQFhlpooDe1Djdw+UmJv7Kz91aXHhz2DS1gandxz7iqWK0Q==} '@uploadcare/image-shrink@6.14.3': resolution: {integrity: sha512-GCZOewwaGdU/FXgK8m1Ct6FHF7CH3LUGcBvsUxPrablkV2Dyl99XdMtyomaZgpsyfRDlVUbvkntDXEB3IZo92A==} - '@uploadcare/upload-client@6.14.1': - resolution: {integrity: sha512-GvXLq6GGyXHjq7tebfv3IqHFpMzuOSuNPOhwCcNPquUbwoAlTEFPLjB2Ir/EZUuCtTWowluLjo4LPDQwvHbqyA==} + '@uploadcare/upload-client@6.14.3': + resolution: {integrity: sha512-uZDXb2IuFchpNQdHDxDowKgGPd+9UOy0PIykWEPedMbbBYxh7/UUQ+G53E4KhKe7cV7BV4zoFxUrNx+Ij0lyPw==} engines: {node: '>=16'} '@vitest/browser@3.2.4': @@ -5812,27 +6406,27 @@ packages: '@vue/shared@3.5.14': resolution: {integrity: sha512-oXTwNxVfc9EtP1zzXAlSlgARLXNC84frFYkS0HHz0h3E4WZSP9sywqjqzGCP9Y34M8ipNmd380pVgmMuwELDyQ==} - '@wdio/config@9.15.0': - resolution: {integrity: sha512-IQzSZx2Y0KdAVWHSdcBLkuUjCmYtOnc1oDY7Psi814wDR7dEPVOuKgMo8ZZ0P1yhioMzqvy5tBemYSzj7CrFTA==} + '@wdio/config@9.18.0': + resolution: {integrity: sha512-fN+Z7SkKjb0u3UUMSxMN4d+CCZQKZhm/tx3eX7Rv+3T78LtpOjlesBYQ7Ax3tQ3tp8hgEo+CoOXU0jHEYubFrg==} engines: {node: '>=18.20.0'} - '@wdio/logger@9.15.0': - resolution: {integrity: sha512-3IkaissyOsUQwg8IinkVm1svsvRMGJpFyaSiEhQ0oQXD7mnWrNVFSU9kmeFvbKAtoc4j60FRjU6XqtH94xRceg==} + '@wdio/logger@9.18.0': + resolution: {integrity: sha512-HdzDrRs+ywAqbXGKqe1i/bLtCv47plz4TvsHFH3j729OooT5VH38ctFn5aLXgECmiAKDkmH/A6kOq2Zh5DIxww==} engines: {node: '>=18.20.0'} - '@wdio/protocols@9.15.0': - resolution: {integrity: sha512-5O7bwiG7t8nmSVOx888YryO/9AQgQ7p/Ecd9rS13UyDQL169HmVKXP0vvJKGH3X+oeE92U1wVrwrIl4Xx3BQ6Q==} + '@wdio/protocols@9.16.2': + resolution: {integrity: sha512-h3k97/lzmyw5MowqceAuY3HX/wGJojXHkiPXA3WlhGPCaa2h4+GovV2nJtRvknCKsE7UHA1xB5SWeI8MzloBew==} - '@wdio/repl@9.4.4': - resolution: {integrity: sha512-kchPRhoG/pCn4KhHGiL/ocNhdpR8OkD2e6sANlSUZ4TGBVi86YSIEjc2yXUwLacHknC/EnQk/SFnqd4MsNjGGg==} + '@wdio/repl@9.16.2': + resolution: {integrity: sha512-FLTF0VL6+o5BSTCO7yLSXocm3kUnu31zYwzdsz4n9s5YWt83sCtzGZlZpt7TaTzb3jVUfxuHNQDTb8UMkCu0lQ==} engines: {node: '>=18.20.0'} - '@wdio/types@9.15.0': - resolution: {integrity: sha512-hR0Dm9TsrjtgOLWOjUMYTOB1hWIlnDzFgZt7XGOzI9Ig8Qa+TDfZSFaZukGxqLIZS/eGhxpnunSHaTAXwJIxYA==} + '@wdio/types@9.16.2': + resolution: {integrity: sha512-P86FvM/4XQGpJKwlC2RKF3I21TglPvPOozJGG9HoL0Jmt6jRF20ggO/nRTxU0XiWkRdqESUTmfA87bdCO4GRkQ==} engines: {node: '>=18.20.0'} - '@wdio/utils@9.15.0': - resolution: {integrity: sha512-XuT1PE1nh4wwJfQW6IN4UT6+iv0+Yf4zhgMh5et04OX6tfrIXkWdx2SDimghDtRukp9i85DvIGWjdPEoQFQdaA==} + '@wdio/utils@9.18.0': + resolution: {integrity: sha512-M+QH05FUw25aFXZfjb+V16ydKoURgV61zeZrMjQdW2aAiks3F5iiI9pgqYT5kr1kHZcMy8gawGqQQ+RVfKYscQ==} engines: {node: '>=18.20.0'} '@webassemblyjs/ast@1.14.1': @@ -5900,8 +6494,8 @@ packages: resolution: {integrity: sha512-/HcYgtUSiJiot/XWGLOlGxPYUG65+/31V8oqk17vZLW1xlCoR4PampyePljOxY2n8/3jz9+tIFzICsyGujJZoA==} engines: {node: '>=18.12.0'} - '@zip.js/zip.js@2.7.62': - resolution: {integrity: sha512-OaLvZ8j4gCkLn048ypkZu29KX30r8/OfFF2w4Jo5WXFr+J04J+lzJ5TKZBVgFXhlvSkqNFQdfnY1Q8TMTCyBVA==} + '@zip.js/zip.js@2.7.68': + resolution: {integrity: sha512-HkabH6ThvDh1btwLbJiLFXzUW4fNN0leoYiopCg03OWg394j8NSb/Mro4i5J0S9ZLTwbBUpFrx86TzDXQRlT4Q==} engines: {bun: '>=0.7.0', deno: '>=1.0.0', node: '>=16.5.0'} '@zkochan/js-yaml@0.0.7': @@ -5938,6 +6532,12 @@ packages: acorn-globals@6.0.0: resolution: {integrity: sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==} + acorn-import-phases@1.0.4: + resolution: {integrity: sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==} + engines: {node: '>=10.13.0'} + peerDependencies: + acorn: ^8.14.0 + acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -5978,6 +6578,10 @@ packages: resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} engines: {node: '>= 14'} + agent-base@7.1.4: + resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} + engines: {node: '>= 14'} + agentkeepalive@4.6.0: resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} engines: {node: '>= 8.0.0'} @@ -6095,6 +6699,10 @@ packages: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} + ansis@4.1.0: + resolution: {integrity: sha512-BGcItUBWSMRgOCe+SVZJ+S7yTRG0eGt9cXAHev72yuGcY23hnLA7Bky5L/xLyPINoSN95geovfBkqoTlNZYa7w==} + engines: {node: '>=14'} + any-base@1.1.0: resolution: {integrity: sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==} @@ -6226,8 +6834,8 @@ packages: resolution: {integrity: sha512-zJAaP9zxTcvTHRlejau3ZOY4V7SRpiByf3/dxx2uyKxxor19tpmpV2QRsTKikckwhaPmr2dVpxxMr7jOCYVp5g==} engines: {node: '>=6.0.0'} - axios@1.10.0: - resolution: {integrity: sha512-/1xYAC4MP/HEG+3duIhFr4ZQXR4sQXOIe+o6sdqzeykGLx6Upp/1p8MHqhINOvGeP7xyNHe7tsiJByc4SSVUxw==} + axios@1.11.0: + resolution: {integrity: sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==} axobject-query@4.1.0: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} @@ -6236,24 +6844,24 @@ packages: b4a@1.6.7: resolution: {integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==} - babel-jest@29.7.0: - resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + babel-jest@30.0.5: + resolution: {integrity: sha512-mRijnKimhGDMsizTvBTWotwNpzrkHr+VvZUQBof2AufXKB8NXrL1W69TG20EvOz7aevx6FTJIaBuBkYxS8zolg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: - '@babel/core': ^7.8.0 + '@babel/core': ^7.11.0 babel-plugin-const-enum@1.2.0: resolution: {integrity: sha512-o1m/6iyyFnp9MRsK1dHF3bneqyf3AlM2q3A/YbgQr2pCat6B6XJVDv2TXqzfY2RYUi4mak6WAksSBPlyYGx9dg==} peerDependencies: '@babel/core': ^7.0.0-0 - babel-plugin-istanbul@6.1.1: - resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} - engines: {node: '>=8'} + babel-plugin-istanbul@7.0.0: + resolution: {integrity: sha512-C5OzENSx/A+gt7t4VH1I2XsflxyPUmXRFPKBxt33xncdOmq7oROVM3bZv9Ysjjkv8OJYDMa+tKuKMvqU/H3xdw==} + engines: {node: '>=12'} - babel-plugin-jest-hoist@29.6.3: - resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + babel-plugin-jest-hoist@30.0.1: + resolution: {integrity: sha512-zTPME3pI50NsFW8ZBaVIOeAxzEY7XHlmWeXXu9srI+9kNfzCUTy8MFan46xOGZY8NZThMqq+e3qZUKsvXbasnQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} babel-plugin-macros@3.1.0: resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} @@ -6274,6 +6882,11 @@ packages: peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + babel-plugin-transform-hook-names@1.0.2: + resolution: {integrity: sha512-5gafyjyyBTTdX/tQQ0hRgu4AhNHG/hqWi0ZZmg2xvs2FgRkJXzDNKBZCyoYqgFkovfDrgM8OoKg8karoUvWeCw==} + peerDependencies: + '@babel/core': ^7.12.10 + babel-plugin-transform-typescript-metadata@0.3.2: resolution: {integrity: sha512-mWEvCQTgXQf48yDqgN7CH50waTyYBeP2Lpqx4nNWab9sxEpdXVeKgfj1qYI2/TgUPQtNFZ85i3PemRtnXVYYJg==} peerDependencies: @@ -6288,11 +6901,14 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - babel-preset-jest@29.6.3: - resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + babel-preset-jest@30.0.1: + resolution: {integrity: sha512-+YHejD5iTWI46cZmcc/YtX4gaKBtdqCHCVfuVinizVpbmyjO3zYmeuyFdfA8duRqQZfgCAMlsfmkVbJ+e2MAJw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: - '@babel/core': ^7.0.0 + '@babel/core': ^7.11.0 + + bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -6303,8 +6919,11 @@ packages: bare-events@2.5.4: resolution: {integrity: sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==} - bare-fs@4.1.5: - resolution: {integrity: sha512-1zccWBMypln0jEE05LzZt+V/8y8AQsQQqxtklqaIyg5nu6OAYFhZxPXinJTSG+kU5qyNmeLgcn9AW7eHiCHVLA==} + bare-events@2.6.0: + resolution: {integrity: sha512-EKZ5BTXYExaNqi3I3f9RtEsaI/xBSGjE0XZCZilPzFAV/goswFHuPd9jEZlPIZ/iNZJwDSao9qRiScySz7MbQg==} + + bare-fs@4.1.6: + resolution: {integrity: sha512-25RsLF33BqooOEFNdMcEhMpJy8EoR88zSMrnOQOaM3USnOK2VmaJ1uaQEwPA6AQjrv1lXChScosN6CzbwbO9OQ==} engines: {bare: '>=1.16.0'} peerDependencies: bare-buffer: '*' @@ -6434,11 +7053,6 @@ packages: browser-stdout@1.3.1: resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} - browserslist@4.24.4: - resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - browserslist@4.25.1: resolution: {integrity: sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -6515,8 +7129,8 @@ packages: resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} engines: {node: '>=8'} - cacheable@1.10.1: - resolution: {integrity: sha512-Fa2BZY0CS9F0PFc/6aVA6tgpOdw+hmv9dkZOlHXII5v5Hw+meJBIWDcPrG9q/dXxGcNbym5t77fzmawrBQfTmQ==} + cacheable@1.10.3: + resolution: {integrity: sha512-M6p10iJ/VT0wT7TLIGUnm958oVrU2cUK8pQAVU21Zu7h8rbk/PeRtRWrvHJBql97Bhzk3g1N6+2VKC+Rjxna9Q==} call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} @@ -6552,11 +7166,8 @@ packages: caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - caniuse-lite@1.0.30001715: - resolution: {integrity: sha512-7ptkFGMm2OAOgvZpwgA4yjQ5SQbrNVGdRjzH0pBdy1Fasvcr+KAeECmbCAECzTuDuoX0FCY8KzUxjf9+9kfZEw==} - - caniuse-lite@1.0.30001726: - resolution: {integrity: sha512-VQAUIUzBiZ/UnlM28fSp2CRF3ivUn1BWEvxMcVTNwpw91Py1pGbPIyIKtd+tzct9C3ouceCVdGAXxZOpZAsgdw==} + caniuse-lite@1.0.30001727: + resolution: {integrity: sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==} canvas-color-tracker@1.3.2: resolution: {integrity: sha512-ryQkDX26yJ3CXzb3hxUVNlg1NKE4REc5crLBq661Nxzr8TNd236SaEf2ffYLXyI5tSABSeguHLqcVq4vf9L3Zg==} @@ -6565,6 +7176,9 @@ packages: canvas-roundrect-polyfill@0.0.1: resolution: {integrity: sha512-yWq+R3U3jE+coOeEb3a3GgE2j/0MMiDKM/QpLb6h9ihf5fGY9UXtvK9o4vNqjWXoZz7/3EaSVU3IX53TvFFUOw==} + ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + chai@5.2.0: resolution: {integrity: sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==} engines: {node: '>=12'} @@ -6585,10 +7199,23 @@ packages: resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + chalk@5.5.0: + resolution: {integrity: sha512-1tm8DTaJhPBG3bIkVeZt1iZM9GfSX2lzOeDVZH9R9ffRHpmHvxZ/QhgQH/aDTkswQVt+YHdXAdS/In/30OjCbg==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + char-regex@1.0.2: resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} engines: {node: '>=10'} + character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + + character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + + character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + chardet@2.1.0: resolution: {integrity: sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==} @@ -6606,9 +7233,9 @@ packages: resolution: {integrity: sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw==} engines: {node: '>= 6'} - cheerio@1.1.0: - resolution: {integrity: sha512-+0hMx9eYhJvWbgpKV9hN7jg0JcwydpopZE4hgi+KvQtByZXPp04NiCWU0LzcAbP63abZckIHkTQaXVF52mX3xQ==} - engines: {node: '>=18.17'} + cheerio@1.1.2: + resolution: {integrity: sha512-IkxPpb5rS/d1IiLbHMgfPuS0FgiWTtFIm/Nj+2woXDLTZ7fOT2eqzgYbdMlLweqlHbsZjxEChoVK+7iph7jyQg==} + engines: {node: '>=20.18.1'} chevrotain-allstar@0.3.1: resolution: {integrity: sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==} @@ -6630,9 +7257,6 @@ packages: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} - chownr@1.1.4: - resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} - chownr@2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} @@ -6645,23 +7269,23 @@ packages: resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} engines: {node: '>=6.0'} - ci-info@3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + ci-info@4.3.0: + resolution: {integrity: sha512-l+2bNRMiQgcfILUi33labAZYIWlH1kWDp+ecNo5iisRKrbm0xcRyCww71/YU0Fkw0mAFpz9bJayXPjey6vkmaQ==} engines: {node: '>=8'} - cjs-module-lexer@1.4.3: - resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} + cjs-module-lexer@2.1.0: + resolution: {integrity: sha512-UX0OwmYRYQQetfrLEZeewIFFI+wSTofC+pMBLNuH3RUuu/xzG1oz84UCEDOSoQlN3fZ4+AzmV50ZYvGqkMh9yA==} - ckeditor5-collaboration@45.2.1: - resolution: {integrity: sha512-JPIX9Ws0wyOGFCCyxL32kYjqT4bBj/MdUlByYUiNKiW7lFw/cDJ2Vvpq5Hh/s2/uZ7aoIq1lcncF6xe2amwNuA==} + ckeditor5-collaboration@46.0.0: + resolution: {integrity: sha512-Cncgw3Rip76vpWwuJiES5UGaRFlOXdRiGac8jUzrnhFeV2pZA+sztD2yuOqthrwNa69X2zV/OQ20tKQvTjgn1g==} - ckeditor5-premium-features@45.2.1: - resolution: {integrity: sha512-OB5soWIYSleQs8aYPRZgrpAdVR/pZJ85hGLvS3BbXYqdPaX/H0cjenNTHb970esMPyqnGAKEv0V4pqIhb53pzA==} + ckeditor5-premium-features@46.0.0: + resolution: {integrity: sha512-K/08QmUlTQwtmfmQMpexIZWcxKRpWJJNgXRZO+9g9pdCFYhY6MbEJ6SdeWoPZZ2v6B2FJrvw1tQFkJ5TYn+vnA==} peerDependencies: - ckeditor5: 45.2.1 + ckeditor5: 46.0.0 - ckeditor5@45.2.1: - resolution: {integrity: sha512-fPFysHo71yQ2TUYsD+VpnjH9kjboHSKGCIPf4AhJQ+eQwopzsnFkNgdvYcGPfAP11bHTRLG5Ol0wWISFa1mwCQ==} + ckeditor5@46.0.0: + resolution: {integrity: sha512-xOvTcZqeVCsEM6hp9kHtTAAS6Elie/WZ/RA3FYZjR2251CI66vNOb0GWU+c0ufr2Ha/FuXRdgV4nSpIv3JLvaA==} clean-stack@2.2.0: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} @@ -6766,14 +7390,22 @@ packages: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} + color-convert@3.1.0: + resolution: {integrity: sha512-TVoqAq8ZDIpK5lsQY874DDnu65CSsc9vzq0wLpNQ6UMBq81GSZocVazPiBbYGzngzBOIRahpkTzCLVe2at4MfA==} + engines: {node: '>=14.6'} + color-name@1.1.3: resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - color-parse@1.4.2: - resolution: {integrity: sha512-RI7s49/8yqDj3fECFZjUI1Yi0z/Gq1py43oNJivAIIDSyJiOZLfYCRQEgn8HEVAj++PcRe8AnL2XF0fRJ3BTnA==} + color-name@2.0.0: + resolution: {integrity: sha512-SbtvAMWvASO5TE2QP07jHBMXKafgdZz8Vrsrn96fiL+O92/FN/PLARzUW5sKt013fjAprK2d2iCn2hk2Xb5oow==} + engines: {node: '>=12.20'} + + color-parse@2.0.2: + resolution: {integrity: sha512-eCtOz5w5ttWIUcaKLiktF+DxZO1R9KLNY/xhbV6CkhM7sR3GhVghmt6X6yOnzeaM24po+Z9/S1apbXMwA3Iepw==} color-support@1.1.3: resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} @@ -6800,6 +7432,9 @@ packages: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} + comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + commander@11.1.0: resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} engines: {node: '>=16'} @@ -6864,8 +7499,8 @@ packages: resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} engines: {node: '>= 0.6'} - compression@1.8.0: - resolution: {integrity: sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA==} + compression@1.8.1: + resolution: {integrity: sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==} engines: {node: '>= 0.8.0'} concat-map@0.0.1: @@ -6928,10 +7563,6 @@ packages: resolution: {integrity: sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==} engines: {node: '>=6.6.0'} - cookie@0.6.0: - resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} - engines: {node: '>= 0.6'} - cookie@0.7.1: resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} engines: {node: '>= 0.6'} @@ -6940,6 +7571,10 @@ 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==} @@ -7003,6 +7638,11 @@ packages: cross-dirname@0.1.0: resolution: {integrity: sha512-+R08/oI0nl3vfPcqftZRpytksBXDzOUveBq/NBVx0sUp1axwzPQrKinNx5yd5sxPu8j1wIy8AfnVQ+5eFdha6Q==} + cross-env@10.0.0: + resolution: {integrity: sha512-aU8qlEK/nHYtVuN4p7UQgAwVljzMg8hB4YK5ThRqD2l/ziSnryncPNn7bMLt5cFYsKVKBh8HqLqyCoTupEUu7Q==} + engines: {node: '>=20'} + hasBin: true + cross-env@7.0.3: resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} @@ -7066,6 +7706,9 @@ packages: css-select@5.1.0: resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + css-select@5.2.2: + resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==} + css-shorthand-properties@1.1.2: resolution: {integrity: sha512-C2AugXIpRGQTxaCW0N7n5jD/p5irUmCrwl03TrnMFBHDbdq44CFWR2zO7rK9xPN4Eo3pUxC4vQzQgbIpzrD1PQ==} @@ -7092,6 +7735,10 @@ packages: resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} engines: {node: '>= 6'} + css-what@6.2.2: + resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==} + engines: {node: '>= 6'} + cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} @@ -7115,6 +7762,12 @@ packages: peerDependencies: postcss: ^8.4.31 + cssnano-preset-default@7.0.8: + resolution: {integrity: sha512-d+3R2qwrUV3g4LEMOjnndognKirBZISylDZAF/TPeCWVjEwlXS2e4eN4ICkoobRe7pD3H6lltinKVyS1AJhdjQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + cssnano-preset-lite@4.0.3: resolution: {integrity: sha512-/ckjMDvs0D7RrG2L/tVqEbfj7DmcRRVXShOBxVCJIYZZ7qnN55Ug05bBD+s6nAmx64IFpmJup8gysXwQ4zFCvg==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} @@ -7139,6 +7792,12 @@ packages: peerDependencies: postcss: ^8.4.31 + cssnano-utils@5.0.1: + resolution: {integrity: sha512-ZIP71eQgG9JwjVZsTPSqhc6GHgEr53uJ7tK5///VfyWj6Xp2DBmixWHqJgPno+PqATzn48pL42ww9x5SSGmhZg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + cssnano@5.1.15: resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==} engines: {node: ^10 || ^12 || >=14.0} @@ -7157,6 +7816,12 @@ packages: peerDependencies: postcss: ^8.4.31 + cssnano@7.1.0: + resolution: {integrity: sha512-Pu3rlKkd0ZtlCUzBrKL1Z4YmhKppjC1H9jo7u1o4qaKqyhvixFgu5qLyNIAOjSTg9DjVPtUqdROq2EfpVMEe+w==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + csso@4.2.0: resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} engines: {node: '>=8.0.0'} @@ -7447,6 +8112,9 @@ packages: decimal.js@10.5.0: resolution: {integrity: sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==} + decode-named-character-reference@1.2.0: + resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==} + decode-uri-component@0.2.2: resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} engines: {node: '>=0.10'} @@ -7463,8 +8131,8 @@ packages: babel-plugin-macros: optional: true - dedent@1.5.3: - resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} + dedent@1.6.0: + resolution: {integrity: sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA==} peerDependencies: babel-plugin-macros: ^3.1.0 peerDependenciesMeta: @@ -7604,13 +8272,12 @@ packages: devalue@5.1.1: resolution: {integrity: sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw==} + devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + dezalgo@1.0.4: resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==} - diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - diff@3.5.0: resolution: {integrity: sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==} engines: {node: '>=0.3.1'} @@ -7619,8 +8286,8 @@ packages: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} - diff@5.2.0: - resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} + diff@7.0.0: + resolution: {integrity: sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==} engines: {node: '>=0.3.1'} diff@8.0.2: @@ -7684,8 +8351,8 @@ packages: resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} engines: {node: '>=12'} - dotenv@17.0.1: - resolution: {integrity: sha512-GLjkduuAL7IMJg/ZnOPm9AnWKJ82mSE2tzXLaJ/6hD6DhwGfZaXG77oB8qbReyiczNxnbxQKyh0OE5mXq0bAHA==} + dotenv@17.2.1: + resolution: {integrity: sha512-kQhDYKZecqnM0fCnzI5eIv5L4cAe/iRI+HqMbO/hbRdTAeXDG+M9FjipUxNfbARuEg4iHIbhnhs78BCHNbSxEQ==} engines: {node: '>=12'} dotignore@0.1.2: @@ -7706,6 +8373,9 @@ packages: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} + earcut@3.0.2: + resolution: {integrity: sha512-X7hshQbLyMJ/3RPhyObLARM2sNxxmRALLKx1+NVFFnQ9gKzmCrxm9+uLIAdBcvc8FNLpctqlQ2V6AE92Ol9UDQ==} + eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} @@ -7713,8 +8383,8 @@ packages: resolution: {integrity: sha512-sB7vSrDnFa4ezWQk9nZ/n0FdpdUuC6R1EOrlU3DL+bovcNFK28rqu2emmAUjujYEJTWIgQGqgVVWUZXMnc8iWg==} engines: {node: '>=14.0.0'} - edgedriver@6.1.1: - resolution: {integrity: sha512-/dM/PoBf22Xg3yypMWkmRQrBKEnSyNaZ7wHGCT9+qqT14izwtFT+QvdR89rjNkMfXwW+bSFoqOfbcvM+2Cyc7w==} + edgedriver@6.1.2: + resolution: {integrity: sha512-UvFqd/IR81iPyWMcxXbUNi+xKWR7JjfoHjfuwjqsj9UHQKn80RpQmS0jf+U25IPi+gKVPcpOSKm0XkqgGMq4zQ==} engines: {node: '>=18.0.0'} hasBin: true @@ -7768,11 +8438,8 @@ packages: electron-squirrel-startup@1.0.1: resolution: {integrity: sha512-sTfFIHGku+7PsHLJ7v0dRcZNkALrV+YEozINTW8X1nM//e5O3L+rfYuvSW00lmGHnYmUjARZulD8F2V8ISI9RA==} - electron-to-chromium@1.5.140: - resolution: {integrity: sha512-o82Rj+ONp4Ip7Cl1r7lrqx/pXhbp/lh9DpKcMNscFJdh8ebyRofnc7Sh01B4jx403RI0oqTBvlZ7OBIZLMr2+Q==} - - electron-to-chromium@1.5.179: - resolution: {integrity: sha512-UWKi/EbBopgfFsc5k61wFpV7WrnnSlSzW/e2XcBmS6qKYTivZlLtoll5/rdqRTxGglGHkmkW0j0pFNJG10EUIQ==} + electron-to-chromium@1.5.190: + resolution: {integrity: sha512-k4McmnB2091YIsdCgkS0fMVMPOJgxl93ltFzaryXqwip1AaxeDqKCGLxkXODDA5Ab/D+tV5EL5+aTx76RvLRxw==} electron-window-state@5.0.3: resolution: {integrity: sha512-1mNTwCfkolXl3kMf50yW3vE2lZj0y92P/HYWFBrb+v2S/pCka5mdwN3cagKm458A7NjndSwijynXgcLWRodsVg==} @@ -7782,8 +8449,8 @@ packages: resolution: {integrity: sha512-bO3y10YikuUwUuDUQRM4KfwNkKhnpVO7IPdbsrejwN9/AABJzzTQ4GeHwyzNSrVO+tEH3/Np255a3sVZpZDjvg==} engines: {node: '>=8.0.0'} - electron@37.2.0: - resolution: {integrity: sha512-dE6+qeg6SBUVd5d8CD2+GH82kh+gF1v40+hs+U+UOno681NMSGmBtgqwldQRpbvtnQDD7V2M9Cpfr3+Abw7aBg==} + electron@37.2.6: + resolution: {integrity: sha512-Ns6xyxE+hIK5UlujtRlw7w4e2Ju/ImCWXf1Q/PoOhc0N3/6SN6YW7+ujCarsHbxWnolbW+1RlkHtdklUJpjbPA==} engines: {node: '>= 12.20.55'} hasBin: true @@ -7824,8 +8491,8 @@ packages: resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} engines: {node: '>= 0.8'} - encoding-sniffer@0.2.0: - resolution: {integrity: sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==} + encoding-sniffer@0.2.1: + resolution: {integrity: sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==} encoding@0.1.13: resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} @@ -7833,6 +8500,9 @@ packages: end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + end-of-stream@1.4.5: + resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} + engine.io-client@6.5.4: resolution: {integrity: sha512-GeZeeRjpD2qf49cZQ0Wvh/8NJNfeXkXXcoGh+F77oEAgo9gUHwT1fCRxSNU+YEEaysOJTnsFHmM5oAcPy4ntvQ==} @@ -7840,10 +8510,6 @@ packages: resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==} engines: {node: '>=10.0.0'} - enhanced-resolve@5.18.1: - resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} - engines: {node: '>=10.13.0'} - enhanced-resolve@5.18.2: resolution: {integrity: sha512-6Jw4sE1maoRJo3q8MsSIn2onJFbLTOjY9hlx4DZXmOKvLRd1Ok2kXmAGXaafL2+ijsJZ1ClYbl/pmqr9+k4iUQ==} engines: {node: '>=10.13.0'} @@ -7911,8 +8577,8 @@ packages: resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} engines: {node: '>= 0.4'} - es-toolkit@1.32.0: - resolution: {integrity: sha512-ZfSfHP1l6ubgW/B/FRtqb9bYdMvI6jizbOSfbwwJNcOQ1QE6TFsC3jpQkZ900uUPSR3t3SU5Ds7UWKnYz+uP8Q==} + es-toolkit@1.39.5: + resolution: {integrity: sha512-z9V0qU4lx1TBXDNFWfAASWk6RNU6c6+TJBKE+FLIg8u0XJ6Yw58Hi0yX8ftEouj6p1QARRlXLFfHbIli93BdQQ==} es6-error@4.1.1: resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} @@ -7939,6 +8605,11 @@ packages: engines: {node: '>=18'} hasBin: true + esbuild@0.25.8: + resolution: {integrity: sha512-vVC0USHGtMi8+R4Kz8rt6JhEWLxsv9Rnu/lGYbPR8u47B+DCBksq9JarW0zOO7bs37hyOK1l2/oqtbciutL5+Q==} + engines: {node: '>=18'} + hasBin: true + escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -7971,37 +8642,37 @@ packages: engines: {node: '>=6.0'} hasBin: true - eslint-config-ckeditor5@11.0.1: - resolution: {integrity: sha512-sFi8wpMP3i2rPySA2mzmO5y1hTbNH1EWKZxQJ9q8O2hAPFzjpZ3HJzohlnYP1ZlPA49XYXwViwMwa5JhhmlI9A==} + eslint-config-ckeditor5@12.1.0: + resolution: {integrity: sha512-lbmgyvrIEIm7MhzlFkBkegeMPhpiJzJCHw5ZNu8zhxOxVisSron0+4+enjy2CSEXmsolWk4tl4vpB5dSwID7Fg==} peerDependencies: eslint: ^9.0.0 typescript: ^5.0.0 - eslint-config-prettier@10.1.5: - resolution: {integrity: sha512-zc1UmCpNltmVY34vuLRV61r1K27sWuX39E+uyUnY8xS2Bex88VV9cugG+UZbRSRGtGyFboj+D8JODyme1plMpw==} + eslint-config-prettier@10.1.8: + resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==} hasBin: true peerDependencies: eslint: '>=7.0.0' - eslint-linter-browserify@9.30.1: - resolution: {integrity: sha512-kAa6rPKyabTgyaGScFtMw8UGui7a/26F/OVx+5mdONMu/San8y5dgFCeBks5NrzxK9QYu2C8NBtyqwCTkVqeHw==} + eslint-linter-browserify@9.32.0: + resolution: {integrity: sha512-YmgNbyrXscxdVwQN22YG0mpxbW/QZolDnmjHq52DpEB9JfemjUJmjnavoHG1Rt7OL3maSPGr406P5dQDCnHCtA==} - eslint-plugin-ckeditor5-rules@11.0.1: - resolution: {integrity: sha512-IY8rnMZGG4K2GSV+ZIp6ykIhrxIiYbO9yWnCOx+vUJw23lQYXd8H6/X56M6IsTHc+XIgdEn0mVqDX+bmoz2adw==} + eslint-plugin-ckeditor5-rules@12.1.0: + resolution: {integrity: sha512-tu8xYJkQ9CZzS+cDsBvnaKdADJVNzGNl/4a8i7A538y/YifyAiSMCSQOeefx5Ej27bBL+Wo9WlgeuLmjiyTP+A==} eslint-plugin-mocha@11.1.0: resolution: {integrity: sha512-rKntVWRsQFPbf8OkSgVNRVRrcVAPaGTyEgWCEyXaPDJkTl0v5/lwu1vTk5sWiUJU8l2sxwvGUZzSNrEKdVMeQw==} peerDependencies: eslint: '>=9.0.0' - eslint-plugin-playwright@2.2.0: - resolution: {integrity: sha512-qSQpAw7RcSzE3zPp8FMGkthaCWovHZ/BsXtpmnGax9vQLIovlh1bsZHEa2+j2lv9DWhnyeLM/qZmp7ffQZfQvg==} + eslint-plugin-playwright@2.2.2: + resolution: {integrity: sha512-j0jKpndIPOXRRP9uMkwb9l/nSmModOU3452nrFdgFJoEv/435J1onk8+aITzjDW8DfypxgmVaDMdmVIa6F7I0w==} engines: {node: '>=16.6.0'} peerDependencies: eslint: '>=8.40.0' - eslint-plugin-svelte@3.10.1: - resolution: {integrity: sha512-csCh2x0ge/DugXC7dCANh46Igi7bjMZEy6rHZCdS13AoGVJSu7a90Kru3I8oMYLGEemPRE1hQXadxvRPVMAAXQ==} + eslint-plugin-svelte@3.11.0: + resolution: {integrity: sha512-KliWlkieHyEa65aQIkRwUFfHzT5Cn4u3BQQsu3KlkJOs7c1u7ryn84EWaOjEzilbKgttT4OfBURA8Uc4JBSQIw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.1 || ^9.0.0 @@ -8026,8 +8697,8 @@ packages: resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.30.1: - resolution: {integrity: sha512-zmxXPNMOXmwm9E0yQLi5uqXHs7uq2UIiqEKo3Gq+3fwo1XrJ+hijAZImyF7hclW3E6oHz43Yk3RP8at6OTKflQ==} + eslint@9.32.0: + resolution: {integrity: sha512-LSehfdpgMeWcTZkWZVIJl+tkZ2nuSkyyB9C27MZqFWXuph7DvaowgcTvKqxvpLW1JZIk8PN7hFY3Rj9LQ7m7lg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -8106,11 +8777,15 @@ packages: resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} engines: {node: '>=6'} + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + exif-parser@0.1.12: resolution: {integrity: sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw==} - exit@0.1.2: - resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} + exit-x@0.2.2: + resolution: {integrity: sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ==} engines: {node: '>= 0.8.0'} expand-template@2.0.3: @@ -8121,9 +8796,9 @@ packages: resolution: {integrity: sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw==} engines: {node: '>=12.0.0'} - expect@29.7.0: - resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + expect@30.0.5: + resolution: {integrity: sha512-P0te2pt+hHI5qLJkIR+iMvS+lYUZml8rKKsohVHAGY+uClp9XVbdyYNJOIjSRpHVp8s8YqxJCiHUkSYZGr8rtQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} exponential-backoff@3.1.2: resolution: {integrity: sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA==} @@ -8132,20 +8807,20 @@ packages: resolution: {integrity: sha512-4aRQRqDQU7qNPV5av0/hLcyc0guB9UP71nCYrQEYml7YphTo8tmWf3nDZWdTJMMjFikyz9xKXaURor7Chygdwg==} engines: {node: '>=6.0.0'} - express-openid-connect@2.18.1: - resolution: {integrity: sha512-trHqgwXxWF0n/XrDsRzsvQtnBNbU03iCNXbKR/sHwBqXlvCgup341bW7B8t6nr3L/CMoDpK+9gsTnx3qLCqdjQ==} + express-openid-connect@2.19.2: + resolution: {integrity: sha512-hRRRBS+mH9hrhVcbg7+APe+dIsYB4BDLILv7QfTmM1jSDyaU9NYpTxqWourAnlud/E4Gf4Q0qCVmSJguh4BTaA==} engines: {node: ^10.19.0 || >=12.0.0 < 13 || >=13.7.0 < 14 || >= 14.2.0} peerDependencies: express: '>= 4.17.0' - express-rate-limit@7.5.1: - resolution: {integrity: sha512-7iN8iPMDzOMHPUYllBEsQdWVB6fPDMPqwjBaFrgr4Jgr/+okjvzAy+UHlYYL/Vs0OsOrMkwS6PJDkFlJwoxUnw==} + express-rate-limit@8.0.1: + resolution: {integrity: sha512-aZVCnybn7TVmxO4BtlmnvX+nuz8qHW124KKJ8dumsBsmv5ZLxE0pYu7S2nwyRBGHHCAzdmnGyrc5U/rksSPO7Q==} engines: {node: '>= 16'} peerDependencies: express: '>= 4.11' - express-session@1.18.1: - resolution: {integrity: sha512-a5mtTqEaZvBCL9A9aqkrtfz+3SMDhOVUnjafjo+s7A9Txkq+SVX2DLvSp1Zrv4uCXa3lMSK3viWnh9Gg07PBUA==} + express-session@1.18.2: + resolution: {integrity: sha512-SZjssGQC7TzTs9rpPDuUrR23GNZ9+2+IkA/+IJWmvQilTr5OSliEHGF+D9scbIpdC6yGtTI0/VhaHoVes2AN/A==} engines: {node: '>= 0.8.0'} express@4.21.2: @@ -8171,6 +8846,9 @@ packages: resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} engines: {node: '>=0.10.0'} + extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + extract-zip@2.0.1: resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} engines: {node: '>= 10.17.0'} @@ -8205,8 +8883,8 @@ packages: resolution: {integrity: sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==} hasBin: true - fast-xml-parser@4.5.3: - resolution: {integrity: sha512-RKihhV+SHsIUGXObeVy9AXiBbFwkVk7Syp8XgwN5U3JV416+Gwp/GO9i0JYKmikykgz/UHRrrV4ROuZEo/T0ig==} + fast-xml-parser@5.2.5: + resolution: {integrity: sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ==} hasBin: true fastest-levenshtein@1.0.16: @@ -8216,6 +8894,9 @@ packages: fastq@1.19.1: resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} + fault@2.0.1: + resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} + faye-websocket@0.11.4: resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} engines: {node: '>=0.8.0'} @@ -8253,8 +8934,8 @@ packages: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} - file-entry-cache@10.1.1: - resolution: {integrity: sha512-zcmsHjg2B2zjuBgjdnB+9q0+cWcgWfykIcsDkWDB4GTPtl1eXUA+gTI6sO0u01AqK3cliHryTU55/b2Ow1hfZg==} + file-entry-cache@10.1.3: + resolution: {integrity: sha512-D+w75Ub8T55yor7fPgN06rkCAUbAYw2vpxJmmjv/GDAcvCnv9g7IvHhIZoxzRZThrXPFI2maeY24pPbtyYU7Lg==} file-entry-cache@8.0.0: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} @@ -8326,8 +9007,8 @@ packages: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} - flat-cache@6.1.11: - resolution: {integrity: sha512-zfOAns94mp7bHG/vCn9Ru2eDCmIxVQ5dELUHKjHfDEOJmHNzE+uGa6208kfkgmtym4a0FFjEuFksCXFacbVhSg==} + flat-cache@6.1.12: + resolution: {integrity: sha512-U+HqqpZPPXP5d24bWuRzjGqVqUcw64k4nZAbruniDwdRg0H10tvN7H6ku1tjhA4rg5B9GS3siEvwO2qjJJ6f8Q==} flat@5.0.2: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} @@ -8368,13 +9049,13 @@ packages: resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} engines: {node: '>=14'} - form-data@3.0.3: - resolution: {integrity: sha512-q5YBMeWy6E2Un0nMGWMgI65MAKtaylxfNJGJxpGh45YDciZB4epbWpaAfImil6CPAPTYB4sh0URQNDRIZG5F2w==} + form-data@4.0.4: + resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==} engines: {node: '>= 6'} - form-data@4.0.2: - resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==} - engines: {node: '>= 6'} + format@0.2.2: + resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} + engines: {node: '>=0.4.x'} formdata-polyfill@4.0.10: resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} @@ -8414,6 +9095,10 @@ packages: resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==} engines: {node: '>=14.14'} + fs-extra@11.3.1: + resolution: {integrity: sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==} + engines: {node: '>=14.14'} + fs-extra@7.0.1: resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} engines: {node: '>=6 <7 || >=8'} @@ -8509,6 +9194,9 @@ packages: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} + geojson-vt@4.0.2: + resolution: {integrity: sha512-AV9ROqlNqoZEIJGfm1ncNjEXfkz2hdFlZf0qkVfmkwdKa8vj7H16YUOT81rJw1rdFhyEDlN2Tds91p/glzbl5A==} + get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} @@ -8556,6 +9244,10 @@ packages: resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} engines: {node: '>=8'} + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + get-symbol-description@1.1.0: resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} engines: {node: '>= 0.4'} @@ -8566,8 +9258,8 @@ packages: get-tsconfig@4.10.1: resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==} - get-uri@6.0.4: - resolution: {integrity: sha512-E1b1lFFLvLgak2whF2xDBcOy6NLVGZBqqjJjsIhvopKfWWEi64pLVTWWehV8KlLerZkfNTA95sTe2OdJKm1OzQ==} + get-uri@6.0.5: + resolution: {integrity: sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==} engines: {node: '>= 14'} gifwrap@0.10.1: @@ -8576,6 +9268,12 @@ packages: github-from-package@0.0.0: resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + github-slugger@2.0.0: + resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} + + gl-matrix@3.4.3: + resolution: {integrity: sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==} + glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -8591,6 +9289,11 @@ packages: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true + glob@11.0.3: + resolution: {integrity: sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==} + engines: {node: 20 || >=22} + hasBin: true + glob@7.1.3: resolution: {integrity: sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==} deprecated: Glob versions prior to v9 are no longer supported @@ -8624,6 +9327,10 @@ packages: resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} engines: {node: '>=6'} + global-prefix@4.0.0: + resolution: {integrity: sha512-w0Uf9Y9/nyHinEk5vMJKRie+wa4kR5hmDbEhGGds/kG1PwGLLHKRoNMeJOyCQjjBkANlnScqgzcFwGHgmgLkVA==} + engines: {node: '>=16'} + globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} @@ -8742,6 +9449,48 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} + hast-util-embedded@3.0.0: + resolution: {integrity: sha512-naH8sld4Pe2ep03qqULEtvYr7EjrLK2QHY8KJR6RJkTUjPGObe1vnx585uzem2hGra+s1q08DZZpfgDVYRbaXA==} + + hast-util-from-dom@5.0.1: + resolution: {integrity: sha512-N+LqofjR2zuzTjCPzyDUdSshy4Ma6li7p/c3pA78uTwzFgENbgbUrm2ugwsOdcjI1muO+o6Dgzp9p8WHtn/39Q==} + + hast-util-has-property@3.0.0: + resolution: {integrity: sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA==} + + hast-util-is-body-ok-link@3.0.1: + resolution: {integrity: sha512-0qpnzOBLztXHbHQenVB8uNuxTnm/QBFUOmdOSsEn7GnBtyY07+ENTWVFBAnXd/zEgd9/SUG3lRY7hSIBWRgGpQ==} + + hast-util-is-element@3.0.0: + resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} + + hast-util-minify-whitespace@1.0.1: + resolution: {integrity: sha512-L96fPOVpnclQE0xzdWb/D12VT5FabA7SnZOUMtL1DbXmYiHJMXZvFkIZfiMmTCNJHUeO2K9UYNXoVyfz+QHuOw==} + + hast-util-parse-selector@4.0.0: + resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} + + hast-util-phrasing@3.0.1: + resolution: {integrity: sha512-6h60VfI3uBQUxHqTyMymMZnEbNl1XmEGtOxxKYL7stY2o601COo62AWAYBQR9lZbYXYSBoxag8UpPRXK+9fqSQ==} + + hast-util-to-dom@4.0.1: + resolution: {integrity: sha512-z1VE7sZ8uFzS2baF3LEflX1IPw2gSzrdo3QFEsyoi23MkCVY3FoE9x6nLgOgjwJu8VNWgo+07iaxtONhDzKrUQ==} + + hast-util-to-html@9.0.5: + resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} + + hast-util-to-mdast@10.1.2: + resolution: {integrity: sha512-FiCRI7NmOvM4y+f5w32jPRzcxDIz+PUqDwEqn1A+1q2cdp3B8Gx7aVrXORdOKjMNDQsD1ogOr896+0jJHW1EFQ==} + + hast-util-to-text@4.0.2: + resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} + + hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + + hastscript@9.0.1: + resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==} + he@1.2.0: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true @@ -8769,8 +9518,8 @@ packages: hoist-non-react-statics@2.5.5: resolution: {integrity: sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==} - hookified@1.10.0: - resolution: {integrity: sha512-dJw0492Iddsj56U1JsSTm9E/0B/29a1AuoSLRAte8vQg/kaTGF3IgjEWT8c8yG4cC10+HisE1x5QAwR0Xwc+DA==} + hookified@1.11.0: + resolution: {integrity: sha512-aDdIN3GyU5I6wextPplYdfmWCo+aLmjjVbntmX6HLD5RCi/xKsivYEBhnRD+d9224zFf008ZpLMPlWF0ZodYZw==} hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} @@ -8779,6 +9528,10 @@ packages: resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} engines: {node: ^16.14.0 || >=18.0.0} + hosted-git-info@8.1.0: + resolution: {integrity: sha512-Rw/B2DNQaPBICNXEm8balFz9a6WpZrkCGpcWFpy7nCj+NyhSdqXipmfvtmWt9xGfp0wZnBxB+iVpLmQMYt47Tw==} + engines: {node: ^18.17.0 || >=20.5.0} + hpack.js@2.1.6: resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} @@ -8801,6 +9554,9 @@ packages: resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} engines: {node: '>=8'} + html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + html2plaintext@2.1.4: resolution: {integrity: sha512-kigGyxhh85E5SgKd3ilyKy9VTUgMTsEn3ex4cZcXBX47cACAWHgmOPbSVd05msM6RpOi5o+2nWrK5OhAQQWEsg==} @@ -8808,8 +9564,8 @@ packages: resolution: {integrity: sha512-lw/7YsdKiP3kk5PnR1INY17iJuzdAtJewxr14ozKJWbbR97znovZ0mh+WEMZ8rjc3lgTK+ID/htTjuyGKB52Kw==} hasBin: true - htmlfy@0.6.7: - resolution: {integrity: sha512-r8hRd+oIM10lufovN+zr3VKPTYEIvIwqXGucidh2XQufmiw6sbUXFUFjWlfjo3AnefIDTyzykVzQ8IUVuT1peQ==} + htmlfy@0.8.1: + resolution: {integrity: sha512-xWROBw9+MEGwxpotll0h672KCaLrKKiCYzsyN8ZgL9cQbVumFnyvsk2JqiB9ELAV1GLj1GG/jxZUjV9OZZi/yQ==} htmlparser2@10.0.0: resolution: {integrity: sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==} @@ -8890,6 +9646,10 @@ packages: 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'} + humanize-ms@1.2.1: resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} @@ -8903,8 +9663,8 @@ packages: i18next-http-backend@3.0.2: resolution: {integrity: sha512-PdlvPnvIp4E1sYi46Ik4tBYh/v/NbYfFFgTjkwFl0is8A18s7/bx9aXqsrOax9WUbeNS6mD2oix7Z0yGGf6m5g==} - i18next@25.3.0: - resolution: {integrity: sha512-ZSQIiNGfqSG6yoLHaCvrkPp16UejHI8PCDxFYaNG/1qxtmqNmqEg4JlWKlxkrUmrin2sEjsy+Mjy1TRozBhOgw==} + i18next@25.3.2: + resolution: {integrity: sha512-JSnbZDxRVbphc5jiptxr3o2zocy5dEqpVm9qCGdJwRNO+9saUJS0/u4LnM/13C23fUEWxAylPqKU/NpMV/IjqA==} peerDependencies: typescript: ^5 peerDependenciesMeta: @@ -8932,6 +9692,10 @@ packages: ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + ignore-walk@7.0.0: + resolution: {integrity: sha512-T4gbf83A4NH95zvhVYZc+qWocBBGlpzUXLPGurJggw/WIOwicfXJChLDP/iBZnN5WqROSu5Bm3hhle4z8a8YGQ==} + engines: {node: ^18.17.0 || >=20.5.0} + ignore@5.3.2: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} @@ -9019,6 +9783,10 @@ packages: resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} engines: {node: '>=10'} + ini@4.1.3: + resolution: {integrity: sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + ini@5.0.0: resolution: {integrity: sha512-+N0ngpO3e7cRUWOJAS7qw0IZIVc6XPrW4MlFBdD066F2L4k1L6ker3hLqSq7iXxU5tgS4WGkIUElWn5vogAEnw==} engines: {node: ^18.17.0 || >=20.5.0} @@ -9045,6 +9813,10 @@ packages: invariant@2.2.4: resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + ip-address@10.0.1: + resolution: {integrity: sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==} + engines: {node: '>= 12'} + ip-address@9.0.5: resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} engines: {node: '>= 12'} @@ -9272,8 +10044,8 @@ packages: resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} engines: {node: '>= 0.4'} - is-svg@6.0.0: - resolution: {integrity: sha512-dGyV+26JXUyoWF8Su3LfFS9tcmrR/uYYSyABE66iv4zJnS77y8T3PZB0nWRKOJJiU1lelGMGuYMylqrFu8D7yQ==} + is-svg@6.1.0: + resolution: {integrity: sha512-i7YPdvYuSCYcaLQrKwt8cvKTlwHcdA6Hp8N9SO3Q5jIzo8x6kH3N47W0BvPP7NdxVBmIHx7X9DK36czYYW7lHg==} engines: {node: '>=20'} is-symbol@1.1.1: @@ -9342,10 +10114,6 @@ packages: resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} engines: {node: '>=8'} - istanbul-lib-instrument@5.2.1: - resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} - engines: {node: '>=8'} - istanbul-lib-instrument@6.0.3: resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} engines: {node: '>=10'} @@ -9354,10 +10122,6 @@ packages: resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} engines: {node: '>=10'} - istanbul-lib-source-maps@4.0.1: - resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} - engines: {node: '>=10'} - istanbul-lib-source-maps@5.0.6: resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==} engines: {node: '>=10'} @@ -9369,6 +10133,10 @@ packages: jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + jackspeak@4.1.1: + resolution: {integrity: sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==} + engines: {node: 20 || >=22} + jake@10.9.2: resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==} engines: {node: '>=10'} @@ -9377,61 +10145,60 @@ packages: javascript-stringify@1.6.0: resolution: {integrity: sha512-fnjC0up+0SjEJtgmmG+teeel68kutkvzfctO/KxE3qJlbunkJYAshgH3boU++gSBHP8z5/r0ts0qRIrHf0RTQQ==} - jest-circus@29.7.0: - resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-circus@30.0.5: + resolution: {integrity: sha512-h/sjXEs4GS+NFFfqBDYT7y5Msfxh04EwWLhQi0F8kuWpe+J/7tICSlswU8qvBqumR3kFgHbfu7vU6qruWWBPug==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-config@29.7.0: - resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-config@30.0.5: + resolution: {integrity: sha512-aIVh+JNOOpzUgzUnPn5FLtyVnqc3TQHVMupYtyeURSb//iLColiMIR8TxCIDKyx9ZgjKnXGucuW68hCxgbrwmA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: '@types/node': '*' + esbuild-register: '>=3.4.0' ts-node: '>=9.0.0' peerDependenciesMeta: '@types/node': optional: true + esbuild-register: + optional: true ts-node: optional: true - jest-diff@29.7.0: - resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-diff@30.0.5: + resolution: {integrity: sha512-1UIqE9PoEKaHcIKvq2vbibrCog4Y8G0zmOxgQUVEiTqwR5hJVMCoDsN1vFvI5JvwD37hjueZ1C4l2FyGnfpE0A==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-docblock@29.7.0: - resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-docblock@30.0.1: + resolution: {integrity: sha512-/vF78qn3DYphAaIc3jy4gA7XSAz167n9Bm/wn/1XhTLW7tTBIzXtCJpb/vcmc73NIIeeohCbdL94JasyXUZsGA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-each@29.7.0: - resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-each@30.0.5: + resolution: {integrity: sha512-dKjRsx1uZ96TVyejD3/aAWcNKy6ajMaN531CwWIsrazIqIoXI9TnnpPlkrEYku/8rkS3dh2rbH+kMOyiEIv0xQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-environment-node@29.7.0: - resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-environment-node@30.0.5: + resolution: {integrity: sha512-ppYizXdLMSvciGsRsMEnv/5EFpvOdXBaXRBzFUDPWrsfmog4kYrOGWXarLllz6AXan6ZAA/kYokgDWuos1IKDA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-get-type@29.6.3: - resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-haste-map@30.0.5: + resolution: {integrity: sha512-dkmlWNlsTSR0nH3nRfW5BKbqHefLZv0/6LCccG0xFCTWcJu8TuEwG+5Cm75iBfjVoockmO6J35o5gxtFSn5xeg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-haste-map@29.7.0: - resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-leak-detector@30.0.5: + resolution: {integrity: sha512-3Uxr5uP8jmHMcsOtYMRB/zf1gXN3yUIc+iPorhNETG54gErFIiUhLvyY/OggYpSMOEYqsmRxmuU4ZOoX5jpRFg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-leak-detector@29.7.0: - resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-matcher-utils@30.0.5: + resolution: {integrity: sha512-uQgGWt7GOrRLP1P7IwNWwK1WAQbq+m//ZY0yXygyfWp0rJlksMSLQAA4wYQC3b6wl3zfnchyTx+k3HZ5aPtCbQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-matcher-utils@29.7.0: - resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-message-util@30.0.5: + resolution: {integrity: sha512-NAiDOhsK3V7RU0Aa/HnrQo+E4JlbarbmI3q6Pi4KcxicdtjV82gcIUrejOtczChtVQR4kddu1E1EJlW6EN9IyA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-message-util@29.7.0: - resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-mock@29.7.0: - resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-mock@30.0.5: + resolution: {integrity: sha512-Od7TyasAAQX/6S+QCbN6vZoWOMwlTtzzGuxJku1GhGanAjz9y+QsQkpScDmETvdc9aSXyJ/Op4rhpMYBWW91wQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-pnp-resolver@1.2.3: resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} @@ -9442,37 +10209,37 @@ packages: jest-resolve: optional: true - jest-regex-util@29.6.3: - resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-regex-util@30.0.1: + resolution: {integrity: sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-resolve@29.7.0: - resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-resolve@30.0.5: + resolution: {integrity: sha512-d+DjBQ1tIhdz91B79mywH5yYu76bZuE96sSbxj8MkjWVx5WNdt1deEFRONVL4UkKLSrAbMkdhb24XN691yDRHg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-runner@29.7.0: - resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-runner@30.0.5: + resolution: {integrity: sha512-JcCOucZmgp+YuGgLAXHNy7ualBx4wYSgJVWrYMRBnb79j9PD0Jxh0EHvR5Cx/r0Ce+ZBC4hCdz2AzFFLl9hCiw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-runtime@29.7.0: - resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-runtime@30.0.5: + resolution: {integrity: sha512-7oySNDkqpe4xpX5PPiJTe5vEa+Ak/NnNz2bGYZrA1ftG3RL3EFlHaUkA1Cjx+R8IhK0Vg43RML5mJedGTPNz3A==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-snapshot@29.7.0: - resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-snapshot@30.0.5: + resolution: {integrity: sha512-T00dWU/Ek3LqTp4+DcW6PraVxjk28WY5Ua/s+3zUKSERZSNyxTqhDXCWKG5p2HAJ+crVQ3WJ2P9YVHpj1tkW+g==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-util@29.7.0: - resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-util@30.0.5: + resolution: {integrity: sha512-pvyPWssDZR0FlfMxCBoc0tvM8iUEskaRFALUtGQYzVEAqisAztmy+R8LnU14KT4XA0H/a5HMVTXat1jLne010g==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-validate@29.7.0: - resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-validate@30.0.5: + resolution: {integrity: sha512-ouTm6VFHaS2boyl+k4u+Qip4TSH7Uld5tyD8psQ8abGgt2uYYB8VwVfAHWHjHc0NWmGGbwO5h0sCPOGHHevefw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-watcher@29.7.0: - resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-watcher@30.0.5: + resolution: {integrity: sha512-z9slj/0vOwBDBjN3L4z4ZYaA+pG56d6p3kTUhFRYGvXbXMWhXmb/FIxREZCD06DYUwDKKnj2T80+Pb71CQ0KEg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-worker@26.6.2: resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} @@ -9482,9 +10249,9 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} - jest-worker@29.7.0: - resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-worker@30.0.5: + resolution: {integrity: sha512-ojRXsWzEP16NdUuBw/4H/zkZdHOa7MMYCk4E430l+8fELeLg/mqmMlRhjL7UNZvQrDmnovWZV4DxX03fZF48fQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jimp@1.6.0: resolution: {integrity: sha512-YcwCHw1kiqEeI5xRpDlPPBGL2EOpBKLwO4yIBJcXWHPj5PnA5urGq0jbyhM5KoNpypQ6VboSoxc9D8HyfvngSg==} @@ -9494,8 +10261,8 @@ packages: resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} hasBin: true - jiti@2.4.2: - resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} + jiti@2.5.1: + resolution: {integrity: sha512-twQoecYPiVA5K/h6SxtORw/Bs3ar+mLUtoPSc7iMXzQzK8d7eJ/R09wmTwAjiamETn1cXYPGfNnu7DMoHgu12w==} hasBin: true jju@1.4.0: @@ -9602,6 +10369,10 @@ packages: json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + json-parse-even-better-errors@4.0.0: + resolution: {integrity: sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==} + engines: {node: ^18.17.0 || >=20.5.0} + json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} @@ -9611,6 +10382,9 @@ packages: json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + json-stringify-pretty-compact@4.0.0: + resolution: {integrity: sha512-3CNZ2DnrpByG9Nqj6Xo8vqbjT4F6N+tb4Gb28ESAZjYZ5yqvmc56J+/kuIwkaAMOyblTQhUW7PxMkUb8Q36N3Q==} + json-stringify-safe@5.0.1: resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} @@ -9632,6 +10406,10 @@ packages: jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} + jsonpointer@5.0.1: resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} engines: {node: '>=0.10.0'} @@ -9654,6 +10432,9 @@ packages: resolution: {integrity: sha512-XCHRdUw4lf3SKBaJe4EvgqIuWwkPSo9XoeO8GjQW94Bp7TWv9hNhzZjZ+OH9yf1UmLygb7DIT5GSFQiyt16zYg==} hasBin: true + kdbush@4.0.2: + resolution: {integrity: sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==} + keyboardevent-from-electron-accelerator@2.0.0: resolution: {integrity: sha512-iQcmNA0M4ETMNi0kG/q0h/43wZk7rMeKYrXP7sqKIJbHkTU8Koowgzv+ieR/vWJbOwxx5nDC3UnudZ0aLSu4VA==} @@ -9667,8 +10448,8 @@ packages: keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - keyv@5.3.4: - resolution: {integrity: sha512-ypEvQvInNpUe+u+w8BIcPkQvEqXquyyibWE/1NB5T2BTzIpS5cGEV1LZskDzPSTvNAaT4+5FutvzlvnkxOSKlw==} + keyv@5.5.0: + resolution: {integrity: sha512-QG7qR2tijh1ftOvClut4YKKg1iW6cx3GZsKoGyJPxHkGWK9oJhG9P3j5deP0QQOGDowBMVQFaP+Vm4NpGYvmIQ==} khroma@2.1.0: resolution: {integrity: sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==} @@ -9826,8 +10607,8 @@ packages: resolution: {integrity: sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - lint-staged@16.1.2: - resolution: {integrity: sha512-sQKw2Si2g9KUZNY3XNvRuDq4UJqpHwF0/FQzZR2M7I5MvtpWvibikCjUVJzZdGE0ByurEl3KQNvsGetd1ty1/Q==} + lint-staged@16.1.4: + resolution: {integrity: sha512-xy7rnzQrhTVGKMpv6+bmIA3C0yET31x8OhKBYfvGo0/byeZ6E0BjGARrir3Kg/RhhYHutpsi01+2J5IpfVoueA==} engines: {node: '>=20.17'} hasBin: true @@ -9835,9 +10616,9 @@ packages: resolution: {integrity: sha512-rJysbR9GKIalhTbVL2tYbF2hVyDnrf7pFUZBwjPaMIdadYHmeT+EVi/Bu3qd7ETQPahTotg2WRCatXwRBW554g==} engines: {node: '>=16.0.0'} - listr2@8.3.3: - resolution: {integrity: sha512-LWzX2KsqcB1wqQ4AHgYb4RsDXauQiqhjLk+6hjbaeHG4zpjjVAB6wC/gz6X0l+Du1cN3pUB5ZlrvTbhGSNnUQQ==} - engines: {node: '>=18.0.0'} + listr2@9.0.1: + resolution: {integrity: sha512-SL0JY3DaxylDuo/MecFeiC+7pedM0zia33zl0vcjgwcq1q1FWWF1To9EIauPbl8GbMCU0R2e0uJ8bZunhYKD2g==} + engines: {node: '>=20.0.0'} load-json-file@2.0.0: resolution: {integrity: sha512-3p6ZOGNbiX4CdvEd1VcE6yi78UrGNpjHO33noGwHCnT/o2fyllJDepsm8+mFFv/DvtwFHht5HIHSyOy5a+ChVQ==} @@ -9950,6 +10731,9 @@ packages: long@5.3.2: resolution: {integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==} + longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true @@ -9964,6 +10748,10 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + lru-cache@11.1.0: + resolution: {integrity: sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==} + engines: {node: 20 || >=22} + lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -9975,8 +10763,8 @@ packages: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} - luxon@3.5.0: - resolution: {integrity: sha512-rh+Zjr6DNfUYR3bPwJEnuwDdqMbxZW7LOQfUN4B54+Cl+0o5zaU9RJ6bcidfDtC1cWCZXQ+nvX8bf6bAji37QQ==} + luxon@3.6.1: + resolution: {integrity: sha512-tJLxrKJhO2ukZ5z0gyjY1zPh3Rh88Ej9P7jNrZiHMUXHae1yvI2imgOZtL1TO8TW6biMMKfTtAOoEJANgtWBMQ==} engines: {node: '>=12'} lz-string@1.5.0: @@ -10027,24 +10815,21 @@ packages: resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==} engines: {node: '>=6'} + maplibre-gl@5.6.1: + resolution: {integrity: sha512-TTSfoTaF7RqKUR9wR5qDxCHH2J1XfZ1E85luiLOx0h8r50T/LnwAwwfV0WVNh9o8dA7rwt57Ucivf1emyeukXg==} + engines: {node: '>=16.14.0', npm: '>=8.1.0'} + mark.js@8.11.1: resolution: {integrity: sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==} - marked@15.0.12: - resolution: {integrity: sha512-8dD6FusOQSrpv9Z1rdNMdlSgQOIP880DHqnohobOmYLElGEqAL/JvxvuxZO16r4HtjTlfPRDC1hbvxC9dPN2nA==} - engines: {node: '>= 18'} - hasBin: true + markdown-table@3.0.4: + resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} - marked@16.0.0: - resolution: {integrity: sha512-MUKMXDjsD/eptB7GPzxo4xcnLS6oo7/RHimUMHEDRhUooPwmN9BEpMl7AEOJv3bmso169wHI2wUF9VQgL7zfmA==} + marked@16.1.2: + resolution: {integrity: sha512-rNQt5EvRinalby7zJZu/mB+BvaAY2oz3wCuCjt1RDrWNpS1Pdf9xqMOeC9Hm5adBdcV/3XZPJpG58eT+WBc0XQ==} engines: {node: '>= 20'} hasBin: true - marked@4.0.12: - resolution: {integrity: sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ==} - engines: {node: '>= 12'} - hasBin: true - matcher@3.0.0: resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==} engines: {node: '>=10'} @@ -10056,6 +10841,48 @@ packages: mathml-tag-names@2.1.3: resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==} + mdast-util-find-and-replace@3.0.2: + resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} + + mdast-util-from-markdown@2.0.2: + resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} + + mdast-util-frontmatter@2.0.1: + resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==} + + mdast-util-gfm-autolink-literal@2.0.1: + resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} + + mdast-util-gfm-footnote@2.1.0: + resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==} + + mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + + mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + + mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + + mdast-util-gfm@3.1.0: + resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} + + mdast-util-newline-to-break@2.0.0: + resolution: {integrity: sha512-MbgeFca0hLYIEx/2zGsszCSEJJ1JSCdiY5xQxRcLDDGa8EPvlLPupJ4DSajbMPAnC0je8jfb9TiUATnxxrHUog==} + + mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + + mdast-util-to-hast@13.2.0: + resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} + + mdast-util-to-markdown@2.1.2: + resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} + + mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + mdn-data@2.0.14: resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} @@ -10085,8 +10912,8 @@ packages: resolution: {integrity: sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==} engines: {node: '>=6'} - memfs@4.17.0: - resolution: {integrity: sha512-4eirfZ7thblFmqFjywlTmuWVSvccHAJbn1r8qQLzmTO11qcqpohOjmY2mFce6x7x7WtskzRqApPD0hv+Oa74jg==} + memfs@4.17.2: + resolution: {integrity: sha512-NgYhCOWgovOXSzvYgUW0LQ7Qy72rWQMGGFJDoWg4G30RHd3z77VbYdtJ4fembJXBy8pMIUA31XNAupobOQlwdg==} engines: {node: '>= 4.0.0'} meow@13.2.0: @@ -10107,13 +10934,100 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - mermaid@11.8.0: - resolution: {integrity: sha512-uAZUwnBiqREZcUrFw3G5iQ5Pj3hTYUP95EZc3ec/nGBzHddJZydzYGE09tGZDBS1VoSoDn0symZ85FmypSTo5g==} + mermaid@11.9.0: + resolution: {integrity: sha512-YdPXn9slEwO0omQfQIsW6vS84weVQftIyyTGAZCwM//MGhPzL1+l6vO6bkf0wnP4tHigH1alZ5Ooy3HXI2gOag==} methods@1.1.2: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} + micromark-core-commonmark@2.0.3: + resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} + + micromark-extension-frontmatter@2.0.0: + resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==} + + micromark-extension-gfm-autolink-literal@2.1.0: + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} + + micromark-extension-gfm-footnote@2.1.0: + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} + + micromark-extension-gfm-strikethrough@2.1.0: + resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} + + micromark-extension-gfm-table@2.1.1: + resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} + + micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + + micromark-extension-gfm-task-list-item@2.1.0: + resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} + + micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + + micromark-factory-destination@2.0.1: + resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} + + micromark-factory-label@2.0.1: + resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} + + micromark-factory-space@2.0.1: + resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} + + micromark-factory-title@2.0.1: + resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} + + micromark-factory-whitespace@2.0.1: + resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} + + micromark-util-character@2.1.1: + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} + + micromark-util-chunked@2.0.1: + resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} + + micromark-util-classify-character@2.0.1: + resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} + + micromark-util-combine-extensions@2.0.1: + resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} + + micromark-util-decode-numeric-character-reference@2.0.2: + resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} + + micromark-util-decode-string@2.0.1: + resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} + + micromark-util-encode@2.0.1: + resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} + + micromark-util-html-tag-name@2.0.1: + resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} + + micromark-util-normalize-identifier@2.0.1: + resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} + + micromark-util-resolve-all@2.0.1: + resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} + + micromark-util-sanitize-uri@2.0.1: + resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} + + micromark-util-subtokenize@2.1.0: + resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} + + micromark-util-symbol@2.0.1: + resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} + + micromark-util-types@2.0.2: + resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} + + micromark@4.0.2: + resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} + micromatch@4.0.8: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} @@ -10165,8 +11079,8 @@ packages: resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} engines: {node: '>=10'} - mind-elixir@4.6.2: - resolution: {integrity: sha512-KjIjInLbMtW7J68Hm+oJ/+g/fhG+h6kkJkU5HL1LgqLSIyKFQM4V5xogibbqm+9ycBmKu2TTOlE+5O2/3VZPtA==} + mind-elixir@5.0.4: + resolution: {integrity: sha512-/hffgIS8OsdMhSk6ZwcGQbbaQ84vOPIh0F31X8ywP7oq1LOzRn0mT+AXTR5bDlVUdXzKUcoAa3xcS/JP6hLwlQ==} mini-css-extract-plugin@2.4.7: resolution: {integrity: sha512-euWmddf0sk9Nv1O0gfeeUAvAkoSlWncNLF77C0TP2+WoPvy8mAHKOzMajcCz2dzvyt3CNgxb1obIEVFIRxaipg==} @@ -10174,9 +11088,19 @@ packages: peerDependencies: webpack: ^5.0.0 + mini-css-extract-plugin@2.9.2: + resolution: {integrity: sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^5.0.0 + minimalistic-assert@1.0.1: resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + minimatch@10.0.3: + resolution: {integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==} + engines: {node: 20 || >=22} + minimatch@3.0.4: resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==} @@ -10253,6 +11177,9 @@ packages: resolution: {integrity: sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==} engines: {node: '>= 18'} + mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + mkdirp-classic@0.5.3: resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} @@ -10277,9 +11204,9 @@ packages: mlly@1.7.4: resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} - mocha@10.8.2: - resolution: {integrity: sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg==} - engines: {node: '>= 14.0.0'} + mocha@11.7.1: + resolution: {integrity: sha512-5EK+Cty6KheMS/YLPPMJC64g5V61gIR25KsRItHw6x4hEKT6Njp1n9LOlH4gpevuwMVS66SXaBBpg+RWZkza4A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true mocha@7.2.0: @@ -10324,8 +11251,8 @@ packages: muggle-string@0.4.1: resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} - multer@2.0.1: - resolution: {integrity: sha512-Ug8bXeTIUlxurg8xLTEskKShvcKDZALo1THEX5E41pYCD2sCVub5/kIRIGqWNoqV6szyLyQKV6mD4QUrWE5GCQ==} + multer@2.0.2: + resolution: {integrity: sha512-u7f2xaZ/UG8oLXHvtF/oWTRvT44p9ecwBBqTwgJVq0+4BW1g8OW01TyMEGWBHbyMOYVHXslaut7qEQ1meATXgw==} engines: {node: '>= 10.16.0'} multicast-dns@7.2.5: @@ -10338,6 +11265,9 @@ packages: murmur-32@0.2.0: resolution: {integrity: sha512-ZkcWZudylwF+ir3Ld1n7gL6bI2mQAzXvSobPwVtu8aYi2sbXeipeSkdcanRLzIofLcM5F53lGaKm2dk7orBi7Q==} + murmurhash-js@1.0.0: + resolution: {integrity: sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==} + mute-stream@2.0.0: resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} engines: {node: ^18.17.0 || >=20.5.0} @@ -10367,6 +11297,11 @@ packages: napi-build-utils@2.0.0: resolution: {integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==} + napi-postinstall@0.3.2: + resolution: {integrity: sha512-tWVJxJHmBWLy69PvO96TZMZDrzmw5KeiZBz3RHmiM2XZ9grBJ2WgMAFVVg25nqp3ZjTFUs2Ftw1JhscL3Teliw==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + hasBin: true + natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -10453,6 +11388,9 @@ packages: engines: {node: '>= 10.12.0'} hasBin: true + node-html-parser@6.1.13: + resolution: {integrity: sha512-qIsTMOY4C/dAa5Q5vsobRpOOvPfC4pB61UVW2uSwZNUp0QU/jCekTal1vMmbO0DgdHeLUJpv/ARmDqErVxA3Sg==} + node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} @@ -10494,10 +11432,38 @@ packages: normalize.css@8.0.1: resolution: {integrity: sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg==} + npm-bundled@4.0.0: + resolution: {integrity: sha512-IxaQZDMsqfQ2Lz37VvyyEtKLe8FsRZuysmedy/N06TU1RyVppYKXrO4xIhR0F+7ubIBox6Q7nir6fQI3ej39iA==} + engines: {node: ^18.17.0 || >=20.5.0} + + npm-install-checks@7.1.1: + resolution: {integrity: sha512-u6DCwbow5ynAX5BdiHQ9qvexme4U3qHW3MWe5NqH+NeBm0LbiH6zvGjNNew1fY+AZZUtVHbOPF3j7mJxbUzpXg==} + engines: {node: ^18.17.0 || >=20.5.0} + + npm-normalize-package-bin@4.0.0: + resolution: {integrity: sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==} + engines: {node: ^18.17.0 || >=20.5.0} + npm-package-arg@11.0.1: resolution: {integrity: sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==} engines: {node: ^16.14.0 || >=18.0.0} + npm-package-arg@12.0.2: + resolution: {integrity: sha512-f1NpFjNI9O4VbKMOlA5QoBq/vSQPORHcTZ2feJpFkTHJ9eQkdlmZEKSjcAhxTGInC7RlEyScT9ui67NaOsjFWA==} + engines: {node: ^18.17.0 || >=20.5.0} + + npm-packlist@10.0.0: + resolution: {integrity: sha512-rht9U6nS8WOBDc53eipZNPo5qkAV4X2rhKE2Oj1DYUQ3DieXfj0mKkVmjnf3iuNdtMd8WfLdi2L6ASkD/8a+Kg==} + engines: {node: ^20.17.0 || >=22.9.0} + + npm-pick-manifest@10.0.0: + resolution: {integrity: sha512-r4fFa4FqYY8xaM7fHecQ9Z2nE9hgNfJR+EmoKv0+chvzWkBcORX3r0FpTByP+CbOVJDladMXnPQGVN8PBLGuTQ==} + engines: {node: ^18.17.0 || >=20.5.0} + + npm-registry-fetch@18.0.2: + resolution: {integrity: sha512-LeVMZBBVy+oQb5R6FDV9OlJCcWDU+al10oKpe+nsvcHnG24Z3uM3SvJYKfGJlfGjVU8v9liejCrUR/M5HO5NEQ==} + engines: {node: ^18.17.0 || >=20.5.0} + npm-run-path@2.0.2: resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} engines: {node: '>=4'} @@ -10517,8 +11483,8 @@ packages: nwsapi@2.2.20: resolution: {integrity: sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==} - nx@21.2.2: - resolution: {integrity: sha512-SP+gojzJhvUfGPw94myECAvF+a7KDQe8c1HUr2HOPR20oSukpdhZM2B1Ki4FGUUuzOcCILhNT2QHLo82+FGLng==} + nx@21.3.11: + resolution: {integrity: sha512-nj2snZ3mHZnbHcoB3NUdxbch9L1sQKV1XccLs1B79fmI/N5oOgWgctm/bWoZH2UH5b4A8ZLAMTsC6YnSJGbcaw==} hasBin: true peerDependencies: '@swc-node/register': ^1.8.0 @@ -10571,8 +11537,8 @@ packages: resolution: {integrity: sha512-y0W+X7Ppo7oZX6eovsRkuzcSM40Bicg2JEJkDJ4irIt1wsYAP5MLSNv+QAogO8xivMffw/9OvV3um1pxXgt1uA==} engines: {node: ^10.13.0 || >=12.0.0} - ollama@0.5.16: - resolution: {integrity: sha512-OEbxxOIUZtdZgOaTPAULo051F5y+Z1vosxEYOoABPnQKeW7i4O8tJNlxCB+xioyoorVqgjkdj+TA1f1Hy2ug/w==} + ollama@0.5.17: + resolution: {integrity: sha512-q5LmPtk6GLFouS+3aURIVl+qcAOPC4+Msmx7uBb3pd+fxI55WnGjmLZ0yijI/CYy79x0QPGx3BwC3u5zv9fBvQ==} omggif@1.0.10: resolution: {integrity: sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==} @@ -10581,8 +11547,8 @@ packages: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} - on-headers@1.0.2: - resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} + on-headers@1.1.0: + resolution: {integrity: sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==} engines: {node: '>= 0.8'} once@1.4.0: @@ -10599,16 +11565,16 @@ packages: open-color@1.9.1: resolution: {integrity: sha512-vCseG/EQ6/RcvxhUcGJiHViOgrtz4x0XbZepXvKik66TMGkvbmjeJrKFyBEx6daG5rNyyd14zYXhz0hZVwQFOw==} - open@10.1.1: - resolution: {integrity: sha512-zy1wx4+P3PfhXSEPJNtZmJXfhkkIaxU1VauWIrDZw1O7uJRDRJtKr9n3Ic4NgbA16KyOxOXO2ng9gYwCdXuSXA==} + open@10.2.0: + resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==} engines: {node: '>=18'} open@8.4.2: resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} engines: {node: '>=12'} - openai@5.8.2: - resolution: {integrity: sha512-8C+nzoHYgyYOXhHGN6r0fcb4SznuEn1R7YZMvlqDbnCuE0FM2mm3T1HiYW6WIcMS/F1Of2up/cSPjLPaWt0X9Q==} + openai@5.12.0: + resolution: {integrity: sha512-vUdt02xiWgOHiYUmW0Hj1Qu9OKAiVQu5Bd547ktVCiMKC1BkB5L3ImeEnCyq3WpRKR6ZTaPgekzqdozwdPs7Lg==} hasBin: true peerDependencies: ws: ^8.18.0 @@ -10742,6 +11708,11 @@ packages: package-manager-detector@0.2.11: resolution: {integrity: sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==} + pacote@21.0.0: + resolution: {integrity: sha512-lcqexq73AMv6QNLo7SOpz0JJoaGdS3rBFgF122NZVl1bApo2mfu+XzUBU/X/XsiJu+iUmKpekRayqQYAs+PhkA==} + engines: {node: ^20.17.0 || >=22.9.0} + hasBin: true + pako@1.0.11: resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} @@ -10842,6 +11813,10 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} + path-scurry@2.0.0: + resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} + engines: {node: 20 || >=22} + path-to-regexp@0.1.12: resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} @@ -10870,6 +11845,10 @@ packages: resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==} engines: {node: '>= 14.16'} + pbf@3.3.0: + resolution: {integrity: sha512-XDF38WCH3z5OV/OVa8GKUNtLAyneuzbCisx7QUCF8Q6Nutx0WnJrQe5O+kOtBlLfRNUws98Y58Lblp+NJG5T4Q==} + hasBin: true + pe-library@1.0.1: resolution: {integrity: sha512-nh39Mo1eGWmZS7y+mK/dQIqg7S1lp38DpRxkyoHf0ZcUs/HDc+yyTjuOtTvSMZHmfSLuSQaX945u05Y2Q6UWZg==} engines: {node: '>=14', npm: '>=7'} @@ -10902,6 +11881,10 @@ packages: resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} engines: {node: '>=12'} + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + engines: {node: '>=12'} + pidtree@0.6.0: resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} engines: {node: '>=0.10'} @@ -10933,13 +11916,13 @@ packages: pkg-types@2.1.0: resolution: {integrity: sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==} - playwright-core@1.53.2: - resolution: {integrity: sha512-ox/OytMy+2w1jcYEYlOo1Hhp8hZkLCximMTUTMBXjGUA1KoFfiSZ+DU+3a739jsPY0yoKH2TFy9S2fsJas8yAw==} + playwright-core@1.54.2: + resolution: {integrity: sha512-n5r4HFbMmWsB4twG7tJLDN9gmBUeSPcsBZiWSE4DnYz9mJMAFqr2ID7+eGC9kpEnxExJ1epttwR59LEWCk8mtA==} engines: {node: '>=18'} hasBin: true - playwright@1.53.2: - resolution: {integrity: sha512-6K/qQxVFuVQhRQhFsVZ9fGeatxirtrpPgxzBYWyZLEXJzqYwuL4fuNmfOfD5et1tJE4GScKyPNeLhZeRwuTU3A==} + playwright@1.54.2: + resolution: {integrity: sha512-Hu/BMoA1NAdRUuulyvQC0pEqZ4vQbGfn8f7wPXcnqQmM+zct9UliKxsIkLNmz/ku7LElUNqmaiv1TG/aL5ACsw==} engines: {node: '>=18'} hasBin: true @@ -11025,6 +12008,12 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-colormin@7.0.4: + resolution: {integrity: sha512-ziQuVzQZBROpKpfeDwmrG+Vvlr0YWmY/ZAk99XD+mGEBuEojoFekL41NCsdhyNUtZI7DPOoIWIR7vQQK9xwluw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + postcss-convert-values@5.1.3: resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} engines: {node: ^10 || ^12 || >=14.0} @@ -11043,6 +12032,12 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-convert-values@7.0.6: + resolution: {integrity: sha512-MD/eb39Mr60hvgrqpXsgbiqluawYg/8K4nKsqRsuDX9f+xN1j6awZCUv/5tLH8ak3vYp/EMXwdcnXvfZYiejCQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + postcss-discard-comments@5.1.2: resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} engines: {node: ^10 || ^12 || >=14.0} @@ -11061,6 +12056,12 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-discard-comments@7.0.4: + resolution: {integrity: sha512-6tCUoql/ipWwKtVP/xYiFf1U9QgJ0PUvxN7pTcsQ8Ns3Fnwq1pU5D5s1MhT/XySeLq6GXNvn37U46Ded0TckWg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + postcss-discard-duplicates@5.1.0: resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} engines: {node: ^10 || ^12 || >=14.0} @@ -11079,6 +12080,12 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-discard-duplicates@7.0.2: + resolution: {integrity: sha512-eTonaQvPZ/3i1ASDHOKkYwAybiM45zFIc7KXils4mQmHLqIswXD9XNOKEVxtTFnsmwYzF66u4LMgSr0abDlh5w==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + postcss-discard-empty@5.1.1: resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} engines: {node: ^10 || ^12 || >=14.0} @@ -11097,6 +12104,12 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-discard-empty@7.0.1: + resolution: {integrity: sha512-cFrJKZvcg/uxB6Ijr4l6qmn3pXQBna9zyrPC+sK0zjbkDUZew+6xDltSF7OeB7rAtzaaMVYSdbod+sZOCWnMOg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + postcss-discard-overridden@5.1.0: resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} engines: {node: ^10 || ^12 || >=14.0} @@ -11115,14 +12128,20 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-discard-overridden@7.0.1: + resolution: {integrity: sha512-7c3MMjjSZ/qYrx3uc1940GSOzN1Iqjtlqe8uoSg+qdVPYyRb0TILSqqmtlSFuE4mTDECwsm397Ya7iXGzfF7lg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + postcss-import@14.1.0: resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==} engines: {node: '>=10.0.0'} peerDependencies: postcss: ^8.0.0 - postcss-import@16.1.0: - resolution: {integrity: sha512-7hsAZ4xGXl4MW+OKEWCnF6T5jqBw80/EE9aXg1r2yyn1RsVEU8EtKXbijEODa+rg7iih4bKf7vlvTGYR4CnPNg==} + postcss-import@16.1.1: + resolution: {integrity: sha512-2xVS1NCZAfjtVdvXiyegxzJ447GyqCeEI5V7ApgQVOWnros1p5lGNovJNapwPpMombyFBfqDwt7AD3n2l0KOfQ==} engines: {node: '>=18.0.0'} peerDependencies: postcss: ^8.0.0 @@ -11183,6 +12202,12 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-merge-longhand@7.0.5: + resolution: {integrity: sha512-Kpu5v4Ys6QI59FxmxtNB/iHUVDn9Y9sYw66D6+SZoIk4QTz1prC4aYkhIESu+ieG1iylod1f8MILMs1Em3mmIw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + postcss-merge-rules@5.1.4: resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==} engines: {node: ^10 || ^12 || >=14.0} @@ -11201,6 +12226,12 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-merge-rules@7.0.6: + resolution: {integrity: sha512-2jIPT4Tzs8K87tvgCpSukRQ2jjd+hH6Bb8rEEOUDmmhOeTcqDg5fEFK8uKIu+Pvc3//sm3Uu6FRqfyv7YF7+BQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + postcss-minify-font-values@5.1.0: resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} engines: {node: ^10 || ^12 || >=14.0} @@ -11219,6 +12250,12 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-minify-font-values@7.0.1: + resolution: {integrity: sha512-2m1uiuJeTplll+tq4ENOQSzB8LRnSUChBv7oSyFLsJRtUgAAJGP6LLz0/8lkinTgxrmJSPOEhgY1bMXOQ4ZXhQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + postcss-minify-gradients@5.1.1: resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} engines: {node: ^10 || ^12 || >=14.0} @@ -11237,6 +12274,12 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-minify-gradients@7.0.1: + resolution: {integrity: sha512-X9JjaysZJwlqNkJbUDgOclyG3jZEpAMOfof6PUZjPnPrePnPG62pS17CjdM32uT1Uq1jFvNSff9l7kNbmMSL2A==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + postcss-minify-params@5.1.4: resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} engines: {node: ^10 || ^12 || >=14.0} @@ -11255,6 +12298,12 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-minify-params@7.0.4: + resolution: {integrity: sha512-3OqqUddfH8c2e7M35W6zIwv7jssM/3miF9cbCSb1iJiWvtguQjlxZGIHK9JRmc8XAKmE2PFGtHSM7g/VcW97sw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + postcss-minify-selectors@5.2.1: resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} engines: {node: ^10 || ^12 || >=14.0} @@ -11273,6 +12322,12 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-minify-selectors@7.0.5: + resolution: {integrity: sha512-x2/IvofHcdIrAm9Q+p06ZD1h6FPcQ32WtCRVodJLDR+WMn8EVHI1kvLxZuGKz/9EY5nAmI6lIQIrpo4tBy5+ug==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + postcss-mixins@11.0.3: resolution: {integrity: sha512-HZa6DHlN7uCkp7GTFNvhpyK/Gi9+vrVG7FPl2oQdj+sXUuYo4ri9OsWBseTnvnLfWxRWOq8/VwcHcixtZPrRRg==} engines: {node: ^18.0 || ^ 20.0 || >= 22.0} @@ -11315,6 +12370,12 @@ packages: peerDependencies: postcss: ^8.4 + postcss-nesting@13.0.2: + resolution: {integrity: sha512-1YCI290TX+VP0U/K/aFxzHzQWHWURL+CtHMSbex1lCdpXD1SoR2sYuxDu5aNI9lPoXpKTCggFZiDJbwylU0LEQ==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + postcss-normalize-charset@5.1.0: resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} engines: {node: ^10 || ^12 || >=14.0} @@ -11333,6 +12394,12 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-normalize-charset@7.0.1: + resolution: {integrity: sha512-sn413ofhSQHlZFae//m9FTOfkmiZ+YQXsbosqOWRiVQncU2BA3daX3n0VF3cG6rGLSFVc5Di/yns0dFfh8NFgQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + postcss-normalize-display-values@5.1.0: resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} engines: {node: ^10 || ^12 || >=14.0} @@ -11351,6 +12418,12 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-normalize-display-values@7.0.1: + resolution: {integrity: sha512-E5nnB26XjSYz/mGITm6JgiDpAbVuAkzXwLzRZtts19jHDUBFxZ0BkXAehy0uimrOjYJbocby4FVswA/5noOxrQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + postcss-normalize-positions@5.1.1: resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} engines: {node: ^10 || ^12 || >=14.0} @@ -11369,6 +12442,12 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-normalize-positions@7.0.1: + resolution: {integrity: sha512-pB/SzrIP2l50ZIYu+yQZyMNmnAcwyYb9R1fVWPRxm4zcUFCY2ign7rcntGFuMXDdd9L2pPNUgoODDk91PzRZuQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + postcss-normalize-repeat-style@5.1.1: resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} engines: {node: ^10 || ^12 || >=14.0} @@ -11387,6 +12466,12 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-normalize-repeat-style@7.0.1: + resolution: {integrity: sha512-NsSQJ8zj8TIDiF0ig44Byo3Jk9e4gNt9x2VIlJudnQQ5DhWAHJPF4Tr1ITwyHio2BUi/I6Iv0HRO7beHYOloYQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + postcss-normalize-string@5.1.0: resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} engines: {node: ^10 || ^12 || >=14.0} @@ -11405,6 +12490,12 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-normalize-string@7.0.1: + resolution: {integrity: sha512-QByrI7hAhsoze992kpbMlJSbZ8FuCEc1OT9EFbZ6HldXNpsdpZr+YXC5di3UEv0+jeZlHbZcoCADgb7a+lPmmQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + postcss-normalize-timing-functions@5.1.0: resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} engines: {node: ^10 || ^12 || >=14.0} @@ -11423,6 +12514,12 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-normalize-timing-functions@7.0.1: + resolution: {integrity: sha512-bHifyuuSNdKKsnNJ0s8fmfLMlvsQwYVxIoUBnowIVl2ZAdrkYQNGVB4RxjfpvkMjipqvbz0u7feBZybkl/6NJg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + postcss-normalize-unicode@5.1.1: resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} engines: {node: ^10 || ^12 || >=14.0} @@ -11441,6 +12538,12 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-normalize-unicode@7.0.4: + resolution: {integrity: sha512-LvIURTi1sQoZqj8mEIE8R15yvM+OhbR1avynMtI9bUzj5gGKR/gfZFd8O7VMj0QgJaIFzxDwxGl/ASMYAkqO8g==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + postcss-normalize-url@5.1.0: resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} engines: {node: ^10 || ^12 || >=14.0} @@ -11459,6 +12562,12 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-normalize-url@7.0.1: + resolution: {integrity: sha512-sUcD2cWtyK1AOL/82Fwy1aIVm/wwj5SdZkgZ3QiUzSzQQofrbq15jWJ3BA7Z+yVRwamCjJgZJN0I9IS7c6tgeQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + postcss-normalize-whitespace@5.1.1: resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} engines: {node: ^10 || ^12 || >=14.0} @@ -11477,6 +12586,12 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-normalize-whitespace@7.0.1: + resolution: {integrity: sha512-vsbgFHMFQrJBJKrUFJNZ2pgBeBkC2IvvoHjz1to0/0Xk7sII24T0qFOiJzG6Fu3zJoq/0yI4rKWi7WhApW+EFA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + postcss-ordered-values@5.1.3: resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} engines: {node: ^10 || ^12 || >=14.0} @@ -11495,6 +12610,12 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-ordered-values@7.0.2: + resolution: {integrity: sha512-AMJjt1ECBffF7CEON/Y0rekRLS6KsePU6PRP08UqYW4UGFRnTXNrByUzYK1h8AC7UWTZdQ9O3Oq9kFIhm0SFEw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + postcss-reduce-initial@5.1.2: resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==} engines: {node: ^10 || ^12 || >=14.0} @@ -11513,6 +12634,12 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-reduce-initial@7.0.4: + resolution: {integrity: sha512-rdIC9IlMBn7zJo6puim58Xd++0HdbvHeHaPgXsimMfG1ijC5A9ULvNLSE0rUKVJOvNMcwewW4Ga21ngyJjY/+Q==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + postcss-reduce-transforms@5.1.0: resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} engines: {node: ^10 || ^12 || >=14.0} @@ -11531,6 +12658,12 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-reduce-transforms@7.0.1: + resolution: {integrity: sha512-MhyEbfrm+Mlp/36hvZ9mT9DaO7dbncU0CvWI8V93LRkY6IYlu38OPg3FObnuKTUxJ4qA8HpurdQOo5CyqqO76g==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + postcss-resolve-nested-selector@0.1.6: resolution: {integrity: sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw==} @@ -11582,6 +12715,12 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-svgo@7.1.0: + resolution: {integrity: sha512-KnAlfmhtoLz6IuU3Sij2ycusNs4jPW+QoFE5kuuUOK8awR6tMxZQrs5Ey3BUz7nFCzT3eqyFgqkyrHiaU2xx3w==} + engines: {node: ^18.12.0 || ^20.9.0 || >= 18} + peerDependencies: + postcss: ^8.4.32 + postcss-unique-selectors@5.1.1: resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} engines: {node: ^10 || ^12 || >=14.0} @@ -11600,6 +12739,12 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-unique-selectors@7.0.4: + resolution: {integrity: sha512-pmlZjsmEAG7cHd7uK3ZiNSW6otSZ13RHuZ/4cDN/bVglS5EpF2r2oxY99SuOHa8m7AWoBCelTS3JPpzsIs8skQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} @@ -11616,8 +12761,11 @@ packages: engines: {node: '>=14.0.0'} hasBin: true - preact@10.26.9: - resolution: {integrity: sha512-SSjF9vcnF27mJK1XyFMNJzFd5u3pQiATFqoaDy03XuN00u4ziveVVEGt5RKJrDR8MHE/wJo9Nnad56RLzS2RMA==} + potpack@2.1.0: + resolution: {integrity: sha512-pcaShQc1Shq0y+E7GqJqvZj8DTthWV1KeHGdi0Z6IAin2Oi3JnLCOfwnCo84qc+HAp52wT9nK9H7FAJp5a44GQ==} + + preact@10.27.0: + resolution: {integrity: sha512-/DTYoB6mwwgPytiqQTh/7SFRL98ZdiD8Sk8zIUVOxtwq4oWcwrcd1uno9fE/zZmUaUrFNYzbH14CPebOz9tZQw==} prebuild-install@7.1.3: resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==} @@ -11632,9 +12780,9 @@ packages: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + pretty-format@30.0.5: + resolution: {integrity: sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} prism-svelte@0.4.7: resolution: {integrity: sha512-yABh19CYbM24V7aS7TuPYRNMqthxwbvx6FF/Rw920YbyBWO3tnyPIqRMgHuSVsLmuHkkBS1Akyof463FVdkeDQ==} @@ -11681,10 +12829,16 @@ packages: prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + property-information@7.1.0: + resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} + protobufjs@7.5.0: resolution: {integrity: sha512-Z2E/kOY1QjoMlCytmexzYfDm/w5fKAiRwpSzGtdnXW1zC88Z2yXazHHrOtwCzn+7wSxyE8PYM4rvVcMphF9sOA==} engines: {node: '>=12.0.0'} + protocol-buffers-schema@3.6.0: + resolution: {integrity: sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==} + proxy-addr@2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} @@ -11705,6 +12859,9 @@ packages: pump@3.0.2: resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} + pump@3.0.3: + resolution: {integrity: sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==} + punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} @@ -11713,8 +12870,8 @@ packages: resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==} engines: {node: '>=12.20'} - pure-rand@6.1.0: - resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} + pure-rand@7.0.1: + resolution: {integrity: sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ==} purgecss@6.0.0: resolution: {integrity: sha512-s3EBxg5RSWmpqd0KGzNqPiaBbWDz1/As+2MzoYVGMqgDqRTLBhJW6sywfTBek7OwNfoS/6pS0xdtvChNhFj2cw==} @@ -11751,6 +12908,9 @@ packages: resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} engines: {node: '>=10'} + quickselect@3.0.0: + resolution: {integrity: sha512-XdjUArbK4Bm5fLLvlm5KpTFOiOThgfWWI4axAZDWg4E/0mKdZyI9tNEfds27qCi1ze/vwTR16kvmmGhRra3c2g==} + rand-token@1.0.1: resolution: {integrity: sha512-Zri5SfJmEzBJ3IexFdigvPSCamslJ7UjLkUn0tlgH7COJvaUr5V7FyUYgKifEMTw7gFO8ZLcWjcU+kq8akipzg==} engines: {node: '>= 10'} @@ -11944,6 +13104,33 @@ packages: resolution: {integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==} hasBin: true + rehype-dom-parse@5.0.2: + resolution: {integrity: sha512-8CqP11KaqvtWsMqVEC2yM3cZWZsDNqqpr8nPvogjraLuh45stabgcpXadCAxu1n6JaUNJ/Xr3GIqXP7okbNqLg==} + + rehype-dom-stringify@4.0.2: + resolution: {integrity: sha512-2HVFYbtmm5W3C2j8QsV9lcHdIMc2Yn/ytlPKcSC85/tRx2haZbU8V67Wxyh8STT38ZClvKlZ993Me/Hw8g88Aw==} + + rehype-minify-whitespace@6.0.2: + resolution: {integrity: sha512-Zk0pyQ06A3Lyxhe9vGtOtzz3Z0+qZ5+7icZ/PL/2x1SHPbKao5oB/g/rlc6BCTajqBb33JcOe71Ye1oFsuYbnw==} + + rehype-remark@10.0.1: + resolution: {integrity: sha512-EmDndlb5NVwXGfUa4c9GPK+lXeItTilLhE6ADSaQuHr4JUlKw9MidzGzx4HpqZrNCt6vnHmEifXQiiA+CEnjYQ==} + + remark-breaks@4.0.0: + resolution: {integrity: sha512-IjEjJOkH4FuJvHZVIW0QCDWxcG96kCq7An/KVH2NfJe6rKZU2AsHeB3OEjPNRxi4QC34Xdx7I2KGYn6IpT7gxQ==} + + remark-gfm@4.0.1: + resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} + + remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + + remark-rehype@11.1.2: + resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} + + remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + repeat-string@1.6.1: resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} engines: {node: '>=0.10'} @@ -11983,6 +13170,9 @@ packages: resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + resolve-protobuf-schema@2.1.0: + resolution: {integrity: sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==} + resolve.exports@2.0.3: resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==} engines: {node: '>=10'} @@ -12010,6 +13200,10 @@ packages: resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} engines: {node: '>=18'} + ret@0.5.0: + resolution: {integrity: sha512-I1XxrZSQ+oErkRR4jYbAyEEu2I0avBvvMM5JN+6EBprOGRCs63ENqZ3vjavq8fBw2+62G5LF5XelKwuJpcvcxw==} + engines: {node: '>=10'} + retry@0.12.0: resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} engines: {node: '>= 4'} @@ -12038,8 +13232,9 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rimraf@5.0.10: - resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} + rimraf@6.0.1: + resolution: {integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==} + engines: {node: 20 || >=22} hasBin: true roarr@2.15.4: @@ -12049,13 +13244,20 @@ packages: robust-predicates@3.0.2: resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==} - rollup-plugin-stats@1.4.0: - resolution: {integrity: sha512-qbwuMysGHqNrW0XBO3dU8qM7SdVYmMuaABp6SG1wFDClFVdUo8Umtk/LIDFCocNxDf6Tvtu7tXF/FsMy8NZCew==} + rolldown@1.0.0-beta.29: + resolution: {integrity: sha512-EsoOi8moHN6CAYyTZipxDDVTJn0j2nBCWor4wRU45RQ8ER2qREDykXLr3Ulz6hBh6oBKCFTQIjo21i0FXNo/IA==} + hasBin: true + + rollup-plugin-stats@1.5.0: + resolution: {integrity: sha512-TsWaV7ulwPA9JhqGJemrDJkvXNeNQb60lB13gIcT2kVDXlBM/PQD3GqVyhCJpvn43Y4YT5+VmWDRsbIAbuilBA==} engines: {node: '>=18'} peerDependencies: + rolldown: ^1.0.0-beta.0 rollup: ^3.0.0 || ^4.0.0 vite: ^5.0.0 || ^6.0.0 || ^7.0.0 peerDependenciesMeta: + rolldown: + optional: true rollup: optional: true vite: @@ -12073,10 +13275,11 @@ packages: peerDependencies: rollup: ^3.0.0||^4.0.0 - rollup-plugin-webpack-stats@2.1.0: - resolution: {integrity: sha512-7cxCelMRPkqZvjQa4NuHSkdJ6nshLDuDYyPAky8YOjcaz+qEocg0DRcJoSd4r2mKSupz0uZpoav5vqpDm7bSxg==} + rollup-plugin-webpack-stats@2.1.3: + resolution: {integrity: sha512-OOhpuwwoxW8J5pVd+RdokSbaVa21/4/mV1EsBBLfmcmc2hjL5VMFkytN0YTFGfPWcluWBCxrpA+8SP7P3xvloQ==} engines: {node: '>=18'} peerDependencies: + rolldown: ^1.0.0-beta.0 rollup: ^3.0.0 || ^4.0.0 vite: ^5.0.0 || ^6.0.0 || ^7.0.0 peerDependenciesMeta: @@ -12090,8 +13293,8 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true - rollup@4.44.1: - resolution: {integrity: sha512-x8H8aPvD+xbl0Do8oez5f5o8eMS3trfCghc4HhLAnCkj7Vl0d1JWGs0UF/D886zLW2rOj2QymV/JcSSsw+XDNg==} + rollup@4.46.2: + resolution: {integrity: sha512-WMmLFI+Boh6xbop+OAGo9cQ3OgX9MIg7xOQjn+pTCwOkk+FNDAeAemXkJ3HzDJrVXleLOFVa1ipuc1AmEx1Dwg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -12147,6 +13350,9 @@ packages: resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} engines: {node: '>= 0.4'} + safe-regex2@5.0.0: + resolution: {integrity: sha512-YwJwe5a51WlK7KbOJREPdjNrpViQBI3p4T50lfwPuDhZnE3XGVTlGvi+aolc5+RvxDD6bnUmjVsU9n1eboLUYw==} + safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} @@ -12363,9 +13569,9 @@ packages: resolution: {integrity: sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==} engines: {node: '>= 18'} - serialize-error@11.0.3: - resolution: {integrity: sha512-2G2y++21dhj2R7iHAdd0FIzjGwuKZld+7Pl/bTU6YIkrC2ZMbVUjm+luj6A6V34Rv9XfKJDKpTWu9W4Gse1D9g==} - engines: {node: '>=14.16'} + serialize-error@12.0.0: + resolution: {integrity: sha512-ZYkZLAvKTKQXWuh5XpBw7CdbSzagarX39WyZ2H07CDLC5/KfsRGlIXV8d4+tfqX1M7916mRqR1QfNHSij+c9Pw==} + engines: {node: '>=18'} serialize-error@7.0.1: resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==} @@ -12439,10 +13645,14 @@ packages: shell-exec@1.0.2: resolution: {integrity: sha512-jyVd+kU2X+mWKMmGhx4fpWbPsjvD53k9ivqetutVW/BQ+WIZoDoP4d8vUMGezV6saZsiNoW2f9GIhg9Dondohg==} - shell-quote@1.8.2: - resolution: {integrity: sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==} + shell-quote@1.8.3: + resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==} engines: {node: '>= 0.4'} + shelljs@0.10.0: + resolution: {integrity: sha512-Jex+xw5Mg2qMZL3qnzXIfaxEtBaC4n7xifqaqtrZDdlheR70OGkydrPJWT0V1cA1k3nanC86x9FwAmQl6w3Klw==} + engines: {node: '>=18'} + shelljs@0.8.5: resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} engines: {node: '>=4'} @@ -12477,12 +13687,22 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} + sigstore@3.1.0: + resolution: {integrity: sha512-ZpzWAFHIFqyFE56dXqgX/DkDRZdz+rRcjoIk/RQU4IX0wiCv1l8S7ZrXDHcCc+uaf+6o7w3h2l3g6GYG5TKN9Q==} + engines: {node: ^18.17.0 || >=20.5.0} + + simple-code-frame@1.3.0: + resolution: {integrity: sha512-MB4pQmETUBlNs62BBeRjIFGeuy/x6gGKh7+eRUemn1rCFhqo7K+4slPqsyizCbcbYLnaYqaoZ2FWsZ/jN06D8w==} + simple-concat@1.0.1: resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} simple-get@4.0.1: resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} + simple-git@3.28.0: + resolution: {integrity: sha512-Rs/vQRwsn1ILH1oBUy8NucJlXmnnLeLCfcvbSehkPzbv3wwoFWIdtfd6Ndo6ZPhlPsCZ60CPI4rxurnwAa+a2w==} + simple-xml-to-json@1.2.3: resolution: {integrity: sha512-kWJDCr9EWtZ+/EYYM5MareWj2cRnZGF93YDNpH4jQiHB+hBIZnfPFSQiVMzZOdk+zXWqTZ/9fTeQNu2DqeiudA==} engines: {node: '>=20.12.2'} @@ -12548,6 +13768,10 @@ packages: resolution: {integrity: sha512-iF+tNDQla22geJdTyJB1wM/qrX9DMRwWrciEPwWLPRWAUEM8sQiyxgckLxWT1f7+9VabJS0jTGGr4QgBuvi6Ww==} engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} + socks@2.8.6: + resolution: {integrity: sha512-pe4Y2yzru68lXCb38aAqRf5gvN8YdjP1lok5o0J7BOHljkyCGKVz7H3vpVIXKD27rj2giOJ7DwVyk/GWrPHDWA==} + engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} + sort-keys-length@1.0.1: resolution: {integrity: sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw==} engines: {node: '>=0.10.0'} @@ -12580,6 +13804,13 @@ packages: resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} engines: {node: '>= 8'} + source-map@0.7.6: + resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} + engines: {node: '>= 12'} + + space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + spacetrim@0.11.59: resolution: {integrity: sha512-lLYsktklSRKprreOm7NXReW8YiX2VBjbgmXYEziOoGf/qsJqAEACaDvoTtUOycwjpaSh+bT8eu0KrJn7UNxiCg==} @@ -12653,6 +13884,10 @@ packages: stack-chain@1.3.7: resolution: {integrity: sha512-D8cWtWVdIe/jBA7v5p5Hwl5yOSOrmZPWDPe2KxQ5UAGD+nxbxU0lKXA4h85Ta6+qgdKVL3vUxsbIZjc1kBG7ug==} + stack-trace@1.0.0-pre2: + resolution: {integrity: sha512-2ztBJRek8IVofG9DBJqdy2N5kulaacX30Nz7xmkYF6ale9WBVmIy6mFBchvGX7Vx/MyjBhx+Rcxqrj+dbOnQ6A==} + engines: {node: '>=16'} + stack-utils@2.0.6: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} @@ -12691,6 +13926,9 @@ packages: streamx@2.22.0: resolution: {integrity: sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw==} + streamx@2.22.1: + resolution: {integrity: sha512-znKXEBxfatz2GBNK02kRnCXjV+AA4kjZIUxeWSr3UGirZMJfTE9uiwKHobnbgxWyL/JWro8tTq+vOqAK1/qbSA==} + strict-event-emitter@0.5.1: resolution: {integrity: sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==} @@ -12744,6 +13982,9 @@ packages: string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + stringify-entities@4.0.4: + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + strip-ansi@4.0.0: resolution: {integrity: sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==} engines: {node: '>=4'} @@ -12776,6 +14017,10 @@ packages: resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} engines: {node: '>=0.10.0'} + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + strip-json-comments@2.0.1: resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} engines: {node: '>=0.10.0'} @@ -12797,6 +14042,9 @@ packages: strnum@1.1.2: resolution: {integrity: sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA==} + strnum@2.1.1: + resolution: {integrity: sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw==} + strtok3@10.2.2: resolution: {integrity: sha512-Xt18+h4s7Z8xyZ0tmBoRmzxcop97R4BAh+dXouUDCYn+Em+1P3qpkUfI5ueWLT8ynC5hZ+q4iPEmGG1urvQGBg==} engines: {node: '>=18'} @@ -12841,8 +14089,14 @@ packages: peerDependencies: postcss: ^8.4.31 - stylelint-config-ckeditor5@11.0.1: - resolution: {integrity: sha512-faW/mgpMC1OlGhYBN+E27vHAHLXCyMQDr7ICdUlWqrYjsAYNR0AgHBqfcHA7zMg8dW9tA7ZJ987zVkW0fZCE6w==} + stylehacks@7.0.6: + resolution: {integrity: sha512-iitguKivmsueOmTO0wmxURXBP8uqOO+zikLGZ7Mm9e/94R4w5T999Js2taS/KBOnQ/wdC3jN3vNSrkGDrlnqQg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + stylelint-config-ckeditor5@12.1.0: + resolution: {integrity: sha512-6JDfp60U2XNba8xmXl4K4R5ix+YM/0ZoWUbdIhVl+WNVVJG0P21jRzQjIb1QbTVE8xjS3kdc9S7kErY3ch5zgw==} peerDependencies: stylelint: '>=16.0.0' @@ -12862,24 +14116,19 @@ packages: peerDependencies: stylelint: '>=10.1.0' - stylelint-plugin-ckeditor5-rules@11.0.1: - resolution: {integrity: sha512-E/UNFeHxbWJgaOZb5P9VyokRnT4lnjzzoQDHvCmqiv/5PZwcer7+eoVdpMe/sE7oupv1gRSMrmfO4EoUAfehtg==} + stylelint-plugin-ckeditor5-rules@12.1.0: + resolution: {integrity: sha512-RKTrDvmVOH4vb1oLjcuIql7sq/JzbFCmkd6St5S9eDo8mvquzbjIi0fq9DT+oAhdb3dM4G+eNpniF12L68VLmw==} peerDependencies: stylelint: '>=16.0.0' - stylelint@16.21.1: - resolution: {integrity: sha512-WCXdXnYK2tpCbebgMF0Bme3YZH/Rh/UXerj75twYo4uLULlcrLwFVdZTvTEF8idFnAcW21YUDJFyKOfaf6xJRw==} + stylelint@16.23.1: + resolution: {integrity: sha512-dNvDTsKV1U2YtiUDfe9d2gp902veFeo3ecCWdGlmLm2WFrAV0+L5LoOj/qHSBABQwMsZPJwfC4bf39mQm1S5zw==} engines: {node: '>=18.12.0'} hasBin: true stylis@4.3.6: resolution: {integrity: sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==} - stylus@0.64.0: - resolution: {integrity: sha512-ZIdT8eUv8tegmqy1tTIdJv9We2DumkNZFdCF5mz/Kpq3OcTaxSuCAYZge6HKK2CmNC02G1eJig2RV7XTw5hQrA==} - engines: {node: '>=16'} - hasBin: true - sudo-prompt@9.2.1: resolution: {integrity: sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==} deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. @@ -12894,12 +14143,15 @@ packages: resolution: {integrity: sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==} engines: {node: '>= 8.0'} - superagent@10.2.1: - resolution: {integrity: sha512-O+PCv11lgTNJUzy49teNAWLjBZfc+A1enOwTpLlH6/rsvKcTwcdTT8m9azGkVqM7HBl5jpyZ7KTPhHweokBcdg==} + superagent@10.2.3: + resolution: {integrity: sha512-y/hkYGeXAj7wUMjxRbB21g/l6aAEituGXM9Rwl4o20+SX3e8YOSV6BxFXl+dL3Uk0mjSL3kCbNkwURm8/gEDig==} engines: {node: '>=14.18.0'} - supertest@7.1.1: - resolution: {integrity: sha512-aI59HBTlG9e2wTjxGJV+DygfNLgnWbGdZxiA/sgrnNNikIW8lbDvCtF6RnhZoJ82nU7qv7ZLjrvWqCEm52fAmw==} + supercluster@8.0.1: + resolution: {integrity: sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==} + + supertest@7.1.4: + resolution: {integrity: sha512-tjLPs7dVyqgItVFirHYqe2T+MfWc2VOBQ8QFKKbWTA3PU7liZR8zoSpAi/C1k1ilm9RsXIKYf197oap9wXGVYg==} engines: {node: '>=14.18.0'} supports-color@5.5.0: @@ -12926,16 +14178,16 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - svelte-check@4.2.2: - resolution: {integrity: sha512-1+31EOYZ7NKN0YDMKusav2hhEoA51GD9Ws6o//0SphMT0ve9mBTsTUEX7OmDMadUP3KjNHsSKtJrqdSaD8CrGQ==} + svelte-check@4.3.1: + resolution: {integrity: sha512-lkh8gff5gpHLjxIV+IaApMxQhTGnir2pNUAqcNgeKkvK5bT/30Ey/nzBxNLDlkztCH4dP7PixkMt9SWEKFPBWg==} 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.2.0: - resolution: {integrity: sha512-mbPtajIeuiyU80BEyGvwAktBeTX7KCr5/0l+uRGLq1dafwRNrjfM5kHGJScEBlPG3ipu6dJqfW/k0/fujvIEVw==} + svelte-eslint-parser@1.3.0: + resolution: {integrity: sha512-VCgMHKV7UtOGcGLGNFSbmdm6kEKjtzo5nnpGU/mnx4OsFY6bZ7QwRF5DUx+Hokw5Lvdyo8dpk8B1m8mliomrNg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 @@ -12943,8 +14195,8 @@ packages: svelte: optional: true - svelte@5.35.2: - resolution: {integrity: sha512-uW/rRXYrhZ7Dh4UQNZ0t+oVGL1dEM+95GavCO8afAk1IY2cPq9BcZv9C3um5aLIya2y8lIeLPxLII9ASGg9Dzw==} + svelte@5.38.0: + resolution: {integrity: sha512-cWF1Oc2IM/QbktdK89u5lt9MdKxRtQnRKnf2tq6KOhYuhLOd2hbMuTiJ+vWMzAeMDe81AzbCgLd4GVtOJ4fDRg==} engines: {node: '>=18'} svg-pan-zoom@3.6.2: @@ -12963,6 +14215,11 @@ packages: engines: {node: '>=14.0.0'} hasBin: true + svgo@4.0.0: + resolution: {integrity: sha512-VvrHQ+9uniE+Mvx3+C9IEe/lWasXCU0nXMY2kZeLrHNICuRiC8uMPyM14UEaMOFA5mhyQqEkB02VoQ16n3DLaw==} + engines: {node: '>=16'} + hasBin: true + swagger-jsdoc@6.2.8: resolution: {integrity: sha512-VPvil1+JRpmJ55CgAtn8DIcpBs0bL5L3q5bVQvF4tAW/k/9JYSj7dCpaYCAv5rufe0vcCbBRQXGvzpkWjvLklQ==} engines: {node: '>=12.0.0'} @@ -12992,6 +14249,10 @@ packages: resolution: {integrity: sha512-GTt8rSKje5FilG+wEdfCkOcLL7LWqpMlr2c3LRuKt/YXxcJ52aGSbGBAdI4L3aaqfrBt6y711El53ItyH1NWzg==} engines: {node: '>=16.0.0'} + synckit@0.11.11: + resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==} + engines: {node: ^14.18.0 || >=16.0.0} + table@6.9.0: resolution: {integrity: sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==} engines: {node: '>=10.0.0'} @@ -13002,10 +14263,6 @@ packages: tailwindcss@4.1.11: resolution: {integrity: sha512-2E9TBm6MDD/xKYe+dvJZAmg3yxIEDNRc0jwlNyDg/4Fil2QcSLjFKGVff0lAf1jjeaArlG/M75Ey/EYr/OJtBA==} - tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} - engines: {node: '>=6'} - tapable@2.2.2: resolution: {integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==} engines: {node: '>=6'} @@ -13014,11 +14271,8 @@ packages: resolution: {integrity: sha512-KCuXjYxCZ3ru40dmND+oCLsXyuA8hoseu2SS404Px5ouyS0A99v8X/mdiLqsR5MTAyamMBN7PRwt2Dv3+xGIxw==} hasBin: true - tar-fs@2.1.2: - resolution: {integrity: sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==} - - tar-fs@3.0.9: - resolution: {integrity: sha512-XF4w9Xp+ZQgifKakjZYmFdkLoSWd34VGKcsTCwlNWM7QG3ZbaxnTsaBwnjFZqHRf/rROxaR8rXnbtwdvaDI+lA==} + tar-fs@3.1.0: + resolution: {integrity: sha512-5Mty5y/sOF1YWj1J6GiBodjlDc05CUR8PKXrsnFAiSG0xA+GHeWLovaZPYUDXkH/1iKRf2+M5+OrRgzC7O9b7w==} tar-stream@2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} @@ -13069,6 +14323,11 @@ packages: engines: {node: '>=10'} hasBin: true + terser@5.43.1: + resolution: {integrity: sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg==} + engines: {node: '>=10'} + hasBin: true + test-exclude@6.0.0: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} @@ -13128,6 +14387,9 @@ packages: resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==} engines: {node: ^18.0.0 || >=20.0.0} + tinyqueue@3.0.0: + resolution: {integrity: sha512-gRa9gwYU3ECmQYv3lslts5hxuIa90veaEcxDYuu3QGOIAEM2mOZkVHp48ANJuu1CURtRdHKUBY5Lm1tHV+sD4g==} + tinyrainbow@2.0.0: resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} engines: {node: '>=14.0.0'} @@ -13146,8 +14408,8 @@ packages: tmp-promise@3.0.3: resolution: {integrity: sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==} - tmp@0.2.3: - resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} + tmp@0.2.4: + resolution: {integrity: sha512-UdiSoX6ypifLmrfQ/XfiawN6hkjSBpCjhKxxZcWlUUmoXLaCKQU0bx4HF/tdDK2uzRuchf1txGvrWBzYREssoQ==} engines: {node: '>=14.14'} tmpl@1.0.5: @@ -13199,8 +14461,8 @@ packages: resolution: {integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==} engines: {node: '>=18'} - tree-dump@1.0.2: - resolution: {integrity: sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==} + tree-dump@1.0.3: + resolution: {integrity: sha512-il+Cv80yVHFBwokQSfd4bldvr1Md951DpgAGfmhydt04L+YzHgubm2tQ7zueWDcGENKHq0ZvGFR/hjvNXilHEg==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' @@ -13209,10 +14471,19 @@ packages: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true + trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + trim-repeated@1.0.0: resolution: {integrity: sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==} engines: {node: '>=0.10.0'} + trim-trailing-lines@2.1.0: + resolution: {integrity: sha512-5UR5Biq4VlVOtzqkm2AZlgvSlDJtME46uV0br0gENbwN4l5+mMKT4b9gJKqWtuL2zAIqajGJGuvbCbcAJUZqBg==} + + trough@2.2.0: + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + truncate-utf8-bytes@1.0.2: resolution: {integrity: sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==} @@ -13259,6 +14530,10 @@ packages: engines: {node: '>=18.0.0'} hasBin: true + tuf-js@3.1.0: + resolution: {integrity: sha512-3T3T04WzowbwV2FDiGXBbr81t64g1MUGGJRgT4x5o97N+8ArdhVCAF9IxFrxuSJmM3E5Asn7nKHkao0ibcZXAg==} + engines: {node: ^18.17.0 || >=20.5.0} + tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} @@ -13268,9 +14543,6 @@ packages: turndown-attendant@0.0.3: resolution: {integrity: sha512-j0LH9oWLiZuv8ZonU4ZkLvQYumfWIZri4Aetbx+NSQ4jLgERZvkwDjA2woLRbPKR7UQtI9/I0AsZVk06+geXNw==} - turndown-plugin-gfm@1.0.2: - resolution: {integrity: sha512-vwz9tfvF7XN/jE0dGoBei3FXWuvll78ohzCZQuOb+ZjWrs3a0XhQVomJEb2Qh4VHTPNRO4GPZh0V7VRbiWwkRg==} - turndown@7.2.0: resolution: {integrity: sha512-eCZGBN4nNNqM9Owkv9HAtWRYfLA4h909E/WGAWWBpmB275ehNhZyk87/Tpvjbp0jjNl9XwCsbe6bm6CqFsgD+A==} @@ -13298,10 +14570,6 @@ packages: resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} engines: {node: '>=10'} - type-fest@2.19.0: - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} - engines: {node: '>=12.20'} - type-fest@4.26.0: resolution: {integrity: sha512-OduNjVJsFbifKb57UqZ2EMP1i4u64Xwow3NYXUtBbD4vIwJdQd4+xl8YDou1dlm4DVrtwT/7Ky8z8WyCULVfxw==} engines: {node: '>=16'} @@ -13337,13 +14605,20 @@ packages: typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - typescript-eslint@8.35.1: - resolution: {integrity: sha512-xslJjFzhOmHYQzSB/QTeASAHbjmxOGEP6Coh93TXmUBFQoJ1VU35UHIDmG06Jd6taf3wqqC1ntBnCMeymy5Ovw==} + typescript-eslint@8.38.0: + resolution: {integrity: sha512-FsZlrYK6bPDGoLeZRuvx2v6qrM03I0U0SnfCLPs/XCCPCFD80xU9Pg09H/K+XFa68uJuZo7l/Xhs+eDRg2l3hg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' + typescript-eslint@8.39.0: + resolution: {integrity: sha512-lH8FvtdtzcHJCkMOKnN73LIn6SLTpoojgJqDAxPm1jCR14eWSGPX8ul/gggBdPMk/d5+u9V854vTYQ8T5jF/1Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + typescript@5.0.4: resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==} engines: {node: '>=12.20'} @@ -13359,6 +14634,11 @@ packages: engines: {node: '>=14.17'} hasBin: true + typescript@5.9.2: + resolution: {integrity: sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==} + engines: {node: '>=14.17'} + hasBin: true + ufo@1.6.1: resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} @@ -13380,12 +14660,15 @@ packages: undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + undici-types@7.8.0: + resolution: {integrity: sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==} + undici@6.21.3: resolution: {integrity: sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw==} engines: {node: '>=18.17'} - undici@7.10.0: - resolution: {integrity: sha512-u5otvFBOBZvmdjWLVW+5DAc9Nkq8f24g0O9oY7qw2JVIF1VocIFoyz9JFkuVOS2j41AufeO0xnlweJ2RLT8nGw==} + undici@7.12.0: + resolution: {integrity: sha512-GrKEsc3ughskmGA9jevVlIOPMiiAHJ4OFUtaAH+NhfTUSiZ1wMPIQqQvAJUrJspFXJt3EBWgpAeoHEDVT1IBug==} engines: {node: '>=20.18.1'} unescape@1.0.1: @@ -13411,6 +14694,9 @@ packages: unidragger@3.0.1: resolution: {integrity: sha512-RngbGSwBFmqGBWjkaH+yB677uzR95blSQyxq6hYbrQCejH3Mx1nm8DVOuh3M9k2fQyTstWUG5qlgCnNqV/9jVw==} + unified@11.0.5: + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + union@0.5.0: resolution: {integrity: sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==} engines: {node: '>= 0.8.0'} @@ -13437,18 +14723,36 @@ packages: resolution: {integrity: sha512-9OdaqO5kwqR+1kVgHAhsp5vPNU0hnxRa26rBFNfNgM7M6pNtgzeBn3s/xbyCQL3dcjzOatcef6UUHpB/6MaETg==} engines: {node: ^18.17.0 || >=20.5.0} + 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==} + universalify@0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} engines: {node: '>= 4.0.0'} @@ -13473,6 +14777,9 @@ packages: resolution: {integrity: sha512-RyWSb5AHmGtjjNQ6gIlA67sHOsWpsbWpwDokLwTcejVdOjEkJZh7QKu14J00gDDVSh8kGH4KYC/TNBceXFZhtw==} engines: {node: '>=18.12.0'} + unrs-resolver@1.11.1: + resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} + unused-filename@4.0.1: resolution: {integrity: sha512-ZX6U1J04K1FoSUeoX1OicAhw4d0aro2qo+L8RhJkiGTNtBNkd/Fi1Wxoc9HzcVu6HfOzm0si/N15JjxFmD1z6A==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -13496,9 +14803,6 @@ packages: url-parse@1.5.10: resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} - urlpattern-polyfill@10.0.0: - resolution: {integrity: sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==} - urlpattern-polyfill@10.1.0: resolution: {integrity: sha512-IGjKp/o0NL3Bso1PymYURCJxMPNAf/ILOpendP9f5B6e1rTJgdgiOvgfoT8VxCAdY+Wisb9uhGaJJf3yZ2V9nw==} @@ -13582,8 +14886,8 @@ packages: resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - validate-npm-package-name@6.0.1: - resolution: {integrity: sha512-OaI//3H0J7ZkR1OqlhGA8cA+Cbk/2xFOQpJOt5+s27/ta9eZwpeervh4Mxh4w0im/kdgktowaqVNR7QOrUd7Yg==} + validate-npm-package-name@6.0.2: + resolution: {integrity: sha512-IUoow1YUtvoBBC06dXs8bR8B9vuA3aJfmQNKMoaPG/OFsPmoQvw8xh+6Ye25Gx9DQhoEom3Pcu9MKHerm/NpUQ==} engines: {node: ^18.17.0 || >=20.5.0} validator@13.15.0: @@ -13609,6 +14913,12 @@ packages: vfile-message@2.0.4: resolution: {integrity: sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==} + vfile-message@4.0.2: + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + + vfile@6.0.3: + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + vite-node@3.2.4: resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -13623,8 +14933,8 @@ packages: vite: optional: true - vite-plugin-static-copy@3.1.0: - resolution: {integrity: sha512-ONFBaYoN1qIiCxMCfeHI96lqLza7ujx/QClIXp4kEULUbyH2qLgYoaL8JHhk3FWjSB4TpzoaN3iMCyCFldyXzw==} + vite-plugin-static-copy@3.1.1: + resolution: {integrity: sha512-oR53SkL5cX4KT1t18E/xU50vJDo0N8oaHza4EMk0Fm+2/u6nQivxavOfrDk3udWj+dizRizB/QnBvJOOQrTTAQ==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: vite: ^5.0.0 || ^6.0.0 || ^7.0.0 @@ -13635,6 +14945,11 @@ packages: typescript: '>=4.9.4' vite: '>=4.0.2' + vite-prerender-plugin@0.5.11: + resolution: {integrity: sha512-xWOhb8Ef2zoJIiinYVunIf3omRfUbEXcPEvrkQcrDpJ2yjDokxhvQ26eSJbkthRhymntWx6816jpATrJphh+ug==} + peerDependencies: + vite: 5.x || 6.x || 7.x + vite@7.0.0: resolution: {integrity: sha512-ixXJB1YRgDIw2OszKQS9WxGHKwLdCsbQNkpJN171udl6szi/rIySHL6/Os3s2+oE4P/FLD4dxg4mD7Wust+u5g==} engines: {node: ^20.19.0 || >=22.12.0} @@ -13675,8 +14990,8 @@ packages: yaml: optional: true - vite@7.0.1: - resolution: {integrity: sha512-BiKOQoW5HGR30E6JDeNsati6HnSPMVEKbkIWbCiol+xKeu3g5owrjy7kbk/QEMuzCV87dSUTvycYKmlcfGKq3Q==} + vite@7.1.1: + resolution: {integrity: sha512-yJ+Mp7OyV+4S+afWo+QyoL9jFWD11QFH0i5i7JypnfTcA1rmgxCbiA8WwAICDEtZ1Z1hzrVhN8R8rGTqkTY8ZQ==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -13715,16 +15030,8 @@ packages: yaml: optional: true - vitefu@1.0.6: - resolution: {integrity: sha512-+Rex1GlappUyNN6UfwbVZne/9cYC4+R2XDk9xkNXBKMw6HQagdX9PgZ8V2v1WUSK1wfBLp7qbI1+XSNIlB1xmA==} - peerDependencies: - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 - peerDependenciesMeta: - vite: - optional: true - - vitefu@1.0.7: - resolution: {integrity: sha512-eRWXLBbJjW3X5z5P5IHcSm2yYbYRPb2kQuc+oqsbAl99WB5kVsPbiiox+cymo8twTzifA6itvhr2CmjnaZZp0Q==} + 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: @@ -13782,6 +15089,9 @@ packages: vscode-uri@3.1.0: resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} + vt-pbf@3.1.3: + resolution: {integrity: sha512-2LzDFzt0mZKZ9IpVF2r69G9bXaP2Q2sArJCmcCgvfTdCCZzSyz4aCLoQyUilu37Ll56tCblIZrXFIjNUpGIlmA==} + w3c-hr-time@1.0.2: resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==} deprecated: Use your platform's native performance.now() and performance.timeOrigin. @@ -13808,8 +15118,8 @@ packages: warning@4.0.3: resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==} - watchpack@2.4.2: - resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} + watchpack@2.4.4: + resolution: {integrity: sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==} engines: {node: '>=10.13.0'} wbuf@1.7.3: @@ -13818,16 +15128,19 @@ packages: wcwidth@1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + web-namespaces@2.0.1: + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + web-streams-polyfill@3.3.3: resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} engines: {node: '>= 8'} - webdriver@9.15.0: - resolution: {integrity: sha512-JCW5xvhZtL6kjbckdePgVYMOlvWbh22F1VFkIf9pw3prwXI2EHED5Eq/nfDnNfHiqr0AfFKWmIDPziSafrVv4Q==} + webdriver@9.18.0: + resolution: {integrity: sha512-07lC4FLj45lHJo0FvLjUp5qkjzEGWJWKGsxLoe9rQ2Fg88iYsqgr9JfSj8qxHpazBaBd+77+ZtpmMZ2X2D1Zuw==} engines: {node: '>=18.20.0'} - webdriverio@9.15.0: - resolution: {integrity: sha512-910g6ktwXdAKGyhgCPGw9BzIKOEBBYMFN1bLwC3bW/3mFlxGHO/n70c7Sg9hrsu9VWTzv6m+1Clf27B9uz4a/Q==} + webdriverio@9.18.4: + resolution: {integrity: sha512-Q/gghz/Zt7EhTnbDQfLb61WgSwCksXZE60lEzmDXe4fULCH/6Js5IWUsne3W+BRy6nXeVvFscHD/d7S77dbamw==} engines: {node: '>=18.20.0'} peerDependencies: puppeteer-core: '>=22.x || <=24.x' @@ -13859,8 +15172,8 @@ packages: webpack: optional: true - webpack-dev-server@5.2.1: - resolution: {integrity: sha512-ml/0HIj9NLpVKOMq+SuBPLHcmbG+TGIjXRHsYfZwocUBIqEvws8NnS/V9AFQ5FKP+tgn5adwVwRrTEpGL33QFQ==} + webpack-dev-server@5.2.2: + resolution: {integrity: sha512-QcQ72gh8a+7JO63TAx/6XZf/CWhgMzu5m0QirvPfGvptOusAxG12w2+aua1Jkjr7hzaWDnJ2n6JFeexMHI+Zjg==} engines: {node: '>= 18.12.0'} hasBin: true peerDependencies: @@ -13879,15 +15192,15 @@ packages: resolution: {integrity: sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==} engines: {node: '>=10.13.0'} - webpack-sources@3.2.3: - resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + webpack-sources@3.3.3: + 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.99.9: - resolution: {integrity: sha512-brOPwM3JnmOa+7kd3NsmOUOwbDAj8FT9xDsG3IW0MgbN9yZV7Oi/s/+MNQ/EcSMqw7qfoRyXPoeEWT8zLVdVGg==} + webpack@5.100.2: + resolution: {integrity: sha512-QaNKAvGCDRh3wW1dsDjeMdDXwZm2vqq3zn6Pvq4rHOEOGSaUMgOOjG2Y9ZbIGzpfkJk9ZYTHpDqgDfeBDcnLaw==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -13974,6 +15287,11 @@ packages: engines: {node: '>= 8'} hasBin: true + which@4.0.0: + resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} + engines: {node: ^16.13.0 || >=18.0.0} + hasBin: true + which@5.0.0: resolution: {integrity: sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==} engines: {node: ^18.17.0 || >=20.5.0} @@ -13994,8 +15312,8 @@ packages: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} - workerpool@6.5.1: - resolution: {integrity: sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==} + workerpool@9.3.3: + resolution: {integrity: sha512-slxCaKbYjEdFT/o2rH9xS1hf4uRDch1w7Uo+apxhZ+sf/1d9e0ZVkn42kPNGP2dgjIx6YFvSevj0zHvbWe2jdw==} wrap-ansi@5.1.0: resolution: {integrity: sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==} @@ -14020,10 +15338,6 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - write-file-atomic@4.0.2: - resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - write-file-atomic@5.0.1: resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -14064,6 +15378,10 @@ packages: utf-8-validate: optional: true + wsl-utils@0.1.0: + resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==} + engines: {node: '>=18'} + xml-name-validator@3.0.0: resolution: {integrity: sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==} @@ -14131,6 +15449,11 @@ packages: engines: {node: '>= 14.6'} hasBin: true + yaml@2.8.1: + resolution: {integrity: sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==} + engines: {node: '>= 14.6'} + hasBin: true + yargs-parser@13.1.2: resolution: {integrity: sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==} @@ -14218,10 +15541,10 @@ packages: react: optional: true -snapshots: + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} - '@adobe/css-tools@4.3.3': - optional: true +snapshots: '@ampproject/remapping@2.3.0': dependencies: @@ -14235,7 +15558,7 @@ snapshots: '@antfu/utils@8.1.1': {} - '@anthropic-ai/sdk@0.55.1': {} + '@anthropic-ai/sdk@0.58.0': {} '@apidevtools/json-schema-ref-parser@9.1.2': dependencies: @@ -14269,7 +15592,7 @@ snapshots: '@aws-crypto/crc32@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.609.0 + '@aws-sdk/types': 3.821.0 tslib: 2.8.1 '@aws-crypto/sha256-browser@5.2.0': @@ -14277,7 +15600,7 @@ snapshots: '@aws-crypto/sha256-js': 5.2.0 '@aws-crypto/supports-web-crypto': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.609.0 + '@aws-sdk/types': 3.821.0 '@aws-sdk/util-locate-window': 3.804.0 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 @@ -14285,7 +15608,7 @@ snapshots: '@aws-crypto/sha256-js@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.609.0 + '@aws-sdk/types': 3.821.0 tslib: 2.8.1 '@aws-crypto/supports-web-crypto@5.2.0': @@ -14294,364 +15617,354 @@ snapshots: '@aws-crypto/util@5.2.0': dependencies: - '@aws-sdk/types': 3.609.0 + '@aws-sdk/types': 3.821.0 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 - '@aws-sdk/client-bedrock-runtime@3.621.0': + '@aws-sdk/client-bedrock-runtime@3.823.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sso-oidc': 3.621.0(@aws-sdk/client-sts@3.621.0) - '@aws-sdk/client-sts': 3.621.0 - '@aws-sdk/core': 3.621.0 - '@aws-sdk/credential-provider-node': 3.621.0(@aws-sdk/client-sso-oidc@3.621.0(@aws-sdk/client-sts@3.621.0))(@aws-sdk/client-sts@3.621.0) - '@aws-sdk/middleware-host-header': 3.620.0 - '@aws-sdk/middleware-logger': 3.609.0 - '@aws-sdk/middleware-recursion-detection': 3.620.0 - '@aws-sdk/middleware-user-agent': 3.620.0 - '@aws-sdk/region-config-resolver': 3.614.0 - '@aws-sdk/types': 3.609.0 - '@aws-sdk/util-endpoints': 3.614.0 - '@aws-sdk/util-user-agent-browser': 3.609.0 - '@aws-sdk/util-user-agent-node': 3.614.0 - '@smithy/config-resolver': 3.0.13 - '@smithy/core': 2.5.7 - '@smithy/eventstream-serde-browser': 3.0.14 - '@smithy/eventstream-serde-config-resolver': 3.0.11 - '@smithy/eventstream-serde-node': 3.0.13 - '@smithy/fetch-http-handler': 3.2.9 - '@smithy/hash-node': 3.0.11 - '@smithy/invalid-dependency': 3.0.11 - '@smithy/middleware-content-length': 3.0.13 - '@smithy/middleware-endpoint': 3.2.8 - '@smithy/middleware-retry': 3.0.34 - '@smithy/middleware-serde': 3.0.11 - '@smithy/middleware-stack': 3.0.11 - '@smithy/node-config-provider': 3.1.12 - '@smithy/node-http-handler': 3.3.3 - '@smithy/protocol-http': 4.1.8 - '@smithy/smithy-client': 3.7.0 - '@smithy/types': 3.7.2 - '@smithy/url-parser': 3.0.11 - '@smithy/util-base64': 3.0.0 - '@smithy/util-body-length-browser': 3.0.0 - '@smithy/util-body-length-node': 3.0.0 - '@smithy/util-defaults-mode-browser': 3.0.34 - '@smithy/util-defaults-mode-node': 3.0.34 - '@smithy/util-endpoints': 2.1.7 - '@smithy/util-middleware': 3.0.11 - '@smithy/util-retry': 3.0.11 - '@smithy/util-stream': 3.3.4 - '@smithy/util-utf8': 3.0.0 + '@aws-sdk/core': 3.823.0 + '@aws-sdk/credential-provider-node': 3.823.0 + '@aws-sdk/eventstream-handler-node': 3.821.0 + '@aws-sdk/middleware-eventstream': 3.821.0 + '@aws-sdk/middleware-host-header': 3.821.0 + '@aws-sdk/middleware-logger': 3.821.0 + '@aws-sdk/middleware-recursion-detection': 3.821.0 + '@aws-sdk/middleware-user-agent': 3.823.0 + '@aws-sdk/region-config-resolver': 3.821.0 + '@aws-sdk/types': 3.821.0 + '@aws-sdk/util-endpoints': 3.821.0 + '@aws-sdk/util-user-agent-browser': 3.821.0 + '@aws-sdk/util-user-agent-node': 3.823.0 + '@smithy/config-resolver': 4.1.4 + '@smithy/core': 3.7.0 + '@smithy/eventstream-serde-browser': 4.0.4 + '@smithy/eventstream-serde-config-resolver': 4.1.2 + '@smithy/eventstream-serde-node': 4.0.4 + '@smithy/fetch-http-handler': 5.1.0 + '@smithy/hash-node': 4.0.4 + '@smithy/invalid-dependency': 4.0.4 + '@smithy/middleware-content-length': 4.0.4 + '@smithy/middleware-endpoint': 4.1.14 + '@smithy/middleware-retry': 4.1.15 + '@smithy/middleware-serde': 4.0.8 + '@smithy/middleware-stack': 4.0.4 + '@smithy/node-config-provider': 4.1.3 + '@smithy/node-http-handler': 4.1.0 + '@smithy/protocol-http': 5.1.2 + '@smithy/smithy-client': 4.4.6 + '@smithy/types': 4.3.1 + '@smithy/url-parser': 4.0.4 + '@smithy/util-base64': 4.0.0 + '@smithy/util-body-length-browser': 4.0.0 + '@smithy/util-body-length-node': 4.0.0 + '@smithy/util-defaults-mode-browser': 4.0.22 + '@smithy/util-defaults-mode-node': 4.0.22 + '@smithy/util-endpoints': 3.0.6 + '@smithy/util-middleware': 4.0.4 + '@smithy/util-retry': 4.0.6 + '@smithy/util-stream': 4.2.3 + '@smithy/util-utf8': 4.0.0 + '@types/uuid': 9.0.8 + tslib: 2.8.1 + uuid: 9.0.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-sso@3.823.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.823.0 + '@aws-sdk/middleware-host-header': 3.821.0 + '@aws-sdk/middleware-logger': 3.821.0 + '@aws-sdk/middleware-recursion-detection': 3.821.0 + '@aws-sdk/middleware-user-agent': 3.823.0 + '@aws-sdk/region-config-resolver': 3.821.0 + '@aws-sdk/types': 3.821.0 + '@aws-sdk/util-endpoints': 3.821.0 + '@aws-sdk/util-user-agent-browser': 3.821.0 + '@aws-sdk/util-user-agent-node': 3.823.0 + '@smithy/config-resolver': 4.1.4 + '@smithy/core': 3.7.0 + '@smithy/fetch-http-handler': 5.1.0 + '@smithy/hash-node': 4.0.4 + '@smithy/invalid-dependency': 4.0.4 + '@smithy/middleware-content-length': 4.0.4 + '@smithy/middleware-endpoint': 4.1.14 + '@smithy/middleware-retry': 4.1.15 + '@smithy/middleware-serde': 4.0.8 + '@smithy/middleware-stack': 4.0.4 + '@smithy/node-config-provider': 4.1.3 + '@smithy/node-http-handler': 4.1.0 + '@smithy/protocol-http': 5.1.2 + '@smithy/smithy-client': 4.4.6 + '@smithy/types': 4.3.1 + '@smithy/url-parser': 4.0.4 + '@smithy/util-base64': 4.0.0 + '@smithy/util-body-length-browser': 4.0.0 + '@smithy/util-body-length-node': 4.0.0 + '@smithy/util-defaults-mode-browser': 4.0.22 + '@smithy/util-defaults-mode-node': 4.0.22 + '@smithy/util-endpoints': 3.0.6 + '@smithy/util-middleware': 4.0.4 + '@smithy/util-retry': 4.0.6 + '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sso-oidc@3.621.0(@aws-sdk/client-sts@3.621.0)': + '@aws-sdk/core@3.823.0': dependencies: - '@aws-crypto/sha256-browser': 5.2.0 - '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sts': 3.621.0 - '@aws-sdk/core': 3.621.0 - '@aws-sdk/credential-provider-node': 3.621.0(@aws-sdk/client-sso-oidc@3.621.0(@aws-sdk/client-sts@3.621.0))(@aws-sdk/client-sts@3.621.0) - '@aws-sdk/middleware-host-header': 3.620.0 - '@aws-sdk/middleware-logger': 3.609.0 - '@aws-sdk/middleware-recursion-detection': 3.620.0 - '@aws-sdk/middleware-user-agent': 3.620.0 - '@aws-sdk/region-config-resolver': 3.614.0 - '@aws-sdk/types': 3.609.0 - '@aws-sdk/util-endpoints': 3.614.0 - '@aws-sdk/util-user-agent-browser': 3.609.0 - '@aws-sdk/util-user-agent-node': 3.614.0 - '@smithy/config-resolver': 3.0.13 - '@smithy/core': 2.5.7 - '@smithy/fetch-http-handler': 3.2.9 - '@smithy/hash-node': 3.0.11 - '@smithy/invalid-dependency': 3.0.11 - '@smithy/middleware-content-length': 3.0.13 - '@smithy/middleware-endpoint': 3.2.8 - '@smithy/middleware-retry': 3.0.34 - '@smithy/middleware-serde': 3.0.11 - '@smithy/middleware-stack': 3.0.11 - '@smithy/node-config-provider': 3.1.12 - '@smithy/node-http-handler': 3.3.3 - '@smithy/protocol-http': 4.1.8 - '@smithy/smithy-client': 3.7.0 - '@smithy/types': 3.7.2 - '@smithy/url-parser': 3.0.11 - '@smithy/util-base64': 3.0.0 - '@smithy/util-body-length-browser': 3.0.0 - '@smithy/util-body-length-node': 3.0.0 - '@smithy/util-defaults-mode-browser': 3.0.34 - '@smithy/util-defaults-mode-node': 3.0.34 - '@smithy/util-endpoints': 2.1.7 - '@smithy/util-middleware': 3.0.11 - '@smithy/util-retry': 3.0.11 - '@smithy/util-utf8': 3.0.0 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/client-sso@3.621.0': - dependencies: - '@aws-crypto/sha256-browser': 5.2.0 - '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.621.0 - '@aws-sdk/middleware-host-header': 3.620.0 - '@aws-sdk/middleware-logger': 3.609.0 - '@aws-sdk/middleware-recursion-detection': 3.620.0 - '@aws-sdk/middleware-user-agent': 3.620.0 - '@aws-sdk/region-config-resolver': 3.614.0 - '@aws-sdk/types': 3.609.0 - '@aws-sdk/util-endpoints': 3.614.0 - '@aws-sdk/util-user-agent-browser': 3.609.0 - '@aws-sdk/util-user-agent-node': 3.614.0 - '@smithy/config-resolver': 3.0.13 - '@smithy/core': 2.5.7 - '@smithy/fetch-http-handler': 3.2.9 - '@smithy/hash-node': 3.0.11 - '@smithy/invalid-dependency': 3.0.11 - '@smithy/middleware-content-length': 3.0.13 - '@smithy/middleware-endpoint': 3.2.8 - '@smithy/middleware-retry': 3.0.34 - '@smithy/middleware-serde': 3.0.11 - '@smithy/middleware-stack': 3.0.11 - '@smithy/node-config-provider': 3.1.12 - '@smithy/node-http-handler': 3.3.3 - '@smithy/protocol-http': 4.1.8 - '@smithy/smithy-client': 3.7.0 - '@smithy/types': 3.7.2 - '@smithy/url-parser': 3.0.11 - '@smithy/util-base64': 3.0.0 - '@smithy/util-body-length-browser': 3.0.0 - '@smithy/util-body-length-node': 3.0.0 - '@smithy/util-defaults-mode-browser': 3.0.34 - '@smithy/util-defaults-mode-node': 3.0.34 - '@smithy/util-endpoints': 2.1.7 - '@smithy/util-middleware': 3.0.11 - '@smithy/util-retry': 3.0.11 - '@smithy/util-utf8': 3.0.0 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/client-sts@3.621.0': - dependencies: - '@aws-crypto/sha256-browser': 5.2.0 - '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sso-oidc': 3.621.0(@aws-sdk/client-sts@3.621.0) - '@aws-sdk/core': 3.621.0 - '@aws-sdk/credential-provider-node': 3.621.0(@aws-sdk/client-sso-oidc@3.621.0(@aws-sdk/client-sts@3.621.0))(@aws-sdk/client-sts@3.621.0) - '@aws-sdk/middleware-host-header': 3.620.0 - '@aws-sdk/middleware-logger': 3.609.0 - '@aws-sdk/middleware-recursion-detection': 3.620.0 - '@aws-sdk/middleware-user-agent': 3.620.0 - '@aws-sdk/region-config-resolver': 3.614.0 - '@aws-sdk/types': 3.609.0 - '@aws-sdk/util-endpoints': 3.614.0 - '@aws-sdk/util-user-agent-browser': 3.609.0 - '@aws-sdk/util-user-agent-node': 3.614.0 - '@smithy/config-resolver': 3.0.13 - '@smithy/core': 2.5.7 - '@smithy/fetch-http-handler': 3.2.9 - '@smithy/hash-node': 3.0.11 - '@smithy/invalid-dependency': 3.0.11 - '@smithy/middleware-content-length': 3.0.13 - '@smithy/middleware-endpoint': 3.2.8 - '@smithy/middleware-retry': 3.0.34 - '@smithy/middleware-serde': 3.0.11 - '@smithy/middleware-stack': 3.0.11 - '@smithy/node-config-provider': 3.1.12 - '@smithy/node-http-handler': 3.3.3 - '@smithy/protocol-http': 4.1.8 - '@smithy/smithy-client': 3.7.0 - '@smithy/types': 3.7.2 - '@smithy/url-parser': 3.0.11 - '@smithy/util-base64': 3.0.0 - '@smithy/util-body-length-browser': 3.0.0 - '@smithy/util-body-length-node': 3.0.0 - '@smithy/util-defaults-mode-browser': 3.0.34 - '@smithy/util-defaults-mode-node': 3.0.34 - '@smithy/util-endpoints': 2.1.7 - '@smithy/util-middleware': 3.0.11 - '@smithy/util-retry': 3.0.11 - '@smithy/util-utf8': 3.0.0 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/core@3.621.0': - dependencies: - '@smithy/core': 2.5.7 - '@smithy/node-config-provider': 3.1.12 - '@smithy/protocol-http': 4.1.8 - '@smithy/signature-v4': 4.2.4 - '@smithy/smithy-client': 3.7.0 - '@smithy/types': 3.7.2 - '@smithy/util-middleware': 3.0.11 + '@aws-sdk/types': 3.821.0 + '@aws-sdk/xml-builder': 3.821.0 + '@smithy/core': 3.7.0 + '@smithy/node-config-provider': 4.1.3 + '@smithy/property-provider': 4.0.4 + '@smithy/protocol-http': 5.1.2 + '@smithy/signature-v4': 5.1.2 + '@smithy/smithy-client': 4.4.6 + '@smithy/types': 4.3.1 + '@smithy/util-base64': 4.0.0 + '@smithy/util-body-length-browser': 4.0.0 + '@smithy/util-middleware': 4.0.4 + '@smithy/util-utf8': 4.0.0 fast-xml-parser: 4.4.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-env@3.620.1': + '@aws-sdk/credential-provider-env@3.823.0': dependencies: - '@aws-sdk/types': 3.609.0 - '@smithy/property-provider': 3.1.11 - '@smithy/types': 3.7.2 + '@aws-sdk/core': 3.823.0 + '@aws-sdk/types': 3.821.0 + '@smithy/property-provider': 4.0.4 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-http@3.621.0': + '@aws-sdk/credential-provider-http@3.823.0': dependencies: - '@aws-sdk/types': 3.609.0 - '@smithy/fetch-http-handler': 3.2.9 - '@smithy/node-http-handler': 3.3.3 - '@smithy/property-provider': 3.1.11 - '@smithy/protocol-http': 4.1.8 - '@smithy/smithy-client': 3.7.0 - '@smithy/types': 3.7.2 - '@smithy/util-stream': 3.3.4 + '@aws-sdk/core': 3.823.0 + '@aws-sdk/types': 3.821.0 + '@smithy/fetch-http-handler': 5.1.0 + '@smithy/node-http-handler': 4.1.0 + '@smithy/property-provider': 4.0.4 + '@smithy/protocol-http': 5.1.2 + '@smithy/smithy-client': 4.4.6 + '@smithy/types': 4.3.1 + '@smithy/util-stream': 4.2.3 tslib: 2.8.1 - '@aws-sdk/credential-provider-ini@3.621.0(@aws-sdk/client-sso-oidc@3.621.0(@aws-sdk/client-sts@3.621.0))(@aws-sdk/client-sts@3.621.0)': + '@aws-sdk/credential-provider-ini@3.823.0': dependencies: - '@aws-sdk/client-sts': 3.621.0 - '@aws-sdk/credential-provider-env': 3.620.1 - '@aws-sdk/credential-provider-http': 3.621.0 - '@aws-sdk/credential-provider-process': 3.620.1 - '@aws-sdk/credential-provider-sso': 3.621.0(@aws-sdk/client-sso-oidc@3.621.0(@aws-sdk/client-sts@3.621.0)) - '@aws-sdk/credential-provider-web-identity': 3.621.0(@aws-sdk/client-sts@3.621.0) - '@aws-sdk/types': 3.609.0 - '@smithy/credential-provider-imds': 3.2.8 - '@smithy/property-provider': 3.1.11 - '@smithy/shared-ini-file-loader': 3.1.12 - '@smithy/types': 3.7.2 + '@aws-sdk/core': 3.823.0 + '@aws-sdk/credential-provider-env': 3.823.0 + '@aws-sdk/credential-provider-http': 3.823.0 + '@aws-sdk/credential-provider-process': 3.823.0 + '@aws-sdk/credential-provider-sso': 3.823.0 + '@aws-sdk/credential-provider-web-identity': 3.823.0 + '@aws-sdk/nested-clients': 3.823.0 + '@aws-sdk/types': 3.821.0 + '@smithy/credential-provider-imds': 4.0.6 + '@smithy/property-provider': 4.0.4 + '@smithy/shared-ini-file-loader': 4.0.4 + '@smithy/types': 4.3.1 tslib: 2.8.1 transitivePeerDependencies: - - '@aws-sdk/client-sso-oidc' - aws-crt - '@aws-sdk/credential-provider-node@3.621.0(@aws-sdk/client-sso-oidc@3.621.0(@aws-sdk/client-sts@3.621.0))(@aws-sdk/client-sts@3.621.0)': + '@aws-sdk/credential-provider-node@3.823.0': dependencies: - '@aws-sdk/credential-provider-env': 3.620.1 - '@aws-sdk/credential-provider-http': 3.621.0 - '@aws-sdk/credential-provider-ini': 3.621.0(@aws-sdk/client-sso-oidc@3.621.0(@aws-sdk/client-sts@3.621.0))(@aws-sdk/client-sts@3.621.0) - '@aws-sdk/credential-provider-process': 3.620.1 - '@aws-sdk/credential-provider-sso': 3.621.0(@aws-sdk/client-sso-oidc@3.621.0(@aws-sdk/client-sts@3.621.0)) - '@aws-sdk/credential-provider-web-identity': 3.621.0(@aws-sdk/client-sts@3.621.0) - '@aws-sdk/types': 3.609.0 - '@smithy/credential-provider-imds': 3.2.8 - '@smithy/property-provider': 3.1.11 - '@smithy/shared-ini-file-loader': 3.1.12 - '@smithy/types': 3.7.2 + '@aws-sdk/credential-provider-env': 3.823.0 + '@aws-sdk/credential-provider-http': 3.823.0 + '@aws-sdk/credential-provider-ini': 3.823.0 + '@aws-sdk/credential-provider-process': 3.823.0 + '@aws-sdk/credential-provider-sso': 3.823.0 + '@aws-sdk/credential-provider-web-identity': 3.823.0 + '@aws-sdk/types': 3.821.0 + '@smithy/credential-provider-imds': 4.0.6 + '@smithy/property-provider': 4.0.4 + '@smithy/shared-ini-file-loader': 4.0.4 + '@smithy/types': 4.3.1 tslib: 2.8.1 transitivePeerDependencies: - - '@aws-sdk/client-sso-oidc' - - '@aws-sdk/client-sts' - aws-crt - '@aws-sdk/credential-provider-process@3.620.1': + '@aws-sdk/credential-provider-process@3.823.0': dependencies: - '@aws-sdk/types': 3.609.0 - '@smithy/property-provider': 3.1.11 - '@smithy/shared-ini-file-loader': 3.1.12 - '@smithy/types': 3.7.2 + '@aws-sdk/core': 3.823.0 + '@aws-sdk/types': 3.821.0 + '@smithy/property-provider': 4.0.4 + '@smithy/shared-ini-file-loader': 4.0.4 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-sso@3.621.0(@aws-sdk/client-sso-oidc@3.621.0(@aws-sdk/client-sts@3.621.0))': + '@aws-sdk/credential-provider-sso@3.823.0': dependencies: - '@aws-sdk/client-sso': 3.621.0 - '@aws-sdk/token-providers': 3.614.0(@aws-sdk/client-sso-oidc@3.621.0(@aws-sdk/client-sts@3.621.0)) - '@aws-sdk/types': 3.609.0 - '@smithy/property-provider': 3.1.11 - '@smithy/shared-ini-file-loader': 3.1.12 - '@smithy/types': 3.7.2 + '@aws-sdk/client-sso': 3.823.0 + '@aws-sdk/core': 3.823.0 + '@aws-sdk/token-providers': 3.823.0 + '@aws-sdk/types': 3.821.0 + '@smithy/property-provider': 4.0.4 + '@smithy/shared-ini-file-loader': 4.0.4 + '@smithy/types': 4.3.1 tslib: 2.8.1 transitivePeerDependencies: - - '@aws-sdk/client-sso-oidc' - aws-crt - '@aws-sdk/credential-provider-web-identity@3.621.0(@aws-sdk/client-sts@3.621.0)': + '@aws-sdk/credential-provider-web-identity@3.823.0': dependencies: - '@aws-sdk/client-sts': 3.621.0 - '@aws-sdk/types': 3.609.0 - '@smithy/property-provider': 3.1.11 - '@smithy/types': 3.7.2 + '@aws-sdk/core': 3.823.0 + '@aws-sdk/nested-clients': 3.823.0 + '@aws-sdk/types': 3.821.0 + '@smithy/property-provider': 4.0.4 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/eventstream-handler-node@3.821.0': + dependencies: + '@aws-sdk/types': 3.821.0 + '@smithy/eventstream-codec': 4.0.4 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@aws-sdk/middleware-host-header@3.620.0': + '@aws-sdk/middleware-eventstream@3.821.0': dependencies: - '@aws-sdk/types': 3.609.0 - '@smithy/protocol-http': 4.1.8 - '@smithy/types': 3.7.2 + '@aws-sdk/types': 3.821.0 + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@aws-sdk/middleware-logger@3.609.0': + '@aws-sdk/middleware-host-header@3.821.0': dependencies: - '@aws-sdk/types': 3.609.0 - '@smithy/types': 3.7.2 + '@aws-sdk/types': 3.821.0 + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@aws-sdk/middleware-recursion-detection@3.620.0': + '@aws-sdk/middleware-logger@3.821.0': dependencies: - '@aws-sdk/types': 3.609.0 - '@smithy/protocol-http': 4.1.8 - '@smithy/types': 3.7.2 + '@aws-sdk/types': 3.821.0 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@aws-sdk/middleware-user-agent@3.620.0': + '@aws-sdk/middleware-recursion-detection@3.821.0': dependencies: - '@aws-sdk/types': 3.609.0 - '@aws-sdk/util-endpoints': 3.614.0 - '@smithy/protocol-http': 4.1.8 - '@smithy/types': 3.7.2 + '@aws-sdk/types': 3.821.0 + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@aws-sdk/region-config-resolver@3.614.0': + '@aws-sdk/middleware-user-agent@3.823.0': dependencies: - '@aws-sdk/types': 3.609.0 - '@smithy/node-config-provider': 3.1.12 - '@smithy/types': 3.7.2 - '@smithy/util-config-provider': 3.0.0 - '@smithy/util-middleware': 3.0.11 + '@aws-sdk/core': 3.823.0 + '@aws-sdk/types': 3.821.0 + '@aws-sdk/util-endpoints': 3.821.0 + '@smithy/core': 3.7.0 + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@aws-sdk/token-providers@3.614.0(@aws-sdk/client-sso-oidc@3.621.0(@aws-sdk/client-sts@3.621.0))': + '@aws-sdk/nested-clients@3.823.0': dependencies: - '@aws-sdk/client-sso-oidc': 3.621.0(@aws-sdk/client-sts@3.621.0) - '@aws-sdk/types': 3.609.0 - '@smithy/property-provider': 3.1.11 - '@smithy/shared-ini-file-loader': 3.1.12 - '@smithy/types': 3.7.2 + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.823.0 + '@aws-sdk/middleware-host-header': 3.821.0 + '@aws-sdk/middleware-logger': 3.821.0 + '@aws-sdk/middleware-recursion-detection': 3.821.0 + '@aws-sdk/middleware-user-agent': 3.823.0 + '@aws-sdk/region-config-resolver': 3.821.0 + '@aws-sdk/types': 3.821.0 + '@aws-sdk/util-endpoints': 3.821.0 + '@aws-sdk/util-user-agent-browser': 3.821.0 + '@aws-sdk/util-user-agent-node': 3.823.0 + '@smithy/config-resolver': 4.1.4 + '@smithy/core': 3.7.0 + '@smithy/fetch-http-handler': 5.1.0 + '@smithy/hash-node': 4.0.4 + '@smithy/invalid-dependency': 4.0.4 + '@smithy/middleware-content-length': 4.0.4 + '@smithy/middleware-endpoint': 4.1.14 + '@smithy/middleware-retry': 4.1.15 + '@smithy/middleware-serde': 4.0.8 + '@smithy/middleware-stack': 4.0.4 + '@smithy/node-config-provider': 4.1.3 + '@smithy/node-http-handler': 4.1.0 + '@smithy/protocol-http': 5.1.2 + '@smithy/smithy-client': 4.4.6 + '@smithy/types': 4.3.1 + '@smithy/url-parser': 4.0.4 + '@smithy/util-base64': 4.0.0 + '@smithy/util-body-length-browser': 4.0.0 + '@smithy/util-body-length-node': 4.0.0 + '@smithy/util-defaults-mode-browser': 4.0.22 + '@smithy/util-defaults-mode-node': 4.0.22 + '@smithy/util-endpoints': 3.0.6 + '@smithy/util-middleware': 4.0.4 + '@smithy/util-retry': 4.0.6 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/region-config-resolver@3.821.0': + dependencies: + '@aws-sdk/types': 3.821.0 + '@smithy/node-config-provider': 4.1.3 + '@smithy/types': 4.3.1 + '@smithy/util-config-provider': 4.0.0 + '@smithy/util-middleware': 4.0.4 tslib: 2.8.1 - '@aws-sdk/types@3.609.0': + '@aws-sdk/token-providers@3.823.0': dependencies: - '@smithy/types': 3.7.2 + '@aws-sdk/core': 3.823.0 + '@aws-sdk/nested-clients': 3.823.0 + '@aws-sdk/types': 3.821.0 + '@smithy/property-provider': 4.0.4 + '@smithy/shared-ini-file-loader': 4.0.4 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/types@3.821.0': + dependencies: + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@aws-sdk/util-endpoints@3.614.0': + '@aws-sdk/util-endpoints@3.821.0': dependencies: - '@aws-sdk/types': 3.609.0 - '@smithy/types': 3.7.2 - '@smithy/util-endpoints': 2.1.7 + '@aws-sdk/types': 3.821.0 + '@smithy/types': 4.3.1 + '@smithy/util-endpoints': 3.0.6 tslib: 2.8.1 '@aws-sdk/util-locate-window@3.804.0': dependencies: tslib: 2.8.1 - '@aws-sdk/util-user-agent-browser@3.609.0': + '@aws-sdk/util-user-agent-browser@3.821.0': dependencies: - '@aws-sdk/types': 3.609.0 - '@smithy/types': 3.7.2 + '@aws-sdk/types': 3.821.0 + '@smithy/types': 4.3.1 bowser: 2.11.0 tslib: 2.8.1 - '@aws-sdk/util-user-agent-node@3.614.0': + '@aws-sdk/util-user-agent-node@3.823.0': dependencies: - '@aws-sdk/types': 3.609.0 - '@smithy/node-config-provider': 3.1.12 - '@smithy/types': 3.7.2 + '@aws-sdk/middleware-user-agent': 3.823.0 + '@aws-sdk/types': 3.821.0 + '@smithy/node-config-provider': 4.1.3 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@aws-sdk/xml-builder@3.821.0': + dependencies: + '@smithy/types': 4.3.1 tslib: 2.8.1 '@babel/code-frame@7.26.2': @@ -14666,30 +15979,8 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/compat-data@7.26.8': {} - '@babel/compat-data@7.28.0': {} - '@babel/core@7.26.10': - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.27.0 - '@babel/helper-compilation-targets': 7.27.0 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10) - '@babel/helpers': 7.27.0 - '@babel/parser': 7.27.5 - '@babel/template': 7.27.0 - '@babel/traverse': 7.27.0 - '@babel/types': 7.27.6 - convert-source-map: 2.0.0 - debug: 4.4.1(supports-color@6.0.0) - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - '@babel/core@7.28.0': dependencies: '@ampproject/remapping': 2.3.0 @@ -14701,7 +15992,7 @@ snapshots: '@babel/parser': 7.28.0 '@babel/template': 7.27.2 '@babel/traverse': 7.28.0 - '@babel/types': 7.28.0 + '@babel/types': 7.28.1 convert-source-map: 2.0.0 debug: 4.4.1(supports-color@6.0.0) gensync: 1.0.0-beta.2 @@ -14712,8 +16003,8 @@ snapshots: '@babel/generator@7.27.0': dependencies: - '@babel/parser': 7.27.5 - '@babel/types': 7.27.6 + '@babel/parser': 7.28.0 + '@babel/types': 7.28.1 '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.29 jsesc: 3.1.0 @@ -14721,22 +16012,18 @@ snapshots: '@babel/generator@7.28.0': dependencies: '@babel/parser': 7.28.0 - '@babel/types': 7.28.0 + '@babel/types': 7.28.1 '@jridgewell/gen-mapping': 0.3.12 '@jridgewell/trace-mapping': 0.3.29 jsesc: 3.1.0 '@babel/helper-annotate-as-pure@7.25.9': dependencies: - '@babel/types': 7.28.0 + '@babel/types': 7.28.1 - '@babel/helper-compilation-targets@7.27.0': + '@babel/helper-annotate-as-pure@7.27.3': dependencies: - '@babel/compat-data': 7.26.8 - '@babel/helper-validator-option': 7.25.9 - browserslist: 4.24.4 - lru-cache: 5.1.1 - semver: 6.3.1 + '@babel/types': 7.28.1 '@babel/helper-compilation-targets@7.27.2': dependencies: @@ -14746,31 +16033,31 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.27.0(@babel/core@7.26.10)': + '@babel/helper-create-class-features-plugin@7.27.0(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.28.0 '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-member-expression-to-functions': 7.25.9 '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.10) + '@babel/helper-replace-supers': 7.26.5(@babel/core@7.28.0) '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/traverse': 7.27.0 + '@babel/traverse': 7.28.0 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/helper-create-regexp-features-plugin@7.27.0(@babel/core@7.26.10)': + '@babel/helper-create-regexp-features-plugin@7.27.0(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.28.0 '@babel/helper-annotate-as-pure': 7.25.9 regexpu-core: 6.2.0 semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.6.4(@babel/core@7.26.10)': + '@babel/helper-define-polyfill-provider@0.6.4(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-compilation-targets': 7.27.0 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 debug: 4.4.1(supports-color@6.0.0) lodash.debounce: 4.0.8 resolve: 1.22.10 @@ -14781,31 +16068,15 @@ snapshots: '@babel/helper-member-expression-to-functions@7.25.9': dependencies: - '@babel/traverse': 7.27.0 - '@babel/types': 7.28.0 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-imports@7.25.9': - dependencies: - '@babel/traverse': 7.27.0 - '@babel/types': 7.28.0 + '@babel/traverse': 7.28.0 + '@babel/types': 7.28.1 transitivePeerDependencies: - supports-color '@babel/helper-module-imports@7.27.1': dependencies: '@babel/traverse': 7.28.0 - '@babel/types': 7.28.0 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.27.0 + '@babel/types': 7.28.1 transitivePeerDependencies: - supports-color @@ -14820,32 +16091,32 @@ snapshots: '@babel/helper-optimise-call-expression@7.25.9': dependencies: - '@babel/types': 7.28.0 + '@babel/types': 7.28.1 - '@babel/helper-plugin-utils@7.26.5': {} + '@babel/helper-plugin-utils@7.27.1': {} - '@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.26.10)': + '@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.28.0 '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-wrap-function': 7.25.9 '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color - '@babel/helper-replace-supers@7.26.5(@babel/core@7.26.10)': + '@babel/helper-replace-supers@7.26.5(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.28.0 '@babel/helper-member-expression-to-functions': 7.25.9 '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/traverse': 7.27.0 + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color '@babel/helper-skip-transparent-expression-wrappers@7.25.9': dependencies: '@babel/traverse': 7.28.0 - '@babel/types': 7.28.0 + '@babel/types': 7.28.1 transitivePeerDependencies: - supports-color @@ -14853,632 +16124,628 @@ snapshots: '@babel/helper-validator-identifier@7.27.1': {} - '@babel/helper-validator-option@7.25.9': {} - '@babel/helper-validator-option@7.27.1': {} '@babel/helper-wrap-function@7.25.9': dependencies: '@babel/template': 7.27.2 '@babel/traverse': 7.28.0 - '@babel/types': 7.28.0 + '@babel/types': 7.28.1 transitivePeerDependencies: - supports-color - '@babel/helpers@7.27.0': - dependencies: - '@babel/template': 7.27.0 - '@babel/types': 7.27.6 - '@babel/helpers@7.27.6': dependencies: '@babel/template': 7.27.2 - '@babel/types': 7.28.0 + '@babel/types': 7.28.1 '@babel/parser@7.27.5': dependencies: - '@babel/types': 7.28.0 + '@babel/types': 7.28.1 '@babel/parser@7.28.0': dependencies: - '@babel/types': 7.28.0 + '@babel/types': 7.28.1 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/traverse': 7.27.0 + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.28.0) transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/traverse': 7.27.0 + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-decorators@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-proposal-decorators@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-create-class-features-plugin': 7.27.0(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-decorators': 7.25.9(@babel/core@7.26.10) + '@babel/core': 7.28.0 + '@babel/helper-create-class-features-plugin': 7.27.0(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-decorators': 7.25.9(@babel/core@7.28.0) transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.10)': + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.28.0 '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-decorators@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-syntax-decorators@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-import-assertions@7.26.0(@babel/core@7.26.10)': + '@babel/plugin-syntax-import-assertions@7.26.0(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.28.0)': + '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.28.0)': + '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.26.10)': + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-async-generator-functions@7.26.8(@babel/core@7.26.10)': + '@babel/plugin-transform-async-generator-functions@7.26.8(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.10) - '@babel/traverse': 7.27.0 + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.28.0) + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-async-to-generator@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-async-to-generator@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.10) + '@babel/core': 7.28.0 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.28.0) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-block-scoped-functions@7.26.5(@babel/core@7.26.10)': + '@babel/plugin-transform-block-scoped-functions@7.26.5(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-block-scoping@7.27.0(@babel/core@7.26.10)': + '@babel/plugin-transform-block-scoping@7.27.0(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-create-class-features-plugin': 7.27.0(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-create-class-features-plugin': 7.27.0(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-class-static-block@7.26.0(@babel/core@7.26.10)': + '@babel/plugin-transform-class-static-block@7.26.0(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-create-class-features-plugin': 7.27.0(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-create-class-features-plugin': 7.27.0(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-classes@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-classes@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.28.0 '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-compilation-targets': 7.27.0 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.10) - '@babel/traverse': 7.27.0 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-replace-supers': 7.26.5(@babel/core@7.28.0) + '@babel/traverse': 7.28.0 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-computed-properties@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-computed-properties@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/template': 7.27.0 + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/template': 7.27.2 - '@babel/plugin-transform-destructuring@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-destructuring@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-dotall-regex@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-dotall-regex@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-duplicate-keys@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-duplicate-keys@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-dynamic-import@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-dynamic-import@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-exponentiation-operator@7.26.3(@babel/core@7.26.10)': + '@babel/plugin-transform-exponentiation-operator@7.26.3(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-export-namespace-from@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-export-namespace-from@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-for-of@7.26.9(@babel/core@7.26.10)': + '@babel/plugin-transform-for-of@7.26.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-function-name@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-function-name@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-compilation-targets': 7.27.0 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/traverse': 7.27.0 + '@babel/core': 7.28.0 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-json-strings@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-json-strings@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-literals@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-literals@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-logical-assignment-operators@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-logical-assignment-operators@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-member-expression-literals@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-member-expression-literals@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-modules-amd@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-modules-amd@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-commonjs@7.26.3(@babel/core@7.26.10)': + '@babel/plugin-transform-modules-commonjs@7.26.3(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-systemjs@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-modules-systemjs@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.27.0 + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-umd@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-modules-umd@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-named-capturing-groups-regex@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-named-capturing-groups-regex@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-new-target@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-new-target@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-nullish-coalescing-operator@7.26.6(@babel/core@7.26.10)': + '@babel/plugin-transform-nullish-coalescing-operator@7.26.6(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-numeric-separator@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-numeric-separator@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-object-rest-spread@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-object-rest-spread@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-compilation-targets': 7.27.0 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.10) + '@babel/core': 7.28.0 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-transform-object-super@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-object-super@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.10) + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-replace-supers': 7.26.5(@babel/core@7.28.0) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-optional-catch-binding@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-optional-catch-binding@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-optional-chaining@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-optional-chaining@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-parameters@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-parameters@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-create-class-features-plugin': 7.27.0(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-create-class-features-plugin': 7.27.0(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-private-property-in-object@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-private-property-in-object@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.28.0 '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-create-class-features-plugin': 7.27.0(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-create-class-features-plugin': 7.27.0(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-property-literals@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-property-literals@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-regenerator@7.27.0(@babel/core@7.26.10)': + '@babel/plugin-transform-react-jsx-development@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.28.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.0) + '@babel/types': 7.28.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-regenerator@7.27.0(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 regenerator-transform: 0.15.2 - '@babel/plugin-transform-regexp-modifiers@7.26.0(@babel/core@7.26.10)': + '@babel/plugin-transform-regexp-modifiers@7.26.0(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-reserved-words@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-reserved-words@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-runtime@7.26.10(@babel/core@7.26.10)': + '@babel/plugin-transform-runtime@7.26.10(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-plugin-utils': 7.26.5 - babel-plugin-polyfill-corejs2: 0.4.13(@babel/core@7.26.10) - babel-plugin-polyfill-corejs3: 0.11.1(@babel/core@7.26.10) - babel-plugin-polyfill-regenerator: 0.6.4(@babel/core@7.26.10) + '@babel/core': 7.28.0 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + babel-plugin-polyfill-corejs2: 0.4.13(@babel/core@7.28.0) + babel-plugin-polyfill-corejs3: 0.11.1(@babel/core@7.28.0) + babel-plugin-polyfill-regenerator: 0.6.4(@babel/core@7.28.0) semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-shorthand-properties@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-shorthand-properties@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-spread@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-spread@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-sticky-regex@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-sticky-regex@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-template-literals@7.26.8(@babel/core@7.26.10)': + '@babel/plugin-transform-template-literals@7.26.8(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-typeof-symbol@7.27.0(@babel/core@7.26.10)': + '@babel/plugin-transform-typeof-symbol@7.27.0(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-typescript@7.27.0(@babel/core@7.26.10)': + '@babel/plugin-transform-typescript@7.27.0(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.28.0 '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-create-class-features-plugin': 7.27.0(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-create-class-features-plugin': 7.27.0(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.0) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-unicode-escapes@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-unicode-escapes@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-unicode-property-regex@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-unicode-property-regex@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-unicode-regex@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-unicode-regex@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-unicode-sets-regex@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-unicode-sets-regex@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 - '@babel/preset-env@7.26.9(@babel/core@7.26.10)': + '@babel/preset-env@7.26.9(@babel/core@7.28.0)': dependencies: - '@babel/compat-data': 7.26.8 - '@babel/core': 7.26.10 - '@babel/helper-compilation-targets': 7.27.0 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-validator-option': 7.25.9 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.10) - '@babel/plugin-syntax-import-assertions': 7.26.0(@babel/core@7.26.10) - '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.10) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.26.10) - '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-async-generator-functions': 7.26.8(@babel/core@7.26.10) - '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-block-scoped-functions': 7.26.5(@babel/core@7.26.10) - '@babel/plugin-transform-block-scoping': 7.27.0(@babel/core@7.26.10) - '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-class-static-block': 7.26.0(@babel/core@7.26.10) - '@babel/plugin-transform-classes': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-computed-properties': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-destructuring': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-dotall-regex': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-duplicate-keys': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-dynamic-import': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-exponentiation-operator': 7.26.3(@babel/core@7.26.10) - '@babel/plugin-transform-export-namespace-from': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-for-of': 7.26.9(@babel/core@7.26.10) - '@babel/plugin-transform-function-name': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-json-strings': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-literals': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-logical-assignment-operators': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-member-expression-literals': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-modules-amd': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.10) - '@babel/plugin-transform-modules-systemjs': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-modules-umd': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-new-target': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-nullish-coalescing-operator': 7.26.6(@babel/core@7.26.10) - '@babel/plugin-transform-numeric-separator': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-object-rest-spread': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-object-super': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-optional-catch-binding': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-private-methods': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-private-property-in-object': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-property-literals': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-regenerator': 7.27.0(@babel/core@7.26.10) - '@babel/plugin-transform-regexp-modifiers': 7.26.0(@babel/core@7.26.10) - '@babel/plugin-transform-reserved-words': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-shorthand-properties': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-spread': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-sticky-regex': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-template-literals': 7.26.8(@babel/core@7.26.10) - '@babel/plugin-transform-typeof-symbol': 7.27.0(@babel/core@7.26.10) - '@babel/plugin-transform-unicode-escapes': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-unicode-property-regex': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-unicode-sets-regex': 7.25.9(@babel/core@7.26.10) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.26.10) - babel-plugin-polyfill-corejs2: 0.4.13(@babel/core@7.26.10) - babel-plugin-polyfill-corejs3: 0.11.1(@babel/core@7.26.10) - babel-plugin-polyfill-regenerator: 0.6.4(@babel/core@7.26.10) + '@babel/compat-data': 7.28.0 + '@babel/core': 7.28.0 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-validator-option': 7.27.1 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.0) + '@babel/plugin-syntax-import-assertions': 7.26.0(@babel/core@7.28.0) + '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.28.0) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.28.0) + '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-async-generator-functions': 7.26.8(@babel/core@7.28.0) + '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-block-scoped-functions': 7.26.5(@babel/core@7.28.0) + '@babel/plugin-transform-block-scoping': 7.27.0(@babel/core@7.28.0) + '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-class-static-block': 7.26.0(@babel/core@7.28.0) + '@babel/plugin-transform-classes': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-computed-properties': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-destructuring': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-dotall-regex': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-duplicate-keys': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-dynamic-import': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-exponentiation-operator': 7.26.3(@babel/core@7.28.0) + '@babel/plugin-transform-export-namespace-from': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-for-of': 7.26.9(@babel/core@7.28.0) + '@babel/plugin-transform-function-name': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-json-strings': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-literals': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-logical-assignment-operators': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-member-expression-literals': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-modules-amd': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.28.0) + '@babel/plugin-transform-modules-systemjs': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-modules-umd': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-named-capturing-groups-regex': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-new-target': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-nullish-coalescing-operator': 7.26.6(@babel/core@7.28.0) + '@babel/plugin-transform-numeric-separator': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-object-rest-spread': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-object-super': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-optional-catch-binding': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-private-methods': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-private-property-in-object': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-property-literals': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-regenerator': 7.27.0(@babel/core@7.28.0) + '@babel/plugin-transform-regexp-modifiers': 7.26.0(@babel/core@7.28.0) + '@babel/plugin-transform-reserved-words': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-shorthand-properties': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-spread': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-sticky-regex': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-template-literals': 7.26.8(@babel/core@7.28.0) + '@babel/plugin-transform-typeof-symbol': 7.27.0(@babel/core@7.28.0) + '@babel/plugin-transform-unicode-escapes': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-unicode-property-regex': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-unicode-sets-regex': 7.25.9(@babel/core@7.28.0) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.28.0) + babel-plugin-polyfill-corejs2: 0.4.13(@babel/core@7.28.0) + babel-plugin-polyfill-corejs3: 0.11.1(@babel/core@7.28.0) + babel-plugin-polyfill-regenerator: 0.6.4(@babel/core@7.28.0) core-js-compat: 3.41.0 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.26.10)': + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/types': 7.28.0 + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/types': 7.28.1 esutils: 2.0.3 - '@babel/preset-typescript@7.27.0(@babel/core@7.26.10)': + '@babel/preset-typescript@7.27.0(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-validator-option': 7.25.9 - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.10) - '@babel/plugin-transform-typescript': 7.27.0(@babel/core@7.26.10) + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-validator-option': 7.27.1 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.28.0) + '@babel/plugin-transform-typescript': 7.27.0(@babel/core@7.28.0) transitivePeerDependencies: - supports-color @@ -15489,14 +16756,14 @@ snapshots: '@babel/template@7.27.0': dependencies: '@babel/code-frame': 7.26.2 - '@babel/parser': 7.27.5 - '@babel/types': 7.27.6 + '@babel/parser': 7.28.0 + '@babel/types': 7.28.1 '@babel/template@7.27.2': dependencies: '@babel/code-frame': 7.27.1 '@babel/parser': 7.28.0 - '@babel/types': 7.28.0 + '@babel/types': 7.28.1 '@babel/traverse@7.27.0': dependencies: @@ -15504,7 +16771,7 @@ snapshots: '@babel/generator': 7.27.0 '@babel/parser': 7.27.5 '@babel/template': 7.27.0 - '@babel/types': 7.28.0 + '@babel/types': 7.28.1 debug: 4.4.1(supports-color@6.0.0) globals: 11.12.0 transitivePeerDependencies: @@ -15517,17 +16784,17 @@ snapshots: '@babel/helper-globals': 7.28.0 '@babel/parser': 7.28.0 '@babel/template': 7.27.2 - '@babel/types': 7.28.0 + '@babel/types': 7.28.1 debug: 4.4.1(supports-color@6.0.0) transitivePeerDependencies: - supports-color - '@babel/types@7.27.6': + '@babel/types@7.28.0': dependencies: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@babel/types@7.28.0': + '@babel/types@7.28.1': dependencies: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 @@ -15540,7 +16807,7 @@ snapshots: '@braintree/sanitize-url@7.1.1': {} - '@bufbuild/protobuf@2.6.0': + '@bufbuild/protobuf@2.6.3': optional: true '@bundled-es-modules/cookie@2.0.1': @@ -15576,10 +16843,10 @@ snapshots: '@chevrotain/utils@11.0.3': {} - '@ckeditor/ckeditor-cloud-services-collaboration@53.0.0(@ckeditor/ckeditor5-utils@45.2.1)(bufferutil@4.0.9)(ckeditor5@45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41))(utf-8-validate@6.0.5)': + '@ckeditor/ckeditor-cloud-services-collaboration@53.0.0(@ckeditor/ckeditor5-utils@46.0.0)(bufferutil@4.0.9)(ckeditor5@46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41))(utf-8-validate@6.0.5)': dependencies: - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) protobufjs: 7.5.0 socket.io-client: 4.7.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) socket.io-parser: 4.2.4 @@ -15590,187 +16857,213 @@ snapshots: - supports-color - utf-8-validate - '@ckeditor/ckeditor5-adapter-ckfinder@45.2.1': + '@ckeditor/ckeditor5-adapter-ckfinder@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-upload': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-upload': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - '@ckeditor/ckeditor5-ai@45.2.1': + '@ckeditor/ckeditor5-ai@46.0.0': dependencies: - '@aws-sdk/client-bedrock-runtime': 3.621.0 - '@ckeditor/ckeditor5-clipboard': 45.2.1 - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-engine': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-table': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - es-toolkit: 1.32.0 + '@aws-sdk/client-bedrock-runtime': 3.823.0 + '@ckeditor/ckeditor5-clipboard': 46.0.0 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-table': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + es-toolkit: 1.39.5 transitivePeerDependencies: - aws-crt - '@ckeditor/ckeditor5-alignment@45.2.1': + '@ckeditor/ckeditor5-alignment@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-autoformat@45.2.1': + '@ckeditor/ckeditor5-autoformat@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-engine': 45.2.1 - '@ckeditor/ckeditor5-heading': 45.2.1 - '@ckeditor/ckeditor5-typing': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-heading': 46.0.0 + '@ckeditor/ckeditor5-typing': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-autosave@45.2.1': + '@ckeditor/ckeditor5-autosave@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - es-toolkit: 1.32.0 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-basic-styles@45.2.1': + '@ckeditor/ckeditor5-basic-styles@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-typing': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-typing': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-block-quote@45.2.1': + '@ckeditor/ckeditor5-block-quote@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-enter': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-typing': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-enter': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-typing': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-bookmark@45.2.1': + '@ckeditor/ckeditor5-bookmark@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-link': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - '@ckeditor/ckeditor5-widget': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-link': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + '@ckeditor/ckeditor5-widget': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-case-change@45.2.1': + '@ckeditor/ckeditor5-case-change@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - '@ckeditor/ckeditor5-ckbox@45.2.1': + '@ckeditor/ckeditor5-ckbox@46.0.0': dependencies: - '@ckeditor/ckeditor5-cloud-services': 45.2.1 - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-engine': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-image': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-upload': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 + '@ckeditor/ckeditor5-cloud-services': 46.0.0 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-image': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-upload': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 blurhash: 2.0.5 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - es-toolkit: 1.32.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-ckfinder@45.2.1': + '@ckeditor/ckeditor5-ckfinder@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-image': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-image': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-clipboard@45.2.1': + '@ckeditor/ckeditor5-clipboard@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-engine': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - '@ckeditor/ckeditor5-widget': 45.2.1 - es-toolkit: 1.32.0 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + '@ckeditor/ckeditor5-widget': 46.0.0 + es-toolkit: 1.39.5 - '@ckeditor/ckeditor5-cloud-services@45.2.1': + '@ckeditor/ckeditor5-cloud-services@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-code-block@45.2.1(patch_hash=2361d8caad7d6b5bddacc3a3b4aa37dbfba260b1c1b22a450413a79c1bb1ce95)': + '@ckeditor/ckeditor5-code-block@46.0.0(patch_hash=2361d8caad7d6b5bddacc3a3b4aa37dbfba260b1c1b22a450413a79c1bb1ce95)': dependencies: - '@ckeditor/ckeditor5-clipboard': 45.2.1 - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-engine': 45.2.1 - '@ckeditor/ckeditor5-enter': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-clipboard': 46.0.0 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-enter': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-collaboration-core@45.2.1': + '@ckeditor/ckeditor5-collaboration-core@46.0.0': dependencies: - '@ckeditor/ckeditor5-comments': 45.2.1 - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-theme-lark': 45.2.1 - '@ckeditor/ckeditor5-track-changes': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - '@types/luxon': 3.4.2 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - luxon: 3.5.0 + '@ckeditor/ckeditor5-comments': 46.0.0 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-theme-lark': 46.0.0 + '@ckeditor/ckeditor5-track-changes': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + '@types/luxon': 3.6.2 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + luxon: 3.6.1 + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-comments@45.2.1': + '@ckeditor/ckeditor5-comments@46.0.0': dependencies: - '@ckeditor/ckeditor5-clipboard': 45.2.1 - '@ckeditor/ckeditor5-collaboration-core': 45.2.1 - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-engine': 45.2.1 - '@ckeditor/ckeditor5-enter': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-paragraph': 45.2.1 - '@ckeditor/ckeditor5-select-all': 45.2.1 - '@ckeditor/ckeditor5-source-editing': 45.2.1 - '@ckeditor/ckeditor5-theme-lark': 45.2.1 - '@ckeditor/ckeditor5-typing': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-undo': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - '@ckeditor/ckeditor5-widget': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - ckeditor5-collaboration: 45.2.1 - es-toolkit: 1.32.0 + '@ckeditor/ckeditor5-clipboard': 46.0.0 + '@ckeditor/ckeditor5-collaboration-core': 46.0.0 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-enter': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-paragraph': 46.0.0 + '@ckeditor/ckeditor5-select-all': 46.0.0 + '@ckeditor/ckeditor5-source-editing': 46.0.0 + '@ckeditor/ckeditor5-theme-lark': 46.0.0 + '@ckeditor/ckeditor5-typing': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-undo': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + '@ckeditor/ckeditor5-widget': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + ckeditor5-collaboration: 46.0.0 + es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-core@45.2.1': + '@ckeditor/ckeditor5-core@46.0.0': dependencies: - '@ckeditor/ckeditor5-engine': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - '@ckeditor/ckeditor5-watchdog': 45.2.1 - es-toolkit: 1.32.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + '@ckeditor/ckeditor5-watchdog': 46.0.0 + es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-dev-build-tools@43.1.0(@swc/helpers@0.5.17)(tslib@2.8.1)(typescript@5.8.3)': + '@ckeditor/ckeditor5-dev-build-tools@43.1.0(@swc/helpers@0.5.17)(tslib@2.8.1)(typescript@5.9.2)': dependencies: '@rollup/plugin-commonjs': 25.0.8(rollup@4.40.0) '@rollup/plugin-json': 6.1.0(rollup@4.40.0) '@rollup/plugin-node-resolve': 15.3.1(rollup@4.40.0) '@rollup/plugin-swc': 0.3.1(@swc/core@1.11.29(@swc/helpers@0.5.17))(rollup@4.40.0) '@rollup/plugin-terser': 0.4.4(rollup@4.40.0) - '@rollup/plugin-typescript': 11.1.6(rollup@4.40.0)(tslib@2.8.1)(typescript@5.8.3) + '@rollup/plugin-typescript': 11.1.6(rollup@4.40.0)(tslib@2.8.1)(typescript@5.9.2) '@rollup/pluginutils': 5.1.4(rollup@4.40.0) '@swc/core': 1.11.29(@swc/helpers@0.5.17) chalk: 5.4.1 @@ -15806,19 +17099,19 @@ snapshots: transitivePeerDependencies: - supports-color - '@ckeditor/ckeditor5-dev-translations@45.0.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)(typescript@5.0.4)(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5))': + '@ckeditor/ckeditor5-dev-translations@50.3.1(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)(typescript@5.0.4)(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8))': dependencies: - '@babel/parser': 7.27.5 - '@babel/traverse': 7.27.0 - '@ckeditor/ckeditor5-dev-utils': 45.0.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)(typescript@5.0.4)(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)) - chalk: 5.4.1 - fs-extra: 11.3.0 - glob: 10.4.5 + '@babel/parser': 7.28.0 + '@babel/traverse': 7.28.0 + '@ckeditor/ckeditor5-dev-utils': 50.3.1(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)(typescript@5.0.4)(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)) + chalk: 5.5.0 + fs-extra: 11.3.1 + glob: 11.0.3 plural-forms: 0.5.5 pofile: 1.1.4 - rimraf: 5.0.10 + rimraf: 6.0.1 upath: 2.0.1 - webpack-sources: 3.2.3 + webpack-sources: 3.3.3 transitivePeerDependencies: - '@rspack/core' - '@swc/core' @@ -15828,59 +17121,65 @@ snapshots: - uglify-js - webpack - '@ckeditor/ckeditor5-dev-utils@43.1.0(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5))': + '@ckeditor/ckeditor5-dev-utils@43.1.0(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8))': dependencies: '@ckeditor/ckeditor5-dev-translations': 43.1.0 chalk: 3.0.0 cli-cursor: 3.1.0 cli-spinners: 2.9.2 - css-loader: 5.2.7(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)) + css-loader: 5.2.7(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)) cssnano: 6.1.2(postcss@8.5.3) del: 5.1.0 - esbuild-loader: 3.0.1(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)) - fs-extra: 11.3.0 + esbuild-loader: 3.0.1(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)) + fs-extra: 11.3.1 is-interactive: 1.0.0 javascript-stringify: 1.6.0 - mini-css-extract-plugin: 2.4.7(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)) + mini-css-extract-plugin: 2.4.7(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)) mocha: 7.2.0 postcss: 8.5.3 postcss-import: 14.1.0(postcss@8.5.3) - postcss-loader: 4.3.0(postcss@8.5.3)(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)) + postcss-loader: 4.3.0(postcss@8.5.3)(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)) postcss-mixins: 9.0.4(postcss@8.5.3) postcss-nesting: 13.0.1(postcss@8.5.3) - raw-loader: 4.0.2(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)) + raw-loader: 4.0.2(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)) shelljs: 0.8.5 - style-loader: 2.0.0(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)) - terser-webpack-plugin: 4.2.3(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)) + style-loader: 2.0.0(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)) + terser-webpack-plugin: 4.2.3(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)) through2: 3.0.2 transitivePeerDependencies: - bluebird - supports-color - webpack - '@ckeditor/ckeditor5-dev-utils@45.0.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)(typescript@5.0.4)(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5))': + '@ckeditor/ckeditor5-dev-utils@50.3.1(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)(typescript@5.0.4)(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8))': dependencies: - '@ckeditor/ckeditor5-dev-translations': 45.0.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)(typescript@5.0.4)(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)) - chalk: 5.4.1 + '@ckeditor/ckeditor5-dev-translations': 50.3.1(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)(typescript@5.0.4)(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)) + '@types/postcss-import': 14.0.3 + '@types/through2': 2.0.41 + chalk: 5.5.0 cli-cursor: 5.0.0 cli-spinners: 3.2.0 - css-loader: 7.1.2(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)) - cssnano: 7.0.6(postcss@8.5.3) - esbuild-loader: 4.3.0(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)) - fs-extra: 11.3.0 + css-loader: 7.1.2(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)) + cssnano: 7.1.0(postcss@8.5.6) + esbuild-loader: 4.3.0(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)) + fs-extra: 11.3.1 + glob: 11.0.3 is-interactive: 2.0.0 - mini-css-extract-plugin: 2.4.7(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)) - mocha: 10.8.2 - postcss: 8.5.3 - postcss-import: 16.1.0(postcss@8.5.3) - postcss-loader: 8.1.1(postcss@8.5.3)(typescript@5.0.4)(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)) - postcss-mixins: 11.0.3(postcss@8.5.3) - postcss-nesting: 13.0.1(postcss@8.5.3) - raw-loader: 4.0.2(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)) - shelljs: 0.8.5 - style-loader: 4.0.0(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)) - terser-webpack-plugin: 5.3.14(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)) + mini-css-extract-plugin: 2.9.2(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)) + mocha: 11.7.1 + pacote: 21.0.0 + postcss: 8.5.6 + postcss-import: 16.1.1(postcss@8.5.6) + postcss-loader: 8.1.1(postcss@8.5.6)(typescript@5.0.4)(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)) + postcss-mixins: 11.0.3(postcss@8.5.6) + postcss-nesting: 13.0.2(postcss@8.5.6) + raw-loader: 4.0.2(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)) + shelljs: 0.10.0 + simple-git: 3.28.0 + style-loader: 4.0.0(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)) + terser-webpack-plugin: 5.3.14(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)) through2: 4.0.2 + upath: 2.0.1 transitivePeerDependencies: - '@rspack/core' - '@swc/core' @@ -15890,403 +17189,478 @@ snapshots: - uglify-js - webpack - '@ckeditor/ckeditor5-document-outline@45.2.1': + '@ckeditor/ckeditor5-document-outline@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-engine': 45.2.1 - '@ckeditor/ckeditor5-heading': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - '@ckeditor/ckeditor5-widget': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - es-toolkit: 1.32.0 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-heading': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + '@ckeditor/ckeditor5-widget': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + es-toolkit: 1.39.5 - '@ckeditor/ckeditor5-easy-image@45.2.1': + '@ckeditor/ckeditor5-easy-image@46.0.0': dependencies: - '@ckeditor/ckeditor5-cloud-services': 45.2.1 - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-upload': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-cloud-services': 46.0.0 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-upload': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-editor-balloon@45.2.1': + '@ckeditor/ckeditor5-editor-balloon@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-engine': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - es-toolkit: 1.32.0 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-editor-classic@45.2.1': + '@ckeditor/ckeditor5-editor-classic@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-engine': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - es-toolkit: 1.32.0 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + es-toolkit: 1.39.5 - '@ckeditor/ckeditor5-editor-decoupled@45.2.1': + '@ckeditor/ckeditor5-editor-decoupled@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-engine': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - es-toolkit: 1.32.0 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + es-toolkit: 1.39.5 - '@ckeditor/ckeditor5-editor-inline@45.2.1': + '@ckeditor/ckeditor5-editor-inline@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-engine': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - es-toolkit: 1.32.0 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-editor-multi-root@45.2.1': + '@ckeditor/ckeditor5-editor-multi-root@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-engine': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - es-toolkit: 1.32.0 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-email@45.2.1': + '@ckeditor/ckeditor5-email@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-export-inline-styles': 45.2.1 - '@ckeditor/ckeditor5-font': 45.2.1 - '@ckeditor/ckeditor5-html-support': 45.2.1 - '@ckeditor/ckeditor5-list': 45.2.1 - '@ckeditor/ckeditor5-table': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-export-inline-styles': 46.0.0 + '@ckeditor/ckeditor5-font': 46.0.0 + '@ckeditor/ckeditor5-html-support': 46.0.0 + '@ckeditor/ckeditor5-list': 46.0.0 + '@ckeditor/ckeditor5-table': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-emoji@45.2.1': + '@ckeditor/ckeditor5-emoji@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-mention': 45.2.1(patch_hash=5981fb59ba35829e4dff1d39cf771000f8a8fdfa7a34b51d8af9549541f2d62d) - '@ckeditor/ckeditor5-typing': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - es-toolkit: 1.32.0 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-mention': 46.0.0(patch_hash=5981fb59ba35829e4dff1d39cf771000f8a8fdfa7a34b51d8af9549541f2d62d) + '@ckeditor/ckeditor5-typing': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + es-toolkit: 1.39.5 fuzzysort: 3.1.0 + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-engine@45.2.1': + '@ckeditor/ckeditor5-engine@46.0.0': dependencies: - '@ckeditor/ckeditor5-utils': 45.2.1 - es-toolkit: 1.32.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + es-toolkit: 1.39.5 - '@ckeditor/ckeditor5-enter@45.2.1': + '@ckeditor/ckeditor5-enter@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-engine': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-essentials@45.2.1': + '@ckeditor/ckeditor5-essentials@46.0.0': dependencies: - '@ckeditor/ckeditor5-clipboard': 45.2.1 - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-enter': 45.2.1 - '@ckeditor/ckeditor5-select-all': 45.2.1 - '@ckeditor/ckeditor5-typing': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-undo': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-clipboard': 46.0.0 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-enter': 46.0.0 + '@ckeditor/ckeditor5-select-all': 46.0.0 + '@ckeditor/ckeditor5-typing': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-undo': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-export-inline-styles@45.2.1': + '@ckeditor/ckeditor5-export-inline-styles@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-engine': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) specificity: 0.4.1 - '@ckeditor/ckeditor5-export-pdf@45.2.1': + '@ckeditor/ckeditor5-export-pdf@46.0.0': dependencies: - '@ckeditor/ckeditor5-cloud-services': 45.2.1 - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-merge-fields': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-cloud-services': 46.0.0 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-merge-fields': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-export-word@45.2.1': + '@ckeditor/ckeditor5-export-word@46.0.0': dependencies: - '@ckeditor/ckeditor5-cloud-services': 45.2.1 - '@ckeditor/ckeditor5-collaboration-core': 45.2.1 - '@ckeditor/ckeditor5-comments': 45.2.1 - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-merge-fields': 45.2.1 - '@ckeditor/ckeditor5-track-changes': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-cloud-services': 46.0.0 + '@ckeditor/ckeditor5-collaboration-core': 46.0.0 + '@ckeditor/ckeditor5-comments': 46.0.0 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-merge-fields': 46.0.0 + '@ckeditor/ckeditor5-track-changes': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-find-and-replace@45.2.1': + '@ckeditor/ckeditor5-find-and-replace@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - es-toolkit: 1.32.0 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + es-toolkit: 1.39.5 - '@ckeditor/ckeditor5-font@45.2.1': + '@ckeditor/ckeditor5-font@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-engine': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-format-painter@45.2.1': + '@ckeditor/ckeditor5-format-painter@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-engine': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - '@ckeditor/ckeditor5-fullscreen@45.2.1': + '@ckeditor/ckeditor5-fullscreen@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-editor-classic': 45.2.1 - '@ckeditor/ckeditor5-editor-decoupled': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-editor-classic': 46.0.0 + '@ckeditor/ckeditor5-editor-decoupled': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-heading@45.2.1': + '@ckeditor/ckeditor5-heading@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-engine': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-paragraph': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-paragraph': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-highlight@45.2.1': + '@ckeditor/ckeditor5-highlight@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-horizontal-line@45.2.1': + '@ckeditor/ckeditor5-horizontal-line@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - '@ckeditor/ckeditor5-widget': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + '@ckeditor/ckeditor5-widget': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - '@ckeditor/ckeditor5-html-embed@45.2.1': + '@ckeditor/ckeditor5-html-embed@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - '@ckeditor/ckeditor5-widget': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + '@ckeditor/ckeditor5-widget': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-html-support@45.2.1': + '@ckeditor/ckeditor5-html-support@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-engine': 45.2.1 - '@ckeditor/ckeditor5-enter': 45.2.1 - '@ckeditor/ckeditor5-heading': 45.2.1 - '@ckeditor/ckeditor5-image': 45.2.1 - '@ckeditor/ckeditor5-list': 45.2.1 - '@ckeditor/ckeditor5-table': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - '@ckeditor/ckeditor5-widget': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - es-toolkit: 1.32.0 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-enter': 46.0.0 + '@ckeditor/ckeditor5-heading': 46.0.0 + '@ckeditor/ckeditor5-image': 46.0.0 + '@ckeditor/ckeditor5-list': 46.0.0 + '@ckeditor/ckeditor5-remove-format': 46.0.0 + '@ckeditor/ckeditor5-table': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + '@ckeditor/ckeditor5-widget': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-icons@45.2.1': {} + '@ckeditor/ckeditor5-icons@46.0.0': {} - '@ckeditor/ckeditor5-image@45.2.1': + '@ckeditor/ckeditor5-image@46.0.0': dependencies: - '@ckeditor/ckeditor5-clipboard': 45.2.1 - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-engine': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-typing': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-undo': 45.2.1 - '@ckeditor/ckeditor5-upload': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - '@ckeditor/ckeditor5-widget': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - es-toolkit: 1.32.0 + '@ckeditor/ckeditor5-clipboard': 46.0.0 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-typing': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-undo': 46.0.0 + '@ckeditor/ckeditor5-upload': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + '@ckeditor/ckeditor5-widget': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-import-word@45.2.1': + '@ckeditor/ckeditor5-import-word@46.0.0': dependencies: - '@ckeditor/ckeditor5-clipboard': 45.2.1 - '@ckeditor/ckeditor5-cloud-services': 45.2.1 - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-engine': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-merge-fields': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-clipboard': 46.0.0 + '@ckeditor/ckeditor5-cloud-services': 46.0.0 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-merge-fields': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-indent@45.2.1': + '@ckeditor/ckeditor5-indent@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-engine': 45.2.1 - '@ckeditor/ckeditor5-heading': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-list': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-heading': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-list': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-inspector@4.1.0': {} + '@ckeditor/ckeditor5-inspector@5.0.0': {} - '@ckeditor/ckeditor5-language@45.2.1': + '@ckeditor/ckeditor5-language@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-link@45.2.1': + '@ckeditor/ckeditor5-line-height@46.0.0': dependencies: - '@ckeditor/ckeditor5-clipboard': 45.2.1 - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-engine': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-image': 45.2.1 - '@ckeditor/ckeditor5-typing': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - '@ckeditor/ckeditor5-widget': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - es-toolkit: 1.32.0 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - '@ckeditor/ckeditor5-list-multi-level@45.2.1': + '@ckeditor/ckeditor5-link@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-engine': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-list': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-clipboard': 46.0.0 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-image': 46.0.0 + '@ckeditor/ckeditor5-typing': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + '@ckeditor/ckeditor5-widget': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-list@45.2.1': + '@ckeditor/ckeditor5-list-multi-level@46.0.0': dependencies: - '@ckeditor/ckeditor5-clipboard': 45.2.1 - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-engine': 45.2.1 - '@ckeditor/ckeditor5-enter': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-typing': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-list': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - '@ckeditor/ckeditor5-markdown-gfm@45.2.1': + '@ckeditor/ckeditor5-list@46.0.0': dependencies: - '@ckeditor/ckeditor5-clipboard': 45.2.1 - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-engine': 45.2.1 - '@types/marked': 4.3.2 - '@types/turndown': 5.0.5 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - marked: 4.0.12 - turndown: 7.2.0 - turndown-plugin-gfm: 1.0.2 + '@ckeditor/ckeditor5-clipboard': 46.0.0 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-enter': 46.0.0 + '@ckeditor/ckeditor5-font': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-typing': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-media-embed@45.2.1': + '@ckeditor/ckeditor5-markdown-gfm@46.0.0': dependencies: - '@ckeditor/ckeditor5-clipboard': 45.2.1 - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-engine': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-typing': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-undo': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - '@ckeditor/ckeditor5-widget': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-clipboard': 46.0.0 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@types/hast': 3.0.4 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + hast-util-from-dom: 5.0.1 + hast-util-to-html: 9.0.5 + hast-util-to-mdast: 10.1.2 + hastscript: 9.0.1 + rehype-dom-parse: 5.0.2 + rehype-dom-stringify: 4.0.2 + rehype-remark: 10.0.1 + remark-breaks: 4.0.0 + remark-gfm: 4.0.1 + remark-parse: 11.0.0 + remark-rehype: 11.1.2 + remark-stringify: 11.0.0 + unified: 11.0.5 + unist-util-visit: 5.0.0 + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-mention@45.2.1(patch_hash=5981fb59ba35829e4dff1d39cf771000f8a8fdfa7a34b51d8af9549541f2d62d)': + '@ckeditor/ckeditor5-media-embed@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-typing': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - es-toolkit: 1.32.0 + '@ckeditor/ckeditor5-clipboard': 46.0.0 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-typing': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-undo': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + '@ckeditor/ckeditor5-widget': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-merge-fields@45.2.1': + '@ckeditor/ckeditor5-mention@46.0.0(patch_hash=5981fb59ba35829e4dff1d39cf771000f8a8fdfa7a34b51d8af9549541f2d62d)': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-image': 45.2.1 - '@ckeditor/ckeditor5-mention': 45.2.1(patch_hash=5981fb59ba35829e4dff1d39cf771000f8a8fdfa7a34b51d8af9549541f2d62d) - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - '@ckeditor/ckeditor5-widget': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - es-toolkit: 1.32.0 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-typing': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-minimap@45.2.1': + '@ckeditor/ckeditor5-merge-fields@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-engine': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-image': 46.0.0 + '@ckeditor/ckeditor5-mention': 46.0.0(patch_hash=5981fb59ba35829e4dff1d39cf771000f8a8fdfa7a34b51d8af9549541f2d62d) + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + '@ckeditor/ckeditor5-widget': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-operations-compressor@45.2.1': + '@ckeditor/ckeditor5-minimap@46.0.0': dependencies: - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - es-toolkit: 1.32.0 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color + + '@ckeditor/ckeditor5-operations-compressor@46.0.0': + dependencies: + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + es-toolkit: 1.39.5 protobufjs: 7.5.0 - '@ckeditor/ckeditor5-package-tools@4.0.0(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.16.0)(bufferutil@4.0.9)(esbuild@0.25.5)(utf-8-validate@6.0.5)': + '@ckeditor/ckeditor5-package-tools@4.0.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.1.0)(bufferutil@4.0.9)(esbuild@0.25.8)(utf-8-validate@6.0.5)': dependencies: - '@ckeditor/ckeditor5-dev-translations': 45.0.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)(typescript@5.0.4)(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)) - '@ckeditor/ckeditor5-dev-utils': 45.0.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)(typescript@5.0.4)(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)) + '@ckeditor/ckeditor5-dev-translations': 50.3.1(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)(typescript@5.0.4)(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)) + '@ckeditor/ckeditor5-dev-utils': 50.3.1(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)(typescript@5.0.4)(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)) buffer: 6.0.3 chalk: 5.4.1 - css-loader: 5.2.7(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)) - fs-extra: 11.3.0 + css-loader: 5.2.7(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)) + fs-extra: 11.3.1 glob: 7.2.3 minimist: 1.2.8 - postcss: 8.5.3 - postcss-loader: 4.3.0(postcss@8.5.3)(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)) + postcss: 8.5.6 + postcss-loader: 4.3.0(postcss@8.5.6)(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)) process: 0.11.10 - raw-loader: 4.0.2(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)) - style-loader: 2.0.0(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)) - stylelint: 16.21.1(typescript@5.0.4) - stylelint-config-ckeditor5: 2.0.1(stylelint@16.21.1(typescript@5.8.3)) - terser-webpack-plugin: 5.3.14(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)) - ts-loader: 9.5.2(typescript@5.0.4)(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)) - ts-node: 10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.16.0)(typescript@5.0.4) + raw-loader: 4.0.2(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)) + style-loader: 2.0.0(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)) + stylelint: 16.23.1(typescript@5.0.4) + stylelint-config-ckeditor5: 2.0.1(stylelint@16.23.1(typescript@5.9.2)) + terser-webpack-plugin: 5.3.14(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)) + ts-loader: 9.5.2(typescript@5.0.4)(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)) + ts-node: 10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.1.0)(typescript@5.0.4) typescript: 5.0.4 - webpack: 5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5) - webpack-dev-server: 5.2.1(bufferutil@4.0.9)(utf-8-validate@6.0.5)(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)) + webpack: 5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8) + webpack-dev-server: 5.2.2(bufferutil@4.0.9)(utf-8-validate@6.0.5)(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)) transitivePeerDependencies: - '@rspack/core' - '@swc/core' @@ -16300,332 +17674,349 @@ snapshots: - utf-8-validate - webpack-cli - '@ckeditor/ckeditor5-page-break@45.2.1': + '@ckeditor/ckeditor5-page-break@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - '@ckeditor/ckeditor5-widget': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + '@ckeditor/ckeditor5-widget': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-pagination@45.2.1': + '@ckeditor/ckeditor5-pagination@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-theme-lark': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - es-toolkit: 1.32.0 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-theme-lark': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + es-toolkit: 1.39.5 - '@ckeditor/ckeditor5-paragraph@45.2.1': + '@ckeditor/ckeditor5-paragraph@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-engine': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 - '@ckeditor/ckeditor5-paste-from-office-enhanced@45.2.1': + '@ckeditor/ckeditor5-paste-from-office-enhanced@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-engine': 45.2.1 - '@ckeditor/ckeditor5-paste-from-office': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-paste-from-office': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - '@ckeditor/ckeditor5-paste-from-office@45.2.1': + '@ckeditor/ckeditor5-paste-from-office@46.0.0': dependencies: - '@ckeditor/ckeditor5-clipboard': 45.2.1 - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-engine': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-clipboard': 46.0.0 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - '@ckeditor/ckeditor5-real-time-collaboration@45.2.1(bufferutil@4.0.9)(utf-8-validate@6.0.5)': + '@ckeditor/ckeditor5-real-time-collaboration@46.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)': dependencies: - '@ckeditor/ckeditor-cloud-services-collaboration': 53.0.0(@ckeditor/ckeditor5-utils@45.2.1)(bufferutil@4.0.9)(ckeditor5@45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41))(utf-8-validate@6.0.5) - '@ckeditor/ckeditor5-cloud-services': 45.2.1 - '@ckeditor/ckeditor5-comments': 45.2.1 - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-editor-multi-root': 45.2.1 - '@ckeditor/ckeditor5-engine': 45.2.1 - '@ckeditor/ckeditor5-operations-compressor': 45.2.1 - '@ckeditor/ckeditor5-revision-history': 45.2.1 - '@ckeditor/ckeditor5-theme-lark': 45.2.1 - '@ckeditor/ckeditor5-track-changes': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - ckeditor5-collaboration: 45.2.1 - es-toolkit: 1.32.0 + '@ckeditor/ckeditor-cloud-services-collaboration': 53.0.0(@ckeditor/ckeditor5-utils@46.0.0)(bufferutil@4.0.9)(ckeditor5@46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41))(utf-8-validate@6.0.5) + '@ckeditor/ckeditor5-cloud-services': 46.0.0 + '@ckeditor/ckeditor5-comments': 46.0.0 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-editor-multi-root': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-operations-compressor': 46.0.0 + '@ckeditor/ckeditor5-revision-history': 46.0.0 + '@ckeditor/ckeditor5-theme-lark': 46.0.0 + '@ckeditor/ckeditor5-track-changes': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + ckeditor5-collaboration: 46.0.0 + es-toolkit: 1.39.5 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - '@ckeditor/ckeditor5-remove-format@45.2.1': + '@ckeditor/ckeditor5-remove-format@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-restricted-editing@45.2.1': + '@ckeditor/ckeditor5-restricted-editing@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-engine': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - '@ckeditor/ckeditor5-revision-history@45.2.1': + '@ckeditor/ckeditor5-revision-history@46.0.0': dependencies: - '@ckeditor/ckeditor5-autosave': 45.2.1 - '@ckeditor/ckeditor5-comments': 45.2.1 - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-editor-classic': 45.2.1 - '@ckeditor/ckeditor5-engine': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - '@types/luxon': 3.4.2 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - ckeditor5-collaboration: 45.2.1 - es-toolkit: 1.32.0 - luxon: 3.5.0 + '@ckeditor/ckeditor5-autosave': 46.0.0 + '@ckeditor/ckeditor5-comments': 46.0.0 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-editor-classic': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + '@types/luxon': 3.6.2 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + ckeditor5-collaboration: 46.0.0 + es-toolkit: 1.39.5 + luxon: 3.6.1 + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-select-all@45.2.1': + '@ckeditor/ckeditor5-select-all@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-engine': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 - '@ckeditor/ckeditor5-show-blocks@45.2.1': + '@ckeditor/ckeditor5-show-blocks@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-slash-command@45.2.1': + '@ckeditor/ckeditor5-slash-command@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-heading': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-mention': 45.2.1(patch_hash=5981fb59ba35829e4dff1d39cf771000f8a8fdfa7a34b51d8af9549541f2d62d) - '@ckeditor/ckeditor5-style': 45.2.1 - '@ckeditor/ckeditor5-template': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-heading': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-mention': 46.0.0(patch_hash=5981fb59ba35829e4dff1d39cf771000f8a8fdfa7a34b51d8af9549541f2d62d) + '@ckeditor/ckeditor5-style': 46.0.0 + '@ckeditor/ckeditor5-template': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-source-editing-enhanced@45.2.1': + '@ckeditor/ckeditor5-source-editing-enhanced@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-theme-lark': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-theme-lark': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 '@codemirror/autocomplete': 6.18.6 - '@codemirror/commands': 6.8.0 + '@codemirror/commands': 6.8.1 '@codemirror/lang-html': 6.4.9 '@codemirror/lang-markdown': 6.3.2 '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 '@codemirror/theme-one-dark': 6.1.2 - '@codemirror/view': 6.38.0 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@codemirror/view': 6.38.1 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - '@ckeditor/ckeditor5-source-editing@45.2.1': + '@ckeditor/ckeditor5-source-editing@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-theme-lark': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-theme-lark': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - '@ckeditor/ckeditor5-special-characters@45.2.1': + '@ckeditor/ckeditor5-special-characters@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-typing': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-typing': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - '@ckeditor/ckeditor5-style@45.2.1': + '@ckeditor/ckeditor5-style@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-html-support': 45.2.1 - '@ckeditor/ckeditor5-list': 45.2.1 - '@ckeditor/ckeditor5-table': 45.2.1 - '@ckeditor/ckeditor5-typing': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - es-toolkit: 1.32.0 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-html-support': 46.0.0 + '@ckeditor/ckeditor5-list': 46.0.0 + '@ckeditor/ckeditor5-table': 46.0.0 + '@ckeditor/ckeditor5-typing': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-table@45.2.1': + '@ckeditor/ckeditor5-table@46.0.0': dependencies: - '@ckeditor/ckeditor5-clipboard': 45.2.1 - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-engine': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - '@ckeditor/ckeditor5-widget': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - es-toolkit: 1.32.0 + '@ckeditor/ckeditor5-clipboard': 46.0.0 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + '@ckeditor/ckeditor5-widget': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-template@45.2.1': + '@ckeditor/ckeditor5-template@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - '@ckeditor/ckeditor5-theme-lark@45.2.1': + '@ckeditor/ckeditor5-theme-lark@46.0.0': dependencies: - '@ckeditor/ckeditor5-ui': 45.2.1 + '@ckeditor/ckeditor5-ui': 46.0.0 - '@ckeditor/ckeditor5-track-changes@45.2.1': + '@ckeditor/ckeditor5-track-changes@46.0.0': dependencies: - '@ckeditor/ckeditor5-clipboard': 45.2.1 - '@ckeditor/ckeditor5-code-block': 45.2.1(patch_hash=2361d8caad7d6b5bddacc3a3b4aa37dbfba260b1c1b22a450413a79c1bb1ce95) - '@ckeditor/ckeditor5-comments': 45.2.1 - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-editor-multi-root': 45.2.1 - '@ckeditor/ckeditor5-engine': 45.2.1 - '@ckeditor/ckeditor5-enter': 45.2.1 - '@ckeditor/ckeditor5-find-and-replace': 45.2.1 - '@ckeditor/ckeditor5-font': 45.2.1 - '@ckeditor/ckeditor5-heading': 45.2.1 - '@ckeditor/ckeditor5-highlight': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-image': 45.2.1 - '@ckeditor/ckeditor5-link': 45.2.1 - '@ckeditor/ckeditor5-list': 45.2.1 - '@ckeditor/ckeditor5-media-embed': 45.2.1 - '@ckeditor/ckeditor5-merge-fields': 45.2.1 - '@ckeditor/ckeditor5-restricted-editing': 45.2.1 - '@ckeditor/ckeditor5-style': 45.2.1 - '@ckeditor/ckeditor5-table': 45.2.1 - '@ckeditor/ckeditor5-typing': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - '@ckeditor/ckeditor5-widget': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - ckeditor5-collaboration: 45.2.1 - es-toolkit: 1.32.0 + '@ckeditor/ckeditor5-clipboard': 46.0.0 + '@ckeditor/ckeditor5-code-block': 46.0.0(patch_hash=2361d8caad7d6b5bddacc3a3b4aa37dbfba260b1c1b22a450413a79c1bb1ce95) + '@ckeditor/ckeditor5-comments': 46.0.0 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-editor-multi-root': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-enter': 46.0.0 + '@ckeditor/ckeditor5-find-and-replace': 46.0.0 + '@ckeditor/ckeditor5-font': 46.0.0 + '@ckeditor/ckeditor5-heading': 46.0.0 + '@ckeditor/ckeditor5-highlight': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-image': 46.0.0 + '@ckeditor/ckeditor5-link': 46.0.0 + '@ckeditor/ckeditor5-list': 46.0.0 + '@ckeditor/ckeditor5-media-embed': 46.0.0 + '@ckeditor/ckeditor5-merge-fields': 46.0.0 + '@ckeditor/ckeditor5-restricted-editing': 46.0.0 + '@ckeditor/ckeditor5-style': 46.0.0 + '@ckeditor/ckeditor5-table': 46.0.0 + '@ckeditor/ckeditor5-typing': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + '@ckeditor/ckeditor5-widget': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + ckeditor5-collaboration: 46.0.0 + es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-typing@45.2.1': + '@ckeditor/ckeditor5-typing@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-engine': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - es-toolkit: 1.32.0 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + es-toolkit: 1.39.5 - '@ckeditor/ckeditor5-ui@45.2.1': + '@ckeditor/ckeditor5-ui@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-editor-multi-root': 45.2.1 - '@ckeditor/ckeditor5-engine': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-editor-multi-root': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 '@types/color-convert': 2.0.4 - color-convert: 2.0.1 - color-parse: 1.4.2 - es-toolkit: 1.32.0 + color-convert: 3.1.0 + color-parse: 2.0.2 + es-toolkit: 1.39.5 vanilla-colorful: 0.7.2 + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-undo@45.2.1': + '@ckeditor/ckeditor5-undo@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-engine': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 - '@ckeditor/ckeditor5-upload@45.2.1': + '@ckeditor/ckeditor5-upload@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 - '@ckeditor/ckeditor5-uploadcare@45.2.1(bufferutil@4.0.9)(utf-8-validate@6.0.5)': + '@ckeditor/ckeditor5-uploadcare@46.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-image': 45.2.1 - '@ckeditor/ckeditor5-theme-lark': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-upload': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - '@uploadcare/file-uploader': 1.12.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) - '@uploadcare/upload-client': 6.14.1(bufferutil@4.0.9)(utf-8-validate@6.0.5) - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-image': 46.0.0 + '@ckeditor/ckeditor5-theme-lark': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-upload': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + '@uploadcare/file-uploader': 1.16.3-alpha.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) + '@uploadcare/upload-client': 6.14.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) transitivePeerDependencies: - bufferutil - utf-8-validate - '@ckeditor/ckeditor5-utils@45.2.1': + '@ckeditor/ckeditor5-utils@46.0.0': dependencies: - '@ckeditor/ckeditor5-ui': 45.2.1 - es-toolkit: 1.32.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-watchdog@45.2.1': + '@ckeditor/ckeditor5-watchdog@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-editor-multi-root': 45.2.1 - '@ckeditor/ckeditor5-engine': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - es-toolkit: 1.32.0 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-editor-multi-root': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-widget@45.2.1': + '@ckeditor/ckeditor5-widget@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-engine': 45.2.1 - '@ckeditor/ckeditor5-enter': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-typing': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - es-toolkit: 1.32.0 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-enter': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-typing': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + es-toolkit: 1.39.5 - '@ckeditor/ckeditor5-word-count@45.2.1': + '@ckeditor/ckeditor5-word-count@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - es-toolkit: 1.32.0 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@codemirror/autocomplete@6.18.6': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.0 - '@lezer/common': 1.2.3 - - '@codemirror/commands@6.8.0': - dependencies: - '@codemirror/language': 6.11.0 - '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.0 + '@codemirror/view': 6.38.1 '@lezer/common': 1.2.3 '@codemirror/commands@6.8.1': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.0 + '@codemirror/view': 6.38.1 '@lezer/common': 1.2.3 '@codemirror/lang-css@6.3.1': @@ -16643,7 +18034,7 @@ snapshots: '@codemirror/lang-javascript': 6.2.4 '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.0 + '@codemirror/view': 6.38.1 '@lezer/common': 1.2.3 '@lezer/css': 1.1.11 '@lezer/html': 1.3.10 @@ -16654,7 +18045,7 @@ snapshots: '@codemirror/language': 6.11.0 '@codemirror/lint': 6.8.5 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.0 + '@codemirror/view': 6.38.1 '@lezer/common': 1.2.3 '@lezer/javascript': 1.5.1 @@ -16669,17 +18060,17 @@ snapshots: '@codemirror/lang-html': 6.4.9 '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.0 + '@codemirror/view': 6.38.1 '@lezer/common': 1.2.3 '@lezer/markdown': 1.4.3 - '@codemirror/lang-markdown@6.3.3': + '@codemirror/lang-markdown@6.3.4': dependencies: '@codemirror/autocomplete': 6.18.6 '@codemirror/lang-html': 6.4.9 '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.0 + '@codemirror/view': 6.38.1 '@lezer/common': 1.2.3 '@lezer/markdown': 1.4.3 @@ -16705,14 +18096,14 @@ snapshots: '@codemirror/autocomplete': 6.18.6 '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.0 + '@codemirror/view': 6.38.1 '@lezer/common': 1.2.3 '@lezer/xml': 1.0.6 '@codemirror/language@6.11.0': dependencies: '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.0 + '@codemirror/view': 6.38.1 '@lezer/common': 1.2.3 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 @@ -16725,13 +18116,13 @@ snapshots: '@codemirror/lint@6.8.5': dependencies: '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.0 + '@codemirror/view': 6.38.1 crelt: 1.0.6 '@codemirror/search@6.5.11': dependencies: '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.0 + '@codemirror/view': 6.38.1 crelt: 1.0.6 '@codemirror/state@6.5.2': @@ -16742,10 +18133,10 @@ snapshots: dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.0 + '@codemirror/view': 6.38.1 '@lezer/highlight': 1.2.1 - '@codemirror/view@6.38.0': + '@codemirror/view@6.38.1': dependencies: '@codemirror/state': 6.5.2 crelt: 1.0.6 @@ -16790,6 +18181,10 @@ snapshots: dependencies: postcss-selector-parser: 7.1.0 + '@csstools/selector-resolve-nested@3.1.0(postcss-selector-parser@7.1.0)': + dependencies: + postcss-selector-parser: 7.1.0 + '@csstools/selector-specificity@5.0.0(postcss-selector-parser@7.1.0)': dependencies: postcss-selector-parser: 7.1.0 @@ -16798,17 +18193,17 @@ snapshots: dependencies: '@digitak/grubber': 3.1.4 chokidar: 3.6.0 - esbuild: 0.25.5 + esbuild: 0.25.8 '@digitak/grubber@3.1.4': {} '@dual-bundle/import-meta-resolve@4.1.0': {} - '@electron-forge/cli@7.8.1(encoding@0.1.13)': + '@electron-forge/cli@7.8.3(encoding@0.1.13)': dependencies: - '@electron-forge/core': 7.8.1(encoding@0.1.13) - '@electron-forge/core-utils': 7.8.1 - '@electron-forge/shared-types': 7.8.1 + '@electron-forge/core': 7.8.3(encoding@0.1.13) + '@electron-forge/core-utils': 7.8.3 + '@electron-forge/shared-types': 7.8.3 '@electron/get': 3.1.0 chalk: 4.1.2 commander: 11.1.0 @@ -16816,15 +18211,15 @@ snapshots: fs-extra: 10.1.0 listr2: 7.0.2 log-symbols: 4.1.0 - semver: 7.7.1 + semver: 7.7.2 transitivePeerDependencies: - bluebird - encoding - supports-color - '@electron-forge/core-utils@7.8.1': + '@electron-forge/core-utils@7.8.3': dependencies: - '@electron-forge/shared-types': 7.8.1 + '@electron-forge/shared-types': 7.8.3 '@electron/rebuild': 3.7.2 '@malept/cross-spawn-promise': 2.0.0 chalk: 4.1.2 @@ -16837,19 +18232,19 @@ snapshots: - bluebird - supports-color - '@electron-forge/core@7.8.1(encoding@0.1.13)': + '@electron-forge/core@7.8.3(encoding@0.1.13)': dependencies: - '@electron-forge/core-utils': 7.8.1 - '@electron-forge/maker-base': 7.8.1 - '@electron-forge/plugin-base': 7.8.1 - '@electron-forge/publisher-base': 7.8.1 - '@electron-forge/shared-types': 7.8.1 - '@electron-forge/template-base': 7.8.1 - '@electron-forge/template-vite': 7.8.1 - '@electron-forge/template-vite-typescript': 7.8.1 - '@electron-forge/template-webpack': 7.8.1 - '@electron-forge/template-webpack-typescript': 7.8.1 - '@electron-forge/tracer': 7.8.1 + '@electron-forge/core-utils': 7.8.3 + '@electron-forge/maker-base': 7.8.3 + '@electron-forge/plugin-base': 7.8.3 + '@electron-forge/publisher-base': 7.8.3 + '@electron-forge/shared-types': 7.8.3 + '@electron-forge/template-base': 7.8.3 + '@electron-forge/template-vite': 7.8.3 + '@electron-forge/template-vite-typescript': 7.8.3 + '@electron-forge/template-webpack': 7.8.3 + '@electron-forge/template-webpack-typescript': 7.8.3 + '@electron-forge/tracer': 7.8.3 '@electron/get': 3.1.0 '@electron/packager': 18.3.6 '@electron/rebuild': 3.7.2 @@ -16863,7 +18258,7 @@ snapshots: global-dirs: 3.0.1 got: 11.8.6 interpret: 3.1.1 - jiti: 2.4.2 + jiti: 2.5.1 listr2: 7.0.2 lodash: 4.17.21 log-symbols: 4.1.0 @@ -16878,29 +18273,29 @@ snapshots: - encoding - supports-color - '@electron-forge/maker-base@7.8.1': + '@electron-forge/maker-base@7.8.3': dependencies: - '@electron-forge/shared-types': 7.8.1 + '@electron-forge/shared-types': 7.8.3 fs-extra: 10.1.0 which: 2.0.2 transitivePeerDependencies: - bluebird - supports-color - '@electron-forge/maker-deb@7.8.1': + '@electron-forge/maker-deb@7.8.3': dependencies: - '@electron-forge/maker-base': 7.8.1 - '@electron-forge/shared-types': 7.8.1 + '@electron-forge/maker-base': 7.8.3 + '@electron-forge/shared-types': 7.8.3 optionalDependencies: electron-installer-debian: 3.2.0 transitivePeerDependencies: - bluebird - supports-color - '@electron-forge/maker-dmg@7.8.1': + '@electron-forge/maker-dmg@7.8.3': dependencies: - '@electron-forge/maker-base': 7.8.1 - '@electron-forge/shared-types': 7.8.1 + '@electron-forge/maker-base': 7.8.3 + '@electron-forge/shared-types': 7.8.3 fs-extra: 10.1.0 optionalDependencies: electron-installer-dmg: 5.0.1 @@ -16908,10 +18303,10 @@ snapshots: - bluebird - supports-color - '@electron-forge/maker-flatpak@7.8.1': + '@electron-forge/maker-flatpak@7.8.3': dependencies: - '@electron-forge/maker-base': 7.8.1 - '@electron-forge/shared-types': 7.8.1 + '@electron-forge/maker-base': 7.8.3 + '@electron-forge/shared-types': 7.8.3 fs-extra: 10.1.0 optionalDependencies: '@malept/electron-installer-flatpak': 0.11.4 @@ -16919,20 +18314,20 @@ snapshots: - bluebird - supports-color - '@electron-forge/maker-rpm@7.8.1': + '@electron-forge/maker-rpm@7.8.3': dependencies: - '@electron-forge/maker-base': 7.8.1 - '@electron-forge/shared-types': 7.8.1 + '@electron-forge/maker-base': 7.8.3 + '@electron-forge/shared-types': 7.8.3 optionalDependencies: electron-installer-redhat: 3.4.0 transitivePeerDependencies: - bluebird - supports-color - '@electron-forge/maker-squirrel@7.8.1': + '@electron-forge/maker-squirrel@7.8.3': dependencies: - '@electron-forge/maker-base': 7.8.1 - '@electron-forge/shared-types': 7.8.1 + '@electron-forge/maker-base': 7.8.3 + '@electron-forge/shared-types': 7.8.3 fs-extra: 10.1.0 optionalDependencies: electron-winstaller: 5.4.0 @@ -16940,10 +18335,10 @@ snapshots: - bluebird - supports-color - '@electron-forge/maker-zip@7.8.1': + '@electron-forge/maker-zip@7.8.3': dependencies: - '@electron-forge/maker-base': 7.8.1 - '@electron-forge/shared-types': 7.8.1 + '@electron-forge/maker-base': 7.8.3 + '@electron-forge/shared-types': 7.8.3 cross-zip: 4.0.1 fs-extra: 10.1.0 got: 11.8.6 @@ -16951,31 +18346,31 @@ snapshots: - bluebird - supports-color - '@electron-forge/plugin-auto-unpack-natives@7.8.1': + '@electron-forge/plugin-auto-unpack-natives@7.8.3': dependencies: - '@electron-forge/plugin-base': 7.8.1 - '@electron-forge/shared-types': 7.8.1 + '@electron-forge/plugin-base': 7.8.3 + '@electron-forge/shared-types': 7.8.3 transitivePeerDependencies: - bluebird - supports-color - '@electron-forge/plugin-base@7.8.1': + '@electron-forge/plugin-base@7.8.3': dependencies: - '@electron-forge/shared-types': 7.8.1 + '@electron-forge/shared-types': 7.8.3 transitivePeerDependencies: - bluebird - supports-color - '@electron-forge/publisher-base@7.8.1': + '@electron-forge/publisher-base@7.8.3': dependencies: - '@electron-forge/shared-types': 7.8.1 + '@electron-forge/shared-types': 7.8.3 transitivePeerDependencies: - bluebird - supports-color - '@electron-forge/shared-types@7.8.1': + '@electron-forge/shared-types@7.8.3': dependencies: - '@electron-forge/tracer': 7.8.1 + '@electron-forge/tracer': 7.8.3 '@electron/packager': 18.3.6 '@electron/rebuild': 3.7.2 listr2: 7.0.2 @@ -16983,10 +18378,10 @@ snapshots: - bluebird - supports-color - '@electron-forge/template-base@7.8.1': + '@electron-forge/template-base@7.8.3': dependencies: - '@electron-forge/core-utils': 7.8.1 - '@electron-forge/shared-types': 7.8.1 + '@electron-forge/core-utils': 7.8.3 + '@electron-forge/shared-types': 7.8.3 '@malept/cross-spawn-promise': 2.0.0 debug: 4.4.1(supports-color@6.0.0) fs-extra: 10.1.0 @@ -16995,43 +18390,43 @@ snapshots: - bluebird - supports-color - '@electron-forge/template-vite-typescript@7.8.1': + '@electron-forge/template-vite-typescript@7.8.3': dependencies: - '@electron-forge/shared-types': 7.8.1 - '@electron-forge/template-base': 7.8.1 + '@electron-forge/shared-types': 7.8.3 + '@electron-forge/template-base': 7.8.3 fs-extra: 10.1.0 transitivePeerDependencies: - bluebird - supports-color - '@electron-forge/template-vite@7.8.1': + '@electron-forge/template-vite@7.8.3': dependencies: - '@electron-forge/shared-types': 7.8.1 - '@electron-forge/template-base': 7.8.1 + '@electron-forge/shared-types': 7.8.3 + '@electron-forge/template-base': 7.8.3 fs-extra: 10.1.0 transitivePeerDependencies: - bluebird - supports-color - '@electron-forge/template-webpack-typescript@7.8.1': + '@electron-forge/template-webpack-typescript@7.8.3': dependencies: - '@electron-forge/shared-types': 7.8.1 - '@electron-forge/template-base': 7.8.1 + '@electron-forge/shared-types': 7.8.3 + '@electron-forge/template-base': 7.8.3 fs-extra: 10.1.0 transitivePeerDependencies: - bluebird - supports-color - '@electron-forge/template-webpack@7.8.1': + '@electron-forge/template-webpack@7.8.3': dependencies: - '@electron-forge/shared-types': 7.8.1 - '@electron-forge/template-base': 7.8.1 + '@electron-forge/shared-types': 7.8.3 + '@electron-forge/template-base': 7.8.3 fs-extra: 10.1.0 transitivePeerDependencies: - bluebird - supports-color - '@electron-forge/tracer@7.8.1': + '@electron-forge/tracer@7.8.3': dependencies: chrome-trace-event: 1.0.4 @@ -17115,7 +18510,7 @@ snapshots: debug: 4.4.1(supports-color@6.0.0) extract-zip: 2.0.1 filenamify: 4.3.0 - fs-extra: 11.3.0 + fs-extra: 11.3.1 galactus: 1.0.0 get-package-info: 1.0.0 junk: 3.1.0 @@ -17167,9 +18562,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@electron/remote@2.1.2(electron@37.2.0)': + '@electron/remote@2.1.3(electron@37.2.6)': dependencies: - electron: 37.2.0 + electron: 37.2.6 '@electron/universal@2.0.2': dependencies: @@ -17177,7 +18572,7 @@ snapshots: '@malept/cross-spawn-promise': 2.0.0 debug: 4.4.1(supports-color@6.0.0) dir-compare: 4.2.0 - fs-extra: 11.3.0 + fs-extra: 11.3.1 minimatch: 9.0.5 plist: 3.1.0 transitivePeerDependencies: @@ -17187,29 +18582,31 @@ snapshots: dependencies: cross-dirname: 0.1.0 debug: 4.4.1(supports-color@6.0.0) - fs-extra: 11.3.0 + fs-extra: 11.3.1 minimist: 1.2.8 postject: 1.0.0-alpha.6 transitivePeerDependencies: - supports-color - '@emnapi/core@1.4.3': + '@emnapi/core@1.4.5': dependencies: - '@emnapi/wasi-threads': 1.0.2 + '@emnapi/wasi-threads': 1.0.4 tslib: 2.8.1 - '@emnapi/runtime@1.4.3': + '@emnapi/runtime@1.4.5': dependencies: tslib: 2.8.1 - '@emnapi/wasi-threads@1.0.2': + '@emnapi/wasi-threads@1.0.4': dependencies: tslib: 2.8.1 + '@epic-web/invariant@1.0.0': {} + '@es-joy/jsdoccomment@0.50.2': dependencies: '@types/estree': 1.0.8 - '@typescript-eslint/types': 8.35.1 + '@typescript-eslint/types': 8.39.0 comment-parser: 1.4.1 esquery: 1.6.0 jsdoc-type-pratt-parser: 4.1.0 @@ -17217,88 +18614,166 @@ snapshots: '@esbuild/aix-ppc64@0.25.5': optional: true + '@esbuild/aix-ppc64@0.25.8': + optional: true + '@esbuild/android-arm64@0.25.5': optional: true + '@esbuild/android-arm64@0.25.8': + optional: true + '@esbuild/android-arm@0.25.5': optional: true + '@esbuild/android-arm@0.25.8': + optional: true + '@esbuild/android-x64@0.25.5': optional: true + '@esbuild/android-x64@0.25.8': + optional: true + '@esbuild/darwin-arm64@0.25.5': optional: true + '@esbuild/darwin-arm64@0.25.8': + optional: true + '@esbuild/darwin-x64@0.25.5': optional: true + '@esbuild/darwin-x64@0.25.8': + optional: true + '@esbuild/freebsd-arm64@0.25.5': optional: true + '@esbuild/freebsd-arm64@0.25.8': + optional: true + '@esbuild/freebsd-x64@0.25.5': optional: true + '@esbuild/freebsd-x64@0.25.8': + optional: true + '@esbuild/linux-arm64@0.25.5': optional: true + '@esbuild/linux-arm64@0.25.8': + optional: true + '@esbuild/linux-arm@0.25.5': optional: true + '@esbuild/linux-arm@0.25.8': + optional: true + '@esbuild/linux-ia32@0.25.5': optional: true + '@esbuild/linux-ia32@0.25.8': + optional: true + '@esbuild/linux-loong64@0.25.5': optional: true + '@esbuild/linux-loong64@0.25.8': + optional: true + '@esbuild/linux-mips64el@0.25.5': optional: true + '@esbuild/linux-mips64el@0.25.8': + optional: true + '@esbuild/linux-ppc64@0.25.5': optional: true + '@esbuild/linux-ppc64@0.25.8': + optional: true + '@esbuild/linux-riscv64@0.25.5': optional: true + '@esbuild/linux-riscv64@0.25.8': + optional: true + '@esbuild/linux-s390x@0.25.5': optional: true + '@esbuild/linux-s390x@0.25.8': + optional: true + '@esbuild/linux-x64@0.25.5': optional: true + '@esbuild/linux-x64@0.25.8': + optional: true + '@esbuild/netbsd-arm64@0.25.5': optional: true + '@esbuild/netbsd-arm64@0.25.8': + optional: true + '@esbuild/netbsd-x64@0.25.5': optional: true + '@esbuild/netbsd-x64@0.25.8': + optional: true + '@esbuild/openbsd-arm64@0.25.5': optional: true + '@esbuild/openbsd-arm64@0.25.8': + optional: true + '@esbuild/openbsd-x64@0.25.5': optional: true + '@esbuild/openbsd-x64@0.25.8': + optional: true + + '@esbuild/openharmony-arm64@0.25.8': + optional: true + '@esbuild/sunos-x64@0.25.5': optional: true + '@esbuild/sunos-x64@0.25.8': + optional: true + '@esbuild/win32-arm64@0.25.5': optional: true + '@esbuild/win32-arm64@0.25.8': + optional: true + '@esbuild/win32-ia32@0.25.5': optional: true + '@esbuild/win32-ia32@0.25.8': + optional: true + '@esbuild/win32-x64@0.25.5': optional: true - '@eslint-community/eslint-utils@4.7.0(eslint@9.30.1(jiti@2.4.2))': + '@esbuild/win32-x64@0.25.8': + optional: true + + '@eslint-community/eslint-utils@4.7.0(eslint@9.32.0(jiti@2.5.1))': dependencies: - eslint: 9.30.1(jiti@2.4.2) + eslint: 9.32.0(jiti@2.5.1) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} - '@eslint/compat@1.3.1(eslint@9.30.1(jiti@2.4.2))': + '@eslint/compat@1.3.1(eslint@9.32.0(jiti@2.5.1))': optionalDependencies: - eslint: 9.30.1(jiti@2.4.2) + eslint: 9.32.0(jiti@2.5.1) '@eslint/config-array@0.21.0': dependencies: @@ -17332,11 +18807,24 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.30.1': {} + '@eslint/js@9.32.0': {} + + '@eslint/markdown@6.6.0': + dependencies: + '@eslint/core': 0.14.0 + '@eslint/plugin-kit': 0.3.4 + github-slugger: 2.0.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-frontmatter: 2.0.1 + mdast-util-gfm: 3.1.0 + micromark-extension-frontmatter: 2.0.0 + micromark-extension-gfm: 3.0.0 + transitivePeerDependencies: + - supports-color '@eslint/object-schema@2.1.6': {} - '@eslint/plugin-kit@0.3.3': + '@eslint/plugin-kit@0.3.4': dependencies: '@eslint/core': 0.15.1 levn: 0.4.1 @@ -17389,7 +18877,7 @@ snapshots: '@excalidraw/mermaid-to-excalidraw@1.1.2': dependencies: '@excalidraw/markdown-to-text': 0.1.2 - mermaid: 11.8.0 + mermaid: 11.9.0 nanoid: 5.1.5 transitivePeerDependencies: - supports-color @@ -17420,170 +18908,170 @@ snapshots: '@floating-ui/utils@0.2.9': {} - '@fsegurai/codemirror-theme-abcdef@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-abcdef@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.0 + '@codemirror/view': 6.38.1 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-abyss@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-abyss@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.0 + '@codemirror/view': 6.38.1 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-android-studio@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-android-studio@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.0 + '@codemirror/view': 6.38.1 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-andromeda@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-andromeda@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.0 + '@codemirror/view': 6.38.1 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-basic-dark@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-basic-dark@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.0 + '@codemirror/view': 6.38.1 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-basic-light@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-basic-light@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.0 + '@codemirror/view': 6.38.1 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-forest@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-forest@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.0 + '@codemirror/view': 6.38.1 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-github-dark@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-github-dark@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.0 + '@codemirror/view': 6.38.1 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-github-light@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-github-light@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.0 + '@codemirror/view': 6.38.1 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-gruvbox-dark@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-gruvbox-dark@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.0 + '@codemirror/view': 6.38.1 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-gruvbox-light@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-gruvbox-light@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.0 + '@codemirror/view': 6.38.1 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-material-dark@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-material-dark@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.0 + '@codemirror/view': 6.38.1 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-material-light@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-material-light@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.0 + '@codemirror/view': 6.38.1 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-monokai@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-monokai@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.0 + '@codemirror/view': 6.38.1 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-nord@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-nord@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.0 + '@codemirror/view': 6.38.1 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-palenight@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-palenight@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.0 + '@codemirror/view': 6.38.1 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-solarized-dark@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-solarized-dark@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.0 + '@codemirror/view': 6.38.1 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-solarized-light@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-solarized-light@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.0 + '@codemirror/view': 6.38.1 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-tokyo-night-day@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-tokyo-night-day@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.0 + '@codemirror/view': 6.38.1 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-tokyo-night-storm@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-tokyo-night-storm@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.0 + '@codemirror/view': 6.38.1 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-volcano@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-volcano@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.0 + '@codemirror/view': 6.38.1 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-vscode-dark@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-vscode-dark@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.0 + '@codemirror/view': 6.38.1 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-vscode-light@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-vscode-light@6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.0 + '@codemirror/view': 6.38.1 '@lezer/highlight': 1.2.1 '@fullcalendar/core@6.1.18': dependencies: - preact: 10.26.9 + preact: 10.27.0 '@fullcalendar/daygrid@6.1.18(@fullcalendar/core@6.1.18)': dependencies: @@ -17669,18 +19157,26 @@ snapshots: transitivePeerDependencies: - babel-plugin-macros - '@inquirer/confirm@5.1.13(@types/node@22.16.0)': + '@inquirer/confirm@5.1.14(@types/node@22.17.0)': dependencies: - '@inquirer/core': 10.1.14(@types/node@22.16.0) - '@inquirer/type': 3.0.7(@types/node@22.16.0) + '@inquirer/core': 10.1.15(@types/node@22.17.0) + '@inquirer/type': 3.0.8(@types/node@22.17.0) optionalDependencies: - '@types/node': 22.16.0 + '@types/node': 22.17.0 optional: true - '@inquirer/core@10.1.14(@types/node@22.16.0)': + '@inquirer/confirm@5.1.14(@types/node@24.1.0)': dependencies: - '@inquirer/figures': 1.0.12 - '@inquirer/type': 3.0.7(@types/node@22.16.0) + '@inquirer/core': 10.1.15(@types/node@24.1.0) + '@inquirer/type': 3.0.8(@types/node@24.1.0) + optionalDependencies: + '@types/node': 24.1.0 + optional: true + + '@inquirer/core@10.1.15(@types/node@22.17.0)': + dependencies: + '@inquirer/figures': 1.0.13 + '@inquirer/type': 3.0.8(@types/node@22.17.0) ansi-escapes: 4.3.2 cli-width: 4.1.0 mute-stream: 2.0.0 @@ -17688,17 +19184,42 @@ snapshots: wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 22.16.0 + '@types/node': 22.17.0 optional: true - '@inquirer/figures@1.0.12': - optional: true - - '@inquirer/type@3.0.7(@types/node@22.16.0)': + '@inquirer/core@10.1.15(@types/node@24.1.0)': + dependencies: + '@inquirer/figures': 1.0.13 + '@inquirer/type': 3.0.8(@types/node@24.1.0) + ansi-escapes: 4.3.2 + cli-width: 4.1.0 + mute-stream: 2.0.0 + signal-exit: 4.1.0 + wrap-ansi: 6.2.0 + yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 22.16.0 + '@types/node': 24.1.0 optional: true + '@inquirer/figures@1.0.13': + optional: true + + '@inquirer/type@3.0.8(@types/node@22.17.0)': + optionalDependencies: + '@types/node': 22.17.0 + optional: true + + '@inquirer/type@3.0.8(@types/node@24.1.0)': + optionalDependencies: + '@types/node': 24.1.0 + optional: true + + '@isaacs/balanced-match@4.0.1': {} + + '@isaacs/brace-expansion@5.0.0': + dependencies: + '@isaacs/balanced-match': 4.0.1 + '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -17722,130 +19243,146 @@ snapshots: '@istanbuljs/schema@0.1.3': {} - '@jest/console@29.7.0': + '@jest/console@30.0.5': dependencies: - '@jest/types': 29.6.3 - '@types/node': 22.16.0 + '@jest/types': 30.0.5 + '@types/node': 22.17.0 chalk: 4.1.2 - jest-message-util: 29.7.0 - jest-util: 29.7.0 + jest-message-util: 30.0.5 + jest-util: 30.0.5 slash: 3.0.0 - '@jest/environment@29.7.0': - dependencies: - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.16.0 - jest-mock: 29.7.0 + '@jest/diff-sequences@30.0.1': {} - '@jest/expect-utils@29.7.0': + '@jest/environment@30.0.5': dependencies: - jest-get-type: 29.6.3 + '@jest/fake-timers': 30.0.5 + '@jest/types': 30.0.5 + '@types/node': 22.17.0 + jest-mock: 30.0.5 - '@jest/expect@29.7.0': + '@jest/expect-utils@30.0.5': dependencies: - expect: 29.7.0 - jest-snapshot: 29.7.0 + '@jest/get-type': 30.0.1 + + '@jest/expect@30.0.5': + dependencies: + expect: 30.0.5 + jest-snapshot: 30.0.5 transitivePeerDependencies: - supports-color - '@jest/fake-timers@29.7.0': + '@jest/fake-timers@30.0.5': dependencies: - '@jest/types': 29.6.3 - '@sinonjs/fake-timers': 10.3.0 - '@types/node': 22.16.0 - jest-message-util: 29.7.0 - jest-mock: 29.7.0 - jest-util: 29.7.0 + '@jest/types': 30.0.5 + '@sinonjs/fake-timers': 13.0.5 + '@types/node': 22.17.0 + jest-message-util: 30.0.5 + jest-mock: 30.0.5 + jest-util: 30.0.5 - '@jest/globals@29.7.0': + '@jest/get-type@30.0.1': {} + + '@jest/globals@30.0.5': dependencies: - '@jest/environment': 29.7.0 - '@jest/expect': 29.7.0 - '@jest/types': 29.6.3 - jest-mock: 29.7.0 + '@jest/environment': 30.0.5 + '@jest/expect': 30.0.5 + '@jest/types': 30.0.5 + jest-mock: 30.0.5 transitivePeerDependencies: - supports-color - '@jest/reporters@29.7.0': + '@jest/pattern@30.0.1': + dependencies: + '@types/node': 22.17.0 + jest-regex-util: 30.0.1 + + '@jest/reporters@30.0.5': dependencies: '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 + '@jest/console': 30.0.5 + '@jest/test-result': 30.0.5 + '@jest/transform': 30.0.5 + '@jest/types': 30.0.5 '@jridgewell/trace-mapping': 0.3.29 - '@types/node': 22.16.0 + '@types/node': 22.17.0 chalk: 4.1.2 collect-v8-coverage: 1.0.2 - exit: 0.1.2 - glob: 7.2.3 + exit-x: 0.2.2 + glob: 10.4.5 graceful-fs: 4.2.11 istanbul-lib-coverage: 3.2.2 istanbul-lib-instrument: 6.0.3 istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 4.0.1 + istanbul-lib-source-maps: 5.0.6 istanbul-reports: 3.1.7 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - jest-worker: 29.7.0 + jest-message-util: 30.0.5 + jest-util: 30.0.5 + jest-worker: 30.0.5 slash: 3.0.0 string-length: 4.0.2 - strip-ansi: 6.0.1 v8-to-istanbul: 9.3.0 transitivePeerDependencies: - supports-color - '@jest/schemas@29.6.3': + '@jest/schemas@30.0.5': dependencies: - '@sinclair/typebox': 0.27.8 + '@sinclair/typebox': 0.34.38 - '@jest/source-map@29.6.3': + '@jest/snapshot-utils@30.0.5': + dependencies: + '@jest/types': 30.0.5 + chalk: 4.1.2 + graceful-fs: 4.2.11 + natural-compare: 1.4.0 + + '@jest/source-map@30.0.1': dependencies: '@jridgewell/trace-mapping': 0.3.29 callsites: 3.1.0 graceful-fs: 4.2.11 - '@jest/test-result@29.7.0': + '@jest/test-result@30.0.5': dependencies: - '@jest/console': 29.7.0 - '@jest/types': 29.6.3 + '@jest/console': 30.0.5 + '@jest/types': 30.0.5 '@types/istanbul-lib-coverage': 2.0.6 collect-v8-coverage: 1.0.2 - '@jest/test-sequencer@29.7.0': + '@jest/test-sequencer@30.0.5': dependencies: - '@jest/test-result': 29.7.0 + '@jest/test-result': 30.0.5 graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 + jest-haste-map: 30.0.5 slash: 3.0.0 - '@jest/transform@29.7.0': + '@jest/transform@30.0.5': dependencies: '@babel/core': 7.28.0 - '@jest/types': 29.6.3 + '@jest/types': 30.0.5 '@jridgewell/trace-mapping': 0.3.29 - babel-plugin-istanbul: 6.1.1 + babel-plugin-istanbul: 7.0.0 chalk: 4.1.2 convert-source-map: 2.0.0 fast-json-stable-stringify: 2.1.0 graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-regex-util: 29.6.3 - jest-util: 29.7.0 + jest-haste-map: 30.0.5 + jest-regex-util: 30.0.1 + jest-util: 30.0.5 micromatch: 4.0.8 pirates: 4.0.7 slash: 3.0.0 - write-file-atomic: 4.0.2 + write-file-atomic: 5.0.1 transitivePeerDependencies: - supports-color - '@jest/types@29.6.3': + '@jest/types@30.0.5': dependencies: - '@jest/schemas': 29.6.3 + '@jest/pattern': 30.0.1 + '@jest/schemas': 30.0.5 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.16.0 + '@types/node': 22.17.0 '@types/yargs': 17.0.33 chalk: 4.1.2 @@ -18053,6 +19590,11 @@ snapshots: '@jridgewell/set-array@1.2.1': {} + '@jridgewell/source-map@0.3.10': + dependencies: + '@jridgewell/gen-mapping': 0.3.12 + '@jridgewell/trace-mapping': 0.3.29 + '@jridgewell/source-map@0.3.6': dependencies: '@jridgewell/gen-mapping': 0.3.8 @@ -18084,18 +19626,24 @@ snapshots: '@jsonjoy.com/json-pack@1.2.0(tslib@2.8.1)': dependencies: '@jsonjoy.com/base64': 1.1.2(tslib@2.8.1) - '@jsonjoy.com/util': 1.5.0(tslib@2.8.1) + '@jsonjoy.com/util': 1.6.0(tslib@2.8.1) hyperdyperid: 1.2.0 thingies: 1.21.0(tslib@2.8.1) tslib: 2.8.1 - '@jsonjoy.com/util@1.5.0(tslib@2.8.1)': + '@jsonjoy.com/util@1.6.0(tslib@2.8.1)': dependencies: tslib: 2.8.1 - '@keyv/serialize@1.0.3': + '@keyv/serialize@1.1.0': {} + + '@kwsites/file-exists@1.1.1': dependencies: - buffer: 6.0.3 + debug: 4.4.1(supports-color@6.0.0) + transitivePeerDependencies: + - supports-color + + '@kwsites/promise-deferred@1.1.1': {} '@leichtgewicht/ip-codec@2.0.5': {} @@ -18203,35 +19751,70 @@ snapshots: - supports-color optional: true + '@mapbox/geojson-rewind@0.5.2': + dependencies: + get-stream: 6.0.1 + minimist: 1.2.8 + + '@mapbox/jsonlint-lines-primitives@2.0.2': {} + + '@mapbox/point-geometry@0.1.0': {} + + '@mapbox/tiny-sdf@2.0.7': {} + + '@mapbox/unitbezier@0.0.1': {} + + '@mapbox/vector-tile@1.3.1': + dependencies: + '@mapbox/point-geometry': 0.1.0 + + '@mapbox/whoots-js@3.1.0': {} + + '@maplibre/maplibre-gl-leaflet@0.1.3(@types/leaflet@1.9.20)(leaflet@1.9.4)(maplibre-gl@5.6.1)': + dependencies: + '@types/leaflet': 1.9.20 + leaflet: 1.9.4 + maplibre-gl: 5.6.1 + + '@maplibre/maplibre-gl-style-spec@23.3.0': + dependencies: + '@mapbox/jsonlint-lines-primitives': 2.0.2 + '@mapbox/unitbezier': 0.0.1 + json-stringify-pretty-compact: 4.0.0 + minimist: 1.2.8 + quickselect: 3.0.0 + rw: 1.3.3 + tinyqueue: 3.0.0 + '@marijn/find-cluster-break@1.0.2': {} - '@mermaid-js/layout-elk@0.1.8(mermaid@11.8.0)': + '@mermaid-js/layout-elk@0.1.8(mermaid@11.9.0)': dependencies: d3: 7.9.0 elkjs: 0.9.3 - mermaid: 11.8.0 + mermaid: 11.9.0 - '@mermaid-js/parser@0.6.0': + '@mermaid-js/parser@0.6.2': dependencies: langium: 3.3.1 - '@microsoft/api-extractor-model@7.30.6(@types/node@22.16.0)': + '@microsoft/api-extractor-model@7.30.6(@types/node@22.17.0)': dependencies: '@microsoft/tsdoc': 0.15.1 '@microsoft/tsdoc-config': 0.17.1 - '@rushstack/node-core-library': 5.13.1(@types/node@22.16.0) + '@rushstack/node-core-library': 5.13.1(@types/node@22.17.0) transitivePeerDependencies: - '@types/node' - '@microsoft/api-extractor@7.52.8(@types/node@22.16.0)': + '@microsoft/api-extractor@7.52.8(@types/node@22.17.0)': dependencies: - '@microsoft/api-extractor-model': 7.30.6(@types/node@22.16.0) + '@microsoft/api-extractor-model': 7.30.6(@types/node@22.17.0) '@microsoft/tsdoc': 0.15.1 '@microsoft/tsdoc-config': 0.17.1 - '@rushstack/node-core-library': 5.13.1(@types/node@22.16.0) + '@rushstack/node-core-library': 5.13.1(@types/node@22.17.0) '@rushstack/rig-package': 0.5.3 - '@rushstack/terminal': 0.15.3(@types/node@22.16.0) - '@rushstack/ts-command-line': 5.0.1(@types/node@22.16.0) + '@rushstack/terminal': 0.15.3(@types/node@22.17.0) + '@rushstack/ts-command-line': 5.0.1(@types/node@22.17.0) lodash: 4.17.21 minimatch: 3.0.8 resolve: 1.22.10 @@ -18250,9 +19833,9 @@ snapshots: '@microsoft/tsdoc@0.15.1': {} - '@mind-elixir/node-menu@1.0.5(mind-elixir@4.6.2)': + '@mind-elixir/node-menu@5.0.0(mind-elixir@5.0.4)': dependencies: - mind-elixir: 4.6.2 + mind-elixir: 5.0.4 '@mixmark-io/domino@2.2.0': {} @@ -18266,19 +19849,26 @@ snapshots: strict-event-emitter: 0.5.1 optional: true - '@napi-rs/wasm-runtime@0.2.11': + '@napi-rs/wasm-runtime@0.2.12': dependencies: - '@emnapi/core': 1.4.3 - '@emnapi/runtime': 1.4.3 - '@tybys/wasm-util': 0.9.0 + '@emnapi/core': 1.4.5 + '@emnapi/runtime': 1.4.5 + '@tybys/wasm-util': 0.10.0 optional: true '@napi-rs/wasm-runtime@0.2.4': dependencies: - '@emnapi/core': 1.4.3 - '@emnapi/runtime': 1.4.3 + '@emnapi/core': 1.4.5 + '@emnapi/runtime': 1.4.5 '@tybys/wasm-util': 0.9.0 + '@napi-rs/wasm-runtime@1.0.2': + dependencies: + '@emnapi/core': 1.4.5 + '@emnapi/runtime': 1.4.5 + '@tybys/wasm-util': 0.10.0 + optional: true + '@noble/hashes@1.8.0': {} '@nodelib/fs.scandir@2.1.5': @@ -18317,6 +19907,22 @@ snapshots: dependencies: semver: 7.7.2 + '@npmcli/git@6.0.3': + dependencies: + '@npmcli/promise-spawn': 8.0.2 + ini: 5.0.0 + lru-cache: 10.4.3 + npm-pick-manifest: 10.0.0 + proc-log: 5.0.0 + promise-retry: 2.0.1 + semver: 7.7.2 + which: 5.0.0 + + '@npmcli/installed-package-contents@3.0.0': + dependencies: + npm-bundled: 4.0.0 + npm-normalize-package-bin: 4.0.0 + '@npmcli/move-file@1.1.2': dependencies: mkdirp: 1.0.4 @@ -18327,28 +19933,57 @@ snapshots: mkdirp: 1.0.4 rimraf: 3.0.2 - '@nx/devkit@21.2.2(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17)))': + '@npmcli/node-gyp@4.0.0': {} + + '@npmcli/package-json@6.2.0': + dependencies: + '@npmcli/git': 6.0.3 + glob: 10.4.5 + hosted-git-info: 8.1.0 + json-parse-even-better-errors: 4.0.0 + proc-log: 5.0.0 + semver: 7.7.2 + validate-npm-package-license: 3.0.4 + + '@npmcli/promise-spawn@8.0.2': + dependencies: + which: 5.0.0 + + '@npmcli/redact@3.2.2': {} + + '@npmcli/run-script@9.1.0': + dependencies: + '@npmcli/node-gyp': 4.0.0 + '@npmcli/package-json': 6.2.0 + '@npmcli/promise-spawn': 8.0.2 + node-gyp: 11.2.0 + proc-log: 5.0.0 + which: 5.0.0 + transitivePeerDependencies: + - supports-color + + '@nx/devkit@21.3.11(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)))': dependencies: ejs: 3.1.10 enquirer: 2.3.6 ignore: 5.3.2 minimatch: 9.0.3 - nx: 21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17)) + nx: 21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)) semver: 7.7.2 - tmp: 0.2.3 + tmp: 0.2.4 tslib: 2.8.1 yargs-parser: 21.1.1 - '@nx/esbuild@21.2.2(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17)))': + '@nx/esbuild@21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)))': dependencies: - '@nx/devkit': 21.2.2(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - '@nx/js': 21.2.2(patch_hash=7201af3a8fb4840b046e4e18cc2758fa67ee3d0cf11d0783869dc828cfc79fc7)(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))) + '@nx/devkit': 21.3.11(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) + '@nx/js': 21.3.11(patch_hash=7201af3a8fb4840b046e4e18cc2758fa67ee3d0cf11d0783869dc828cfc79fc7)(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) picocolors: 1.1.1 tinyglobby: 0.2.14 tsconfig-paths: 4.2.0 tslib: 2.8.1 optionalDependencies: - esbuild: 0.25.5 + esbuild: 0.25.8 transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -18358,14 +19993,14 @@ snapshots: - supports-color - verdaccio - '@nx/eslint-plugin@21.2.2(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@typescript-eslint/parser@8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint-config-prettier@10.1.5(eslint@9.30.1(jiti@2.4.2)))(eslint@9.30.1(jiti@2.4.2))(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17)))(typescript@5.8.3)': + '@nx/eslint-plugin@21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@typescript-eslint/parser@8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint-config-prettier@10.1.8(eslint@9.32.0(jiti@2.5.1)))(eslint@9.32.0(jiti@2.5.1))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)))(typescript@5.9.2)': dependencies: - '@nx/devkit': 21.2.2(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - '@nx/js': 21.2.2(patch_hash=7201af3a8fb4840b046e4e18cc2758fa67ee3d0cf11d0783869dc828cfc79fc7)(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - '@phenomnomnominal/tsquery': 5.0.1(typescript@5.8.3) - '@typescript-eslint/parser': 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/type-utils': 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/utils': 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) + '@nx/devkit': 21.3.11(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) + '@nx/js': 21.3.11(patch_hash=7201af3a8fb4840b046e4e18cc2758fa67ee3d0cf11d0783869dc828cfc79fc7)(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) + '@phenomnomnominal/tsquery': 5.0.1(typescript@5.9.2) + '@typescript-eslint/parser': 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/type-utils': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/utils': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) chalk: 4.1.2 confusing-browser-globals: 1.0.11 globals: 15.15.0 @@ -18373,7 +20008,7 @@ snapshots: semver: 7.7.2 tslib: 2.8.1 optionalDependencies: - eslint-config-prettier: 10.1.5(eslint@9.30.1(jiti@2.4.2)) + eslint-config-prettier: 10.1.8(eslint@9.32.0(jiti@2.5.1)) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -18385,11 +20020,11 @@ snapshots: - typescript - verdaccio - '@nx/eslint@21.2.2(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@zkochan/js-yaml@0.0.7)(eslint@9.30.1(jiti@2.4.2))(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17)))': + '@nx/eslint@21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@zkochan/js-yaml@0.0.7)(eslint@9.32.0(jiti@2.5.1))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)))': dependencies: - '@nx/devkit': 21.2.2(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - '@nx/js': 21.2.2(patch_hash=7201af3a8fb4840b046e4e18cc2758fa67ee3d0cf11d0783869dc828cfc79fc7)(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - eslint: 9.30.1(jiti@2.4.2) + '@nx/devkit': 21.3.11(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) + '@nx/js': 21.3.11(patch_hash=7201af3a8fb4840b046e4e18cc2758fa67ee3d0cf11d0783869dc828cfc79fc7)(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) + eslint: 9.32.0(jiti@2.5.1) semver: 7.7.2 tslib: 2.8.1 typescript: 5.8.3 @@ -18404,11 +20039,11 @@ snapshots: - supports-color - verdaccio - '@nx/express@21.2.2(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.16.0)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.30.1(jiti@2.4.2))(express@4.21.2)(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@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@22.16.0)(typescript@5.8.3))(typescript@5.8.3)': + '@nx/express@21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.17.0)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.32.0(jiti@2.5.1))(express@4.21.2)(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@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@22.17.0)(typescript@5.9.2))(typescript@5.9.2)': dependencies: - '@nx/devkit': 21.2.2(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - '@nx/js': 21.2.2(patch_hash=7201af3a8fb4840b046e4e18cc2758fa67ee3d0cf11d0783869dc828cfc79fc7)(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - '@nx/node': 21.2.2(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.16.0)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.30.1(jiti@2.4.2))(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@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@22.16.0)(typescript@5.8.3))(typescript@5.8.3) + '@nx/devkit': 21.3.11(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) + '@nx/js': 21.3.11(patch_hash=7201af3a8fb4840b046e4e18cc2758fa67ee3d0cf11d0783869dc828cfc79fc7)(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) + '@nx/node': 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.17.0)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.32.0(jiti@2.5.1))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@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@22.17.0)(typescript@5.9.2))(typescript@5.9.2) tslib: 2.8.1 optionalDependencies: express: 4.21.2 @@ -18420,6 +20055,7 @@ snapshots: - '@zkochan/js-yaml' - babel-plugin-macros - debug + - esbuild-register - eslint - node-notifier - nx @@ -18428,17 +20064,17 @@ snapshots: - typescript - verdaccio - '@nx/jest@21.2.2(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.16.0)(babel-plugin-macros@3.1.0)(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@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@22.16.0)(typescript@5.8.3))(typescript@5.8.3)': + '@nx/jest@21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.17.0)(babel-plugin-macros@3.1.0)(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@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@22.17.0)(typescript@5.9.2))(typescript@5.9.2)': dependencies: - '@jest/reporters': 29.7.0 - '@jest/test-result': 29.7.0 - '@nx/devkit': 21.2.2(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - '@nx/js': 21.2.2(patch_hash=7201af3a8fb4840b046e4e18cc2758fa67ee3d0cf11d0783869dc828cfc79fc7)(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - '@phenomnomnominal/tsquery': 5.0.1(typescript@5.8.3) + '@jest/reporters': 30.0.5 + '@jest/test-result': 30.0.5 + '@nx/devkit': 21.3.11(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) + '@nx/js': 21.3.11(patch_hash=7201af3a8fb4840b046e4e18cc2758fa67ee3d0cf11d0783869dc828cfc79fc7)(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) + '@phenomnomnominal/tsquery': 5.0.1(typescript@5.9.2) identity-obj-proxy: 3.0.0 - jest-config: 29.7.0(@types/node@22.16.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.16.0)(typescript@5.8.3)) - jest-resolve: 29.7.0 - jest-util: 29.7.0 + jest-config: 30.0.5(@types/node@22.17.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.17.0)(typescript@5.9.2)) + jest-resolve: 30.0.5 + jest-util: 30.0.5 minimatch: 9.0.3 picocolors: 1.1.1 resolve.exports: 2.0.3 @@ -18452,6 +20088,7 @@ snapshots: - '@types/node' - babel-plugin-macros - debug + - esbuild-register - node-notifier - nx - supports-color @@ -18459,21 +20096,21 @@ snapshots: - typescript - verdaccio - '@nx/js@21.2.2(patch_hash=7201af3a8fb4840b046e4e18cc2758fa67ee3d0cf11d0783869dc828cfc79fc7)(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17)))': + '@nx/js@21.3.11(patch_hash=7201af3a8fb4840b046e4e18cc2758fa67ee3d0cf11d0783869dc828cfc79fc7)(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)))': dependencies: - '@babel/core': 7.26.10 - '@babel/plugin-proposal-decorators': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-runtime': 7.26.10(@babel/core@7.26.10) - '@babel/preset-env': 7.26.9(@babel/core@7.26.10) - '@babel/preset-typescript': 7.27.0(@babel/core@7.26.10) + '@babel/core': 7.28.0 + '@babel/plugin-proposal-decorators': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-runtime': 7.26.10(@babel/core@7.28.0) + '@babel/preset-env': 7.26.9(@babel/core@7.28.0) + '@babel/preset-typescript': 7.27.0(@babel/core@7.28.0) '@babel/runtime': 7.27.6 - '@nx/devkit': 21.2.2(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - '@nx/workspace': 21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17)) + '@nx/devkit': 21.3.11(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) + '@nx/workspace': 21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)) '@zkochan/js-yaml': 0.0.7 - babel-plugin-const-enum: 1.2.0(@babel/core@7.26.10) + babel-plugin-const-enum: 1.2.0(@babel/core@7.28.0) babel-plugin-macros: 3.1.0 - babel-plugin-transform-typescript-metadata: 0.3.2(@babel/core@7.26.10)(@babel/traverse@7.28.0) + babel-plugin-transform-typescript-metadata: 0.3.2(@babel/core@7.28.0)(@babel/traverse@7.28.0) chalk: 4.1.2 columnify: 1.6.0 detect-port: 1.6.1 @@ -18498,12 +20135,12 @@ snapshots: - nx - supports-color - '@nx/node@21.2.2(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.16.0)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.30.1(jiti@2.4.2))(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@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@22.16.0)(typescript@5.8.3))(typescript@5.8.3)': + '@nx/node@21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.17.0)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.32.0(jiti@2.5.1))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@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@22.17.0)(typescript@5.9.2))(typescript@5.9.2)': dependencies: - '@nx/devkit': 21.2.2(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - '@nx/eslint': 21.2.2(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@zkochan/js-yaml@0.0.7)(eslint@9.30.1(jiti@2.4.2))(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - '@nx/jest': 21.2.2(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.16.0)(babel-plugin-macros@3.1.0)(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@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@22.16.0)(typescript@5.8.3))(typescript@5.8.3) - '@nx/js': 21.2.2(patch_hash=7201af3a8fb4840b046e4e18cc2758fa67ee3d0cf11d0783869dc828cfc79fc7)(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))) + '@nx/devkit': 21.3.11(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) + '@nx/eslint': 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@zkochan/js-yaml@0.0.7)(eslint@9.32.0(jiti@2.5.1))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) + '@nx/jest': 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.17.0)(babel-plugin-macros@3.1.0)(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@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@22.17.0)(typescript@5.9.2))(typescript@5.9.2) + '@nx/js': 21.3.11(patch_hash=7201af3a8fb4840b046e4e18cc2758fa67ee3d0cf11d0783869dc828cfc79fc7)(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) kill-port: 1.6.1 tcp-port-used: 1.0.2 tslib: 2.8.1 @@ -18515,6 +20152,7 @@ snapshots: - '@zkochan/js-yaml' - babel-plugin-macros - debug + - esbuild-register - eslint - node-notifier - nx @@ -18523,46 +20161,46 @@ snapshots: - typescript - verdaccio - '@nx/nx-darwin-arm64@21.2.2': + '@nx/nx-darwin-arm64@21.3.11': optional: true - '@nx/nx-darwin-x64@21.2.2': + '@nx/nx-darwin-x64@21.3.11': optional: true - '@nx/nx-freebsd-x64@21.2.2': + '@nx/nx-freebsd-x64@21.3.11': optional: true - '@nx/nx-linux-arm-gnueabihf@21.2.2': + '@nx/nx-linux-arm-gnueabihf@21.3.11': optional: true - '@nx/nx-linux-arm64-gnu@21.2.2': + '@nx/nx-linux-arm64-gnu@21.3.11': optional: true - '@nx/nx-linux-arm64-musl@21.2.2': + '@nx/nx-linux-arm64-musl@21.3.11': optional: true - '@nx/nx-linux-x64-gnu@21.2.2': + '@nx/nx-linux-x64-gnu@21.3.11': optional: true - '@nx/nx-linux-x64-musl@21.2.2': + '@nx/nx-linux-x64-musl@21.3.11': optional: true - '@nx/nx-win32-arm64-msvc@21.2.2': + '@nx/nx-win32-arm64-msvc@21.3.11': optional: true - '@nx/nx-win32-x64-msvc@21.2.2': + '@nx/nx-win32-x64-msvc@21.3.11': optional: true - '@nx/playwright@21.2.2(@babel/traverse@7.28.0)(@playwright/test@1.53.2)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@zkochan/js-yaml@0.0.7)(eslint@9.30.1(jiti@2.4.2))(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17)))(typescript@5.8.3)': + '@nx/playwright@21.3.11(@babel/traverse@7.28.0)(@playwright/test@1.54.2)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@zkochan/js-yaml@0.0.7)(eslint@9.32.0(jiti@2.5.1))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)))(typescript@5.9.2)': dependencies: - '@nx/devkit': 21.2.2(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - '@nx/eslint': 21.2.2(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@zkochan/js-yaml@0.0.7)(eslint@9.30.1(jiti@2.4.2))(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - '@nx/js': 21.2.2(patch_hash=7201af3a8fb4840b046e4e18cc2758fa67ee3d0cf11d0783869dc828cfc79fc7)(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - '@phenomnomnominal/tsquery': 5.0.1(typescript@5.8.3) + '@nx/devkit': 21.3.11(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) + '@nx/eslint': 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@zkochan/js-yaml@0.0.7)(eslint@9.32.0(jiti@2.5.1))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) + '@nx/js': 21.3.11(patch_hash=7201af3a8fb4840b046e4e18cc2758fa67ee3d0cf11d0783869dc828cfc79fc7)(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) + '@phenomnomnominal/tsquery': 5.0.1(typescript@5.9.2) minimatch: 9.0.3 tslib: 2.8.1 optionalDependencies: - '@playwright/test': 1.53.2 + '@playwright/test': 1.54.2 transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -18575,19 +20213,19 @@ snapshots: - typescript - verdaccio - '@nx/vite@21.2.2(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17)))(typescript@5.8.3)(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0))(vitest@3.2.4)': + '@nx/vite@21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)))(typescript@5.9.2)(vite@7.1.1(@types/node@22.17.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vitest@3.2.4)': dependencies: - '@nx/devkit': 21.2.2(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - '@nx/js': 21.2.2(patch_hash=7201af3a8fb4840b046e4e18cc2758fa67ee3d0cf11d0783869dc828cfc79fc7)(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - '@phenomnomnominal/tsquery': 5.0.1(typescript@5.8.3) + '@nx/devkit': 21.3.11(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) + '@nx/js': 21.3.11(patch_hash=7201af3a8fb4840b046e4e18cc2758fa67ee3d0cf11d0783869dc828cfc79fc7)(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) + '@phenomnomnominal/tsquery': 5.0.1(typescript@5.9.2) '@swc/helpers': 0.5.17 ajv: 8.17.1 enquirer: 2.3.6 picomatch: 4.0.2 semver: 7.7.2 tsconfig-paths: 4.2.0 - vite: 7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0) - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.16.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.4.2)(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.16.0)(typescript@5.8.3))(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0) + vite: 7.1.1(@types/node@22.17.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.17.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.5.1)(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.17.0)(typescript@5.9.2))(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -18598,10 +20236,10 @@ snapshots: - typescript - verdaccio - '@nx/web@21.2.2(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17)))': + '@nx/web@21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)))': dependencies: - '@nx/devkit': 21.2.2(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - '@nx/js': 21.2.2(patch_hash=7201af3a8fb4840b046e4e18cc2758fa67ee3d0cf11d0783869dc828cfc79fc7)(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))) + '@nx/devkit': 21.3.11(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) + '@nx/js': 21.3.11(patch_hash=7201af3a8fb4840b046e4e18cc2758fa67ee3d0cf11d0783869dc828cfc79fc7)(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) detect-port: 1.6.1 http-server: 14.1.1 picocolors: 1.1.1 @@ -18615,13 +20253,13 @@ snapshots: - supports-color - verdaccio - '@nx/workspace@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))': + '@nx/workspace@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))': dependencies: - '@nx/devkit': 21.2.2(nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17))) + '@nx/devkit': 21.3.11(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) '@zkochan/js-yaml': 0.0.7 chalk: 4.1.2 enquirer: 2.3.6 - nx: 21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17)) + nx: 21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)) picomatch: 4.0.2 tslib: 2.8.1 yargs-parser: 21.1.1 @@ -18642,6 +20280,10 @@ snapshots: '@open-draft/until@2.1.0': optional: true + '@oxc-project/runtime@0.77.3': {} + + '@oxc-project/types@0.77.3': {} + '@oxc-resolver/binding-darwin-arm64@5.3.0': optional: true @@ -18674,7 +20316,7 @@ snapshots: '@oxc-resolver/binding-wasm32-wasi@5.3.0': dependencies: - '@napi-rs/wasm-runtime': 0.2.11 + '@napi-rs/wasm-runtime': 0.2.12 optional: true '@oxc-resolver/binding-win32-arm64-msvc@5.3.0': @@ -18750,22 +20392,60 @@ snapshots: '@parcel/watcher-win32-x64': 2.5.1 optional: true - '@phenomnomnominal/tsquery@5.0.1(typescript@5.8.3)': + '@phenomnomnominal/tsquery@5.0.1(typescript@5.9.2)': dependencies: esquery: 1.6.0 - typescript: 5.8.3 + typescript: 5.9.2 '@pkgjs/parseargs@0.11.0': optional: true - '@playwright/test@1.53.2': + '@pkgr/core@0.2.9': {} + + '@playwright/test@1.54.2': dependencies: - playwright: 1.53.2 + playwright: 1.54.2 '@polka/url@1.0.0-next.29': {} '@popperjs/core@2.11.8': {} + '@preact/preset-vite@2.10.2(@babel/core@7.28.0)(preact@10.27.0)(vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))': + dependencies: + '@babel/core': 7.28.0 + '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.28.0) + '@prefresh/vite': 2.4.8(preact@10.27.0)(vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) + '@rollup/pluginutils': 4.2.1 + babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.28.0) + debug: 4.4.1(supports-color@6.0.0) + picocolors: 1.1.1 + vite: 7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) + vite-prerender-plugin: 0.5.11(vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) + transitivePeerDependencies: + - preact + - supports-color + + '@prefresh/babel-plugin@0.5.2': {} + + '@prefresh/core@1.5.5(preact@10.27.0)': + dependencies: + preact: 10.27.0 + + '@prefresh/utils@1.2.1': {} + + '@prefresh/vite@2.4.8(preact@10.27.0)(vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))': + dependencies: + '@babel/core': 7.28.0 + '@prefresh/babel-plugin': 0.5.2 + '@prefresh/core': 1.5.5(preact@10.27.0) + '@prefresh/utils': 1.2.1 + '@rollup/pluginutils': 4.2.1 + preact: 10.27.0 + vite: 7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) + transitivePeerDependencies: + - supports-color + '@promptbook/utils@0.69.5': dependencies: spacetrim: 0.11.59 @@ -18793,14 +20473,14 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@puppeteer/browsers@2.10.5': + '@puppeteer/browsers@2.10.6': dependencies: debug: 4.4.1(supports-color@6.0.0) extract-zip: 2.0.1 progress: 2.0.3 proxy-agent: 6.5.0 semver: 7.7.2 - tar-fs: 3.0.9 + tar-fs: 3.1.0 yargs: 17.7.2 transitivePeerDependencies: - bare-buffer @@ -19086,29 +20766,75 @@ snapshots: '@radix-ui/rect@1.1.0': {} - '@replit/codemirror-indentation-markers@6.5.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)': + '@replit/codemirror-indentation-markers@6.5.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.0 + '@codemirror/view': 6.38.1 - '@replit/codemirror-lang-nix@6.0.1(@codemirror/autocomplete@6.18.6)(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@lezer/common@1.2.3)(@lezer/highlight@1.2.1)(@lezer/lr@1.4.2)': + '@replit/codemirror-lang-nix@6.0.1(@codemirror/autocomplete@6.18.6)(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(@lezer/common@1.2.3)(@lezer/highlight@1.2.1)(@lezer/lr@1.4.2)': dependencies: '@codemirror/autocomplete': 6.18.6 '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.0 + '@codemirror/view': 6.38.1 '@lezer/common': 1.2.3 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 - '@replit/codemirror-vim@6.3.0(@codemirror/commands@6.8.1)(@codemirror/language@6.11.0)(@codemirror/search@6.5.11)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)': + '@replit/codemirror-vim@6.3.0(@codemirror/commands@6.8.1)(@codemirror/language@6.11.0)(@codemirror/search@6.5.11)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)': dependencies: '@codemirror/commands': 6.8.1 '@codemirror/language': 6.11.0 '@codemirror/search': 6.5.11 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.0 + '@codemirror/view': 6.38.1 + + '@rolldown/binding-android-arm64@1.0.0-beta.29': + optional: true + + '@rolldown/binding-darwin-arm64@1.0.0-beta.29': + optional: true + + '@rolldown/binding-darwin-x64@1.0.0-beta.29': + optional: true + + '@rolldown/binding-freebsd-x64@1.0.0-beta.29': + optional: true + + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.29': + optional: true + + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.29': + optional: true + + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.29': + optional: true + + '@rolldown/binding-linux-arm64-ohos@1.0.0-beta.29': + optional: true + + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.29': + optional: true + + '@rolldown/binding-linux-x64-musl@1.0.0-beta.29': + optional: true + + '@rolldown/binding-wasm32-wasi@1.0.0-beta.29': + dependencies: + '@napi-rs/wasm-runtime': 1.0.2 + optional: true + + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.29': + optional: true + + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.29': + optional: true + + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.29': + optional: true + + '@rolldown/pluginutils@1.0.0-beta.29': {} '@rollup/plugin-commonjs@25.0.8(rollup@4.40.0)': dependencies: @@ -19153,11 +20879,11 @@ snapshots: optionalDependencies: rollup: 4.40.0 - '@rollup/plugin-typescript@11.1.6(rollup@4.40.0)(tslib@2.8.1)(typescript@5.8.3)': + '@rollup/plugin-typescript@11.1.6(rollup@4.40.0)(tslib@2.8.1)(typescript@5.9.2)': dependencies: '@rollup/pluginutils': 5.1.4(rollup@4.40.0) resolve: 1.22.10 - typescript: 5.8.3 + typescript: 5.9.2 optionalDependencies: rollup: 4.40.0 tslib: 2.8.1 @@ -19175,162 +20901,162 @@ snapshots: optionalDependencies: rollup: 4.40.0 - '@rollup/pluginutils@5.1.4(rollup@4.44.1)': + '@rollup/pluginutils@5.1.4(rollup@4.46.2)': dependencies: '@types/estree': 1.0.8 estree-walker: 2.0.2 picomatch: 4.0.2 optionalDependencies: - rollup: 4.44.1 + rollup: 4.46.2 '@rollup/rollup-android-arm-eabi@4.40.0': optional: true - '@rollup/rollup-android-arm-eabi@4.44.1': + '@rollup/rollup-android-arm-eabi@4.46.2': optional: true '@rollup/rollup-android-arm64@4.40.0': optional: true - '@rollup/rollup-android-arm64@4.44.1': + '@rollup/rollup-android-arm64@4.46.2': optional: true '@rollup/rollup-darwin-arm64@4.40.0': optional: true - '@rollup/rollup-darwin-arm64@4.44.1': + '@rollup/rollup-darwin-arm64@4.46.2': optional: true '@rollup/rollup-darwin-x64@4.40.0': optional: true - '@rollup/rollup-darwin-x64@4.44.1': + '@rollup/rollup-darwin-x64@4.46.2': optional: true '@rollup/rollup-freebsd-arm64@4.40.0': optional: true - '@rollup/rollup-freebsd-arm64@4.44.1': + '@rollup/rollup-freebsd-arm64@4.46.2': optional: true '@rollup/rollup-freebsd-x64@4.40.0': optional: true - '@rollup/rollup-freebsd-x64@4.44.1': + '@rollup/rollup-freebsd-x64@4.46.2': optional: true '@rollup/rollup-linux-arm-gnueabihf@4.40.0': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.44.1': + '@rollup/rollup-linux-arm-gnueabihf@4.46.2': optional: true '@rollup/rollup-linux-arm-musleabihf@4.40.0': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.44.1': + '@rollup/rollup-linux-arm-musleabihf@4.46.2': optional: true '@rollup/rollup-linux-arm64-gnu@4.40.0': optional: true - '@rollup/rollup-linux-arm64-gnu@4.44.1': + '@rollup/rollup-linux-arm64-gnu@4.46.2': optional: true '@rollup/rollup-linux-arm64-musl@4.40.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.44.1': + '@rollup/rollup-linux-arm64-musl@4.46.2': optional: true '@rollup/rollup-linux-loongarch64-gnu@4.40.0': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.44.1': + '@rollup/rollup-linux-loongarch64-gnu@4.46.2': optional: true '@rollup/rollup-linux-powerpc64le-gnu@4.40.0': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.44.1': + '@rollup/rollup-linux-ppc64-gnu@4.46.2': optional: true '@rollup/rollup-linux-riscv64-gnu@4.40.0': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.44.1': + '@rollup/rollup-linux-riscv64-gnu@4.46.2': optional: true '@rollup/rollup-linux-riscv64-musl@4.40.0': optional: true - '@rollup/rollup-linux-riscv64-musl@4.44.1': + '@rollup/rollup-linux-riscv64-musl@4.46.2': optional: true '@rollup/rollup-linux-s390x-gnu@4.40.0': optional: true - '@rollup/rollup-linux-s390x-gnu@4.44.1': + '@rollup/rollup-linux-s390x-gnu@4.46.2': optional: true '@rollup/rollup-linux-x64-gnu@4.40.0': optional: true - '@rollup/rollup-linux-x64-gnu@4.44.1': + '@rollup/rollup-linux-x64-gnu@4.46.2': optional: true '@rollup/rollup-linux-x64-musl@4.40.0': optional: true - '@rollup/rollup-linux-x64-musl@4.44.1': + '@rollup/rollup-linux-x64-musl@4.46.2': optional: true '@rollup/rollup-win32-arm64-msvc@4.40.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.44.1': + '@rollup/rollup-win32-arm64-msvc@4.46.2': optional: true '@rollup/rollup-win32-ia32-msvc@4.40.0': optional: true - '@rollup/rollup-win32-ia32-msvc@4.44.1': + '@rollup/rollup-win32-ia32-msvc@4.46.2': optional: true '@rollup/rollup-win32-x64-msvc@4.40.0': optional: true - '@rollup/rollup-win32-x64-msvc@4.44.1': + '@rollup/rollup-win32-x64-msvc@4.46.2': optional: true - '@rushstack/node-core-library@5.13.1(@types/node@22.16.0)': + '@rushstack/node-core-library@5.13.1(@types/node@22.17.0)': dependencies: ajv: 8.13.0 ajv-draft-04: 1.0.0(ajv@8.13.0) ajv-formats: 3.0.1(ajv@8.13.0) - fs-extra: 11.3.0 + fs-extra: 11.3.1 import-lazy: 4.0.0 jju: 1.4.0 resolve: 1.22.10 semver: 7.5.4 optionalDependencies: - '@types/node': 22.16.0 + '@types/node': 22.17.0 '@rushstack/rig-package@0.5.3': dependencies: resolve: 1.22.10 strip-json-comments: 3.1.1 - '@rushstack/terminal@0.15.3(@types/node@22.16.0)': + '@rushstack/terminal@0.15.3(@types/node@22.17.0)': dependencies: - '@rushstack/node-core-library': 5.13.1(@types/node@22.16.0) + '@rushstack/node-core-library': 5.13.1(@types/node@22.17.0) supports-color: 8.1.1 optionalDependencies: - '@types/node': 22.16.0 + '@types/node': 22.17.0 - '@rushstack/ts-command-line@5.0.1(@types/node@22.16.0)': + '@rushstack/ts-command-line@5.0.1(@types/node@22.17.0)': dependencies: - '@rushstack/terminal': 0.15.3(@types/node@22.16.0) + '@rushstack/terminal': 0.15.3(@types/node@22.17.0) '@types/argparse': 1.0.38 argparse: 1.0.10 string-argv: 0.3.2 @@ -19347,244 +21073,270 @@ snapshots: '@sideway/pinpoint@2.0.0': {} - '@sinclair/typebox@0.27.8': {} + '@sigstore/bundle@3.1.0': + dependencies: + '@sigstore/protobuf-specs': 0.4.3 + + '@sigstore/core@2.0.0': {} + + '@sigstore/protobuf-specs@0.4.3': {} + + '@sigstore/sign@3.1.0': + dependencies: + '@sigstore/bundle': 3.1.0 + '@sigstore/core': 2.0.0 + '@sigstore/protobuf-specs': 0.4.3 + make-fetch-happen: 14.0.3 + proc-log: 5.0.0 + promise-retry: 2.0.1 + transitivePeerDependencies: + - supports-color + + '@sigstore/tuf@3.1.1': + dependencies: + '@sigstore/protobuf-specs': 0.4.3 + tuf-js: 3.1.0 + transitivePeerDependencies: + - supports-color + + '@sigstore/verify@2.1.1': + dependencies: + '@sigstore/bundle': 3.1.0 + '@sigstore/core': 2.0.0 + '@sigstore/protobuf-specs': 0.4.3 '@sinclair/typebox@0.31.28': {} + '@sinclair/typebox@0.34.38': {} + '@sindresorhus/is@4.6.0': {} '@sinonjs/commons@3.0.1': dependencies: type-detect: 4.0.8 - '@sinonjs/fake-timers@10.3.0': + '@sinonjs/fake-timers@13.0.5': dependencies: '@sinonjs/commons': 3.0.1 - '@smithy/abort-controller@3.1.9': + '@smithy/abort-controller@4.0.4': dependencies: - '@smithy/types': 3.7.2 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@smithy/config-resolver@3.0.13': + '@smithy/config-resolver@4.1.4': dependencies: - '@smithy/node-config-provider': 3.1.12 - '@smithy/types': 3.7.2 - '@smithy/util-config-provider': 3.0.0 - '@smithy/util-middleware': 3.0.11 + '@smithy/node-config-provider': 4.1.3 + '@smithy/types': 4.3.1 + '@smithy/util-config-provider': 4.0.0 + '@smithy/util-middleware': 4.0.4 tslib: 2.8.1 - '@smithy/core@2.5.7': + '@smithy/core@3.7.0': dependencies: - '@smithy/middleware-serde': 3.0.11 - '@smithy/protocol-http': 4.1.8 - '@smithy/types': 3.7.2 - '@smithy/util-body-length-browser': 3.0.0 - '@smithy/util-middleware': 3.0.11 - '@smithy/util-stream': 3.3.4 - '@smithy/util-utf8': 3.0.0 + '@smithy/middleware-serde': 4.0.8 + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 + '@smithy/util-base64': 4.0.0 + '@smithy/util-body-length-browser': 4.0.0 + '@smithy/util-middleware': 4.0.4 + '@smithy/util-stream': 4.2.3 + '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 - '@smithy/credential-provider-imds@3.2.8': + '@smithy/credential-provider-imds@4.0.6': dependencies: - '@smithy/node-config-provider': 3.1.12 - '@smithy/property-provider': 3.1.11 - '@smithy/types': 3.7.2 - '@smithy/url-parser': 3.0.11 + '@smithy/node-config-provider': 4.1.3 + '@smithy/property-provider': 4.0.4 + '@smithy/types': 4.3.1 + '@smithy/url-parser': 4.0.4 tslib: 2.8.1 - '@smithy/eventstream-codec@3.1.10': + '@smithy/eventstream-codec@4.0.4': dependencies: '@aws-crypto/crc32': 5.2.0 - '@smithy/types': 3.7.2 - '@smithy/util-hex-encoding': 3.0.0 + '@smithy/types': 4.3.1 + '@smithy/util-hex-encoding': 4.0.0 tslib: 2.8.1 - '@smithy/eventstream-serde-browser@3.0.14': + '@smithy/eventstream-serde-browser@4.0.4': dependencies: - '@smithy/eventstream-serde-universal': 3.0.13 - '@smithy/types': 3.7.2 + '@smithy/eventstream-serde-universal': 4.0.4 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@smithy/eventstream-serde-config-resolver@3.0.11': + '@smithy/eventstream-serde-config-resolver@4.1.2': dependencies: - '@smithy/types': 3.7.2 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@smithy/eventstream-serde-node@3.0.13': + '@smithy/eventstream-serde-node@4.0.4': dependencies: - '@smithy/eventstream-serde-universal': 3.0.13 - '@smithy/types': 3.7.2 + '@smithy/eventstream-serde-universal': 4.0.4 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@smithy/eventstream-serde-universal@3.0.13': + '@smithy/eventstream-serde-universal@4.0.4': dependencies: - '@smithy/eventstream-codec': 3.1.10 - '@smithy/types': 3.7.2 + '@smithy/eventstream-codec': 4.0.4 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@smithy/fetch-http-handler@3.2.9': + '@smithy/fetch-http-handler@5.1.0': dependencies: - '@smithy/protocol-http': 4.1.8 - '@smithy/querystring-builder': 3.0.11 - '@smithy/types': 3.7.2 - '@smithy/util-base64': 3.0.0 + '@smithy/protocol-http': 5.1.2 + '@smithy/querystring-builder': 4.0.4 + '@smithy/types': 4.3.1 + '@smithy/util-base64': 4.0.0 tslib: 2.8.1 - '@smithy/fetch-http-handler@4.1.3': + '@smithy/hash-node@4.0.4': dependencies: - '@smithy/protocol-http': 4.1.8 - '@smithy/querystring-builder': 3.0.11 - '@smithy/types': 3.7.2 - '@smithy/util-base64': 3.0.0 + '@smithy/types': 4.3.1 + '@smithy/util-buffer-from': 4.0.0 + '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 - '@smithy/hash-node@3.0.11': + '@smithy/invalid-dependency@4.0.4': dependencies: - '@smithy/types': 3.7.2 - '@smithy/util-buffer-from': 3.0.0 - '@smithy/util-utf8': 3.0.0 - tslib: 2.8.1 - - '@smithy/invalid-dependency@3.0.11': - dependencies: - '@smithy/types': 3.7.2 + '@smithy/types': 4.3.1 tslib: 2.8.1 '@smithy/is-array-buffer@2.2.0': dependencies: tslib: 2.8.1 - '@smithy/is-array-buffer@3.0.0': + '@smithy/is-array-buffer@4.0.0': dependencies: tslib: 2.8.1 - '@smithy/middleware-content-length@3.0.13': + '@smithy/middleware-content-length@4.0.4': dependencies: - '@smithy/protocol-http': 4.1.8 - '@smithy/types': 3.7.2 + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@smithy/middleware-endpoint@3.2.8': + '@smithy/middleware-endpoint@4.1.14': dependencies: - '@smithy/core': 2.5.7 - '@smithy/middleware-serde': 3.0.11 - '@smithy/node-config-provider': 3.1.12 - '@smithy/shared-ini-file-loader': 3.1.12 - '@smithy/types': 3.7.2 - '@smithy/url-parser': 3.0.11 - '@smithy/util-middleware': 3.0.11 + '@smithy/core': 3.7.0 + '@smithy/middleware-serde': 4.0.8 + '@smithy/node-config-provider': 4.1.3 + '@smithy/shared-ini-file-loader': 4.0.4 + '@smithy/types': 4.3.1 + '@smithy/url-parser': 4.0.4 + '@smithy/util-middleware': 4.0.4 tslib: 2.8.1 - '@smithy/middleware-retry@3.0.34': + '@smithy/middleware-retry@4.1.15': dependencies: - '@smithy/node-config-provider': 3.1.12 - '@smithy/protocol-http': 4.1.8 - '@smithy/service-error-classification': 3.0.11 - '@smithy/smithy-client': 3.7.0 - '@smithy/types': 3.7.2 - '@smithy/util-middleware': 3.0.11 - '@smithy/util-retry': 3.0.11 + '@smithy/node-config-provider': 4.1.3 + '@smithy/protocol-http': 5.1.2 + '@smithy/service-error-classification': 4.0.6 + '@smithy/smithy-client': 4.4.6 + '@smithy/types': 4.3.1 + '@smithy/util-middleware': 4.0.4 + '@smithy/util-retry': 4.0.6 tslib: 2.8.1 uuid: 9.0.1 - '@smithy/middleware-serde@3.0.11': + '@smithy/middleware-serde@4.0.8': dependencies: - '@smithy/types': 3.7.2 + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@smithy/middleware-stack@3.0.11': + '@smithy/middleware-stack@4.0.4': dependencies: - '@smithy/types': 3.7.2 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@smithy/node-config-provider@3.1.12': + '@smithy/node-config-provider@4.1.3': dependencies: - '@smithy/property-provider': 3.1.11 - '@smithy/shared-ini-file-loader': 3.1.12 - '@smithy/types': 3.7.2 + '@smithy/property-provider': 4.0.4 + '@smithy/shared-ini-file-loader': 4.0.4 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@smithy/node-http-handler@3.3.3': + '@smithy/node-http-handler@4.1.0': dependencies: - '@smithy/abort-controller': 3.1.9 - '@smithy/protocol-http': 4.1.8 - '@smithy/querystring-builder': 3.0.11 - '@smithy/types': 3.7.2 + '@smithy/abort-controller': 4.0.4 + '@smithy/protocol-http': 5.1.2 + '@smithy/querystring-builder': 4.0.4 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@smithy/property-provider@3.1.11': + '@smithy/property-provider@4.0.4': dependencies: - '@smithy/types': 3.7.2 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@smithy/protocol-http@4.1.8': + '@smithy/protocol-http@5.1.2': dependencies: - '@smithy/types': 3.7.2 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@smithy/querystring-builder@3.0.11': + '@smithy/querystring-builder@4.0.4': dependencies: - '@smithy/types': 3.7.2 - '@smithy/util-uri-escape': 3.0.0 + '@smithy/types': 4.3.1 + '@smithy/util-uri-escape': 4.0.0 tslib: 2.8.1 - '@smithy/querystring-parser@3.0.11': + '@smithy/querystring-parser@4.0.4': dependencies: - '@smithy/types': 3.7.2 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@smithy/service-error-classification@3.0.11': + '@smithy/service-error-classification@4.0.6': dependencies: - '@smithy/types': 3.7.2 + '@smithy/types': 4.3.1 - '@smithy/shared-ini-file-loader@3.1.12': + '@smithy/shared-ini-file-loader@4.0.4': dependencies: - '@smithy/types': 3.7.2 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@smithy/signature-v4@4.2.4': + '@smithy/signature-v4@5.1.2': dependencies: - '@smithy/is-array-buffer': 3.0.0 - '@smithy/protocol-http': 4.1.8 - '@smithy/types': 3.7.2 - '@smithy/util-hex-encoding': 3.0.0 - '@smithy/util-middleware': 3.0.11 - '@smithy/util-uri-escape': 3.0.0 - '@smithy/util-utf8': 3.0.0 + '@smithy/is-array-buffer': 4.0.0 + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 + '@smithy/util-hex-encoding': 4.0.0 + '@smithy/util-middleware': 4.0.4 + '@smithy/util-uri-escape': 4.0.0 + '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 - '@smithy/smithy-client@3.7.0': + '@smithy/smithy-client@4.4.6': dependencies: - '@smithy/core': 2.5.7 - '@smithy/middleware-endpoint': 3.2.8 - '@smithy/middleware-stack': 3.0.11 - '@smithy/protocol-http': 4.1.8 - '@smithy/types': 3.7.2 - '@smithy/util-stream': 3.3.4 + '@smithy/core': 3.7.0 + '@smithy/middleware-endpoint': 4.1.14 + '@smithy/middleware-stack': 4.0.4 + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 + '@smithy/util-stream': 4.2.3 tslib: 2.8.1 - '@smithy/types@3.7.2': + '@smithy/types@4.3.1': dependencies: tslib: 2.8.1 - '@smithy/url-parser@3.0.11': + '@smithy/url-parser@4.0.4': dependencies: - '@smithy/querystring-parser': 3.0.11 - '@smithy/types': 3.7.2 + '@smithy/querystring-parser': 4.0.4 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@smithy/util-base64@3.0.0': + '@smithy/util-base64@4.0.0': dependencies: - '@smithy/util-buffer-from': 3.0.0 - '@smithy/util-utf8': 3.0.0 + '@smithy/util-buffer-from': 4.0.0 + '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 - '@smithy/util-body-length-browser@3.0.0': + '@smithy/util-body-length-browser@4.0.0': dependencies: tslib: 2.8.1 - '@smithy/util-body-length-node@3.0.0': + '@smithy/util-body-length-node@4.0.0': dependencies: tslib: 2.8.1 @@ -19593,66 +21345,66 @@ snapshots: '@smithy/is-array-buffer': 2.2.0 tslib: 2.8.1 - '@smithy/util-buffer-from@3.0.0': + '@smithy/util-buffer-from@4.0.0': dependencies: - '@smithy/is-array-buffer': 3.0.0 + '@smithy/is-array-buffer': 4.0.0 tslib: 2.8.1 - '@smithy/util-config-provider@3.0.0': + '@smithy/util-config-provider@4.0.0': dependencies: tslib: 2.8.1 - '@smithy/util-defaults-mode-browser@3.0.34': + '@smithy/util-defaults-mode-browser@4.0.22': dependencies: - '@smithy/property-provider': 3.1.11 - '@smithy/smithy-client': 3.7.0 - '@smithy/types': 3.7.2 + '@smithy/property-provider': 4.0.4 + '@smithy/smithy-client': 4.4.6 + '@smithy/types': 4.3.1 bowser: 2.11.0 tslib: 2.8.1 - '@smithy/util-defaults-mode-node@3.0.34': + '@smithy/util-defaults-mode-node@4.0.22': dependencies: - '@smithy/config-resolver': 3.0.13 - '@smithy/credential-provider-imds': 3.2.8 - '@smithy/node-config-provider': 3.1.12 - '@smithy/property-provider': 3.1.11 - '@smithy/smithy-client': 3.7.0 - '@smithy/types': 3.7.2 + '@smithy/config-resolver': 4.1.4 + '@smithy/credential-provider-imds': 4.0.6 + '@smithy/node-config-provider': 4.1.3 + '@smithy/property-provider': 4.0.4 + '@smithy/smithy-client': 4.4.6 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@smithy/util-endpoints@2.1.7': + '@smithy/util-endpoints@3.0.6': dependencies: - '@smithy/node-config-provider': 3.1.12 - '@smithy/types': 3.7.2 + '@smithy/node-config-provider': 4.1.3 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@smithy/util-hex-encoding@3.0.0': + '@smithy/util-hex-encoding@4.0.0': dependencies: tslib: 2.8.1 - '@smithy/util-middleware@3.0.11': + '@smithy/util-middleware@4.0.4': dependencies: - '@smithy/types': 3.7.2 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@smithy/util-retry@3.0.11': + '@smithy/util-retry@4.0.6': dependencies: - '@smithy/service-error-classification': 3.0.11 - '@smithy/types': 3.7.2 + '@smithy/service-error-classification': 4.0.6 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@smithy/util-stream@3.3.4': + '@smithy/util-stream@4.2.3': dependencies: - '@smithy/fetch-http-handler': 4.1.3 - '@smithy/node-http-handler': 3.3.3 - '@smithy/types': 3.7.2 - '@smithy/util-base64': 3.0.0 - '@smithy/util-buffer-from': 3.0.0 - '@smithy/util-hex-encoding': 3.0.0 - '@smithy/util-utf8': 3.0.0 + '@smithy/fetch-http-handler': 5.1.0 + '@smithy/node-http-handler': 4.1.0 + '@smithy/types': 4.3.1 + '@smithy/util-base64': 4.0.0 + '@smithy/util-buffer-from': 4.0.0 + '@smithy/util-hex-encoding': 4.0.0 + '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 - '@smithy/util-uri-escape@3.0.0': + '@smithy/util-uri-escape@4.0.0': dependencies: tslib: 2.8.1 @@ -19661,9 +21413,9 @@ snapshots: '@smithy/util-buffer-from': 2.2.0 tslib: 2.8.1 - '@smithy/util-utf8@3.0.0': + '@smithy/util-utf8@4.0.0': dependencies: - '@smithy/util-buffer-from': 3.0.0 + '@smithy/util-buffer-from': 4.0.0 tslib: 2.8.1 '@socket.io/component-emitter@3.1.2': {} @@ -19678,19 +21430,21 @@ snapshots: '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 - '@stylistic/eslint-plugin@4.4.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)': + '@standard-schema/spec@1.0.0': {} + + '@stylistic/eslint-plugin@4.4.1(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: - '@typescript-eslint/utils': 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.30.1(jiti@2.4.2) + '@typescript-eslint/utils': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) + eslint: 9.32.0(jiti@2.5.1) eslint-visitor-keys: 4.2.1 espree: 10.4.0 estraverse: 5.3.0 - picomatch: 4.0.2 + picomatch: 4.0.3 transitivePeerDependencies: - supports-color - typescript - '@stylistic/stylelint-plugin@3.1.3(stylelint@16.21.1(typescript@5.8.3))': + '@stylistic/stylelint-plugin@3.1.3(stylelint@16.23.1(typescript@5.9.2))': dependencies: '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 @@ -19700,23 +21454,24 @@ snapshots: postcss-selector-parser: 6.1.2 postcss-value-parser: 4.2.0 style-search: 0.1.0 - stylelint: 16.21.1(typescript@5.8.3) + stylelint: 16.23.1(typescript@5.9.2) '@sveltejs/acorn-typescript@1.0.5(acorn@8.15.0)': dependencies: acorn: 8.15.0 - '@sveltejs/adapter-auto@6.0.1(@sveltejs/kit@2.22.2(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.35.2)(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0)))(svelte@5.35.2)(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0)))': + '@sveltejs/adapter-auto@6.0.2(@sveltejs/kit@2.27.3(@sveltejs/vite-plugin-svelte@6.1.0(svelte@5.38.0)(vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)))(svelte@5.38.0)(vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)))': dependencies: - '@sveltejs/kit': 2.22.2(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.35.2)(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0)))(svelte@5.35.2)(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0)) + '@sveltejs/kit': 2.27.3(@sveltejs/vite-plugin-svelte@6.1.0(svelte@5.38.0)(vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)))(svelte@5.38.0)(vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) - '@sveltejs/kit@2.22.2(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.35.2)(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0)))(svelte@5.35.2)(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0))': + '@sveltejs/kit@2.27.3(@sveltejs/vite-plugin-svelte@6.1.0(svelte@5.38.0)(vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)))(svelte@5.38.0)(vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(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': 5.1.0(svelte@5.35.2)(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0)) + '@sveltejs/vite-plugin-svelte': 6.1.0(svelte@5.38.0)(vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) '@types/cookie': 0.6.0 acorn: 8.15.0 - cookie: 0.6.0 + cookie: 1.0.2 devalue: 5.1.1 esm-env: 1.2.2 kleur: 4.1.5 @@ -19725,29 +21480,28 @@ snapshots: sade: 1.8.1 set-cookie-parser: 2.7.1 sirv: 3.0.1 - svelte: 5.35.2 - vite: 7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0) - vitefu: 1.0.7(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0)) + svelte: 5.38.0 + vite: 7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) - '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.35.2)(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0)))(svelte@5.35.2)(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0))': + '@sveltejs/vite-plugin-svelte-inspector@5.0.0(@sveltejs/vite-plugin-svelte@6.1.0(svelte@5.38.0)(vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)))(svelte@5.38.0)(vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))': dependencies: - '@sveltejs/vite-plugin-svelte': 5.1.0(svelte@5.35.2)(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0)) + '@sveltejs/vite-plugin-svelte': 6.1.0(svelte@5.38.0)(vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) debug: 4.4.1(supports-color@6.0.0) - svelte: 5.35.2 - vite: 7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0) + svelte: 5.38.0 + vite: 7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.35.2)(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0))': + '@sveltejs/vite-plugin-svelte@6.1.0(svelte@5.38.0)(vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.35.2)(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0)))(svelte@5.35.2)(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0)) + '@sveltejs/vite-plugin-svelte-inspector': 5.0.0(@sveltejs/vite-plugin-svelte@6.1.0(svelte@5.38.0)(vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)))(svelte@5.38.0)(vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) debug: 4.4.1(supports-color@6.0.0) deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.17 - svelte: 5.35.2 - vite: 7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0) - vitefu: 1.0.6(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0)) + svelte: 5.38.0 + vite: 7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) + vitefu: 1.1.1(vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) transitivePeerDependencies: - supports-color @@ -19757,7 +21511,7 @@ snapshots: '@swc/types': 0.1.21 optional: true - '@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3)': + '@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2)': dependencies: '@swc-node/core': 1.13.3(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21) '@swc-node/sourcemap-support': 0.5.1 @@ -19767,7 +21521,7 @@ snapshots: oxc-resolver: 5.3.0 pirates: 4.0.7 tslib: 2.8.1 - typescript: 5.8.3 + typescript: 5.9.2 transitivePeerDependencies: - '@swc/types' - supports-color @@ -19846,7 +21600,7 @@ snapshots: dependencies: '@ampproject/remapping': 2.3.0 enhanced-resolve: 5.18.2 - jiti: 2.4.2 + jiti: 2.5.1 lightningcss: 1.30.1 magic-string: 0.30.17 source-map-js: 1.2.1 @@ -19914,12 +21668,12 @@ snapshots: postcss-selector-parser: 6.0.10 tailwindcss: 4.1.11 - '@tailwindcss/vite@4.1.11(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0))': + '@tailwindcss/vite@4.1.11(vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))': dependencies: '@tailwindcss/node': 4.1.11 '@tailwindcss/oxide': 4.1.11 tailwindcss: 4.1.11 - vite: 7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0) + vite: 7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) '@testing-library/dom@10.4.0': dependencies: @@ -19962,15 +21716,27 @@ snapshots: '@tsconfig/node16@1.0.4': {} + '@tufjs/canonical-json@2.0.0': {} + + '@tufjs/models@3.0.1': + dependencies: + '@tufjs/canonical-json': 2.0.0 + minimatch: 9.0.5 + '@tweenjs/tween.js@25.0.0': {} + '@tybys/wasm-util@0.10.0': + dependencies: + tslib: 2.8.1 + optional: true + '@tybys/wasm-util@0.9.0': dependencies: tslib: 2.8.1 '@types/appdmg@0.5.5': dependencies: - '@types/node': 22.16.0 + '@types/node': 22.17.0 optional: true '@types/archiver@6.0.3': @@ -19984,23 +21750,23 @@ snapshots: '@types/babel__core@7.20.5': dependencies: '@babel/parser': 7.28.0 - '@babel/types': 7.28.0 + '@babel/types': 7.28.1 '@types/babel__generator': 7.27.0 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.7 '@types/babel__generator@7.27.0': dependencies: - '@babel/types': 7.28.0 + '@babel/types': 7.28.1 '@types/babel__template@7.4.4': dependencies: '@babel/parser': 7.28.0 - '@babel/types': 7.28.0 + '@babel/types': 7.28.1 '@types/babel__traverse@7.20.7': dependencies: - '@babel/types': 7.28.0 + '@babel/types': 7.28.1 '@types/better-sqlite3@7.6.13': dependencies: @@ -20009,11 +21775,11 @@ snapshots: '@types/body-parser@1.19.6': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.16.0 + '@types/node': 22.17.0 '@types/bonjour@3.5.13': dependencies: - '@types/node': 22.16.0 + '@types/node': 22.17.0 '@types/bootstrap@5.2.10': dependencies: @@ -20023,7 +21789,7 @@ snapshots: dependencies: '@types/http-cache-semantics': 4.0.4 '@types/keyv': 3.1.4 - '@types/node': 22.16.0 + '@types/node': 22.17.0 '@types/responselike': 1.0.3 '@types/chai@5.2.2': @@ -20047,12 +21813,12 @@ snapshots: '@types/connect-history-api-fallback@1.5.4': dependencies: - '@types/express-serve-static-core': 5.0.6 - '@types/node': 22.16.0 + '@types/express-serve-static-core': 5.0.7 + '@types/node': 22.17.0 '@types/connect@3.4.38': dependencies: - '@types/node': 22.16.0 + '@types/node': 22.17.0 '@types/cookie-parser@1.4.9(@types/express@5.0.3)': dependencies: @@ -20190,7 +21956,6 @@ snapshots: '@types/debug@4.1.12': dependencies: '@types/ms': 2.1.0 - optional: true '@types/deep-eql@4.0.2': {} @@ -20214,13 +21979,13 @@ snapshots: '@types/estree@1.0.8': {} - '@types/express-http-proxy@1.6.6': + '@types/express-http-proxy@1.6.7': dependencies: '@types/express': 5.0.3 - '@types/express-serve-static-core@5.0.6': + '@types/express-serve-static-core@5.0.7': dependencies: - '@types/node': 22.16.0 + '@types/node': 22.17.0 '@types/qs': 6.14.0 '@types/range-parser': 1.2.7 '@types/send': 0.17.5 @@ -20232,14 +21997,14 @@ snapshots: '@types/express@4.17.23': dependencies: '@types/body-parser': 1.19.6 - '@types/express-serve-static-core': 5.0.6 + '@types/express-serve-static-core': 5.0.7 '@types/qs': 6.14.0 '@types/serve-static': 1.15.8 '@types/express@5.0.3': dependencies: '@types/body-parser': 1.19.6 - '@types/express-serve-static-core': 5.0.6 + '@types/express-serve-static-core': 5.0.7 '@types/serve-static': 1.15.8 '@types/fs-extra@11.0.4': @@ -20249,19 +22014,23 @@ snapshots: '@types/fs-extra@9.0.13': dependencies: - '@types/node': 22.16.0 + '@types/node': 22.17.0 optional: true + '@types/geojson-vt@3.2.5': + dependencies: + '@types/geojson': 7946.0.16 + '@types/geojson@7946.0.16': {} '@types/glob@7.2.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 22.16.0 + '@types/node': 22.17.0 - '@types/graceful-fs@4.1.9': + '@types/hast@3.0.4': dependencies: - '@types/node': 22.16.0 + '@types/unist': 3.0.3 '@types/html@1.0.4': {} @@ -20271,7 +22040,7 @@ snapshots: '@types/http-proxy@1.17.16': dependencies: - '@types/node': 22.16.0 + '@types/node': 22.17.0 '@types/ini@4.1.1': {} @@ -20301,17 +22070,17 @@ snapshots: '@types/jsonfile@6.1.4': dependencies: - '@types/node': 22.16.0 + '@types/node': 22.17.0 '@types/keyv@3.1.4': dependencies: - '@types/node': 22.16.0 + '@types/node': 22.17.0 '@types/leaflet-gpx@1.3.7': dependencies: - '@types/leaflet': 1.9.19 + '@types/leaflet': 1.9.20 - '@types/leaflet@1.9.19': + '@types/leaflet@1.9.20': dependencies: '@types/geojson': 7946.0.16 @@ -20321,14 +22090,20 @@ snapshots: '@types/lodash@4.17.16': {} - '@types/luxon@3.4.2': {} + '@types/luxon@3.6.2': {} + + '@types/mapbox__point-geometry@0.1.4': {} + + '@types/mapbox__vector-tile@1.3.4': + dependencies: + '@types/geojson': 7946.0.16 + '@types/mapbox__point-geometry': 0.1.4 + '@types/pbf': 3.0.5 '@types/mark.js@8.11.12': dependencies: '@types/jquery': 3.5.32 - '@types/marked@4.3.2': {} - '@types/mdast@4.0.4': dependencies: '@types/unist': 2.0.11 @@ -20341,16 +22116,15 @@ snapshots: '@types/minimatch@5.1.2': {} - '@types/ms@2.1.0': - optional: true + '@types/ms@2.1.0': {} '@types/multer@2.0.0': dependencies: '@types/express': 5.0.3 - '@types/node-forge@1.3.11': + '@types/node-forge@1.3.13': dependencies: - '@types/node': 22.16.0 + '@types/node': 22.17.0 '@types/node@16.9.1': {} @@ -20358,6 +22132,10 @@ snapshots: dependencies: undici-types: 6.19.8 + '@types/node@20.19.9': + dependencies: + undici-types: 6.21.0 + '@types/node@22.15.21': dependencies: undici-types: 6.21.0 @@ -20366,12 +22144,22 @@ snapshots: dependencies: undici-types: 6.21.0 - '@types/node@22.16.0': + '@types/node@22.17.0': dependencies: undici-types: 6.21.0 + '@types/node@24.1.0': + dependencies: + undici-types: 7.8.0 + '@types/parse-json@4.0.2': {} + '@types/pbf@3.0.5': {} + + '@types/postcss-import@14.0.3': + dependencies: + postcss: 8.5.6 + '@types/qs@6.14.0': {} '@types/range-parser@1.2.7': {} @@ -20388,13 +22176,13 @@ snapshots: '@types/readdir-glob@1.1.5': dependencies: - '@types/node': 22.16.0 + '@types/node': 22.17.0 '@types/resolve@1.20.2': {} '@types/responselike@1.0.3': dependencies: - '@types/node': 22.16.0 + '@types/node': 22.17.0 '@types/retry@0.12.2': {} @@ -20411,12 +22199,12 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.16.0 + '@types/node': 22.17.0 '@types/send@0.17.5': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.16.0 + '@types/node': 22.17.0 '@types/serve-favicon@2.5.7': dependencies: @@ -20443,7 +22231,7 @@ snapshots: '@types/sockjs@0.3.36': dependencies: - '@types/node': 22.16.0 + '@types/node': 22.17.0 '@types/stack-utils@2.0.3': {} @@ -20458,8 +22246,12 @@ snapshots: dependencies: '@types/cookiejar': 2.1.5 '@types/methods': 1.1.4 - '@types/node': 22.16.0 - form-data: 4.0.2 + '@types/node': 22.17.0 + form-data: 4.0.4 + + '@types/supercluster@7.1.3': + dependencies: + '@types/geojson': 7946.0.16 '@types/supertest@6.0.3': dependencies: @@ -20473,7 +22265,11 @@ snapshots: '@types/swagger-ui@5.21.1': {} - '@types/tabulator-tables@6.2.6': {} + '@types/tabulator-tables@6.2.9': {} + + '@types/through2@2.0.41': + dependencies: + '@types/node': 22.17.0 '@types/tmp@0.2.6': {} @@ -20486,6 +22282,10 @@ snapshots: '@types/unist@2.0.11': {} + '@types/unist@3.0.3': {} + + '@types/uuid@9.0.8': {} + '@types/whatwg-mimetype@3.0.2': {} '@types/which@2.0.2': {} @@ -20506,106 +22306,261 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 22.16.0 + '@types/node': 22.17.0 optional: true - '@typescript-eslint/eslint-plugin@8.35.1(@typescript-eslint/parser@8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.35.1 - '@typescript-eslint/type-utils': 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/utils': 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.35.1 - eslint: 9.30.1(jiti@2.4.2) + '@typescript-eslint/parser': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/scope-manager': 8.38.0 + '@typescript-eslint/type-utils': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/utils': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/visitor-keys': 8.38.0 + eslint: 9.32.0(jiti@2.5.1) graphemer: 1.4.0 ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 + ts-api-utils: 2.1.0(typescript@5.9.2) + typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.39.0(@typescript-eslint/parser@8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: - '@typescript-eslint/scope-manager': 8.35.1 - '@typescript-eslint/types': 8.35.1 - '@typescript-eslint/typescript-estree': 8.35.1(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.35.1 + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/scope-manager': 8.39.0 + '@typescript-eslint/type-utils': 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/utils': 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/visitor-keys': 8.39.0 + eslint: 9.32.0(jiti@2.5.1) + graphemer: 1.4.0 + ignore: 7.0.5 + natural-compare: 1.4.0 + ts-api-utils: 2.1.0(typescript@5.9.2) + typescript: 5.9.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2)': + dependencies: + '@typescript-eslint/scope-manager': 8.38.0 + '@typescript-eslint/types': 8.38.0 + '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.9.2) + '@typescript-eslint/visitor-keys': 8.38.0 debug: 4.4.1(supports-color@6.0.0) - eslint: 9.30.1(jiti@2.4.2) - typescript: 5.8.3 + eslint: 9.32.0(jiti@2.5.1) + typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.35.1(typescript@5.8.3)': + '@typescript-eslint/parser@8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.35.1(typescript@5.8.3) - '@typescript-eslint/types': 8.35.1 + '@typescript-eslint/scope-manager': 8.39.0 + '@typescript-eslint/types': 8.39.0 + '@typescript-eslint/typescript-estree': 8.39.0(typescript@5.9.2) + '@typescript-eslint/visitor-keys': 8.39.0 debug: 4.4.1(supports-color@6.0.0) - typescript: 5.8.3 + eslint: 9.32.0(jiti@2.5.1) + typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.35.1': + '@typescript-eslint/project-service@8.38.0(typescript@5.9.2)': dependencies: - '@typescript-eslint/types': 8.35.1 - '@typescript-eslint/visitor-keys': 8.35.1 - - '@typescript-eslint/tsconfig-utils@8.35.1(typescript@5.8.3)': - dependencies: - typescript: 5.8.3 - - '@typescript-eslint/type-utils@8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)': - dependencies: - '@typescript-eslint/typescript-estree': 8.35.1(typescript@5.8.3) - '@typescript-eslint/utils': 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/tsconfig-utils': 8.38.0(typescript@5.9.2) + '@typescript-eslint/types': 8.38.0 debug: 4.4.1(supports-color@6.0.0) - eslint: 9.30.1(jiti@2.4.2) - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 + typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.35.1': {} - - '@typescript-eslint/typescript-estree@8.35.1(typescript@5.8.3)': + '@typescript-eslint/project-service@8.39.0(typescript@5.9.2)': dependencies: - '@typescript-eslint/project-service': 8.35.1(typescript@5.8.3) - '@typescript-eslint/tsconfig-utils': 8.35.1(typescript@5.8.3) - '@typescript-eslint/types': 8.35.1 - '@typescript-eslint/visitor-keys': 8.35.1 + '@typescript-eslint/tsconfig-utils': 8.39.0(typescript@5.9.2) + '@typescript-eslint/types': 8.39.0 + debug: 4.4.1(supports-color@6.0.0) + typescript: 5.9.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@8.38.0': + dependencies: + '@typescript-eslint/types': 8.38.0 + '@typescript-eslint/visitor-keys': 8.38.0 + + '@typescript-eslint/scope-manager@8.39.0': + dependencies: + '@typescript-eslint/types': 8.39.0 + '@typescript-eslint/visitor-keys': 8.39.0 + + '@typescript-eslint/tsconfig-utils@8.38.0(typescript@5.9.2)': + dependencies: + typescript: 5.9.2 + + '@typescript-eslint/tsconfig-utils@8.39.0(typescript@5.9.2)': + dependencies: + typescript: 5.9.2 + + '@typescript-eslint/type-utils@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2)': + dependencies: + '@typescript-eslint/types': 8.38.0 + '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.9.2) + '@typescript-eslint/utils': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) + debug: 4.4.1(supports-color@6.0.0) + eslint: 9.32.0(jiti@2.5.1) + ts-api-utils: 2.1.0(typescript@5.9.2) + typescript: 5.9.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/type-utils@8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2)': + dependencies: + '@typescript-eslint/types': 8.39.0 + '@typescript-eslint/typescript-estree': 8.39.0(typescript@5.9.2) + '@typescript-eslint/utils': 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) + debug: 4.4.1(supports-color@6.0.0) + eslint: 9.32.0(jiti@2.5.1) + ts-api-utils: 2.1.0(typescript@5.9.2) + typescript: 5.9.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@8.38.0': {} + + '@typescript-eslint/types@8.39.0': {} + + '@typescript-eslint/typescript-estree@8.38.0(typescript@5.9.2)': + dependencies: + '@typescript-eslint/project-service': 8.38.0(typescript@5.9.2) + '@typescript-eslint/tsconfig-utils': 8.38.0(typescript@5.9.2) + '@typescript-eslint/types': 8.38.0 + '@typescript-eslint/visitor-keys': 8.38.0 debug: 4.4.1(supports-color@6.0.0) fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.7.2 - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 + ts-api-utils: 2.1.0(typescript@5.9.2) + typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/typescript-estree@8.39.0(typescript@5.9.2)': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.30.1(jiti@2.4.2)) - '@typescript-eslint/scope-manager': 8.35.1 - '@typescript-eslint/types': 8.35.1 - '@typescript-eslint/typescript-estree': 8.35.1(typescript@5.8.3) - eslint: 9.30.1(jiti@2.4.2) - typescript: 5.8.3 + '@typescript-eslint/project-service': 8.39.0(typescript@5.9.2) + '@typescript-eslint/tsconfig-utils': 8.39.0(typescript@5.9.2) + '@typescript-eslint/types': 8.39.0 + '@typescript-eslint/visitor-keys': 8.39.0 + debug: 4.4.1(supports-color@6.0.0) + fast-glob: 3.3.3 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.7.2 + ts-api-utils: 2.1.0(typescript@5.9.2) + typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.35.1': + '@typescript-eslint/utils@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: - '@typescript-eslint/types': 8.35.1 + '@eslint-community/eslint-utils': 4.7.0(eslint@9.32.0(jiti@2.5.1)) + '@typescript-eslint/scope-manager': 8.38.0 + '@typescript-eslint/types': 8.38.0 + '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.9.2) + eslint: 9.32.0(jiti@2.5.1) + typescript: 5.9.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2)': + dependencies: + '@eslint-community/eslint-utils': 4.7.0(eslint@9.32.0(jiti@2.5.1)) + '@typescript-eslint/scope-manager': 8.39.0 + '@typescript-eslint/types': 8.39.0 + '@typescript-eslint/typescript-estree': 8.39.0(typescript@5.9.2) + eslint: 9.32.0(jiti@2.5.1) + typescript: 5.9.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/visitor-keys@8.38.0': + dependencies: + '@typescript-eslint/types': 8.38.0 eslint-visitor-keys: 4.2.1 - '@uploadcare/file-uploader@1.12.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)': + '@typescript-eslint/visitor-keys@8.39.0': + dependencies: + '@typescript-eslint/types': 8.39.0 + eslint-visitor-keys: 4.2.1 + + '@ungap/structured-clone@1.3.0': {} + + '@unrs/resolver-binding-android-arm-eabi@1.11.1': + optional: true + + '@unrs/resolver-binding-android-arm64@1.11.1': + optional: true + + '@unrs/resolver-binding-darwin-arm64@1.11.1': + optional: true + + '@unrs/resolver-binding-darwin-x64@1.11.1': + optional: true + + '@unrs/resolver-binding-freebsd-x64@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm64-musl@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-x64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-x64-musl@1.11.1': + optional: true + + '@unrs/resolver-binding-wasm32-wasi@1.11.1': + dependencies: + '@napi-rs/wasm-runtime': 0.2.12 + optional: true + + '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': + optional: true + + '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': + optional: true + + '@unrs/resolver-binding-win32-x64-msvc@1.11.1': + optional: true + + '@uploadcare/file-uploader@1.16.3-alpha.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)': dependencies: '@symbiotejs/symbiote': 1.11.7 '@uploadcare/image-shrink': 6.14.3 - '@uploadcare/upload-client': 6.14.1(bufferutil@4.0.9)(utf-8-validate@6.0.5) + '@uploadcare/upload-client': 6.14.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) keyux: 0.7.2 transitivePeerDependencies: - bufferutil @@ -20613,48 +22568,69 @@ snapshots: '@uploadcare/image-shrink@6.14.3': {} - '@uploadcare/upload-client@6.14.1(bufferutil@4.0.9)(utf-8-validate@6.0.5)': + '@uploadcare/upload-client@6.14.3(bufferutil@4.0.9)(utf-8-validate@6.0.5)': dependencies: - form-data: 4.0.2 + form-data: 4.0.4 ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) transitivePeerDependencies: - bufferutil - utf-8-validate - '@vitest/browser@3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@22.16.0)(typescript@5.8.3))(playwright@1.53.2)(utf-8-validate@6.0.5)(vite@7.0.0(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0))(vitest@3.2.4)(webdriverio@9.15.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))': + '@vitest/browser@3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@22.17.0)(typescript@5.9.2))(playwright@1.54.2)(utf-8-validate@6.0.5)(vite@7.1.1(@types/node@22.17.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vitest@3.2.4)(webdriverio@9.18.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))': dependencies: '@testing-library/dom': 10.4.0 '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.0) - '@vitest/mocker': 3.2.4(msw@2.7.5(@types/node@22.16.0)(typescript@5.8.3))(vite@7.0.0(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0)) + '@vitest/mocker': 3.2.4(msw@2.7.5(@types/node@22.17.0)(typescript@5.9.2))(vite@7.1.1(@types/node@22.17.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) '@vitest/utils': 3.2.4 magic-string: 0.30.17 sirv: 3.0.1 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.16.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.4.2)(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.16.0)(typescript@5.8.3))(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.17.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.5.1)(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.17.0)(typescript@5.9.2))(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) optionalDependencies: - playwright: 1.53.2 - webdriverio: 9.15.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) + playwright: 1.54.2 + webdriverio: 9.18.4(bufferutil@4.0.9)(utf-8-validate@6.0.5) + transitivePeerDependencies: + - bufferutil + - msw + - utf-8-validate + - vite + optional: true + + '@vitest/browser@3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@24.1.0)(typescript@5.9.2))(playwright@1.54.2)(utf-8-validate@6.0.5)(vite@7.0.0(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vitest@3.2.4)(webdriverio@9.18.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))': + dependencies: + '@testing-library/dom': 10.4.0 + '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.0) + '@vitest/mocker': 3.2.4(msw@2.7.5(@types/node@24.1.0)(typescript@5.9.2))(vite@7.0.0(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) + '@vitest/utils': 3.2.4 + magic-string: 0.30.17 + sirv: 3.0.1 + tinyrainbow: 2.0.0 + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.1.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.5.1)(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@24.1.0)(typescript@5.9.2))(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) + ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) + optionalDependencies: + playwright: 1.54.2 + webdriverio: 9.18.4(bufferutil@4.0.9)(utf-8-validate@6.0.5) transitivePeerDependencies: - bufferutil - msw - utf-8-validate - vite - '@vitest/browser@3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@22.16.0)(typescript@5.8.3))(playwright@1.53.2)(utf-8-validate@6.0.5)(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0))(vitest@3.2.4)(webdriverio@9.15.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))': + '@vitest/browser@3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@24.1.0)(typescript@5.9.2))(playwright@1.54.2)(utf-8-validate@6.0.5)(vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vitest@3.2.4)(webdriverio@9.18.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))': dependencies: '@testing-library/dom': 10.4.0 '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.0) - '@vitest/mocker': 3.2.4(msw@2.7.5(@types/node@22.16.0)(typescript@5.8.3))(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0)) + '@vitest/mocker': 3.2.4(msw@2.7.5(@types/node@24.1.0)(typescript@5.9.2))(vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) '@vitest/utils': 3.2.4 magic-string: 0.30.17 sirv: 3.0.1 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.16.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.4.2)(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.16.0)(typescript@5.8.3))(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.1.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.5.1)(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@24.1.0)(typescript@5.9.2))(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) optionalDependencies: - playwright: 1.53.2 - webdriverio: 9.15.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) + playwright: 1.54.2 + webdriverio: 9.18.4(bufferutil@4.0.9)(utf-8-validate@6.0.5) transitivePeerDependencies: - bufferutil - msw @@ -20673,7 +22649,7 @@ snapshots: magicast: 0.3.5 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.16.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.4.2)(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.16.0)(typescript@5.8.3))(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.1.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.5.1)(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@24.1.0)(typescript@5.9.2))(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) transitivePeerDependencies: - supports-color @@ -20692,9 +22668,9 @@ snapshots: std-env: 3.9.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.16.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.4.2)(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.16.0)(typescript@5.8.3))(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.17.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.5.1)(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.17.0)(typescript@5.9.2))(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) optionalDependencies: - '@vitest/browser': 3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@22.16.0)(typescript@5.8.3))(playwright@1.53.2)(utf-8-validate@6.0.5)(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0))(vitest@3.2.4)(webdriverio@9.15.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)) + '@vitest/browser': 3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@22.17.0)(typescript@5.9.2))(playwright@1.54.2)(utf-8-validate@6.0.5)(vite@7.1.1(@types/node@22.17.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vitest@3.2.4)(webdriverio@9.18.4(bufferutil@4.0.9)(utf-8-validate@6.0.5)) transitivePeerDependencies: - supports-color @@ -20706,23 +22682,42 @@ snapshots: chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(msw@2.7.5(@types/node@22.16.0)(typescript@5.8.3))(vite@7.0.0(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0))': + '@vitest/mocker@3.2.4(msw@2.7.5(@types/node@22.17.0)(typescript@5.9.2))(vite@7.0.0(@types/node@22.17.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - msw: 2.7.5(@types/node@22.16.0)(typescript@5.8.3) - vite: 7.0.0(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0) + msw: 2.7.5(@types/node@22.17.0)(typescript@5.9.2) + vite: 7.0.0(@types/node@22.17.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) - '@vitest/mocker@3.2.4(msw@2.7.5(@types/node@22.16.0)(typescript@5.8.3))(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0))': + '@vitest/mocker@3.2.4(msw@2.7.5(@types/node@22.17.0)(typescript@5.9.2))(vite@7.1.1(@types/node@22.17.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - msw: 2.7.5(@types/node@22.16.0)(typescript@5.8.3) - vite: 7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0) + msw: 2.7.5(@types/node@22.17.0)(typescript@5.9.2) + vite: 7.1.1(@types/node@22.17.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) + optional: true + + '@vitest/mocker@3.2.4(msw@2.7.5(@types/node@24.1.0)(typescript@5.9.2))(vite@7.0.0(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))': + dependencies: + '@vitest/spy': 3.2.4 + estree-walker: 3.0.3 + magic-string: 0.30.17 + optionalDependencies: + msw: 2.7.5(@types/node@24.1.0)(typescript@5.9.2) + vite: 7.0.0(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) + + '@vitest/mocker@3.2.4(msw@2.7.5(@types/node@24.1.0)(typescript@5.9.2))(vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))': + dependencies: + '@vitest/spy': 3.2.4 + estree-walker: 3.0.3 + magic-string: 0.30.17 + optionalDependencies: + msw: 2.7.5(@types/node@24.1.0)(typescript@5.9.2) + vite: 7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) '@vitest/pretty-format@3.2.4': dependencies: @@ -20753,7 +22748,7 @@ snapshots: sirv: 3.0.1 tinyglobby: 0.2.14 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.16.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.4.2)(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.16.0)(typescript@5.8.3))(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.1.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.5.1)(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@24.1.0)(typescript@5.9.2))(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) '@vitest/utils@3.2.4': dependencies: @@ -20791,7 +22786,7 @@ snapshots: de-indent: 1.0.2 he: 1.2.0 - '@vue/language-core@2.2.0(typescript@5.8.3)': + '@vue/language-core@2.2.0(typescript@5.9.2)': dependencies: '@volar/language-core': 2.4.13 '@vue/compiler-dom': 3.5.14 @@ -20802,15 +22797,15 @@ snapshots: muggle-string: 0.4.1 path-browserify: 1.0.1 optionalDependencies: - typescript: 5.8.3 + typescript: 5.9.2 '@vue/shared@3.5.14': {} - '@wdio/config@9.15.0': + '@wdio/config@9.18.0': dependencies: - '@wdio/logger': 9.15.0 - '@wdio/types': 9.15.0 - '@wdio/utils': 9.15.0 + '@wdio/logger': 9.18.0 + '@wdio/types': 9.16.2 + '@wdio/utils': 9.18.0 deepmerge-ts: 7.1.5 glob: 10.4.5 import-meta-resolve: 4.1.0 @@ -20818,35 +22813,37 @@ snapshots: - bare-buffer - supports-color - '@wdio/logger@9.15.0': + '@wdio/logger@9.18.0': dependencies: - chalk: 5.4.1 + chalk: 5.5.0 loglevel: 1.9.2 loglevel-plugin-prefix: 0.8.4 + safe-regex2: 5.0.0 strip-ansi: 7.1.0 - '@wdio/protocols@9.15.0': {} + '@wdio/protocols@9.16.2': {} - '@wdio/repl@9.4.4': + '@wdio/repl@9.16.2': dependencies: - '@types/node': 20.17.32 + '@types/node': 20.19.9 - '@wdio/types@9.15.0': + '@wdio/types@9.16.2': dependencies: - '@types/node': 20.17.32 + '@types/node': 20.19.9 - '@wdio/utils@9.15.0': + '@wdio/utils@9.18.0': dependencies: - '@puppeteer/browsers': 2.10.5 - '@wdio/logger': 9.15.0 - '@wdio/types': 9.15.0 + '@puppeteer/browsers': 2.10.6 + '@wdio/logger': 9.18.0 + '@wdio/types': 9.16.2 decamelize: 6.0.0 deepmerge-ts: 7.1.5 - edgedriver: 6.1.1 + edgedriver: 6.1.2 geckodriver: 5.0.0 get-port: 7.1.0 import-meta-resolve: 4.1.0 locate-app: 2.5.0 + mitt: 3.0.1 safaridriver: 1.0.0 split2: 4.2.0 wait-port: 1.1.0 @@ -20945,7 +22942,7 @@ snapshots: js-yaml: 3.14.1 tslib: 2.8.1 - '@zip.js/zip.js@2.7.62': {} + '@zip.js/zip.js@2.7.68': {} '@zkochan/js-yaml@0.0.7': dependencies: @@ -20978,6 +22975,10 @@ snapshots: acorn: 7.4.1 acorn-walk: 7.2.0 + acorn-import-phases@1.0.4(acorn@8.15.0): + dependencies: + acorn: 8.15.0 + acorn-jsx@5.3.2(acorn@8.14.1): dependencies: acorn: 8.14.1 @@ -21008,6 +23009,8 @@ snapshots: agent-base@7.1.3: {} + agent-base@7.1.4: {} + agentkeepalive@4.6.0: dependencies: humanize-ms: 1.2.1 @@ -21110,6 +23113,8 @@ snapshots: ansi-styles@6.2.1: {} + ansis@4.1.0: {} + any-base@1.1.0: {} anymatch@3.1.3: @@ -21260,10 +23265,10 @@ snapshots: await-to-js@3.0.0: {} - axios@1.10.0(debug@4.4.1): + axios@1.11.0(debug@4.4.1): dependencies: follow-redirects: 1.15.9(debug@4.4.1) - form-data: 4.0.2 + form-data: 4.0.4 proxy-from-env: 1.1.0 transitivePeerDependencies: - debug @@ -21272,44 +23277,43 @@ snapshots: b4a@1.6.7: {} - babel-jest@29.7.0(@babel/core@7.28.0): + babel-jest@30.0.5(@babel/core@7.28.0): dependencies: '@babel/core': 7.28.0 - '@jest/transform': 29.7.0 + '@jest/transform': 30.0.5 '@types/babel__core': 7.20.5 - babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.28.0) + babel-plugin-istanbul: 7.0.0 + babel-preset-jest: 30.0.1(@babel/core@7.28.0) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 transitivePeerDependencies: - supports-color - babel-plugin-const-enum@1.2.0(@babel/core@7.26.10): + babel-plugin-const-enum@1.2.0(@babel/core@7.28.0): dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.10) - '@babel/traverse': 7.27.0 + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.0) + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color - babel-plugin-istanbul@6.1.1: + babel-plugin-istanbul@7.0.0: dependencies: - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.3 - istanbul-lib-instrument: 5.2.1 + istanbul-lib-instrument: 6.0.3 test-exclude: 6.0.0 transitivePeerDependencies: - supports-color - babel-plugin-jest-hoist@29.6.3: + babel-plugin-jest-hoist@30.0.1: dependencies: '@babel/template': 7.27.2 - '@babel/types': 7.28.0 + '@babel/types': 7.28.1 '@types/babel__core': 7.20.5 - '@types/babel__traverse': 7.20.7 babel-plugin-macros@3.1.0: dependencies: @@ -21317,34 +23321,38 @@ snapshots: cosmiconfig: 7.1.0 resolve: 1.22.10 - babel-plugin-polyfill-corejs2@0.4.13(@babel/core@7.26.10): + babel-plugin-polyfill-corejs2@0.4.13(@babel/core@7.28.0): dependencies: - '@babel/compat-data': 7.26.8 - '@babel/core': 7.26.10 - '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.26.10) + '@babel/compat-data': 7.28.0 + '@babel/core': 7.28.0 + '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.28.0) semver: 6.3.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.11.1(@babel/core@7.26.10): + babel-plugin-polyfill-corejs3@0.11.1(@babel/core@7.28.0): dependencies: - '@babel/core': 7.26.10 - '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.26.10) + '@babel/core': 7.28.0 + '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.28.0) core-js-compat: 3.41.0 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.4(@babel/core@7.26.10): + babel-plugin-polyfill-regenerator@0.6.4(@babel/core@7.28.0): dependencies: - '@babel/core': 7.26.10 - '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.26.10) + '@babel/core': 7.28.0 + '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.28.0) transitivePeerDependencies: - supports-color - babel-plugin-transform-typescript-metadata@0.3.2(@babel/core@7.26.10)(@babel/traverse@7.28.0): + babel-plugin-transform-hook-names@1.0.2(@babel/core@7.28.0): dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.0 + + babel-plugin-transform-typescript-metadata@0.3.2(@babel/core@7.28.0)(@babel/traverse@7.28.0): + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 optionalDependencies: '@babel/traverse': 7.28.0 @@ -21367,12 +23375,14 @@ snapshots: '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.0) '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.0) - babel-preset-jest@29.6.3(@babel/core@7.28.0): + babel-preset-jest@30.0.1(@babel/core@7.28.0): dependencies: '@babel/core': 7.28.0 - babel-plugin-jest-hoist: 29.6.3 + babel-plugin-jest-hoist: 30.0.1 babel-preset-current-node-syntax: 1.1.0(@babel/core@7.28.0) + bail@2.0.2: {} + balanced-match@1.0.2: {} balanced-match@2.0.0: {} @@ -21380,11 +23390,14 @@ snapshots: bare-events@2.5.4: optional: true - bare-fs@4.1.5: + bare-events@2.6.0: + optional: true + + bare-fs@4.1.6: dependencies: - bare-events: 2.5.4 + bare-events: 2.6.0 bare-path: 3.0.0 - bare-stream: 2.6.5(bare-events@2.5.4) + bare-stream: 2.6.5(bare-events@2.6.0) optional: true bare-os@3.6.1: @@ -21395,11 +23408,11 @@ snapshots: bare-os: 3.6.1 optional: true - bare-stream@2.6.5(bare-events@2.5.4): + bare-stream@2.6.5(bare-events@2.6.0): dependencies: - streamx: 2.22.0 + streamx: 2.22.1 optionalDependencies: - bare-events: 2.5.4 + bare-events: 2.6.0 optional: true base32-encode@1.2.0: @@ -21423,6 +23436,8 @@ snapshots: dependencies: bindings: 1.5.0 prebuild-install: 7.1.3 + transitivePeerDependencies: + - bare-buffer bezier-easing@2.1.0: {} @@ -21528,17 +23543,10 @@ snapshots: browser-stdout@1.3.1: {} - browserslist@4.24.4: - dependencies: - caniuse-lite: 1.0.30001715 - electron-to-chromium: 1.5.140 - node-releases: 2.0.19 - update-browserslist-db: 1.1.3(browserslist@4.24.4) - browserslist@4.25.1: dependencies: - caniuse-lite: 1.0.30001726 - electron-to-chromium: 1.5.179 + caniuse-lite: 1.0.30001727 + electron-to-chromium: 1.5.190 node-releases: 2.0.19 update-browserslist-db: 1.1.3(browserslist@4.25.1) @@ -21664,10 +23672,10 @@ snapshots: normalize-url: 6.1.0 responselike: 2.0.1 - cacheable@1.10.1: + cacheable@1.10.3: dependencies: - hookified: 1.10.0 - keyv: 5.3.4 + hookified: 1.11.0 + keyv: 5.5.0 call-bind-apply-helpers@1.0.2: dependencies: @@ -21698,14 +23706,12 @@ snapshots: caniuse-api@3.0.0: dependencies: - browserslist: 4.24.4 - caniuse-lite: 1.0.30001715 + browserslist: 4.25.1 + caniuse-lite: 1.0.30001727 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 - caniuse-lite@1.0.30001715: {} - - caniuse-lite@1.0.30001726: {} + caniuse-lite@1.0.30001727: {} canvas-color-tracker@1.3.2: dependencies: @@ -21713,6 +23719,8 @@ snapshots: canvas-roundrect-polyfill@0.0.1: {} + ccount@2.0.1: {} + chai@5.2.0: dependencies: assertion-error: 2.0.1 @@ -21739,8 +23747,16 @@ snapshots: chalk@5.4.1: {} + chalk@5.5.0: {} + char-regex@1.0.2: {} + character-entities-html4@2.1.0: {} + + character-entities-legacy@3.0.0: {} + + character-entities@2.0.2: {} + chardet@2.1.0: {} check-error@2.1.1: {} @@ -21772,18 +23788,18 @@ snapshots: parse5-htmlparser2-tree-adapter: 6.0.1 tslib: 2.8.1 - cheerio@1.1.0: + cheerio@1.1.2: dependencies: cheerio-select: 2.1.0 dom-serializer: 2.0.0 domhandler: 5.0.3 domutils: 3.2.2 - encoding-sniffer: 0.2.0 + encoding-sniffer: 0.2.1 htmlparser2: 10.0.0 parse5: 7.3.0 parse5-htmlparser2-tree-adapter: 7.1.0 parse5-parser-stream: 7.1.2 - undici: 7.10.0 + undici: 7.12.0 whatwg-mimetype: 4.0.0 chevrotain-allstar@0.3.1(chevrotain@11.0.3): @@ -21828,117 +23844,120 @@ snapshots: dependencies: readdirp: 4.1.2 - chownr@1.1.4: {} - chownr@2.0.0: {} chownr@3.0.0: {} chrome-trace-event@1.0.4: {} - ci-info@3.9.0: {} + ci-info@4.3.0: {} - cjs-module-lexer@1.4.3: {} + cjs-module-lexer@2.1.0: {} - ckeditor5-collaboration@45.2.1: + ckeditor5-collaboration@46.0.0: dependencies: - '@ckeditor/ckeditor5-collaboration-core': 45.2.1 + '@ckeditor/ckeditor5-collaboration-core': 46.0.0 + transitivePeerDependencies: + - supports-color - ckeditor5-premium-features@45.2.1(bufferutil@4.0.9)(ckeditor5@45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41))(utf-8-validate@6.0.5): + ckeditor5-premium-features@46.0.0(bufferutil@4.0.9)(ckeditor5@46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41))(utf-8-validate@6.0.5): dependencies: - '@ckeditor/ckeditor5-ai': 45.2.1 - '@ckeditor/ckeditor5-case-change': 45.2.1 - '@ckeditor/ckeditor5-collaboration-core': 45.2.1 - '@ckeditor/ckeditor5-comments': 45.2.1 - '@ckeditor/ckeditor5-document-outline': 45.2.1 - '@ckeditor/ckeditor5-email': 45.2.1 - '@ckeditor/ckeditor5-export-inline-styles': 45.2.1 - '@ckeditor/ckeditor5-export-pdf': 45.2.1 - '@ckeditor/ckeditor5-export-word': 45.2.1 - '@ckeditor/ckeditor5-format-painter': 45.2.1 - '@ckeditor/ckeditor5-import-word': 45.2.1 - '@ckeditor/ckeditor5-list-multi-level': 45.2.1 - '@ckeditor/ckeditor5-merge-fields': 45.2.1 - '@ckeditor/ckeditor5-pagination': 45.2.1 - '@ckeditor/ckeditor5-paste-from-office-enhanced': 45.2.1 - '@ckeditor/ckeditor5-real-time-collaboration': 45.2.1(bufferutil@4.0.9)(utf-8-validate@6.0.5) - '@ckeditor/ckeditor5-revision-history': 45.2.1 - '@ckeditor/ckeditor5-slash-command': 45.2.1 - '@ckeditor/ckeditor5-source-editing-enhanced': 45.2.1 - '@ckeditor/ckeditor5-template': 45.2.1 - '@ckeditor/ckeditor5-track-changes': 45.2.1 - '@ckeditor/ckeditor5-uploadcare': 45.2.1(bufferutil@4.0.9)(utf-8-validate@6.0.5) - '@ckeditor/ckeditor5-utils': 45.2.1 - ckeditor5: 45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-ai': 46.0.0 + '@ckeditor/ckeditor5-case-change': 46.0.0 + '@ckeditor/ckeditor5-collaboration-core': 46.0.0 + '@ckeditor/ckeditor5-comments': 46.0.0 + '@ckeditor/ckeditor5-document-outline': 46.0.0 + '@ckeditor/ckeditor5-email': 46.0.0 + '@ckeditor/ckeditor5-export-inline-styles': 46.0.0 + '@ckeditor/ckeditor5-export-pdf': 46.0.0 + '@ckeditor/ckeditor5-export-word': 46.0.0 + '@ckeditor/ckeditor5-format-painter': 46.0.0 + '@ckeditor/ckeditor5-import-word': 46.0.0 + '@ckeditor/ckeditor5-line-height': 46.0.0 + '@ckeditor/ckeditor5-list-multi-level': 46.0.0 + '@ckeditor/ckeditor5-merge-fields': 46.0.0 + '@ckeditor/ckeditor5-pagination': 46.0.0 + '@ckeditor/ckeditor5-paste-from-office-enhanced': 46.0.0 + '@ckeditor/ckeditor5-real-time-collaboration': 46.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) + '@ckeditor/ckeditor5-revision-history': 46.0.0 + '@ckeditor/ckeditor5-slash-command': 46.0.0 + '@ckeditor/ckeditor5-source-editing-enhanced': 46.0.0 + '@ckeditor/ckeditor5-template': 46.0.0 + '@ckeditor/ckeditor5-track-changes': 46.0.0 + '@ckeditor/ckeditor5-uploadcare': 46.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) transitivePeerDependencies: - aws-crt - bufferutil - supports-color - utf-8-validate - ckeditor5@45.2.1(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41): + ckeditor5@46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41): dependencies: - '@ckeditor/ckeditor5-adapter-ckfinder': 45.2.1 - '@ckeditor/ckeditor5-alignment': 45.2.1 - '@ckeditor/ckeditor5-autoformat': 45.2.1 - '@ckeditor/ckeditor5-autosave': 45.2.1 - '@ckeditor/ckeditor5-basic-styles': 45.2.1 - '@ckeditor/ckeditor5-block-quote': 45.2.1 - '@ckeditor/ckeditor5-bookmark': 45.2.1 - '@ckeditor/ckeditor5-ckbox': 45.2.1 - '@ckeditor/ckeditor5-ckfinder': 45.2.1 - '@ckeditor/ckeditor5-clipboard': 45.2.1 - '@ckeditor/ckeditor5-cloud-services': 45.2.1 - '@ckeditor/ckeditor5-code-block': 45.2.1(patch_hash=2361d8caad7d6b5bddacc3a3b4aa37dbfba260b1c1b22a450413a79c1bb1ce95) - '@ckeditor/ckeditor5-core': 45.2.1 - '@ckeditor/ckeditor5-easy-image': 45.2.1 - '@ckeditor/ckeditor5-editor-balloon': 45.2.1 - '@ckeditor/ckeditor5-editor-classic': 45.2.1 - '@ckeditor/ckeditor5-editor-decoupled': 45.2.1 - '@ckeditor/ckeditor5-editor-inline': 45.2.1 - '@ckeditor/ckeditor5-editor-multi-root': 45.2.1 - '@ckeditor/ckeditor5-emoji': 45.2.1 - '@ckeditor/ckeditor5-engine': 45.2.1 - '@ckeditor/ckeditor5-enter': 45.2.1 - '@ckeditor/ckeditor5-essentials': 45.2.1 - '@ckeditor/ckeditor5-find-and-replace': 45.2.1 - '@ckeditor/ckeditor5-font': 45.2.1 - '@ckeditor/ckeditor5-fullscreen': 45.2.1 - '@ckeditor/ckeditor5-heading': 45.2.1 - '@ckeditor/ckeditor5-highlight': 45.2.1 - '@ckeditor/ckeditor5-horizontal-line': 45.2.1 - '@ckeditor/ckeditor5-html-embed': 45.2.1 - '@ckeditor/ckeditor5-html-support': 45.2.1 - '@ckeditor/ckeditor5-icons': 45.2.1 - '@ckeditor/ckeditor5-image': 45.2.1 - '@ckeditor/ckeditor5-indent': 45.2.1 - '@ckeditor/ckeditor5-language': 45.2.1 - '@ckeditor/ckeditor5-link': 45.2.1 - '@ckeditor/ckeditor5-list': 45.2.1 - '@ckeditor/ckeditor5-markdown-gfm': 45.2.1 - '@ckeditor/ckeditor5-media-embed': 45.2.1 - '@ckeditor/ckeditor5-mention': 45.2.1(patch_hash=5981fb59ba35829e4dff1d39cf771000f8a8fdfa7a34b51d8af9549541f2d62d) - '@ckeditor/ckeditor5-minimap': 45.2.1 - '@ckeditor/ckeditor5-page-break': 45.2.1 - '@ckeditor/ckeditor5-paragraph': 45.2.1 - '@ckeditor/ckeditor5-paste-from-office': 45.2.1 - '@ckeditor/ckeditor5-remove-format': 45.2.1 - '@ckeditor/ckeditor5-restricted-editing': 45.2.1 - '@ckeditor/ckeditor5-select-all': 45.2.1 - '@ckeditor/ckeditor5-show-blocks': 45.2.1 - '@ckeditor/ckeditor5-source-editing': 45.2.1 - '@ckeditor/ckeditor5-special-characters': 45.2.1 - '@ckeditor/ckeditor5-style': 45.2.1 - '@ckeditor/ckeditor5-table': 45.2.1 - '@ckeditor/ckeditor5-theme-lark': 45.2.1 - '@ckeditor/ckeditor5-typing': 45.2.1 - '@ckeditor/ckeditor5-ui': 45.2.1 - '@ckeditor/ckeditor5-undo': 45.2.1 - '@ckeditor/ckeditor5-upload': 45.2.1 - '@ckeditor/ckeditor5-utils': 45.2.1 - '@ckeditor/ckeditor5-watchdog': 45.2.1 - '@ckeditor/ckeditor5-widget': 45.2.1 - '@ckeditor/ckeditor5-word-count': 45.2.1 + '@ckeditor/ckeditor5-adapter-ckfinder': 46.0.0 + '@ckeditor/ckeditor5-alignment': 46.0.0 + '@ckeditor/ckeditor5-autoformat': 46.0.0 + '@ckeditor/ckeditor5-autosave': 46.0.0 + '@ckeditor/ckeditor5-basic-styles': 46.0.0 + '@ckeditor/ckeditor5-block-quote': 46.0.0 + '@ckeditor/ckeditor5-bookmark': 46.0.0 + '@ckeditor/ckeditor5-ckbox': 46.0.0 + '@ckeditor/ckeditor5-ckfinder': 46.0.0 + '@ckeditor/ckeditor5-clipboard': 46.0.0 + '@ckeditor/ckeditor5-cloud-services': 46.0.0 + '@ckeditor/ckeditor5-code-block': 46.0.0(patch_hash=2361d8caad7d6b5bddacc3a3b4aa37dbfba260b1c1b22a450413a79c1bb1ce95) + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-easy-image': 46.0.0 + '@ckeditor/ckeditor5-editor-balloon': 46.0.0 + '@ckeditor/ckeditor5-editor-classic': 46.0.0 + '@ckeditor/ckeditor5-editor-decoupled': 46.0.0 + '@ckeditor/ckeditor5-editor-inline': 46.0.0 + '@ckeditor/ckeditor5-editor-multi-root': 46.0.0 + '@ckeditor/ckeditor5-emoji': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-enter': 46.0.0 + '@ckeditor/ckeditor5-essentials': 46.0.0 + '@ckeditor/ckeditor5-find-and-replace': 46.0.0 + '@ckeditor/ckeditor5-font': 46.0.0 + '@ckeditor/ckeditor5-fullscreen': 46.0.0 + '@ckeditor/ckeditor5-heading': 46.0.0 + '@ckeditor/ckeditor5-highlight': 46.0.0 + '@ckeditor/ckeditor5-horizontal-line': 46.0.0 + '@ckeditor/ckeditor5-html-embed': 46.0.0 + '@ckeditor/ckeditor5-html-support': 46.0.0 + '@ckeditor/ckeditor5-icons': 46.0.0 + '@ckeditor/ckeditor5-image': 46.0.0 + '@ckeditor/ckeditor5-indent': 46.0.0 + '@ckeditor/ckeditor5-language': 46.0.0 + '@ckeditor/ckeditor5-link': 46.0.0 + '@ckeditor/ckeditor5-list': 46.0.0 + '@ckeditor/ckeditor5-markdown-gfm': 46.0.0 + '@ckeditor/ckeditor5-media-embed': 46.0.0 + '@ckeditor/ckeditor5-mention': 46.0.0(patch_hash=5981fb59ba35829e4dff1d39cf771000f8a8fdfa7a34b51d8af9549541f2d62d) + '@ckeditor/ckeditor5-minimap': 46.0.0 + '@ckeditor/ckeditor5-page-break': 46.0.0 + '@ckeditor/ckeditor5-paragraph': 46.0.0 + '@ckeditor/ckeditor5-paste-from-office': 46.0.0 + '@ckeditor/ckeditor5-remove-format': 46.0.0 + '@ckeditor/ckeditor5-restricted-editing': 46.0.0 + '@ckeditor/ckeditor5-select-all': 46.0.0 + '@ckeditor/ckeditor5-show-blocks': 46.0.0 + '@ckeditor/ckeditor5-source-editing': 46.0.0 + '@ckeditor/ckeditor5-special-characters': 46.0.0 + '@ckeditor/ckeditor5-style': 46.0.0 + '@ckeditor/ckeditor5-table': 46.0.0 + '@ckeditor/ckeditor5-theme-lark': 46.0.0 + '@ckeditor/ckeditor5-typing': 46.0.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + '@ckeditor/ckeditor5-undo': 46.0.0 + '@ckeditor/ckeditor5-upload': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + '@ckeditor/ckeditor5-watchdog': 46.0.0 + '@ckeditor/ckeditor5-widget': 46.0.0 + '@ckeditor/ckeditor5-word-count': 46.0.0 + transitivePeerDependencies: + - supports-color clean-stack@2.2.0: {} @@ -21984,6 +24003,7 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 + optional: true cliui@8.0.1: dependencies: @@ -22047,13 +24067,19 @@ snapshots: dependencies: color-name: 1.1.4 + color-convert@3.1.0: + dependencies: + color-name: 2.0.0 + color-name@1.1.3: {} color-name@1.1.4: {} - color-parse@1.4.2: + color-name@2.0.0: {} + + color-parse@2.0.2: dependencies: - color-name: 1.1.4 + color-name: 2.0.0 color-support@1.1.3: optional: true @@ -22076,6 +24102,8 @@ snapshots: dependencies: delayed-stream: 1.0.0 + comma-separated-tokens@2.0.3: {} + commander@11.1.0: {} commander@12.1.0: {} @@ -22124,13 +24152,13 @@ snapshots: dependencies: mime-db: 1.54.0 - compression@1.8.0: + compression@1.8.1: dependencies: bytes: 3.1.2 compressible: 2.0.18 debug: 2.6.9 negotiator: 0.6.4 - on-headers: 1.0.2 + on-headers: 1.1.0 safe-buffer: 5.2.1 vary: 1.1.2 transitivePeerDependencies: @@ -22188,12 +24216,12 @@ snapshots: cookie-signature@1.2.2: {} - cookie@0.6.0: {} - cookie@0.7.1: {} cookie@0.7.2: {} + cookie@1.0.2: {} + cookiejar@2.1.4: {} copy-anything@2.0.6: @@ -22201,18 +24229,18 @@ snapshots: is-what: 3.14.1 optional: true - copy-webpack-plugin@13.0.0(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)): + copy-webpack-plugin@13.0.0(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)): dependencies: glob-parent: 6.0.2 normalize-path: 3.0.0 schema-utils: 4.3.2 serialize-javascript: 6.0.2 tinyglobby: 0.2.13 - webpack: 5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5) + webpack: 5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8) core-js-compat@3.41.0: dependencies: - browserslist: 4.24.4 + browserslist: 4.25.1 core-util-is@1.0.3: {} @@ -22243,14 +24271,14 @@ snapshots: optionalDependencies: typescript: 5.0.4 - cosmiconfig@9.0.0(typescript@5.8.3): + cosmiconfig@9.0.0(typescript@5.9.2): dependencies: env-paths: 2.2.1 import-fresh: 3.3.1 js-yaml: 4.1.0 parse-json: 5.2.0 optionalDependencies: - typescript: 5.8.3 + typescript: 5.9.2 crc-32@0.3.0: {} @@ -22267,6 +24295,11 @@ snapshots: cross-dirname@0.1.0: {} + cross-env@10.0.0: + dependencies: + '@epic-web/invariant': 1.0.0 + cross-spawn: 7.0.6 + cross-env@7.0.3: dependencies: cross-spawn: 7.0.6 @@ -22305,34 +24338,38 @@ snapshots: dependencies: postcss: 8.5.3 + css-declaration-sorter@7.2.0(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + css-functions-list@3.2.3: {} - css-loader@5.2.7(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)): + css-loader@5.2.7(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)): dependencies: - icss-utils: 5.1.0(postcss@8.5.3) + icss-utils: 5.1.0(postcss@8.5.6) loader-utils: 2.0.4 - postcss: 8.5.3 - postcss-modules-extract-imports: 3.1.0(postcss@8.5.3) - postcss-modules-local-by-default: 4.2.0(postcss@8.5.3) - postcss-modules-scope: 3.2.1(postcss@8.5.3) - postcss-modules-values: 4.0.0(postcss@8.5.3) + postcss: 8.5.6 + postcss-modules-extract-imports: 3.1.0(postcss@8.5.6) + postcss-modules-local-by-default: 4.2.0(postcss@8.5.6) + postcss-modules-scope: 3.2.1(postcss@8.5.6) + postcss-modules-values: 4.0.0(postcss@8.5.6) postcss-value-parser: 4.2.0 schema-utils: 3.3.0 semver: 7.7.2 - webpack: 5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5) + webpack: 5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8) - css-loader@7.1.2(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)): + css-loader@7.1.2(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)): dependencies: - icss-utils: 5.1.0(postcss@8.5.3) - postcss: 8.5.3 - postcss-modules-extract-imports: 3.1.0(postcss@8.5.3) - postcss-modules-local-by-default: 4.2.0(postcss@8.5.3) - postcss-modules-scope: 3.2.1(postcss@8.5.3) - postcss-modules-values: 4.0.0(postcss@8.5.3) + icss-utils: 5.1.0(postcss@8.5.6) + postcss: 8.5.6 + postcss-modules-extract-imports: 3.1.0(postcss@8.5.6) + postcss-modules-local-by-default: 4.2.0(postcss@8.5.6) + postcss-modules-scope: 3.2.1(postcss@8.5.6) + postcss-modules-values: 4.0.0(postcss@8.5.6) postcss-value-parser: 4.2.0 semver: 7.7.2 optionalDependencies: - webpack: 5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5) + webpack: 5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8) css-select@4.3.0: dependencies: @@ -22350,6 +24387,14 @@ snapshots: domutils: 3.2.2 nth-check: 2.1.1 + css-select@5.2.2: + dependencies: + boolbase: 1.0.0 + css-what: 6.2.2 + domhandler: 5.0.3 + domutils: 3.2.2 + nth-check: 2.1.1 + css-shorthand-properties@1.1.2: {} css-tree@1.1.3: @@ -22376,6 +24421,8 @@ snapshots: css-what@6.1.0: {} + css-what@6.2.2: {} + cssesc@3.0.0: {} cssnano-preset-default@5.2.14(postcss@8.5.3): @@ -22413,7 +24460,7 @@ snapshots: cssnano-preset-default@6.1.2(postcss@8.5.3): dependencies: - browserslist: 4.24.4 + browserslist: 4.25.1 css-declaration-sorter: 7.2.0(postcss@8.5.3) cssnano-utils: 4.0.2(postcss@8.5.3) postcss: 8.5.3 @@ -22447,7 +24494,7 @@ snapshots: cssnano-preset-default@7.0.6(postcss@8.5.3): dependencies: - browserslist: 4.24.4 + browserslist: 4.25.1 css-declaration-sorter: 7.2.0(postcss@8.5.3) cssnano-utils: 5.0.0(postcss@8.5.3) postcss: 8.5.3 @@ -22479,6 +24526,40 @@ snapshots: postcss-svgo: 7.0.1(postcss@8.5.3) postcss-unique-selectors: 7.0.3(postcss@8.5.3) + cssnano-preset-default@7.0.8(postcss@8.5.6): + dependencies: + browserslist: 4.25.1 + css-declaration-sorter: 7.2.0(postcss@8.5.6) + cssnano-utils: 5.0.1(postcss@8.5.6) + postcss: 8.5.6 + postcss-calc: 10.1.1(postcss@8.5.6) + postcss-colormin: 7.0.4(postcss@8.5.6) + postcss-convert-values: 7.0.6(postcss@8.5.6) + postcss-discard-comments: 7.0.4(postcss@8.5.6) + postcss-discard-duplicates: 7.0.2(postcss@8.5.6) + postcss-discard-empty: 7.0.1(postcss@8.5.6) + postcss-discard-overridden: 7.0.1(postcss@8.5.6) + postcss-merge-longhand: 7.0.5(postcss@8.5.6) + postcss-merge-rules: 7.0.6(postcss@8.5.6) + postcss-minify-font-values: 7.0.1(postcss@8.5.6) + postcss-minify-gradients: 7.0.1(postcss@8.5.6) + postcss-minify-params: 7.0.4(postcss@8.5.6) + postcss-minify-selectors: 7.0.5(postcss@8.5.6) + postcss-normalize-charset: 7.0.1(postcss@8.5.6) + postcss-normalize-display-values: 7.0.1(postcss@8.5.6) + postcss-normalize-positions: 7.0.1(postcss@8.5.6) + postcss-normalize-repeat-style: 7.0.1(postcss@8.5.6) + postcss-normalize-string: 7.0.1(postcss@8.5.6) + postcss-normalize-timing-functions: 7.0.1(postcss@8.5.6) + postcss-normalize-unicode: 7.0.4(postcss@8.5.6) + postcss-normalize-url: 7.0.1(postcss@8.5.6) + postcss-normalize-whitespace: 7.0.1(postcss@8.5.6) + postcss-ordered-values: 7.0.2(postcss@8.5.6) + postcss-reduce-initial: 7.0.4(postcss@8.5.6) + postcss-reduce-transforms: 7.0.1(postcss@8.5.6) + postcss-svgo: 7.1.0(postcss@8.5.6) + postcss-unique-selectors: 7.0.4(postcss@8.5.6) + cssnano-preset-lite@4.0.3(postcss@8.5.3): dependencies: cssnano-utils: 5.0.0(postcss@8.5.3) @@ -22499,6 +24580,10 @@ snapshots: dependencies: postcss: 8.5.3 + cssnano-utils@5.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + cssnano@5.1.15(postcss@8.5.3): dependencies: cssnano-preset-default: 5.2.14(postcss@8.5.3) @@ -22518,6 +24603,12 @@ snapshots: lilconfig: 3.1.3 postcss: 8.5.3 + cssnano@7.1.0(postcss@8.5.6): + dependencies: + cssnano-preset-default: 7.0.8(postcss@8.5.6) + lilconfig: 3.1.3 + postcss: 8.5.6 + csso@4.2.0: dependencies: css-tree: 1.1.3 @@ -22815,6 +24906,10 @@ snapshots: decimal.js@10.5.0: {} + decode-named-character-reference@1.2.0: + dependencies: + character-entities: 2.0.2 + decode-uri-component@0.2.2: {} decompress-response@6.0.0: @@ -22825,7 +24920,7 @@ snapshots: optionalDependencies: babel-plugin-macros: 3.1.0 - dedent@1.5.3(babel-plugin-macros@3.1.0): + dedent@1.6.0(babel-plugin-macros@3.1.0): optionalDependencies: babel-plugin-macros: 3.1.0 @@ -22948,18 +25043,20 @@ snapshots: devalue@5.1.1: {} + devlop@1.1.0: + dependencies: + dequal: 2.0.3 + dezalgo@1.0.4: dependencies: asap: 2.0.6 wrappy: 1.0.2 - diff-sequences@29.6.3: {} - diff@3.5.0: {} diff@4.0.2: {} - diff@5.2.0: {} + diff@7.0.0: {} diff@8.0.2: {} @@ -23030,7 +25127,7 @@ snapshots: dotenv@16.4.7: {} - dotenv@17.0.1: {} + dotenv@17.2.1: {} dotignore@0.1.2: dependencies: @@ -23039,11 +25136,11 @@ snapshots: dpdm@3.14.0: dependencies: chalk: 4.1.2 - fs-extra: 11.3.0 + fs-extra: 11.3.1 glob: 10.4.5 ora: 5.4.1 tslib: 2.8.1 - typescript: 5.8.3 + typescript: 5.9.2 yargs: 17.7.2 draggabilly@3.0.0: @@ -23064,6 +25161,8 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 + earcut@3.0.2: {} + eastasianwidth@0.2.0: {} edge-paths@3.0.5: @@ -23071,13 +25170,13 @@ snapshots: '@types/which': 2.0.2 which: 2.0.2 - edgedriver@6.1.1: + edgedriver@6.1.2: dependencies: - '@wdio/logger': 9.15.0 - '@zip.js/zip.js': 2.7.62 + '@wdio/logger': 9.18.0 + '@zip.js/zip.js': 2.7.68 decamelize: 6.0.0 edge-paths: 3.0.5 - fast-xml-parser: 4.5.3 + fast-xml-parser: 5.2.5 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 node-fetch: 3.3.2 @@ -23178,9 +25277,7 @@ snapshots: transitivePeerDependencies: - supports-color - electron-to-chromium@1.5.140: {} - - electron-to-chromium@1.5.179: {} + electron-to-chromium@1.5.190: {} electron-window-state@5.0.3: dependencies: @@ -23200,10 +25297,10 @@ snapshots: - supports-color optional: true - electron@37.2.0: + electron@37.2.6: dependencies: '@electron/get': 2.0.3 - '@types/node': 22.16.0 + '@types/node': 22.17.0 extract-zip: 2.0.1 transitivePeerDependencies: - supports-color @@ -23233,7 +25330,7 @@ snapshots: encodeurl@2.0.0: {} - encoding-sniffer@0.2.0: + encoding-sniffer@0.2.1: dependencies: iconv-lite: 0.6.3 whatwg-encoding: 3.1.1 @@ -23247,6 +25344,10 @@ snapshots: dependencies: once: 1.4.0 + end-of-stream@1.4.5: + dependencies: + once: 1.4.0 + engine.io-client@6.5.4(bufferutil@4.0.9)(utf-8-validate@6.0.5): dependencies: '@socket.io/component-emitter': 3.1.2 @@ -23261,11 +25362,6 @@ snapshots: engine.io-parser@5.2.3: {} - enhanced-resolve@5.18.1: - dependencies: - graceful-fs: 4.2.11 - tapable: 2.2.1 - enhanced-resolve@5.18.2: dependencies: graceful-fs: 4.2.11 @@ -23375,7 +25471,7 @@ snapshots: is-date-object: 1.1.0 is-symbol: 1.1.1 - es-toolkit@1.32.0: {} + es-toolkit@1.39.5: {} es6-error@4.1.1: optional: true @@ -23384,20 +25480,20 @@ snapshots: es6-promise@4.2.8: {} - esbuild-loader@3.0.1(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)): + esbuild-loader@3.0.1(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)): dependencies: - esbuild: 0.25.5 + esbuild: 0.25.8 get-tsconfig: 4.10.1 loader-utils: 2.0.4 - webpack: 5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5) + webpack: 5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8) webpack-sources: 1.4.3 - esbuild-loader@4.3.0(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)): + esbuild-loader@4.3.0(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)): dependencies: - esbuild: 0.25.5 + esbuild: 0.25.8 get-tsconfig: 4.10.1 loader-utils: 2.0.4 - webpack: 5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5) + webpack: 5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8) webpack-sources: 1.4.3 esbuild@0.25.5: @@ -23428,6 +25524,35 @@ snapshots: '@esbuild/win32-ia32': 0.25.5 '@esbuild/win32-x64': 0.25.5 + esbuild@0.25.8: + optionalDependencies: + '@esbuild/aix-ppc64': 0.25.8 + '@esbuild/android-arm': 0.25.8 + '@esbuild/android-arm64': 0.25.8 + '@esbuild/android-x64': 0.25.8 + '@esbuild/darwin-arm64': 0.25.8 + '@esbuild/darwin-x64': 0.25.8 + '@esbuild/freebsd-arm64': 0.25.8 + '@esbuild/freebsd-x64': 0.25.8 + '@esbuild/linux-arm': 0.25.8 + '@esbuild/linux-arm64': 0.25.8 + '@esbuild/linux-ia32': 0.25.8 + '@esbuild/linux-loong64': 0.25.8 + '@esbuild/linux-mips64el': 0.25.8 + '@esbuild/linux-ppc64': 0.25.8 + '@esbuild/linux-riscv64': 0.25.8 + '@esbuild/linux-s390x': 0.25.8 + '@esbuild/linux-x64': 0.25.8 + '@esbuild/netbsd-arm64': 0.25.8 + '@esbuild/netbsd-x64': 0.25.8 + '@esbuild/openbsd-arm64': 0.25.8 + '@esbuild/openbsd-x64': 0.25.8 + '@esbuild/openharmony-arm64': 0.25.8 + '@esbuild/sunos-x64': 0.25.8 + '@esbuild/win32-arm64': 0.25.8 + '@esbuild/win32-ia32': 0.25.8 + '@esbuild/win32-x64': 0.25.8 + escalade@3.2.0: {} escape-goat@4.0.0: {} @@ -23450,60 +25575,62 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-config-ckeditor5@11.0.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3): + eslint-config-ckeditor5@12.1.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2): dependencies: - '@eslint/js': 9.30.1 - '@stylistic/eslint-plugin': 4.4.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.30.1(jiti@2.4.2) - eslint-plugin-ckeditor5-rules: 11.0.1 - eslint-plugin-mocha: 11.1.0(eslint@9.30.1(jiti@2.4.2)) + '@eslint/js': 9.32.0 + '@eslint/markdown': 6.6.0 + '@stylistic/eslint-plugin': 4.4.1(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) + eslint: 9.32.0(jiti@2.5.1) + eslint-plugin-ckeditor5-rules: 12.1.0 + eslint-plugin-mocha: 11.1.0(eslint@9.32.0(jiti@2.5.1)) globals: 16.3.0 - typescript: 5.8.3 - typescript-eslint: 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) + typescript: 5.9.2 + typescript-eslint: 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) transitivePeerDependencies: - supports-color - eslint-config-prettier@10.1.5(eslint@9.30.1(jiti@2.4.2)): + eslint-config-prettier@10.1.8(eslint@9.32.0(jiti@2.5.1)): dependencies: - eslint: 9.30.1(jiti@2.4.2) + eslint: 9.32.0(jiti@2.5.1) - eslint-linter-browserify@9.30.1: {} + eslint-linter-browserify@9.32.0: {} - eslint-plugin-ckeditor5-rules@11.0.1: + eslint-plugin-ckeditor5-rules@12.1.0: dependencies: '@es-joy/jsdoccomment': 0.50.2 enhanced-resolve: 5.18.2 - fs-extra: 11.3.0 + fs-extra: 11.3.1 resolve.exports: 2.0.3 upath: 2.0.1 - validate-npm-package-name: 6.0.1 + validate-npm-package-name: 6.0.2 + yaml: 2.8.0 - eslint-plugin-mocha@11.1.0(eslint@9.30.1(jiti@2.4.2)): + eslint-plugin-mocha@11.1.0(eslint@9.32.0(jiti@2.5.1)): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.30.1(jiti@2.4.2)) - eslint: 9.30.1(jiti@2.4.2) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.32.0(jiti@2.5.1)) + eslint: 9.32.0(jiti@2.5.1) globals: 15.15.0 - eslint-plugin-playwright@2.2.0(eslint@9.30.1(jiti@2.4.2)): + eslint-plugin-playwright@2.2.2(eslint@9.32.0(jiti@2.5.1)): dependencies: - eslint: 9.30.1(jiti@2.4.2) + eslint: 9.32.0(jiti@2.5.1) globals: 13.24.0 - eslint-plugin-svelte@3.10.1(eslint@9.30.1(jiti@2.4.2))(svelte@5.35.2)(ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.16.0)(typescript@5.8.3)): + eslint-plugin-svelte@3.11.0(eslint@9.32.0(jiti@2.5.1))(svelte@5.38.0)(ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.1.0)(typescript@5.9.2)): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.30.1(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.32.0(jiti@2.5.1)) '@jridgewell/sourcemap-codec': 1.5.4 - eslint: 9.30.1(jiti@2.4.2) + eslint: 9.32.0(jiti@2.5.1) esutils: 2.0.3 globals: 16.3.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@22.16.0)(typescript@5.8.3)) + 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.1.0)(typescript@5.9.2)) postcss-safe-parser: 7.0.1(postcss@8.5.6) semver: 7.7.2 - svelte-eslint-parser: 1.2.0(svelte@5.35.2) + svelte-eslint-parser: 1.3.0(svelte@5.38.0) optionalDependencies: - svelte: 5.35.2 + svelte: 5.38.0 transitivePeerDependencies: - ts-node @@ -23521,16 +25648,16 @@ snapshots: eslint-visitor-keys@4.2.1: {} - eslint@9.30.1(jiti@2.4.2): + eslint@9.32.0(jiti@2.5.1): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.30.1(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.32.0(jiti@2.5.1)) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.21.0 '@eslint/config-helpers': 0.3.0 - '@eslint/core': 0.14.0 + '@eslint/core': 0.15.1 '@eslint/eslintrc': 3.3.1 - '@eslint/js': 9.30.1 - '@eslint/plugin-kit': 0.3.3 + '@eslint/js': 9.32.0 + '@eslint/plugin-kit': 0.3.4 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 @@ -23559,7 +25686,7 @@ snapshots: natural-compare: 1.4.0 optionator: 0.9.4 optionalDependencies: - jiti: 2.4.2 + jiti: 2.5.1 transitivePeerDependencies: - supports-color @@ -23625,21 +25752,34 @@ snapshots: signal-exit: 3.0.7 strip-eof: 1.0.0 + execa@5.1.1: + dependencies: + cross-spawn: 7.0.6 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + exif-parser@0.1.12: {} - exit@0.1.2: {} + exit-x@0.2.2: {} expand-template@2.0.3: {} expect-type@1.2.1: {} - expect@29.7.0: + expect@30.0.5: dependencies: - '@jest/expect-utils': 29.7.0 - jest-get-type: 29.6.3 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-util: 29.7.0 + '@jest/expect-utils': 30.0.5 + '@jest/get-type': 30.0.1 + jest-matcher-utils: 30.0.5 + jest-message-util: 30.0.5 + jest-mock: 30.0.5 + jest-util: 30.0.5 exponential-backoff@3.1.2: {} @@ -23651,7 +25791,7 @@ snapshots: transitivePeerDependencies: - supports-color - express-openid-connect@2.18.1(express@5.1.0): + express-openid-connect@2.19.2(express@5.1.0): dependencies: base64url: 3.0.1 clone: 2.1.2 @@ -23662,23 +25802,24 @@ snapshots: http-errors: 1.8.1 joi: 17.13.3 jose: 2.0.7 - on-headers: 1.0.2 + on-headers: 1.1.0 openid-client: 4.9.1 url-join: 4.0.1 transitivePeerDependencies: - supports-color - express-rate-limit@7.5.1(express@5.1.0): + express-rate-limit@8.0.1(express@5.1.0): dependencies: express: 5.1.0 + ip-address: 10.0.1 - express-session@1.18.1: + express-session@1.18.2: dependencies: cookie: 0.7.2 cookie-signature: 1.0.7 debug: 2.6.9 depd: 2.0.0 - on-headers: 1.0.2 + on-headers: 1.1.0 parseurl: 1.3.3 safe-buffer: 5.2.1 uid-safe: 2.1.5 @@ -23768,6 +25909,8 @@ snapshots: dependencies: is-extendable: 0.1.1 + extend@3.0.2: {} + extract-zip@2.0.1: dependencies: debug: 4.4.1(supports-color@6.0.0) @@ -23804,9 +25947,9 @@ snapshots: dependencies: strnum: 1.1.2 - fast-xml-parser@4.5.3: + fast-xml-parser@5.2.5: dependencies: - strnum: 1.1.2 + strnum: 2.1.1 fastest-levenshtein@1.0.16: {} @@ -23814,6 +25957,10 @@ snapshots: dependencies: reusify: 1.1.0 + fault@2.0.1: + dependencies: + format: 0.2.2 + faye-websocket@0.11.4: dependencies: websocket-driver: 0.7.4 @@ -23834,6 +25981,10 @@ snapshots: optionalDependencies: picomatch: 4.0.2 + fdir@6.4.6(picomatch@4.0.3): + optionalDependencies: + picomatch: 4.0.3 + fetch-blob@3.2.0: dependencies: node-domexception: 1.0.0 @@ -23845,9 +25996,9 @@ snapshots: dependencies: escape-string-regexp: 1.0.5 - file-entry-cache@10.1.1: + file-entry-cache@10.1.3: dependencies: - flat-cache: 6.1.11 + flat-cache: 6.1.12 file-entry-cache@8.0.0: dependencies: @@ -23942,11 +26093,11 @@ snapshots: flatted: 3.3.3 keyv: 4.5.4 - flat-cache@6.1.11: + flat-cache@6.1.12: dependencies: - cacheable: 1.10.1 + cacheable: 1.10.3 flatted: 3.3.3 - hookified: 1.10.0 + hookified: 1.11.0 flat@5.0.2: {} @@ -23956,7 +26107,7 @@ snapshots: dependencies: d3-selection: 3.0.0 kapsule: 1.16.3 - preact: 10.26.9 + preact: 10.27.0 flora-colossus@2.0.0: dependencies: @@ -24001,19 +26152,15 @@ snapshots: cross-spawn: 7.0.6 signal-exit: 4.1.0 - form-data@3.0.3: + form-data@4.0.4: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 es-set-tostringtag: 2.1.0 + hasown: 2.0.2 mime-types: 2.1.35 - form-data@4.0.2: - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - es-set-tostringtag: 2.1.0 - mime-types: 2.1.35 + format@0.2.2: {} formdata-polyfill@4.0.10: dependencies: @@ -24051,6 +26198,12 @@ snapshots: jsonfile: 6.1.0 universalify: 2.0.1 + fs-extra@11.3.1: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + fs-extra@7.0.1: dependencies: graceful-fs: 4.2.11 @@ -24142,13 +26295,13 @@ snapshots: geckodriver@5.0.0: dependencies: - '@wdio/logger': 9.15.0 - '@zip.js/zip.js': 2.7.62 + '@wdio/logger': 9.18.0 + '@zip.js/zip.js': 2.7.68 decamelize: 6.0.0 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 node-fetch: 3.3.2 - tar-fs: 3.0.9 + tar-fs: 3.1.0 which: 5.0.0 transitivePeerDependencies: - bare-buffer @@ -24166,6 +26319,8 @@ snapshots: gensync@1.0.0-beta.2: {} + geojson-vt@4.0.2: {} + get-caller-file@2.0.5: {} get-east-asian-width@1.3.0: {} @@ -24213,11 +26368,13 @@ snapshots: get-stream@4.1.0: dependencies: - pump: 3.0.2 + pump: 3.0.3 get-stream@5.2.0: dependencies: - pump: 3.0.2 + pump: 3.0.3 + + get-stream@6.0.1: {} get-symbol-description@1.1.0: dependencies: @@ -24231,7 +26388,7 @@ snapshots: dependencies: resolve-pkg-maps: 1.0.0 - get-uri@6.0.4: + get-uri@6.0.5: dependencies: basic-ftp: 5.0.5 data-uri-to-buffer: 6.0.2 @@ -24246,6 +26403,10 @@ snapshots: github-from-package@0.0.0: {} + github-slugger@2.0.0: {} + + gl-matrix@3.4.3: {} + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -24265,6 +26426,15 @@ snapshots: package-json-from-dist: 1.0.1 path-scurry: 1.11.1 + glob@11.0.3: + dependencies: + foreground-child: 3.3.1 + jackspeak: 4.1.1 + minimatch: 10.0.3 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 2.0.0 + glob@7.1.3: dependencies: fs.realpath: 1.0.0 @@ -24324,6 +26494,12 @@ snapshots: kind-of: 6.0.3 which: 1.3.1 + global-prefix@4.0.0: + dependencies: + ini: 4.1.3 + kind-of: 6.0.3 + which: 4.0.0 + globals@11.12.0: {} globals@13.24.0: @@ -24435,6 +26611,105 @@ snapshots: dependencies: function-bind: 1.1.2 + hast-util-embedded@3.0.0: + dependencies: + '@types/hast': 3.0.4 + hast-util-is-element: 3.0.0 + + hast-util-from-dom@5.0.1: + dependencies: + '@types/hast': 3.0.4 + hastscript: 9.0.1 + web-namespaces: 2.0.1 + + hast-util-has-property@3.0.0: + dependencies: + '@types/hast': 3.0.4 + + hast-util-is-body-ok-link@3.0.1: + dependencies: + '@types/hast': 3.0.4 + + hast-util-is-element@3.0.0: + dependencies: + '@types/hast': 3.0.4 + + hast-util-minify-whitespace@1.0.1: + dependencies: + '@types/hast': 3.0.4 + hast-util-embedded: 3.0.0 + hast-util-is-element: 3.0.0 + hast-util-whitespace: 3.0.0 + unist-util-is: 6.0.0 + + hast-util-parse-selector@4.0.0: + dependencies: + '@types/hast': 3.0.4 + + hast-util-phrasing@3.0.1: + dependencies: + '@types/hast': 3.0.4 + hast-util-embedded: 3.0.0 + hast-util-has-property: 3.0.0 + hast-util-is-body-ok-link: 3.0.1 + hast-util-is-element: 3.0.0 + + hast-util-to-dom@4.0.1: + dependencies: + '@types/hast': 3.0.4 + property-information: 7.1.0 + web-namespaces: 2.0.1 + + hast-util-to-html@9.0.5: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-whitespace: 3.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.0 + property-information: 7.1.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.4 + zwitch: 2.0.4 + + hast-util-to-mdast@10.1.2: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@ungap/structured-clone': 1.3.0 + hast-util-phrasing: 3.0.1 + hast-util-to-html: 9.0.5 + hast-util-to-text: 4.0.2 + hast-util-whitespace: 3.0.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-hast: 13.2.0 + mdast-util-to-string: 4.0.0 + rehype-minify-whitespace: 6.0.2 + trim-trailing-lines: 2.1.0 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + + hast-util-to-text@4.0.2: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + hast-util-is-element: 3.0.0 + unist-util-find-after: 5.0.0 + + hast-util-whitespace@3.0.0: + dependencies: + '@types/hast': 3.0.4 + + hastscript@9.0.1: + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + hast-util-parse-selector: 4.0.0 + property-information: 7.1.0 + space-separated-tokens: 2.0.2 + he@1.2.0: {} headers-polyfill@4.0.3: @@ -24465,7 +26740,7 @@ snapshots: hoist-non-react-statics@2.5.5: {} - hookified@1.10.0: {} + hookified@1.11.0: {} hosted-git-info@2.8.9: {} @@ -24473,6 +26748,10 @@ snapshots: dependencies: lru-cache: 10.4.3 + hosted-git-info@8.1.0: + dependencies: + lru-cache: 10.4.3 + hpack.js@2.1.6: dependencies: inherits: 2.0.4 @@ -24496,6 +26775,8 @@ snapshots: html-tags@3.3.1: {} + html-void-elements@3.0.0: {} + html2plaintext@2.1.4: dependencies: cheerio: 1.0.0-rc.10 @@ -24506,7 +26787,7 @@ snapshots: dependencies: concat-stream: 1.6.2 - htmlfy@0.6.7: {} + htmlfy@0.8.1: {} htmlparser2@10.0.0: dependencies: @@ -24643,6 +26924,8 @@ snapshots: human-id@4.1.1: {} + human-signals@2.1.0: {} + humanize-ms@1.2.1: dependencies: ms: 2.1.3 @@ -24657,11 +26940,11 @@ snapshots: transitivePeerDependencies: - encoding - i18next@25.3.0(typescript@5.8.3): + i18next@25.3.2(typescript@5.9.2): dependencies: '@babel/runtime': 7.27.6 optionalDependencies: - typescript: 5.8.3 + typescript: 5.9.2 iconv-lite@0.4.24: dependencies: @@ -24675,12 +26958,20 @@ snapshots: dependencies: postcss: 8.5.3 + icss-utils@5.1.0(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + identity-obj-proxy@3.0.0: dependencies: harmony-reflect: 1.6.2 ieee754@1.2.1: {} + ignore-walk@7.0.0: + dependencies: + minimatch: 9.0.5 + ignore@5.3.2: {} ignore@7.0.5: {} @@ -24747,6 +27038,8 @@ snapshots: ini@2.0.0: {} + ini@4.1.3: {} + ini@5.0.0: {} internal-slot@1.1.0: @@ -24767,6 +27060,8 @@ snapshots: dependencies: loose-envify: 1.4.0 + ip-address@10.0.1: {} + ip-address@9.0.5: dependencies: jsbn: 1.1.0 @@ -24960,7 +27255,7 @@ snapshots: call-bound: 1.0.4 has-tostringtag: 1.0.2 - is-svg@6.0.0: + is-svg@6.1.0: dependencies: '@file-type/xml': 0.4.3 @@ -25020,16 +27315,6 @@ snapshots: istanbul-lib-coverage@3.2.2: {} - istanbul-lib-instrument@5.2.1: - dependencies: - '@babel/core': 7.28.0 - '@babel/parser': 7.28.0 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.2 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - istanbul-lib-instrument@6.0.3: dependencies: '@babel/core': 7.28.0 @@ -25046,14 +27331,6 @@ snapshots: make-dir: 4.0.0 supports-color: 7.2.0 - istanbul-lib-source-maps@4.0.1: - dependencies: - debug: 4.4.1(supports-color@6.0.0) - istanbul-lib-coverage: 3.2.2 - source-map: 0.6.1 - transitivePeerDependencies: - - supports-color - istanbul-lib-source-maps@5.0.6: dependencies: '@jridgewell/trace-mapping': 0.3.29 @@ -25073,6 +27350,10 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 + jackspeak@4.1.1: + dependencies: + '@isaacs/cliui': 8.0.2 + jake@10.9.2: dependencies: async: 3.2.6 @@ -25082,280 +27363,282 @@ snapshots: javascript-stringify@1.6.0: {} - jest-circus@29.7.0(babel-plugin-macros@3.1.0): + jest-circus@30.0.5(babel-plugin-macros@3.1.0): dependencies: - '@jest/environment': 29.7.0 - '@jest/expect': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.16.0 + '@jest/environment': 30.0.5 + '@jest/expect': 30.0.5 + '@jest/test-result': 30.0.5 + '@jest/types': 30.0.5 + '@types/node': 22.17.0 chalk: 4.1.2 co: 4.6.0 - dedent: 1.5.3(babel-plugin-macros@3.1.0) + dedent: 1.6.0(babel-plugin-macros@3.1.0) is-generator-fn: 2.1.0 - jest-each: 29.7.0 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-runtime: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 + jest-each: 30.0.5 + jest-matcher-utils: 30.0.5 + jest-message-util: 30.0.5 + jest-runtime: 30.0.5 + jest-snapshot: 30.0.5 + jest-util: 30.0.5 p-limit: 3.1.0 - pretty-format: 29.7.0 - pure-rand: 6.1.0 + pretty-format: 30.0.5 + pure-rand: 7.0.1 slash: 3.0.0 stack-utils: 2.0.6 transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@22.16.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.16.0)(typescript@5.8.3)): + jest-config@30.0.5(@types/node@22.17.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.17.0)(typescript@5.9.2)): dependencies: '@babel/core': 7.28.0 - '@jest/test-sequencer': 29.7.0 - '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.28.0) + '@jest/get-type': 30.0.1 + '@jest/pattern': 30.0.1 + '@jest/test-sequencer': 30.0.5 + '@jest/types': 30.0.5 + babel-jest: 30.0.5(@babel/core@7.28.0) chalk: 4.1.2 - ci-info: 3.9.0 + ci-info: 4.3.0 deepmerge: 4.3.1 - glob: 7.2.3 + glob: 10.4.5 graceful-fs: 4.2.11 - jest-circus: 29.7.0(babel-plugin-macros@3.1.0) - jest-environment-node: 29.7.0 - jest-get-type: 29.6.3 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-runner: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 + jest-circus: 30.0.5(babel-plugin-macros@3.1.0) + jest-docblock: 30.0.1 + jest-environment-node: 30.0.5 + jest-regex-util: 30.0.1 + jest-resolve: 30.0.5 + jest-runner: 30.0.5 + jest-util: 30.0.5 + jest-validate: 30.0.5 micromatch: 4.0.8 parse-json: 5.2.0 - pretty-format: 29.7.0 + pretty-format: 30.0.5 slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.16.0 - ts-node: 10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.16.0)(typescript@5.8.3) + '@types/node': 22.17.0 + ts-node: 10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.17.0)(typescript@5.9.2) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-diff@29.7.0: + jest-diff@30.0.5: dependencies: + '@jest/diff-sequences': 30.0.1 + '@jest/get-type': 30.0.1 chalk: 4.1.2 - diff-sequences: 29.6.3 - jest-get-type: 29.6.3 - pretty-format: 29.7.0 + pretty-format: 30.0.5 - jest-docblock@29.7.0: + jest-docblock@30.0.1: dependencies: detect-newline: 3.1.0 - jest-each@29.7.0: + jest-each@30.0.5: dependencies: - '@jest/types': 29.6.3 + '@jest/get-type': 30.0.1 + '@jest/types': 30.0.5 chalk: 4.1.2 - jest-get-type: 29.6.3 - jest-util: 29.7.0 - pretty-format: 29.7.0 + jest-util: 30.0.5 + pretty-format: 30.0.5 - jest-environment-node@29.7.0: + jest-environment-node@30.0.5: dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.16.0 - jest-mock: 29.7.0 - jest-util: 29.7.0 + '@jest/environment': 30.0.5 + '@jest/fake-timers': 30.0.5 + '@jest/types': 30.0.5 + '@types/node': 22.17.0 + jest-mock: 30.0.5 + jest-util: 30.0.5 + jest-validate: 30.0.5 - jest-get-type@29.6.3: {} - - jest-haste-map@29.7.0: + jest-haste-map@30.0.5: dependencies: - '@jest/types': 29.6.3 - '@types/graceful-fs': 4.1.9 - '@types/node': 22.16.0 + '@jest/types': 30.0.5 + '@types/node': 22.17.0 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 - jest-regex-util: 29.6.3 - jest-util: 29.7.0 - jest-worker: 29.7.0 + jest-regex-util: 30.0.1 + jest-util: 30.0.5 + jest-worker: 30.0.5 micromatch: 4.0.8 walker: 1.0.8 optionalDependencies: fsevents: 2.3.3 - jest-leak-detector@29.7.0: + jest-leak-detector@30.0.5: dependencies: - jest-get-type: 29.6.3 - pretty-format: 29.7.0 + '@jest/get-type': 30.0.1 + pretty-format: 30.0.5 - jest-matcher-utils@29.7.0: + jest-matcher-utils@30.0.5: dependencies: + '@jest/get-type': 30.0.1 chalk: 4.1.2 - jest-diff: 29.7.0 - jest-get-type: 29.6.3 - pretty-format: 29.7.0 + jest-diff: 30.0.5 + pretty-format: 30.0.5 - jest-message-util@29.7.0: + jest-message-util@30.0.5: dependencies: '@babel/code-frame': 7.27.1 - '@jest/types': 29.6.3 + '@jest/types': 30.0.5 '@types/stack-utils': 2.0.3 chalk: 4.1.2 graceful-fs: 4.2.11 micromatch: 4.0.8 - pretty-format: 29.7.0 + pretty-format: 30.0.5 slash: 3.0.0 stack-utils: 2.0.6 - jest-mock@29.7.0: + jest-mock@30.0.5: dependencies: - '@jest/types': 29.6.3 - '@types/node': 22.16.0 - jest-util: 29.7.0 + '@jest/types': 30.0.5 + '@types/node': 22.17.0 + jest-util: 30.0.5 - jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): + jest-pnp-resolver@1.2.3(jest-resolve@30.0.5): optionalDependencies: - jest-resolve: 29.7.0 + jest-resolve: 30.0.5 - jest-regex-util@29.6.3: {} + jest-regex-util@30.0.1: {} - jest-resolve@29.7.0: + jest-resolve@30.0.5: dependencies: chalk: 4.1.2 graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) - jest-util: 29.7.0 - jest-validate: 29.7.0 - resolve: 1.22.10 - resolve.exports: 2.0.3 + jest-haste-map: 30.0.5 + jest-pnp-resolver: 1.2.3(jest-resolve@30.0.5) + jest-util: 30.0.5 + jest-validate: 30.0.5 slash: 3.0.0 + unrs-resolver: 1.11.1 - jest-runner@29.7.0: + jest-runner@30.0.5: dependencies: - '@jest/console': 29.7.0 - '@jest/environment': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.16.0 + '@jest/console': 30.0.5 + '@jest/environment': 30.0.5 + '@jest/test-result': 30.0.5 + '@jest/transform': 30.0.5 + '@jest/types': 30.0.5 + '@types/node': 22.17.0 chalk: 4.1.2 emittery: 0.13.1 + exit-x: 0.2.2 graceful-fs: 4.2.11 - jest-docblock: 29.7.0 - jest-environment-node: 29.7.0 - jest-haste-map: 29.7.0 - jest-leak-detector: 29.7.0 - jest-message-util: 29.7.0 - jest-resolve: 29.7.0 - jest-runtime: 29.7.0 - jest-util: 29.7.0 - jest-watcher: 29.7.0 - jest-worker: 29.7.0 + jest-docblock: 30.0.1 + jest-environment-node: 30.0.5 + jest-haste-map: 30.0.5 + jest-leak-detector: 30.0.5 + jest-message-util: 30.0.5 + jest-resolve: 30.0.5 + jest-runtime: 30.0.5 + jest-util: 30.0.5 + jest-watcher: 30.0.5 + jest-worker: 30.0.5 p-limit: 3.1.0 source-map-support: 0.5.13 transitivePeerDependencies: - supports-color - jest-runtime@29.7.0: + jest-runtime@30.0.5: dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/globals': 29.7.0 - '@jest/source-map': 29.6.3 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.16.0 + '@jest/environment': 30.0.5 + '@jest/fake-timers': 30.0.5 + '@jest/globals': 30.0.5 + '@jest/source-map': 30.0.1 + '@jest/test-result': 30.0.5 + '@jest/transform': 30.0.5 + '@jest/types': 30.0.5 + '@types/node': 22.17.0 chalk: 4.1.2 - cjs-module-lexer: 1.4.3 + cjs-module-lexer: 2.1.0 collect-v8-coverage: 1.0.2 - glob: 7.2.3 + glob: 10.4.5 graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-message-util: 29.7.0 - jest-mock: 29.7.0 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 + jest-haste-map: 30.0.5 + jest-message-util: 30.0.5 + jest-mock: 30.0.5 + jest-regex-util: 30.0.1 + jest-resolve: 30.0.5 + jest-snapshot: 30.0.5 + jest-util: 30.0.5 slash: 3.0.0 strip-bom: 4.0.0 transitivePeerDependencies: - supports-color - jest-snapshot@29.7.0: + jest-snapshot@30.0.5: dependencies: '@babel/core': 7.28.0 '@babel/generator': 7.28.0 - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.28.0) - '@babel/types': 7.28.0 - '@jest/expect-utils': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.0) + '@babel/types': 7.28.1 + '@jest/expect-utils': 30.0.5 + '@jest/get-type': 30.0.1 + '@jest/snapshot-utils': 30.0.5 + '@jest/transform': 30.0.5 + '@jest/types': 30.0.5 babel-preset-current-node-syntax: 1.1.0(@babel/core@7.28.0) chalk: 4.1.2 - expect: 29.7.0 + expect: 30.0.5 graceful-fs: 4.2.11 - jest-diff: 29.7.0 - jest-get-type: 29.6.3 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - natural-compare: 1.4.0 - pretty-format: 29.7.0 + jest-diff: 30.0.5 + jest-matcher-utils: 30.0.5 + jest-message-util: 30.0.5 + jest-util: 30.0.5 + pretty-format: 30.0.5 semver: 7.7.2 + synckit: 0.11.11 transitivePeerDependencies: - supports-color - jest-util@29.7.0: + jest-util@30.0.5: dependencies: - '@jest/types': 29.6.3 - '@types/node': 22.16.0 + '@jest/types': 30.0.5 + '@types/node': 22.17.0 chalk: 4.1.2 - ci-info: 3.9.0 + ci-info: 4.3.0 graceful-fs: 4.2.11 - picomatch: 2.3.1 + picomatch: 4.0.3 - jest-validate@29.7.0: + jest-validate@30.0.5: dependencies: - '@jest/types': 29.6.3 + '@jest/get-type': 30.0.1 + '@jest/types': 30.0.5 camelcase: 6.3.0 chalk: 4.1.2 - jest-get-type: 29.6.3 leven: 3.1.0 - pretty-format: 29.7.0 + pretty-format: 30.0.5 - jest-watcher@29.7.0: + jest-watcher@30.0.5: dependencies: - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.16.0 + '@jest/test-result': 30.0.5 + '@jest/types': 30.0.5 + '@types/node': 22.17.0 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 - jest-util: 29.7.0 + jest-util: 30.0.5 string-length: 4.0.2 jest-worker@26.6.2: dependencies: - '@types/node': 22.16.0 + '@types/node': 22.17.0 merge-stream: 2.0.0 supports-color: 7.2.0 jest-worker@27.5.1: dependencies: - '@types/node': 22.16.0 + '@types/node': 22.17.0 merge-stream: 2.0.0 supports-color: 8.1.1 - jest-worker@29.7.0: + jest-worker@30.0.5: dependencies: - '@types/node': 22.16.0 - jest-util: 29.7.0 + '@types/node': 22.17.0 + '@ungap/structured-clone': 1.3.0 + jest-util: 30.0.5 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -25391,7 +27674,7 @@ snapshots: jiti@1.21.7: {} - jiti@2.4.2: {} + jiti@2.5.1: {} jju@1.4.0: {} @@ -25462,7 +27745,7 @@ snapshots: decimal.js: 10.5.0 domexception: 2.0.1 escodegen: 2.1.0 - form-data: 3.0.3 + form-data: 4.0.4 html-encoding-sniffer: 2.0.1 http-proxy-agent: 4.0.1 https-proxy-agent: 5.0.1 @@ -25520,12 +27803,16 @@ snapshots: json-parse-even-better-errors@2.3.1: {} + json-parse-even-better-errors@4.0.0: {} + json-schema-traverse@0.4.1: {} json-schema-traverse@1.0.0: {} json-stable-stringify-without-jsonify@1.0.1: {} + json-stringify-pretty-compact@4.0.0: {} + json-stringify-safe@5.0.1: optional: true @@ -25550,6 +27837,8 @@ snapshots: optionalDependencies: graceful-fs: 4.2.11 + jsonparse@1.3.1: {} + jsonpointer@5.0.1: optional: true @@ -25572,6 +27861,8 @@ snapshots: dependencies: commander: 8.3.0 + kdbush@4.0.2: {} + keyboardevent-from-electron-accelerator@2.0.0: {} keyboardevents-areequal@0.2.2: {} @@ -25582,9 +27873,9 @@ snapshots: dependencies: json-buffer: 3.0.1 - keyv@5.3.4: + keyv@5.5.0: dependencies: - '@keyv/serialize': 1.0.3 + '@keyv/serialize': 1.1.0 khroma@2.1.0: {} @@ -25618,7 +27909,7 @@ snapshots: launch-editor@2.10.0: dependencies: picocolors: 1.1.1 - shell-quote: 1.8.2 + shell-quote: 1.8.3 layout-base@1.0.2: {} @@ -25718,18 +28009,18 @@ snapshots: lines-and-columns@2.0.3: {} - lint-staged@16.1.2: + lint-staged@16.1.4: dependencies: - chalk: 5.4.1 + chalk: 5.5.0 commander: 14.0.0 debug: 4.4.1(supports-color@6.0.0) lilconfig: 3.1.3 - listr2: 8.3.3 + listr2: 9.0.1 micromatch: 4.0.8 nano-spawn: 1.0.2 pidtree: 0.6.0 string-argv: 0.3.2 - yaml: 2.8.0 + yaml: 2.8.1 transitivePeerDependencies: - supports-color @@ -25742,7 +28033,7 @@ snapshots: rfdc: 1.4.1 wrap-ansi: 8.1.0 - listr2@8.3.3: + listr2@9.0.1: dependencies: cli-truncate: 4.0.0 colorette: 2.0.20 @@ -25859,6 +28150,8 @@ snapshots: long@5.3.2: {} + longest-streak@3.1.0: {} + loose-envify@1.4.0: dependencies: js-tokens: 4.0.0 @@ -25869,6 +28162,8 @@ snapshots: lru-cache@10.4.3: {} + lru-cache@11.1.0: {} + lru-cache@5.1.1: dependencies: yallist: 3.1.1 @@ -25879,7 +28174,7 @@ snapshots: lru-cache@7.18.3: {} - luxon@3.5.0: {} + luxon@3.6.1: {} lz-string@1.5.0: {} @@ -25983,13 +28278,40 @@ snapshots: dependencies: p-defer: 1.0.0 + maplibre-gl@5.6.1: + dependencies: + '@mapbox/geojson-rewind': 0.5.2 + '@mapbox/jsonlint-lines-primitives': 2.0.2 + '@mapbox/point-geometry': 0.1.0 + '@mapbox/tiny-sdf': 2.0.7 + '@mapbox/unitbezier': 0.0.1 + '@mapbox/vector-tile': 1.3.1 + '@mapbox/whoots-js': 3.1.0 + '@maplibre/maplibre-gl-style-spec': 23.3.0 + '@types/geojson': 7946.0.16 + '@types/geojson-vt': 3.2.5 + '@types/mapbox__point-geometry': 0.1.4 + '@types/mapbox__vector-tile': 1.3.4 + '@types/pbf': 3.0.5 + '@types/supercluster': 7.1.3 + earcut: 3.0.2 + geojson-vt: 4.0.2 + gl-matrix: 3.4.3 + global-prefix: 4.0.0 + kdbush: 4.0.2 + murmurhash-js: 1.0.0 + pbf: 3.3.0 + potpack: 2.1.0 + quickselect: 3.0.0 + supercluster: 8.0.1 + tinyqueue: 3.0.0 + vt-pbf: 3.1.3 + mark.js@8.11.1: {} - marked@15.0.12: {} + markdown-table@3.0.4: {} - marked@16.0.0: {} - - marked@4.0.12: {} + marked@16.1.2: {} matcher@3.0.0: dependencies: @@ -26000,6 +28322,136 @@ snapshots: mathml-tag-names@2.1.3: {} + mdast-util-find-and-replace@3.0.2: + dependencies: + '@types/mdast': 4.0.4 + escape-string-regexp: 5.0.0 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + + mdast-util-from-markdown@2.0.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + decode-named-character-reference: 1.2.0 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.2 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-decode-string: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-frontmatter@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + escape-string-regexp: 5.0.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + micromark-extension-frontmatter: 2.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-autolink-literal@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-find-and-replace: 3.0.2 + micromark-util-character: 2.1.1 + + mdast-util-gfm-footnote@2.1.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + micromark-util-normalize-identifier: 2.0.1 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-strikethrough@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-table@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + markdown-table: 3.0.4 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-task-list-item@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm@3.1.0: + dependencies: + mdast-util-from-markdown: 2.0.2 + mdast-util-gfm-autolink-literal: 2.0.1 + mdast-util-gfm-footnote: 2.1.0 + mdast-util-gfm-strikethrough: 2.0.0 + mdast-util-gfm-table: 2.0.0 + mdast-util-gfm-task-list-item: 2.0.0 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-newline-to-break@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-find-and-replace: 3.0.2 + + mdast-util-phrasing@4.1.0: + dependencies: + '@types/mdast': 4.0.4 + unist-util-is: 6.0.0 + + mdast-util-to-hast@13.2.0: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@ungap/structured-clone': 1.3.0 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.1 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + + mdast-util-to-markdown@2.1.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-classify-character: 2.0.1 + micromark-util-decode-string: 2.0.1 + unist-util-visit: 5.0.0 + zwitch: 2.0.4 + + mdast-util-to-string@4.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdn-data@2.0.14: {} mdn-data@2.0.28: {} @@ -26008,13 +28460,13 @@ snapshots: mdn-data@2.12.2: {} - mdsvex@0.12.6(svelte@5.35.2): + mdsvex@0.12.6(svelte@5.38.0): dependencies: '@types/mdast': 4.0.4 '@types/unist': 2.0.11 prism-svelte: 0.4.7 prismjs: 1.30.0 - svelte: 5.35.2 + svelte: 5.38.0 unist-util-visit: 2.0.3 vfile-message: 2.0.4 @@ -26028,11 +28480,11 @@ snapshots: mimic-fn: 2.1.0 p-is-promise: 2.1.0 - memfs@4.17.0: + memfs@4.17.2: dependencies: '@jsonjoy.com/json-pack': 1.2.0(tslib@2.8.1) - '@jsonjoy.com/util': 1.5.0(tslib@2.8.1) - tree-dump: 1.0.2(tslib@2.8.1) + '@jsonjoy.com/util': 1.6.0(tslib@2.8.1) + tree-dump: 1.0.3(tslib@2.8.1) tslib: 2.8.1 meow@13.2.0: {} @@ -26045,11 +28497,11 @@ snapshots: merge2@1.4.1: {} - mermaid@11.8.0: + mermaid@11.9.0: dependencies: '@braintree/sanitize-url': 7.1.1 '@iconify/utils': 2.3.0 - '@mermaid-js/parser': 0.6.0 + '@mermaid-js/parser': 0.6.2 '@types/d3': 7.4.3 cytoscape: 3.31.2 cytoscape-cose-bilkent: 4.1.0(cytoscape@3.31.2) @@ -26062,7 +28514,7 @@ snapshots: katex: 0.16.22 khroma: 2.1.0 lodash-es: 4.17.21 - marked: 15.0.12 + marked: 16.1.2 roughjs: 4.6.6 stylis: 4.3.6 ts-dedent: 2.2.0 @@ -26072,6 +28524,204 @@ snapshots: methods@1.1.2: {} + micromark-core-commonmark@2.0.3: + dependencies: + decode-named-character-reference: 1.2.0 + devlop: 1.1.0 + micromark-factory-destination: 2.0.1 + micromark-factory-label: 2.0.1 + micromark-factory-space: 2.0.1 + micromark-factory-title: 2.0.1 + micromark-factory-whitespace: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-html-tag-name: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-frontmatter@2.0.0: + dependencies: + fault: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-autolink-literal@2.1.0: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-footnote@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-strikethrough@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-table@2.1.1: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-tagfilter@2.0.0: + dependencies: + micromark-util-types: 2.0.2 + + micromark-extension-gfm-task-list-item@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm@3.0.0: + dependencies: + micromark-extension-gfm-autolink-literal: 2.1.0 + micromark-extension-gfm-footnote: 2.1.0 + micromark-extension-gfm-strikethrough: 2.1.0 + micromark-extension-gfm-table: 2.1.1 + micromark-extension-gfm-tagfilter: 2.0.0 + micromark-extension-gfm-task-list-item: 2.1.0 + micromark-util-combine-extensions: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-destination@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-label@2.0.1: + dependencies: + devlop: 1.1.0 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-space@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-types: 2.0.2 + + micromark-factory-title@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-whitespace@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-character@2.1.1: + dependencies: + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-chunked@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-classify-character@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-combine-extensions@2.0.1: + dependencies: + micromark-util-chunked: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-decode-numeric-character-reference@2.0.2: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-decode-string@2.0.1: + dependencies: + decode-named-character-reference: 1.2.0 + micromark-util-character: 2.1.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-symbol: 2.0.1 + + micromark-util-encode@2.0.1: {} + + micromark-util-html-tag-name@2.0.1: {} + + micromark-util-normalize-identifier@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-resolve-all@2.0.1: + dependencies: + micromark-util-types: 2.0.2 + + micromark-util-sanitize-uri@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-encode: 2.0.1 + micromark-util-symbol: 2.0.1 + + micromark-util-subtokenize@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-symbol@2.0.1: {} + + micromark-util-types@2.0.2: {} + + micromark@4.0.2: + dependencies: + '@types/debug': 4.1.12 + debug: 4.4.1(supports-color@6.0.0) + decode-named-character-reference: 1.2.0 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-combine-extensions: 2.0.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-encode: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + transitivePeerDependencies: + - supports-color + micromatch@4.0.8: dependencies: braces: 3.0.3 @@ -26103,15 +28753,25 @@ snapshots: mimic-response@3.1.0: {} - mind-elixir@4.6.2: {} + mind-elixir@5.0.4: {} - mini-css-extract-plugin@2.4.7(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)): + mini-css-extract-plugin@2.4.7(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)): dependencies: schema-utils: 4.3.2 - webpack: 5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5) + webpack: 5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8) + + mini-css-extract-plugin@2.9.2(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)): + dependencies: + schema-utils: 4.3.2 + tapable: 2.2.2 + webpack: 5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8) minimalistic-assert@1.0.1: {} + minimatch@10.0.3: + dependencies: + '@isaacs/brace-expansion': 5.0.0 + minimatch@3.0.4: dependencies: brace-expansion: 1.1.12 @@ -26200,6 +28860,8 @@ snapshots: dependencies: minipass: 7.1.2 + mitt@3.0.1: {} + mkdirp-classic@0.5.3: {} mkdirp@0.5.5: @@ -26221,27 +28883,27 @@ snapshots: pkg-types: 1.3.1 ufo: 1.6.1 - mocha@10.8.2: + mocha@11.7.1: dependencies: - ansi-colors: 4.1.3 browser-stdout: 1.3.1 - chokidar: 3.6.0 + chokidar: 4.0.3 debug: 4.4.1(supports-color@8.1.1) - diff: 5.2.0 + diff: 7.0.0 escape-string-regexp: 4.0.0 find-up: 5.0.0 - glob: 8.1.0 + glob: 10.4.5 he: 1.2.0 js-yaml: 4.1.0 log-symbols: 4.1.0 - minimatch: 5.1.6 + minimatch: 9.0.5 ms: 2.1.3 + picocolors: 1.1.1 serialize-javascript: 6.0.2 strip-json-comments: 3.1.1 supports-color: 8.1.1 - workerpool: 6.5.1 - yargs: 16.2.0 - yargs-parser: 20.2.9 + workerpool: 9.3.3 + yargs: 17.7.2 + yargs-parser: 21.1.1 yargs-unparser: 2.0.0 mocha@7.2.0: @@ -26292,12 +28954,12 @@ snapshots: ms@2.1.3: {} - msw@2.7.5(@types/node@22.16.0)(typescript@5.8.3): + msw@2.7.5(@types/node@22.17.0)(typescript@5.9.2): dependencies: '@bundled-es-modules/cookie': 2.0.1 '@bundled-es-modules/statuses': 1.0.1 '@bundled-es-modules/tough-cookie': 0.1.6 - '@inquirer/confirm': 5.1.13(@types/node@22.16.0) + '@inquirer/confirm': 5.1.14(@types/node@22.17.0) '@mswjs/interceptors': 0.37.6 '@open-draft/deferred-promise': 2.2.0 '@open-draft/until': 2.1.0 @@ -26313,14 +28975,40 @@ snapshots: type-fest: 4.41.0 yargs: 17.7.2 optionalDependencies: - typescript: 5.8.3 + typescript: 5.9.2 + transitivePeerDependencies: + - '@types/node' + optional: true + + msw@2.7.5(@types/node@24.1.0)(typescript@5.9.2): + dependencies: + '@bundled-es-modules/cookie': 2.0.1 + '@bundled-es-modules/statuses': 1.0.1 + '@bundled-es-modules/tough-cookie': 0.1.6 + '@inquirer/confirm': 5.1.14(@types/node@24.1.0) + '@mswjs/interceptors': 0.37.6 + '@open-draft/deferred-promise': 2.2.0 + '@open-draft/until': 2.1.0 + '@types/cookie': 0.6.0 + '@types/statuses': 2.0.6 + graphql: 16.11.0 + headers-polyfill: 4.0.3 + is-node-process: 1.2.0 + outvariant: 1.4.3 + path-to-regexp: 6.3.0 + picocolors: 1.1.1 + strict-event-emitter: 0.5.1 + type-fest: 4.41.0 + yargs: 17.7.2 + optionalDependencies: + typescript: 5.9.2 transitivePeerDependencies: - '@types/node' optional: true muggle-string@0.4.1: {} - multer@2.0.1: + multer@2.0.2: dependencies: append-field: 1.0.0 busboy: 1.6.0 @@ -26347,6 +29035,8 @@ snapshots: imul: 1.0.1 optional: true + murmurhash-js@1.0.0: {} + mute-stream@2.0.0: optional: true @@ -26363,6 +29053,8 @@ snapshots: napi-build-utils@2.0.0: {} + napi-postinstall@0.3.2: {} + natural-compare@1.4.0: {} needle@3.3.1: @@ -26455,6 +29147,11 @@ snapshots: - supports-color optional: true + node-html-parser@6.1.13: + dependencies: + css-select: 5.2.2 + he: 1.2.0 + node-int64@0.4.0: {} node-machine-id@1.1.12: {} @@ -26489,6 +29186,16 @@ snapshots: normalize.css@8.0.1: {} + npm-bundled@4.0.0: + dependencies: + npm-normalize-package-bin: 4.0.0 + + npm-install-checks@7.1.1: + dependencies: + semver: 7.7.2 + + npm-normalize-package-bin@4.0.0: {} + npm-package-arg@11.0.1: dependencies: hosted-git-info: 7.0.2 @@ -26496,6 +29203,37 @@ snapshots: semver: 7.7.2 validate-npm-package-name: 5.0.1 + npm-package-arg@12.0.2: + dependencies: + hosted-git-info: 8.1.0 + proc-log: 5.0.0 + semver: 7.7.2 + validate-npm-package-name: 6.0.2 + + npm-packlist@10.0.0: + dependencies: + ignore-walk: 7.0.0 + + npm-pick-manifest@10.0.0: + dependencies: + npm-install-checks: 7.1.1 + npm-normalize-package-bin: 4.0.0 + npm-package-arg: 12.0.2 + semver: 7.7.2 + + npm-registry-fetch@18.0.2: + dependencies: + '@npmcli/redact': 3.2.2 + jsonparse: 1.3.1 + make-fetch-happen: 14.0.3 + minipass: 7.1.2 + minipass-fetch: 4.0.1 + minizlib: 3.0.2 + npm-package-arg: 12.0.2 + proc-log: 5.0.0 + transitivePeerDependencies: + - supports-color + npm-run-path@2.0.2: dependencies: path-key: 2.0.1 @@ -26518,13 +29256,13 @@ snapshots: nwsapi@2.2.20: {} - nx@21.2.2(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.29(@swc/helpers@0.5.17)): + nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)): dependencies: '@napi-rs/wasm-runtime': 0.2.4 '@yarnpkg/lockfile': 1.1.0 '@yarnpkg/parsers': 3.0.2 '@zkochan/js-yaml': 0.0.7 - axios: 1.10.0(debug@4.4.1) + axios: 1.11.0(debug@4.4.1) chalk: 4.1.2 cli-cursor: 3.1.0 cli-spinners: 2.6.1 @@ -26536,7 +29274,7 @@ snapshots: flat: 5.0.2 front-matter: 4.0.2 ignore: 5.3.2 - jest-diff: 29.7.0 + jest-diff: 30.0.5 jsonc-parser: 3.2.0 lines-and-columns: 2.0.3 minimatch: 9.0.3 @@ -26548,7 +29286,7 @@ snapshots: semver: 7.7.2 string-width: 4.2.3 tar-stream: 2.2.0 - tmp: 0.2.3 + tmp: 0.2.4 tree-kill: 1.2.2 tsconfig-paths: 4.2.0 tslib: 2.8.1 @@ -26556,17 +29294,17 @@ snapshots: yargs: 17.7.2 yargs-parser: 21.1.1 optionalDependencies: - '@nx/nx-darwin-arm64': 21.2.2 - '@nx/nx-darwin-x64': 21.2.2 - '@nx/nx-freebsd-x64': 21.2.2 - '@nx/nx-linux-arm-gnueabihf': 21.2.2 - '@nx/nx-linux-arm64-gnu': 21.2.2 - '@nx/nx-linux-arm64-musl': 21.2.2 - '@nx/nx-linux-x64-gnu': 21.2.2 - '@nx/nx-linux-x64-musl': 21.2.2 - '@nx/nx-win32-arm64-msvc': 21.2.2 - '@nx/nx-win32-x64-msvc': 21.2.2 - '@swc-node/register': 1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3) + '@nx/nx-darwin-arm64': 21.3.11 + '@nx/nx-darwin-x64': 21.3.11 + '@nx/nx-freebsd-x64': 21.3.11 + '@nx/nx-linux-arm-gnueabihf': 21.3.11 + '@nx/nx-linux-arm64-gnu': 21.3.11 + '@nx/nx-linux-arm64-musl': 21.3.11 + '@nx/nx-linux-x64-gnu': 21.3.11 + '@nx/nx-linux-x64-musl': 21.3.11 + '@nx/nx-win32-arm64-msvc': 21.3.11 + '@nx/nx-win32-x64-msvc': 21.3.11 + '@swc-node/register': 1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2) '@swc/core': 1.11.29(@swc/helpers@0.5.17) transitivePeerDependencies: - debug @@ -26616,7 +29354,7 @@ snapshots: oidc-token-hash@5.1.0: {} - ollama@0.5.16: + ollama@0.5.17: dependencies: whatwg-fetch: 3.6.20 @@ -26626,7 +29364,7 @@ snapshots: dependencies: ee-first: 1.1.1 - on-headers@1.0.2: {} + on-headers@1.1.0: {} once@1.4.0: dependencies: @@ -26642,12 +29380,12 @@ snapshots: open-color@1.9.1: {} - open@10.1.1: + open@10.2.0: dependencies: default-browser: 5.2.1 define-lazy-prop: 3.0.0 is-inside-container: 1.0.0 - is-wsl: 3.1.0 + wsl-utils: 0.1.0 open@8.4.2: dependencies: @@ -26655,7 +29393,7 @@ snapshots: is-docker: 2.2.1 is-wsl: 2.2.0 - openai@5.8.2(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.24.4): + openai@5.12.0(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.24.4): optionalDependencies: ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) zod: 3.24.4 @@ -26800,9 +29538,9 @@ snapshots: pac-proxy-agent@7.2.0: dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 - agent-base: 7.1.3 + agent-base: 7.1.4 debug: 4.4.1(supports-color@6.0.0) - get-uri: 6.0.4 + get-uri: 6.0.5 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 pac-resolver: 7.0.1 @@ -26821,6 +29559,28 @@ snapshots: dependencies: quansync: 0.2.10 + pacote@21.0.0: + dependencies: + '@npmcli/git': 6.0.3 + '@npmcli/installed-package-contents': 3.0.0 + '@npmcli/package-json': 6.2.0 + '@npmcli/promise-spawn': 8.0.2 + '@npmcli/run-script': 9.1.0 + cacache: 19.0.1 + fs-minipass: 3.0.3 + minipass: 7.1.2 + npm-package-arg: 12.0.2 + npm-packlist: 10.0.0 + npm-pick-manifest: 10.0.0 + npm-registry-fetch: 18.0.2 + proc-log: 5.0.0 + promise-retry: 2.0.1 + sigstore: 3.1.0 + ssri: 12.0.0 + tar: 6.2.1 + transitivePeerDependencies: + - supports-color + pako@1.0.11: {} pako@2.0.3: {} @@ -26913,6 +29673,11 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 + path-scurry@2.0.0: + dependencies: + lru-cache: 11.1.0 + minipass: 7.1.2 + path-to-regexp@0.1.12: {} path-to-regexp@1.9.0: @@ -26934,6 +29699,11 @@ snapshots: pathval@2.0.1: {} + pbf@3.3.0: + dependencies: + ieee754: 1.2.1 + resolve-protobuf-schema: 2.1.0 + pe-library@1.0.1: {} peek-readable@4.1.0: {} @@ -26958,6 +29728,8 @@ snapshots: picomatch@4.0.2: {} + picomatch@4.0.3: {} + pidtree@0.6.0: {} pify@2.3.0: {} @@ -26987,11 +29759,11 @@ snapshots: exsolve: 1.0.5 pathe: 2.0.3 - playwright-core@1.53.2: {} + playwright-core@1.54.2: {} - playwright@1.53.2: + playwright@1.54.2: dependencies: - playwright-core: 1.53.2 + playwright-core: 1.54.2 optionalDependencies: fsevents: 2.3.2 @@ -27046,6 +29818,12 @@ snapshots: postcss-selector-parser: 7.1.0 postcss-value-parser: 4.2.0 + postcss-calc@10.1.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 + postcss-value-parser: 4.2.0 + postcss-calc@8.2.4(postcss@8.5.3): dependencies: postcss: 8.5.3 @@ -27060,7 +29838,7 @@ snapshots: postcss-colormin@5.3.1(postcss@8.5.3): dependencies: - browserslist: 4.24.4 + browserslist: 4.25.1 caniuse-api: 3.0.0 colord: 2.9.3 postcss: 8.5.3 @@ -27068,7 +29846,7 @@ snapshots: postcss-colormin@6.1.0(postcss@8.5.3): dependencies: - browserslist: 4.24.4 + browserslist: 4.25.1 caniuse-api: 3.0.0 colord: 2.9.3 postcss: 8.5.3 @@ -27076,30 +29854,44 @@ snapshots: postcss-colormin@7.0.2(postcss@8.5.3): dependencies: - browserslist: 4.24.4 + browserslist: 4.25.1 caniuse-api: 3.0.0 colord: 2.9.3 postcss: 8.5.3 postcss-value-parser: 4.2.0 + postcss-colormin@7.0.4(postcss@8.5.6): + dependencies: + browserslist: 4.25.1 + caniuse-api: 3.0.0 + colord: 2.9.3 + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + postcss-convert-values@5.1.3(postcss@8.5.3): dependencies: - browserslist: 4.24.4 + browserslist: 4.25.1 postcss: 8.5.3 postcss-value-parser: 4.2.0 postcss-convert-values@6.1.0(postcss@8.5.3): dependencies: - browserslist: 4.24.4 + browserslist: 4.25.1 postcss: 8.5.3 postcss-value-parser: 4.2.0 postcss-convert-values@7.0.4(postcss@8.5.3): dependencies: - browserslist: 4.24.4 + browserslist: 4.25.1 postcss: 8.5.3 postcss-value-parser: 4.2.0 + postcss-convert-values@7.0.6(postcss@8.5.6): + dependencies: + browserslist: 4.25.1 + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + postcss-discard-comments@5.1.2(postcss@8.5.3): dependencies: postcss: 8.5.3 @@ -27113,6 +29905,11 @@ snapshots: postcss: 8.5.3 postcss-selector-parser: 6.1.2 + postcss-discard-comments@7.0.4(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 + postcss-discard-duplicates@5.1.0(postcss@8.5.3): dependencies: postcss: 8.5.3 @@ -27125,6 +29922,10 @@ snapshots: dependencies: postcss: 8.5.3 + postcss-discard-duplicates@7.0.2(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-discard-empty@5.1.1(postcss@8.5.3): dependencies: postcss: 8.5.3 @@ -27137,6 +29938,10 @@ snapshots: dependencies: postcss: 8.5.3 + postcss-discard-empty@7.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-discard-overridden@5.1.0(postcss@8.5.3): dependencies: postcss: 8.5.3 @@ -27149,6 +29954,10 @@ snapshots: dependencies: postcss: 8.5.3 + postcss-discard-overridden@7.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-import@14.1.0(postcss@8.5.3): dependencies: postcss: 8.5.3 @@ -27156,9 +29965,9 @@ snapshots: read-cache: 1.0.0 resolve: 1.22.10 - postcss-import@16.1.0(postcss@8.5.3): + postcss-import@16.1.1(postcss@8.5.6): dependencies: - postcss: 8.5.3 + postcss: 8.5.6 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.10 @@ -27168,15 +29977,20 @@ snapshots: camelcase-css: 2.0.1 postcss: 8.5.3 - 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@22.16.0)(typescript@5.8.3)): + postcss-js@4.0.1(postcss@8.5.6): + dependencies: + 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.1.0)(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@22.16.0)(typescript@5.8.3) + ts-node: 10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.1.0)(typescript@5.9.2) - postcss-loader@4.3.0(postcss@8.5.3)(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)): + postcss-loader@4.3.0(postcss@8.5.3)(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)): dependencies: cosmiconfig: 7.1.0 klona: 2.0.6 @@ -27184,16 +29998,26 @@ snapshots: postcss: 8.5.3 schema-utils: 3.3.0 semver: 7.7.2 - webpack: 5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5) + webpack: 5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8) - postcss-loader@8.1.1(postcss@8.5.3)(typescript@5.0.4)(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)): + postcss-loader@4.3.0(postcss@8.5.6)(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)): + dependencies: + cosmiconfig: 7.1.0 + klona: 2.0.6 + loader-utils: 2.0.4 + postcss: 8.5.6 + schema-utils: 3.3.0 + semver: 7.7.2 + webpack: 5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8) + + postcss-loader@8.1.1(postcss@8.5.6)(typescript@5.0.4)(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)): dependencies: cosmiconfig: 9.0.0(typescript@5.0.4) jiti: 1.21.7 - postcss: 8.5.3 + postcss: 8.5.6 semver: 7.7.2 optionalDependencies: - webpack: 5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5) + webpack: 5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8) transitivePeerDependencies: - typescript @@ -27215,9 +30039,15 @@ snapshots: postcss-value-parser: 4.2.0 stylehacks: 7.0.4(postcss@8.5.3) + postcss-merge-longhand@7.0.5(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + stylehacks: 7.0.6(postcss@8.5.6) + postcss-merge-rules@5.1.4(postcss@8.5.3): dependencies: - browserslist: 4.24.4 + browserslist: 4.25.1 caniuse-api: 3.0.0 cssnano-utils: 3.1.0(postcss@8.5.3) postcss: 8.5.3 @@ -27225,7 +30055,7 @@ snapshots: postcss-merge-rules@6.1.1(postcss@8.5.3): dependencies: - browserslist: 4.24.4 + browserslist: 4.25.1 caniuse-api: 3.0.0 cssnano-utils: 4.0.2(postcss@8.5.3) postcss: 8.5.3 @@ -27233,12 +30063,20 @@ snapshots: postcss-merge-rules@7.0.4(postcss@8.5.3): dependencies: - browserslist: 4.24.4 + browserslist: 4.25.1 caniuse-api: 3.0.0 cssnano-utils: 5.0.0(postcss@8.5.3) postcss: 8.5.3 postcss-selector-parser: 6.1.2 + postcss-merge-rules@7.0.6(postcss@8.5.6): + dependencies: + browserslist: 4.25.1 + caniuse-api: 3.0.0 + cssnano-utils: 5.0.1(postcss@8.5.6) + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 + postcss-minify-font-values@5.1.0(postcss@8.5.3): dependencies: postcss: 8.5.3 @@ -27254,6 +30092,11 @@ snapshots: postcss: 8.5.3 postcss-value-parser: 4.2.0 + postcss-minify-font-values@7.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + postcss-minify-gradients@5.1.1(postcss@8.5.3): dependencies: colord: 2.9.3 @@ -27275,27 +30118,41 @@ snapshots: postcss: 8.5.3 postcss-value-parser: 4.2.0 + postcss-minify-gradients@7.0.1(postcss@8.5.6): + dependencies: + colord: 2.9.3 + cssnano-utils: 5.0.1(postcss@8.5.6) + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + postcss-minify-params@5.1.4(postcss@8.5.3): dependencies: - browserslist: 4.24.4 + browserslist: 4.25.1 cssnano-utils: 3.1.0(postcss@8.5.3) postcss: 8.5.3 postcss-value-parser: 4.2.0 postcss-minify-params@6.1.0(postcss@8.5.3): dependencies: - browserslist: 4.24.4 + browserslist: 4.25.1 cssnano-utils: 4.0.2(postcss@8.5.3) postcss: 8.5.3 postcss-value-parser: 4.2.0 postcss-minify-params@7.0.2(postcss@8.5.3): dependencies: - browserslist: 4.24.4 + browserslist: 4.25.1 cssnano-utils: 5.0.0(postcss@8.5.3) postcss: 8.5.3 postcss-value-parser: 4.2.0 + postcss-minify-params@7.0.4(postcss@8.5.6): + dependencies: + browserslist: 4.25.1 + cssnano-utils: 5.0.1(postcss@8.5.6) + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + postcss-minify-selectors@5.2.1(postcss@8.5.3): dependencies: postcss: 8.5.3 @@ -27312,12 +30169,18 @@ snapshots: postcss: 8.5.3 postcss-selector-parser: 6.1.2 - postcss-mixins@11.0.3(postcss@8.5.3): + postcss-minify-selectors@7.0.5(postcss@8.5.6): dependencies: - postcss: 8.5.3 - postcss-js: 4.0.1(postcss@8.5.3) - postcss-simple-vars: 7.0.1(postcss@8.5.3) - sugarss: 4.0.1(postcss@8.5.3) + cssesc: 3.0.0 + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 + + postcss-mixins@11.0.3(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-js: 4.0.1(postcss@8.5.6) + postcss-simple-vars: 7.0.1(postcss@8.5.6) + sugarss: 4.0.1(postcss@8.5.6) tinyglobby: 0.2.14 postcss-mixins@9.0.4(postcss@8.5.3): @@ -27332,6 +30195,10 @@ snapshots: dependencies: postcss: 8.5.3 + postcss-modules-extract-imports@3.1.0(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-modules-local-by-default@4.2.0(postcss@8.5.3): dependencies: icss-utils: 5.1.0(postcss@8.5.3) @@ -27339,16 +30206,33 @@ snapshots: postcss-selector-parser: 7.1.0 postcss-value-parser: 4.2.0 + postcss-modules-local-by-default@4.2.0(postcss@8.5.6): + dependencies: + icss-utils: 5.1.0(postcss@8.5.6) + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 + postcss-value-parser: 4.2.0 + postcss-modules-scope@3.2.1(postcss@8.5.3): dependencies: postcss: 8.5.3 postcss-selector-parser: 7.1.0 + postcss-modules-scope@3.2.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 + postcss-modules-values@4.0.0(postcss@8.5.3): dependencies: icss-utils: 5.1.0(postcss@8.5.3) postcss: 8.5.3 + postcss-modules-values@4.0.0(postcss@8.5.6): + dependencies: + icss-utils: 5.1.0(postcss@8.5.6) + postcss: 8.5.6 + postcss-nesting@13.0.1(postcss@8.5.3): dependencies: '@csstools/selector-resolve-nested': 3.0.0(postcss-selector-parser@7.1.0) @@ -27356,6 +30240,13 @@ snapshots: postcss: 8.5.3 postcss-selector-parser: 7.1.0 + postcss-nesting@13.0.2(postcss@8.5.6): + dependencies: + '@csstools/selector-resolve-nested': 3.1.0(postcss-selector-parser@7.1.0) + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 + postcss-normalize-charset@5.1.0(postcss@8.5.3): dependencies: postcss: 8.5.3 @@ -27368,6 +30259,10 @@ snapshots: dependencies: postcss: 8.5.3 + postcss-normalize-charset@7.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-normalize-display-values@5.1.0(postcss@8.5.3): dependencies: postcss: 8.5.3 @@ -27383,6 +30278,11 @@ snapshots: postcss: 8.5.3 postcss-value-parser: 4.2.0 + postcss-normalize-display-values@7.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + postcss-normalize-positions@5.1.1(postcss@8.5.3): dependencies: postcss: 8.5.3 @@ -27398,6 +30298,11 @@ snapshots: postcss: 8.5.3 postcss-value-parser: 4.2.0 + postcss-normalize-positions@7.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + postcss-normalize-repeat-style@5.1.1(postcss@8.5.3): dependencies: postcss: 8.5.3 @@ -27413,6 +30318,11 @@ snapshots: postcss: 8.5.3 postcss-value-parser: 4.2.0 + postcss-normalize-repeat-style@7.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + postcss-normalize-string@5.1.0(postcss@8.5.3): dependencies: postcss: 8.5.3 @@ -27428,6 +30338,11 @@ snapshots: postcss: 8.5.3 postcss-value-parser: 4.2.0 + postcss-normalize-string@7.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + postcss-normalize-timing-functions@5.1.0(postcss@8.5.3): dependencies: postcss: 8.5.3 @@ -27443,24 +30358,35 @@ snapshots: postcss: 8.5.3 postcss-value-parser: 4.2.0 + postcss-normalize-timing-functions@7.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + postcss-normalize-unicode@5.1.1(postcss@8.5.3): dependencies: - browserslist: 4.24.4 + browserslist: 4.25.1 postcss: 8.5.3 postcss-value-parser: 4.2.0 postcss-normalize-unicode@6.1.0(postcss@8.5.3): dependencies: - browserslist: 4.24.4 + browserslist: 4.25.1 postcss: 8.5.3 postcss-value-parser: 4.2.0 postcss-normalize-unicode@7.0.2(postcss@8.5.3): dependencies: - browserslist: 4.24.4 + browserslist: 4.25.1 postcss: 8.5.3 postcss-value-parser: 4.2.0 + postcss-normalize-unicode@7.0.4(postcss@8.5.6): + dependencies: + browserslist: 4.25.1 + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + postcss-normalize-url@5.1.0(postcss@8.5.3): dependencies: normalize-url: 6.1.0 @@ -27477,6 +30403,11 @@ snapshots: postcss: 8.5.3 postcss-value-parser: 4.2.0 + postcss-normalize-url@7.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + postcss-normalize-whitespace@5.1.1(postcss@8.5.3): dependencies: postcss: 8.5.3 @@ -27492,6 +30423,11 @@ snapshots: postcss: 8.5.3 postcss-value-parser: 4.2.0 + postcss-normalize-whitespace@7.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + postcss-ordered-values@5.1.3(postcss@8.5.3): dependencies: cssnano-utils: 3.1.0(postcss@8.5.3) @@ -27510,24 +30446,36 @@ snapshots: postcss: 8.5.3 postcss-value-parser: 4.2.0 + postcss-ordered-values@7.0.2(postcss@8.5.6): + dependencies: + cssnano-utils: 5.0.1(postcss@8.5.6) + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + postcss-reduce-initial@5.1.2(postcss@8.5.3): dependencies: - browserslist: 4.24.4 + browserslist: 4.25.1 caniuse-api: 3.0.0 postcss: 8.5.3 postcss-reduce-initial@6.1.0(postcss@8.5.3): dependencies: - browserslist: 4.24.4 + browserslist: 4.25.1 caniuse-api: 3.0.0 postcss: 8.5.3 postcss-reduce-initial@7.0.2(postcss@8.5.3): dependencies: - browserslist: 4.24.4 + browserslist: 4.25.1 caniuse-api: 3.0.0 postcss: 8.5.3 + postcss-reduce-initial@7.0.4(postcss@8.5.6): + dependencies: + browserslist: 4.25.1 + caniuse-api: 3.0.0 + postcss: 8.5.6 + postcss-reduce-transforms@5.1.0(postcss@8.5.3): dependencies: postcss: 8.5.3 @@ -27543,6 +30491,11 @@ snapshots: postcss: 8.5.3 postcss-value-parser: 4.2.0 + postcss-reduce-transforms@7.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + postcss-resolve-nested-selector@0.1.6: {} postcss-safe-parser@7.0.1(postcss@8.5.6): @@ -27572,6 +30525,10 @@ snapshots: dependencies: postcss: 8.5.3 + postcss-simple-vars@7.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-svgo@5.1.0(postcss@8.5.3): dependencies: postcss: 8.5.3 @@ -27590,6 +30547,12 @@ snapshots: postcss-value-parser: 4.2.0 svgo: 3.3.2 + postcss-svgo@7.1.0(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + svgo: 4.0.0 + postcss-unique-selectors@5.1.1(postcss@8.5.3): dependencies: postcss: 8.5.3 @@ -27605,6 +30568,11 @@ snapshots: postcss: 8.5.3 postcss-selector-parser: 6.1.2 + postcss-unique-selectors@7.0.4(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 + postcss-value-parser@4.2.0: {} postcss@8.5.3: @@ -27623,7 +30591,9 @@ snapshots: dependencies: commander: 9.5.0 - preact@10.26.9: {} + potpack@2.1.0: {} + + preact@10.27.0: {} prebuild-install@7.1.3: dependencies: @@ -27637,8 +30607,10 @@ snapshots: pump: 3.0.2 rc: 1.2.8 simple-get: 4.0.1 - tar-fs: 2.1.2 + tar-fs: 3.1.0 tunnel-agent: 0.6.0 + transitivePeerDependencies: + - bare-buffer prelude-ls@1.2.1: {} @@ -27648,9 +30620,9 @@ snapshots: ansi-styles: 5.2.0 react-is: 17.0.2 - pretty-format@29.7.0: + pretty-format@30.0.5: dependencies: - '@jest/schemas': 29.6.3 + '@jest/schemas': 30.0.5 ansi-styles: 5.2.0 react-is: 18.3.1 @@ -27683,6 +30655,8 @@ snapshots: object-assign: 4.1.1 react-is: 16.13.1 + property-information@7.1.0: {} + protobufjs@7.5.0: dependencies: '@protobufjs/aspromise': 1.1.2 @@ -27695,9 +30669,11 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 22.16.0 + '@types/node': 22.17.0 long: 5.3.2 + protocol-buffers-schema@3.6.0: {} + proxy-addr@2.0.7: dependencies: forwarded: 0.2.0 @@ -27705,7 +30681,7 @@ snapshots: proxy-agent@6.5.0: dependencies: - agent-base: 7.1.3 + agent-base: 7.1.4 debug: 4.4.1(supports-color@6.0.0) http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 @@ -27730,13 +30706,18 @@ snapshots: end-of-stream: 1.4.4 once: 1.4.0 + pump@3.0.3: + dependencies: + end-of-stream: 1.4.5 + once: 1.4.0 + punycode@2.3.1: {} pupa@3.1.0: dependencies: escape-goat: 4.0.0 - pure-rand@6.1.0: {} + pure-rand@7.0.1: {} purgecss@6.0.0: dependencies: @@ -27772,6 +30753,8 @@ snapshots: quick-lru@5.1.1: {} + quickselect@3.0.0: {} + rand-token@1.0.1: {} random-bytes@1.0.0: {} @@ -27804,11 +30787,11 @@ snapshots: raw-loader@0.5.1: {} - raw-loader@4.0.2(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)): + raw-loader@4.0.2(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5) + webpack: 5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8) rc@1.2.8: dependencies: @@ -28015,6 +30998,71 @@ snapshots: dependencies: jsesc: 3.0.2 + rehype-dom-parse@5.0.2: + dependencies: + '@types/hast': 3.0.4 + hast-util-from-dom: 5.0.1 + unified: 11.0.5 + + rehype-dom-stringify@4.0.2: + dependencies: + '@types/hast': 3.0.4 + hast-util-to-dom: 4.0.1 + unified: 11.0.5 + + rehype-minify-whitespace@6.0.2: + dependencies: + '@types/hast': 3.0.4 + hast-util-minify-whitespace: 1.0.1 + + rehype-remark@10.0.1: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + hast-util-to-mdast: 10.1.2 + unified: 11.0.5 + vfile: 6.0.3 + + remark-breaks@4.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-newline-to-break: 2.0.0 + unified: 11.0.5 + + remark-gfm@4.0.1: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-gfm: 3.1.0 + micromark-extension-gfm: 3.0.0 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-parse@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.2 + micromark-util-types: 2.0.2 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-rehype@11.1.2: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + mdast-util-to-hast: 13.2.0 + unified: 11.0.5 + vfile: 6.0.3 + + remark-stringify@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-to-markdown: 2.1.2 + unified: 11.0.5 + repeat-string@1.6.1: {} require-directory@2.1.1: {} @@ -28039,6 +31087,10 @@ snapshots: resolve-pkg-maps@1.0.0: {} + resolve-protobuf-schema@2.1.0: + dependencies: + protocol-buffers-schema: 3.6.0 + resolve.exports@2.0.3: {} resolve@1.22.10: @@ -28070,6 +31122,8 @@ snapshots: onetime: 7.0.0 signal-exit: 4.1.0 + ret@0.5.0: {} + retry@0.12.0: {} retry@0.13.1: {} @@ -28089,9 +31143,10 @@ snapshots: dependencies: glob: 7.2.3 - rimraf@5.0.10: + rimraf@6.0.1: dependencies: - glob: 10.4.5 + glob: 11.0.3 + package-json-from-dist: 1.0.1 roarr@2.15.4: dependencies: @@ -28105,10 +31160,33 @@ snapshots: robust-predicates@3.0.2: {} - rollup-plugin-stats@1.4.0(rollup@4.44.1)(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0)): + rolldown@1.0.0-beta.29: + dependencies: + '@oxc-project/runtime': 0.77.3 + '@oxc-project/types': 0.77.3 + '@rolldown/pluginutils': 1.0.0-beta.29 + ansis: 4.1.0 optionalDependencies: - rollup: 4.44.1 - vite: 7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0) + '@rolldown/binding-android-arm64': 1.0.0-beta.29 + '@rolldown/binding-darwin-arm64': 1.0.0-beta.29 + '@rolldown/binding-darwin-x64': 1.0.0-beta.29 + '@rolldown/binding-freebsd-x64': 1.0.0-beta.29 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.29 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.29 + '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.29 + '@rolldown/binding-linux-arm64-ohos': 1.0.0-beta.29 + '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.29 + '@rolldown/binding-linux-x64-musl': 1.0.0-beta.29 + '@rolldown/binding-wasm32-wasi': 1.0.0-beta.29 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.29 + '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.29 + '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.29 + + rollup-plugin-stats@1.5.0(rolldown@1.0.0-beta.29)(rollup@4.46.2)(vite@7.1.1(@types/node@22.17.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)): + optionalDependencies: + rolldown: 1.0.0-beta.29 + rollup: 4.46.2 + vite: 7.1.1(@types/node@22.17.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) rollup-plugin-styles@4.0.0(rollup@4.40.0): dependencies: @@ -28137,12 +31215,13 @@ snapshots: '@rollup/pluginutils': 5.1.4(rollup@4.40.0) rollup: 4.40.0 - rollup-plugin-webpack-stats@2.1.0(rollup@4.44.1)(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0)): + rollup-plugin-webpack-stats@2.1.3(rolldown@1.0.0-beta.29)(rollup@4.46.2)(vite@7.1.1(@types/node@22.17.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)): dependencies: - rollup-plugin-stats: 1.4.0(rollup@4.44.1)(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0)) + rolldown: 1.0.0-beta.29 + rollup-plugin-stats: 1.5.0(rolldown@1.0.0-beta.29)(rollup@4.46.2)(vite@7.1.1(@types/node@22.17.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) optionalDependencies: - rollup: 4.44.1 - vite: 7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0) + rollup: 4.46.2 + vite: 7.1.1(@types/node@22.17.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) rollup@4.40.0: dependencies: @@ -28170,30 +31249,30 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.40.0 fsevents: 2.3.3 - rollup@4.44.1: + rollup@4.46.2: dependencies: '@types/estree': 1.0.8 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.44.1 - '@rollup/rollup-android-arm64': 4.44.1 - '@rollup/rollup-darwin-arm64': 4.44.1 - '@rollup/rollup-darwin-x64': 4.44.1 - '@rollup/rollup-freebsd-arm64': 4.44.1 - '@rollup/rollup-freebsd-x64': 4.44.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.44.1 - '@rollup/rollup-linux-arm-musleabihf': 4.44.1 - '@rollup/rollup-linux-arm64-gnu': 4.44.1 - '@rollup/rollup-linux-arm64-musl': 4.44.1 - '@rollup/rollup-linux-loongarch64-gnu': 4.44.1 - '@rollup/rollup-linux-powerpc64le-gnu': 4.44.1 - '@rollup/rollup-linux-riscv64-gnu': 4.44.1 - '@rollup/rollup-linux-riscv64-musl': 4.44.1 - '@rollup/rollup-linux-s390x-gnu': 4.44.1 - '@rollup/rollup-linux-x64-gnu': 4.44.1 - '@rollup/rollup-linux-x64-musl': 4.44.1 - '@rollup/rollup-win32-arm64-msvc': 4.44.1 - '@rollup/rollup-win32-ia32-msvc': 4.44.1 - '@rollup/rollup-win32-x64-msvc': 4.44.1 + '@rollup/rollup-android-arm-eabi': 4.46.2 + '@rollup/rollup-android-arm64': 4.46.2 + '@rollup/rollup-darwin-arm64': 4.46.2 + '@rollup/rollup-darwin-x64': 4.46.2 + '@rollup/rollup-freebsd-arm64': 4.46.2 + '@rollup/rollup-freebsd-x64': 4.46.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.46.2 + '@rollup/rollup-linux-arm-musleabihf': 4.46.2 + '@rollup/rollup-linux-arm64-gnu': 4.46.2 + '@rollup/rollup-linux-arm64-musl': 4.46.2 + '@rollup/rollup-linux-loongarch64-gnu': 4.46.2 + '@rollup/rollup-linux-ppc64-gnu': 4.46.2 + '@rollup/rollup-linux-riscv64-gnu': 4.46.2 + '@rollup/rollup-linux-riscv64-musl': 4.46.2 + '@rollup/rollup-linux-s390x-gnu': 4.46.2 + '@rollup/rollup-linux-x64-gnu': 4.46.2 + '@rollup/rollup-linux-x64-musl': 4.46.2 + '@rollup/rollup-win32-arm64-msvc': 4.46.2 + '@rollup/rollup-win32-ia32-msvc': 4.46.2 + '@rollup/rollup-win32-x64-msvc': 4.46.2 fsevents: 2.3.3 roughjs@4.6.6: @@ -28261,6 +31340,10 @@ snapshots: es-errors: 1.3.0 is-regex: 1.2.1 + safe-regex2@5.0.0: + dependencies: + ret: 0.5.0 + safer-buffer@2.1.2: {} sanitize-filename@1.6.3: @@ -28338,7 +31421,7 @@ snapshots: sass-embedded@1.87.0: dependencies: - '@bufbuild/protobuf': 2.6.0 + '@bufbuild/protobuf': 2.6.3 buffer-builder: 0.2.0 colorjs.io: 0.5.2 immutable: 5.1.3 @@ -28424,7 +31507,7 @@ snapshots: selfsigned@2.4.1: dependencies: - '@types/node-forge': 1.3.11 + '@types/node-forge': 1.3.13 node-forge: 1.3.1 semver-compare@1.0.0: @@ -28476,9 +31559,9 @@ snapshots: transitivePeerDependencies: - supports-color - serialize-error@11.0.3: + serialize-error@12.0.0: dependencies: - type-fest: 2.19.0 + type-fest: 4.41.0 serialize-error@7.0.1: dependencies: @@ -28577,7 +31660,12 @@ snapshots: shell-exec@1.0.2: {} - shell-quote@1.8.2: {} + shell-quote@1.8.3: {} + + shelljs@0.10.0: + dependencies: + execa: 5.1.1 + fast-glob: 3.3.3 shelljs@0.8.5: dependencies: @@ -28621,6 +31709,21 @@ snapshots: signal-exit@4.1.0: {} + sigstore@3.1.0: + dependencies: + '@sigstore/bundle': 3.1.0 + '@sigstore/core': 2.0.0 + '@sigstore/protobuf-specs': 0.4.3 + '@sigstore/sign': 3.1.0 + '@sigstore/tuf': 3.1.1 + '@sigstore/verify': 2.1.1 + transitivePeerDependencies: + - supports-color + + simple-code-frame@1.3.0: + dependencies: + kolorist: 1.8.0 + simple-concat@1.0.1: {} simple-get@4.0.1: @@ -28629,6 +31732,14 @@ snapshots: once: 1.4.0 simple-concat: 1.0.1 + simple-git@3.28.0: + dependencies: + '@kwsites/file-exists': 1.1.1 + '@kwsites/promise-deferred': 1.1.1 + debug: 4.4.1(supports-color@6.0.0) + transitivePeerDependencies: + - supports-color + simple-xml-to-json@1.2.3: {} sirv@3.0.1: @@ -28698,15 +31809,15 @@ snapshots: dependencies: agent-base: 6.0.2 debug: 4.4.1(supports-color@6.0.0) - socks: 2.8.5 + socks: 2.8.6 transitivePeerDependencies: - supports-color socks-proxy-agent@8.0.5: dependencies: - agent-base: 7.1.3 + agent-base: 7.1.4 debug: 4.4.1(supports-color@6.0.0) - socks: 2.8.4 + socks: 2.8.5 transitivePeerDependencies: - supports-color @@ -28714,12 +31825,18 @@ snapshots: dependencies: ip-address: 9.0.5 smart-buffer: 4.2.0 + optional: true socks@2.8.5: dependencies: ip-address: 9.0.5 smart-buffer: 4.2.0 + socks@2.8.6: + dependencies: + ip-address: 9.0.5 + smart-buffer: 4.2.0 + sort-keys-length@1.0.1: dependencies: sort-keys: 1.1.2 @@ -28751,6 +31868,10 @@ snapshots: source-map@0.7.4: {} + source-map@0.7.6: {} + + space-separated-tokens@2.0.2: {} + spacetrim@0.11.59: {} spdx-correct@3.2.0: @@ -28814,6 +31935,7 @@ snapshots: optionalDependencies: node-gyp: 8.4.1 transitivePeerDependencies: + - bare-buffer - bluebird - supports-color @@ -28835,6 +31957,8 @@ snapshots: stack-chain@1.3.7: {} + stack-trace@1.0.0-pre2: {} + stack-utils@2.0.6: dependencies: escape-string-regexp: 2.0.0 @@ -28866,6 +31990,14 @@ snapshots: optionalDependencies: bare-events: 2.5.4 + streamx@2.22.1: + dependencies: + fast-fifo: 1.3.2 + text-decoder: 1.2.3 + optionalDependencies: + bare-events: 2.6.0 + optional: true + strict-event-emitter@0.5.1: optional: true @@ -28938,6 +32070,11 @@ snapshots: dependencies: safe-buffer: 5.2.1 + stringify-entities@4.0.4: + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 + strip-ansi@4.0.0: dependencies: ansi-regex: 3.0.1 @@ -28962,6 +32099,8 @@ snapshots: strip-eof@1.0.0: {} + strip-final-newline@2.0.0: {} + strip-json-comments@2.0.1: {} strip-json-comments@3.1.1: {} @@ -28978,6 +32117,8 @@ snapshots: strnum@1.1.2: {} + strnum@2.1.1: {} + strtok3@10.2.2: dependencies: '@tokenizer/token': 0.3.0 @@ -28988,15 +32129,15 @@ snapshots: '@tokenizer/token': 0.3.0 peek-readable: 4.1.0 - style-loader@2.0.0(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)): + style-loader@2.0.0(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5) + webpack: 5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8) - style-loader@4.0.0(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)): + style-loader@4.0.0(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)): dependencies: - webpack: 5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5) + webpack: 5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8) style-mod@4.1.2: {} @@ -29010,41 +32151,47 @@ snapshots: stylehacks@6.1.1(postcss@8.5.3): dependencies: - browserslist: 4.24.4 + browserslist: 4.25.1 postcss: 8.5.3 postcss-selector-parser: 6.1.2 stylehacks@7.0.4(postcss@8.5.3): dependencies: - browserslist: 4.24.4 + browserslist: 4.25.1 postcss: 8.5.3 postcss-selector-parser: 6.1.2 - stylelint-config-ckeditor5@11.0.1(stylelint@16.21.1(typescript@5.8.3)): + stylehacks@7.0.6(postcss@8.5.6): dependencies: - '@stylistic/stylelint-plugin': 3.1.3(stylelint@16.21.1(typescript@5.8.3)) - stylelint: 16.21.1(typescript@5.8.3) - stylelint-config-recommended: 16.0.0(stylelint@16.21.1(typescript@5.8.3)) - stylelint-plugin-ckeditor5-rules: 11.0.1(stylelint@16.21.1(typescript@5.8.3)) + browserslist: 4.25.1 + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 - stylelint-config-ckeditor5@2.0.1(stylelint@16.21.1(typescript@5.8.3)): + stylelint-config-ckeditor5@12.1.0(stylelint@16.23.1(typescript@5.9.2)): dependencies: - stylelint: 16.21.1(typescript@5.8.3) - stylelint-config-recommended: 3.0.0(stylelint@16.21.1(typescript@5.8.3)) + '@stylistic/stylelint-plugin': 3.1.3(stylelint@16.23.1(typescript@5.9.2)) + stylelint: 16.23.1(typescript@5.9.2) + stylelint-config-recommended: 16.0.0(stylelint@16.23.1(typescript@5.9.2)) + stylelint-plugin-ckeditor5-rules: 12.1.0(stylelint@16.23.1(typescript@5.9.2)) - stylelint-config-recommended@16.0.0(stylelint@16.21.1(typescript@5.8.3)): + stylelint-config-ckeditor5@2.0.1(stylelint@16.23.1(typescript@5.9.2)): dependencies: - stylelint: 16.21.1(typescript@5.8.3) + stylelint: 16.23.1(typescript@5.9.2) + stylelint-config-recommended: 3.0.0(stylelint@16.23.1(typescript@5.9.2)) - stylelint-config-recommended@3.0.0(stylelint@16.21.1(typescript@5.8.3)): + stylelint-config-recommended@16.0.0(stylelint@16.23.1(typescript@5.9.2)): dependencies: - stylelint: 16.21.1(typescript@5.8.3) + stylelint: 16.23.1(typescript@5.9.2) - stylelint-plugin-ckeditor5-rules@11.0.1(stylelint@16.21.1(typescript@5.8.3)): + stylelint-config-recommended@3.0.0(stylelint@16.23.1(typescript@5.9.2)): dependencies: - stylelint: 16.21.1(typescript@5.8.3) + stylelint: 16.23.1(typescript@5.9.2) - stylelint@16.21.1(typescript@5.0.4): + stylelint-plugin-ckeditor5-rules@12.1.0(stylelint@16.23.1(typescript@5.9.2)): + dependencies: + stylelint: 16.23.1(typescript@5.9.2) + + stylelint@16.23.1(typescript@5.0.4): dependencies: '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 @@ -29059,7 +32206,7 @@ snapshots: debug: 4.4.1(supports-color@6.0.0) fast-glob: 3.3.3 fastest-levenshtein: 1.0.16 - file-entry-cache: 10.1.1 + file-entry-cache: 10.1.3 global-modules: 2.0.0 globby: 11.1.0 globjoin: 0.1.4 @@ -29088,7 +32235,7 @@ snapshots: - supports-color - typescript - stylelint@16.21.1(typescript@5.8.3): + stylelint@16.23.1(typescript@5.9.2): dependencies: '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 @@ -29097,13 +32244,13 @@ snapshots: '@dual-bundle/import-meta-resolve': 4.1.0 balanced-match: 2.0.0 colord: 2.9.3 - cosmiconfig: 9.0.0(typescript@5.8.3) + cosmiconfig: 9.0.0(typescript@5.9.2) css-functions-list: 3.2.3 css-tree: 3.1.0 debug: 4.4.1(supports-color@6.0.0) fast-glob: 3.3.3 fastest-levenshtein: 1.0.16 - file-entry-cache: 10.1.1 + file-entry-cache: 10.1.3 global-modules: 2.0.0 globby: 11.1.0 globjoin: 0.1.4 @@ -29134,36 +32281,29 @@ snapshots: stylis@4.3.6: {} - stylus@0.64.0: - dependencies: - '@adobe/css-tools': 4.3.3 - debug: 4.4.1(supports-color@6.0.0) - glob: 10.4.5 - sax: 1.4.1 - source-map: 0.7.4 - transitivePeerDependencies: - - supports-color - optional: true - sudo-prompt@9.2.1: {} sugarss@4.0.1(postcss@8.5.3): dependencies: postcss: 8.5.3 + sugarss@4.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + sumchecker@3.0.1: dependencies: debug: 4.4.1(supports-color@6.0.0) transitivePeerDependencies: - supports-color - superagent@10.2.1: + superagent@10.2.3: dependencies: component-emitter: 1.3.1 cookiejar: 2.1.4 debug: 4.4.1(supports-color@6.0.0) fast-safe-stringify: 2.1.1 - form-data: 4.0.2 + form-data: 4.0.4 formidable: 3.5.4 methods: 1.1.2 mime: 2.6.0 @@ -29171,10 +32311,14 @@ snapshots: transitivePeerDependencies: - supports-color - supertest@7.1.1: + supercluster@8.0.1: + dependencies: + kdbush: 4.0.2 + + supertest@7.1.4: dependencies: methods: 1.1.2 - superagent: 10.2.1 + superagent: 10.2.3 transitivePeerDependencies: - supports-color @@ -29201,19 +32345,19 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte-check@4.2.2(picomatch@4.0.2)(svelte@5.35.2)(typescript@5.8.3): + svelte-check@4.3.1(picomatch@4.0.3)(svelte@5.38.0)(typescript@5.9.2): dependencies: '@jridgewell/trace-mapping': 0.3.29 chokidar: 4.0.3 - fdir: 6.4.6(picomatch@4.0.2) + fdir: 6.4.6(picomatch@4.0.3) picocolors: 1.1.1 sade: 1.8.1 - svelte: 5.35.2 - typescript: 5.8.3 + svelte: 5.38.0 + typescript: 5.9.2 transitivePeerDependencies: - picomatch - svelte-eslint-parser@1.2.0(svelte@5.35.2): + svelte-eslint-parser@1.3.0(svelte@5.38.0): dependencies: eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 @@ -29222,9 +32366,9 @@ snapshots: postcss-scss: 4.0.9(postcss@8.5.6) postcss-selector-parser: 7.1.0 optionalDependencies: - svelte: 5.35.2 + svelte: 5.38.0 - svelte@5.35.2: + svelte@5.38.0: dependencies: '@ampproject/remapping': 2.3.0 '@jridgewell/sourcemap-codec': 1.5.4 @@ -29265,6 +32409,16 @@ snapshots: csso: 5.0.5 picocolors: 1.1.1 + svgo@4.0.0: + dependencies: + commander: 11.1.0 + css-select: 5.2.2 + css-tree: 3.1.0 + css-what: 6.2.2 + csso: 5.0.5 + picocolors: 1.1.1 + sax: 1.4.1 + swagger-jsdoc@6.2.8(openapi-types@12.1.3): dependencies: commander: 6.2.0 @@ -29301,6 +32455,10 @@ snapshots: sync-message-port@1.1.3: optional: true + synckit@0.11.11: + dependencies: + '@pkgr/core': 0.2.9 + table@6.9.0: dependencies: ajv: 8.17.1 @@ -29313,8 +32471,6 @@ snapshots: tailwindcss@4.1.11: {} - tapable@2.2.1: {} - tapable@2.2.2: {} tape@4.17.0: @@ -29336,19 +32492,12 @@ snapshots: resolve: 1.22.10 string.prototype.trim: 1.2.10 - tar-fs@2.1.2: + tar-fs@3.1.0: dependencies: - chownr: 1.1.4 - mkdirp-classic: 0.5.3 - pump: 3.0.2 - tar-stream: 2.2.0 - - tar-fs@3.0.9: - dependencies: - pump: 3.0.2 + pump: 3.0.3 tar-stream: 3.1.7 optionalDependencies: - bare-fs: 4.1.5 + bare-fs: 4.1.6 bare-path: 3.0.0 transitivePeerDependencies: - bare-buffer @@ -29356,7 +32505,7 @@ snapshots: tar-stream@2.2.0: dependencies: bl: 4.1.0 - end-of-stream: 1.4.4 + end-of-stream: 1.4.5 fs-constants: 1.0.0 inherits: 2.0.4 readable-stream: 3.6.2 @@ -29398,7 +32547,7 @@ snapshots: rimraf: 2.6.3 optional: true - terser-webpack-plugin@4.2.3(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)): + terser-webpack-plugin@4.2.3(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)): dependencies: cacache: 15.3.0 find-cache-dir: 3.3.2 @@ -29408,22 +32557,22 @@ snapshots: serialize-javascript: 5.0.1 source-map: 0.6.1 terser: 5.39.0 - webpack: 5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5) + webpack: 5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8) webpack-sources: 1.4.3 transitivePeerDependencies: - bluebird - terser-webpack-plugin@5.3.14(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)): + terser-webpack-plugin@5.3.14(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)): dependencies: - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/trace-mapping': 0.3.29 jest-worker: 27.5.1 schema-utils: 4.3.2 serialize-javascript: 6.0.2 - terser: 5.39.0 - webpack: 5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5) + terser: 5.43.1 + webpack: 5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8) optionalDependencies: '@swc/core': 1.11.29(@swc/helpers@0.5.17) - esbuild: 0.25.5 + esbuild: 0.25.8 terser@5.39.0: dependencies: @@ -29432,6 +32581,13 @@ snapshots: commander: 2.20.3 source-map-support: 0.5.21 + terser@5.43.1: + dependencies: + '@jridgewell/source-map': 0.3.10 + acorn: 8.15.0 + commander: 2.20.3 + source-map-support: 0.5.21 + test-exclude@6.0.0: dependencies: '@istanbuljs/schema': 0.1.3 @@ -29490,6 +32646,8 @@ snapshots: tinypool@1.1.1: {} + tinyqueue@3.0.0: {} + tinyrainbow@2.0.0: {} tinyspy@4.0.3: {} @@ -29502,10 +32660,10 @@ snapshots: tmp-promise@3.0.3: dependencies: - tmp: 0.2.3 + tmp: 0.2.4 optional: true - tmp@0.2.3: {} + tmp@0.2.4: {} tmpl@1.0.5: {} @@ -29556,44 +32714,71 @@ snapshots: dependencies: punycode: 2.3.1 - tree-dump@1.0.2(tslib@2.8.1): + tree-dump@1.0.3(tslib@2.8.1): dependencies: tslib: 2.8.1 tree-kill@1.2.2: {} + trim-lines@3.0.1: {} + trim-repeated@1.0.0: dependencies: escape-string-regexp: 1.0.5 + trim-trailing-lines@2.1.0: {} + + trough@2.2.0: {} + truncate-utf8-bytes@1.0.2: dependencies: utf8-byte-length: 1.0.5 - ts-api-utils@2.1.0(typescript@5.8.3): + ts-api-utils@2.1.0(typescript@5.9.2): dependencies: - typescript: 5.8.3 + typescript: 5.9.2 ts-dedent@2.2.0: {} - ts-loader@9.5.2(typescript@5.0.4)(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)): + ts-loader@9.5.2(typescript@5.0.4)(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)): dependencies: chalk: 4.1.2 - enhanced-resolve: 5.18.1 + enhanced-resolve: 5.18.2 micromatch: 4.0.8 semver: 7.7.2 - source-map: 0.7.4 + source-map: 0.7.6 typescript: 5.0.4 - webpack: 5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5) + webpack: 5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8) - ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.16.0)(typescript@5.0.4): + ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.17.0)(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': 22.16.0 + '@types/node': 22.17.0 + 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 + + ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.1.0)(typescript@5.0.4): + 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.1.0 acorn: 8.14.1 acorn-walk: 8.3.4 arg: 4.1.3 @@ -29606,21 +32791,21 @@ 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@22.16.0)(typescript@5.8.3): + ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.1.0)(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': 22.16.0 + '@types/node': 24.1.0 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.8.3 + typescript: 5.9.2 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: @@ -29641,6 +32826,14 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + tuf-js@3.1.0: + dependencies: + '@tufjs/models': 3.0.1 + debug: 4.4.1(supports-color@6.0.0) + make-fetch-happen: 14.0.3 + transitivePeerDependencies: + - supports-color + tunnel-agent@0.6.0: dependencies: safe-buffer: 5.2.1 @@ -29663,8 +32856,6 @@ snapshots: - supports-color - utf-8-validate - turndown-plugin-gfm@1.0.2: {} - turndown@7.2.0: dependencies: '@mixmark-io/domino': 2.2.0 @@ -29684,12 +32875,9 @@ snapshots: type-fest@1.4.0: {} - type-fest@2.19.0: {} - type-fest@4.26.0: {} - type-fest@4.41.0: - optional: true + type-fest@4.41.0: {} type-is@1.6.18: dependencies: @@ -29737,13 +32925,25 @@ snapshots: typedarray@0.0.6: {} - typescript-eslint@8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3): + typescript-eslint@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.35.1(@typescript-eslint/parser@8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/parser': 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/utils': 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.30.1(jiti@2.4.2) - typescript: 5.8.3 + '@typescript-eslint/eslint-plugin': 8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/parser': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.9.2) + '@typescript-eslint/utils': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) + eslint: 9.32.0(jiti@2.5.1) + typescript: 5.9.2 + transitivePeerDependencies: + - supports-color + + typescript-eslint@8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2): + dependencies: + '@typescript-eslint/eslint-plugin': 8.39.0(@typescript-eslint/parser@8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/parser': 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/typescript-estree': 8.39.0(typescript@5.9.2) + '@typescript-eslint/utils': 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) + eslint: 9.32.0(jiti@2.5.1) + typescript: 5.9.2 transitivePeerDependencies: - supports-color @@ -29753,6 +32953,8 @@ snapshots: typescript@5.8.3: {} + typescript@5.9.2: {} + ufo@1.6.1: {} uid-safe@2.1.5: @@ -29772,9 +32974,11 @@ snapshots: undici-types@6.21.0: {} + undici-types@7.8.0: {} + undici@6.21.3: {} - undici@7.10.0: {} + undici@7.12.0: {} unescape@1.0.1: dependencies: @@ -29795,6 +32999,16 @@ snapshots: dependencies: ev-emitter: 2.1.2 + unified@11.0.5: + dependencies: + '@types/unist': 3.0.3 + bail: 2.0.2 + devlop: 1.1.0 + extend: 3.0.2 + is-plain-obj: 4.1.0 + trough: 2.2.0 + vfile: 6.0.3 + union@0.5.0: dependencies: qs: 6.14.0 @@ -29823,23 +33037,51 @@ snapshots: dependencies: imurmurhash: 0.1.4 + unist-util-find-after@5.0.0: + dependencies: + '@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 + + unist-util-position@5.0.0: + 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 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + universalify@0.1.2: {} universalify@0.2.0: {} @@ -29854,9 +33096,33 @@ snapshots: unplugin@2.3.5: dependencies: acorn: 8.15.0 - picomatch: 4.0.2 + picomatch: 4.0.3 webpack-virtual-modules: 0.6.2 + unrs-resolver@1.11.1: + dependencies: + napi-postinstall: 0.3.2 + optionalDependencies: + '@unrs/resolver-binding-android-arm-eabi': 1.11.1 + '@unrs/resolver-binding-android-arm64': 1.11.1 + '@unrs/resolver-binding-darwin-arm64': 1.11.1 + '@unrs/resolver-binding-darwin-x64': 1.11.1 + '@unrs/resolver-binding-freebsd-x64': 1.11.1 + '@unrs/resolver-binding-linux-arm-gnueabihf': 1.11.1 + '@unrs/resolver-binding-linux-arm-musleabihf': 1.11.1 + '@unrs/resolver-binding-linux-arm64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-arm64-musl': 1.11.1 + '@unrs/resolver-binding-linux-ppc64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-riscv64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-riscv64-musl': 1.11.1 + '@unrs/resolver-binding-linux-s390x-gnu': 1.11.1 + '@unrs/resolver-binding-linux-x64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-x64-musl': 1.11.1 + '@unrs/resolver-binding-wasm32-wasi': 1.11.1 + '@unrs/resolver-binding-win32-arm64-msvc': 1.11.1 + '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1 + '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 + unused-filename@4.0.1: dependencies: escape-string-regexp: 5.0.0 @@ -29864,12 +33130,6 @@ snapshots: upath@2.0.1: {} - update-browserslist-db@1.1.3(browserslist@4.24.4): - dependencies: - browserslist: 4.24.4 - escalade: 3.2.0 - picocolors: 1.1.1 - update-browserslist-db@1.1.3(browserslist@4.25.1): dependencies: browserslist: 4.25.1 @@ -29887,8 +33147,6 @@ snapshots: querystringify: 2.2.0 requires-port: 1.0.0 - urlpattern-polyfill@10.0.0: {} - urlpattern-polyfill@10.1.0: {} use-callback-ref@1.3.3(@types/react@19.1.7)(react@16.14.0): @@ -29955,7 +33213,7 @@ snapshots: validate-npm-package-name@5.0.1: {} - validate-npm-package-name@6.0.1: {} + validate-npm-package-name@6.0.2: {} validator@13.15.0: {} @@ -29975,13 +33233,23 @@ snapshots: '@types/unist': 2.0.11 unist-util-stringify-position: 2.0.3 - vite-node@3.2.4(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0): + vfile-message@4.0.2: + dependencies: + '@types/unist': 3.0.3 + unist-util-stringify-position: 4.0.0 + + vfile@6.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile-message: 4.0.2 + + vite-node@3.2.4(@types/node@22.17.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1): dependencies: cac: 6.7.14 debug: 4.4.1(supports-color@6.0.0) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.0.0(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0) + vite: 7.0.0(@types/node@22.17.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - jiti @@ -29996,101 +33264,166 @@ snapshots: - tsx - yaml - vite-plugin-dts@4.5.4(@types/node@22.16.0)(rollup@4.44.1)(typescript@5.8.3)(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0)): + vite-node@3.2.4(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1): dependencies: - '@microsoft/api-extractor': 7.52.8(@types/node@22.16.0) - '@rollup/pluginutils': 5.1.4(rollup@4.44.1) + cac: 6.7.14 + debug: 4.4.1(supports-color@6.0.0) + es-module-lexer: 1.7.0 + pathe: 2.0.3 + vite: 7.0.0(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) + transitivePeerDependencies: + - '@types/node' + - jiti + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + vite-plugin-dts@4.5.4(@types/node@22.17.0)(rollup@4.46.2)(typescript@5.9.2)(vite@7.1.1(@types/node@22.17.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)): + dependencies: + '@microsoft/api-extractor': 7.52.8(@types/node@22.17.0) + '@rollup/pluginutils': 5.1.4(rollup@4.46.2) '@volar/typescript': 2.4.13 - '@vue/language-core': 2.2.0(typescript@5.8.3) + '@vue/language-core': 2.2.0(typescript@5.9.2) compare-versions: 6.1.1 debug: 4.4.1(supports-color@6.0.0) kolorist: 1.8.0 local-pkg: 1.1.1 magic-string: 0.30.17 - typescript: 5.8.3 + typescript: 5.9.2 optionalDependencies: - vite: 7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0) + vite: 7.1.1(@types/node@22.17.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite-plugin-static-copy@3.1.0(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0)): + vite-plugin-static-copy@3.1.1(vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)): dependencies: chokidar: 3.6.0 fs-extra: 11.3.0 p-map: 7.0.3 picocolors: 1.1.1 tinyglobby: 0.2.14 - vite: 7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0) + vite: 7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) - vite-plugin-svgo@2.0.0(typescript@5.8.3)(vite@7.0.0(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0)): + vite-plugin-svgo@2.0.0(typescript@5.9.2)(vite@7.0.0(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)): dependencies: svgo: 3.3.2 - typescript: 5.8.3 - vite: 7.0.0(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0) + typescript: 5.9.2 + vite: 7.0.0(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) - vite-plugin-svgo@2.0.0(typescript@5.8.3)(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0)): + vite-plugin-svgo@2.0.0(typescript@5.9.2)(vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)): dependencies: svgo: 3.3.2 - typescript: 5.8.3 - vite: 7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0) + typescript: 5.9.2 + vite: 7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) - vite@7.0.0(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0): + vite-prerender-plugin@0.5.11(vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)): dependencies: - esbuild: 0.25.5 + kolorist: 1.8.0 + magic-string: 0.30.17 + node-html-parser: 6.1.13 + simple-code-frame: 1.3.0 + source-map: 0.7.6 + stack-trace: 1.0.0-pre2 + vite: 7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) + + vite@7.0.0(@types/node@22.17.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1): + dependencies: + esbuild: 0.25.8 fdir: 6.4.6(picomatch@4.0.2) picomatch: 4.0.2 postcss: 8.5.6 rollup: 4.40.0 tinyglobby: 0.2.14 optionalDependencies: - '@types/node': 22.16.0 + '@types/node': 22.17.0 fsevents: 2.3.3 - jiti: 2.4.2 + jiti: 2.5.1 less: 4.1.3 lightningcss: 1.30.1 sass: 1.87.0 sass-embedded: 1.87.0 - stylus: 0.64.0 - terser: 5.39.0 + terser: 5.43.1 tsx: 4.20.3 - yaml: 2.8.0 + yaml: 2.8.1 - vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0): + vite@7.0.0(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1): dependencies: - esbuild: 0.25.5 + esbuild: 0.25.8 fdir: 6.4.6(picomatch@4.0.2) picomatch: 4.0.2 postcss: 8.5.6 - rollup: 4.44.1 + rollup: 4.40.0 tinyglobby: 0.2.14 optionalDependencies: - '@types/node': 22.16.0 + '@types/node': 24.1.0 fsevents: 2.3.3 - jiti: 2.4.2 + jiti: 2.5.1 less: 4.1.3 lightningcss: 1.30.1 sass: 1.87.0 sass-embedded: 1.87.0 - stylus: 0.64.0 - terser: 5.39.0 + terser: 5.43.1 tsx: 4.20.3 - yaml: 2.8.0 + yaml: 2.8.1 - vitefu@1.0.6(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0)): + vite@7.1.1(@types/node@22.17.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1): + dependencies: + esbuild: 0.25.8 + fdir: 6.4.6(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.46.2 + tinyglobby: 0.2.14 optionalDependencies: - vite: 7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0) + '@types/node': 22.17.0 + fsevents: 2.3.3 + jiti: 2.5.1 + less: 4.1.3 + lightningcss: 1.30.1 + sass: 1.87.0 + sass-embedded: 1.87.0 + terser: 5.43.1 + tsx: 4.20.3 + yaml: 2.8.1 - vitefu@1.0.7(vite@7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0)): + vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1): + dependencies: + esbuild: 0.25.8 + fdir: 6.4.6(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.46.2 + tinyglobby: 0.2.14 optionalDependencies: - vite: 7.0.1(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0) + '@types/node': 24.1.0 + fsevents: 2.3.3 + jiti: 2.5.1 + less: 4.1.3 + lightningcss: 1.30.1 + sass: 1.87.0 + sass-embedded: 1.87.0 + terser: 5.43.1 + tsx: 4.20.3 + yaml: 2.8.1 - vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.16.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.4.2)(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.16.0)(typescript@5.8.3))(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0): + vitefu@1.1.1(vite@7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)): + optionalDependencies: + vite: 7.1.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) + + vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.17.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.5.1)(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.17.0)(typescript@5.9.2))(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(msw@2.7.5(@types/node@22.16.0)(typescript@5.8.3))(vite@7.0.0(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0)) + '@vitest/mocker': 3.2.4(msw@2.7.5(@types/node@22.17.0)(typescript@5.9.2))(vite@7.0.0(@types/node@22.17.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -30108,13 +33441,59 @@ snapshots: tinyglobby: 0.2.14 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.0.0(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0) - vite-node: 3.2.4(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0) + vite: 7.0.0(@types/node@22.17.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) + vite-node: 3.2.4(@types/node@22.17.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 - '@types/node': 22.16.0 - '@vitest/browser': 3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@22.16.0)(typescript@5.8.3))(playwright@1.53.2)(utf-8-validate@6.0.5)(vite@7.0.0(@types/node@22.16.0)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0))(vitest@3.2.4)(webdriverio@9.15.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)) + '@types/node': 22.17.0 + '@vitest/browser': 3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@22.17.0)(typescript@5.9.2))(playwright@1.54.2)(utf-8-validate@6.0.5)(vite@7.1.1(@types/node@22.17.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vitest@3.2.4)(webdriverio@9.18.4(bufferutil@4.0.9)(utf-8-validate@6.0.5)) + '@vitest/ui': 3.2.4(vitest@3.2.4) + happy-dom: 18.0.1 + jsdom: 26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) + transitivePeerDependencies: + - jiti + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.1.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.5.1)(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@24.1.0)(typescript@5.9.2))(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1): + dependencies: + '@types/chai': 5.2.2 + '@vitest/expect': 3.2.4 + '@vitest/mocker': 3.2.4(msw@2.7.5(@types/node@24.1.0)(typescript@5.9.2))(vite@7.0.0(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) + '@vitest/pretty-format': 3.2.4 + '@vitest/runner': 3.2.4 + '@vitest/snapshot': 3.2.4 + '@vitest/spy': 3.2.4 + '@vitest/utils': 3.2.4 + chai: 5.2.0 + debug: 4.4.1(supports-color@6.0.0) + expect-type: 1.2.1 + magic-string: 0.30.17 + pathe: 2.0.3 + picomatch: 4.0.2 + std-env: 3.9.0 + tinybench: 2.9.0 + tinyexec: 0.3.2 + tinyglobby: 0.2.14 + tinypool: 1.1.1 + tinyrainbow: 2.0.0 + vite: 7.0.0(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) + vite-node: 3.2.4(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/debug': 4.1.12 + '@types/node': 24.1.0 + '@vitest/browser': 3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@24.1.0)(typescript@5.9.2))(playwright@1.54.2)(utf-8-validate@6.0.5)(vite@7.0.0(@types/node@24.1.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vitest@3.2.4)(webdriverio@9.18.4(bufferutil@4.0.9)(utf-8-validate@6.0.5)) '@vitest/ui': 3.2.4(vitest@3.2.4) happy-dom: 18.0.1 jsdom: 26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) @@ -30151,6 +33530,12 @@ snapshots: vscode-uri@3.1.0: {} + vt-pbf@3.1.3: + dependencies: + '@mapbox/point-geometry': 0.1.0 + '@mapbox/vector-tile': 1.3.1 + pbf: 3.3.0 + w3c-hr-time@1.0.2: dependencies: browser-process-hrtime: 1.0.0 @@ -30181,7 +33566,7 @@ snapshots: dependencies: loose-envify: 1.4.0 - watchpack@2.4.2: + watchpack@2.4.4: dependencies: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 @@ -30194,18 +33579,21 @@ snapshots: dependencies: defaults: 1.0.4 + web-namespaces@2.0.1: {} + web-streams-polyfill@3.3.3: {} - webdriver@9.15.0(bufferutil@4.0.9)(utf-8-validate@6.0.5): + webdriver@9.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5): dependencies: - '@types/node': 20.17.32 + '@types/node': 20.19.9 '@types/ws': 8.18.1 - '@wdio/config': 9.15.0 - '@wdio/logger': 9.15.0 - '@wdio/protocols': 9.15.0 - '@wdio/types': 9.15.0 - '@wdio/utils': 9.15.0 + '@wdio/config': 9.18.0 + '@wdio/logger': 9.18.0 + '@wdio/protocols': 9.16.2 + '@wdio/types': 9.16.2 + '@wdio/utils': 9.18.0 deepmerge-ts: 7.1.5 + https-proxy-agent: 7.0.6 undici: 6.21.3 ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) transitivePeerDependencies: @@ -30214,23 +33602,23 @@ snapshots: - supports-color - utf-8-validate - webdriverio@9.15.0(bufferutil@4.0.9)(utf-8-validate@6.0.5): + webdriverio@9.18.4(bufferutil@4.0.9)(utf-8-validate@6.0.5): dependencies: - '@types/node': 20.17.32 + '@types/node': 20.19.9 '@types/sinonjs__fake-timers': 8.1.5 - '@wdio/config': 9.15.0 - '@wdio/logger': 9.15.0 - '@wdio/protocols': 9.15.0 - '@wdio/repl': 9.4.4 - '@wdio/types': 9.15.0 - '@wdio/utils': 9.15.0 + '@wdio/config': 9.18.0 + '@wdio/logger': 9.18.0 + '@wdio/protocols': 9.16.2 + '@wdio/repl': 9.16.2 + '@wdio/types': 9.16.2 + '@wdio/utils': 9.18.0 archiver: 7.0.1 aria-query: 5.3.2 - cheerio: 1.1.0 + cheerio: 1.1.2 css-shorthand-properties: 1.1.2 css-value: 0.0.1 grapheme-splitter: 1.0.4 - htmlfy: 0.6.7 + htmlfy: 0.8.1 is-plain-obj: 4.1.0 jszip: 3.10.1 lodash.clonedeep: 4.5.0 @@ -30238,9 +33626,9 @@ snapshots: query-selector-shadow-dom: 1.0.1 resq: 1.11.0 rgb2hex: 0.2.5 - serialize-error: 11.0.3 - urlpattern-polyfill: 10.0.0 - webdriver: 9.15.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) + serialize-error: 12.0.0 + urlpattern-polyfill: 10.1.0 + webdriver: 9.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) transitivePeerDependencies: - bare-buffer - bufferutil @@ -30255,23 +33643,23 @@ snapshots: webidl-conversions@7.0.0: {} - webpack-dev-middleware@7.4.2(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)): + webpack-dev-middleware@7.4.2(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)): dependencies: colorette: 2.0.20 - memfs: 4.17.0 + memfs: 4.17.2 mime-types: 2.1.35 on-finished: 2.4.1 range-parser: 1.2.1 schema-utils: 4.3.2 optionalDependencies: - webpack: 5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5) + webpack: 5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8) - webpack-dev-server@5.2.1(bufferutil@4.0.9)(utf-8-validate@6.0.5)(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)): + webpack-dev-server@5.2.2(bufferutil@4.0.9)(utf-8-validate@6.0.5)(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 '@types/express': 4.17.23 - '@types/express-serve-static-core': 5.0.6 + '@types/express-serve-static-core': 5.0.7 '@types/serve-index': 1.9.4 '@types/serve-static': 1.15.8 '@types/sockjs': 0.3.36 @@ -30280,24 +33668,24 @@ snapshots: bonjour-service: 1.3.0 chokidar: 3.6.0 colorette: 2.0.20 - compression: 1.8.0 + compression: 1.8.1 connect-history-api-fallback: 2.0.0 express: 4.21.2 graceful-fs: 4.2.11 http-proxy-middleware: 2.0.9(@types/express@4.17.23) ipaddr.js: 2.2.0 launch-editor: 2.10.0 - open: 10.1.1 + open: 10.2.0 p-retry: 6.2.1 schema-utils: 4.3.2 selfsigned: 2.4.1 serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 7.4.2(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)) + webpack-dev-middleware: 7.4.2(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)) ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) optionalDependencies: - webpack: 5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5) + webpack: 5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8) transitivePeerDependencies: - bufferutil - debug @@ -30314,11 +33702,11 @@ snapshots: source-list-map: 2.0.1 source-map: 0.6.1 - webpack-sources@3.2.3: {} + webpack-sources@3.3.3: {} webpack-virtual-modules@0.6.2: {} - webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5): + webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -30326,10 +33714,11 @@ snapshots: '@webassemblyjs/ast': 1.14.1 '@webassemblyjs/wasm-edit': 1.14.1 '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.14.1 - browserslist: 4.24.4 + acorn: 8.15.0 + acorn-import-phases: 1.0.4(acorn@8.15.0) + browserslist: 4.25.1 chrome-trace-event: 1.0.4 - enhanced-resolve: 5.18.1 + enhanced-resolve: 5.18.2 es-module-lexer: 1.7.0 eslint-scope: 5.1.1 events: 3.3.0 @@ -30340,10 +33729,10 @@ snapshots: mime-types: 2.1.35 neo-async: 2.6.2 schema-utils: 4.3.2 - tapable: 2.2.1 - terser-webpack-plugin: 5.3.14(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)) - watchpack: 2.4.2 - webpack-sources: 3.2.3 + tapable: 2.2.2 + terser-webpack-plugin: 5.3.14(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.8)) + watchpack: 2.4.4 + webpack-sources: 3.3.3 transitivePeerDependencies: - '@swc/core' - esbuild @@ -30448,6 +33837,10 @@ snapshots: dependencies: isexe: 2.0.0 + which@4.0.0: + dependencies: + isexe: 3.1.1 + which@5.0.0: dependencies: isexe: 3.1.1 @@ -30468,7 +33861,7 @@ snapshots: word-wrap@1.2.5: {} - workerpool@6.5.1: {} + workerpool@9.3.3: {} wrap-ansi@5.1.0: dependencies: @@ -30503,11 +33896,6 @@ snapshots: wrappy@1.0.2: {} - write-file-atomic@4.0.2: - dependencies: - imurmurhash: 0.1.4 - signal-exit: 3.0.7 - write-file-atomic@5.0.1: dependencies: imurmurhash: 0.1.4 @@ -30528,6 +33916,10 @@ snapshots: bufferutil: 4.0.9 utf-8-validate: 6.0.5 + wsl-utils@0.1.0: + dependencies: + is-wsl: 3.1.0 + xml-name-validator@3.0.0: {} xml-name-validator@5.0.0: {} @@ -30570,12 +33962,15 @@ snapshots: yaml@2.8.0: {} + yaml@2.8.1: {} + yargs-parser@13.1.2: dependencies: camelcase: 5.3.1 decamelize: 1.2.0 - yargs-parser@20.2.9: {} + yargs-parser@20.2.9: + optional: true yargs-parser@21.1.1: {} @@ -30616,6 +34011,7 @@ snapshots: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 20.2.9 + optional: true yargs@17.7.2: dependencies: @@ -30677,3 +34073,5 @@ snapshots: optionalDependencies: '@types/react': 19.1.7 react: 16.14.0 + + zwitch@2.0.4: {} diff --git a/renovate.json b/renovate.json index 77210034d1..df042296c8 100644 --- a/renovate.json +++ b/renovate.json @@ -1,39 +1,55 @@ { - "$schema": "https://docs.renovatebot.com/renovate-schema.json", - "extends": ["config:recommended"], - "schedule": ["before 3am"], - "labels": ["dependencies", "renovate"], - "prHourlyLimit": 0, - "prConcurrentLimit": 0, - "branchConcurrentLimit": 0, - "ignorePaths": [ - "**/node_modules/**", - "apps/edit-docs/demo/**", - "apps/server/src/assets/doc_notes/**", - "docs/**" - ], - "html": { - "enabled": false - }, - "bun": { - "enabled": false - }, - "packageRules": [ - { - "matchPackageNames": "@fsegurai/codemirror-theme-**", - "groupName": "codemirror themes" + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": [ + "config:recommended" + ], + "schedule": [ + "before 3am" + ], + "labels": [ + "dependencies", + "renovate" + ], + "prHourlyLimit": 0, + "prConcurrentLimit": 0, + "branchConcurrentLimit": 0, + "ignorePaths": [ + "**/node_modules/**", + "apps/edit-docs/demo/**", + "apps/server/src/assets/doc_notes/**", + "docs/**" + ], + "html": { + "enabled": false }, - { - "matchPackageNames": "**-config-ckeditor5", - "groupName": "ckeditor5 config packages" + "bun": { + "enabled": false }, - { - "matchPackageNames": [ - "@ckeditor/**", - "ckeditor5", - "ckeditor5-premium-features" - ], - "groupName": "ckeditor monorepo" - } - ] -} + "packageRules": [ + { + "matchPackageNames": "@fsegurai/codemirror-theme-**", + "groupName": "codemirror themes" + }, + { + "matchPackageNames": "**-config-ckeditor5", + "groupName": "ckeditor5 config packages" + }, + { + "matchPackageNames": [ + "@ckeditor/**", + "ckeditor5", + "ckeditor5-premium-features" + ], + "groupName": "ckeditor monorepo" + }, + { + "matchPackageNames": [ + "@sveltejs/**", + "svelte", + "svelte-check", + "eslint-plugin-svelte" + ], + "groupName": "svelte monorepo" + } + ] +} \ No newline at end of file diff --git a/scripts/generate-openapi.ts b/scripts/generate-openapi.ts index 0a5d6a8612..d2a074e669 100644 --- a/scripts/generate-openapi.ts +++ b/scripts/generate-openapi.ts @@ -158,7 +158,7 @@ console.log("Saved to", outputPath); * type: * type: string * example: "text" - * enum: ["text", "code", "render", "file", "image", "search", "relationMap", "book", "noteMap", "mermaid", "canvas", "webView", "launcher", "doc", "contentWidget", "mindMap", "geoMap"] + * enum: ["text", "code", "render", "file", "image", "search", "relationMap", "book", "noteMap", "mermaid", "canvas", "webView", "launcher", "doc", "contentWidget", "mindMap"] * description: "[Reference list](https://github.com/TriliumNext/Trilium/blob/v0.91.6/src/services/note_types.ts)" * mime: * type: string